Repository navigation
0.15.0
·
84 commits
to development
since this release
Features
- [Breaking] Legacy theme variable fallbacks removed — a theme that still sets
--bg-control-neutral-hover,--stroke-focus-blackor--bg-control-accent-gradient-*now falls back to the kit's default colour; rename them to--bg-control-neutral-hover-muted,--stroke-focusand--bg-gradient-*(#913) — see migration guide - [Breaking]
Slider(2.0) redrawn — a 12px accent thumb with a hover, focus and drag halo over an accent-tint track; the props are unchanged, so typecheck will not flag it (#918) — see migration guide SchemaRenderer(2.0) added — the JSON Schema form rebuilt from 2.0 controls only, keeping the 1.0 props exceptjsonEditorTheme, with real toggle-button section headers, a name on every control, and a monospaceTextareainstead of Monaco for values the schema does not describe (#920)AutocompleteTagInput(2.0) added — a tag field that suggests values while typing and still accepts free text, on the ARIA combobox pattern;openOnFocuslists every remaining suggestion as soon as the field is focused (#916, #925, 2c9b255)Breadcrumbs(2.0) added — a one-line trail whose segments truncate behindEllipsisTooltipand whose middle collapses into an overflow menu pastmaxVisibleItems;BreadcrumbsSize.Headingserves a path that doubles as the page title (#885, #886)FilterChips(2.0) added — a chip-shaped single-select filter row ofaria-pressedtoggles, the sibling ofTabsandSegmentedControl, withstretchfor equal-width chips (#883)FileIcon,FileName,FolderNameandSharedEntityIndicator(2.0) added — the file-manager row pieces with the new per-kind file glyphs, theme-token colours and names such as "PDF file, shared" (#894)TransferQueue(2.0) added — the floating upload, download, import and export status panel, generic over{ id, name, status }items, replacing the conversation panel'sImportExportQueue(#896)BottomSheetandSideDrawer(2.0) added — a bottom-edge sheet and an inline-end drawer on the same Floating UI focus, dismiss and scroll-lock pieces asPopup, withstyle,overlayStyleandheaderClassNamefor themes delivered asvar(--…)(#908, #909, #911)AvatarandBadge(2.0) added — an image-or-initials avatar coloured from its name (with the exportedextractInitials), and a static 24px label in an outlined or a filledBadgeColorvariant (#906, #907)EntityIdentity(2.0) added — the identity block of a DIAL entity (icon, coloured type label, name and version, with optional featured chip, status and footer), plus a newEntityTypeenum (#914)StarterButton(2.0) added — the outlined conversation-starter pill with gradient-stroked icons, drawing a sparkles icon by default;iconBefore={null}gives a label-only pill (#905, #921)- Public class names on every 2.0 component — each stamps a stable, declaration-free class from the exported
DIAL_KIT_CLASSrecord on the element that draws it, so a host can restyle parts the props do not reach without selecting on hashed locals, DOM order oraria-label(#882) --z-overlaystacking token — the overlay layers becomez-popup,z-floating,z-interactive-tooltipandz-tooltip, derived from one variable that defaults to today's 52, so a host can lift every kit overlay at once (#889)DropdownlistStyleandPopupoverlayStyle(2.0) — inline styles on the portalled panel and backdrop, sovar(--…)values reach menu rows and Floating UI's inlineoverflowcan be overridden (#889, #926)Slider(2.0) —showTooltip,showTicks,leftContentandrightContentslots, andshowValueInputfor a synced 24pxNumberInputafter the track (#918, #925, #927)Tabs(2.0) —TabOrientation.Verticaldraws a settings-page rail driven by ArrowUp and ArrowDown and named bysectionLabel;tabListClassNamereaches thetablist, and the selected tab carriesdial-kit-tab-selected(#885, #886)InteractiveTooltip(2.0) —trigger={InteractiveTooltipTrigger.Click}opens the panel on click or tap, so an info chip works on mobile, where the hover panel renders nothing (#924)Notification(2.0) —actionslot renders a control such as "Try again" at the inline end, inside the live region, instead of packing it intomessage(#890)Select(2.0) —collapseTagOverflowkeeps a multi-select on one row and folds the tags that do not fit into a+Ntag whose tooltip lists them (#912)InlineSelect(2.0) —triggerClassName,triggerLabelClassName,onOpenChange, a controlledopenandlistStyle, so a styled pill trigger and a popover that owns Escape can both use it (#902, #904)ButtonDropdown(2.0) —dropdownPropsforwardslistClassNameandmatchReferenceWidth, so a short button's menu no longer has to be as narrow as the button (#899)Accordion(2.0) —caretPositionputs the caret before the title (AccordionCaretPosition.Start) or after it, the default (#897)Calendar(2.0) —showTimezonelabelstimeanddatetimefields with the viewer's timezone (through the exportedgetTimezoneLabel), andonBlurfires when the time input loses focus (#879, #881)MarkdownEditorandDialMarkdownEditor—showDragbar={false}hides the bottom resize grip without overriding.w-md-editor-bar(#922, #923)Grid(2.0) restyled to the 2.0 design — a 1px header divider, hovered and selected rows outlined and tinted with new-subtleaccent tokens, and caps column titles; visual only (#915)DialSchemaRenderer— an unschematizedadditionalPropertiesentry gets a type selector and JSON editing for objects and arrays, instead of rendering"[object Object]"(#884)DialFileManager—skipForbiddenSymbolsCheckForActionskeeps every row action for names with forbidden characters, andadditionalGridOptionscan now setrowHeightandheaderHeight(#891, #895)
Fixes
ButtonandIconButton(2.0) — a disabled button with a tooltip rendersaria-disabled="true"instead ofdisabled, so the tooltip opens for mouse and keyboard users while the click stays swallowed (#901)DropdownandSelectsubmenus open from the keyboard (ArrowRight, Enter or Space, mirrored in RTL) with arrow,HomeandEndnavigation inside, and close when their menu or the page scrolls (#893, #913)SelectandDropdown(2.0) rows sit 2px apart with the same 8px vertical inset in every list and submenu, and keep their 40px height when the panel is capped (#892, #912)Select(2.0) multi-select tags are the design's 24px field chip, so one row of tags fits the 40px field (#912)Accordion(2.0) — the caret mirrors in RTL and the panel animates open and shut; collapsed content now stays mounted andinert, so render it conditionally if you relied on it unmounting (#898)Input,TextareaandRadioGroupPopupFieldkeep their error border on hover and draw the focus ring inerror-alpha, and aTagInputholding tags stays 40px tall (#910)MarkdownEditor(2.0) — the live preview takes kit tokens instead of GitHub's stylesheet (a full-height divider, no white patch in dark themes, list markers and task boxes restored), and the panes swap sides correctly in RTL (#887)InlineSelectTrigger(2.0) — a caller'sclassNamemerges with the trigger's own classes instead of replacing them,dial-kit-inline-selectincluded (#902)Notification(2.0) — the close button stays on the first line of a multi-line toast and keeps its 24px box (d3a7f19)Textarea(2.0) —invalidno longer reaches the DOM, ending React's non-boolean attribute warning (#920)ConfirmationPopup(2.0) — theDangervariant no longer draws a 4px red top border (#913)DialSchemaRenderer— required-field errors quote the label ("API key" is required); tests asserting the old text need the quotes (#900)