Repository navigation
Update mantine monorepo to v9.7.0 - #992
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/mantine-monorepo
branch
from
October 5, 2026 22:50
236e6c2 to
6b27842
Compare
renovate
Bot
force-pushed
the
renovate/mantine-monorepo
branch
from
October 6, 2026 01:00
6b27842 to
7db453d
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:
9.6.3→9.7.09.6.3→9.7.0Release Notes
mantinedev/mantine (@mantine/core)
v9.7.0Compare Source
View changelog with demos on mantine.dev website
Support Mantine development
You can now sponsor Mantine development with OpenCollective.
All funds are used to improve Mantine and create new features and components.
@mantine/mcp-server documentation coverage
@mantine/mcp-server now exposes 406 documentation
pages instead of 164. Previously only components were indexed – hooks, @mantine/form,
styling, theming, guides and help.mantine.dev FAQ pages are now included as
well. Changelog pages are deliberately excluded to keep search results focused on current APIs.
Documentation is now retrieved by section rather than by whole page.
get_item_docreturns a pageoutline (description, import statement and the list of section headings) by default, a single section
with the
sectionargument, or the entire page withfull: true. RequestinguseFormthis way returnsabout 1KB instead of 9KB, and the largest pages drop from roughly 89KB to 4KB.
Other improvements:
get_apitool – resolves a symbol such asuseFormoruseDisclosureto its TypeScriptsignature and exported types without knowing which page documents it
search_docsresults point at the specific section that matched, so a query like"validate a form with zod" resolves to the
zodsection of the schema validation page"command palette" finds Spotlight
list_itemsacceptsgroup,categoryandpackagein addition tokindget_item_propsreturns the TypeScript signature for hooks, and points at therelevant section for pages that document their API in prose
The server was also migrated to the official Model Context Protocol SDK, so the protocol version is
negotiated with the client instead of being pinned.
For setup details, supported tools, and client-specific instructions, see Mantine with LLMs.
Tour component
New Tour component provides interactive step-by-step application onboarding.
It highlights target elements with a spotlight overlay and displays tooltips with navigation controls.
Supports both guided (sequential) and beacon (non-sequential) modes.
Toolbar component
New Toolbar component provides an accessible toolbar container with roving tabindex
keyboard navigation, toggle groups with single/multiple selection, visual grouping, and dividers.
Styling is similar to RichTextEditor toolbar.
Toggle component
New Toggle component is a button that can be toggled between active and inactive states:
JsonViewer component
New JsonViewer component can be used to display complex JSON
structures with expand/collapse, type indicators, copy to clipboard, and other features:
Light Checkbox and Radio variant
Checkbox and Radio components now support
variant="light"–the indicator uses a light background color with a colored icon, similar to the light variant
available in other components like Button:
RichTextEditor image upload
RichTextEditor now supports image upload with loading states.
Images can be uploaded via toolbar button, drag and drop, or paste.
During upload, a local preview is shown with a loading indicator.
Configuring
getUploadImageExtensionis enough to enable uploads –onImageUploadandonImageUploadErrorprops ofRichTextEditorare optional overrides for the toolbar control.onImageUploadcan resolve either to a string or to{ src, alt, title }(new exportedImageUploadResulttype) to set alternative text on the uploaded image. Several files picked,dropped or pasted together are inserted in the order they were selected and are undone as one step.
Schedule event overlap mode
DayView and WeekView now support
eventOverlapModepropthat controls how events overlapping in time share the horizontal space. The default
columnsmodesplits the available width evenly between them, which becomes unreadable once a large number of events
overlap. The new
cascademode indents each event and stacks it over the previous one, so every eventkeeps a readable width no matter how many of them overlap.
The indent shrinks automatically as the group grows, so the event on top always keeps at least 60% of
the available width. Covered events can still be read and used: rest the pointer on one and it is
raised above the events covering it, which also makes its resize handles reachable. Keyboard users get
the same result by focusing the event with
Tab.eventOverlapRaiseDelayprop controls how long thepointer must rest on an event before it is raised, in milliseconds (
600by default).Schedule drop validation
All Schedule views can now reject a drag or resize before it is committed,
based on where the event is being dropped rather than on which event is being dragged. Previously
canDragEventandcanResizeEventonly decided whether an event was draggable or resizable at all,so the only way to prevent a double booking was to accept the drop, notice the conflict in the
handler and not update state – which produced a snap-back with no explanation:
preventEventOverlaprejects placements that would make the event overlap another event. Pass afunction to decide per pair of events: return
trueto forbid that particular overlap.canDropEventandcanResizeEventToare called before a drop or resize is committed – returnfalseto reject it.canDropExternalEventdoes the same for items dragged in from outside the schedule.onEventPlacementRejectedreports the rejection with the conflicting events and the reason.The checks compose: a placement is allowed only when the overlap check passes and the matching
callback returns a value other than
false. The overlap check runs first, soonEventPlacementRejectedcan report
conflictswithout your code repeating the work. While the pointer is over an invalidtarget the drag ghost and the resizing event get
data-invalid, so the rejection is visible before thepointer is released.
In resource views the conflict set is scoped to the target
resource, so moving an event onto another resource row is checked against that row rather than the one
it came from:
TreeSelect renderPill
TreeSelect now supports
renderPillprop to customize how pills are renderedfor selected values in
multipleandcheckboxmodes, similar torenderPillprop ofMultiSelect. The callback receives the tree node, so pills can use
nodePropsor the node structure, for example to show a different icon for parent and leaf nodes:Tooltip hideDetached
Tooltip now supports
hideDetachedprop, which works the same way asPopover hideDetached. It is enabled by default: the tooltip is now
hidden when its target element is removed from the DOM, hidden with
display: none, or scrolled outof a container that clips it. Previously, the tooltip stayed in place, floating over unrelated
content. Set
hideDetached={false}to restore the previous behavior. The prop has no effect onTooltip.Floating, which is positioned relative to the mouse pointer.Note that jsdom reports zero-size rectangles for every element, so in Jest and Vitest every tooltip
is treated as detached and hidden unless the test wrapper sets
env="test"onMantineProvider(as described in the Jest and Vitest guides) or the component is
rendered with
hideDetached={false}.Notifications auto close progress
Notifications now support
withAutoCloseProgressprop. When set, a progress linethat fills up until the notification auto closes is displayed at the bottom of every notification.
The line fades out while the auto close timer is paused (for example, when the notification is hovered),
starts over when the timer restarts, and uses the notification color. The prop sets the default for all notifications, it can be overridden
for individual notifications with
withAutoCloseProgressproperty innotifications.showandnotifications.updatefunctions:Notifications promise
New
notifications.promisefunction displays a loading notification while a promise is pending andupdates it with success or error state once the promise settles.
successanderrorcan befunctions that receive the resolved value or the rejection reason:
AppShell resizable sections
AppShell now supports resizing
AppShell.Navbar/AppShell.Asidehorizontally and
AppShell.Header/AppShell.Footervertically. Pass auseAppShellResizehook instance to the
resizeprop to enable it for the configured sections – handles supportmouse, touch and keyboard, and can report drag-to-collapse. Each section accepts a
labeloptionto localize the
aria-labelof its handle.See AppShell examples for more details.
Note that when the
resizeprop is used,--app-shell-*CSS variables are defined on theAppShellroot element instead of:root, so they cannot be read from content rendered in aPortal, for example from a Modal or a Drawer.
Templates and guides
vpCLI and are configured invite.config.mjs.Other changes
Escapeor a press outside, and is announced by screen readers. Newevents,interactive,roleandreturnFocusprops, andonDismisscallback.events={{ focus: false, touch: true }}andcloseOnEscape={false}to restore the previous behavior.variant="light"colors are resolved withtheme.variantColorResolver, so any CSS color or theme color with a shade can be used.keepMountednow uses ReactActivityinstead ofdisplay: none, so effects are paused while the bar is closed. SettransitionProps={{ keepMountedMode: 'display-none' }}to restore the previous behavior.mantine-form,mantine-combobox,mantine-custom-components) have been updated for 9.x with corrected API details and new patterns.gatsby-templateandredwood-templateare no longer maintained. Existing applications can keep using Mantine, the setup does not change.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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.