Addedยท 32
CopyToClipboard:showTooltipandshowToastturn the tooltip and the "Copied!" toast on or off.onCopyandonErrorreport the result,timeoutsets how long the copied state lasts,sideplaces the tooltip and toast, anddisabledturns copying off.buttonPropsandtextPropsreach the button and the text, andchildrenreplaces the text shown without changing what is copied.useHasAnchoredToastProvider()fromxiod-ui/toasttells whether anAnchoredToastProvideris mounted above a component.LabelsProviderfromxiod-ui/labels-providerreplaces the built-in English text (button names, announcements, validation messages, placeholders) for everything inside it, so the library can be translated. Every component with built-in text also takes alabelsprop that overrides it for one instance.Grid:columnsandrowstake a value per breakpoint, such ascolumns={{ base: 1, md: 3 }}, andGridItem'scolSpanandrowSpando too. NewjustifyContentspreads the columns themselves.Slider:thumbClassName,trackClassName,indicatorClassName,getAriaLabelandgetAriaValueText. A single-thumb slider passes itsaria-labelto the thumb.ListBox:disabled,deselectableandonHighlightChange;nullclears a controlled value. Multiple lists select a range with Shift (click or arrows) and everything with Ctrl or โ + A.ListBoxItemtakestextValuefor typeahead andindicatorto replace the check on selected items.ThemeProvider:forcedThemelocks a page to light or dark, anddisableTransitionOnChange={false}keeps transitions running while the theme changes. A mode or palette saved in another tab or a same-origin iframe is picked up at once.useTheme()returnsforcedTheme.DashboardGrid:onTileDragStart,onTileDragEnd,onTileResizeStartandonTileResizeEnd.Draggable:position/onPositionChange,size/onSizeChange,minimized/defaultMinimized/onMinimizedChange,maximized/defaultMaximized/onMaximizedChange,closeOnEscapeandresizeHandleProps.Sortable:disabled(on the list or oneSortableItem),getItemLabelandSortableItem'stextValuefor what screen readers announce,onSortStart,onSortEndandrenderOverlay. Items scroll their container while dragged near its edge.RulerPicker:step,format,disabledandname.Gauge:minandformat.CircularProgress:min,formatandshowValue;childrenrender over the ring.DotMatrix:decorativehides it from screen readers.Resizable: the handle has a name, "Resize panels" by default.Timelineis a list: the active item hasaria-current="step", and each item's status is read out.Carousel:index/defaultIndex/onIndexChange,opts.durationandopts.draggable, a play/pause control while autoplay runs, and "N of M" slide names.api.on("reInit")fires after a resize.Calendar:locale,month/defaultMonth/onMonthChangeandshowFooter.DatePicker:locale,open/defaultOpen/onOpenChange,side,align,sideOffset,name,endName,requiredandcontrolId.disabled={true}disables the whole picker.OptionPicker:value(withnullfor none),placeholder,open/defaultOpen/onOpenChange,side,align,sideOffset,name, anddisabledon an option.ColorPicker:format/defaultFormat/onFormatChangeandformats.showLightnessSlidernames whatshowAlphaSlideralways did.InputSensitive:showCopy,revealed/defaultRevealed/onRevealedChangeandrevealWhileTyping.InputPhone:required.InputOtpInput:inputClassNamestyles the input inside the box.FileUpload:minSizeMB,validateandpreventDuplicates.WheelPicker:disabled,readOnly,nameandfade. PageUp and PageDown move by a page.WaveformScrubber:onMicrophoneErroron the live waveform.MorphicToaster:closeButtonandlimit. Escape closes a focused toast.ToastProvider:classNamesfor the viewport and each toast's parts, and a per-toasticon.Drawer:backdropandbackdropClassName.Sidebar:onOpenChange,keyboardShortcut(orfalseto turn โ/Ctrl + B off) andcookieName. Active menu buttons havearia-current="page".PaginationLink:disabled.AgentSteps: compound steps can be a list (list).
Changedยท 13
- Updated the
xiod-iconsdependency to 1.1.3. CopyToClipboard: the tooltip follows your app'sTooltipProviderdelay instead of always opening after 200 ms.onCopyandonErrornow report the copy, replacing the wrapper's nativeonCopyandonErrorevents.disableTooltipis deprecated; useshowTooltip={false}.useCopyToClipboard:onCopyreceives the copied value, andcopyToClipboardkeeps the same identity across renders.- Built on Base UI 1.9. Disabled
AccordionTriggerandCollapsibleTriggerbuttons are now nativelydisabled. InputPhone: the country button is announced as "+1 United States, change country" instead of "Select country, current United States (+1)", so its name starts with the text it shows.DashboardGrid: a tile dropped or resized onto others pushes them out of the way, aspreventCollision={false}always promised, and never lands on a static tile.onLayoutChangefires once per change, and not for a click that moved nothing. The remove button is named "Remove tile".RulerPickerno longer callsonChangewhen it mounts. Its default name is "Ruler picker".Sortable: items are named bygetItemLabel, thentextValue, then their id.ListBox: selected items show a check, and only the highlighted item gets the accent background.data-selectedanddata-disabledare present or absent instead of"true"/"false".Bubblefollows thealignof theMessageit sits in unless you set it.MessageAvatarlines up with the last bubble above a footer of any height.MorphicToastkeeps your title's capitalisation.BreadcrumbPageis announced as the current page, not a disabled link.
Fixedยท 34
CopyToClipboard: copying is confirmed without any setup. Without anAnchoredToastProvider, the tooltip showscopiedTextand screen readers announce it.- Tooltip-style anchored toasts show their
description.CopyToClipboard's toast was empty before. CopyToClipboardlays out correctly in right-to-left pages, and the full value shows on hover when the field cuts it off.useCopyToClipboardcallsonErrorfor an empty value instead of failing silently.AccordionTriggerandCollapsibleTriggerlook disabled when they are.- Dark mode: muted text, such as descriptions, labels and hints, now meets WCAG AA contrast on cards, popovers and muted surfaces.
TabsList, and the shortcuts inMenu,ContextMenuandCommand, now meet WCAG AA contrast. A shortcut on the highlighted item takes the item's text color instead of staying grey on the highlight.Calendar: "today" can no longer shift to a different date while the calendar stays mounted.- Right-to-left pages:
Calendar,Carousel,Drawer,Sidebar,Timeline,Slider,Resizable,Sortable,RulerPicker,DashboardGrid,Draggable,ColorPicker,InputPhone,InputSensitive,FileUpload,MessageandBubblelay out, drag and respond to arrow keys the right way round, and directional chevrons mirror. - A
refpassed toDashboardGrid,Draggable,Sortable,WheelPicker,WaveformScrubber,Orb,KineticClickor aResizableHandleno longer stops dragging, measuring or hit-testing from working. Slider: the segmented slider shows keyboard focus, and vertical sliders get their track and thumb sizes.ListBox: aListBoxGroupis named by itsListBoxLabel.Grid:GridItem'scolStartandcolEndcount from the start edge in right-to-left pages too.ThemeProvider: astorageKeyor palette name containing</script>can't break out of the inline script.DashboardGrid: tiles, the drop placeholder and the grid lines line up, also withcontainerPadding. Tiles wider than the columns shrink when the breakpoint changes, and statics are never overlapped after compacting.Draggable: the panel stays on screen when the window shrinks, maximising follows the window, and it no longer pointsaria-labelledbyat a missing title.GaugeandCircularProgresshave an accessible name and value text. Amaxof 0 or less no longer producesNaN, and the indeterminate spinner slows down under reduced motion.DotMatrixpauses while offscreen and has a name by default.WheelPickercallsonValueChangewhen uncontrolled, forgets wheels that unmount, and lets the page scroll past it at either end.WaveformScrubber: arrow keys move the position when uncontrolled.Carousel: the slide stays in place after a resize, a customonClickon the arrows no longer replaces scrolling, inputs inside slides can be focused, and plugins are cleaned up.Calendar:{ dayOfWeek: 0 }matches Sundays, picking a range end in a later month keeps that month in view, and the month and year views respectminDateandmaxDate.DatePicker: a controllednullclears the date, typed dates respectminDate,maxDateanddisabled, impossible dates like 2026-02-31 are rejected, and the inputs can be labelled.OptionPicker: the selected option is exposed to screen readers, the opening easing applies, and every option is shown, not just the first five.ColorPicker: typing HSL values gives the colour typed, the opacity slider works right to left, and hex accepts#abcand#rrggbbaa. Colour strings keep their alpha.InputPhone: countries that share a dial code, such as Canada and the US, stay selected; aLabelorFieldnames the input; and the country search no longer zooms the page on iOS.InputPaymentandInputPhonefields keep a name from aLabelorField.InputSensitive: aLabelreaches the input while the value is masked.FileUpload: youronChangeonFileUploadInputno longer stops files being added, quick successive drops keep every file, sizes of 1 TB and up format correctly, and a file dropped on a disabled zone no longer opens in the browser.MorphicToast: a toast shown again right after dismissing one with the same id stays visible.Toast: toasts at the top of the screen leave upwards.Sidebar: no error in browsers without the Cookie Store API, โ/Ctrl + B is left alone inside text fields, and the tooltip opens away from a right-hand sidebar.PaginationInput: youronBluroronKeyDownno longer stops Enter from going to the page.AgentSteps: theexecuting,planningandcompletedicons render as icons. Large labels are no longer cut off, and long ones end in an ellipsis.
Deprecatedยท 5
ColorPicker'sshowAlphaSlider: useshowLightnessSlider.DotMatrix'sariaLabel: usearia-label.Carousel'sopts.speed, which never had an effect: useopts.duration.OTPField,OTPFieldGroup,OTPFieldInputandOTPFieldSeparator: use theInputOtpnames.Grid'sjustify="between": usejustifyContent="between".