-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update mantine monorepo to v7 (major) #316
Conversation
⚠ Artifact update problemRenovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below: File name: package-lock.json
|
be62007
to
2dffb09
Compare
87f8db5
to
5c69ddb
Compare
a061bd6
to
f514cd1
Compare
f514cd1
to
63faeb5
Compare
2763e28
to
d918836
Compare
78fc568
to
5e9ddcd
Compare
59732a5
to
5e6ecc3
Compare
5e6ecc3
to
7eab0dc
Compare
Kudos, SonarCloud Quality Gate passed! 0 Bugs No Coverage information |
Renovate Ignore NotificationBecause you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR. |
This PR contains the following updates:
6.0.21
->7.2.1
6.0.21
->7.2.1
6.0.21
->7.2.1
6.0.21
->7.2.1
6.0.21
->7.2.1
Release Notes
mantinedev/mantine (@mantine/core)
v7.2.1
Compare Source
What's Changed
[@mantine/core]
Numberinput: Reduce width of the right section to match controls width (#5033)[@mantine/core]
Popover: Addsize
floating-ui middleware to prevent large dropdown from exceeding screen size (#5213)[@mantine/code-highlight]
Prevent error thowing if language is not recognized by highlight.js (#5099)[@mantine/notifications]
Fixlimit
prop not working (#5105)[@mantine/dropzone]
Allow overriding props from react-dropzone-esm with component props (#5114)[@mantine/core]
Remove"use client";
directive fromrem
,createTheme
and other utility theme functions (#5119)[@mantine/hooks]
use-hash: Add option to retrieve value initially withoutuseEffect
(#5140)[@mantine/core]
PasswordInput: Fix incorrect styles when the component is wrapper with element withdata-disabled
attribute (#5149)[@mantine/core]
Add support for values separated by space torem
andem
functions (#5174)[@mantine/code-highlight]
Fix CodeHighlightTabs throwing error if language of the tab is nor specified (#5178)[@mantine/core]
Fieldset: Fix some elements overflowing the viewport width when rendered inside fieldset (#5179)[@mantine/core]
Modal: Fix ScrollArea not working as scroll container (#5189)[@mantine/core]
Text: Fixinline
prop not working (#5194)[@mantine/core]
Alert: Fix incorrect styles when the component is used without children (#5196)[@mantine/core]
Setaria-hidden
on Checkbox and Radio icons to prevent them being announced by screen readers (#5202)[@mantine/form]
Fixform.reset
not reseting values to updatedinitialValues
(#5123)New Contributors
Full Changelog: mantinedev/mantine@7.2.0...7.2.1
v7.2.0
: ⭐Community templates
You are welcome to share your GitHub templates with the community. Community templates are
featured on the getting started page. You can find a guide on how to
create and submit a template here.
Examples of templates that you can submit:
NumberFormatter component
New NumberFormatter component allows to format numbers
with thousands separators, decimal separators, and custom number of decimal places.
It supports the same formatting related props as NumberInput component.
Form actions
@mantine/form
package now exportscreateFormActions
function thatcan be used to change form state from anywhere in your application.
The mechanism of form actions is similar to notifications system,
modals manager and other similar packages.
To use form actions, set
name
property in use-form settings:Then call
createFormActions
function with the same form name as specified inuseForm
settings:After that, you can use
demoFormActions
to change form state from anywhere in your application.For example, after a fetch request or after a user interaction with a component that does not have access
to the form state:
Table data prop
Table component now supports
data
prop which can be used to generate table rowsfrom given data:
Table sticky header
Table component now supports
stickyHeader
prop, which can be used to make the table headerstick to the top of the table:
Usage with Sass
It is now possible to use Mantine with Sass. You can find documentation
on this page. Note that it is still required to set up postcss-preset-mantine
in order for all functions to work properly. Sass can be used as a replacement for CSS modules
– it supports all features that CSS modules support.
You can find examples of Mantine + Sass usage in separate branches of templates:
Inline loaders
Loader component now supports
children
prop. The prop allows overriding the defaultloader with any React node. It is useful in components that support
loaderProps
(Button, LoadingOverlay, Dropzone, etc.)– with
loaderProps.children
you can now display any React node instead of the loader.lightHidden and darkHidden props
All Mantine components now support
lightHidden
anddarkHidden
props that can be used to hidecomponents in a specific color scheme:
light-root and dark-root mixins
New
light-root
anddark-root
mixins were added to postcss-preset-mantine.These mixins can be used to add color scheme specific styles to the
:root
/html
element.Note that to use these mixins, you need to update
postcss-preset-mantine
to1.9.0
or higher.Documentation updates
:global
selectorOther changes
loaderProps
prop to pass props down to the Loader componenthoverColor
prop, which allows controllingcolor
property when the component is hovered. New property is supported in Button and ActionIcon components.renderRoot
andcomponent
propsdata-checked
attribute when the checkbox is checkediconColor
proponValuesChange
option which can be used to sync form values with external statev7.1.6
: 7.1.7Compare Source
What's Changed
[@mantine/core]
Change how primary color fallback is applied in defaulttheme.variantColorResolver
to allow setting custom fallback values andundefined
handling[@mantine/core]
Select: Fix error thrown on blur when givenvalue
is not in the data array[@mantine/core]
Fix option icon being smaller when option text has multiple lines[@mantine/core]
Spoiler: Fix unexpected empty space when hide label isnull
(#5126)[@mantine/core]
Button: Fix different border width of regular and disabled buttons[@mantine/core]
Table: Fix row background changing on hover in dark color scheme even whenhighlightOnHover
prop is not set[@mantine/carousel]
FixslideSize
prop not handling number values (#5050)[@mantine/core]
Add option to keep transitions when color scheme changes in useMantineColorScheme hook (#5092)[@mantine/core]
Improvepop-*
transitions animations (#5096)[@mantine/hooks]
use-local-storage: Fix error throwing if localStorage/sessionStorage is blocked by browser (#5091)[@mantine/dates]
Calendar: Fix incorrect focus logic when first item is disabled (#5078)New Contributors
Full Changelog: mantinedev/mantine@7.1.5...7.1.6
v7.1.5
Compare Source
What's Changed
[@mantine/core]
HoverCard: Fix dropdown not visible when Checkbox/Switch is used as target (#5072)[@mantine/code-highlight]
Fix code not updating when content changes (#5073)[@mantine/core]
Highlight: Fix incorrect highlighted parts when one of the array items includes substrings of other item (#5045)[@mantine/core]
Rating: Fix container overflow when the width of total item exceeds parent element width (#5057)[@mantine/core]
Radio: Fix checked icon clipping and not being centered with some sizes (#5064)[@mantine/core]
Fix incorrect callback arguments values types (#5067)[@mantine/core]
TagsInput: Fixrequired
prop not working correctly (#5032)New Contributors
Full Changelog: mantinedev/mantine@7.1.3...7.1.5
v7.1.3
Compare Source
What's Changed
[@mantine/core]
Paper: Fix incorrectwithBorder
prop cascading to nested Paper components (#4930)[@mantine/core]
MultiSelect: Fix incorrect input styles without placeholder (#4954)[@mantine/core]
NumberInput: Fix focus shifting from the input when one of the controls is pressed (#5013)[@mantine/notifications]
Fixstyle
prop breaking animations (#5007)[@mantine/core]
Rating: Fix incorrect touch events handling (#4976)[@mantine/carousel]
FixonClick
handler fromnextControlProps
being overwritten by internal props (#4985)[@mantine/core]
MultiSelect: FixselectFirstOptionOnChange
prop not working (#4997)[@mantine/core]
Select: Fix incorrect behavior when bothsearchValue
andvalue
are controlled (#4998)[@mantine/spotlight]
Fix DOM error thrown after HMR and several other cases (#4992)[@mantine/hooks]
use-timeout: Fix callback not running after state change (#4968)[@mantine/hooks]
use-focus-trap: Fix incorrectinput[type="radio"]
handling (#4856)New Contributors
Full Changelog: mantinedev/mantine@7.1.2...7.1.3
v7.1.2
Compare Source
[@mantine/dropzone]
Fix incorrect pointer events of inner element (#4934)[@mantine/dropzone]
Fix broken exports fromreact-dropzone-esm
packageFull Changelog: mantinedev/mantine@7.1.1...7.1.2
v7.1.1
Compare Source
What's Changed
[@mantine/core]
Radio: Fix description and error being misaligned when the component is rendered inside Radio.Group[@mantine/core]
HoverCard: Add missingHoverCard.extend
[@mantine/core]
Drawer: Fix incorrect transitions in rtl direction (#4917)[@mantine/core]
TagsInput: Fix incorrect IME keyboard input handling (#4947)[@mantine/core]
Container: Fix nested Container components inheriting some properties from parent Container component (#4859)[@mantine/core]
Menu: Fix incorrect Menu.Item rtl styles (#4936)[@mantine/core]
Spoiler: remove margin-bottom when "Show more" is hidden (#4928)[@mantine/dropzone]
Migrate toreact-dropzone-esm
package to support frameworks that work only with esm (#4920)[@mantine/core]
Button: Fix incorrect border-radius of loading overlay (#4939)[@mantine/core]
Portal: Fix error when value ofclassName
prop contained whitespace (#4935)[@mantine/core]
MultiSelect: Fix incorrect input sizes values (#4925)[@mantine/core]
Affix: Fixposition
prop set as attribute on the root element (#4932)[@mantine/core]
Updatereact-textarea-autosize
dependency to the latest version to fix issues with edge runtime (#4923)[@mantine/core]
Select: Fix search value not changing when component value is controlled (#4915)[@mantine/core]
Fix incorrect ActionIcon.Group, Button.Group and Rating components RTL styles (#4907)[@mantine/core]
TagsInput: FixonOptionSubmit
not being called when tag is submitted withEnter
key (#4892)[@mantine/core]
NumberInput: Fix value reset to zero when leading non-zero number is deleted (#4916)New Contributors
Full Changelog: mantinedev/mantine@7.1.0...7.1.1
v7.1.0
: ⭐Compare Source
CSS layers
Starting from 7.1.0 it is possible to import all
@mantine/*
packages styles with rulesdefined in
mantine
CSS layer.CSS rules within a layer are grouped together and applied before rules without a layer. This means that
even if you do not have control over styles import order, you can still override Mantine styles with
regular styles.
You can import styles within a layer by importing
@mantine/*/styles.layer.css
files.Note that these files are a full replacement for
@mantine/*/styles.css
files –you should not import both of them.
CSS layers are also useful if you want to combine Mantine components with other libraries which also
provide styles. You can use
@layer
directive to control the order of styles:In this example, Mantine styles will take precedence over other library
base
styles, but other librarycomponents
styles will take precedence over Mantine component styles.As of September 2023, CSS layers are supported in all modern browsers and have 90% browser support.
renderRoot prop
All polymorphic components now support
renderRoot
prop, whichis an alternative to
component
prop.renderRoot
prop allows changing the root elementto any other component or HTML tag with a callback function. It can be used in cases when
component
prop is not flexible enough:className
to be a string, but react-router-dom NavLink expects
className
to be a function.on its props. Examples: typed Next.js Link, TanStack router Link
renderRoot
example with react-router-dom NavLink:renderRoot
example with typed Next.js Link:Improved ESM support
All
@mantine/*
packages now have improved ESM support:esm
folder now have.mjs
extension@mantine/*
packages withtype: module
inpackage.json
without any additional configurationCSS variables in style prop
It is now possible to define CSS variables in
style
prop in all Mantine components –style prop is no longer restricted by
React.CSSProperties
type:form.setInitialValues
@mantine/form now supports
form.setInitialValues
methodwhich allows updating initial values after the form was initialized. This method is useful when you
want to update values that are used in
form.reset
and to compare values for dirty fields state:v7.0.2
Compare Source
What's Changed
[@mantine/dates]
Fix DatePickerInput and other similar inputs not having correct height when used without placeholder[@mantine/core]
MultiSelect: Fix check icon not displayed in selected grouped options[@mantine/dates]
Fix broken esm imports of dayjs plugins (#4875)New Contributors
Full Changelog: mantinedev/mantine@7.0.1...7.0.2
v7.0.1
Compare Source
What's Changed
[@mantine/core]
Loader: Make dots loader look the same as in v6 (#4801)[@mantine/core]
Button: Fix incorrect disabled styles of outline variant (#4815)[@mantine/core]
Fix brokentheme.other
type override type in .d.ts files (#4831)[@mantine/core]
SegmentedControl: Fix error when selected item removed from the data array (#4122)[@mantine/core]
AppShell: FixAppShell.Main
not taking up full height (#4842)[@mantine/core]
Input: Fix incorrect focus styles whenerror
prop is set (#4832)[@mantine/core]
Addclearable
prop back to Select, MultiSelect and TagsInput components[@mantine/core]
Portal: Reduce output DOM structure to a single div element, adddata-portal
attribute to the root portal element to indentify portals in devtools[@mantine/code-highlight]
Add missing static classes on CodeHighlight and CodeHighlightTabs components[@mantine/hooks]
use-local-storage: Fix hook throwing error if local storage is blocked by user (#3259)[@mantine/tiptap]
FixonBlur
called each time controls are clicked (#3209)[@mantine/core]
Addaria-describedby
andaria-labelledby
attributes to Radio.Group, Checkbox.Group and Switch.Group components (#3170)[@mantine/core]
Spoiler: Addaria-expanded
andaria-controls
attributes to show/hide control (#3183)[@mantine/core]
Spoiler: Change tab order of the show/hide button to make it receive focus before the content (#3183)[@mantine/form]
Fix incorrect values type in deeply nested validation rules (#4735)[@mantine/dates]
DateTimePicker: Set seconds to 0 ifwithSecond
prop is not set (#4737)[@mantine/dropzone]
Fix Dropzone.FullScreen staying opened after file was droppped for the first time (#4580)[@mantine/core]
Modal: FixcloseButtonProps
not includingCloseButtonProps
(#4793)[@mantine/core]
Select: Fixid
prop not settingid
attribute on the input element (#4809)[@mantine/core]
Allow using custom keys intheme.spacing
and other similar values when theme is extended withcreateTheme
[@mantine/core]
PasswordInput: Fix input field not taking entire width of the field in Firefox[@mantine/core]
Add default props to Group and Stack to prevent unwanted inheritance[@mantine/core]
Menu: Fix dropdown opening whenkeepMounted
prop is set and outside click is registered[@mantine/core]
Select: Fix search value not updating when data array changes (#4822)[@mantine/core]
Fix broken colors override type (#4816)[@mantine/core]
Table: Fix row hover not working in dark mode whenstriped
prop is set (#4817)[@mantine/core]
Fix styles breaking if color scheme value in local storage is not validNew Contributors
Full Changelog: mantinedev/mantine@7.0.0...7.0.1
v7.0.0
: 🎉Compare Source
Migration to native CSS
Mantine no longer depends on Emotion for styles generation. All
@mantine/*
packages are now shipped with native CSS files which can be imported from
@mantine/{package}/styles.css
,for example:
This change improves performance, reduces bundle size of the library and allows using Mantine
in environments where CSS-in-JS is not supported (or supported with limitations), for example,
Next.js app directory.
Important breaking changes:
createStyles
function is no longer available, use CSS modules or any other styling solution of your choice insteadsx
prop. You can useclassName
orstyle
props instead.styles
prop no longer supports nested selectorsIt is now recommended to use CSS modules to style Mantine components.
To update your project to CSS modules, follow the 6.x → 7.x migration guide.
Vanilla extract integration
If you prefer CSS-in-JS syntax for styling, you can use Vanilla extract
as a TypeScript CSS preprocessor. You will be able to use most of Mantine styling features
with Vanilla extract.
System color scheme support
All components now support system color scheme – when
colorScheme
value isauto
,components will use
prefers-color-scheme
media query to determine if the user prefers light or dark color scheme.Note that
auto
is not the default value. You need to set it manually to enable system color scheme supportboth on MantineProvider and in ColorSchemeScript:
Built-in color scheme manager
MantineProvider now comes with a built-in color scheme manager.
It is no longer required to use any other components to set up color scheme logic.
Color scheme can be changed with useMantineColorScheme hook:
CSS modules and PostCSS preset
CSS modules is now the recommended way to style Mantine components,
although it is not required – you can choose any other styling solution of your choice.
It is also recommended to use postcss-preset-mantine. It includes
mixins and functions to simplify styling of Mantine components. postcss-preset-mantine
is included in all templates.
Global styles
Mantine no longer includes normalize.css. Instead, it uses a bare minimum set of global styles.
These styles are part of the
@mantine/core
package and are applied automatically when you import@mantine/core/styles.css
in your application. Note that these styles cannot be decoupled from therest of the library.
Mantine as a headless UI library
You can now use Mantine as a headless library. To achieve that, just do not import
@mantine/*/styles.css
in your application. Then you will be able to apply styles withStyles API.
createTheme function
createTheme
function is a replacement forMantineThemeOverride
type. Use it to create a themeoverride, it will give you autocomplete for all theme properties:
Components extend functions
All components that support default props or Styles API now have a static
extend
function which allows getting autocomplete when customizingdefaultProps, classNames and styles of the component
on theme:
classNames based on component props
You can now get component props in classNames and styles to conditionally apply styles.
This feature is a more powerful replacement for styles params.
Components CSS variables
You can now customize components CSS variables to change component styles based on its props.
For example, it can be used to add new sizes:
New variants system
All components now have
data-variant
attribute on the root element, even if the component does not have any predefined variants.You can use it to apply styles to all components of the same type on theme:
New sizes system
There are multiple ways to customize component sizes:
data-size
attributeExample of customizing Button size with
data-size
attribute:theme.variantColorResolver
Button, Badge, ActionIcon, ThemeIcon and other
components now support custom variants with variantColorResolver
– it supports both changing colors of existing variants and adding new variants.
rem units scaling
It is now possible to scale rem units. It is useful when you want to change
font-size of
html
/:root
element and preserve Mantine components sizes. For example, if you would like to sethtml
font-size to10px
and scale Mantine components accordingly, you needto set
scale
to1 / (10 / 16)
(16 – default font-size) =1 / 0.625
=1.6
:color prop improvements
All components that support
color
prop now support the following color values:theme.colors
, for example,blue
theme.colors
index reference, for example,blue.5
#fff
,rgba(0, 0, 0, 0.5)
,hsl(0, 0%, 100%)