fix(deps): update mantine monorepo to v9 (major)#233
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
fix(deps): update mantine monorepo to v9 (major)#233renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
|
|
Updated dependencies detected. Learn more about Socket for GitHub ↗︎
|
5175bd7 to
c202c09
Compare
8379140 to
92c729c
Compare
f7bbe2c to
e114e58
Compare
b410886 to
3163dda
Compare
de0ff16 to
ed16dfe
Compare
ed16dfe to
c28961c
Compare
b1681cd to
5fd3ae3
Compare
9b4964d to
24643f9
Compare
15fe8ed to
6d8cbd6
Compare
75e7bd3 to
cc183fa
Compare
89c6a25 to
54729f6
Compare
b026a66 to
51c4da4
Compare
7cb58ba to
a3fa2a2
Compare
e8a125a to
5307a5b
Compare
994f4aa to
66541ff
Compare
aa78110 to
1c878e4
Compare
206d0e2 to
e211da0
Compare
a1391f5 to
aafe63b
Compare
da11e0b to
b3249ec
Compare
b3249ec to
4c672ef
Compare
0e0e508 to
c13e47c
Compare
d867a67 to
9b54f7a
Compare
8b053e0 to
31de66d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
6.0.22→9.0.06.0.22→9.0.0Release Notes
mantinedev/mantine (@mantine/core)
v9.0.0: 🤩Compare Source
View changelog with demos on mantine.dev website
Migration guide
This changelog covers breaking changes and new features in Mantine 9.0.
To migrate your application to Mantine 9.0, follow 8.x → 9.x migration guide.
Peer dependencies requirements updates
Starting from Mantine 9.0, the following dependencies are required:
@mantine/*packages@mantine/tiptap(migration guide)@mantine/charts(no migration required)New @mantine/schedule package
New
@mantine/schedulepackage provides a complete set ofcalendar scheduling components for React applications. It includes multiple view levels,
drag-and-drop event management, and extensive customization options.
Schedule
Schedule is a unified container component that combines all views with built-in navigation and view switching. Drag events to reschedule them:
DayView
DayView displays a single day with configurable time slots, all-day event section, current time indicator, and business hours highlighting. Drag events to reschedule them:
WeekView
WeekView shows a weekly calendar grid with time slots, week numbers, weekend day toggling, and multi-day event spanning. Drag events across days and time slots:
MonthView
MonthView displays a monthly calendar grid with event overflow handling, outside days display, and week numbers. Drag events to different days:
YearView
YearView provides a 12-month year overview organized by quarters with day-level event indicators:
MobileMonthView
MobileMonthView is a mobile-optimized month view with event details panel for the selected day:
To get started, follow the getting started guide.
Collapse horizontal orientation
Collapse component now supports horizontal orientation:
use-collapse and use-horizontal-collapse hooks
New
use-collapsehook is the hook version of Collapse component.It allows animation of height from
0toautoand vice versa.use-horizontal-collapseworks the same way asuse-collapsebut animates width instead of height:use-floating-window hook
New use-floating-window hook allows creating floating draggable
elements:
FloatingWindow component
FloatingWindow provides component API for use-floating-window hook:
OverflowList component
New OverflowList component displays list of items and collapses the overflowing items into a single element:
Marquee component
New Marquee component creates continuous scrolling animation for content:
Scroller component
New Scroller component displays horizontally scrollable content with navigation controls.
It supports native scrolling via trackpad, shift + mouse wheel, touch gestures, and mouse drag:
use-scroller hook
New use-scroller hook provides logic for creating custom scrollable containers with navigation controls:
BarsList component
New BarsList component displays a list of horizontal bars with names and values.
It supports custom colors, auto contrast, value formatting, and custom bar rendering:
Card horizontal orientation
Card component now supports horizontal orientation:
Checkbox.Group and Switch.Group maxSelectedValues
Checkbox.Group and Switch.Group now support
maxSelectedValuesprop to limit the number of selected values.When the limit is reached, the remaining controls are disabled and cannot be selected.
Inputs loading state
All Mantine input components based on Input component now support
loadingprop.Set
loadingprop to display a loading indicator. By default, the loader is displayed on the right side of the input.You can change the position with the
loadingPositionprop to'left'or'right'. This is useful for async operations like API calls, searches, or validations:renderPill in MultiSelect and TagsInput
MultiSelect and TagsInput components now support
renderPillprop to customize pill rendering:Clear section mode
All clearable input components now support
clearSectionModeprop that determines how the clear button andrightSectionare rendered:'both'(default) – render both the clear button andrightSection'rightSection'– render only the user-suppliedrightSection, ignore clear button'clear'– render only the clear button, ignorerightSectionThis prop is supported by Select, Autocomplete,
MultiSelect, TagsInput, FileInput,
DateInput, DatePickerInput,
MonthPickerInput, YearPickerInput,
TimePicker, and DateTimePicker.
use-form async validation
use-form validation rules can now be async – return a
Promisethat resolves to anerror message or
null. When all rules are synchronous,form.validate(),form.validateField()andform.isValid()return their results directly (not wrapped in aPromise). When any rule is async,these methods return promises instead. TypeScript infers the correct return type based on your
validation rules, so you get precise types without manual annotations.
The
form.validatingproperty istruewhile any async validation is in progress, andform.isValidating(path)checks individual fields. Thevalidatingstate is never set forforms with only synchronous rules.
Each rule receives an
AbortSignalas the fourth argument. The signal is aborted when a newervalidation supersedes the current one, which you can use to cancel in-flight HTTP requests.
When using async validation with
validateInputOnChange, setvalidateDebounceto avoidfiring an API call on every keystroke:
use-form TransformedValues type argument
use-form now supports passing second type argument
TransformedValuesto define the type oftransformed values returned by
form.getTransformedValuesandform.onSubmit:Generic components
SegmentedControl, Select, MultiSelect,
Chip.Group, Switch.Group, Checkbox.Group and Radio.Group
now support generic value type. You can pass primitive values (numbers, strings, booleans, bigint)
as the type argument. The generic type is used for
value,defaultValue,onChangeand other props.For example, generic type can now be used with SegmentedControl
to specify string union:
Combobox virtualization
Combobox component now supports virtualization
with the
useVirtualizedComboboxhook. The hook does not depend on any specific virtualization library.The recommended option is @tanstack/react-virtual.
Example of implementation with
useVirtualizedComboboxand @tanstack/react-virtual:You can find more virtualization examples on the Combobox examples page.
Highlight per-term colors
Highlight component now supports custom colors for individual highlight terms.
You can provide an array of objects with
textandcolorproperties to assign different colorsto different highlighted terms:
Highlight whole-word matching
Highlight component now supports
wholeWordprop to match only complete words.When enabled, 'the' will not match 'there' or 'theme':
Pagination and use-pagination startValue
Pagination component and use-pagination hook now support
startValuepropto define the starting page number. For example, with
startValue={5}andtotal={15},the pagination range will be from 5 to 15:
Grid improvements
Grid component no longer uses negative margins for spacing between columns.
Instead, it now uses native CSS
gapproperty, which means you no longer need to useoverflow="hidden"to prevent content overflow caused by negative margins.Slider vertical orientation
Slider and RangeSlider components now support vertical orientation:
SimpleGrid improvements
SimpleGrid component now supports
minColWidthprop to use CSS Gridauto-fill/auto-fitto automatically adjust the number of columns based on available space and minimum column width.
When
minColWidthis set, thecolsprop is ignored. UseautoFlowprop to switch betweenauto-fill(default) andauto-fitbehavior.SimpleGrid also now supports
autoRowsprop to control the size ofimplicitly created grid rows:
Calendar fullWidth prop
Calendar, DatePicker, MonthPicker and YearPicker
components now support
fullWidthprop to make the calendar stretch to fill 100% of its parent container width:Namespace types exports
Many Mantine components and hooks now provide namespace exports for related types.
For example, use-disclosure hook types can now be accessed like this:
Example of using namespace types with Button props type:
Font weights
New
fontWeightsproperty was added to the theme object.It allows you to control
font-weightvalues used across all components.The default values are:
regular–400medium–600bold–700Each value is mapped to a CSS variable:
--mantine-font-weight-regular,--mantine-font-weight-medium,--mantine-font-weight-bold.All components that previously used hardcoded
font-weightvalues now use these CSS variables.For example, to revert the medium font weight from
600back to500(the default in Mantine 8):@mantine/mcp-server package
Mantine now includes
@mantine/mcp-serverpackage that exposes Mantinedocumentation over Model Context Protocol.
It allows AI tools to query Mantine docs and props data through MCP tools instead of raw web scraping.
The server uses static data generated from Mantine documentation and serves:
list_itemsget_item_docget_item_propssearch_docsThis setup is useful in agent workflows where tools can call MCP functions directly to
retrieve structured data and reduce prompt size.
Basic server configuration:
{ "mcpServers": { "mantine": { "command": "npx", "args": ["-y", "@​mantine/mcp-server"], "env": { "MANTINE_MCP_DATA_URL": "https://mantine.dev/mcp" } } } }For setup details, supported tools, and client-specific instructions, see
Mantine with LLMs.
Mantine skills for Claude Code and Codex
Mantine skills for AI coding agents are documented in the
Mantine with LLMs guide.
The guide includes:
mantinedev/skillsNew use-form validators
New
isUrlandisOneOfvalidators were added to@mantine/formpackage:isUrl– validates that the value is a valid URL. Supports custom protocols and localhost option.isOneOf– validates that the value is included in the given list of allowed values.Standard Schema support in use-form
@mantine/formnow has built-in support for Standard Schema,a community specification implemented by Zod v4, Valibot, ArkType, and other schema libraries.
Use
schemaResolverto validate forms with any compliant library without installinga separate resolver package:
Pass
{ sync: true }when your schema is synchronous to get synchronous return typesfor
form.validate(),form.validateField(), andform.isValid().AppShell static mode
AppShell component now supports
mode="static"which rendersall AppShell elements as part of the normal document flow using CSS Grid instead of
fixed positioning. Static mode supports
layout="alt"to place navbar and asideat full height with header and footer adjusted between them.
See AppShell examples for more details.
ScrollArea startScrollPosition
ScrollAreacomponent now supportsstartScrollPositionprop to set the initial scrollposition when the component mounts:
useEffectEvent migration in hooks
Five hooks —
usePageLeave,useWindowEvent,useHotkeys,useClickOutside, anduseCollapse—have been updated to use React 19's stable
useEffectEvent. Previously these hooks captured staleclosures or caused unnecessary event listener re-registrations when non-memoized callbacks were
passed. With
useEffectEvent, each hook registers a single stable listener that always calls thelatest version of the provided callback, so wrapping callbacks in
useCallbackoruseMemois nolonger required.
React 19 Activity for keepMounted
Transition, Collapse, Tabs.Panel,
Stepper, and Tree now use React 19's
Activity component when
keepMountedis set.Activitypreserves the state of hidden subtrees — form inputs, scroll positions, and any othercomponent state survive while the content is not visible.
StepperandTreegain a newkeepMountedprop; all other components already had it.Documentation updates
FormDatasection was added to all inputs componentssuperjsonlibraryOther changes
pauseResetOnHover="notification"to keep the previous behavior of pausing only the hovered notification.{ pinned: boolean; scrollProgress: number }object instead of a plainboolean.scrollProgressis a value between0(fully hidden) and1(fully visible) that can be used for scroll-linked reveal animations. A newscrollDistanceoption controls how many pixels of scrolling are required to fully reveal or hide the element (default:100).'up','down', or'unknown', handles resize events to avoid false direction changes, and always uses the latest state without stale closure issues.theme.defaultRadiuswas changed fromsm(4px) tomd(8px)lightvariant in all components now uses different colors values without transparency to improve contrastmodprop now converts camelCase keys to kebab-case for data attributes in all components@mantine/formpackage now includes built-in Standard Schema support viaschemaResolver@mantine/formgetInputPropsnow supportstype: 'radio'for individual radio inputs – returnschecked/defaultCheckedand passes through the radio optionvalue@mantine/formnow supports async validation rules.form.validate(),form.validateField()andform.isValid()return results directly when all rules are synchronous and return promises only when async rules are present. Newform.validating,form.isValidating(path),validateDebounceandresolveValidationErroroptions were added.createPolymorphicComponentfunction was renamed to shorterpolymorphicfor conveniencefontWeightsvalues. The defaultmediumfont weight was changed from500to600for better readability.mis- margin-inline-startmie- margin-inline-endpis- padding-inline-startpie- padding-inline-endexpandedState,selectedStateandcheckedStateprops.data-hoveredattribute for hover state, you need to apply hover styles with&:hoverinstead. This change improves rendering performance by resolving this issue.expandedprop instead ofinkeepMounted={false}prop to unmount collapsed contentonMaxValuesprop, which is called when the user attempts to select more values thanmaxValuesonMaxTagsprop, which is called when the user attempts to add more tags thanmaxTagsrefpropcolorprop, usecstyle prop insteadpositionDependenciesprop, it is no longer requiredreadOnlyandwithErrorStylespropsinitialStateprop was renamed todefaultExpandedfor consistency with other componentsshowAriaLabelandhideAriaLabelprops allow customizing ARIA labelsFormDatanameandhiddenInputPropsprops to include color value in uncontrolled form submissionswithBorderby defaultinput-prefix forsizeprop to match input and button sizesonTransitionStartandonTransitionEndcallbacksonEnter, `onEntConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.