@epam/ai-dial-ui-kit 0.16.0-dev.2 → 0.16.0-dev.20

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 (261) hide show
  1. package/README.md +3 -1
  2. package/dist/CHANGELOG.md +53 -0
  3. package/dist/DateCellRenderer-DDEzIi2B.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 +53 -52
  22. package/dist/components/New/Breadcrumbs/constants.js +1 -1
  23. package/dist/components/New/Calendar/Calendar.js +163 -148
  24. package/dist/components/New/Calendar/constants.js +4 -4
  25. package/dist/components/New/Checkbox/Checkbox.js +23 -21
  26. package/dist/components/New/Checkbox/CheckboxBox.js +25 -18
  27. package/dist/components/New/ConfirmationPopup/ConfirmationPopup.js +49 -44
  28. package/dist/components/New/Dropdown/Dropdown.js +320 -251
  29. package/dist/components/New/Dropdown/constants.js +21 -18
  30. package/dist/components/New/Dropdown/search.js +37 -0
  31. package/dist/components/New/FolderPath/FolderPath.js +151 -46
  32. package/dist/components/New/Grid/Grid.js +139 -132
  33. package/dist/components/New/Grid/constants.js +5 -2
  34. package/dist/components/New/MenuItem/MenuItem.js +17 -17
  35. package/dist/components/New/Popup/Popup.js +124 -101
  36. package/dist/components/New/Popup/constants.js +11 -9
  37. package/dist/components/New/Radio/Radio.js +19 -17
  38. package/dist/components/New/SharedEntityIndicator/SharedEntityIndicator.js +1 -1
  39. package/dist/components/New/SideDrawer/SideDrawer.js +1 -1
  40. package/dist/components/New/Switch/Switch.js +19 -17
  41. package/dist/components/New/TransferQueue/TransferQueue.js +66 -71
  42. package/dist/components/New/TransferQueue/TransferQueueHeader.js +30 -38
  43. package/dist/components/New/TransferQueue/TransferQueueRow.js +106 -49
  44. package/dist/components/Search/Search.js +1 -1
  45. package/dist/components/Select/Select.js +1 -1
  46. package/dist/components/Select/constants.js +6 -6
  47. package/dist/components/Slider/Slider.js +1 -1
  48. package/dist/components/Steps/Step.js +9 -9
  49. package/dist/components/TagInput/TagInput.js +1 -1
  50. package/dist/components-manifest.json +320 -1209
  51. package/dist/constants/public-class-names.js +7 -0
  52. package/dist/dial-ui-kit.cjs +4 -2
  53. package/dist/dial-ui-kit.js +357 -373
  54. package/dist/editors.cjs +1 -1
  55. package/dist/grid.cjs +1 -1
  56. package/dist/grid.js +19 -17
  57. package/dist/index.css +2 -6
  58. package/dist/migration-guides/0.16.0/legacy-file-manager-removal.md +89 -0
  59. package/dist/migration-guides/0.16.0/tailwind-v4-stylesheet.md +98 -0
  60. package/dist/migration-guides/README.md +2 -0
  61. package/dist/node_modules/ag-grid-community/dist/package/main.esm.js +1767 -1763
  62. package/dist/node_modules/react-dnd/dist/hooks/useCollector.js +1 -1
  63. package/dist/src/components/ButtonDropdown/constants.d.ts +2 -2
  64. package/dist/src/components/Dropdown/constants.d.ts +1 -1
  65. package/dist/src/components/Grid/Grid.d.ts +1 -1
  66. package/dist/src/components/JsonEditor/lazy.d.ts +1 -1
  67. package/dist/src/components/MarkdownEditor/lazy.d.ts +1 -1
  68. package/dist/src/components/New/Avatar/Avatar.d.ts +9 -3
  69. package/dist/src/components/New/Breadcrumbs/constants.d.ts +2 -2
  70. package/dist/src/components/New/ButtonDropdown/constants.d.ts +1 -1
  71. package/dist/src/components/New/Calendar/Calendar.d.ts +3 -2
  72. package/dist/src/components/New/Calendar/constants.d.ts +5 -5
  73. package/dist/src/components/New/Dropdown/Dropdown.d.ts +42 -0
  74. package/dist/src/components/New/Dropdown/constants.d.ts +7 -1
  75. package/dist/src/components/New/Dropdown/search.d.ts +9 -0
  76. package/dist/src/components/New/FilterChips/FilterChips.d.ts +1 -1
  77. package/dist/src/components/New/FolderPath/FolderPath.d.ts +16 -8
  78. package/dist/src/components/New/Grid/Grid.d.ts +12 -1
  79. package/dist/src/components/New/Grid/components/SelectionCell.d.ts +1 -1
  80. package/dist/src/components/New/Grid/components/SelectionHeader.d.ts +1 -1
  81. package/dist/src/components/New/InteractiveTooltip/constants.d.ts +1 -1
  82. package/dist/src/components/New/MarkdownEditor/lazy.d.ts +1 -1
  83. package/dist/src/components/New/MenuItem/constants.d.ts +1 -1
  84. package/dist/src/components/New/Popup/constants.d.ts +8 -1
  85. package/dist/src/components/New/SegmentedControl/SegmentedControl.d.ts +1 -1
  86. package/dist/src/components/New/Select/constants.d.ts +4 -4
  87. package/dist/src/components/New/Tooltip/constants.d.ts +2 -2
  88. package/dist/src/components/New/TransferQueue/TransferQueue.d.ts +9 -5
  89. package/dist/src/components/New/TransferQueue/TransferQueueHeader.d.ts +1 -3
  90. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +1 -1
  91. package/dist/src/components/Select/constants.d.ts +3 -3
  92. package/dist/src/constants/public-class-names.d.ts +7 -0
  93. package/dist/src/index.d.ts +4 -13
  94. package/dist/src/subpaths/editors.d.ts +1 -1
  95. package/dist/src/subpaths/grid.d.ts +1 -0
  96. package/dist/src/types/avatar.d.ts +9 -0
  97. package/dist/src/types/grid.d.ts +8 -0
  98. package/dist/src/utils/avatar.d.ts +2 -1
  99. package/dist/src/utils/sub-menu-floating.d.ts +1 -1
  100. package/dist/types/avatar.js +3 -2
  101. package/dist/types/grid.js +4 -0
  102. package/dist/utils/avatar.js +41 -18
  103. package/dist/utils/sub-menu-floating.js +8 -8
  104. package/package.json +9 -12
  105. package/dist/DateCellRenderer-BdUMSg-E.cjs +0 -1
  106. package/dist/DateCellRenderer-CZNa4jVJ.cjs +0 -63
  107. package/dist/_virtual/___vite-browser-external.js +0 -6
  108. package/dist/_virtual/__vite-browser-external.js +0 -4
  109. package/dist/_virtual/index2.js +0 -4
  110. package/dist/_virtual/index3.js +0 -7
  111. package/dist/assets/icons/add-child.svg.js +0 -5
  112. package/dist/assets/icons/add-sibling.svg.js +0 -5
  113. package/dist/assets/icons/copy-to.svg.js +0 -5
  114. package/dist/assets/icons/move-to.svg.js +0 -5
  115. package/dist/assets/icons/unshare.svg.js +0 -5
  116. package/dist/components/FileManager/FileManager.js +0 -888
  117. package/dist/components/FileManager/FileManagerContext.js +0 -5
  118. package/dist/components/FileManager/FileManagerProvider.js +0 -772
  119. package/dist/components/FileManager/FileManagerTooltip.js +0 -92
  120. package/dist/components/FileManager/components/ConflictResolutionPopup/ConflictResolutionPopup.js +0 -293
  121. package/dist/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.js +0 -201
  122. package/dist/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.js +0 -52
  123. package/dist/components/FileManager/components/FileManagerBulkActionsToolbar/FileManagerBulkActionsToolbar.js +0 -103
  124. package/dist/components/FileManager/components/FileManagerBulkActionsToolbar/constants.js +0 -5
  125. package/dist/components/FileManager/components/FileManagerDeleteConfirmationPopup/FileManagerDeleteConfirmationPopup.js +0 -56
  126. package/dist/components/FileManager/components/FileManagerItemIcon/FileManagerItemIcon.js +0 -69
  127. package/dist/components/FileManager/components/FileManagerItemName/FileManagerItemName.js +0 -100
  128. package/dist/components/FileManager/components/FileManagerItemNameInput/FileManagerItemNameInput.js +0 -93
  129. package/dist/components/FileManager/components/FileManagerNavigationPanel/FileManagerNavigationPanel.js +0 -165
  130. package/dist/components/FileManager/components/FileManagerNavigationPanel/constants.js +0 -6
  131. package/dist/components/FileManager/components/FileManagerToolbar/DialFileManagerToolbar.js +0 -120
  132. package/dist/components/FileManager/components/FileMetadataPopup/FileMetadataPopup.js +0 -119
  133. package/dist/components/FileManager/components/FileMetadataPopup/constants.js +0 -9
  134. package/dist/components/FileManager/components/FoldersTree/FoldersTree.js +0 -180
  135. package/dist/components/FileManager/components/FoldersTree/constants.js +0 -9
  136. package/dist/components/FileManager/components/FoldersTree/hooks/use-expanded-paths.js +0 -51
  137. package/dist/components/FileManager/constants.js +0 -28
  138. package/dist/components/FileManager/errors.js +0 -10
  139. package/dist/components/FileManager/hooks/use-bulk-actions.js +0 -143
  140. package/dist/components/FileManager/hooks/use-collapse-tree.js +0 -22
  141. package/dist/components/FileManager/hooks/use-conflict-resolution.js +0 -158
  142. package/dist/components/FileManager/hooks/use-current-path.js +0 -29
  143. package/dist/components/FileManager/hooks/use-file-clipboard.js +0 -154
  144. package/dist/components/FileManager/hooks/use-file-delete.js +0 -39
  145. package/dist/components/FileManager/hooks/use-file-download.js +0 -16
  146. package/dist/components/FileManager/hooks/use-file-manager-columns.js +0 -106
  147. package/dist/components/FileManager/hooks/use-file-manager-context.js +0 -13
  148. package/dist/components/FileManager/hooks/use-file-manager-tabs.js +0 -23
  149. package/dist/components/FileManager/hooks/use-file-metadata.js +0 -20
  150. package/dist/components/FileManager/hooks/use-file-search.js +0 -90
  151. package/dist/components/FileManager/hooks/use-file-upload.js +0 -338
  152. package/dist/components/FileManager/hooks/use-folder-creation.js +0 -151
  153. package/dist/components/FileManager/hooks/use-grid-actions-column.js +0 -65
  154. package/dist/components/FileManager/hooks/use-grid-context-menu.js +0 -188
  155. package/dist/components/FileManager/hooks/use-item-renaming.js +0 -124
  156. package/dist/components/FileManager/hooks/use-new-actions.js +0 -67
  157. package/dist/components/FileManager/hooks/use-paths-selection.js +0 -28
  158. package/dist/components/FileManager/hooks/use-show-hidden-files.js +0 -20
  159. package/dist/components/FileManager/hooks/use-tree-additional-buttons.js +0 -39
  160. package/dist/components/FileManager/hooks/use-trigger-view-create-folder.js +0 -42
  161. package/dist/components/FileManager/hooks/use-trigger-view-rename.js +0 -25
  162. package/dist/components/FileManager/utils.js +0 -129
  163. package/dist/constants/file-grid-columns.js +0 -176
  164. package/dist/file-manager.cjs +0 -1
  165. package/dist/file-manager.js +0 -22
  166. package/dist/hooks/use-flexible-actions.js +0 -72
  167. package/dist/hooks/use-width-breakpoint.js +0 -15
  168. package/dist/node_modules/mime-db/db.json.js +0 -2527
  169. package/dist/node_modules/mime-db/index.js +0 -8
  170. package/dist/node_modules/mime-types/index.js +0 -70
  171. package/dist/node_modules/mime-types/mimeScore.js +0 -38
  172. package/dist/src/__mocks__/monaco-editor.d.ts +0 -13
  173. package/dist/src/components/Analytics/Bar/utils.spec.d.ts +0 -1
  174. package/dist/src/components/Analytics/Histogram/utils.spec.d.ts +0 -1
  175. package/dist/src/components/Button/ButtonWrappers.test.d.ts +0 -1
  176. package/dist/src/components/Button/__tests__/utils.spec.d.ts +0 -1
  177. package/dist/src/components/FileManager/FileManager.d.ts +0 -326
  178. package/dist/src/components/FileManager/FileManagerContext.d.ts +0 -181
  179. package/dist/src/components/FileManager/FileManagerProvider.d.ts +0 -21
  180. package/dist/src/components/FileManager/FileManagerTooltip.d.ts +0 -12
  181. package/dist/src/components/FileManager/__mocks__/files.d.ts +0 -3
  182. package/dist/src/components/FileManager/components/ConflictResolutionPopup/ConflictResolutionPopup.d.ts +0 -90
  183. package/dist/src/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.d.ts +0 -73
  184. package/dist/src/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.d.ts +0 -63
  185. package/dist/src/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.test.d.ts +0 -1
  186. package/dist/src/components/FileManager/components/FileManagerBulkActionsToolbar/FileManagerBulkActionsToolbar.d.ts +0 -56
  187. package/dist/src/components/FileManager/components/FileManagerBulkActionsToolbar/constants.d.ts +0 -3
  188. package/dist/src/components/FileManager/components/FileManagerDeleteConfirmationPopup/FileManagerDeleteConfirmationPopup.d.ts +0 -26
  189. package/dist/src/components/FileManager/components/FileManagerItemIcon/FileManagerItemIcon.d.ts +0 -51
  190. package/dist/src/components/FileManager/components/FileManagerItemName/FileManagerItemName.d.ts +0 -57
  191. package/dist/src/components/FileManager/components/FileManagerItemNameInput/FileManagerItemNameInput.d.ts +0 -71
  192. package/dist/src/components/FileManager/components/FileManagerNavigationPanel/FileManagerNavigationPanel.d.ts +0 -64
  193. package/dist/src/components/FileManager/components/FileManagerNavigationPanel/constants.d.ts +0 -3
  194. package/dist/src/components/FileManager/components/FileManagerToolbar/DialFileManagerToolbar.d.ts +0 -76
  195. package/dist/src/components/FileManager/components/FileMetadataPopup/FileMetadataPopup.d.ts +0 -50
  196. package/dist/src/components/FileManager/components/FileMetadataPopup/constants.d.ts +0 -6
  197. package/dist/src/components/FileManager/components/FoldersTree/FoldersTree.d.ts +0 -135
  198. package/dist/src/components/FileManager/components/FoldersTree/constants.d.ts +0 -6
  199. package/dist/src/components/FileManager/components/FoldersTree/hooks/use-expanded-paths.d.ts +0 -13
  200. package/dist/src/components/FileManager/constants.d.ts +0 -21
  201. package/dist/src/components/FileManager/errors.d.ts +0 -6
  202. package/dist/src/components/FileManager/hooks/__tests__/use-conflict-resolution.spec.d.ts +0 -1
  203. package/dist/src/components/FileManager/hooks/__tests__/use-current-path.spec.d.ts +0 -1
  204. package/dist/src/components/FileManager/hooks/__tests__/use-file-clipboard.spec.d.ts +0 -1
  205. package/dist/src/components/FileManager/hooks/__tests__/use-file-delete.spec.d.ts +0 -1
  206. package/dist/src/components/FileManager/hooks/__tests__/use-file-download.spec.d.ts +0 -1
  207. package/dist/src/components/FileManager/hooks/__tests__/use-file-upload.spec.d.ts +0 -1
  208. package/dist/src/components/FileManager/hooks/__tests__/use-show-hidden-files.spec.d.ts +0 -1
  209. package/dist/src/components/FileManager/hooks/__tests__/use-trigger-view-rename.spec.d.ts +0 -1
  210. package/dist/src/components/FileManager/hooks/use-bulk-actions.d.ts +0 -30
  211. package/dist/src/components/FileManager/hooks/use-collapse-tree.d.ts +0 -9
  212. package/dist/src/components/FileManager/hooks/use-conflict-resolution.d.ts +0 -27
  213. package/dist/src/components/FileManager/hooks/use-current-path.d.ts +0 -13
  214. package/dist/src/components/FileManager/hooks/use-file-clipboard.d.ts +0 -37
  215. package/dist/src/components/FileManager/hooks/use-file-delete.d.ts +0 -13
  216. package/dist/src/components/FileManager/hooks/use-file-download.d.ts +0 -9
  217. package/dist/src/components/FileManager/hooks/use-file-manager-columns.d.ts +0 -43
  218. package/dist/src/components/FileManager/hooks/use-file-manager-context.d.ts +0 -7
  219. package/dist/src/components/FileManager/hooks/use-file-manager-tabs.d.ts +0 -10
  220. package/dist/src/components/FileManager/hooks/use-file-metadata.d.ts +0 -10
  221. package/dist/src/components/FileManager/hooks/use-file-search.d.ts +0 -23
  222. package/dist/src/components/FileManager/hooks/use-file-upload.d.ts +0 -64
  223. package/dist/src/components/FileManager/hooks/use-folder-creation.d.ts +0 -30
  224. package/dist/src/components/FileManager/hooks/use-grid-actions-column.d.ts +0 -15
  225. package/dist/src/components/FileManager/hooks/use-grid-context-menu.d.ts +0 -44
  226. package/dist/src/components/FileManager/hooks/use-item-renaming.d.ts +0 -22
  227. package/dist/src/components/FileManager/hooks/use-new-actions.d.ts +0 -23
  228. package/dist/src/components/FileManager/hooks/use-paths-selection.d.ts +0 -13
  229. package/dist/src/components/FileManager/hooks/use-show-hidden-files.d.ts +0 -9
  230. package/dist/src/components/FileManager/hooks/use-tree-additional-buttons.d.ts +0 -22
  231. package/dist/src/components/FileManager/hooks/use-trigger-view-create-folder.d.ts +0 -26
  232. package/dist/src/components/FileManager/hooks/use-trigger-view-rename.d.ts +0 -20
  233. package/dist/src/components/FileManager/utils.d.ts +0 -69
  234. package/dist/src/components/FileManager/utils.spec.d.ts +0 -1
  235. package/dist/src/components/Grid/comparators/base-column-comparator.spec.d.ts +0 -1
  236. package/dist/src/components/Grid/renderers/utils.spec.d.ts +0 -1
  237. package/dist/src/components/New/AutocompleteTagInput/utils.spec.d.ts +0 -1
  238. package/dist/src/components/New/Button/__tests__/utils.spec.d.ts +0 -1
  239. package/dist/src/components/New/Calendar/utils.spec.d.ts +0 -1
  240. package/dist/src/components/New/Slider/utils.spec.d.ts +0 -1
  241. package/dist/src/components/New/TagInput/utils.spec.d.ts +0 -1
  242. package/dist/src/components/Pagination/tests/utils.spec.d.ts +0 -1
  243. package/dist/src/components/SchemaRenderer/tests/utils.spec.d.ts +0 -1
  244. package/dist/src/components/Steps/tests/Steps.test.d.ts +0 -1
  245. package/dist/src/components/Steps/tests/utils.spec.d.ts +0 -1
  246. package/dist/src/constants/file-grid-columns.d.ts +0 -4
  247. package/dist/src/models/file-manager.d.ts +0 -19
  248. package/dist/src/subpaths/file-manager.d.ts +0 -21
  249. package/dist/src/types/file-manager.d.ts +0 -59
  250. package/dist/src/utils/__tests__/accessible-name.spec.d.ts +0 -1
  251. package/dist/src/utils/__tests__/avatar.spec.d.ts +0 -1
  252. package/dist/src/utils/__tests__/element-size-observer.spec.d.ts +0 -1
  253. package/dist/src/utils/__tests__/file-accept.spec.d.ts +0 -1
  254. package/dist/src/utils/__tests__/merge-classes.spec.d.ts +0 -1
  255. package/dist/src/utils/__tests__/path.spec.d.ts +0 -1
  256. package/dist/src/utils/__tests__/pointer.spec.d.ts +0 -1
  257. package/dist/src/utils/__tests__/timezone.spec.d.ts +0 -1
  258. package/dist/src/utils/grid-registration.spec.d.ts +0 -1
  259. package/dist/types/file-manager.js +0 -12
  260. package/dist/use-file-manager-tabs-Bzzwwcgk.cjs +0 -3
  261. package/dist/utils/path.js +0 -4
@@ -1,316 +1,385 @@
1
- import { jsxs as N, Fragment as A, jsx as n } from "react/jsx-runtime";
2
- import { useFloatingNodeId as ye, useFloating as we, autoUpdate as ve, offset as xe, autoPlacement as Ce, flip as ke, shift as be, size as Ie, useClick as Pe, useHover as Ee, safePolygon as Ne, useDismiss as Ae, useRole as De, useInteractions as Me, FloatingTree as Fe, FloatingNode as Te, FloatingPortal as Oe, FloatingFocusManager as Re } from "@floating-ui/react";
3
- import { useState as j, useRef as Le, useCallback as m, useId as Se, useEffect as U, useMemo as _e, Fragment as $e } from "react";
4
- import { InteractiveTooltip as Be } from "../InteractiveTooltip/InteractiveTooltip.js";
5
- import { DIAL_KIT_CLASS as V } from "../../../constants/public-class-names.js";
6
- import { DropdownTrigger as y, DropdownItemType as X } from "../../../types/dropdown.js";
7
- import { MenuItemMark as Ye } from "../../../types/menu-item.js";
8
- import { dropdownGap as w, dropdownDividerClassName as Ke, dropdownItemListClassName as We, dropdownBaseClassName as je, dropdownListBaseClassName as Ue } from "./constants.js";
9
- import { CloseButton as Ve } from "../CloseButton/CloseButton.js";
10
- import { MenuItem as Xe } from "../MenuItem/MenuItem.js";
11
- import { useThemeScope as qe } from "../ThemeScope/ThemeScope.js";
12
- import { mergeClasses as v } from "../../../utils/merge-classes.js";
13
- import { DropdownSubMenuItem as ze } from "./DropdownSubMenuItem.js";
14
- import { resolveItemMark as Ge, getItemRole as He } from "./item-mark.js";
15
- const Je = '[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="option"]', Qe = (l) => !l.hasAttribute("disabled") && l.getAttribute("aria-disabled") !== "true", Ze = ["ArrowDown", "ArrowUp", "Home", "End"], et = (l, d, u) => {
1
+ import { jsxs as S, Fragment as R, jsx as o } from "react/jsx-runtime";
2
+ import { useFloatingNodeId as Te, useFloating as Le, autoUpdate as Oe, offset as Re, autoPlacement as be, flip as _e, shift as $e, size as Be, useClick as Ye, useHover as He, safePolygon as Ke, useDismiss as Ue, useRole as We, useInteractions as je, FloatingTree as ze, FloatingNode as Qe, FloatingPortal as qe, FloatingFocusManager as Xe } from "@floating-ui/react";
3
+ import { useState as b, useRef as Ge, useCallback as h, useId as Je, useEffect as oe, useMemo as ne, Fragment as Ze } from "react";
4
+ import { InteractiveTooltip as Ve } from "../InteractiveTooltip/InteractiveTooltip.js";
5
+ import { DIAL_KIT_CLASS as _ } from "../../../constants/public-class-names.js";
6
+ import { DropdownTrigger as k, DropdownItemType as re } from "../../../types/dropdown.js";
7
+ import { MenuItemMark as et } from "../../../types/menu-item.js";
8
+ import { dropdownGap as N, dropdownSearchClassName as tt, dropdownNoResultsClassName as ot, dropdownDividerClassName as nt, getDropdownListHeight as rt, dropdownItemListClassName as st, dropdownBaseClassName as lt, dropdownListBaseClassName as it } from "./constants.js";
9
+ import { CloseButton as ct } from "../CloseButton/CloseButton.js";
10
+ import { MenuItem as at } from "../MenuItem/MenuItem.js";
11
+ import { Search as dt } from "../Search/Search.js";
12
+ import { useThemeScope as ut } from "../ThemeScope/ThemeScope.js";
13
+ import { ElementSize as ft } from "../../../types/size.js";
14
+ import { mergeClasses as y } from "../../../utils/merge-classes.js";
15
+ import { DropdownSubMenuItem as pt } from "./DropdownSubMenuItem.js";
16
+ import { resolveItemMark as mt, getItemRole as ht } from "./item-mark.js";
17
+ import { highlightDropdownItems as gt, filterDropdownItems as wt } from "./search.js";
18
+ const yt = '[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="option"]', vt = (l) => !l.hasAttribute("disabled") && l.getAttribute("aria-disabled") !== "true", Ct = ["ArrowDown", "ArrowUp", "Home", "End"], xt = (l, d, f) => {
16
19
  if (l === "Home") return 0;
17
- if (l === "End") return u - 1;
18
- const a = l === "ArrowDown" ? 1 : -1;
19
- return d === -1 ? a === 1 ? 0 : u - 1 : (d + a + u) % u;
20
- }, tt = (l) => "clientWidth" in l ? l.clientWidth : l.getBoundingClientRect?.()?.width ?? 0, gt = ({
20
+ if (l === "End") return f - 1;
21
+ const u = l === "ArrowDown" ? 1 : -1;
22
+ return d === -1 ? u === 1 ? 0 : f - 1 : (d + u + f) % f;
23
+ }, kt = (l) => "clientWidth" in l ? l.clientWidth : l.getBoundingClientRect?.()?.width ?? 0, Yt = ({
21
24
  children: l,
22
25
  items: d,
23
- onItemClick: u,
24
- menuHeader: a,
25
- menuFooter: h,
26
- renderOverlay: I,
27
- trigger: f = [y.Click],
28
- placement: D,
29
- disabled: i = !1,
30
- open: M,
31
- defaultOpen: q = !1,
32
- onOpenChange: F,
33
- closable: z = !1,
34
- onClose: G,
35
- className: H,
36
- overlayContentClassName: T,
37
- separatorClassName: O,
38
- listClassName: J,
39
- listStyle: R,
40
- outsidePressIgnoreRef: L,
41
- outsideClosable: Q = !0,
42
- allowedPlacements: Z,
43
- anchorToMouse: x = !1,
44
- matchReferenceWidth: P = !0,
45
- maxDropdownHeight: S,
46
- initialFocus: _
26
+ onItemClick: f,
27
+ menuHeader: u,
28
+ menuFooter: v,
29
+ renderOverlay: E,
30
+ trigger: g = [k.Click],
31
+ placement: $,
32
+ disabled: c = !1,
33
+ open: B,
34
+ defaultOpen: se = !1,
35
+ onOpenChange: Y,
36
+ closable: le = !1,
37
+ onClose: ie,
38
+ className: ce,
39
+ overlayContentClassName: H,
40
+ separatorClassName: K,
41
+ listClassName: ae,
42
+ listStyle: U,
43
+ outsidePressIgnoreRef: W,
44
+ outsideClosable: de = !0,
45
+ allowedPlacements: ue,
46
+ anchorToMouse: D = !1,
47
+ matchReferenceWidth: F = !0,
48
+ maxDropdownHeight: j,
49
+ initialFocus: z,
50
+ searchable: i = !1,
51
+ searchValue: T,
52
+ onSearchChange: Q,
53
+ searchPlaceholder: L = "Search",
54
+ searchClearLabel: q = "Clear search",
55
+ noResultsLabel: X = "No results found",
56
+ filterItem: G,
57
+ maxVisibleItems: C
47
58
  }) => {
48
- const ee = qe(), [te, ne] = j(q), E = M !== void 0, c = E ? !!M : te, C = Le(null), [oe, re] = j(!0), o = m(
49
- (e, t, r) => {
50
- e && re(r !== "hover" && r !== "safe-polygon"), E || ne(e), F?.(e);
59
+ const fe = ut(), [pe, me] = b(se), O = B !== void 0, a = O ? !!B : pe, I = Ge(null), [he, ge] = b(""), p = T ?? he, M = h(
60
+ (t) => {
61
+ T === void 0 && ge(t), Q?.(t);
51
62
  },
52
- [E, F]
53
- ), $ = Se(), se = D === void 0, B = ye(), { refs: p, floatingStyles: Y, context: g } = we({
54
- nodeId: B,
55
- placement: D,
56
- open: c,
57
- onOpenChange: o,
58
- whileElementsMounted: ve,
63
+ [T, Q]
64
+ ), [we, ye] = b(!0), n = h(
65
+ (t, e, r) => {
66
+ t ? ye(r !== "hover" && r !== "safe-polygon") : i && p && M(""), O || me(t), Y?.(t);
67
+ },
68
+ [O, Y, i, p, M]
69
+ ), J = Je(), ve = $ === void 0, Z = Te(), { refs: w, floatingStyles: V, context: x } = Le({
70
+ nodeId: Z,
71
+ placement: $,
72
+ open: a,
73
+ onOpenChange: n,
74
+ whileElementsMounted: Oe,
59
75
  middleware: [
60
- xe({ mainAxis: w, crossAxis: 0 }),
61
- se ? Ce({
76
+ Re({ mainAxis: N, crossAxis: 0 }),
77
+ ve ? be({
62
78
  alignment: "start",
63
79
  crossAxis: !0,
64
- padding: w,
65
- allowedPlacements: Z
66
- }) : ke({ padding: w }),
67
- be({ padding: w }),
68
- Ie({
69
- padding: w,
70
- apply({ availableWidth: e, availableHeight: t, elements: r }) {
71
- const s = r.floating, b = tt(r.reference);
80
+ padding: N,
81
+ allowedPlacements: ue
82
+ }) : _e({ padding: N }),
83
+ $e({ padding: N }),
84
+ Be({
85
+ padding: N,
86
+ apply({ availableWidth: t, availableHeight: e, elements: r }) {
87
+ const s = r.floating, m = kt(r.reference);
72
88
  s.style.setProperty(
73
89
  "--fui-available-height",
74
- `${Math.floor(t)}px`
90
+ `${Math.floor(e)}px`
75
91
  ), s.style.setProperty(
76
92
  "--reference-width",
77
- P ? `${Math.round(b)}px` : "0px"
78
- ), P ? s.style.minWidth = `${Math.round(b)}px` : s.style.removeProperty("min-width"), s.style.maxWidth = `${Math.floor(e)}px`;
79
- const W = Math.floor(t);
80
- s.style.maxHeight = `${S ? Math.min(W, S) : W}px`;
93
+ F ? `${Math.round(m)}px` : "0px"
94
+ ), F ? s.style.minWidth = `${Math.round(m)}px` : s.style.removeProperty("min-width"), s.style.maxWidth = `${Math.floor(t)}px`;
95
+ const te = Math.floor(e);
96
+ s.style.maxHeight = `${j ? Math.min(te, j) : te}px`;
81
97
  }
82
98
  })
83
99
  ]
84
- }), le = Pe(g, {
85
- enabled: f.includes(y.Click) && !i
86
- }), ie = Ee(g, {
87
- enabled: f.includes(y.Hover) && !i,
100
+ }), Ce = Ye(x, {
101
+ enabled: g.includes(k.Click) && !c
102
+ }), xe = He(x, {
103
+ enabled: g.includes(k.Hover) && !c,
88
104
  move: !1,
89
105
  restMs: 40,
90
- handleClose: Ne(),
106
+ handleClose: Ke(),
91
107
  delay: { open: 80, close: 80 }
92
- }), ce = Ae(g, {
108
+ }), ke = Ue(x, {
93
109
  bubbles: !0,
94
110
  referencePress: !1,
95
- outsidePress: (e) => {
96
- if (!Q) return !1;
97
- const t = e.target;
98
- return !(L?.current && t instanceof Node && L.current.contains(t));
111
+ outsidePress: (t) => {
112
+ if (!de) return !1;
113
+ const e = t.target;
114
+ return !(W?.current && e instanceof Node && W.current.contains(e));
99
115
  }
100
- }), ae = De(g, { role: "menu" }), { getReferenceProps: de, getFloatingProps: ue } = Me([
101
- le,
102
- ie,
103
- ce,
104
- ae
105
- ]), k = m(
106
- (e, t) => {
107
- p.setPositionReference({
116
+ }), Ne = We(x, { role: "menu" }), { getReferenceProps: Ee, getFloatingProps: De } = je([
117
+ Ce,
118
+ xe,
119
+ ke,
120
+ Ne
121
+ ]), P = h(
122
+ (t, e) => {
123
+ w.setPositionReference({
108
124
  getBoundingClientRect: () => ({
109
125
  width: 0,
110
126
  height: 0,
111
- x: e,
112
- y: t,
113
- top: t,
114
- left: e,
115
- right: e,
116
- bottom: t
127
+ x: t,
128
+ y: e,
129
+ top: e,
130
+ left: t,
131
+ right: t,
132
+ bottom: e
117
133
  })
118
134
  });
119
135
  },
120
- [p]
121
- ), fe = m(
122
- (e) => {
123
- !f.includes(y.ContextMenu) || i || (e.preventDefault(), x && (k(e.clientX, e.clientY), C.current = document.elementFromPoint(
124
- e.clientX,
125
- e.clientY
126
- )), o(!0));
136
+ [w]
137
+ ), Ie = h(
138
+ (t) => {
139
+ !g.includes(k.ContextMenu) || c || (t.preventDefault(), D && (P(t.clientX, t.clientY), I.current = document.elementFromPoint(
140
+ t.clientX,
141
+ t.clientY
142
+ )), n(!0));
127
143
  },
128
- [x, i, o, k, f]
129
- ), pe = m(
130
- (e) => {
131
- !x || i || (f.includes(y.ContextMenu) && c && o(!1), k(e.clientX, e.clientY), C.current = document.elementFromPoint(
132
- e.clientX,
133
- e.clientY
144
+ [D, c, n, P, g]
145
+ ), Me = h(
146
+ (t) => {
147
+ !D || c || (g.includes(k.ContextMenu) && a && n(!1), P(t.clientX, t.clientY), I.current = document.elementFromPoint(
148
+ t.clientX,
149
+ t.clientY
134
150
  ));
135
151
  },
136
- [x, i, k, c, f, o]
152
+ [D, c, P, a, g, n]
137
153
  );
138
- U(() => {
139
- i && c && o(!1);
140
- }, [i, c, o]);
141
- const me = m(
142
- (e) => {
143
- if (e.defaultPrevented || !Ze.includes(e.key) || !e.currentTarget.contains(e.target)) return;
144
- const t = Array.from(
145
- e.currentTarget.querySelectorAll(
146
- Je
154
+ oe(() => {
155
+ c && a && n(!1);
156
+ }, [c, a, n]);
157
+ const Pe = h(
158
+ (t) => {
159
+ if (t.defaultPrevented || !Ct.includes(t.key) || !t.currentTarget.contains(t.target) || t.target instanceof HTMLInputElement && (t.key === "Home" || t.key === "End"))
160
+ return;
161
+ const e = Array.from(
162
+ t.currentTarget.querySelectorAll(
163
+ yt
147
164
  )
148
- ).filter(Qe);
149
- if (t.length === 0) return;
150
- e.preventDefault();
151
- const r = e.currentTarget.ownerDocument.activeElement, s = t.findIndex((b) => b === r);
152
- t[et(e.key, s, t.length)]?.focus();
165
+ ).filter(vt);
166
+ if (e.length === 0) return;
167
+ t.preventDefault();
168
+ const r = t.currentTarget.ownerDocument.activeElement, s = e.findIndex((m) => m === r);
169
+ e[xt(t.key, s, e.length)]?.focus();
153
170
  },
154
171
  []
155
- ), K = m(
156
- (e) => (t) => {
157
- e.disabled || (e.onClick?.({ key: e.key, domEvent: t }), u?.({ key: e.key, domEvent: t }), e.selectable || o(!1));
172
+ ), ee = h(
173
+ (t) => (e) => {
174
+ t.disabled || (t.onClick?.({ key: t.key, domEvent: e }), f?.({ key: t.key, domEvent: e }), t.selectable || n(!1));
158
175
  },
159
- [u, o]
160
- ), he = _e(() => I ? I() : d ? /* @__PURE__ */ N(A, { children: [
161
- a && /* @__PURE__ */ n(A, { children: typeof a == "function" ? a() : a }),
162
- /* @__PURE__ */ n(
163
- "div",
164
- {
165
- role: "none",
166
- className: v(
167
- We,
168
- T,
169
- V.dropdownList
170
- ),
171
- "aria-label": "dropdown",
172
- children: d.map((e) => {
173
- if (e.type === X.Divider)
174
- return /* @__PURE__ */ n(
175
- "div",
176
- {
177
- role: "separator",
178
- className: v(
179
- Ke,
180
- O
181
- )
182
- },
183
- e.key
184
- );
185
- if (e.type === X.PlainText)
186
- return /* @__PURE__ */ n(
187
- "div",
188
- {
189
- className: v(
190
- "px-3 py-2 text-secondary dial-caption-text",
191
- e.className
192
- ),
193
- children: e.label
194
- },
195
- e.key
196
- );
197
- if (e.children?.length)
198
- return /* @__PURE__ */ n(
199
- ze,
200
- {
201
- item: e,
202
- onRootClose: () => o(!1)
203
- },
204
- e.key
205
- );
206
- const t = Ge(e), r = He(e), s = /* @__PURE__ */ n(
207
- Xe,
208
- {
209
- role: r,
210
- "aria-checked": r === "menuitem" ? void 0 : !!e.checked,
211
- "aria-current": t === Ye.Highlight && e.checked ? !0 : void 0,
212
- "aria-disabled": !!e.disabled,
213
- disabled: e.disabled,
214
- mark: t,
215
- selected: !!e.checked,
216
- danger: e.danger,
217
- icon: e.icon,
218
- label: e.label,
219
- className: e.className,
220
- rightControl: e.rightControl,
221
- onClick: K(e),
222
- children: e.renderItem?.(e)
223
- }
224
- );
225
- return /* @__PURE__ */ n($e, { children: e.interactiveTooltip ? /* @__PURE__ */ n(
226
- Be,
176
+ [f, n]
177
+ ), A = ne(() => !d || !i ? d : gt(
178
+ wt(d, p, G),
179
+ p
180
+ ), [d, i, p, G]), Ae = ne(() => {
181
+ if (E) return E();
182
+ if (!A) return null;
183
+ const t = i && A.length === 0;
184
+ return /* @__PURE__ */ S(R, { children: [
185
+ u && /* @__PURE__ */ o(R, { children: typeof u == "function" ? u() : u }),
186
+ i && /* @__PURE__ */ o(
187
+ "div",
188
+ {
189
+ className: y(
190
+ tt,
191
+ _.dropdownSearch
192
+ ),
193
+ children: /* @__PURE__ */ o(
194
+ dt,
227
195
  {
228
- asChild: !0,
229
- placement: e.interactiveTooltip.placement,
230
- content: e.interactiveTooltip.content,
231
- contentClassName: e.interactiveTooltip.contentClassName,
232
- children: s
196
+ value: p,
197
+ placeholder: L,
198
+ "aria-label": L,
199
+ clearLabel: q,
200
+ size: ft.Small,
201
+ onChange: (e) => M(e ?? "")
233
202
  }
234
- ) : s }, e.key);
235
- })
236
- }
237
- ),
238
- h && /* @__PURE__ */ n(A, { children: typeof h == "function" ? h() : h })
239
- ] }) : null, [
203
+ )
204
+ }
205
+ ),
206
+ /* @__PURE__ */ S(
207
+ "div",
208
+ {
209
+ role: "none",
210
+ className: y(
211
+ st,
212
+ /* Under a search field or a row cap the list scrolls by itself,
213
+ so the field stays in view; the panel's own height cap still
214
+ shrinks it through `min-h-0`. */
215
+ (i || C != null) && "min-h-0 flex-1 overflow-auto",
216
+ H,
217
+ _.dropdownList
218
+ ),
219
+ style: C != null ? { maxHeight: rt(C) } : void 0,
220
+ "aria-label": "dropdown",
221
+ children: [
222
+ i && /* Always mounted, so a screen reader announces the text when a
223
+ query empties the list rather than missing a fresh region. */
224
+ /* @__PURE__ */ o(
225
+ "div",
226
+ {
227
+ role: "status",
228
+ className: t ? ot : "sr-only",
229
+ children: t ? X : ""
230
+ }
231
+ ),
232
+ A.map((e) => {
233
+ if (e.type === re.Divider)
234
+ return /* @__PURE__ */ o(
235
+ "div",
236
+ {
237
+ role: "separator",
238
+ className: y(
239
+ nt,
240
+ K
241
+ )
242
+ },
243
+ e.key
244
+ );
245
+ if (e.type === re.PlainText)
246
+ return /* @__PURE__ */ o(
247
+ "div",
248
+ {
249
+ className: y(
250
+ "px-3 py-2 text-secondary dial-caption-text",
251
+ e.className
252
+ ),
253
+ children: e.label
254
+ },
255
+ e.key
256
+ );
257
+ if (e.children?.length)
258
+ return /* @__PURE__ */ o(
259
+ pt,
260
+ {
261
+ item: e,
262
+ onRootClose: () => n(!1)
263
+ },
264
+ e.key
265
+ );
266
+ const r = mt(e), s = ht(e), m = /* @__PURE__ */ o(
267
+ at,
268
+ {
269
+ role: s,
270
+ "aria-checked": s === "menuitem" ? void 0 : !!e.checked,
271
+ "aria-current": r === et.Highlight && e.checked ? !0 : void 0,
272
+ "aria-disabled": !!e.disabled,
273
+ disabled: e.disabled,
274
+ mark: r,
275
+ selected: !!e.checked,
276
+ danger: e.danger,
277
+ icon: e.icon,
278
+ label: e.label,
279
+ className: e.className,
280
+ rightControl: e.rightControl,
281
+ onClick: ee(e),
282
+ children: e.renderItem?.(e)
283
+ }
284
+ );
285
+ return /* @__PURE__ */ o(Ze, { children: e.interactiveTooltip ? /* @__PURE__ */ o(
286
+ Ve,
287
+ {
288
+ asChild: !0,
289
+ placement: e.interactiveTooltip.placement,
290
+ content: e.interactiveTooltip.content,
291
+ contentClassName: e.interactiveTooltip.contentClassName,
292
+ children: m
293
+ }
294
+ ) : m }, e.key);
295
+ })
296
+ ]
297
+ }
298
+ ),
299
+ v && /* @__PURE__ */ o(R, { children: typeof v == "function" ? v() : v })
300
+ ] });
301
+ }, [
302
+ ee,
303
+ A,
304
+ v,
305
+ u,
306
+ E,
307
+ n,
308
+ H,
240
309
  K,
241
- d,
242
- h,
243
- a,
244
- I,
245
- o,
246
- T,
247
- O
248
- ]), ge = de({
249
- onContextMenu: fe,
250
- onMouseDown: pe
310
+ i,
311
+ p,
312
+ M,
313
+ L,
314
+ q,
315
+ X,
316
+ C
317
+ ]), Se = !E && (i || C != null), Fe = Ee({
318
+ onContextMenu: Ie,
319
+ onMouseDown: Me
251
320
  });
252
- return U(() => {
253
- if (!c) return;
254
- const e = p.reference.current;
255
- let t = null;
256
- if (e instanceof Element ? t = e : C.current instanceof Element && (t = C.current), !t) return;
321
+ return oe(() => {
322
+ if (!a) return;
323
+ const t = w.reference.current;
324
+ let e = null;
325
+ if (t instanceof Element ? e = t : I.current instanceof Element && (e = I.current), !e) return;
257
326
  const r = new IntersectionObserver(
258
327
  ([s]) => {
259
- s.isIntersecting || o(!1);
328
+ s.isIntersecting || n(!1);
260
329
  },
261
330
  { root: null, threshold: 0 }
262
331
  );
263
- return r.observe(t), () => r.disconnect();
264
- }, [c, p.reference, o]), /* @__PURE__ */ n(Fe, { children: /* @__PURE__ */ N(Te, { id: B, children: [
265
- /* @__PURE__ */ n(
332
+ return r.observe(e), () => r.disconnect();
333
+ }, [a, w.reference, n]), /* @__PURE__ */ o(ze, { children: /* @__PURE__ */ S(Qe, { id: Z, children: [
334
+ /* @__PURE__ */ o(
266
335
  "span",
267
336
  {
268
- ref: p.setReference,
269
- className: v(
270
- je,
271
- i && "!cursor-not-allowed opacity-75",
272
- H,
273
- V.dropdown
337
+ ref: w.setReference,
338
+ className: y(
339
+ lt,
340
+ c && "!cursor-not-allowed opacity-75",
341
+ ce,
342
+ _.dropdown
274
343
  ),
275
344
  "aria-haspopup": "menu",
276
- "aria-expanded": c,
277
- "aria-controls": $,
278
- ...ge,
345
+ "aria-expanded": a,
346
+ "aria-controls": J,
347
+ ...Fe,
279
348
  children: l
280
349
  }
281
350
  ),
282
- c && /* @__PURE__ */ n(Oe, { children: /* @__PURE__ */ n(
283
- Re,
351
+ a && /* @__PURE__ */ o(qe, { children: /* @__PURE__ */ o(
352
+ Xe,
284
353
  {
285
- context: g,
354
+ context: x,
286
355
  modal: !1,
287
- initialFocus: _ !== void 0 ? _ : oe ? 0 : -1,
356
+ initialFocus: z !== void 0 ? z : we ? 0 : -1,
288
357
  returnFocus: !0,
289
- children: /* @__PURE__ */ N(
358
+ children: /* @__PURE__ */ S(
290
359
  "div",
291
360
  {
292
- id: $,
293
- ref: p.setFloating,
294
- style: R ? { ...R, ...Y } : Y,
295
- className: v(
296
- Ue,
297
- !P && "w-max",
298
- "overflow-auto",
299
- ee,
300
- J
361
+ id: J,
362
+ ref: w.setFloating,
363
+ style: U ? { ...U, ...V } : V,
364
+ className: y(
365
+ it,
366
+ !F && "w-max",
367
+ Se ? "flex flex-col overflow-hidden" : "overflow-auto",
368
+ fe,
369
+ ae
301
370
  ),
302
- ...ue({ onKeyDown: me }),
371
+ ...De({ onKeyDown: Pe }),
303
372
  children: [
304
- z && /* @__PURE__ */ n("div", { className: "flex items-center justify-between px-2 pt-2", children: /* @__PURE__ */ n(
305
- Ve,
373
+ le && /* @__PURE__ */ o("div", { className: "flex items-center justify-between px-2 pt-2", children: /* @__PURE__ */ o(
374
+ ct,
306
375
  {
307
376
  ariaLabel: "Close dropdown",
308
- onClose: (e) => {
309
- G?.(e), o(!1);
377
+ onClose: (t) => {
378
+ ie?.(t), n(!1);
310
379
  }
311
380
  }
312
381
  ) }),
313
- he
382
+ Ae
314
383
  ]
315
384
  }
316
385
  )
@@ -319,5 +388,5 @@ const Je = '[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]
319
388
  ] }) });
320
389
  };
321
390
  export {
322
- gt as Dropdown
391
+ Yt as Dropdown
323
392
  };