@epam/ai-dial-ui-kit 0.16.0-dev.25 → 0.16.0-dev.32

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.
Files changed (32) hide show
  1. package/dist/CHANGELOG.md +9 -0
  2. package/dist/{DateCellRenderer-BmgQYPuv.cjs → DateCellRenderer-ZFBZsJdH.cjs} +24 -24
  3. package/dist/{IconButton-B1Hx0Y3y.cjs → IconButton-CsePS6PY.cjs} +1 -1
  4. package/dist/{JsonEditor-Bxui5wJH.cjs → JsonEditor-DQhHSm93.cjs} +1 -1
  5. package/dist/{MarkdownEditor-BKtFs714.cjs → MarkdownEditor-CvIPIbPq.cjs} +1 -1
  6. package/dist/{MarkdownEditor-Bapd1ycU.cjs → MarkdownEditor-TR6X_gdl.cjs} +1 -1
  7. package/dist/{MarkdownEditorContainer-DLPODjar.cjs → MarkdownEditorContainer-JIn_VNUX.cjs} +1 -1
  8. package/dist/{Switch-DAaAOaIu.cjs → Switch-HEL_aq23.cjs} +1 -1
  9. package/dist/components/New/CaptionText/CaptionText.js +3 -4
  10. package/dist/components/New/Dropdown/Dropdown.js +208 -197
  11. package/dist/components/New/Input/Input.js +121 -107
  12. package/dist/components/New/SchemaRenderer/components/SchemaField.js +45 -44
  13. package/dist/components/New/SchemaRenderer/components/SchemaFieldContent.js +41 -38
  14. package/dist/components/New/SchemaRenderer/components/SchemaPrimitiveField.js +45 -39
  15. package/dist/components/New/Select/Select.js +201 -198
  16. package/dist/components/New/Textarea/Textarea.js +37 -33
  17. package/dist/components-manifest.json +10 -4
  18. package/dist/dial-ui-kit.cjs +3 -3
  19. package/dist/editors.cjs +1 -1
  20. package/dist/grid.cjs +1 -1
  21. package/dist/lazy-kq-xfXXv.cjs +1 -0
  22. package/dist/{merge-classes-BEJXjzkx.cjs → merge-classes-B0SnCG4i.cjs} +1 -1
  23. package/dist/migration-guides/0.16.0/caption-text-no-alert-role.md +90 -0
  24. package/dist/migration-guides/README.md +1 -0
  25. package/dist/src/components/New/CaptionText/CaptionText.d.ts +8 -1
  26. package/dist/src/components/New/SchemaRenderer/components/SchemaFieldContent.d.ts +1 -0
  27. package/dist/src/components/New/SchemaRenderer/components/SchemaPrimitiveField.d.ts +2 -0
  28. package/dist/src/components/New/SchemaRenderer/types.d.ts +3 -1
  29. package/dist/src/components/New/Select/Select.d.ts +2 -0
  30. package/dist/utils/merge-classes.js +36 -7
  31. package/package.json +1 -1
  32. package/dist/lazy-_W6FYhKg.cjs +0 -1
package/dist/CHANGELOG.md CHANGED
@@ -20,8 +20,15 @@ Versions match the git tags on the `development` branch.
20
20
  - **`DialFileManager` — removed from the kit, use `@epam/ai-dial-react-file-manager`** — the legacy file manager, its `DialFoldersTree`, `DialDestinationFolderPopup`, `FileManagerProvider`, `useFileManagerContext`, `useDialFileManagerTabs`, the `DialFileManagerTabs` / `DialFileManagerActions` / `FileManagerColumnKey` enums, the `NAME_COLUMN` / `SIZE_COLUMN` / `UPDATED_AT_COLUMN` constants, its types, and the `./file-manager` subpath are gone. The file manager is developed in its own package, which exports every one of these names. Keeping a second, older copy in the kit meant two `DialFileManager`s that drifted apart. `DialFileName`, `DialFolderName`, `DialFileIcon`, `DialSharedEntityIndicator` and the file models stay.
21
21
  See [migration guide](migration-guides/0.16.0/legacy-file-manager-removal.md).
22
22
 
23
+ - **`CaptionText`, `ErrorText` (2.0) — no `role="alert"`** — every caption, including a plain field description, was an assertive live region, so a screen reader interrupted the user with helper text and every validation error, and a host that wrapped `ErrorText` in its own alert region announced the message twice. They are now plain text that a control points at: `Input`, `Textarea`, `Select` and the `SchemaRenderer` fields link their own `error` / `caption` through `aria-describedby` and set `aria-invalid` on an error, as `Slider`, `RadioGroup`, `RadioGroupPopupField` and `FileDropzone` already did. A host that renders `ErrorText` next to its own control links it the same way; a message that must interrupt, such as a failed submit, goes in a `role="alert"` region of the host's. Tests that found these messages with `getByRole('alert')` need another query. The legacy `DialCaptionText` / `DialErrorText` are unchanged. Reported from `ai-dial-chat`.
24
+ See [migration guide](migration-guides/0.16.0/caption-text-no-alert-role.md).
25
+
23
26
  ### Added
24
27
 
28
+ - **`Select` (2.0) — `ariaDescribedBy`** — ids of elements that describe the field from outside it, such as an error a form renders under its own label; the field's own `error` / `caption` are linked automatically. Additive.
29
+
30
+ - **`mergeClasses` — the `dial-*-text` type scale is one conflict group** — a caller's `dial-small-text` passed to a component whose default is `dial-tiny-text` kept both classes, and the step declared later in `typography.scss` won whatever the caller asked for. A later type-scale class now replaces an earlier one, as `w-*` or `px-*` do. The public `dial-kit-*-text` classes are not part of the group. Reported from `ai-dial-chat`.
31
+
25
32
  - **`TransferQueue` (2.0) — determinate progress ring in a row** — an in-progress row always showed the indeterminate `Spinner`, so a host that knew how far a transfer had got could only surface it in the collapsed aggregate bar. A row whose item has a numeric `percent` now shows a 16px ring that fills with it, drawn with the spinner's tokens (secondary track, accent arc), with `role="progressbar"`, `aria-valuenow` and `labels.itemProgressAriaLabel(name)` as its name. A row without `percent` keeps the spinner, and the cancel control still takes the cell on hover and focus. The ring is symmetric and is not mirrored under `dir="rtl"`. Additive. Requested for the file-storage download queue in ai-dial-chat.
26
33
 
27
34
  - **`Dropdown` (2.0) — `searchable`, a search field above the items** — a host that wanted a menu of actions narrowed by a query had to build it around the menu: a `Search` in `menuHeader` held in place with a sticky wrapper offset against the panel's inset, a `PlainText` row standing in for "no results", its own highlighting of every label, and a height cap that restated the kit's 40px rows and 2px gaps as pixel constants. `searchable` does all of it. The field sits above the item list, which scrolls by itself under it and takes focus on open; typing narrows the items by a case-insensitive substring of a string `label` (`filterItem` replaces the rule), highlights the match through `Highlight`, keeps a whole sub-menu when its own label matches and only its matching children otherwise, and drops a group heading or divider once its group is empty. When nothing matches, `noResultsLabel` is shown and announced by a `role="status"` region that stays mounted. The query clears when the menu closes; `searchValue` / `onSearchChange` control it. `maxVisibleItems` caps the item list at a number of rows, searchable or not. Home and End move the caret in the field instead of the focus in the list. The search row carries `dial-kit-dropdown-search` (`DIAL_KIT_CLASS.dropdownSearch`). Requested from the catalog Create menu of `ai-dial-chat`.
@@ -46,6 +53,8 @@ Versions match the git tags on the `development` branch.
46
53
 
47
54
  ### Fixed
48
55
 
56
+ - **`Dropdown` (2.0) — the menu state is on the trigger, not on its wrapper** — `aria-haspopup`, `aria-expanded` and `aria-controls` sat on the role-less `<span class="dial-kit-dropdown">` around the trigger. ARIA does not allow `aria-expanded` there (axe `aria-allowed-attr`), so a screen reader focused on the icon button heard no open/closed state. When the trigger is a single element and the menu opens on click or hover, the three attributes now land on that element, and any the trigger sets itself win (`Select` keeps `aria-haspopup="listbox"`). A text or multi-node trigger, and a context-menu-only trigger such as a `Grid` cell, keep them on the wrapper as before. A test that located the wrapper by `[aria-haspopup="menu"]` now finds the trigger element. Reported from an Accessibility Insights FastPass of ai-dial-chat (31 instances).
57
+
49
58
  - **`Radio`, `Checkbox`, `Switch` (2.0) — hovering the label text shows the control's hover state** — the hover colour was on the control's own `<label>` only, so pointing at the text, which also toggles the control, gave no feedback until the pointer reached the 20px circle, box or track. Each component's root is now a `group/choice`, and the control shows its hover state while either of its two labels is hovered (`group-has-[label:hover]/choice:`). Pointing at the empty part of the row or at the label's info button does not count. A disabled `Radio` no longer picks up the hover background. The decorative `CheckboxBox` used inside menu rows keeps reacting to its own hover, since the row owns that interaction. Reported on the toolset editor's Protocol radios in ai-dial-chat.
50
59
 
51
60
  - **`FolderPath` (2.0) — a collapsed path shows the full path in a tooltip instead of a click menu** — a path of more than three segments collapsed its middle into a `…` button inherited from `DialBreadcrumb` that opened a dropdown of the hidden segments on click. In a read-only path every item in it was disabled, the menu listed only the hidden part, and inside a clickable card (the catalog card) the click also opened the card. The `…` is now plain, non-interactive text: hovering it shows the full path as `Shared > Team > Sub > Reports` in a `Tooltip`, and the hidden segments stay in the accessible text. The props and the public class are unchanged. Reported on the catalog cards in ai-dial-chat.