Repository navigation
0.16.0
·
10 commits
to development
since this release
Features
- [Breaking]
styles.cssbuilt with Tailwind CSS v4 — variant utilities (hover:,focus-visible:,disabled:…) move into@layer ui, so a host's unlayered CSS now always beats them andhover:applies only on devices that can hover; v4's preflight givesinput/select/textareaa transparent background and no radius, and the stylesheet targets Safari 16.4+, Chrome 111+ and Firefox 128+ (#937) — see migration guide - [Breaking]
DialFileManagerremoved — the legacy file manager,DialFoldersTree,DialDestinationFolderPopup, its provider, hooks, enums, column constants and the./file-managersubpath are gone; import them from@epam/ai-dial-react-file-manager, which exports every one of these names (#940) — see migration guide - [Breaking] 34 unused 1.0 components and
DialSchemaRendererremoved —DialSelect,DialPopup,DialGrid,DialCheckbox,LazyDialJsonEditorand the rest give way to their 2.0 counterparts, andmonaco-editor/@monaco-editor/reactare no longer optional peers (#979) — see migration guide - [Breaking] Legacy
DialAnalyticsCard,DialAnalyticsBar,DialAnalyticsBarGroup,DialAnalyticsHistogram,DialAnalyticsErrorTagand the 1.0DialStepsremoved — use the 2.0Analytics*components, a red filledBadgeandSteps(#983) — see migration guide - [Breaking]
CaptionTextandErrorText(2.0) no longer renderrole="alert"— helper text and validation errors stop interrupting screen readers;Input,Textarea,Selectand theSchemaRendererfields link their ownerror/captionthrougharia-describedbyand setaria-invalid,SelectgainsariaDescribedBy, and tests usinggetByRole('alert')need another query (#964) — see migration guide - [Breaking]
Grid(2.0) empty state follows Patterns 2.0 — the sharedNoDataContentcard replaces the 100px icon, the defaults read "No items yet" / "No items found" with newfilteredEmptyState*,emptyStateActionandemptyStateLiveprops, and the no-rows message is no longer announced by default;Selectgains the samefilteredEmptyState*props (#1004) — see migration guide AnalyticsCard,AnalyticsBar,AnalyticsBarGroupandAnalyticsHistogram(2.0) added — the DIAL Admin analytics set rebuilt on the 2.0Tooltip,AccordionandSpinner, with errors on a redBadge; compare-mode dividers line up across an equal-height row of cards (#978, #997)StepsandLabelledText(2.0) added — same props asDialSteps/DialLabelledText, so migrating is a rename;Stepsis an ordered list witharia-current="step"and announced statuses, andLabelledTexttruncates its value behindEllipsisTooltip(#977, #983)StateScreenandErrorBoundary(2.0) added — a whole screen for a state the app cannot work past (signed out, forbidden), and the crash screen built on it that catches a render error, focuses a retry button, resets onresetKeysand announces the crash through an assertiveLiveRegion(#958, #1001)LoginScreen(2.0) added — the full-page sign-in screen DIAL Chat and Models Garden each built by hand, with themed artwork, a focusableh1and one link button per identity provider;SpinnergainsfullScreenandfocusReffor the matching loading screen (#998, #999)FormSectionandSelectedEntityCard(2.0) added — the titled section of a form or builder column, and the card of a field holding one selected model, agent or toolset;EntityIdentitygainsshowType, and itsfooternow sits right under the name (#975, #980)LiveRegion(2.0) added — an always-mountedstatus/alertregion, so the first message put into it is announced reliably;announceonCaptionText/ErrorTextwraps them in one (#990)ToggleChip(2.0) added — anaria-pressedchip that switches one option on and off independently, for a row of toggles such as a model's tools (#991)ResizeHandle(2.0) added — a pointer- and keyboard-driven separator on a panel's inline-end edge, withrole="separator", RTL mirroring, double-click reset and a short gradient segment that lights up on hover (#956, #959, #969)Dropdown(2.0) —searchableadds a search field above the items that filters them (sub-menus included), highlights matches and announcesnoResultsLabel;maxVisibleItemscaps the list at a number of rows (#946)Dropdown(2.0) —overlayRole(DropdownOverlayRole.Menu/Dialog/None) withoverlayAriaLabel/overlayAriaLabelledBygives arenderOverlaypanel that is not a menu valid ARIA, andreturnFocus={false}opts out of returning focus to the trigger (#991)ButtonDropdownandDropdownItem(2.0) — controlledopen/defaultOpen/onOpenChangeand controlled submenus (subMenuOpen/onSubMenuOpenChange) keep menu state across a responsive layout change;iconAfter={null}hides the chevron anddropdownPropsforwards search and placement options (#1006)Calendar(2.0) —timemode opens an hour/minute picker from a clock button (showTimePicker={false}restores the bare field),showTimezonelabels thedatetimepopover's time field too, andrenderTimeField/pickerButtonClassNamelet a host fit its own time control (#945, #954, #1000)- Accessibility hooks —
ariaDescribedByonCalendarandMarkdownEditor(plusinvalidonMarkdownEditor),announceonStateScreen,closeAriaLabelonNotificationandStep.disabledonSteps, so hosts no longer patch the DOM (#994) Grid(2.0) —appearance={GridAppearance.Chat}draws the design's Chat table (borderless card, 12px cell padding, inset row dividers, rounded hover rows), andcolorScheme={GridColorScheme.Dark}paints native controls such as the date-filter calendar dark (#932, #981, #982)NoDataContent(2.0) — the Patterns 2.0 empty state: a themed placeholder-list illustration, new title and description styles and anactionslot;Select's no-options state uses it too (#968)PopupandConfirmationPopup(2.0) — footer buttons split the row evenly on mobile, so a Cancel/Confirm pair renders 50/50 (#930, #947)Tabs(2.0) —TabItem.status(TabStatus.Error/Warning) draws a coloured icon and adds the status to the tab's accessible name, withstatusLabelfor translations (#974)Tag(2.0) —TagAppearance.Bordered, the 24px rimmed value chip of a form field that stays visible on a raised surface (#976)Avatar(2.0) —coloroverrides the name-derived colour pair, withAVATAR_PALETTE,AvatarColorandAvatarColorClassesexported to pin a palette entry (#929)Breadcrumbs(2.0) —BreadcrumbsSize.Tiny, a 16px trail for a dense header whose current page truncates last and whose focus ring is never clipped (#1003)PasswordInput(2.0) —isToggleHiddendrops the reveal toggle while the field stays editable (#973)TransferQueue(2.0) — a row with a numericpercentshows a determinate progress ring instead of the spinner (#953)ProgressBarandNotification(2.0) —ProgressBarRole.Meterrendersrole="meter"for a quota or capacity level, andNotificationSurface.Neutraldraws any variant on the neutral sunken layer; the always-overwritten nativeroleis no longer inProgressBarProps(#991)FileName(2.0) —iconreplaces the type icon, e.g. to mark a special folder in a tree (#985)BottomSheet(2.0) — the backdrop carriesdial-kit-bottom-sheet-overlay(DIAL_KIT_CLASS.bottomSheetOverlay), so a host can lift the whole sheet without hashed-class selectors (#941)- Monospace type steps
dial-code-semi-text,dial-tiny-code-textanddial-tiny-code-semi-textadded (#991)
Fixes
Spinner(2.0) andDialLoaderspin again (regression fix) — a duplicate theme key had droppedanimate-spin-stepssince 0.13.0;bg-info/bg-successalso fall back to their 2.0 shades again (#938)Dropdown(2.0) passes axe —aria-haspopup/aria-expanded/aria-controlsmove from the role-less wrapper onto the trigger (trigger-lesstrigger={[]}dropdowns included),aria-controlsis set only while open, Floating UI'saria-hiddenfocus guards are gone, andSelect's listbox no longer sits inside a menu (#967, #993, #996, #1007)Grid(2.0) — hovered and selected rows drop the 0.15.0 outline and keep their fill alone,rightAligned/numericColumncells right-align their text, and a row thatisRowSelectablerejects shows a disabled selection control (#981, #984, #1002)PopupandConfirmationPopup(2.0) — the title is set in Heading 2 (dial-h2-text, wasdial-h1-text), the size the design gives it;titleClassNamestill merges on top (#950, #982)shadow-xs,shadow-sm,shadow-mdandshadow-lgmatch the design's scale —smandmdbecome two-layer andxsglows evenly around a pressed button; no token is renamed (#952, #982)TransferQueue(2.0) — the header no longer counts failed items, and closing asks for confirmation only while an item is still running (#952)FolderPath(2.0) — a collapsed path shows the full path in a tooltip instead of a click menu of disabled items, and the leaf folder keeps its width longest (#948, #951)Radio,CheckboxandSwitch(2.0) show their hover state while the label text is hovered (#949)Input,Selectand the other.dial-kit-inputfields draw the focus ring over the border, so anoverflowcontainer no longer clips it (#987)EntityIdentity(2.0) draws its icon on a themablebg-entity-iconplate, so dark logos stay visible in a dark theme;AvatargainsimageClassName(#972)StarterButton(2.0) is transparent at rest and fills only on hover and press, as designed (#991)- Primary solid buttons start their gradient at the border box, removing the sliver along each edge (#989)
MarkdownEditor(2.0) toolbar wraps on narrow cards instead of overflowing (#934)mergeClassestreats thedial-*-texttype scale as one conflict group — a caller'sdial-small-textnow replaces a component's default instead of losing on stylesheet order (#964)- The package no longer publishes
.d.tsfiles for specs, tests and mocks (#939)
Other
- Dependencies refreshed for security advisories —
globoverridden to 14.0.3 for CVE-2026-118773,minimatchoverridden to 11 under@typescript-eslintandglob(GHSA-g3hv-75wg-m249), andhono,@hono/node-server,@modelcontextprotocol/sdk,viteandstorybookbumped; all are development-scope and the runtime dependency ranges are unchanged (#960, #961, #962, #963, #965, #966, #995, #1005, #1009, b1e2732, ec0b33b)