@epam/ai-dial-ui-kit 0.15.4 → 0.16.0-dev.11

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 (231) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +33 -6
  3. package/dist/DateCellRenderer-xHilQEYj.cjs +63 -0
  4. package/dist/{IconButton-DHOFapLo.cjs → IconButton-B1Hx0Y3y.cjs} +1 -1
  5. package/dist/{MarkdownEditorContainer-B5aHwoYF.cjs → MarkdownEditorContainer-DLPODjar.cjs} +1 -1
  6. package/dist/{Switch-DE6MrcqJ.cjs → Switch-DAaAOaIu.cjs} +1 -1
  7. package/dist/_virtual/_commonjsHelpers.js +3 -28
  8. package/dist/_virtual/index.js +5 -3
  9. package/dist/components/Analytics/Bar/Bar.js +7 -7
  10. package/dist/components/Analytics/BarGroup/BarGroup.js +18 -18
  11. package/dist/components/Analytics/Histogram/Histogram.js +10 -10
  12. package/dist/components/Checkbox/Checkbox.js +9 -9
  13. package/dist/components/Dropdown/constants.js +2 -2
  14. package/dist/components/DropdownIcon/DropdownIcon.js +5 -5
  15. package/dist/components/Grid/Grid.js +11 -11
  16. package/dist/components/IconButton/IconButton.js +7 -7
  17. package/dist/components/InputPopup/InputPopup.js +8 -8
  18. package/dist/components/LoadFileArea/EmptyFileArea.js +28 -28
  19. package/dist/components/Loader/Loader.js +8 -8
  20. package/dist/components/New/Avatar/Avatar.js +18 -17
  21. package/dist/components/New/BottomSheet/BottomSheet.js +6 -6
  22. package/dist/components/New/Breadcrumbs/constants.js +1 -1
  23. package/dist/components/New/Calendar/constants.js +4 -4
  24. package/dist/components/New/Dropdown/constants.js +1 -1
  25. package/dist/components/New/MenuItem/MenuItem.js +17 -17
  26. package/dist/components/New/SharedEntityIndicator/SharedEntityIndicator.js +1 -1
  27. package/dist/components/New/SideDrawer/SideDrawer.js +1 -1
  28. package/dist/components/Search/Search.js +1 -1
  29. package/dist/components/Select/Select.js +1 -1
  30. package/dist/components/Select/constants.js +6 -6
  31. package/dist/components/Slider/Slider.js +1 -1
  32. package/dist/components/Steps/Step.js +9 -9
  33. package/dist/components/TagInput/TagInput.js +1 -1
  34. package/dist/components-manifest.json +264 -1228
  35. package/dist/dial-ui-kit.cjs +4 -2
  36. package/dist/dial-ui-kit.js +357 -375
  37. package/dist/editors.cjs +1 -1
  38. package/dist/grid.cjs +1 -1
  39. package/dist/index.css +2 -6
  40. package/dist/migration-guides/0.16.0/legacy-file-manager-removal.md +89 -0
  41. package/dist/migration-guides/0.16.0/tailwind-v4-stylesheet.md +98 -0
  42. package/dist/migration-guides/README.md +2 -0
  43. package/dist/node_modules/react-dnd/dist/hooks/useCollector.js +1 -1
  44. package/dist/src/components/ButtonDropdown/constants.d.ts +2 -2
  45. package/dist/src/components/Dropdown/constants.d.ts +1 -1
  46. package/dist/src/components/Grid/Grid.d.ts +1 -1
  47. package/dist/src/components/JsonEditor/lazy.d.ts +1 -1
  48. package/dist/src/components/MarkdownEditor/lazy.d.ts +1 -1
  49. package/dist/src/components/New/Avatar/Avatar.d.ts +9 -3
  50. package/dist/src/components/New/Breadcrumbs/constants.d.ts +2 -2
  51. package/dist/src/components/New/ButtonDropdown/constants.d.ts +1 -1
  52. package/dist/src/components/New/Calendar/constants.d.ts +5 -5
  53. package/dist/src/components/New/Dropdown/constants.d.ts +1 -1
  54. package/dist/src/components/New/FilterChips/FilterChips.d.ts +1 -1
  55. package/dist/src/components/New/Grid/Grid.d.ts +1 -1
  56. package/dist/src/components/New/Grid/components/SelectionCell.d.ts +1 -1
  57. package/dist/src/components/New/Grid/components/SelectionHeader.d.ts +1 -1
  58. package/dist/src/components/New/InteractiveTooltip/constants.d.ts +1 -1
  59. package/dist/src/components/New/MarkdownEditor/lazy.d.ts +1 -1
  60. package/dist/src/components/New/MenuItem/constants.d.ts +1 -1
  61. package/dist/src/components/New/SegmentedControl/SegmentedControl.d.ts +1 -1
  62. package/dist/src/components/New/Select/constants.d.ts +4 -4
  63. package/dist/src/components/New/Tooltip/constants.d.ts +2 -2
  64. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +1 -1
  65. package/dist/src/components/Select/constants.d.ts +3 -3
  66. package/dist/src/index.d.ts +3 -13
  67. package/dist/src/subpaths/editors.d.ts +1 -1
  68. package/dist/src/types/avatar.d.ts +9 -0
  69. package/dist/src/utils/avatar.d.ts +2 -1
  70. package/dist/src/utils/sub-menu-floating.d.ts +1 -1
  71. package/dist/types/avatar.js +3 -2
  72. package/dist/utils/avatar.js +41 -18
  73. package/dist/utils/sub-menu-floating.js +8 -8
  74. package/package.json +9 -12
  75. package/dist/DateCellRenderer-C80QWn2I.cjs +0 -1
  76. package/dist/DateCellRenderer-CfQgxeAQ.cjs +0 -63
  77. package/dist/_virtual/___vite-browser-external.js +0 -6
  78. package/dist/_virtual/__vite-browser-external.js +0 -4
  79. package/dist/_virtual/index2.js +0 -4
  80. package/dist/_virtual/index3.js +0 -7
  81. package/dist/assets/icons/add-child.svg.js +0 -5
  82. package/dist/assets/icons/add-sibling.svg.js +0 -5
  83. package/dist/assets/icons/copy-to.svg.js +0 -5
  84. package/dist/assets/icons/move-to.svg.js +0 -5
  85. package/dist/assets/icons/unshare.svg.js +0 -5
  86. package/dist/components/FileManager/FileManager.js +0 -888
  87. package/dist/components/FileManager/FileManagerContext.js +0 -5
  88. package/dist/components/FileManager/FileManagerProvider.js +0 -772
  89. package/dist/components/FileManager/FileManagerTooltip.js +0 -92
  90. package/dist/components/FileManager/components/ConflictResolutionPopup/ConflictResolutionPopup.js +0 -293
  91. package/dist/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.js +0 -201
  92. package/dist/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.js +0 -52
  93. package/dist/components/FileManager/components/FileManagerBulkActionsToolbar/FileManagerBulkActionsToolbar.js +0 -103
  94. package/dist/components/FileManager/components/FileManagerBulkActionsToolbar/constants.js +0 -5
  95. package/dist/components/FileManager/components/FileManagerDeleteConfirmationPopup/FileManagerDeleteConfirmationPopup.js +0 -56
  96. package/dist/components/FileManager/components/FileManagerItemIcon/FileManagerItemIcon.js +0 -69
  97. package/dist/components/FileManager/components/FileManagerItemName/FileManagerItemName.js +0 -100
  98. package/dist/components/FileManager/components/FileManagerItemNameInput/FileManagerItemNameInput.js +0 -93
  99. package/dist/components/FileManager/components/FileManagerNavigationPanel/FileManagerNavigationPanel.js +0 -165
  100. package/dist/components/FileManager/components/FileManagerNavigationPanel/constants.js +0 -6
  101. package/dist/components/FileManager/components/FileManagerToolbar/DialFileManagerToolbar.js +0 -120
  102. package/dist/components/FileManager/components/FileMetadataPopup/FileMetadataPopup.js +0 -119
  103. package/dist/components/FileManager/components/FileMetadataPopup/constants.js +0 -9
  104. package/dist/components/FileManager/components/FoldersTree/FoldersTree.js +0 -180
  105. package/dist/components/FileManager/components/FoldersTree/constants.js +0 -9
  106. package/dist/components/FileManager/components/FoldersTree/hooks/use-expanded-paths.js +0 -51
  107. package/dist/components/FileManager/constants.js +0 -28
  108. package/dist/components/FileManager/errors.js +0 -10
  109. package/dist/components/FileManager/hooks/use-bulk-actions.js +0 -143
  110. package/dist/components/FileManager/hooks/use-collapse-tree.js +0 -22
  111. package/dist/components/FileManager/hooks/use-conflict-resolution.js +0 -158
  112. package/dist/components/FileManager/hooks/use-current-path.js +0 -29
  113. package/dist/components/FileManager/hooks/use-file-clipboard.js +0 -154
  114. package/dist/components/FileManager/hooks/use-file-delete.js +0 -39
  115. package/dist/components/FileManager/hooks/use-file-download.js +0 -16
  116. package/dist/components/FileManager/hooks/use-file-manager-columns.js +0 -106
  117. package/dist/components/FileManager/hooks/use-file-manager-context.js +0 -13
  118. package/dist/components/FileManager/hooks/use-file-manager-tabs.js +0 -23
  119. package/dist/components/FileManager/hooks/use-file-metadata.js +0 -20
  120. package/dist/components/FileManager/hooks/use-file-search.js +0 -90
  121. package/dist/components/FileManager/hooks/use-file-upload.js +0 -338
  122. package/dist/components/FileManager/hooks/use-folder-creation.js +0 -151
  123. package/dist/components/FileManager/hooks/use-grid-actions-column.js +0 -65
  124. package/dist/components/FileManager/hooks/use-grid-context-menu.js +0 -188
  125. package/dist/components/FileManager/hooks/use-item-renaming.js +0 -124
  126. package/dist/components/FileManager/hooks/use-new-actions.js +0 -67
  127. package/dist/components/FileManager/hooks/use-paths-selection.js +0 -28
  128. package/dist/components/FileManager/hooks/use-show-hidden-files.js +0 -20
  129. package/dist/components/FileManager/hooks/use-tree-additional-buttons.js +0 -39
  130. package/dist/components/FileManager/hooks/use-trigger-view-create-folder.js +0 -42
  131. package/dist/components/FileManager/hooks/use-trigger-view-rename.js +0 -25
  132. package/dist/components/FileManager/utils.js +0 -129
  133. package/dist/constants/file-grid-columns.js +0 -176
  134. package/dist/file-manager.cjs +0 -1
  135. package/dist/file-manager.js +0 -22
  136. package/dist/hooks/use-flexible-actions.js +0 -72
  137. package/dist/hooks/use-width-breakpoint.js +0 -15
  138. package/dist/node_modules/mime-db/db.json.js +0 -2527
  139. package/dist/node_modules/mime-db/index.js +0 -8
  140. package/dist/node_modules/mime-types/index.js +0 -70
  141. package/dist/node_modules/mime-types/mimeScore.js +0 -38
  142. package/dist/src/__mocks__/monaco-editor.d.ts +0 -13
  143. package/dist/src/components/Analytics/Bar/utils.spec.d.ts +0 -1
  144. package/dist/src/components/Analytics/Histogram/utils.spec.d.ts +0 -1
  145. package/dist/src/components/Button/ButtonWrappers.test.d.ts +0 -1
  146. package/dist/src/components/Button/__tests__/utils.spec.d.ts +0 -1
  147. package/dist/src/components/FileManager/FileManager.d.ts +0 -326
  148. package/dist/src/components/FileManager/FileManagerContext.d.ts +0 -181
  149. package/dist/src/components/FileManager/FileManagerProvider.d.ts +0 -21
  150. package/dist/src/components/FileManager/FileManagerTooltip.d.ts +0 -12
  151. package/dist/src/components/FileManager/__mocks__/files.d.ts +0 -3
  152. package/dist/src/components/FileManager/components/ConflictResolutionPopup/ConflictResolutionPopup.d.ts +0 -90
  153. package/dist/src/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.d.ts +0 -73
  154. package/dist/src/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.d.ts +0 -63
  155. package/dist/src/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.test.d.ts +0 -1
  156. package/dist/src/components/FileManager/components/FileManagerBulkActionsToolbar/FileManagerBulkActionsToolbar.d.ts +0 -56
  157. package/dist/src/components/FileManager/components/FileManagerBulkActionsToolbar/constants.d.ts +0 -3
  158. package/dist/src/components/FileManager/components/FileManagerDeleteConfirmationPopup/FileManagerDeleteConfirmationPopup.d.ts +0 -26
  159. package/dist/src/components/FileManager/components/FileManagerItemIcon/FileManagerItemIcon.d.ts +0 -51
  160. package/dist/src/components/FileManager/components/FileManagerItemName/FileManagerItemName.d.ts +0 -57
  161. package/dist/src/components/FileManager/components/FileManagerItemNameInput/FileManagerItemNameInput.d.ts +0 -71
  162. package/dist/src/components/FileManager/components/FileManagerNavigationPanel/FileManagerNavigationPanel.d.ts +0 -64
  163. package/dist/src/components/FileManager/components/FileManagerNavigationPanel/constants.d.ts +0 -3
  164. package/dist/src/components/FileManager/components/FileManagerToolbar/DialFileManagerToolbar.d.ts +0 -76
  165. package/dist/src/components/FileManager/components/FileMetadataPopup/FileMetadataPopup.d.ts +0 -50
  166. package/dist/src/components/FileManager/components/FileMetadataPopup/constants.d.ts +0 -6
  167. package/dist/src/components/FileManager/components/FoldersTree/FoldersTree.d.ts +0 -135
  168. package/dist/src/components/FileManager/components/FoldersTree/constants.d.ts +0 -6
  169. package/dist/src/components/FileManager/components/FoldersTree/hooks/use-expanded-paths.d.ts +0 -13
  170. package/dist/src/components/FileManager/constants.d.ts +0 -21
  171. package/dist/src/components/FileManager/errors.d.ts +0 -6
  172. package/dist/src/components/FileManager/hooks/__tests__/use-conflict-resolution.spec.d.ts +0 -1
  173. package/dist/src/components/FileManager/hooks/__tests__/use-current-path.spec.d.ts +0 -1
  174. package/dist/src/components/FileManager/hooks/__tests__/use-file-clipboard.spec.d.ts +0 -1
  175. package/dist/src/components/FileManager/hooks/__tests__/use-file-delete.spec.d.ts +0 -1
  176. package/dist/src/components/FileManager/hooks/__tests__/use-file-download.spec.d.ts +0 -1
  177. package/dist/src/components/FileManager/hooks/__tests__/use-file-upload.spec.d.ts +0 -1
  178. package/dist/src/components/FileManager/hooks/__tests__/use-show-hidden-files.spec.d.ts +0 -1
  179. package/dist/src/components/FileManager/hooks/__tests__/use-trigger-view-rename.spec.d.ts +0 -1
  180. package/dist/src/components/FileManager/hooks/use-bulk-actions.d.ts +0 -30
  181. package/dist/src/components/FileManager/hooks/use-collapse-tree.d.ts +0 -9
  182. package/dist/src/components/FileManager/hooks/use-conflict-resolution.d.ts +0 -27
  183. package/dist/src/components/FileManager/hooks/use-current-path.d.ts +0 -13
  184. package/dist/src/components/FileManager/hooks/use-file-clipboard.d.ts +0 -37
  185. package/dist/src/components/FileManager/hooks/use-file-delete.d.ts +0 -13
  186. package/dist/src/components/FileManager/hooks/use-file-download.d.ts +0 -9
  187. package/dist/src/components/FileManager/hooks/use-file-manager-columns.d.ts +0 -43
  188. package/dist/src/components/FileManager/hooks/use-file-manager-context.d.ts +0 -7
  189. package/dist/src/components/FileManager/hooks/use-file-manager-tabs.d.ts +0 -10
  190. package/dist/src/components/FileManager/hooks/use-file-metadata.d.ts +0 -10
  191. package/dist/src/components/FileManager/hooks/use-file-search.d.ts +0 -23
  192. package/dist/src/components/FileManager/hooks/use-file-upload.d.ts +0 -64
  193. package/dist/src/components/FileManager/hooks/use-folder-creation.d.ts +0 -30
  194. package/dist/src/components/FileManager/hooks/use-grid-actions-column.d.ts +0 -15
  195. package/dist/src/components/FileManager/hooks/use-grid-context-menu.d.ts +0 -44
  196. package/dist/src/components/FileManager/hooks/use-item-renaming.d.ts +0 -22
  197. package/dist/src/components/FileManager/hooks/use-new-actions.d.ts +0 -23
  198. package/dist/src/components/FileManager/hooks/use-paths-selection.d.ts +0 -13
  199. package/dist/src/components/FileManager/hooks/use-show-hidden-files.d.ts +0 -9
  200. package/dist/src/components/FileManager/hooks/use-tree-additional-buttons.d.ts +0 -22
  201. package/dist/src/components/FileManager/hooks/use-trigger-view-create-folder.d.ts +0 -26
  202. package/dist/src/components/FileManager/hooks/use-trigger-view-rename.d.ts +0 -20
  203. package/dist/src/components/FileManager/utils.d.ts +0 -69
  204. package/dist/src/components/FileManager/utils.spec.d.ts +0 -1
  205. package/dist/src/components/Grid/comparators/base-column-comparator.spec.d.ts +0 -1
  206. package/dist/src/components/Grid/renderers/utils.spec.d.ts +0 -1
  207. package/dist/src/components/New/AutocompleteTagInput/utils.spec.d.ts +0 -1
  208. package/dist/src/components/New/Button/__tests__/utils.spec.d.ts +0 -1
  209. package/dist/src/components/New/Calendar/utils.spec.d.ts +0 -1
  210. package/dist/src/components/New/Slider/utils.spec.d.ts +0 -1
  211. package/dist/src/components/New/TagInput/utils.spec.d.ts +0 -1
  212. package/dist/src/components/Pagination/tests/utils.spec.d.ts +0 -1
  213. package/dist/src/components/SchemaRenderer/tests/utils.spec.d.ts +0 -1
  214. package/dist/src/components/Steps/tests/Steps.test.d.ts +0 -1
  215. package/dist/src/components/Steps/tests/utils.spec.d.ts +0 -1
  216. package/dist/src/constants/file-grid-columns.d.ts +0 -4
  217. package/dist/src/models/file-manager.d.ts +0 -19
  218. package/dist/src/subpaths/file-manager.d.ts +0 -21
  219. package/dist/src/types/file-manager.d.ts +0 -59
  220. package/dist/src/utils/__tests__/accessible-name.spec.d.ts +0 -1
  221. package/dist/src/utils/__tests__/avatar.spec.d.ts +0 -1
  222. package/dist/src/utils/__tests__/element-size-observer.spec.d.ts +0 -1
  223. package/dist/src/utils/__tests__/file-accept.spec.d.ts +0 -1
  224. package/dist/src/utils/__tests__/merge-classes.spec.d.ts +0 -1
  225. package/dist/src/utils/__tests__/path.spec.d.ts +0 -1
  226. package/dist/src/utils/__tests__/pointer.spec.d.ts +0 -1
  227. package/dist/src/utils/__tests__/timezone.spec.d.ts +0 -1
  228. package/dist/src/utils/grid-registration.spec.d.ts +0 -1
  229. package/dist/types/file-manager.js +0 -12
  230. package/dist/use-file-manager-tabs-BpaJ5_zh.cjs +0 -3
  231. package/dist/utils/path.js +0 -4
@@ -0,0 +1,98 @@
1
+ # Migrating to the Tailwind CSS v4 stylesheet — v0.15.x → v0.16.0
2
+
3
+ ## Why this changed
4
+
5
+ The kit's `styles.css` is now built with Tailwind CSS v4 instead of v3. `tailwind-merge`, which the components use to merge class names, already targets v4 class names, so the kit had been merging against one Tailwind version while building with another.
6
+
7
+ Class names, props and theme variables are unchanged. What changed is how the shipped stylesheet takes part in your page's cascade and what its preflight resets. Typecheck cannot detect either change, so they show up only when the page is rendered.
8
+
9
+ ## What changed
10
+
11
+ | Area | v0.15.x (Tailwind v3) | v0.16.0 (Tailwind v4) |
12
+ | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------- |
13
+ | Variant utilities (`hover:`, `focus-visible:`, `disabled:`, `placeholder:`, `before:`, `mobile:`, `md:` …) | Unlayered, after `@layer ui` | Inside `@layer ui` |
14
+ | Base utilities (`flex`, `bg-*`, `text-*` …) | `@layer ui` | `@layer ui` (now `ui.utilities`) |
15
+ | Kit classes (`dial-*`, `dial-kit-*`) | Unlayered | Unlayered |
16
+ | `hover:` utilities | Applied on every device | Applied only where `(hover: hover)` matches |
17
+ | `input`, `select`, `textarea` | Browser default background and radius | Transparent background, no radius |
18
+ | `margin` / `padding` reset | Listed elements (`h1`–`h6`, `p`, `ul`, `button` …) | Every element |
19
+ | `[hidden]` | `display: none` | `display: none !important` |
20
+ | Placeholder colour, pointer cursor on buttons, centred `<dialog>` | v3 values | Unchanged: the kit keeps the v3 values |
21
+ | Tailwind theme variables on `:root` | None | None: values are written into the utilities |
22
+ | Browser baseline | Native CSS nesting (Safari 16.5+, Chrome 112+) | Safari 16.4+, Chrome 111+, Firefox 128+ |
23
+
24
+ ### Variant utilities and your own CSS
25
+
26
+ The kit puts Tailwind in a cascade layer named `ui` so that unlayered CSS (your app's styles and the kit's own `dial-*` classes) always beats a plain utility. Tailwind v3 placed variant utilities outside that layer. They competed with your unlayered CSS on specificity and source order, and often won, because `.hover\:bg-x:hover` is more specific than a single class.
27
+
28
+ In v4 they are inside `@layer ui`, so any unlayered rule in your app that sets the same property now wins. For example, take a kit element with a `hover:` background. If your stylesheet also sets that element's `background-color`, the hover state disappears.
29
+
30
+ ## Step-by-step migration
31
+
32
+ ### 1. Find CSS that targets kit elements
33
+
34
+ Look for unlayered rules in your app that style elements the kit renders, especially rules that set colour, background, border or outline:
35
+
36
+ ```bash
37
+ grep -rnE "\.dial-|\[class\*=\"dial-|\.ag-" src/ --include=*.css --include=*.scss
38
+ ```
39
+
40
+ Where such a rule should give way to the kit's interactive states, put it in a layer that comes before `ui`, or scope it to the resting state:
41
+
42
+ **Before:**
43
+
44
+ ```css
45
+ .my-toolbar .dial-kit-primary-ghost-button {
46
+ background-color: var(--my-toolbar-bg);
47
+ }
48
+ ```
49
+
50
+ **After:**
51
+
52
+ ```css
53
+ @layer app {
54
+ .my-toolbar .dial-kit-primary-ghost-button {
55
+ background-color: var(--my-toolbar-bg);
56
+ }
57
+ }
58
+ ```
59
+
60
+ Declare the order once, before the kit's stylesheet is loaded: `@layer app, ui;`.
61
+
62
+ ### 2. Restore form-control defaults if your page relied on them
63
+
64
+ The kit's preflight reaches every element on the page, not only the kit's own. If your own `input`, `select` or `textarea` elements carry no background or radius class and should keep the browser's look, restore it in your stylesheet:
65
+
66
+ ```css
67
+ input,
68
+ select,
69
+ textarea {
70
+ background-color: Field;
71
+ border-radius: revert;
72
+ }
73
+ ```
74
+
75
+ The same applies to elements that relied on the browser's default `margin` or `padding` (`td`, `option`): set them explicitly.
76
+
77
+ ### 3. Check `hidden` elements
78
+
79
+ An element with the `hidden` attribute is now hidden even when it also has a display utility such as `flex`. If you toggle visibility with both, drop the attribute or the utility.
80
+
81
+ ### 4. Check touch devices
82
+
83
+ `hover:` utilities no longer apply on devices without a hovering pointer, so a state that a tap used to trigger as a "sticky hover" no longer shows. Use `active:` or `focus-visible:` where a touch state is intended.
84
+
85
+ ### 5. Verify
86
+
87
+ ```bash
88
+ npm run typecheck
89
+ npm run test
90
+ ```
91
+
92
+ Then open the screens that use the kit in a desktop browser and on a touch device, and check hover, focus and disabled states, form fields and popups.
93
+
94
+ ## Notes
95
+
96
+ - Hosts that build with Tailwind v4 themselves keep their own theme. The kit writes theme values directly into its utilities and declares no `--font-sans`, `--spacing`, `--radius-*` or `--color-*` on `:root`, so it cannot override yours.
97
+ - The kit's stylesheet registers Tailwind v4's `--tw-*` custom properties (`@property`) and declares a top-level `@layer properties`. A host on Tailwind v4 declares the same names with the same definitions.
98
+ - `@apply dial-…` against the kit's classes was not supported before and is still not supported. Tailwind v4's `@apply` accepts only utilities.
@@ -30,6 +30,8 @@ migration-guides/
30
30
  | 0.14.0 | [shadow-token-per-step-rename](0.14.0/shadow-token-per-step-rename.md) | Shadow scale rebuilt per step: `sm` moves to the side panels, controls keep their shadow under `dial-kit-control-shadow` |
31
31
  | 0.15.0 | [legacy-theme-variable-fallbacks-removal](0.15.0/legacy-theme-variable-fallbacks-removal.md) | Old theme variable names (`--bg-control-neutral-hover`, `--stroke-focus-black`, `--bg-control-accent-gradient-*`) dropped from the fallback chains |
32
32
  | 0.15.0 | [slider-redesign](0.15.0/slider-redesign.md) | `Slider` redrawn: 12px accent thumb with a hover/focus halo, accent-tint track; adds `showTooltip`, `showTicks`, `leftContent`, `rightContent` |
33
+ | 0.16.0 | [tailwind-v4-stylesheet](0.16.0/tailwind-v4-stylesheet.md) | `styles.css` built with Tailwind v4: variant utilities move into `@layer ui`, v4 preflight, new browser baseline |
34
+ | 0.16.0 | [legacy-file-manager-removal](0.16.0/legacy-file-manager-removal.md) | Legacy `DialFileManager`, its helpers and the `./file-manager` subpath removed; import them from `@epam/ai-dial-react-file-manager` |
33
35
 
34
36
  ---
35
37
 
@@ -1,4 +1,4 @@
1
- import s from "../../../../_virtual/index3.js";
1
+ import s from "../../../../_virtual/index.js";
2
2
  import { useState as f, useCallback as a } from "react";
3
3
  import { useIsomorphicLayoutEffect as i } from "./useIsomorphicLayoutEffect.js";
4
4
  function n(e, c, t) {
@@ -1,2 +1,2 @@
1
- export declare const buttonChevronDown: import("react/jsx-runtime").JSX.Element;
2
- export declare const buttonChevronUp: import("react/jsx-runtime").JSX.Element;
1
+ export declare const buttonChevronDown: import('react/jsx-runtime').JSX.Element;
2
+ export declare const buttonChevronUp: import('react/jsx-runtime').JSX.Element;
@@ -5,4 +5,4 @@ export declare const dropdownItemDisabledClassName = "opacity-75 !cursor-not-all
5
5
  export declare const dropdownItemDangerClassName = "text-error";
6
6
  export declare const dropdownDividerClassName = "my-1 border-t border-hover border-secondary";
7
7
  export declare const dropdownGap = 4;
8
- export declare const submenuCaretIcon: import("react/jsx-runtime").JSX.Element;
8
+ export declare const submenuCaretIcon: import('react/jsx-runtime').JSX.Element;
@@ -117,4 +117,4 @@ export interface DialGridProps<T extends object = Record<string, unknown>> {
117
117
  * @param [selectionMode] - Could be GridSelectionMode.MULTIPLE or GridSelectionMode.SINGLE to enable selection column
118
118
  * @param [allowDisabledContextMenu] - Enables context menu actions even if row itself is disabled for selection
119
119
  */
120
- export declare const DialGrid: <T extends object>({ columnDefs, rowData, additionalGridOptions, getContextMenuItems, className, ariaLabel, wrapCustomCellRenderers, disabledRowIds, selectedRowIds, onSelectionChange, onGridApiChange, getRowId, alternateOddRowColors, filterPlaceholder, emptyStateIcon, emptyStateTitle, emptyStateDescription, loading, wrapperBorder, withoutHeaderBorders, allowDisabledContextMenu, selectionMode, }: DialGridProps<T>) => import("react/jsx-runtime").JSX.Element;
120
+ export declare const DialGrid: <T extends object>({ columnDefs, rowData, additionalGridOptions, getContextMenuItems, className, ariaLabel, wrapCustomCellRenderers, disabledRowIds, selectedRowIds, onSelectionChange, onGridApiChange, getRowId, alternateOddRowColors, filterPlaceholder, emptyStateIcon, emptyStateTitle, emptyStateDescription, loading, wrapperBorder, withoutHeaderBorders, allowDisabledContextMenu, selectionMode, }: DialGridProps<T>) => import('react/jsx-runtime').JSX.Element;
@@ -11,4 +11,4 @@
11
11
  * Vite/Rolldown versions - see `openspec/changes/isolate-heavy-feature-modules`
12
12
  * Section 9's `diagnosis-baseline.txt` for the measured reproduction).
13
13
  */
14
- export declare const LazyDialJsonEditor: () => Promise<typeof import("./JsonEditor")>;
14
+ export declare const LazyDialJsonEditor: () => Promise<typeof import('./JsonEditor')>;
@@ -4,4 +4,4 @@
4
4
  * re-export this same binding instead of each declaring their own copy -
5
5
  * see `src/components/JsonEditor/lazy.ts`'s comment for why.
6
6
  */
7
- export declare const LazyDialMarkdownEditor: () => Promise<typeof import("./MarkdownEditor")>;
7
+ export declare const LazyDialMarkdownEditor: () => Promise<typeof import('./MarkdownEditor')>;
@@ -1,5 +1,6 @@
1
1
  import { FC, SyntheticEvent } from 'react';
2
2
  import { AvatarShape } from '../../../types/avatar';
3
+ import { AvatarColorClasses } from '../../../utils/avatar';
3
4
  /** Props for `Avatar`. */
4
5
  export interface AvatarProps {
5
6
  /** Display name the initials and the colour are derived from. */
@@ -14,6 +15,8 @@ export interface AvatarProps {
14
15
  size?: number;
15
16
  /** Outline of the avatar. */
16
17
  shape?: AvatarShape;
18
+ /** Explicit colour pair overriding the deterministic pick from `name`. */
19
+ color?: AvatarColorClasses;
17
20
  /** Additional CSS classes for the avatar. */
18
21
  className?: string;
19
22
  /** Type-scale class for the initials. When set, it replaces the font size derived from `size`. */
@@ -28,9 +31,11 @@ export interface AvatarProps {
28
31
  * Design system 2.0
29
32
  *
30
33
  * The same name always gets the same colour, drawn from the theme's visual
31
- * tokens, so a list of avatars stays stable between renders and sessions. An
32
- * image that is missing or fails to load falls back to the initials; a new
33
- * `src` tries the image again.
34
+ * tokens, so a list of avatars stays stable between renders and sessions; pass
35
+ * `color` to pin one entry of `AVATAR_PALETTE` instead, so every avatar of a
36
+ * kind shares one colour regardless of name or locale. An image that is
37
+ * missing or fails to load falls back to the initials; a new `src` tries the
38
+ * image again.
34
39
  *
35
40
  * An avatar with an `alt` is a `role="img"` named by it, whether it shows the
36
41
  * image or the initials. Without one it is decorative and hidden from
@@ -48,6 +53,7 @@ export interface AvatarProps {
48
53
  * @param [alt=''] - Accessible name; empty makes the avatar decorative
49
54
  * @param [size=32] - Width and height in px
50
55
  * @param [shape=AvatarShape.Circle] - Outline of the avatar
56
+ * @param [color] - Explicit colour pair overriding the deterministic pick from `name`
51
57
  * @param [className] - Additional CSS classes for the avatar
52
58
  * @param [textClassName] - Type-scale class for the initials, replacing the size-derived font size
53
59
  * @param [onImageError] - Called when the image fails to load
@@ -29,7 +29,7 @@ export declare const currentSizeClassName: Record<BreadcrumbsSize, string>;
29
29
  */
30
30
  export declare const segmentWidthClassName: Record<'first' | 'middle' | 'last', string>;
31
31
  /** The box that draws a segment, around its icon and its label. */
32
- export declare const segmentClassName = "flex min-w-0 flex-1 items-center gap-1 rounded-sm transition-colors";
32
+ export declare const segmentClassName = "flex min-w-0 flex-1 items-center gap-1 rounded-xs transition-colors";
33
33
  /**
34
34
  * A segment the user can follow. Secondary until hovered, then accent — the
35
35
  * same pairing the kit's other inline links use.
@@ -49,7 +49,7 @@ export declare const separatorClassName = "inline-flex flex-none items-center le
49
49
  * glyph to the 24×24 of WCAG 2.5.8; the enhanced 44×44 target would overhang
50
50
  * the segments on either side of it (see the README exception table).
51
51
  */
52
- export declare const overflowButtonClassName = "dial-kit-minimum-target flex shrink-0 items-center rounded-sm text-secondary transition-colors hover:text-accent focus-visible:outline focus-visible:outline-offset-2 focus-visible:outline-focus";
52
+ export declare const overflowButtonClassName = "dial-kit-minimum-target flex shrink-0 items-center rounded-xs text-secondary transition-colors hover:text-accent focus-visible:outline focus-visible:outline-offset-2 focus-visible:outline-focus";
53
53
  /**
54
54
  * Smallest trail the collapse can produce: the root, the ellipsis and the
55
55
  * current page. Below that there is nothing left to hide behind the ellipsis.
@@ -1 +1 @@
1
- export declare const getButtonChevron: (isOpen: boolean) => import("react/jsx-runtime").JSX.Element;
1
+ export declare const getButtonChevron: (isOpen: boolean) => import('react/jsx-runtime').JSX.Element;
@@ -1,17 +1,17 @@
1
1
  import { CalendarMode } from '../../../types/calendar';
2
2
  export declare const DEFAULT_CALENDAR_LOCALE = "en-GB";
3
3
  export declare const calendarModeDefaultPlaceholder: Record<CalendarMode, string>;
4
- export declare const calendarFieldBaseClassName = "flex w-full items-center justify-between gap-2 rounded-xl border border-secondary bg-layer-raised px-4 py-3 dial-small-text text-primary outline-none transition-colors hover:border-accent-alpha focus-within:border-accent-focus";
4
+ export declare const calendarFieldBaseClassName = "flex w-full items-center justify-between gap-2 rounded-xl border border-secondary bg-layer-raised px-4 py-3 dial-small-text text-primary outline-hidden transition-colors hover:border-accent-alpha focus-within:border-accent-focus";
5
5
  export declare const calendarFieldDisabledClassName = "!cursor-not-allowed !border-transparent bg-layer-sunken text-control-disable-primary hover:!border-transparent";
6
6
  export declare const calendarFieldInvalidClassName = "!border-error";
7
7
  export declare const calendarPopoverClassName = "z-floating flex w-[248px] flex-col gap-4 rounded-lg bg-layer-raised px-2 py-4 shadow-md";
8
- export declare const calendarDayButtonBaseClassName = "flex size-10 items-center justify-center rounded-full dial-small-text text-primary hover:bg-control-accent-alpha-hover hover:text-primary focus:outline-none focus-visible:outline focus-visible:outline-focus";
8
+ export declare const calendarDayButtonBaseClassName = "flex size-10 items-center justify-center rounded-full dial-small-text text-primary hover:bg-control-accent-alpha-hover hover:text-primary focus:outline-hidden focus-visible:outline focus-visible:outline-focus";
9
9
  export declare const calendarDaySelectedClassName = "bg-control-accent text-control-permanent";
10
10
  export declare const calendarDayTodayClassName = "text-accent dial-small-semi-text";
11
11
  export declare const calendarDayOutsideClassName = "text-control-disable-primary";
12
12
  export declare const calendarFieldIconClassName = "text-secondary";
13
- export declare const calendarIcon: import("react/jsx-runtime").JSX.Element;
13
+ export declare const calendarIcon: import('react/jsx-runtime').JSX.Element;
14
14
  export declare const calendarNavIcons: {
15
- prev: import("react/jsx-runtime").JSX.Element;
16
- next: import("react/jsx-runtime").JSX.Element;
15
+ prev: import('react/jsx-runtime').JSX.Element;
16
+ next: import('react/jsx-runtime').JSX.Element;
17
17
  };
@@ -12,4 +12,4 @@ export declare const dropdownItemListClassName: string;
12
12
  export declare const dropdownItemBaseClassName: string;
13
13
  export declare const dropdownDividerClassName = "my-1 border-t border-tertiary";
14
14
  export declare const dropdownGap = 4;
15
- export declare const submenuCaretIcon: import("react/jsx-runtime").JSX.Element;
15
+ export declare const submenuCaretIcon: import('react/jsx-runtime').JSX.Element;
@@ -66,4 +66,4 @@ export interface FilterChipsProps<T extends string = string> {
66
66
  * @param [aria-label] - Names the row as a whole
67
67
  * @param [aria-labelledby] - Names the row from an existing element, e.g. a visible heading
68
68
  */
69
- export declare const FilterChips: <T extends string = string>({ items, value, onChange, stretch, className, chipClassName, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, }: FilterChipsProps<T>) => import("react/jsx-runtime").JSX.Element;
69
+ export declare const FilterChips: <T extends string = string>({ items, value, onChange, stretch, className, chipClassName, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, }: FilterChipsProps<T>) => import('react/jsx-runtime').JSX.Element;
@@ -132,4 +132,4 @@ export interface GridProps<T extends object = Record<string, unknown>> {
132
132
  * @param [selectAllLabel='Select all rows'] - Accessible name of the select-all control.
133
133
  * @param [colorScheme='light'] - AG Grid color scheme. `dark` paints native controls dark.
134
134
  */
135
- export declare const Grid: <T extends object>({ columnDefs, rowData, additionalGridOptions, getContextMenuItems, className, ariaLabel, wrapCustomCellRenderers, disabledRowIds, selectedRowIds, onSelectionChange, onGridApiChange, getRowId, alternateOddRowColors, filterPlaceholder, emptyStateIcon, emptyStateTitle, emptyStateDescription, loading, wrapperBorder, withoutHeaderBorders, allowDisabledContextMenu, selectionMode, selectRowLabel, selectAllLabel, colorScheme, }: GridProps<T>) => import("react/jsx-runtime").JSX.Element;
135
+ export declare const Grid: <T extends object>({ columnDefs, rowData, additionalGridOptions, getContextMenuItems, className, ariaLabel, wrapCustomCellRenderers, disabledRowIds, selectedRowIds, onSelectionChange, onGridApiChange, getRowId, alternateOddRowColors, filterPlaceholder, emptyStateIcon, emptyStateTitle, emptyStateDescription, loading, wrapperBorder, withoutHeaderBorders, allowDisabledContextMenu, selectionMode, selectRowLabel, selectAllLabel, colorScheme, }: GridProps<T>) => import('react/jsx-runtime').JSX.Element;
@@ -18,4 +18,4 @@ export interface SelectionCellProps<T> {
18
18
  * `rowSelected` event, so a selection made anywhere — another cell, the header,
19
19
  * or the `selectedRowIds` prop — is reflected here without refreshing the cell.
20
20
  */
21
- export declare const SelectionCell: <T>({ params, mode, label, radioName, rowId, disabled, }: SelectionCellProps<T>) => import("react/jsx-runtime").JSX.Element;
21
+ export declare const SelectionCell: <T>({ params, mode, label, radioName, rowId, disabled, }: SelectionCellProps<T>) => import('react/jsx-runtime').JSX.Element;
@@ -11,4 +11,4 @@ export interface SelectionHeaderProps<T> extends IHeaderParams<T> {
11
11
  * rows put it in the `mixed` state, and disabled rows are excluded from the
12
12
  * count so a grid whose selectable rows are all selected still reads as full.
13
13
  */
14
- export declare const SelectionHeader: <T>({ api, label, }: SelectionHeaderProps<T>) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const SelectionHeader: <T>({ api, label, }: SelectionHeaderProps<T>) => import('react/jsx-runtime').JSX.Element;
@@ -11,7 +11,7 @@ export declare const INTERACTIVE_TOOLTIP_GAP = 8;
11
11
  export declare const INTERACTIVE_TOOLTIP_HOVER_OPEN_DELAY = 400;
12
12
  /**
13
13
  * The panel sits one step of the overlay ladder (`z-interactive-tooltip`, see
14
- * `zIndex` in `tailwind.config.js`) above the surface it is anchored to — a
14
+ * `--z-index-*` in `src/styles/theme.scss`) above the surface it is anchored to — a
15
15
  * dropdown or select overlay, both `z-floating` — since it can be opened from
16
16
  * a row inside one of them.
17
17
  *
@@ -4,4 +4,4 @@
4
4
  * re-export this same binding instead of each declaring their own copy -
5
5
  * see `src/components/JsonEditor/lazy.ts`'s comment for why.
6
6
  */
7
- export declare const LazyMarkdownEditor: () => Promise<typeof import("./MarkdownEditor")>;
7
+ export declare const LazyMarkdownEditor: () => Promise<typeof import('./MarkdownEditor')>;
@@ -2,4 +2,4 @@
2
2
  * Marks the chosen row in a `MenuItemMark.Check` list. Decorative: the row's
3
3
  * `aria-checked`/`aria-selected` already carries the state.
4
4
  */
5
- export declare const menuItemCheckIcon: import("react/jsx-runtime").JSX.Element;
5
+ export declare const menuItemCheckIcon: import('react/jsx-runtime').JSX.Element;
@@ -51,4 +51,4 @@ export interface SegmentedControlProps<T extends string> {
51
51
  * @param [segmentClassName] - Additional classes for every segment
52
52
  * @param [aria-label] - Names the group as a whole
53
53
  */
54
- export declare const SegmentedControl: <T extends string>({ items, value, onChange, disabled, className, segmentClassName: segmentClassNameProp, "aria-label": ariaLabel, }: SegmentedControlProps<T>) => import("react/jsx-runtime").JSX.Element;
54
+ export declare const SegmentedControl: <T extends string>({ items, value, onChange, disabled, className, segmentClassName: segmentClassNameProp, "aria-label": ariaLabel, }: SegmentedControlProps<T>) => import('react/jsx-runtime').JSX.Element;
@@ -27,7 +27,7 @@ export declare const selectOptionsScrollClassName: string;
27
27
  export declare const selectSubMenuGap = 4;
28
28
  export declare const selectSubMenuClassName: string;
29
29
  /** Marks an option that opens a nested list. Matches the dropdown's caret. */
30
- export declare const selectSubMenuCaretIcon: import("react/jsx-runtime").JSX.Element;
30
+ export declare const selectSubMenuCaretIcon: import('react/jsx-runtime').JSX.Element;
31
31
  /** Classes for the chevron rendered as the field's trailing icon. */
32
32
  export declare const selectFieldIconClassName = "text-secondary transition-transform";
33
33
  /**
@@ -35,6 +35,6 @@ export declare const selectFieldIconClassName = "text-secondary transition-trans
35
35
  * short enough to scan at a glance does not need to be filtered.
36
36
  */
37
37
  export declare const selectSearchThreshold = 8;
38
- export declare const selectSearchIcon: import("react/jsx-runtime").JSX.Element;
39
- export declare const selectCloseIcon: import("react/jsx-runtime").JSX.Element;
40
- export declare const selectEmptyStateIcon: import("react/jsx-runtime").JSX.Element;
38
+ export declare const selectSearchIcon: import('react/jsx-runtime').JSX.Element;
39
+ export declare const selectCloseIcon: import('react/jsx-runtime').JSX.Element;
40
+ export declare const selectEmptyStateIcon: import('react/jsx-runtime').JSX.Element;
@@ -19,8 +19,8 @@ export declare const HOVER_OPEN_DELAY = 500;
19
19
  */
20
20
  export declare const arrowClassName = "fill-control-inverted";
21
21
  /**
22
- * Tooltips sit at the top of the overlay ladder (`z-tooltip`, see `zIndex` in
23
- * `tailwind.config.js`) — above popups (`z-popup`), dropdowns and the calendar
22
+ * Tooltips sit at the top of the overlay ladder (`z-tooltip`, see `--z-index-*` in
23
+ * `src/styles/theme.scss`) — above popups (`z-popup`), dropdowns and the calendar
24
24
  * (`z-floating`) and interactive tooltips — since they can be triggered by a
25
25
  * control inside any of them.
26
26
  *
@@ -37,4 +37,4 @@ export interface DialSegmentedControlProps<T extends string> {
37
37
  * @param [className] - Additional classes applied to the container.
38
38
  * @param [ariaLabel] - Accessible label for the control (applied to the `tablist`).
39
39
  */
40
- export declare const DialSegmentedControl: <T extends string>({ options, value, onChange, disabled, className, ariaLabel, }: DialSegmentedControlProps<T>) => import("react/jsx-runtime").JSX.Element;
40
+ export declare const DialSegmentedControl: <T extends string>({ options, value, onChange, disabled, className, ariaLabel, }: DialSegmentedControlProps<T>) => import('react/jsx-runtime').JSX.Element;
@@ -1,9 +1,9 @@
1
1
  export declare const selectTriggerBaseClassName = "dial-input flex w-full items-center justify-between gap-2 dial-small-text cursor-pointer";
2
2
  export declare const selectOverlayBaseClassName = "w-full rounded flex flex-col";
3
- export declare const selectOptionBaseClassName = "flex w-full items-center justify-between gap-2 px-3 h-[34px] dial-small-text text-primary truncate hover:bg-accent-primary-alpha focus:bg-accent-primary-alpha focus:outline-none";
3
+ export declare const selectOptionBaseClassName = "flex w-full items-center justify-between gap-2 px-3 h-[34px] dial-small-text text-primary truncate hover:bg-accent-primary-alpha focus:bg-accent-primary-alpha focus:outline-hidden";
4
4
  export declare const selectOptionSelectedClassName = "bg-accent-primary-alpha";
5
- export declare const selectOptionSingleSelectedClassName = "bg-accent-primary-alpha border-l border-accent-primary border-1";
5
+ export declare const selectOptionSingleSelectedClassName = "bg-accent-primary-alpha border-l border-accent-primary";
6
6
  export declare const selectOptionDisabledClassName = "opacity-75";
7
7
  export declare const dropdownMenuMaxHeight = 352;
8
8
  export declare const selectSubMenuGap = 4;
9
- export declare const selectChevronIcon: import("react/jsx-runtime").JSX.Element;
9
+ export declare const selectChevronIcon: import('react/jsx-runtime').JSX.Element;
@@ -96,11 +96,6 @@ export { DialDropdown } from './components/Dropdown/Dropdown';
96
96
  export { DialButtonDropdown } from './components/ButtonDropdown/ButtonDropdown';
97
97
  export { DialDropdownIcon } from './components/DropdownIcon/DropdownIcon';
98
98
  export type { DialDropdownIconProps } from './components/DropdownIcon/DropdownIcon';
99
- export { DialFileManager } from './components/FileManager/FileManager';
100
- export type { FileManagerGridRow } from './components/FileManager/FileManagerContext';
101
- export type { GridOptions, ToolbarOptions, BulkActionsToolbarOptions, } from './components/FileManager/FileManager';
102
- export { DialDestinationFolderPopup } from './components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup';
103
- export { DialFoldersTree } from './components/FileManager/components/FoldersTree/FoldersTree';
104
99
  export { EditorThemes } from './types/editor';
105
100
  export { ButtonVariant, ButtonAppearance } from './types/button';
106
101
  export { RadioGroupOrientation } from './types/radio-group';
@@ -113,16 +108,12 @@ export { ScreenResolution, TabOrientation, TabView } from './types/tab';
113
108
  export type { DialBreadcrumbPathItem } from './models/breadcrumb';
114
109
  export { FormItemOrientation } from './types/form-item';
115
110
  export { SelectSize, SelectVariant } from './types/select';
116
- export { DialFileManagerTabs, DialFileManagerActions, FileManagerColumnKey, } from './types/file-manager';
117
111
  export { FlexibleActionsDirection } from './types/flexible-actions';
118
112
  export { DialItemType } from './types/item';
119
113
  export { ResizableContainerSide } from './types/resizable-container';
120
114
  export { SkeletonVariant, SkeletonAvatarSize, SkeletonAvatarShape, } from './types/skeleton';
121
- export { useDialFileManagerTabs } from './components/FileManager/hooks/use-file-manager-tabs';
122
115
  export { EDITABLE_CONTAINER_ATTRIBUTE, editableContainerProps, useEditableItem, } from './hooks/use-editable-item';
123
116
  export type { UseEditableItemOptions } from './hooks/use-editable-item';
124
- export { FileManagerProvider } from './components/FileManager/FileManagerProvider';
125
- export { useFileManagerContext } from './components/FileManager/hooks/use-file-manager-context';
126
117
  export { StepStatus } from './models/step';
127
118
  export type { Step } from './models/step';
128
119
  export type { RadioButtonWithContent } from './models/radio';
@@ -134,13 +125,11 @@ export type { DialModifiedEntity } from './models/base-entity';
134
125
  export type { DialFile } from './models/file';
135
126
  export { DialFileNodeType, DialFilePermission, DialFileResourceType, } from './models/file';
136
127
  export type { DialRootFolder } from './models/file';
137
- export { type DialCopiedItem, type DialDeletedItem, type DialUploadFileItem, type DialFileManagerActionsRef, type DialFileAcceptType, } from './models/file-manager';
138
128
  export { GridSelectionMode } from './models/selection-mode';
139
129
  export { mergeClasses } from './utils/merge-classes';
140
130
  export { wrapInRootFolder } from './utils/flat-to-hierarchy-convertor.ts';
141
131
  export { getTimezoneLabel } from './utils/timezone';
142
132
  export type { TimezoneLabelOptions } from './utils/timezone';
143
- export { NAME_COLUMN, SIZE_COLUMN, UPDATED_AT_COLUMN, } from './constants/file-grid-columns';
144
133
  export { DIAL_ICON_SIZE, BASE_ICON_PROPS, BASE_ICON_SIZE, } from './constants/icon.ts';
145
134
  export { NOT_ALLOWED_SYMBOLS, NOT_ALLOWED_SPACES, NOT_ALLOWED_SYMBOLS_REGEXP, NOT_ALLOWED_SPACES_REGEXP, } from './constants/validation.ts';
146
135
  export { DIAL_KIT_CLASS } from './constants/public-class-names';
@@ -249,8 +238,9 @@ export type { BadgeProps } from './components/New/Badge/Badge';
249
238
  export { BadgeColor, BadgeVariant } from './types/badge';
250
239
  export { Avatar } from './components/New/Avatar/Avatar';
251
240
  export type { AvatarProps } from './components/New/Avatar/Avatar';
252
- export { AvatarShape } from './types/avatar';
253
- export { extractInitials } from './utils/avatar';
241
+ export { AvatarColor, AvatarShape } from './types/avatar';
242
+ export { AVATAR_PALETTE, extractInitials } from './utils/avatar';
243
+ export type { AvatarColorClasses } from './utils/avatar';
254
244
  export { EntityIdentity } from './components/New/EntityIdentity/EntityIdentity';
255
245
  export type { EntityIdentityProps, EntityIdentityItem, EntityIdentityLabels, } from './components/New/EntityIdentity/EntityIdentity';
256
246
  export { EntityType } from './types/entity-type';
@@ -16,7 +16,7 @@
16
16
  export { LazyDialJsonEditor } from '../components/JsonEditor/lazy';
17
17
  export { LazyDialMarkdownEditor } from '../components/MarkdownEditor/lazy';
18
18
  export { LazyMarkdownEditor } from '../components/New/MarkdownEditor/lazy';
19
- export declare const LazyDialMarkdownEditorContainer: () => Promise<typeof import("../components/MarkdownEditor/MarkdownEditorContainer")>;
19
+ export declare const LazyDialMarkdownEditorContainer: () => Promise<typeof import('../components/MarkdownEditor/MarkdownEditorContainer')>;
20
20
  export { EditorThemes } from '../types/editor';
21
21
  export type { MarkdownEditorProps } from '../components/New/MarkdownEditor/MarkdownEditor';
22
22
  export type { DialMarkdownEditorContainerProps } from '../components/MarkdownEditor/MarkdownEditorContainer';
@@ -5,3 +5,12 @@ export declare enum AvatarShape {
5
5
  /** A rounded square — the avatar of an application, model or other entity. */
6
6
  Square = "square"
7
7
  }
8
+ export declare enum AvatarColor {
9
+ Green1 = "green-1",
10
+ Violet2 = "violet-2",
11
+ Brown = "brown",
12
+ Red = "red",
13
+ Green2 = "green-2",
14
+ Blue = "blue",
15
+ Violet1 = "violet-1"
16
+ }
@@ -1,3 +1,4 @@
1
+ import { AvatarColor } from '../types/avatar';
1
2
  /** A background and text colour pair for an initials avatar, as Tailwind classes. */
2
3
  export interface AvatarColorClasses {
3
4
  /** Background class, bound to a `--bg-visual-*` token. */
@@ -5,7 +6,7 @@ export interface AvatarColorClasses {
5
6
  /** Text class, bound to the matching `--text-visual-*` token. */
6
7
  foreground: string;
7
8
  }
8
- export declare const AVATAR_PALETTE: readonly AvatarColorClasses[];
9
+ export declare const AVATAR_PALETTE: Record<AvatarColor, AvatarColorClasses>;
9
10
  /** Returns the palette entry for a name; the same name always gets the same colours. */
10
11
  export declare const pickAvatarColor: (name: string) => AvatarColorClasses;
11
12
  /** Returns 1–2 uppercase initials derived from a display name, or `'?'` when it has no letters. */
@@ -64,5 +64,5 @@ interface SubMenuPanelProps {
64
64
  * Shared floating panel wrapper (FloatingPortal → FloatingFocusManager → container div).
65
65
  * Used by DropdownSubMenuItem and SelectSubMenuItem.
66
66
  */
67
- export declare const SubMenuPanel: ({ refs, floatingStyles, context, getFloatingProps, role, surfaceClassName, className, children, }: SubMenuPanelProps) => import("react/jsx-runtime").JSX.Element;
67
+ export declare const SubMenuPanel: ({ refs, floatingStyles, context, getFloatingProps, role, surfaceClassName, className, children, }: SubMenuPanelProps) => import('react/jsx-runtime').JSX.Element;
68
68
  export {};
@@ -1,4 +1,5 @@
1
- var e = /* @__PURE__ */ ((r) => (r.Circle = "circle", r.Square = "square", r))(e || {});
1
+ var n = /* @__PURE__ */ ((e) => (e.Circle = "circle", e.Square = "square", e))(n || {}), i = /* @__PURE__ */ ((e) => (e.Green1 = "green-1", e.Violet2 = "violet-2", e.Brown = "brown", e.Red = "red", e.Green2 = "green-2", e.Blue = "blue", e.Violet1 = "violet-1", e))(i || {});
2
2
  export {
3
- e as AvatarShape
3
+ i as AvatarColor,
4
+ n as AvatarShape
4
5
  };
@@ -1,22 +1,45 @@
1
- const o = [
2
- { background: "bg-green-1", foreground: "text-green-2" },
3
- { background: "bg-violet-2", foreground: "text-violet-1" },
4
- { background: "bg-brown", foreground: "text-brown-2" },
5
- { background: "bg-red", foreground: "text-red" },
6
- { background: "bg-green-2", foreground: "text-green-3" },
7
- { background: "bg-blue", foreground: "text-accent" },
8
- { background: "bg-violet-1", foreground: "text-violet-2" }
9
- ], c = (t) => {
10
- let e = 0;
11
- for (let r = 0; r < t.length; r++)
12
- e += t.charCodeAt(r);
13
- return o[e % o.length];
14
- }, n = (t) => t.match(new RegExp("\\p{L}", "u"))?.[0] ?? "", l = (t) => {
15
- const e = t.trim().split(/\s+/).filter(Boolean);
16
- return e.length === 0 ? "?" : e.length >= 2 ? (n(e[0]) + n(e[1])).toUpperCase() || "?" : e[0].replace(/[^\p{L}]/gu, "").slice(0, 2).toUpperCase() || "?";
1
+ import { AvatarColor as t } from "../types/avatar.js";
2
+ const l = {
3
+ [t.Green1]: {
4
+ background: "bg-green-1",
5
+ foreground: "text-green-2"
6
+ },
7
+ [t.Violet2]: {
8
+ background: "bg-violet-2",
9
+ foreground: "text-violet-1"
10
+ },
11
+ [t.Brown]: {
12
+ background: "bg-brown",
13
+ foreground: "text-brown-2"
14
+ },
15
+ [t.Red]: {
16
+ background: "bg-red",
17
+ foreground: "text-red"
18
+ },
19
+ [t.Green2]: {
20
+ background: "bg-green-2",
21
+ foreground: "text-green-3"
22
+ },
23
+ [t.Blue]: {
24
+ background: "bg-blue",
25
+ foreground: "text-accent"
26
+ },
27
+ [t.Violet1]: {
28
+ background: "bg-violet-1",
29
+ foreground: "text-violet-2"
30
+ }
31
+ }, c = (r) => {
32
+ const e = Object.values(l);
33
+ let n = 0;
34
+ for (let o = 0; o < r.length; o++)
35
+ n += r.charCodeAt(o);
36
+ return e[n % e.length];
37
+ }, g = (r) => r.match(new RegExp("\\p{L}", "u"))?.[0] ?? "", u = (r) => {
38
+ const e = r.trim().split(/\s+/).filter(Boolean);
39
+ return e.length === 0 ? "?" : e.length >= 2 ? (g(e[0]) + g(e[1])).toUpperCase() || "?" : e[0].replace(/[^\p{L}]/gu, "").slice(0, 2).toUpperCase() || "?";
17
40
  };
18
41
  export {
19
- o as AVATAR_PALETTE,
20
- l as extractInitials,
42
+ l as AVATAR_PALETTE,
43
+ u as extractInitials,
21
44
  c as pickAvatarColor
22
45
  };
@@ -14,7 +14,7 @@ const Z = '[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"],
14
14
  return n === -1 ? s === 1 ? 0 : o - 1 : (n + s + o) % o;
15
15
  };
16
16
  function le(t, n = "menu", o = !1, s) {
17
- const [r, i] = b(!1), u = M(), { refs: a, elements: p, floatingStyles: S, context: c } = k({
17
+ const [r, i] = b(!1), u = M(), { refs: a, elements: d, floatingStyles: S, context: c } = k({
18
18
  nodeId: u,
19
19
  placement: "right-start",
20
20
  open: r,
@@ -40,13 +40,13 @@ function le(t, n = "menu", o = !1, s) {
40
40
  }), T = z(c, { role: n }), {
41
41
  getReferenceProps: g,
42
42
  getFloatingProps: y
43
- } = X([O, D, R, T]), [w, h] = b(!1), d = p.floating;
43
+ } = X([O, D, R, T]), [h, w] = b(!1), p = d.floating;
44
44
  Q(() => {
45
- !r || !w || d == null || (A(d)[0]?.focus(), h(!1));
46
- }, [r, w, d]);
45
+ !r || !h || p == null || (A(p)[0]?.focus(), w(!1));
46
+ }, [r, h, p]);
47
47
  const F = f(
48
48
  (e) => {
49
- o || !(e.key === v(e.currentTarget) || e.key === "Enter" || e.key === " ") || (e.preventDefault(), e.stopPropagation(), i(!0), h(!0));
49
+ o || !(e.key === v(e.currentTarget) || e.key === "Enter" || e.key === " ") || (e.preventDefault(), e.stopPropagation(), i(!0), w(!0));
50
50
  },
51
51
  [o]
52
52
  ), E = f(
@@ -97,7 +97,7 @@ const ne = "rounded bg-layer-0 shadow", ue = ({
97
97
  className: u,
98
98
  children: a
99
99
  }) => {
100
- const p = W();
100
+ const d = W();
101
101
  return /* @__PURE__ */ m(Y, { children: /* @__PURE__ */ m(
102
102
  G,
103
103
  {
@@ -112,9 +112,9 @@ const ne = "rounded bg-layer-0 shadow", ue = ({
112
112
  style: n,
113
113
  role: r,
114
114
  className: J(
115
- "z-floating overflow-auto text-primary focus-visible:outline-none",
115
+ "z-floating overflow-auto text-primary focus-visible:outline-hidden",
116
116
  i ?? ne,
117
- p,
117
+ d,
118
118
  u
119
119
  ),
120
120
  ...s(),