@epam/ai-dial-ui-kit 0.16.0-dev.62 → 0.16.0-dev.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/CHANGELOG.md +8 -0
- package/dist/{DateCellRenderer-6jyIN-OC.cjs → DateCellRenderer-DMq0adkA.cjs} +1 -1
- package/dist/components/New/Calendar/Calendar.js +245 -228
- package/dist/components/New/ErrorBoundary/ErrorBoundary.js +67 -0
- package/dist/components/New/Grid/components/SelectionCell.js +35 -33
- package/dist/components/Spinner/Spinner.js +16 -11
- package/dist/components-manifest.json +105 -7
- package/dist/dial-ui-kit.cjs +3 -3
- package/dist/dial-ui-kit.js +78 -76
- package/dist/grid.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/src/components/New/Calendar/Calendar.d.ts +32 -1
- package/dist/src/components/New/ErrorBoundary/ErrorBoundary.d.ts +78 -0
- package/dist/src/components/New/Grid/components/SelectionCell.d.ts +4 -1
- package/dist/src/components/Spinner/Spinner.d.ts +27 -1
- package/dist/src/index.d.ts +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -387,9 +387,10 @@ target already carries a stable class:
|
|
|
387
387
|
| `MarkdownEditor` | `dial-kit-markdown-editor` |
|
|
388
388
|
| `Grid` | `dial-kit-grid` (exported as `GRID_ROOT_CLASS`) |
|
|
389
389
|
|
|
390
|
-
|
|
390
|
+
Five more contribute no element of their own, and are addressed through what
|
|
391
391
|
they render: `ThemeScope` (a `display: contents` wrapper), `MultiSelectTags`
|
|
392
|
-
(`Tag`s),
|
|
392
|
+
(`Tag`s), `TooltipContainer` / `TooltipTrigger`, and `ErrorBoundary` (its
|
|
393
|
+
`LiveRegion` and fallback `StateScreen`).
|
|
393
394
|
|
|
394
395
|
Two neighbouring elements are reached through props instead, and keep being: a
|
|
395
396
|
`Dropdown`'s floating panel takes `listClassName`, and a `Popup`'s backdrop
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -31,10 +31,16 @@ Versions match the git tags on the `development` branch.
|
|
|
31
31
|
|
|
32
32
|
### Added
|
|
33
33
|
|
|
34
|
+
- **`ErrorBoundary` (2.0)** — DIAL Chat (`react-error-boundary` with its own `ErrorAlert`) and Models Garden (a hand-written class around `StateScreen`) each built their crash screen, and only Models Garden announced the crash. It catches a render error in its subtree and shows a `StateScreen` with a warning badge and a focused `PrimaryButton`; the button calls `onReset` and renders the children again, or reloads the page when there is no `onReset`. `resetKeys` clears the error when a value such as the route path changes, and `onError` reports it. The crash is announced through an assertive `LiveRegion` mounted with the boundary, before the error. All text comes from props. No new public class: it is addressed through `dial-kit-state-screen` and `dial-kit-live-region`. Additive.
|
|
35
|
+
|
|
36
|
+
- **`Spinner` (2.0) — `fullScreen`, `focusRef`** — Quick Apps, the editor and Models Garden each wrapped `Spinner` for their loading screen (`fullWidth` with `h-screen` or `h-dvh`, their own background and layer), and the three drifted apart. `fullScreen` makes the status root a fixed overlay on `bg-layer-base` at the kit's popup layer with the ring centred, so it covers the page and its header wherever it is rendered. `focusRef` makes the ring focusable (`tabIndex={-1}`) and points the ref at it, so a host can move focus to the loading state after a retry removes the focused control; the ring, not the overlay, takes focus, so the outline stays on screen. Both default off. Additive.
|
|
37
|
+
|
|
34
38
|
- **`LoginScreen` (2.0)** — the full-page sign-in screen DIAL Chat and Models Garden each built by hand: themed artwork (`gradient-1` / `gradient-2`) behind a centred card with the product mark, a focusable `h1`, state content (`children`: a spinner, an error with a retry, a notice) and one full-width link button per identity provider, with a decorative logo that is dropped when it fails to load. Edge-to-edge without the card surface on mobile. Fetching providers and building their URLs stay with the application. Stamps `DIAL_KIT_CLASS.loginScreen`. Additive.
|
|
35
39
|
|
|
36
40
|
- **`Calendar`, `MarkdownEditor` (2.0) — `ariaDescribedBy`; `MarkdownEditor` — `invalid`** — a host rendering its own `ErrorText` under these controls had nothing to link it with: `Calendar` took `invalid` but no description, and `MarkdownEditor` took neither, so hosts patched the DOM. `Calendar` sets `aria-describedby` on the focusable control — the masked input in `time` mode, which also gets `aria-invalid`, and the popover trigger otherwise. `MarkdownEditor` sets `aria-describedby` and `aria-invalid` on its textarea, and `invalid` draws the card border in the error colour. Reported from pg-ai-chat. Additive.
|
|
37
41
|
|
|
42
|
+
- **`Calendar` (2.0) — `renderTimeField`, `pickerButtonClassName`** — the `datetime` popover's footer time field could not be swapped for a host's own control, and a host that fitted the `time` field into a denser layout could not reach its clock button. `renderTimeField` (`datetime` mode) replaces the footer's time field with a control of the host's choice, e.g. one that opens its own hour/minute picker; it receives the `"HH:mm"` value, `onChange`, `onBlur`, `disabled`, `invalid`, `ariaLabel` and `timezoneLabel`, and the `Calendar` keeps owning the `Date`. A floating element opened from such a control no longer closes the calendar, because the popover is now registered in a `FloatingTree`. `pickerButtonClassName` (`time` mode) is merged onto the clock button after its defaults, so `size-6 end-1.5` overrides the default `size-8 end-2`, the way `fieldClassName` does for the field. Hosts that set neither prop see no change. Requested from `ai-dial-chat`. Additive.
|
|
43
|
+
|
|
38
44
|
- **`StateScreen` (2.0) — `announce`** — wraps the screen in a `LiveRegion` of the given politeness, for a state that replaces content the user was working in (a load error, a crash), so hosts no longer wrap it in their own `role="alert"` div. Omitted, the screen renders exactly as before. Reported from pg-ai-chat. Additive.
|
|
39
45
|
|
|
40
46
|
- **`Notification` (2.0) — `closeAriaLabel`** — the close button was always named "Close notification", so a localised host could not use `closable`. Defaults to the old text, as `Popup` and `BottomSheet` already do. Reported from pg-ai-chat. Additive.
|
|
@@ -109,6 +115,8 @@ Versions match the git tags on the `development` branch.
|
|
|
109
115
|
|
|
110
116
|
### Fixed
|
|
111
117
|
|
|
118
|
+
- **`Grid` (2.0) — a row that `rowSelection.isRowSelectable` rejects shows a disabled control** — the selection column disabled its checkbox or radio only for `disabledRowIds`. A row rejected by a consumer's `additionalGridOptions.rowSelection.isRowSelectable` kept a live-looking control that ag-Grid silently refused to select, so a click did nothing and gave no hint why. The control now also follows the row node's `selectable` flag and updates when it changes. Reported from `ai-dial-chat` ([#7663](https://github.com/epam/ai-dial-chat/issues/7663): folder rows in the attach dialog of a model without folder attachments).
|
|
119
|
+
|
|
112
120
|
- **`Dropdown` (2.0) — a closed trigger no longer points `aria-controls` at a missing overlay** — the overlay is mounted only while open, but the trigger always carried `aria-controls` with the overlay's id, so while closed it referenced an element that was not in the DOM (axe `aria-valid-attr-value`). A trigger that passed `aria-controls={undefined}` while closed got the kit's id anyway, since `undefined` fell through to it. The attribute is now set only while the overlay is open. Reported from `ai-dial-chat` (the PDF thumbnails toggle).
|
|
113
121
|
|
|
114
122
|
- **`EntityIdentity` (2.0) — the icon sits on a themable `bg-entity-icon` plate, so dark logos stay visible in a dark theme** — model and vendor logos are often a monochrome dark glyph on a transparent background, and the image was drawn with no background, straight on the dark card. The image now sits on `bg-entity-icon`, which reads `--bg-entity-icon` and falls back to `--bg-layer-sunken`; a dark theme sets `--bg-entity-icon` to a light value to keep such logos legible. A transparent icon now shows the sunken layer behind it until the theme sets the new variable. `Avatar` gains `imageClassName`, applied only while the image is shown, so the plate never overrides the initials' colour pair. Reported in [#971](https://github.com/epam/ai-dial-ui-kit/issues/971).
|