@cube-dev/ui-kit 0.163.0 → 0.164.0

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 (636) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +377 -0
  3. package/dist/README.md +1 -1
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +1 -1
  16. package/dist/components/GridProvider.js +1 -1
  17. package/dist/components/HiddenInput.js +1 -1
  18. package/dist/components/Root.d.ts +3 -2
  19. package/dist/components/Root.js +1 -1
  20. package/dist/components/Root.js.map +1 -1
  21. package/dist/components/actions/Action/Action.js +1 -1
  22. package/dist/components/actions/Banner/Banner.js +2 -5
  23. package/dist/components/actions/Banner/Banner.js.map +1 -1
  24. package/dist/components/actions/Button/Button.d.ts +3 -2
  25. package/dist/components/actions/Button/Button.js +8 -5
  26. package/dist/components/actions/Button/Button.js.map +1 -1
  27. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  28. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  29. package/dist/components/actions/ButtonSplit/context.js +1 -1
  30. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  31. package/dist/components/actions/CommandMenu/styled.js +1 -1
  32. package/dist/components/actions/ItemAction/ItemAction.d.ts +2 -2
  33. package/dist/components/actions/ItemAction/ItemAction.js +15 -6
  34. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  35. package/dist/components/actions/ItemActionContext.d.ts +14 -0
  36. package/dist/components/actions/ItemActionContext.js +2 -2
  37. package/dist/components/actions/ItemActionContext.js.map +1 -1
  38. package/dist/components/actions/ItemButton/ItemButton.js +56 -46
  39. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  40. package/dist/components/actions/Link/Link.js +1 -1
  41. package/dist/components/actions/Menu/Menu.js +1 -1
  42. package/dist/components/actions/Menu/MenuItem.js +1 -1
  43. package/dist/components/actions/Menu/MenuSection.js +1 -1
  44. package/dist/components/actions/Menu/MenuTrigger.d.ts +13 -0
  45. package/dist/components/actions/Menu/MenuTrigger.js +27 -15
  46. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  47. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  48. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  49. package/dist/components/actions/Menu/context.js +1 -1
  50. package/dist/components/actions/Menu/styled.js +1 -1
  51. package/dist/components/actions/index.js +1 -1
  52. package/dist/components/actions/use-action.js +1 -1
  53. package/dist/components/actions/use-anchored-menu.js +1 -1
  54. package/dist/components/actions/use-context-menu.js +1 -1
  55. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  56. package/dist/components/content/Alert/Alert.js +1 -1
  57. package/dist/components/content/Alert/use-alert.js +1 -1
  58. package/dist/components/content/Avatar/Avatar.js +1 -1
  59. package/dist/components/content/Badge/Badge.js +1 -1
  60. package/dist/components/content/Card/Card.js +1 -1
  61. package/dist/components/content/Content.js +1 -1
  62. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  63. package/dist/components/content/CopySnippet/CopySnippet.d.ts +10 -0
  64. package/dist/components/content/CopySnippet/CopySnippet.js +7 -4
  65. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  66. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  67. package/dist/components/content/Divider.js +1 -1
  68. package/dist/components/content/Footer.js +1 -1
  69. package/dist/components/content/Header.js +1 -1
  70. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  71. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  72. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  73. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  74. package/dist/components/content/Item/Item.d.ts +2 -2
  75. package/dist/components/content/Item/Item.js +13 -58
  76. package/dist/components/content/Item/Item.js.map +1 -1
  77. package/dist/components/content/ItemBadge/ItemBadge.d.ts +1 -1
  78. package/dist/components/content/ItemBadge/ItemBadge.js +7 -4
  79. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  80. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  81. package/dist/components/content/Layout/GridLayout.js +1 -1
  82. package/dist/components/content/Layout/Layout.js +1 -1
  83. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  84. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  85. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  86. package/dist/components/content/Layout/LayoutContent.js +1 -1
  87. package/dist/components/content/Layout/LayoutContext.js +1 -1
  88. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  89. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  90. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  91. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  92. package/dist/components/content/Layout/LayoutPane.js +1 -1
  93. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  94. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  95. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  96. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  97. package/dist/components/content/Layout/index.js +1 -1
  98. package/dist/components/content/Layout/utils.js +1 -1
  99. package/dist/components/content/Paragraph.js +1 -1
  100. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  101. package/dist/components/content/PrismCode/PrismCode.d.ts +6 -0
  102. package/dist/components/content/PrismCode/PrismCode.js +12 -3
  103. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  104. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  105. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  106. package/dist/components/content/Result/Result.js +1 -1
  107. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  108. package/dist/components/content/Tag/Tag.js +1 -1
  109. package/dist/components/content/Text.js +1 -1
  110. package/dist/components/content/TextItem/TextItem.js +1 -1
  111. package/dist/components/content/Title.js +1 -1
  112. package/dist/components/content/Tree/Tree.js +1 -1
  113. package/dist/components/content/Tree/TreeNode.js +1 -1
  114. package/dist/components/content/Tree/styled.js +1 -1
  115. package/dist/components/content/Tree/tree-index.js +1 -1
  116. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  117. package/dist/components/content/Tree/use-load-data.js +1 -1
  118. package/dist/components/content/highlightText.js +1 -1
  119. package/dist/components/content/use-auto-tooltip.js +1 -1
  120. package/dist/components/data/DataTable/DataTable.js +1 -1
  121. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  126. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  127. package/dist/components/data/TableBase/RowCollection.js +1 -1
  128. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  129. package/dist/components/data/TableBase/TableRow.js +1 -1
  130. package/dist/components/data/TableBase/TableView.js +1 -1
  131. package/dist/components/data/TableBase/column-menu.js +1 -1
  132. package/dist/components/data/TableBase/column-tint.js +12 -2
  133. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  134. package/dist/components/data/TableBase/row-menu.js +1 -1
  135. package/dist/components/data/TableBase/styled.js +1 -1
  136. package/dist/components/data/TableBase/types.js +1 -1
  137. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  138. package/dist/components/data/TableBase/use-column-order.js +1 -1
  139. package/dist/components/data/TableBase/use-container-width.js +1 -1
  140. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  141. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  142. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  143. package/dist/components/data/TableBase/use-table-search.js +1 -1
  144. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  145. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  146. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  147. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  148. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  149. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  150. package/dist/components/fields/Checkbox/context.js +1 -1
  151. package/dist/components/fields/ColorInput/ColorInput.js +12 -7
  152. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  153. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -2
  154. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  155. package/dist/components/fields/{color → ColorSwatch}/ColorSwatch.d.ts +8 -2
  156. package/dist/components/fields/{color → ColorSwatch}/ColorSwatch.js +14 -6
  157. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -0
  158. package/dist/components/fields/ColorSwatch/index.d.ts +2 -0
  159. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  160. package/dist/components/fields/ComboBox/ComboBox.js +2 -6
  161. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  162. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  163. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  164. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  165. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  166. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  167. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  168. package/dist/components/fields/DatePicker/DatePickerButton.js +32 -2
  169. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  172. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  173. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  174. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/PeriodPicker.js +3 -2
  177. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  178. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  180. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  182. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  183. package/dist/components/fields/DatePicker/period.js +1 -1
  184. package/dist/components/fields/DatePicker/props.js +1 -1
  185. package/dist/components/fields/DatePicker/utils.js +1 -1
  186. package/dist/components/fields/FileInput/FileInput.js +1 -1
  187. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  188. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  189. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  190. package/dist/components/fields/Input/Input.js +1 -1
  191. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  192. package/dist/components/fields/ListBox/ListBox.js +1 -1
  193. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  194. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  195. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  196. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  197. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  198. package/dist/components/fields/PasswordInput/PasswordInput.js +9 -6
  199. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  200. package/dist/components/fields/Picker/Picker.js +1 -1
  201. package/dist/components/fields/Picker/Picker.js.map +1 -1
  202. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  203. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -1
  204. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  205. package/dist/components/fields/RadioGroup/context.js +1 -1
  206. package/dist/components/fields/SearchComboBox/SearchComboBox.js +2 -6
  207. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  208. package/dist/components/fields/SearchInput/SearchInput.js +18 -16
  209. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  210. package/dist/components/fields/Select/Select.js +3 -6
  211. package/dist/components/fields/Select/Select.js.map +1 -1
  212. package/dist/components/fields/Slider/Gradation.js +1 -1
  213. package/dist/components/fields/Slider/HueSlider.js +15 -2
  214. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  215. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  216. package/dist/components/fields/Slider/Slider.js +1 -1
  217. package/dist/components/fields/Slider/SliderBase.js +1 -1
  218. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  219. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  220. package/dist/components/fields/Slider/elements.js +1 -1
  221. package/dist/components/fields/Slider/index.js +1 -1
  222. package/dist/components/fields/Switch/Switch.js +1 -1
  223. package/dist/components/fields/TextArea/TextArea.js +1 -1
  224. package/dist/components/fields/TextInput/TextInput.js +1 -1
  225. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  226. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  227. package/dist/components/fields/color/ColorPanel.js +1 -1
  228. package/dist/components/fields/color/channels.js +1 -1
  229. package/dist/components/fields/color/color.js +4 -4
  230. package/dist/components/fields/color/color.js.map +1 -1
  231. package/dist/components/fields/color/context.js +1 -1
  232. package/dist/components/fields/color/index.d.ts +0 -1
  233. package/dist/components/fields/index.d.ts +2 -1
  234. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  235. package/dist/components/form/Form/Field.js +1 -1
  236. package/dist/components/form/Form/Form.js +1 -1
  237. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  238. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  239. package/dist/components/form/Form/SubmitError.js +1 -1
  240. package/dist/components/form/Form/index.js +1 -1
  241. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  242. package/dist/components/form/Form/use-field/use-field.js +1 -1
  243. package/dist/components/form/Form/use-form.js +1 -1
  244. package/dist/components/form/Form/validation.js +1 -1
  245. package/dist/components/form/Label.js +1 -1
  246. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  247. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  248. package/dist/components/form/validation/use-validation-props.js +1 -1
  249. package/dist/components/form/wrapper.js +1 -1
  250. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  251. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  252. package/dist/components/layout/Board/Board.d.ts +35 -5
  253. package/dist/components/layout/Board/Board.js +11 -5
  254. package/dist/components/layout/Board/Board.js.map +1 -1
  255. package/dist/components/layout/Board/BoardProvider.js +1 -1
  256. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  257. package/dist/components/layout/Board/Widget.d.ts +16 -1
  258. package/dist/components/layout/Board/Widget.js +3 -2
  259. package/dist/components/layout/Board/Widget.js.map +1 -1
  260. package/dist/components/layout/Board/WidgetHost.js +92 -17
  261. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  262. package/dist/components/layout/Board/board-context.js +5 -5
  263. package/dist/components/layout/Board/board-context.js.map +1 -1
  264. package/dist/components/layout/Board/board-store.d.ts +1 -0
  265. package/dist/components/layout/Board/board-store.js +2 -2
  266. package/dist/components/layout/Board/board-store.js.map +1 -1
  267. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  268. package/dist/components/layout/Board/grid-core/collision-modes.js +183 -0
  269. package/dist/components/layout/Board/grid-core/collision-modes.js.map +1 -0
  270. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  271. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  272. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  273. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  274. package/dist/components/layout/Board/grid-core/layout.js +12 -2
  275. package/dist/components/layout/Board/grid-core/layout.js.map +1 -1
  276. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  277. package/dist/components/layout/Board/grid-core/types.d.ts +17 -1
  278. package/dist/components/layout/Board/index.d.ts +2 -2
  279. package/dist/components/layout/Board/index.js +1 -1
  280. package/dist/components/layout/Board/index.js.map +1 -1
  281. package/dist/components/layout/Board/responsive-utils.js +1 -1
  282. package/dist/components/layout/Board/use-board-layout.js +1 -1
  283. package/dist/components/layout/Board/use-board-registry.js +57 -9
  284. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  285. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  286. package/dist/components/layout/Board/use-board-selection.js +1 -1
  287. package/dist/components/layout/Flex.js +1 -1
  288. package/dist/components/layout/Flow.js +1 -1
  289. package/dist/components/layout/Grid.js +1 -1
  290. package/dist/components/layout/Panel.js +1 -1
  291. package/dist/components/layout/Prefix.js +1 -1
  292. package/dist/components/layout/ResizablePanel.js +1 -1
  293. package/dist/components/layout/Space.js +1 -1
  294. package/dist/components/layout/Suffix.js +1 -1
  295. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  296. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  297. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  298. package/dist/components/navigation/Tabs/TabButton.js +2 -29
  299. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  300. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  301. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  302. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  303. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  304. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  305. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  306. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  307. package/dist/components/navigation/Tabs/styled.js +1 -1
  308. package/dist/components/navigation/Tabs/types.js +1 -1
  309. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  310. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  311. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  312. package/dist/components/other/Calendar/Calendar.js +1 -1
  313. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  314. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  315. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  316. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  317. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  318. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  319. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  320. package/dist/components/other/Calendar/styled.js +1 -1
  321. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  322. package/dist/components/other/NoDataIcon/NoDataIcon.d.ts +37 -0
  323. package/dist/components/other/NoDataIcon/NoDataIcon.js +56 -0
  324. package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -0
  325. package/dist/components/other/NoDataIcon/index.d.ts +2 -0
  326. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  327. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  328. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  329. package/dist/components/overlays/Dialog/Dialog.js +4 -3
  330. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  331. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  332. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  333. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +13 -0
  334. package/dist/components/overlays/Dialog/DialogTrigger.js +24 -5
  335. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  336. package/dist/components/overlays/Dialog/context.js +1 -1
  337. package/dist/components/overlays/Dialog/context.js.map +1 -1
  338. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  339. package/dist/components/overlays/Modal/Modal.js +1 -1
  340. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  341. package/dist/components/overlays/Modal/Overlay.js +1 -1
  342. package/dist/components/overlays/Modal/Popover.js +1 -1
  343. package/dist/components/overlays/Modal/Tray.js +1 -1
  344. package/dist/components/overlays/Modal/Underlay.js +1 -1
  345. package/dist/components/overlays/Notifications/Notification.js +1 -1
  346. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  347. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  348. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  349. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  350. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  351. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  352. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  353. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  354. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  355. package/dist/components/overlays/Notifications/index.js +1 -1
  356. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  357. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  358. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  359. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  360. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  361. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  362. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  363. package/dist/components/overlays/Toast/index.js +1 -1
  364. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  365. package/dist/components/overlays/Toast/useToast.js +1 -1
  366. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  367. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  368. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  369. package/dist/components/overlays/Tooltip/context.js +1 -1
  370. package/dist/components/portal/Portal.js +1 -1
  371. package/dist/components/portal/PortalProvider.js +1 -1
  372. package/dist/components/portal/usePortal.js +1 -1
  373. package/dist/components/shared/DraggableCollection.js +1 -1
  374. package/dist/components/shared/InvalidIcon.js +1 -1
  375. package/dist/components/shared/ValidIcon.js +1 -1
  376. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  377. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  378. package/dist/components/status/Spin/Cube.js +1 -1
  379. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  380. package/dist/components/status/Spin/Spin.js +1 -1
  381. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  382. package/dist/data/item-themes.d.ts +1 -1
  383. package/dist/data/item-themes.js +217 -46
  384. package/dist/data/item-themes.js.map +1 -1
  385. package/dist/data/themes.js +1 -1
  386. package/dist/eslint-plugin/defaults.generated.js +29 -13
  387. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  388. package/dist/eslint-plugin/index.js +1 -1
  389. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  390. package/dist/i18n/I18nProvider.js +1 -1
  391. package/dist/i18n/createFormatter.js +1 -1
  392. package/dist/i18n/index.js +1 -1
  393. package/dist/i18n/instance.js +1 -1
  394. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  395. package/dist/i18n/locales/en-US/uikit.js +1 -1
  396. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  397. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  398. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  399. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  400. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  401. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  402. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  403. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  404. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  405. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  406. package/dist/i18n/locales.js +1 -1
  407. package/dist/i18n/useFormatter.js +1 -1
  408. package/dist/i18n/useI18n.js +1 -1
  409. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  410. package/dist/icons/AdjustmentsIcon.js +1 -1
  411. package/dist/icons/AiIcon.js +1 -1
  412. package/dist/icons/AreaChartIcon.js +1 -1
  413. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  414. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  415. package/dist/icons/BackwardIcon.js +1 -1
  416. package/dist/icons/BarChartIcon.js +1 -1
  417. package/dist/icons/BellFilledIcon.js +1 -1
  418. package/dist/icons/BellIcon.js +1 -1
  419. package/dist/icons/BooleanIcon.js +1 -1
  420. package/dist/icons/CalendarEditIcon.js +1 -1
  421. package/dist/icons/CalendarIcon.js +1 -1
  422. package/dist/icons/CaretDownIcon.js +1 -1
  423. package/dist/icons/CaretUpIcon.js +1 -1
  424. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  425. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  426. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  427. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  428. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  429. package/dist/icons/ChartBarLineIcon.js +1 -1
  430. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  431. package/dist/icons/ChartBarStackedIcon.js +1 -1
  432. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  433. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  434. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  435. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  436. package/dist/icons/ChartBubbleIcon.js +1 -1
  437. package/dist/icons/ChartDonut2Icon.js +1 -1
  438. package/dist/icons/ChartFunnelIcon.js +1 -1
  439. package/dist/icons/ChartHeatmapIcon.js +1 -1
  440. package/dist/icons/ChartKPIIcon.js +1 -1
  441. package/dist/icons/ChartPie2Icon.js +1 -1
  442. package/dist/icons/ChartScatterIcon.js +1 -1
  443. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  444. package/dist/icons/CheckCircleIcon.js +1 -1
  445. package/dist/icons/CheckIcon.js +1 -1
  446. package/dist/icons/CircleFilledIcon.js +1 -1
  447. package/dist/icons/ClearIcon.js +1 -1
  448. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  449. package/dist/icons/CloseCircleIcon.js +1 -1
  450. package/dist/icons/CloseIcon.js +1 -1
  451. package/dist/icons/CodeIcon.js +1 -1
  452. package/dist/icons/ColumnTotalIcon.js +1 -1
  453. package/dist/icons/CopyIcon.js +1 -1
  454. package/dist/icons/CountIcon.js +1 -1
  455. package/dist/icons/CubeIcon.js +1 -1
  456. package/dist/icons/CubePauseIcon.js +1 -1
  457. package/dist/icons/CubePlayIcon.js +1 -1
  458. package/dist/icons/CurrencyDollarIcon.js +1 -1
  459. package/dist/icons/DangerIcon.js +1 -1
  460. package/dist/icons/DashboardIcon.js +1 -1
  461. package/dist/icons/DatabaseIcon.js +1 -1
  462. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  463. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  464. package/dist/icons/DirectionIcon.js +1 -1
  465. package/dist/icons/DonutIcon.js +1 -1
  466. package/dist/icons/DownIcon.js +1 -1
  467. package/dist/icons/EditIcon.js +1 -1
  468. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  469. package/dist/icons/ExclamationCircleIcon.js +1 -1
  470. package/dist/icons/ExclamationIcon.js +1 -1
  471. package/dist/icons/EyeIcon.js +1 -1
  472. package/dist/icons/EyeInvisibleIcon.js +1 -1
  473. package/dist/icons/FilterIcon.js +1 -1
  474. package/dist/icons/FolderFilledIcon.js +1 -1
  475. package/dist/icons/FolderIcon.js +1 -1
  476. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  477. package/dist/icons/FolderOpenIcon.js +1 -1
  478. package/dist/icons/ForwardIcon.js +1 -1
  479. package/dist/icons/GripVerticalIcon.js +1 -1
  480. package/dist/icons/HierarchyIcon.js +1 -1
  481. package/dist/icons/HierarchyOpenIcon.js +1 -1
  482. package/dist/icons/Icon.js +1 -1
  483. package/dist/icons/InfoCircleIcon.js +1 -1
  484. package/dist/icons/InfoIcon.js +1 -1
  485. package/dist/icons/KeyIcon.js +1 -1
  486. package/dist/icons/LeftIcon.js +1 -1
  487. package/dist/icons/LineChartIcon.js +1 -1
  488. package/dist/icons/LoadingIcon.js +1 -1
  489. package/dist/icons/LockFilledIcon.js +1 -1
  490. package/dist/icons/LockIcon.js +1 -1
  491. package/dist/icons/MoreIcon.js +1 -1
  492. package/dist/icons/NotAllowedIcon.js +1 -1
  493. package/dist/icons/Number123Icon.js +1 -1
  494. package/dist/icons/NumberIcon.js +1 -1
  495. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  496. package/dist/icons/PauseCircleIcon.js +1 -1
  497. package/dist/icons/PauseIcon.js +1 -1
  498. package/dist/icons/PercentageIcon.js +1 -1
  499. package/dist/icons/PieChartIcon.js +1 -1
  500. package/dist/icons/PipetteIcon.js +1 -1
  501. package/dist/icons/PlayCircleIcon.js +1 -1
  502. package/dist/icons/PlayIcon.js +1 -1
  503. package/dist/icons/PlusIcon.js +1 -1
  504. package/dist/icons/ProgressBarIcon.js +1 -1
  505. package/dist/icons/ReloadIcon.js +1 -1
  506. package/dist/icons/ReportIcon.js +1 -1
  507. package/dist/icons/ReturnIcon.js +1 -1
  508. package/dist/icons/RightIcon.js +1 -1
  509. package/dist/icons/RowTotalsIcon.js +1 -1
  510. package/dist/icons/SchemeIcon.js +1 -1
  511. package/dist/icons/SearchIcon.js +1 -1
  512. package/dist/icons/SemanticQueryIcon.js +1 -1
  513. package/dist/icons/SettingsIcon.js +1 -1
  514. package/dist/icons/ShieldFilledIcon.js +1 -1
  515. package/dist/icons/ShieldIcon.js +1 -1
  516. package/dist/icons/SlashIcon.js +1 -1
  517. package/dist/icons/SparklesIcon.js +1 -1
  518. package/dist/icons/SqlIcon.js +1 -1
  519. package/dist/icons/StatsIcon.js +1 -1
  520. package/dist/icons/StopIcon.js +1 -1
  521. package/dist/icons/StringIcon.js +1 -1
  522. package/dist/icons/SubtotalsIcon.js +1 -1
  523. package/dist/icons/SwitchIcon.js +1 -1
  524. package/dist/icons/TableIcon.js +1 -1
  525. package/dist/icons/ThumbsDownIcon.js +1 -1
  526. package/dist/icons/ThumbsUpIcon.js +1 -1
  527. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  528. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  529. package/dist/icons/ThunderboltIcon.js +1 -1
  530. package/dist/icons/TimeIcon.js +1 -1
  531. package/dist/icons/TrashIcon.js +1 -1
  532. package/dist/icons/UnlockIcon.js +1 -1
  533. package/dist/icons/UpIcon.js +1 -1
  534. package/dist/icons/UserGroupIcon.js +1 -1
  535. package/dist/icons/UserIcon.js +1 -1
  536. package/dist/icons/UserLockIcon.js +1 -1
  537. package/dist/icons/ViewIcon.js +1 -1
  538. package/dist/icons/WarningFilledIcon.js +1 -1
  539. package/dist/icons/WarningIcon.js +1 -1
  540. package/dist/icons/wrap-icon.js +1 -1
  541. package/dist/index.d.ts +8 -5
  542. package/dist/index.js +6 -4
  543. package/dist/index.js.map +1 -1
  544. package/dist/probe/canonicalize.js +1 -1
  545. package/dist/probe/css.js +1 -1
  546. package/dist/probe/index.js +1 -1
  547. package/dist/provider.js +1 -1
  548. package/dist/providers/TrackingProvider.js +1 -1
  549. package/dist/providers/navigationAdapter.default.js +1 -1
  550. package/dist/tokens/base.js +1 -1
  551. package/dist/tokens/color-seed.d.ts +44 -0
  552. package/dist/tokens/color-seed.js +48 -0
  553. package/dist/tokens/color-seed.js.map +1 -0
  554. package/dist/tokens/color-theme.d.ts +9 -1
  555. package/dist/tokens/color-theme.js +20 -7
  556. package/dist/tokens/color-theme.js.map +1 -1
  557. package/dist/tokens/colors.js +20 -3
  558. package/dist/tokens/colors.js.map +1 -1
  559. package/dist/tokens/index.d.ts +2 -1
  560. package/dist/tokens/index.js +3 -2
  561. package/dist/tokens/index.js.map +1 -1
  562. package/dist/tokens/layout.js +1 -1
  563. package/dist/tokens/lazy-styles.js +1 -1
  564. package/dist/tokens/palette-config.d.ts +304 -77
  565. package/dist/tokens/palette-config.js +188 -49
  566. package/dist/tokens/palette-config.js.map +1 -1
  567. package/dist/tokens/palette.js +617 -163
  568. package/dist/tokens/palette.js.map +1 -1
  569. package/dist/tokens/shadows.js +1 -1
  570. package/dist/tokens/sizes.js +1 -1
  571. package/dist/tokens/spacing.js +1 -1
  572. package/dist/tokens/typography.js +1 -1
  573. package/dist/utils/ResizeSensor.js +1 -1
  574. package/dist/utils/is-dev-env.js +1 -1
  575. package/dist/utils/modules.js +1 -1
  576. package/dist/utils/promise.js +1 -1
  577. package/dist/utils/raf.js +1 -1
  578. package/dist/utils/random.js +1 -1
  579. package/dist/utils/range.js +1 -1
  580. package/dist/utils/react/RenderCache.js +1 -1
  581. package/dist/utils/react/Slots.js +1 -1
  582. package/dist/utils/react/chain.js +1 -1
  583. package/dist/utils/react/disabledProps.js +1 -1
  584. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  585. package/dist/utils/react/index.js +1 -1
  586. package/dist/utils/react/interactions.js +1 -1
  587. package/dist/utils/react/isTextOnly.js +1 -1
  588. package/dist/utils/react/mapProps.js +1 -1
  589. package/dist/utils/react/mergeProps.js +1 -1
  590. package/dist/utils/react/nullableValue.js +1 -1
  591. package/dist/utils/react/resolveIcon.js +1 -1
  592. package/dist/utils/react/sharedStore.js +1 -1
  593. package/dist/utils/react/useBufferedValue.js +1 -1
  594. package/dist/utils/react/useCombinedRefs.js +1 -1
  595. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  596. package/dist/utils/react/useEventBus.js +1 -1
  597. package/dist/utils/react/useId.js +1 -1
  598. package/dist/utils/react/useIsDarwin.js +1 -1
  599. package/dist/utils/react/useKeySymbols.js +1 -1
  600. package/dist/utils/react/useLayoutEffect.js +1 -1
  601. package/dist/utils/react/useLocalStorage.js +1 -1
  602. package/dist/utils/react/useMergeStyles.js +1 -1
  603. package/dist/utils/react/usePopoverSync.js +1 -1
  604. package/dist/utils/react/useQaProps.js +1 -1
  605. package/dist/utils/react/useViewportSize.js +1 -1
  606. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  607. package/dist/utils/selection.js +1 -1
  608. package/dist/utils/styles.js +1 -1
  609. package/dist/utils/tree.js +1 -1
  610. package/dist/utils/warnings.js +1 -1
  611. package/dist/version.js +3 -3
  612. package/docs/Theming.md +471 -83
  613. package/docs/Usage.md +37 -2
  614. package/docs/components/Root.md +1 -1
  615. package/docs/components/actions/Button.md +9 -3
  616. package/docs/components/actions/ItemAction.md +3 -3
  617. package/docs/components/actions/MenuTrigger.md +54 -2
  618. package/docs/components/actions/SubMenuTrigger.md +2 -2
  619. package/docs/components/content/CopySnippet.md +5 -5
  620. package/docs/components/content/InlineInput.md +1 -1
  621. package/docs/components/content/Item.md +10 -10
  622. package/docs/components/content/ItemBadge.md +2 -2
  623. package/docs/components/content/PrismCode.md +1 -0
  624. package/docs/components/fields/ColorSwatch.md +155 -0
  625. package/docs/components/layout/Board.md +20 -2
  626. package/docs/components/other/NoDataIcon.md +48 -0
  627. package/docs/components/overlays/DialogTrigger.md +3 -2
  628. package/docs/components/status/LoadingAnimation.md +12 -0
  629. package/docs/glaze/api.md +155 -47
  630. package/docs/glaze/methodology.md +15 -13
  631. package/docs/glaze/migration.md +36 -0
  632. package/docs/glaze/okhst.md +4 -0
  633. package/docs/tasty/ai-agents.md +3 -0
  634. package/docs/tasty/configuration.md +1 -0
  635. package/package.json +3 -3
  636. package/dist/components/fields/color/ColorSwatch.js.map +0 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
@@ -22,7 +22,7 @@ import { PressResponder } from "@react-aria/interactions";
22
22
  * positioning of the Dialog.
23
23
  */
24
24
  function DialogTrigger(props) {
25
- let { children, type = "modal", mobileType = type, hideArrow, targetRef, onDismiss, isDismissable = true, isKeyboardDismissDisabled, styles, mobileViewport = 700, hideOnClose, shouldCloseOnInteractOutside, ...positionProps } = props;
25
+ let { children, type = "modal", mobileType = type, hideArrow, targetRef, onDismiss, isDismissable = true, isKeyboardDismissDisabled, styles, mobileViewport = 700, hideOnClose, shouldCloseOnInteractOutside, shouldRestoreFocus = true, ...positionProps } = props;
26
26
  if (!Array.isArray(children) || children.length > 2) throw new Error("DialogTrigger must have exactly 2 children");
27
27
  let [trigger, content] = children;
28
28
  if (useMediaQuery(`(max-width: ${mobileViewport}px)`)) {
@@ -71,6 +71,7 @@ function DialogTrigger(props) {
71
71
  isKeyboardDismissDisabled,
72
72
  hideArrow,
73
73
  shouldCloseOnInteractOutside,
74
+ shouldRestoreFocus,
74
75
  syncTriggerRef,
75
76
  syncOverlayRef,
76
77
  triggerType: type,
@@ -114,11 +115,13 @@ function DialogTrigger(props) {
114
115
  overlay: renderOverlay(),
115
116
  hideOnClose,
116
117
  syncTriggerRef,
118
+ overlayRef: syncOverlayRef,
119
+ shouldRestoreFocus,
117
120
  onClose
118
121
  });
119
122
  }
120
123
  function PopoverTrigger(allProps) {
121
- let { state, styles, targetRef, trigger, content, hideArrow, onClose, isKeyboardDismissDisabled, hideOnClose, shouldCloseOnInteractOutside, keepOpenOnScroll, syncTriggerRef, syncOverlayRef, triggerType, ...props } = allProps;
124
+ let { state, styles, targetRef, trigger, content, hideArrow, onClose, isKeyboardDismissDisabled, hideOnClose, shouldCloseOnInteractOutside, shouldRestoreFocus, keepOpenOnScroll, syncTriggerRef, syncOverlayRef, triggerType, ...props } = allProps;
122
125
  let triggerRef = useRef(null);
123
126
  let overlayRef = useRef(null);
124
127
  useLayoutEffect$1(() => {
@@ -180,29 +183,45 @@ function PopoverTrigger(allProps) {
180
183
  onClose,
181
184
  children: typeof content === "function" ? content(state.close) : content
182
185
  }),
186
+ overlayRef,
187
+ shouldRestoreFocus,
183
188
  onClose
184
189
  });
185
190
  }
186
191
  function DialogTriggerBase(props) {
187
192
  const ref = useCombinedRefs(props.ref);
188
193
  const wasOpenRef = useRef(false);
194
+ const overlayRef = props.overlayRef;
189
195
  useLayoutEffect$1(() => {
190
196
  if (props.syncTriggerRef) props.syncTriggerRef.current = ref.current ?? null;
191
197
  });
192
- let { type, state, onClose, isDismissable, dialogProps = {}, triggerProps = {}, overlay, trigger } = props;
198
+ let { type, state, onClose, isDismissable, dialogProps = {}, triggerProps = {}, overlay, trigger, shouldRestoreFocus = true } = props;
193
199
  let context = {
194
200
  type,
195
201
  onClose,
196
202
  isDismissable,
197
203
  isOpen: state.isOpen,
204
+ shouldRestoreFocus,
198
205
  ...dialogProps
199
206
  };
207
+ const hasFocusMovedOutsideDialog = useEvent(() => {
208
+ const activeElement = document.activeElement;
209
+ if (!activeElement || activeElement === document.body) return false;
210
+ if (!activeElement.isConnected) return false;
211
+ return !(overlayRef?.current?.contains(activeElement) || ref.current?.contains(activeElement));
212
+ });
200
213
  useEffect(() => {
201
214
  if (!state.isOpen && wasOpenRef.current) {
202
215
  wasOpenRef.current = false;
216
+ if (!shouldRestoreFocus) return;
217
+ if (hasFocusMovedOutsideDialog()) return;
203
218
  ref.current?.focus();
204
219
  } else if (state.isOpen) wasOpenRef.current = true;
205
- }, [state.isOpen]);
220
+ }, [
221
+ state.isOpen,
222
+ shouldRestoreFocus,
223
+ hasFocusMovedOutsideDialog
224
+ ]);
206
225
  const triggerExtraProps = type === "popover" ? { "data-popover-trigger": "" } : {};
207
226
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(PressResponder, {
208
227
  ref,
@@ -1 +1 @@
1
- {"version":3,"file":"DialogTrigger.js","names":["Modal","Tray","Popover"],"sources":["../../../../src/components/overlays/Dialog/DialogTrigger.tsx"],"sourcesContent":["import { PressResponder } from '@react-aria/interactions';\nimport { useMediaQuery } from '@react-spectrum/utils';\nimport { Styles } from '@tenphi/tasty';\nimport {\n Fragment,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n OverlayTriggerProps,\n Placement,\n PositionProps,\n useOverlayPosition,\n useOverlayTrigger,\n} from 'react-aria';\nimport { OverlayTriggerState, useOverlayTriggerState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { generateRandomId } from '../../../utils/random';\nimport { useCombinedRefs, useLayoutEffect } from '../../../utils/react/index';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { Modal, Popover, Tray, WithCloseBehavior } from '../Modal';\n\nimport { DialogContext } from './context';\n\nexport type CubeDialogClose = (close: () => void) => ReactElement;\n\nexport interface CubeDialogTriggerProps\n extends OverlayTriggerProps,\n PositionProps,\n WithCloseBehavior {\n /** The Dialog and its trigger element. See the DialogTrigger [Content section](#content) for more information on what to provide as children. */\n children: [\n ReactElement | ((state: OverlayTriggerState) => ReactElement),\n CubeDialogClose | ReactElement,\n ];\n /**\n * The type of Dialog that should be rendered. See the DialogTrigger [types section](#dialog-types) for an explanation on each.\n * @default 'modal'\n */\n type?:\n | 'modal'\n | 'popover'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel';\n /** The type of Dialog that should be rendered when on a mobile device. See DialogTrigger [types section](#dialog-types) for an explanation on each. */\n mobileType?:\n | 'modal'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel'\n | 'popover';\n placement?: Placement;\n /**\n * Whether a popover type Dialog's arrow should be hidden.\n */\n hideArrow?: boolean;\n /** The ref of the element the Dialog should visually attach itself to. Defaults to the trigger button if not defined. */\n targetRef?: RefObject<HTMLElement | null>;\n /** Whether a modal type Dialog should be dismissable. */\n isDismissable?: boolean;\n /** Whether pressing the escape key to close the dialog should be disabled. */\n isKeyboardDismissDisabled?: boolean;\n /** The screen breakpoint for the mobile type */\n mobileViewport?: number;\n /** The style map for the overlay **/\n styles?: Styles;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n onDismiss?: (action?: string) => void;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n shouldFlip?: boolean;\n shouldUpdatePosition?: boolean;\n /** Minimum padding in pixels between the popover and viewport edges */\n containerPadding?: number;\n}\n\n/**\n * DialogTrigger serves as a wrapper around a Dialog and its associated trigger, linking the Dialog's\n * open state with the trigger's press state. Additionally, it allows you to customize the type and\n * positioning of the Dialog.\n */\nexport function DialogTrigger(props: CubeDialogTriggerProps) {\n let {\n children,\n type = 'modal',\n mobileType = type,\n hideArrow,\n targetRef,\n onDismiss,\n isDismissable = true,\n isKeyboardDismissDisabled,\n styles,\n mobileViewport = 700,\n hideOnClose,\n shouldCloseOnInteractOutside,\n ...positionProps\n } = props;\n\n if (!Array.isArray(children) || children.length > 2) {\n throw new Error('DialogTrigger must have exactly 2 children');\n }\n // if a function is passed as the second child, it won't appear in toArray\n let [trigger, content] = children;\n\n // On small devices, show a modal or tray instead of a popover.\n let isMobile = useMediaQuery(`(max-width: ${mobileViewport}px)`);\n if (isMobile) {\n // handle cases where desktop popovers need a close button for the mobile modal view\n if (type !== 'modal' && mobileType === 'modal') {\n isDismissable = true;\n }\n\n type = mobileType;\n }\n\n let state = useOverlayTriggerState(props);\n\n if (typeof trigger === 'function') {\n trigger = trigger(state);\n }\n\n let wasOpen = useRef(false);\n let isExiting = useRef(false);\n let onExiting = () => (isExiting.current = true);\n let onExited = () => (isExiting.current = false);\n\n wasOpen.current = state.isOpen;\n\n // Shared identity + refs for `usePopoverSync`. Allocating here (rather than\n // inside the branch-specific sub-trees) keeps a single sync registration for\n // the lifetime of the trigger, even when `type` flips between popover and\n // modal at the mobile breakpoint. The refs are then threaded into the\n // appropriate branch so existing positioning / useOverlayTrigger hooks keep\n // their original ref targets and `usePopoverSync`'s `contains()` check has a\n // real DOM node to query.\n const dialogSyncId = useMemo(() => generateRandomId(), []);\n const syncTriggerRef = useRef<HTMLElement | null>(null);\n const syncOverlayRef = useRef<HTMLElement | null>(null);\n\n // Only popover-type Dialogs participate in the \"press inside dismisses\n // me\" / \"peer popover opening dismisses me\" behaviours: modals, trays,\n // fullscreen and panel Dialogs are persistent workspaces and must not be\n // yanked closed via the EventBus (which would bypass `isDismissable` and\n // call `state.close()` directly). Non-popover types DO still EMIT\n // `popover:open`, so opening a modal correctly dismisses peer popovers.\n const isPopoverFlavored = type === 'popover';\n usePopoverSync({\n menuId: dialogSyncId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: syncTriggerRef,\n containerRef: syncOverlayRef,\n dismissOnInnerButtonPress: isPopoverFlavored,\n closeOnPeerOpen: isPopoverFlavored,\n });\n\n useEffect(() => {\n return () => {\n if (\n (wasOpen.current || isExiting.current) &&\n type !== 'popover' &&\n type !== 'tray'\n ) {\n console.warn(\n 'CubeUIKit: A DialogTrigger unmounted while open. This is likely due to being placed within a trigger that unmounts or inside a conditional. Consider using a DialogContainer instead.',\n );\n }\n };\n }, []);\n\n function onClose(action) {\n if (isDismissable) {\n onDismiss && onDismiss(action);\n state.close();\n }\n }\n\n if (type === 'popover') {\n return (\n <PopoverTrigger\n {...positionProps}\n hideOnClose={hideOnClose}\n state={state}\n styles={styles}\n targetRef={targetRef}\n trigger={trigger}\n content={content}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n syncTriggerRef={syncTriggerRef}\n syncOverlayRef={syncOverlayRef}\n triggerType={type}\n onClose={onClose}\n />\n );\n }\n\n let renderOverlay = () => {\n switch (type) {\n case 'panel':\n case 'fullscreen':\n case 'fullscreenTakeover':\n case 'modal':\n return (\n <Modal\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isDismissable={isDismissable}\n type={type}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n onClose={onClose}\n onExiting={onExiting}\n onExited={onExited}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Modal>\n );\n case 'tray':\n return (\n <Tray\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Tray>\n );\n }\n };\n\n return (\n <DialogTriggerBase\n type={type}\n state={state}\n isDismissable={isDismissable}\n trigger={trigger}\n overlay={renderOverlay()}\n hideOnClose={hideOnClose}\n syncTriggerRef={syncTriggerRef}\n onClose={onClose}\n />\n );\n}\n\nfunction PopoverTrigger(allProps) {\n let {\n state,\n styles,\n targetRef,\n trigger,\n content,\n hideArrow,\n onClose,\n isKeyboardDismissDisabled,\n hideOnClose,\n shouldCloseOnInteractOutside,\n keepOpenOnScroll,\n syncTriggerRef,\n syncOverlayRef,\n triggerType,\n ...props\n } = allProps;\n\n let triggerRef = useRef<HTMLButtonElement>(null);\n let overlayRef = useRef<HTMLDivElement>(null);\n\n // Mirror the trigger/overlay DOM nodes into the parent-owned sync refs.\n //\n // We deliberately do NOT use `useCombinedRefs` here: that hook returns a\n // brand new internal ref and propagates to the passed refs via a regular\n // `useEffect` (post-commit). `useOverlayPosition` below reads\n // `triggerRef.current` in its own layout effect during the SAME commit, so\n // if `triggerRef` only receives the DOM node via a delayed effect, the\n // first measurement sees `null` and the popover positions at the document\n // origin until something forces a re-measure.\n //\n // Keeping `triggerRef`/`overlayRef` as the direct React refs preserves\n // synchronous assignment for `useOverlayPosition`. The sync refs are only\n // ever read inside `popover:open` handlers, which fire via setTimeout(0),\n // so a layout-effect mirror is more than fast enough.\n useLayoutEffect(() => {\n if (syncTriggerRef) {\n syncTriggerRef.current = targetRef?.current ?? triggerRef.current ?? null;\n }\n if (syncOverlayRef) {\n syncOverlayRef.current = overlayRef.current ?? null;\n }\n });\n\n let {\n overlayProps: popoverProps,\n placement,\n arrowProps,\n updatePosition,\n } = useOverlayPosition({\n targetRef: targetRef || triggerRef,\n overlayRef: overlayRef,\n placement: props.placement,\n containerPadding: props.containerPadding,\n offset: props.offset || 8,\n crossOffset: props.crossOffset,\n shouldFlip: props.shouldFlip,\n shouldUpdatePosition: props.shouldUpdatePosition,\n isOpen: state.isOpen,\n });\n\n let overlayTriggerState = state;\n\n if (keepOpenOnScroll) {\n overlayTriggerState = { ...state, close: updatePosition };\n }\n\n let { triggerProps, overlayProps } = useOverlayTrigger(\n { type: 'dialog' },\n overlayTriggerState,\n triggerRef,\n );\n\n let triggerPropsWithRef = {\n ...triggerProps,\n ref: targetRef ? undefined : triggerRef,\n };\n\n // Mirror the Select/ComboBox/MenuTrigger pattern: when an outside click lands\n // on ANOTHER popover trigger, return `false` so react-aria's `useOverlay`\n // does NOT `stopPropagation()` the click. The click then reaches that trigger,\n // its popover opens, and `usePopoverSync` closes this one via the EventBus.\n // Without this, react-aria swallows every outside click and a single click on\n // a sibling trigger can't open it while this popover is open.\n const resolveShouldCloseOnInteractOutside = useEvent(\n (el: Element): boolean => {\n const popoverTriggerEl = el.closest('[data-popover-trigger]');\n if (!popoverTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n // Plain interactive controls (Button, ItemButton) opt in via\n // `data-popover-dismiss`. Schedule the close after the click finishes so\n // the control's `onPress` runs first instead of losing the click to\n // useOverlay's stopPropagation.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(() => state.close(), 0);\n return false;\n }\n return shouldCloseOnInteractOutside\n ? shouldCloseOnInteractOutside(el)\n : true;\n }\n // Clicking our own trigger again should dismiss us.\n const ownTrigger = targetRef?.current ?? triggerRef.current;\n if (popoverTriggerEl === ownTrigger || ownTrigger?.contains(el))\n return true;\n // Another popover's trigger: let the click through so it can open.\n return false;\n },\n );\n\n let overlay = (\n <Popover\n ref={overlayRef}\n styles={styles}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n style={popoverProps.style}\n placement={placement}\n arrowProps={arrowProps}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={resolveShouldCloseOnInteractOutside}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Popover>\n );\n\n return (\n <DialogTriggerBase\n type=\"popover\"\n state={state}\n triggerProps={triggerPropsWithRef}\n dialogProps={overlayProps}\n trigger={trigger}\n overlay={overlay}\n onClose={onClose}\n />\n );\n}\n\nfunction DialogTriggerBase(props: any) {\n const ref = useCombinedRefs<HTMLElement>(props.ref);\n const wasOpenRef = useRef(false);\n\n // Mirror the press-responder DOM node into the parent's sync trigger ref.\n // Done via `useLayoutEffect` rather than threading through `useCombinedRefs`\n // for consistency with `PopoverTrigger` (see comment there) — keeps the\n // sync-ref population deterministic regardless of branch.\n useLayoutEffect(() => {\n if (props.syncTriggerRef) {\n props.syncTriggerRef.current = ref.current ?? null;\n }\n });\n\n let {\n type,\n state,\n onClose,\n isDismissable,\n dialogProps = {},\n triggerProps = {},\n overlay,\n trigger,\n } = props;\n\n let context = {\n type,\n onClose,\n isDismissable,\n isOpen: state.isOpen,\n ...dialogProps,\n };\n\n // Restore focus manually when the dialog closes\n useEffect(() => {\n if (!state.isOpen && wasOpenRef.current) {\n wasOpenRef.current = false;\n ref.current?.focus();\n } else if (state.isOpen) {\n wasOpenRef.current = true;\n }\n }, [state.isOpen]);\n\n // Mark popover-type DialogTrigger children with `data-popover-trigger` so\n // `Button` / `ItemButton`'s default dismiss-on-press behaviour treats them\n // as popover triggers (skips the dismiss). Modal/tray/fullscreen children\n // intentionally stay UNMARKED — when a modal-type DialogTrigger lives\n // inside a popover footer, pressing it should dismiss the parent popover\n // (matching the \"modal takes over\" native UX).\n const triggerExtraProps =\n type === 'popover' ? { 'data-popover-trigger': '' } : {};\n\n return (\n <Fragment>\n <PressResponder\n ref={ref}\n {...triggerProps}\n {...triggerExtraProps}\n isPressed={\n state.isOpen &&\n type !== 'modal' &&\n type !== 'fullscreen' &&\n type !== 'fullscreenTakeover'\n }\n onPress={state.toggle}\n >\n {trigger}\n </PressResponder>\n <DialogContext.Provider value={context}>{overlay}</DialogContext.Provider>\n </Fragment>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DialogTrigger.js","names":["Modal","Tray","Popover"],"sources":["../../../../src/components/overlays/Dialog/DialogTrigger.tsx"],"sourcesContent":["import { PressResponder } from '@react-aria/interactions';\nimport { useMediaQuery } from '@react-spectrum/utils';\nimport { Styles } from '@tenphi/tasty';\nimport {\n Fragment,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n OverlayTriggerProps,\n Placement,\n PositionProps,\n useOverlayPosition,\n useOverlayTrigger,\n} from 'react-aria';\nimport { OverlayTriggerState, useOverlayTriggerState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { generateRandomId } from '../../../utils/random';\nimport { useCombinedRefs, useLayoutEffect } from '../../../utils/react/index';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { Modal, Popover, Tray, WithCloseBehavior } from '../Modal';\n\nimport { DialogContext } from './context';\n\nexport type CubeDialogClose = (close: () => void) => ReactElement;\n\nexport interface CubeDialogTriggerProps\n extends OverlayTriggerProps,\n PositionProps,\n WithCloseBehavior {\n /** The Dialog and its trigger element. See the DialogTrigger [Content section](#content) for more information on what to provide as children. */\n children: [\n ReactElement | ((state: OverlayTriggerState) => ReactElement),\n CubeDialogClose | ReactElement,\n ];\n /**\n * The type of Dialog that should be rendered. See the DialogTrigger [types section](#dialog-types) for an explanation on each.\n * @default 'modal'\n */\n type?:\n | 'modal'\n | 'popover'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel';\n /** The type of Dialog that should be rendered when on a mobile device. See DialogTrigger [types section](#dialog-types) for an explanation on each. */\n mobileType?:\n | 'modal'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel'\n | 'popover';\n placement?: Placement;\n /**\n * Whether a popover type Dialog's arrow should be hidden.\n */\n hideArrow?: boolean;\n /** The ref of the element the Dialog should visually attach itself to. Defaults to the trigger button if not defined. */\n targetRef?: RefObject<HTMLElement | null>;\n /** Whether a modal type Dialog should be dismissable. */\n isDismissable?: boolean;\n /** Whether pressing the escape key to close the dialog should be disabled. */\n isKeyboardDismissDisabled?: boolean;\n /** The screen breakpoint for the mobile type */\n mobileViewport?: number;\n /** The style map for the overlay **/\n styles?: Styles;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n onDismiss?: (action?: string) => void;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n shouldFlip?: boolean;\n shouldUpdatePosition?: boolean;\n /** Minimum padding in pixels between the popover and viewport edges */\n containerPadding?: number;\n /**\n * Whether focus returns to the trigger when the dialog closes. Defaults to\n * `true`.\n *\n * The restore is skipped automatically whenever the action that closed the\n * dialog has already moved focus somewhere else, so an action that opens a\n * panel/dialog/inline editor and focuses it needs nothing here. Pass `false`\n * for the remaining case: a surface that claims focus *later* than the\n * dialog's own restore (after an async load, an entry animation, or a\n * `requestAnimationFrame`), where the trigger would otherwise take focus\n * first and produce a visible flash.\n */\n shouldRestoreFocus?: boolean;\n}\n\n/**\n * DialogTrigger serves as a wrapper around a Dialog and its associated trigger, linking the Dialog's\n * open state with the trigger's press state. Additionally, it allows you to customize the type and\n * positioning of the Dialog.\n */\nexport function DialogTrigger(props: CubeDialogTriggerProps) {\n let {\n children,\n type = 'modal',\n mobileType = type,\n hideArrow,\n targetRef,\n onDismiss,\n isDismissable = true,\n isKeyboardDismissDisabled,\n styles,\n mobileViewport = 700,\n hideOnClose,\n shouldCloseOnInteractOutside,\n shouldRestoreFocus = true,\n ...positionProps\n } = props;\n\n if (!Array.isArray(children) || children.length > 2) {\n throw new Error('DialogTrigger must have exactly 2 children');\n }\n // if a function is passed as the second child, it won't appear in toArray\n let [trigger, content] = children;\n\n // On small devices, show a modal or tray instead of a popover.\n let isMobile = useMediaQuery(`(max-width: ${mobileViewport}px)`);\n if (isMobile) {\n // handle cases where desktop popovers need a close button for the mobile modal view\n if (type !== 'modal' && mobileType === 'modal') {\n isDismissable = true;\n }\n\n type = mobileType;\n }\n\n let state = useOverlayTriggerState(props);\n\n if (typeof trigger === 'function') {\n trigger = trigger(state);\n }\n\n let wasOpen = useRef(false);\n let isExiting = useRef(false);\n let onExiting = () => (isExiting.current = true);\n let onExited = () => (isExiting.current = false);\n\n wasOpen.current = state.isOpen;\n\n // Shared identity + refs for `usePopoverSync`. Allocating here (rather than\n // inside the branch-specific sub-trees) keeps a single sync registration for\n // the lifetime of the trigger, even when `type` flips between popover and\n // modal at the mobile breakpoint. The refs are then threaded into the\n // appropriate branch so existing positioning / useOverlayTrigger hooks keep\n // their original ref targets and `usePopoverSync`'s `contains()` check has a\n // real DOM node to query.\n const dialogSyncId = useMemo(() => generateRandomId(), []);\n const syncTriggerRef = useRef<HTMLElement | null>(null);\n const syncOverlayRef = useRef<HTMLElement | null>(null);\n\n // Only popover-type Dialogs participate in the \"press inside dismisses\n // me\" / \"peer popover opening dismisses me\" behaviours: modals, trays,\n // fullscreen and panel Dialogs are persistent workspaces and must not be\n // yanked closed via the EventBus (which would bypass `isDismissable` and\n // call `state.close()` directly). Non-popover types DO still EMIT\n // `popover:open`, so opening a modal correctly dismisses peer popovers.\n const isPopoverFlavored = type === 'popover';\n usePopoverSync({\n menuId: dialogSyncId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: syncTriggerRef,\n containerRef: syncOverlayRef,\n dismissOnInnerButtonPress: isPopoverFlavored,\n closeOnPeerOpen: isPopoverFlavored,\n });\n\n useEffect(() => {\n return () => {\n if (\n (wasOpen.current || isExiting.current) &&\n type !== 'popover' &&\n type !== 'tray'\n ) {\n console.warn(\n 'CubeUIKit: A DialogTrigger unmounted while open. This is likely due to being placed within a trigger that unmounts or inside a conditional. Consider using a DialogContainer instead.',\n );\n }\n };\n }, []);\n\n function onClose(action) {\n if (isDismissable) {\n onDismiss && onDismiss(action);\n state.close();\n }\n }\n\n if (type === 'popover') {\n return (\n <PopoverTrigger\n {...positionProps}\n hideOnClose={hideOnClose}\n state={state}\n styles={styles}\n targetRef={targetRef}\n trigger={trigger}\n content={content}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n shouldRestoreFocus={shouldRestoreFocus}\n syncTriggerRef={syncTriggerRef}\n syncOverlayRef={syncOverlayRef}\n triggerType={type}\n onClose={onClose}\n />\n );\n }\n\n let renderOverlay = () => {\n switch (type) {\n case 'panel':\n case 'fullscreen':\n case 'fullscreenTakeover':\n case 'modal':\n return (\n <Modal\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isDismissable={isDismissable}\n type={type}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n onClose={onClose}\n onExiting={onExiting}\n onExited={onExited}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Modal>\n );\n case 'tray':\n return (\n <Tray\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Tray>\n );\n }\n };\n\n return (\n <DialogTriggerBase\n type={type}\n state={state}\n isDismissable={isDismissable}\n trigger={trigger}\n overlay={renderOverlay()}\n hideOnClose={hideOnClose}\n syncTriggerRef={syncTriggerRef}\n overlayRef={syncOverlayRef}\n shouldRestoreFocus={shouldRestoreFocus}\n onClose={onClose}\n />\n );\n}\n\nfunction PopoverTrigger(allProps) {\n let {\n state,\n styles,\n targetRef,\n trigger,\n content,\n hideArrow,\n onClose,\n isKeyboardDismissDisabled,\n hideOnClose,\n shouldCloseOnInteractOutside,\n shouldRestoreFocus,\n keepOpenOnScroll,\n syncTriggerRef,\n syncOverlayRef,\n triggerType,\n ...props\n } = allProps;\n\n let triggerRef = useRef<HTMLButtonElement>(null);\n let overlayRef = useRef<HTMLDivElement>(null);\n\n // Mirror the trigger/overlay DOM nodes into the parent-owned sync refs.\n //\n // We deliberately do NOT use `useCombinedRefs` here: that hook returns a\n // brand new internal ref and propagates to the passed refs via a regular\n // `useEffect` (post-commit). `useOverlayPosition` below reads\n // `triggerRef.current` in its own layout effect during the SAME commit, so\n // if `triggerRef` only receives the DOM node via a delayed effect, the\n // first measurement sees `null` and the popover positions at the document\n // origin until something forces a re-measure.\n //\n // Keeping `triggerRef`/`overlayRef` as the direct React refs preserves\n // synchronous assignment for `useOverlayPosition`. The sync refs are only\n // ever read inside `popover:open` handlers, which fire via setTimeout(0),\n // so a layout-effect mirror is more than fast enough.\n useLayoutEffect(() => {\n if (syncTriggerRef) {\n syncTriggerRef.current = targetRef?.current ?? triggerRef.current ?? null;\n }\n if (syncOverlayRef) {\n syncOverlayRef.current = overlayRef.current ?? null;\n }\n });\n\n let {\n overlayProps: popoverProps,\n placement,\n arrowProps,\n updatePosition,\n } = useOverlayPosition({\n targetRef: targetRef || triggerRef,\n overlayRef: overlayRef,\n placement: props.placement,\n containerPadding: props.containerPadding,\n offset: props.offset || 8,\n crossOffset: props.crossOffset,\n shouldFlip: props.shouldFlip,\n shouldUpdatePosition: props.shouldUpdatePosition,\n isOpen: state.isOpen,\n });\n\n let overlayTriggerState = state;\n\n if (keepOpenOnScroll) {\n overlayTriggerState = { ...state, close: updatePosition };\n }\n\n let { triggerProps, overlayProps } = useOverlayTrigger(\n { type: 'dialog' },\n overlayTriggerState,\n triggerRef,\n );\n\n let triggerPropsWithRef = {\n ...triggerProps,\n ref: targetRef ? undefined : triggerRef,\n };\n\n // Mirror the Select/ComboBox/MenuTrigger pattern: when an outside click lands\n // on ANOTHER popover trigger, return `false` so react-aria's `useOverlay`\n // does NOT `stopPropagation()` the click. The click then reaches that trigger,\n // its popover opens, and `usePopoverSync` closes this one via the EventBus.\n // Without this, react-aria swallows every outside click and a single click on\n // a sibling trigger can't open it while this popover is open.\n const resolveShouldCloseOnInteractOutside = useEvent(\n (el: Element): boolean => {\n const popoverTriggerEl = el.closest('[data-popover-trigger]');\n if (!popoverTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n // Plain interactive controls (Button, ItemButton) opt in via\n // `data-popover-dismiss`. Schedule the close after the click finishes so\n // the control's `onPress` runs first instead of losing the click to\n // useOverlay's stopPropagation.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(() => state.close(), 0);\n return false;\n }\n return shouldCloseOnInteractOutside\n ? shouldCloseOnInteractOutside(el)\n : true;\n }\n // Clicking our own trigger again should dismiss us.\n const ownTrigger = targetRef?.current ?? triggerRef.current;\n if (popoverTriggerEl === ownTrigger || ownTrigger?.contains(el))\n return true;\n // Another popover's trigger: let the click through so it can open.\n return false;\n },\n );\n\n let overlay = (\n <Popover\n ref={overlayRef}\n styles={styles}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n style={popoverProps.style}\n placement={placement}\n arrowProps={arrowProps}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={resolveShouldCloseOnInteractOutside}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Popover>\n );\n\n return (\n <DialogTriggerBase\n type=\"popover\"\n state={state}\n triggerProps={triggerPropsWithRef}\n dialogProps={overlayProps}\n trigger={trigger}\n overlay={overlay}\n overlayRef={overlayRef}\n shouldRestoreFocus={shouldRestoreFocus}\n onClose={onClose}\n />\n );\n}\n\nfunction DialogTriggerBase(props: any) {\n const ref = useCombinedRefs<HTMLElement>(props.ref);\n const wasOpenRef = useRef(false);\n const overlayRef: RefObject<HTMLElement | null> | undefined =\n props.overlayRef;\n\n // Mirror the press-responder DOM node into the parent's sync trigger ref.\n // Done via `useLayoutEffect` rather than threading through `useCombinedRefs`\n // for consistency with `PopoverTrigger` (see comment there) — keeps the\n // sync-ref population deterministic regardless of branch.\n useLayoutEffect(() => {\n if (props.syncTriggerRef) {\n props.syncTriggerRef.current = ref.current ?? null;\n }\n });\n\n let {\n type,\n state,\n onClose,\n isDismissable,\n dialogProps = {},\n triggerProps = {},\n overlay,\n trigger,\n shouldRestoreFocus = true,\n } = props;\n\n let context = {\n type,\n onClose,\n isDismissable,\n isOpen: state.isOpen,\n // Reaches `Dialog`'s `FocusScope`, which owns the restore for\n // popover-type dialogs. `useDialog` filters it out of the DOM props.\n shouldRestoreFocus,\n ...dialogProps,\n };\n\n // Whether focus has been claimed by something outside the closing dialog —\n // the signal that an action handed focus off and the trigger must not take\n // it back. Same rule as `MenuTrigger` (see CUB-3962): an action that opens\n // a panel, another dialog or an inline editor focuses that surface, and\n // restoring here would undo the hand-off.\n //\n // Focus still inside the overlay means nobody claimed it (the pressed\n // control keeps focus while the overlay plays its ~350ms exit animation),\n // and focus on `<body>` or on a detached node means the focused element\n // went away with the dialog. Both belong back on the trigger.\n const hasFocusMovedOutsideDialog = useEvent(() => {\n const activeElement = document.activeElement;\n\n if (!activeElement || activeElement === document.body) return false;\n if (!activeElement.isConnected) return false;\n\n return !(\n overlayRef?.current?.contains(activeElement) ||\n ref.current?.contains(activeElement)\n );\n });\n\n // Restore focus manually when the dialog closes.\n //\n // Live for modal/tray/fullscreen/panel types only: in the popover branch\n // `triggerProps` carries its own `ref`, which overrides the `ref={ref}` on\n // `PressResponder` below, so `ref.current` stays null and this is a no-op.\n // Popovers get their restore from `Dialog`'s own `<FocusScope restoreFocus>`\n // instead, which already declines to restore when focus moved elsewhere.\n useEffect(() => {\n if (!state.isOpen && wasOpenRef.current) {\n wasOpenRef.current = false;\n if (!shouldRestoreFocus) return;\n if (hasFocusMovedOutsideDialog()) return;\n ref.current?.focus();\n } else if (state.isOpen) {\n wasOpenRef.current = true;\n }\n }, [state.isOpen, shouldRestoreFocus, hasFocusMovedOutsideDialog]);\n\n // Mark popover-type DialogTrigger children with `data-popover-trigger` so\n // `Button` / `ItemButton`'s default dismiss-on-press behaviour treats them\n // as popover triggers (skips the dismiss). Modal/tray/fullscreen children\n // intentionally stay UNMARKED — when a modal-type DialogTrigger lives\n // inside a popover footer, pressing it should dismiss the parent popover\n // (matching the \"modal takes over\" native UX).\n const triggerExtraProps =\n type === 'popover' ? { 'data-popover-trigger': '' } : {};\n\n return (\n <Fragment>\n <PressResponder\n ref={ref}\n {...triggerProps}\n {...triggerExtraProps}\n isPressed={\n state.isOpen &&\n type !== 'modal' &&\n type !== 'fullscreen' &&\n type !== 'fullscreenTakeover'\n }\n onPress={state.toggle}\n >\n {trigger}\n </PressResponder>\n <DialogContext.Provider value={context}>{overlay}</DialogContext.Provider>\n </Fragment>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import invariant from "tiny-invariant";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/components/overlays/Dialog/context.tsx"],"sourcesContent":["import { createContext, HTMLAttributes, useContext } from 'react';\nimport invariant from 'tiny-invariant';\n\nexport interface DialogContextValue extends HTMLAttributes<HTMLElement> {\n type?:\n | 'modal'\n | 'popover'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel';\n isDismissable?: boolean;\n onClose?: (arg?: string) => void;\n isOpen?: boolean;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>({});\n\nexport function useDialogContext() {\n const dialogContext = useContext(DialogContext);\n\n invariant(dialogContext !== null, '');\n\n return dialogContext;\n}\n"],"mappings":";;;;;AAgBA,MAAa,gBAAgB,cAAyC,EAAE,CAAC;AAEzE,SAAgB,mBAAmB;CACjC,MAAM,gBAAgB,WAAW,cAAc;AAE/C,WAAU,kBAAkB,MAAM,GAAG;AAErC,QAAO"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/components/overlays/Dialog/context.tsx"],"sourcesContent":["import { createContext, HTMLAttributes, useContext } from 'react';\nimport invariant from 'tiny-invariant';\n\nexport interface DialogContextValue extends HTMLAttributes<HTMLElement> {\n type?:\n | 'modal'\n | 'popover'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel';\n isDismissable?: boolean;\n onClose?: (arg?: string) => void;\n isOpen?: boolean;\n /**\n * Whether closing the dialog restores focus to its trigger. Set by\n * `DialogTrigger`'s `shouldRestoreFocus` prop; consumed by `Dialog`'s\n * `FocusScope` (which owns the restore for popover-type dialogs). Defaults\n * to `true` when absent, so a `Dialog` rendered outside a trigger keeps\n * restoring focus.\n */\n shouldRestoreFocus?: boolean;\n}\n\nexport const DialogContext = createContext<DialogContextValue | null>({});\n\nexport function useDialogContext() {\n const dialogContext = useContext(DialogContext);\n\n invariant(dialogContext !== null, '');\n\n return dialogContext;\n}\n"],"mappings":";;;;;AAwBA,MAAa,gBAAgB,cAAyC,EAAE,CAAC;AAEzE,SAAgB,mBAAmB;CACjC,MAAM,gBAAgB,WAAW,cAAc;AAE/C,WAAU,kBAAkB,MAAM,GAAG;AAErC,QAAO"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { DialogContainer } from "./DialogContainer.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { _Overlay } from "./Overlay.js";
4
4
  import { _Underlay } from "./Underlay.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/overlays/Modal/OpenTransitionContext.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
3
3
  import { Provider, useProviderProps } from "../../../provider.js";
4
4
  import { OpenTransitionContext } from "./OpenTransitionContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { _Overlay } from "./Overlay.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { _Overlay } from "./Overlay.js";
4
4
  import { _Underlay } from "./Underlay.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useNotificationContext } from "./NotificationContext.js";
3
3
  import { useEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { createContext, useContext, useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { Block } from "../../Block.js";
3
3
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
4
4
  import { Space } from "../../layout/Space.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/overlays/Notifications/NotificationContext.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { NotificationCard } from "./NotificationCard.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { NotificationContext, PersistentNotificationsContext, ToastContext, useNotificationContext, useToastContext } from "./NotificationContext.js";
3
3
  import { OverlayContainer } from "./OverlayContainer.js";
4
4
  import { useNotificationState } from "./use-notification-state.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Text } from "../../content/Text.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  //#region src/components/overlays/Notifications/dismissed-storage.ts
3
3
  const STORAGE_KEY = "cube-ui-dismissed-notifications";
4
4
  const TTL_MS = 864e5;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  //#region src/components/overlays/Notifications/format-relative-time.ts
3
3
  /**
4
4
  * Lightweight relative time formatter.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useToastContext } from "./NotificationContext.js";
3
3
  import { NotificationAction } from "./NotificationAction.js";
4
4
  import { NotificationCard } from "./NotificationCard.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
4
4
  import { useNotificationContext } from "./NotificationContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { usePersistentNotificationsContext } from "./NotificationContext.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { cleanupAndGetValidIds, saveDismissedId } from "./dismissed-storage.js";
4
4
  import { useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { _Item } from "../../content/Item/Item.js";
3
3
  import { getThemeIcon } from "./useToast.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useToastContext } from "../Notifications/NotificationContext.js";
3
3
  import { useProgressToast } from "./useProgressToast.js";
4
4
  import { getThemeIcon, useToast } from "./useToast.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { CheckIcon } from "../../../icons/CheckIcon.js";
3
3
  import { DangerIcon } from "../../../icons/DangerIcon.js";
4
4
  import { InfoCircleIcon } from "../../../icons/InfoCircleIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { _Tooltip } from "./Tooltip.js";
3
3
  import { TooltipTrigger } from "./TooltipTrigger.js";
4
4
  import { isValidElement, useEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { TooltipContext } from "./context.js";
3
3
  import { Block } from "../../Block.js";
4
4
  import { _ActiveZone } from "../../content/ActiveZone/ActiveZone.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import React from "react";
3
3
 
4
4
  //#region src/components/overlays/Tooltip/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { usePortal } from "./usePortal.js";
3
3
  import { Fragment, jsx } from "react/jsx-runtime";
4
4
  import { createPortal } from "react-dom";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/portal/PortalProvider.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { usePortalContext } from "./PortalProvider.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import invariant from "tiny-invariant";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useEffect, useMemo, useRef } from "react";
4
4
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { WarningIcon } from "../../icons/WarningIcon.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { CheckIcon } from "../../icons/CheckIcon.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { Block } from "../../Block.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingAnimation.js","names":[],"sources":["../../../../src/components/status/LoadingAnimation/LoadingAnimation.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { CSSProperties } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { Block, CubeBlockProps } from '../../Block';\n\nconst CubeElement = tasty({\n as: 'svg',\n styles: {\n display: 'block',\n position: 'absolute',\n width: '50%',\n height: '50%',\n\n // The three visible faces of the cube get their colors via the SVG\n // `fill=\"…\"` attribute on each `<path>` (see the JSX below), NOT via a\n // tasty `fill` style. Tasty's `fill` is a typed shorthand for\n // `background-color` — applying it to an SVG `<path>` would inject\n // `background-color: …` which paths simply ignore (this was the\n // \"invisible cube\" bug). Pointing the SVG `fill` attribute at the\n // adaptive `--loading-face-N-color` CSS variables published by Glaze\n // (defined in `src/tokens/palette.ts`) keeps the three faces driven by\n // the design system without going through a style property tasty would\n // re-route to the wrong CSS slot.\n\n animationName: {\n '': 'none',\n 'index=0': 'dice0',\n 'index=1': 'dice1',\n 'index=2': 'dice2',\n },\n animationDuration: {\n '': '0s',\n 'index=0 | index=1 | index=2': '2s',\n },\n animationIterationCount: {\n '': 1,\n 'index=0 | index=1 | index=2': 'infinite',\n },\n animationTimingFunction: {\n '': 'ease',\n 'index=0 | index=1 | index=2': 'ease',\n },\n zIndex: {\n '': 0,\n 'index=0 | index=1 | index=2': 0,\n },\n\n '@keyframes': {\n dice0: {\n from: { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n '25%': { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n '50%': { transform: 'translate(0%, 25%)', zIndex: 0 },\n '51%': { zIndex: 1 },\n '75%': { zIndex: 1 },\n to: { transform: 'translate(0%, 25%)', zIndex: 1 },\n },\n dice1: {\n from: { transform: 'translate(0%, 25%)', zIndex: 3 },\n '25%': { transform: 'translate(49%, 49%)', zIndex: 3 },\n '75%': { transform: 'translate(49%, 49%)', zIndex: 2 },\n to: { transform: 'translate(98%, 25%)', zIndex: 1 },\n },\n dice2: {\n from: { transform: 'translate(98%, 25%)', zIndex: 1 },\n '50%': { transform: 'translate(98%, 25%)', zIndex: 0 },\n '75%': { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n to: { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n },\n },\n },\n});\n\ninterface CubeProps {\n index?: 0 | 1 | 2;\n style?: CSSProperties;\n}\n\nfunction Cube({ index, style }: CubeProps) {\n return (\n <CubeElement\n mods={index != null ? { index } : undefined}\n style={style}\n viewBox=\"0 0 36 41\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"presentation\"\n aria-hidden=\"true\"\n >\n <path\n fill=\"var(--loading-face-1-color)\"\n d=\"M35.899 10.351l-18 10.25L.1 10.25l18-10.25L35.9 10.351z\"\n />\n <path\n fill=\"var(--loading-face-2-color)\"\n d=\"M18 41L0 30.75l.101-20.5L18 20.5\"\n />\n <path\n fill=\"var(--loading-face-3-color)\"\n d=\"M36 30.75L18 41V20.6l17.899-10.25L36 30.75z\"\n />\n </CubeElement>\n );\n}\n\nconst SIZE_MAP = {\n small: 32,\n medium: 64,\n large: 96,\n};\n\nexport interface CubeLoadingAnimationProps extends CubeBlockProps {\n size?: 'small' | 'medium' | 'large' | number;\n}\n\nexport function LoadingAnimation({\n size = 'medium',\n ...props\n}: CubeLoadingAnimationProps) {\n const { t } = useI18n();\n const numSize: number = SIZE_MAP[size] || size || SIZE_MAP.medium;\n\n return (\n <Block\n role=\"img\"\n aria-label={t('loadingAnimation.ariaLabel', 'Loading animation')}\n width={numSize}\n height={numSize * 1.1388888889}\n style={{ position: 'relative' }}\n {...props}\n >\n <Cube style={{ transform: 'translate(0%, 72.5%)' }} />\n <Cube style={{ transform: 'translate(98%, 72.5%)' }} />\n <Cube style={{ transform: 'translate(49%, 96.5%)' }} />\n <Cube index={0} />\n <Cube index={1} />\n <Cube index={2} />\n </Block>\n );\n}\n"],"mappings":";;;;;;;AAMA,MAAM,cAAc,MAAM;CACxB,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACP,QAAQ;EAaR,eAAe;GACb,IAAI;GACJ,WAAW;GACX,WAAW;GACX,WAAW;GACZ;EACD,mBAAmB;GACjB,IAAI;GACJ,+BAA+B;GAChC;EACD,yBAAyB;GACvB,IAAI;GACJ,+BAA+B;GAChC;EACD,yBAAyB;GACvB,IAAI;GACJ,+BAA+B;GAChC;EACD,QAAQ;GACN,IAAI;GACJ,+BAA+B;GAChC;EAED,cAAc;GACZ,OAAO;IACL,MAAM;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACtD,OAAO;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACvD,OAAO;KAAE,WAAW;KAAsB,QAAQ;KAAG;IACrD,OAAO,EAAE,QAAQ,GAAG;IACpB,OAAO,EAAE,QAAQ,GAAG;IACpB,IAAI;KAAE,WAAW;KAAsB,QAAQ;KAAG;IACnD;GACD,OAAO;IACL,MAAM;KAAE,WAAW;KAAsB,QAAQ;KAAG;IACpD,OAAO;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACtD,OAAO;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACtD,IAAI;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACpD;GACD,OAAO;IACL,MAAM;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACrD,OAAO;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACtD,OAAO;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACvD,IAAI;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACrD;GACF;EACF;CACF,CAAC;AAOF,SAAS,KAAK,EAAE,OAAO,SAAoB;AACzC,QACE,qBAAC;EACC,MAAM,SAAS,OAAO,EAAE,OAAO,GAAG;EAC3B;EACP,SAAQ;EACR,MAAK;EACL,OAAM;EACN,MAAK;EACL,eAAY;;GAEZ,oBAAC;IACC,MAAK;IACL,GAAE;KACF;GACF,oBAAC;IACC,MAAK;IACL,GAAE;KACF;GACF,oBAAC;IACC,MAAK;IACL,GAAE;KACF;;GACU;;AAIlB,MAAM,WAAW;CACf,OAAO;CACP,QAAQ;CACR,OAAO;CACR;AAMD,SAAgB,iBAAiB,EAC/B,OAAO,UACP,GAAG,SACyB;CAC5B,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,UAAkB,SAAS,SAAS,QAAQ,SAAS;AAE3D,QACE,qBAAC;EACC,MAAK;EACL,cAAY,EAAE,8BAA8B,oBAAoB;EAChE,OAAO;EACP,QAAQ,UAAU;EAClB,OAAO,EAAE,UAAU,YAAY;EAC/B,GAAI;;GAEJ,oBAAC,QAAK,OAAO,EAAE,WAAW,wBAAwB,GAAI;GACtD,oBAAC,QAAK,OAAO,EAAE,WAAW,yBAAyB,GAAI;GACvD,oBAAC,QAAK,OAAO,EAAE,WAAW,yBAAyB,GAAI;GACvD,oBAAC,QAAK,OAAO,IAAK;GAClB,oBAAC,QAAK,OAAO,IAAK;GAClB,oBAAC,QAAK,OAAO,IAAK;;GACZ"}
1
+ {"version":3,"file":"LoadingAnimation.js","names":[],"sources":["../../../../src/components/status/LoadingAnimation/LoadingAnimation.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { CSSProperties } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { Block, CubeBlockProps } from '../../Block';\n\nconst CubeElement = tasty({\n as: 'svg',\n styles: {\n display: 'block',\n position: 'absolute',\n width: '50%',\n height: '50%',\n\n // The three visible faces of the cube get their colors via the SVG\n // `fill=\"…\"` attribute on each `<path>` (see the JSX below), NOT via a\n // tasty `fill` style. Tasty's `fill` is a typed shorthand for\n // `background-color` — applying it to an SVG `<path>` would inject\n // `background-color: …` which paths simply ignore (this was the\n // \"invisible cube\" bug). Pointing the SVG `fill` attribute at the\n // adaptive `--loading-face-N-color` CSS variables published by Glaze\n // (defined in `src/tokens/palette.ts`) keeps the three faces driven by\n // the design system without going through a style property tasty would\n // re-route to the wrong CSS slot.\n //\n // Those three tokens are the kit's shared isometric-cube ramp — `NoDataIcon`\n // draws its crate from the same ones — and they are pinned by a WCAG floor\n // against `surface` rather than by a tone delta, so the faces hold the same\n // separation in light, dark, and high contrast. See the recipe's comment for\n // why that matters.\n\n animationName: {\n '': 'none',\n 'index=0': 'dice0',\n 'index=1': 'dice1',\n 'index=2': 'dice2',\n },\n animationDuration: {\n '': '0s',\n 'index=0 | index=1 | index=2': '2s',\n },\n animationIterationCount: {\n '': 1,\n 'index=0 | index=1 | index=2': 'infinite',\n },\n animationTimingFunction: {\n '': 'ease',\n 'index=0 | index=1 | index=2': 'ease',\n },\n zIndex: {\n '': 0,\n 'index=0 | index=1 | index=2': 0,\n },\n\n '@keyframes': {\n dice0: {\n from: { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n '25%': { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n '50%': { transform: 'translate(0%, 25%)', zIndex: 0 },\n '51%': { zIndex: 1 },\n '75%': { zIndex: 1 },\n to: { transform: 'translate(0%, 25%)', zIndex: 1 },\n },\n dice1: {\n from: { transform: 'translate(0%, 25%)', zIndex: 3 },\n '25%': { transform: 'translate(49%, 49%)', zIndex: 3 },\n '75%': { transform: 'translate(49%, 49%)', zIndex: 2 },\n to: { transform: 'translate(98%, 25%)', zIndex: 1 },\n },\n dice2: {\n from: { transform: 'translate(98%, 25%)', zIndex: 1 },\n '50%': { transform: 'translate(98%, 25%)', zIndex: 0 },\n '75%': { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n to: { transform: 'translate(49%, 0.5%)', zIndex: 0 },\n },\n },\n },\n});\n\ninterface CubeProps {\n index?: 0 | 1 | 2;\n style?: CSSProperties;\n}\n\nfunction Cube({ index, style }: CubeProps) {\n return (\n <CubeElement\n mods={index != null ? { index } : undefined}\n style={style}\n viewBox=\"0 0 36 41\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"presentation\"\n aria-hidden=\"true\"\n >\n <path\n fill=\"var(--loading-face-1-color)\"\n d=\"M35.899 10.351l-18 10.25L.1 10.25l18-10.25L35.9 10.351z\"\n />\n <path\n fill=\"var(--loading-face-2-color)\"\n d=\"M18 41L0 30.75l.101-20.5L18 20.5\"\n />\n <path\n fill=\"var(--loading-face-3-color)\"\n d=\"M36 30.75L18 41V20.6l17.899-10.25L36 30.75z\"\n />\n </CubeElement>\n );\n}\n\nconst SIZE_MAP = {\n small: 32,\n medium: 64,\n large: 96,\n};\n\nexport interface CubeLoadingAnimationProps extends CubeBlockProps {\n size?: 'small' | 'medium' | 'large' | number;\n}\n\nexport function LoadingAnimation({\n size = 'medium',\n ...props\n}: CubeLoadingAnimationProps) {\n const { t } = useI18n();\n const numSize: number = SIZE_MAP[size] || size || SIZE_MAP.medium;\n\n return (\n <Block\n role=\"img\"\n aria-label={t('loadingAnimation.ariaLabel', 'Loading animation')}\n width={numSize}\n height={numSize * 1.1388888889}\n style={{ position: 'relative' }}\n {...props}\n >\n <Cube style={{ transform: 'translate(0%, 72.5%)' }} />\n <Cube style={{ transform: 'translate(98%, 72.5%)' }} />\n <Cube style={{ transform: 'translate(49%, 96.5%)' }} />\n <Cube index={0} />\n <Cube index={1} />\n <Cube index={2} />\n </Block>\n );\n}\n"],"mappings":";;;;;;;AAMA,MAAM,cAAc,MAAM;CACxB,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACP,QAAQ;EAmBR,eAAe;GACb,IAAI;GACJ,WAAW;GACX,WAAW;GACX,WAAW;GACZ;EACD,mBAAmB;GACjB,IAAI;GACJ,+BAA+B;GAChC;EACD,yBAAyB;GACvB,IAAI;GACJ,+BAA+B;GAChC;EACD,yBAAyB;GACvB,IAAI;GACJ,+BAA+B;GAChC;EACD,QAAQ;GACN,IAAI;GACJ,+BAA+B;GAChC;EAED,cAAc;GACZ,OAAO;IACL,MAAM;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACtD,OAAO;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACvD,OAAO;KAAE,WAAW;KAAsB,QAAQ;KAAG;IACrD,OAAO,EAAE,QAAQ,GAAG;IACpB,OAAO,EAAE,QAAQ,GAAG;IACpB,IAAI;KAAE,WAAW;KAAsB,QAAQ;KAAG;IACnD;GACD,OAAO;IACL,MAAM;KAAE,WAAW;KAAsB,QAAQ;KAAG;IACpD,OAAO;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACtD,OAAO;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACtD,IAAI;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACpD;GACD,OAAO;IACL,MAAM;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACrD,OAAO;KAAE,WAAW;KAAuB,QAAQ;KAAG;IACtD,OAAO;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACvD,IAAI;KAAE,WAAW;KAAwB,QAAQ;KAAG;IACrD;GACF;EACF;CACF,CAAC;AAOF,SAAS,KAAK,EAAE,OAAO,SAAoB;AACzC,QACE,qBAAC;EACC,MAAM,SAAS,OAAO,EAAE,OAAO,GAAG;EAC3B;EACP,SAAQ;EACR,MAAK;EACL,OAAM;EACN,MAAK;EACL,eAAY;;GAEZ,oBAAC;IACC,MAAK;IACL,GAAE;KACF;GACF,oBAAC;IACC,MAAK;IACL,GAAE;KACF;GACF,oBAAC;IACC,MAAK;IACL,GAAE;KACF;;GACU;;AAIlB,MAAM,WAAW;CACf,OAAO;CACP,QAAQ;CACR,OAAO;CACR;AAMD,SAAgB,iBAAiB,EAC/B,OAAO,UACP,GAAG,SACyB;CAC5B,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,UAAkB,SAAS,SAAS,QAAQ,SAAS;AAE3D,QACE,qBAAC;EACC,MAAK;EACL,cAAY,EAAE,8BAA8B,oBAAoB;EAChE,OAAO;EACP,QAAQ,UAAU;EAClB,OAAO,EAAE,UAAU,YAAY;EAC/B,GAAI;;GAEJ,oBAAC,QAAK,OAAO,EAAE,WAAW,wBAAwB,GAAI;GACtD,oBAAC,QAAK,OAAO,EAAE,WAAW,yBAAyB,GAAI;GACvD,oBAAC,QAAK,OAAO,EAAE,WAAW,yBAAyB,GAAI;GACvD,oBAAC,QAAK,OAAO,IAAK;GAClB,oBAAC,QAAK,OAAO,IAAK;GAClB,oBAAC,QAAK,OAAO,IAAK;;GACZ"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { memo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { Cube } from "./Cube.js";
3
3
  import { SpinsContainer } from "./SpinsContainer.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { Block } from "../../Block.js";
3
3
  import { InternalSpinner } from "./InternalSpinner.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.164.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -2,7 +2,7 @@
2
2
  import { Styles } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/data/item-themes.d.ts
5
- type ItemVariant = 'default.current' | 'default.primary' | 'default.outline' | 'default.outline-2' | 'default.clear' | 'default.link' | 'default.item' | 'default.card' | 'danger.primary' | 'danger.outline' | 'danger.outline-2' | 'danger.clear' | 'danger.link' | 'danger.item' | 'danger.card' | 'success.primary' | 'success.outline' | 'success.outline-2' | 'success.clear' | 'success.link' | 'success.item' | 'success.card' | 'warning.primary' | 'warning.outline' | 'warning.outline-2' | 'warning.clear' | 'warning.link' | 'warning.item' | 'warning.card' | 'note.primary' | 'note.outline' | 'note.outline-2' | 'note.clear' | 'note.link' | 'note.item' | 'note.card' | 'special.primary' | 'special.outline' | 'special.clear' | 'special.link' | 'special.item';
5
+ type ItemVariant = 'current.item' | 'current.primary' | 'current.outline' | 'current.outline-2' | 'current.clear' | 'current.link' | 'current.card' | 'default.primary' | 'default.outline' | 'default.outline-2' | 'default.clear' | 'default.link' | 'default.item' | 'default.card' | 'danger.primary' | 'danger.outline' | 'danger.outline-2' | 'danger.clear' | 'danger.link' | 'danger.item' | 'danger.card' | 'success.primary' | 'success.outline' | 'success.outline-2' | 'success.clear' | 'success.link' | 'success.item' | 'success.card' | 'warning.primary' | 'warning.outline' | 'warning.outline-2' | 'warning.clear' | 'warning.link' | 'warning.item' | 'warning.card' | 'note.primary' | 'note.outline' | 'note.outline-2' | 'note.clear' | 'note.link' | 'note.item' | 'note.card' | 'special.primary' | 'special.outline' | 'special.clear' | 'special.link' | 'special.item';
6
6
  //#endregion
7
7
  export { ItemVariant };
8
8
  //# sourceMappingURL=item-themes.d.ts.map