@cube-dev/ui-kit 0.0.0-canary-0b79a39 → 0.0.0-canary-c02e70f

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 (620) hide show
  1. package/dist/CHANGELOG.md +6 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +23 -21
  13. package/dist/components/GlobalStyles.js.map +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js.map +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +128 -66
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +451 -280
  26. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +57 -93
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +49 -69
  36. package/dist/components/actions/Menu/Menu.js.map +1 -1
  37. package/dist/components/actions/Menu/MenuItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuSection.js +1 -1
  39. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  41. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/dist/components/actions/Menu/context.js +1 -1
  43. package/dist/components/actions/Menu/styled.js +1 -1
  44. package/dist/components/actions/actions-run.js +1 -1
  45. package/dist/components/actions/index.js +1 -1
  46. package/dist/components/actions/use-action.js +1 -1
  47. package/dist/components/actions/use-anchored-menu.js +1 -1
  48. package/dist/components/actions/use-context-menu.js +1 -1
  49. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/dist/components/content/Alert/Alert.js +1 -1
  51. package/dist/components/content/Alert/use-alert.js +1 -1
  52. package/dist/components/content/Avatar/Avatar.js +1 -1
  53. package/dist/components/content/Badge/Badge.js +1 -1
  54. package/dist/components/content/Card/Card.js +1 -1
  55. package/dist/components/content/Content.js +1 -1
  56. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  58. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  59. package/dist/components/content/Disclosure/Disclosure.js +44 -60
  60. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  61. package/dist/components/content/Divider.js +1 -1
  62. package/dist/components/content/Footer.js +1 -1
  63. package/dist/components/content/Header.js +1 -1
  64. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  65. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  66. package/dist/components/content/InlineInput/InlineInput.js +39 -65
  67. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  68. package/dist/components/content/Item/Item.js +208 -263
  69. package/dist/components/content/Item/Item.js.map +1 -1
  70. package/dist/components/content/ItemBadge/ItemBadge.js +70 -145
  71. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  72. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  73. package/dist/components/content/Layout/GridLayout.js +1 -1
  74. package/dist/components/content/Layout/Layout.js +1 -1
  75. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  76. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  77. package/dist/components/content/Layout/LayoutContainer.js +39 -18
  78. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  79. package/dist/components/content/Layout/LayoutContent.js +100 -48
  80. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  81. package/dist/components/content/Layout/LayoutContext.js +211 -95
  82. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  83. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  84. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  85. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  86. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  87. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  88. package/dist/components/content/Layout/LayoutPane.js +240 -123
  89. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  90. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  91. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  92. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  93. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  94. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  95. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  96. package/dist/components/content/Layout/index.js +1 -1
  97. package/dist/components/content/Layout/utils.js +1 -1
  98. package/dist/components/content/Paragraph.js +1 -1
  99. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  100. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  101. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  102. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  103. package/dist/components/content/Result/Result.js +28 -48
  104. package/dist/components/content/Result/Result.js.map +1 -1
  105. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  106. package/dist/components/content/Tag/Tag.js +1 -1
  107. package/dist/components/content/Text.js +1 -1
  108. package/dist/components/content/TextItem/TextItem.js +9 -17
  109. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  110. package/dist/components/content/Title.js +1 -1
  111. package/dist/components/content/Tree/Tree.js +1 -1
  112. package/dist/components/content/Tree/TreeNode.js +1 -1
  113. package/dist/components/content/Tree/styled.js +1 -1
  114. package/dist/components/content/Tree/tree-index.js +1 -1
  115. package/dist/components/content/Tree/use-checkbox-tree.js +68 -105
  116. package/dist/components/content/Tree/use-checkbox-tree.js.map +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 +106 -138
  120. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  121. package/dist/components/data/DataTable/DataTable.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  127. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  128. package/dist/components/data/TableBase/RowCollection.js +1 -1
  129. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  130. package/dist/components/data/TableBase/TableRow.js +1 -1
  131. package/dist/components/data/TableBase/TableView.js +1 -1
  132. package/dist/components/data/TableBase/column-menu.js +1 -1
  133. package/dist/components/data/TableBase/column-tint.js +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/table-tree.js +1 -1
  137. package/dist/components/data/TableBase/types.js +1 -1
  138. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  139. package/dist/components/data/TableBase/use-column-order.js +30 -31
  140. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  141. package/dist/components/data/TableBase/use-container-width.js +1 -1
  142. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  143. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  144. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  145. package/dist/components/data/TableBase/use-table-search.js +1 -1
  146. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sort.js +38 -42
  148. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  149. package/dist/components/data/TableBase/use-table-sorts.js +19 -57
  150. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  151. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  152. package/dist/components/data/TableBase/use-table-tree-state.js +55 -64
  153. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  154. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  155. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  156. package/dist/components/fields/Checkbox/context.js +1 -1
  157. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  158. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  159. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  162. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  163. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  164. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  165. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  166. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  167. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  168. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerButton.js +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 +1 -1
  177. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  178. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  179. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  182. package/dist/components/fields/DatePicker/period.js +1 -1
  183. package/dist/components/fields/DatePicker/props.js +1 -1
  184. package/dist/components/fields/DatePicker/utils.js +1 -1
  185. package/dist/components/fields/FileInput/FileInput.js +1 -1
  186. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  187. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  188. package/dist/components/fields/Input/Input.js +1 -1
  189. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  190. package/dist/components/fields/ListBox/ListBox.js +1 -1
  191. package/dist/components/fields/ListBox/optionId.js +1 -1
  192. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  193. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  194. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +32 -38
  195. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +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 +1 -1
  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/RadioGroup/Radio.js +1 -1
  202. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  203. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  204. package/dist/components/fields/RadioGroup/context.js +1 -1
  205. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  206. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  207. package/dist/components/fields/Select/Select.js +1 -1
  208. package/dist/components/fields/Slider/Gradation.js +1 -1
  209. package/dist/components/fields/Slider/HueSlider.js +1 -1
  210. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  211. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  212. package/dist/components/fields/Slider/Slider.js +1 -1
  213. package/dist/components/fields/Slider/SliderBase.js +1 -1
  214. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  215. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  216. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  217. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  218. package/dist/components/fields/Slider/elements.js +1 -1
  219. package/dist/components/fields/Slider/index.js +1 -1
  220. package/dist/components/fields/Switch/Switch.js +1 -1
  221. package/dist/components/fields/TagInput/TagInput.js +738 -1139
  222. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  223. package/dist/components/fields/TagInput/TagList.js +1 -1
  224. package/dist/components/fields/TextArea/TextArea.js +1 -1
  225. package/dist/components/fields/TextInput/TextInput.js +1 -1
  226. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  227. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  228. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  229. package/dist/components/fields/TriggerActions.js +1 -1
  230. package/dist/components/fields/color/ColorPanel.js +1 -1
  231. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  232. package/dist/components/fields/color/channels.js +1 -1
  233. package/dist/components/fields/color/color.js +1 -1
  234. package/dist/components/fields/color/context.js +1 -1
  235. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  236. package/dist/components/form/Form/Field.js +10 -15
  237. package/dist/components/form/Form/Field.js.map +1 -1
  238. package/dist/components/form/Form/Form.js +1 -1
  239. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  240. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  241. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  242. package/dist/components/form/Form/SubmitError.js +1 -1
  243. package/dist/components/form/Form/backend.js +1 -1
  244. package/dist/components/form/Form/index.js +1 -1
  245. package/dist/components/form/Form/modern/actions.js +1 -1
  246. package/dist/components/form/Form/modern/context.js +1 -1
  247. package/dist/components/form/Form/modern/controller.js +1 -1
  248. package/dist/components/form/Form/modern/field-binding.js +1 -1
  249. package/dist/components/form/Form/modern/field.js +1 -1
  250. package/dist/components/form/Form/modern/react.js +1 -1
  251. package/dist/components/form/Form/modern/react.js.map +1 -1
  252. package/dist/components/form/Form/modern/store.js +1 -1
  253. package/dist/components/form/Form/modern/validation.js +1 -1
  254. package/dist/components/form/Form/modern/values.js +1 -1
  255. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  256. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  257. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  258. package/dist/components/form/Form/use-field/use-field.js +1 -1
  259. package/dist/components/form/Form/use-form.js +1 -1
  260. package/dist/components/form/Form/validation.js +1 -1
  261. package/dist/components/form/Label.js +1 -1
  262. package/dist/components/form/legacy-tooltip.js +1 -1
  263. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  264. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  265. package/dist/components/form/validation/use-validation-props.js +1 -1
  266. package/dist/components/form/wrapper.js +1 -1
  267. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  268. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  269. package/dist/components/layout/Board/Board.js +1 -1
  270. package/dist/components/layout/Board/BoardProvider.js +1 -1
  271. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  272. package/dist/components/layout/Board/Widget.js +1 -1
  273. package/dist/components/layout/Board/WidgetHost.js +1 -1
  274. package/dist/components/layout/Board/board-context.js +1 -1
  275. package/dist/components/layout/Board/board-store.js +1 -1
  276. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  277. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  278. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  279. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  280. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  281. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  282. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  283. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  284. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  285. package/dist/components/layout/Board/index.js +1 -1
  286. package/dist/components/layout/Board/responsive-utils.js +1 -1
  287. package/dist/components/layout/Board/use-board-layout.js +1 -1
  288. package/dist/components/layout/Board/use-board-registry.js +1 -1
  289. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  290. package/dist/components/layout/Board/use-board-selection.js +1 -1
  291. package/dist/components/layout/Flex.js +1 -1
  292. package/dist/components/layout/Flow.js +1 -1
  293. package/dist/components/layout/Grid.js +1 -1
  294. package/dist/components/layout/Panel.js +129 -48
  295. package/dist/components/layout/Panel.js.map +1 -1
  296. package/dist/components/layout/Prefix.js +1 -1
  297. package/dist/components/layout/ResizablePanel.js +1 -1
  298. package/dist/components/layout/Space.js +1 -1
  299. package/dist/components/layout/Suffix.js +1 -1
  300. package/dist/components/navigation/Pagination/Pagination.js +227 -347
  301. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  302. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  303. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  304. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  305. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  306. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  307. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  308. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  309. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  310. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  311. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  312. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  313. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  314. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  315. package/dist/components/navigation/Tabs/styled.js +1 -1
  316. package/dist/components/navigation/Tabs/types.js +1 -1
  317. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  318. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  319. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  320. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  321. package/dist/components/other/Calendar/Calendar.js +1 -1
  322. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  323. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  324. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  325. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  326. package/dist/components/other/Calendar/CalendarPanel.js +497 -515
  327. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  328. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  329. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  330. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  331. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  332. package/dist/components/other/Calendar/styled.js +1 -1
  333. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  334. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  335. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  336. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  337. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  338. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  339. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  340. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  341. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  342. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  343. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  344. package/dist/components/overlays/Dialog/context.js +1 -1
  345. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  346. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  347. package/dist/components/overlays/Modal/Modal.js +1 -1
  348. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  349. package/dist/components/overlays/Modal/Overlay.js +1 -1
  350. package/dist/components/overlays/Modal/Popover.js +1 -1
  351. package/dist/components/overlays/Modal/Tray.js +1 -1
  352. package/dist/components/overlays/Modal/Underlay.js +1 -1
  353. package/dist/components/overlays/Notifications/Notification.js +1 -1
  354. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  355. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  356. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  357. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  358. package/dist/components/overlays/Notifications/OverlayContainer.js +266 -161
  359. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  360. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  361. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  362. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  363. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  364. package/dist/components/overlays/Notifications/index.js +1 -1
  365. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  366. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  367. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  368. package/dist/components/overlays/Notifications/use-persistent-notifications.js +18 -9
  369. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  370. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  371. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  372. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  373. package/dist/components/overlays/Toast/index.js +1 -1
  374. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  375. package/dist/components/overlays/Toast/useToast.js +1 -1
  376. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  377. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  378. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  379. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  380. package/dist/components/overlays/Tooltip/context.js +1 -1
  381. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  382. package/dist/components/portal/Portal.js +1 -1
  383. package/dist/components/portal/PortalProvider.js +1 -1
  384. package/dist/components/portal/usePortal.js +1 -1
  385. package/dist/components/shared/DraggableCollection.js +1 -1
  386. package/dist/components/shared/InvalidIcon.js +1 -1
  387. package/dist/components/shared/ValidIcon.js +1 -1
  388. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  389. package/dist/components/status/Spin/Cube.js +1 -1
  390. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  391. package/dist/components/status/Spin/Spin.js +1 -1
  392. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  393. package/dist/data/item-themes.js +1 -1
  394. package/dist/data/themes.js +1 -1
  395. package/dist/eslint-plugin/defaults.generated.js +1 -1
  396. package/dist/eslint-plugin/index.js +1 -1
  397. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  398. package/dist/i18n/I18nProvider.js +1 -1
  399. package/dist/i18n/createFormatter.js +1 -1
  400. package/dist/i18n/index.js +1 -1
  401. package/dist/i18n/instance.js +1 -1
  402. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  403. package/dist/i18n/locales/en-US/uikit.js +1 -1
  404. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  405. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  406. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  407. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  408. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  409. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  410. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  411. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  412. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  413. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  414. package/dist/i18n/locales.js +1 -1
  415. package/dist/i18n/useFormatter.js +1 -1
  416. package/dist/i18n/useFormatter.js.map +1 -1
  417. package/dist/i18n/useI18n.js +1 -1
  418. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  419. package/dist/icons/AdjustmentsIcon.js +1 -1
  420. package/dist/icons/AiIcon.js +1 -1
  421. package/dist/icons/AreaChartIcon.js +1 -1
  422. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  423. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  424. package/dist/icons/BackwardIcon.js +1 -1
  425. package/dist/icons/BarChartIcon.js +1 -1
  426. package/dist/icons/BellFilledIcon.js +1 -1
  427. package/dist/icons/BellIcon.js +1 -1
  428. package/dist/icons/BooleanIcon.js +1 -1
  429. package/dist/icons/CalendarEditIcon.js +1 -1
  430. package/dist/icons/CalendarIcon.js +1 -1
  431. package/dist/icons/CaretDownIcon.js +1 -1
  432. package/dist/icons/CaretUpIcon.js +1 -1
  433. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  434. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  435. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  436. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  437. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  438. package/dist/icons/ChartBarLineIcon.js +1 -1
  439. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  440. package/dist/icons/ChartBarStackedIcon.js +1 -1
  441. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  442. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  443. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  444. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  445. package/dist/icons/ChartBubbleIcon.js +1 -1
  446. package/dist/icons/ChartDonut2Icon.js +1 -1
  447. package/dist/icons/ChartFunnelIcon.js +1 -1
  448. package/dist/icons/ChartHeatmapIcon.js +1 -1
  449. package/dist/icons/ChartKPIIcon.js +1 -1
  450. package/dist/icons/ChartPie2Icon.js +1 -1
  451. package/dist/icons/ChartScatterIcon.js +1 -1
  452. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  453. package/dist/icons/CheckCircleIcon.js +1 -1
  454. package/dist/icons/CheckIcon.js +1 -1
  455. package/dist/icons/CircleFilledIcon.js +1 -1
  456. package/dist/icons/ClearIcon.js +1 -1
  457. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  458. package/dist/icons/CloseCircleIcon.js +1 -1
  459. package/dist/icons/CloseIcon.js +1 -1
  460. package/dist/icons/CodeIcon.js +1 -1
  461. package/dist/icons/ColumnTotalIcon.js +1 -1
  462. package/dist/icons/CopyIcon.js +1 -1
  463. package/dist/icons/CountIcon.js +1 -1
  464. package/dist/icons/CubeIcon.js +1 -1
  465. package/dist/icons/CubePauseIcon.js +1 -1
  466. package/dist/icons/CubePlayIcon.js +1 -1
  467. package/dist/icons/CurrencyDollarIcon.js +1 -1
  468. package/dist/icons/DangerIcon.js +1 -1
  469. package/dist/icons/DashboardIcon.js +1 -1
  470. package/dist/icons/DatabaseIcon.js +1 -1
  471. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  472. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  473. package/dist/icons/DirectionIcon.js +1 -1
  474. package/dist/icons/DonutIcon.js +1 -1
  475. package/dist/icons/DownIcon.js +1 -1
  476. package/dist/icons/EditIcon.js +1 -1
  477. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  478. package/dist/icons/ExclamationCircleIcon.js +1 -1
  479. package/dist/icons/ExclamationIcon.js +1 -1
  480. package/dist/icons/EyeIcon.js +1 -1
  481. package/dist/icons/EyeInvisibleIcon.js +1 -1
  482. package/dist/icons/FilterIcon.js +1 -1
  483. package/dist/icons/FolderFilledIcon.js +1 -1
  484. package/dist/icons/FolderIcon.js +1 -1
  485. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  486. package/dist/icons/FolderOpenIcon.js +1 -1
  487. package/dist/icons/ForwardIcon.js +1 -1
  488. package/dist/icons/GripVerticalIcon.js +1 -1
  489. package/dist/icons/HierarchyIcon.js +1 -1
  490. package/dist/icons/HierarchyOpenIcon.js +1 -1
  491. package/dist/icons/Icon.js +1 -1
  492. package/dist/icons/InfoCircleIcon.js +1 -1
  493. package/dist/icons/InfoIcon.js +1 -1
  494. package/dist/icons/KeyIcon.js +1 -1
  495. package/dist/icons/LeftIcon.js +1 -1
  496. package/dist/icons/LineChartIcon.js +1 -1
  497. package/dist/icons/LoadingIcon.js +1 -1
  498. package/dist/icons/LockFilledIcon.js +1 -1
  499. package/dist/icons/LockIcon.js +1 -1
  500. package/dist/icons/MoreIcon.js +1 -1
  501. package/dist/icons/NotAllowedIcon.js +1 -1
  502. package/dist/icons/Number123Icon.js +1 -1
  503. package/dist/icons/NumberIcon.js +1 -1
  504. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  505. package/dist/icons/PauseCircleIcon.js +1 -1
  506. package/dist/icons/PauseIcon.js +1 -1
  507. package/dist/icons/PercentageIcon.js +1 -1
  508. package/dist/icons/PieChartIcon.js +1 -1
  509. package/dist/icons/PipetteIcon.js +1 -1
  510. package/dist/icons/PlayCircleIcon.js +1 -1
  511. package/dist/icons/PlayIcon.js +1 -1
  512. package/dist/icons/PlusIcon.js +1 -1
  513. package/dist/icons/ProgressBarIcon.js +1 -1
  514. package/dist/icons/ReloadIcon.js +1 -1
  515. package/dist/icons/ReportIcon.js +1 -1
  516. package/dist/icons/ReturnIcon.js +1 -1
  517. package/dist/icons/RightIcon.js +1 -1
  518. package/dist/icons/RowTotalsIcon.js +1 -1
  519. package/dist/icons/SchemeIcon.js +1 -1
  520. package/dist/icons/SearchIcon.js +1 -1
  521. package/dist/icons/SemanticQueryIcon.js +1 -1
  522. package/dist/icons/SettingsIcon.js +1 -1
  523. package/dist/icons/ShieldFilledIcon.js +1 -1
  524. package/dist/icons/ShieldIcon.js +1 -1
  525. package/dist/icons/SlashIcon.js +1 -1
  526. package/dist/icons/SparklesIcon.js +1 -1
  527. package/dist/icons/SqlIcon.js +1 -1
  528. package/dist/icons/StatsIcon.js +1 -1
  529. package/dist/icons/StopIcon.js +1 -1
  530. package/dist/icons/StringIcon.js +1 -1
  531. package/dist/icons/SubtotalsIcon.js +1 -1
  532. package/dist/icons/SwitchIcon.js +1 -1
  533. package/dist/icons/TableIcon.js +1 -1
  534. package/dist/icons/ThumbsDownIcon.js +1 -1
  535. package/dist/icons/ThumbsUpIcon.js +1 -1
  536. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  537. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  538. package/dist/icons/ThunderboltIcon.js +1 -1
  539. package/dist/icons/TimeIcon.js +1 -1
  540. package/dist/icons/TrashIcon.js +1 -1
  541. package/dist/icons/UnlockIcon.js +1 -1
  542. package/dist/icons/UpIcon.js +1 -1
  543. package/dist/icons/UserGroupIcon.js +1 -1
  544. package/dist/icons/UserIcon.js +1 -1
  545. package/dist/icons/UserLockIcon.js +1 -1
  546. package/dist/icons/ViewIcon.js +1 -1
  547. package/dist/icons/WarningFilledIcon.js +1 -1
  548. package/dist/icons/WarningIcon.js +1 -1
  549. package/dist/icons/wrap-icon.js +1 -1
  550. package/dist/index.js +1 -1
  551. package/dist/probe/canonicalize.js +1 -1
  552. package/dist/probe/css.js +1 -1
  553. package/dist/probe/index.js +1 -1
  554. package/dist/provider.js +1 -1
  555. package/dist/providers/TrackingProvider.js +1 -1
  556. package/dist/providers/navigationAdapter.default.js +1 -1
  557. package/dist/tokens/all-tokens.js +1 -1
  558. package/dist/tokens/base.js +1 -1
  559. package/dist/tokens/color-seed.js +1 -1
  560. package/dist/tokens/color-theme.js +1 -1
  561. package/dist/tokens/colors.js +1 -1
  562. package/dist/tokens/layout.js +1 -1
  563. package/dist/tokens/lazy-styles.js +1 -1
  564. package/dist/tokens/legacy-color.js +1 -1
  565. package/dist/tokens/palette-config.js +1 -1
  566. package/dist/tokens/palette.js +1 -1
  567. package/dist/tokens/resolve.js +1 -1
  568. package/dist/tokens/shadows.js +1 -1
  569. package/dist/tokens/sizes.js +1 -1
  570. package/dist/tokens/spacing.js +1 -1
  571. package/dist/tokens/typography.js +1 -1
  572. package/dist/utils/ResizeSensor.js +1 -1
  573. package/dist/utils/colors.js +1 -1
  574. package/dist/utils/dotize.js +1 -1
  575. package/dist/utils/is-dev-env.js +1 -1
  576. package/dist/utils/modules.js +1 -1
  577. package/dist/utils/promise.js +1 -1
  578. package/dist/utils/raf.js +1 -1
  579. package/dist/utils/random.js +1 -1
  580. package/dist/utils/range.js +1 -1
  581. package/dist/utils/react/RenderCache.js +1 -1
  582. package/dist/utils/react/Slots.js +1 -1
  583. package/dist/utils/react/chain.js +1 -1
  584. package/dist/utils/react/disabledProps.js +1 -1
  585. package/dist/utils/react/escapePropagation.js +1 -1
  586. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  587. package/dist/utils/react/index.js +1 -1
  588. package/dist/utils/react/interactions.js +1 -1
  589. package/dist/utils/react/isTextOnly.js +1 -1
  590. package/dist/utils/react/mapProps.js +1 -1
  591. package/dist/utils/react/mergeProps.js +1 -1
  592. package/dist/utils/react/nullableValue.js +1 -1
  593. package/dist/utils/react/programmaticFocus.js +1 -1
  594. package/dist/utils/react/resolveIcon.js +1 -1
  595. package/dist/utils/react/sharedStore.js +1 -1
  596. package/dist/utils/react/useBufferedValue.js +1 -1
  597. package/dist/utils/react/useCombinedRefs.js +1 -1
  598. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  599. package/dist/utils/react/useEventBus.js +1 -1
  600. package/dist/utils/react/useId.js +1 -1
  601. package/dist/utils/react/useIsDarwin.js +1 -1
  602. package/dist/utils/react/useKeySymbols.js +1 -1
  603. package/dist/utils/react/useKeySymbols.js.map +1 -1
  604. package/dist/utils/react/useLayoutEffect.js +1 -1
  605. package/dist/utils/react/useLocalStorage.js +1 -1
  606. package/dist/utils/react/useMergeStyles.js +1 -1
  607. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  608. package/dist/utils/react/usePopoverSync.js +1 -1
  609. package/dist/utils/react/usePopoverSync.js.map +1 -1
  610. package/dist/utils/react/useQaProps.js +1 -1
  611. package/dist/utils/react/useScheme.js +1 -1
  612. package/dist/utils/react/useViewportSize.js +1 -1
  613. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  614. package/dist/utils/selection.js +1 -1
  615. package/dist/utils/styles.js +1 -1
  616. package/dist/utils/tree.js +1 -1
  617. package/dist/utils/warnings.js +1 -1
  618. package/dist/version.js +2 -2
  619. package/docs/CreateComponent.md +3 -1
  620. package/package.json +2 -2
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.185.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1439](https://github.com/cube-js/cube-ui-kit/pull/1439) [`5f65c6a2`](https://github.com/cube-js/cube-ui-kit/commit/5f65c6a2ffda8ac5e60e114ccb06154478843045) Thanks [@tenphi](https://github.com/tenphi)! - Switching between keyboard and pointer input no longer re-renders every button, checkbox, switch, select and radio on the page. Their focus state now listens for the input modality only while the element is focused, so a click after a Tab or Escape press re-renders one element instead of all of them.
8
+
3
9
  ## 0.185.2
4
10
 
5
11
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { deprecationWarning } from "../../utils/warnings.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import React, { useEffect } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useSyncRef } from "./use-sync-ref.js";
3
3
  import { useCallback } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
 
4
4
  //#region src/_internal/hooks/use-is-first-render.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../utils/react/useLayoutEffect.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/_internal/hooks/use-timer/timer.ts
3
3
  var Timer = class {
4
4
  callback;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useEvent } from "../use-event.js";
3
3
  import { Timer } from "./timer.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useEvent } from "./use-event.js";
3
3
  import { warn } from "../../utils/warnings.js";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { ItemAction } from "./actions/ItemAction/ItemAction.js";
3
3
  import { ItemBadge } from "./content/ItemBadge/ItemBadge.js";
4
4
  import { Item } from "react-stately";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { usePaletteValue } from "../tokens/palette-config.js";
3
3
  import { getTokens } from "../tokens/all-tokens.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -267,26 +267,28 @@ function GlobalStyles(props) {
267
267
  const $ = c(8);
268
268
  const { bodyStyles, font, monospaceFont } = props;
269
269
  const tokens = usePaletteValue(getTokens);
270
- let styles;
270
+ let t0;
271
271
  if ($[0] !== bodyStyles || $[1] !== tokens) {
272
- styles = { ...tokens };
273
- Object.assign(styles, BODY_STYLES);
274
- if (bodyStyles) Object.assign(styles, bodyStyles);
272
+ t0 = {
273
+ ...tokens,
274
+ ...BODY_STYLES,
275
+ ...bodyStyles
276
+ };
275
277
  $[0] = bodyStyles;
276
278
  $[1] = tokens;
277
- $[2] = styles;
278
- } else styles = $[2];
279
- const bodyTokenStyles = styles;
280
- let t0;
281
- if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
282
- t0 = { id: "cube-ui-kit-tokens" };
283
- $[3] = t0;
284
- } else t0 = $[3];
285
- useGlobalStyles("body", bodyTokenStyles, t0);
279
+ $[2] = t0;
280
+ } else t0 = $[2];
281
+ const bodyTokenStyles = t0;
286
282
  let t1;
283
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
284
+ t1 = { id: "cube-ui-kit-tokens" };
285
+ $[3] = t1;
286
+ } else t1 = $[3];
287
+ useGlobalStyles("body", bodyTokenStyles, t1);
287
288
  let t2;
289
+ let t3;
288
290
  if ($[4] !== font || $[5] !== monospaceFont) {
289
- t1 = () => {
291
+ t2 = () => {
290
292
  return `
291
293
  html {
292
294
  overscroll-behavior-y: none;
@@ -295,16 +297,16 @@ function GlobalStyles(props) {
295
297
  }
296
298
  ${STATIC_CSS}`;
297
299
  };
298
- t2 = [font, monospaceFont];
300
+ t3 = [font, monospaceFont];
299
301
  $[4] = font;
300
302
  $[5] = monospaceFont;
301
- $[6] = t1;
302
- $[7] = t2;
303
+ $[6] = t2;
304
+ $[7] = t3;
303
305
  } else {
304
- t1 = $[6];
305
- t2 = $[7];
306
+ t2 = $[6];
307
+ t3 = $[7];
306
308
  }
307
- useRawCSS(t1, t2);
309
+ useRawCSS(t2, t3);
308
310
  return null;
309
311
  }
310
312
 
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","useMemo","getTokens","usePaletteValue","Styles","GlobalStylesProps","bodyStyles","key","fonts","fontDisplay","publicUrl","font","monospaceFont","applyLegacyTokens","BODY_STYLES","overscrollBehaviorY","fill","fontFamily","margin","padding","color","preset","letterSpacing","STATIC_CSS","GlobalStyles","props","$","_c","tokens","styles","Object","assign","bodyTokenStyles","t0","Symbol","for","id","t1","t2","fontValue","monospaceFontValue"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\nimport { useMemo } from 'react';\n\nimport { getTokens } from '../tokens';\nimport { usePaletteValue } from '../tokens/palette-config';\n\nimport type { Styles } from '@tenphi/tasty';\n\ninterface GlobalStylesProps {\n bodyStyles?: { [key: string]: string };\n fonts?: boolean;\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n publicUrl?: string;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via useGlobalStyles */\n applyLegacyTokens?: boolean;\n}\n\n/**\n * Body styles applied via useGlobalStyles.\n *\n * `fill` and `color` use scheme-aware Glaze tokens so the whole page flips\n * automatically when `<html data-scheme=\"dark\">` (or `prefers-color-scheme: dark`)\n * is active — see `src/tokens/palette.ts` and `src/components/Root.tsx`.\n */\nconst BODY_STYLES: Styles = {\n overscrollBehaviorY: 'none',\n fill: '#surface',\n fontFamily: 'var(--font-sans)',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n margin: 0,\n padding: 0,\n color: '#surface-text-soft',\n preset: 't3',\n letterSpacing: '0.02em',\n};\n\n// Static CSS that doesn't depend on props\nconst STATIC_CSS = `\n @font-face {\n font-family: text-security-disc;\n src: url(data:font/woff2;base64,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) format('woff2');\n }\n\n kbd {\n font-family: var(--c2-font-family);\n font-weight: var(--c2-font-weight);\n font-size: var(--c2-font-size);\n border: var(--border-width) solid var(--dark-04-color);\n background-color: var(--surface-color);\n color: var(--dark-color);\n border-radius: var(--radius);\n padding: 0 var(--outline-width);\n }\n\n :not([data-qa$=\"Icon\"]) > .tabler-icon {\n font-size: var(--icon-size);\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-height: 1em;\n stroke-width: var(--stroke-width);\n }\n\n .cube-animation-spin {\n animation: cube-animation-spin 1s linear infinite;\n }\n\n @keyframes cube-animation-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n b, strong {\n font-weight: var(--bold-font-weight, 700);\n }\n\n [type=reset], [type=submit], button, html [type=button] {\n -webkit-appearance: none;\n }\n\n code {\n font-family: var(--font-mono);\n }\n\n /*\n * Prism syntax highlighting.\n *\n * All token colors come from the scheme-aware Glaze \\`code-*\\` palette\n * (defined in src/tokens/palette.ts). Each \\`code-*\\` token has \\`mode: 'auto'\\`\n * with a numeric contrast floor of 4.5 against \\`#surface\\` so every token\n * reads at WCAG AA in light AND dark schemes (AAA in high-contrast).\n * Diff insertion / deletion re-use the adaptive \\`success-*\\` and \\`danger-*\\`\n * ramps for both the line bg and the token color.\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n color: var(--surface-text-color);\n background: none;\n font-family: var(--s3-font-family, var(--font-mono));\n text-align: left;\n font-weight: var(--s3-font-weight, 400);\n font-size: var(--s3-font-size, 14px);\n line-height: var(--s3-line-height, 20px);\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n border-radius: 6px;\n border: none;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n @media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n overflow: auto;\n }\n\n :not(pre) > code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background: transparent;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n border-radius: .3em;\n white-space: normal;\n }\n\n /* Diff (re-uses success/danger ramps; both bg and text adapt to scheme) */\n .token.inserted-sign {\n background-color: var(--success-bg-color);\n color: var(--success-text-color);\n }\n\n .token.inserted {\n color: var(--success-text-color);\n }\n\n .token.deleted-sign {\n background-color: var(--danger-bg-color);\n color: var(--danger-text-color);\n }\n\n .token.deleted {\n color: var(--danger-text-color);\n }\n\n /* Comments — subdued gray-ish, AA floor */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-comment-color);\n }\n\n /* Operators / punctuation — subdued purple, AA floor */\n .token.operator,\n .token.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .namespace {\n opacity: .7;\n }\n\n /* Keywords / language constructs — violet */\n .token.boolean,\n .token.constant,\n .token.keyword,\n .token.atrule {\n color: var(--code-keyword-color);\n font-weight: 500;\n }\n\n /* Numbers / numeric entities — orange */\n .token.entity,\n .token.number {\n color: var(--code-number-color);\n }\n\n /* Strings / character literals / URLs — green */\n .token.string,\n .token.char,\n .token.attr-value,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-string-color);\n }\n\n /* Names: functions, class names, regex, variables — pink/coral */\n .token.function,\n .token.class-name,\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-function-color);\n }\n\n /* HTML/XML tag names — same hue as keywords (see Colors / CodeSyntax) */\n .token.tag {\n color: var(--code-keyword-color);\n }\n\n /* Attributes / properties / selectors / built-ins — cyan */\n .token.attr-name,\n .token.property,\n .token.symbol,\n .token.key,\n .token.builtin,\n .token.selector {\n color: var(--code-attribute-color);\n }\n\n /*\n * prism-react-renderer flattens nested markup tokens and prefixes parent\n * types onto each leaf (e.g. \\`token tag attr-value\\`). Re-assert leaf\n * colors so the bare \\`.token.tag\\` rule does not wash the whole tag.\n */\n .token.tag.attr-name {\n color: var(--code-attribute-color);\n }\n\n .token.tag.attr-value {\n color: var(--code-string-color);\n }\n\n .token.tag.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`;\n\nexport function GlobalStyles(props: GlobalStylesProps) {\n const { bodyStyles, font, monospaceFont } = props;\n\n // Re-resolve the tokens whenever the palette is re-seeded at runtime (see\n // `src/tokens/palette-config.ts`). Nothing else has to re-render: every color\n // in the kit compiles to `var(--<name>-color)`, so replacing this one rule\n // recolors the whole UI. `getTokens()` returns a new map only when the palette\n // changes, and taking it as the store value makes it the memo's dependency —\n // a version listed in the deps but never read is dropped by React Compiler.\n const tokens = usePaletteValue(getTokens);\n\n // Merge token styles with body styles.\n const bodyTokenStyles = useMemo((): Styles => {\n const styles: Styles = { ...tokens };\n\n // Add base body styles\n Object.assign(styles, BODY_STYLES);\n\n // Override with custom body styles if provided\n // Keys are passed through as-is (tasty handles both camelCase and kebab-case)\n if (bodyStyles) {\n Object.assign(styles, bodyStyles);\n }\n\n return styles;\n }, [tokens, bodyStyles]);\n\n // Apply tokens and body styles via useGlobalStyles.\n //\n // Replacement does not depend on the `id`: tasty keys its injection slot on\n // `id ?? selector`, so `'body'` on its own already disposes the previous block\n // before writing the new one — which is what removes stale `@hc` rules when the\n // palette is re-seeded, rather than shadowing them. The `id` buys two other\n // things. It gives the token block its own slot, so a host app calling\n // `useGlobalStyles('body', …)` for its own body styles cannot evict ours (and\n // vice versa) — they would otherwise share the `'body'` slot and dispose each\n // other on every change. And under SSR it makes the collector key stable and\n // last-write-wins, instead of content-hashed and first-write-wins.\n useGlobalStyles('body', bodyTokenStyles, { id: 'cube-ui-kit-tokens' });\n\n // Apply static CSS and font definitions via useRawCSS\n useRawCSS(() => {\n const fontValue = font ? `${font}, ` : '';\n const monospaceFontValue = monospaceFont ? `${monospaceFont}, ` : '';\n\n return `\n html {\n overscroll-behavior-y: none;\n --font-sans: ${fontValue}system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n --font-mono: ${monospaceFontValue}ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n }\n${STATIC_CSS}`;\n }, [font, monospaceFont]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;AA0BA,MAAMe,cAAsB;CAC1BC,qBAAqB;CACrBC,MAAM;CACNC,YAAY;CACZ,0BAA0B;CAC1B,2BAA2B;CAC3BC,QAAQ;CACRC,SAAS;CACTC,OAAO;CACPC,QAAQ;CACRC,eAAe;CAChB;AAGD,MAAMC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgPnB,SAAOC,aAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAArB,YAAAK,MAAAC,kBAA4Ca;CAQ5C,MAAAG,SAAezB,gBAAgBD,UAAU;CAAC,IAAA2B;AAAA,KAAAH,EAAA,OAAApB,cAAAoB,EAAA,OAAAE,QAAA;AAIxCC,WAAuB,EAAA,GAAKD,QAAQ;AAGpCE,SAAMC,OAAQF,QAAQf,YAAY;AAIlC,MAAIR,WACFwB,QAAMC,OAAQF,QAAQvB,WAAW;AAClCoB,IAAA,KAAApB;AAAAoB,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,UAAAH,EAAA;CAVH,MAAAM,kBAYEH;CACuB,IAAAI;AAAA,KAAAP,EAAA,OAAAQ,OAAAC,IAAA,4BAAA,EAAA;AAagBF,OAAA,EAAAG,IAAM,sBAAsB;AAAAV,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAArE3B,iBAAgB,QAAQiC,iBAAiBC,GAA6B;CAAA,IAAAI;CAAA,IAAAC;AAAA,KAAAZ,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;AAG5DyB,aAAA;AAE6D,UAE9D;;;mBAHW1B,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;;AACGe,OAAA,CAAC3B,MAAMC,cAAc;AAAAc,IAAA,KAAAf;AAAAe,IAAA,KAAAd;AAAAc,IAAA,KAAAW;AAAAX,IAAA,KAAAY;QAAA;AAAAD,OAAAX,EAAA;AAAAY,OAAAZ,EAAA;;AAXxB1B,WAAUqC,IAWPC,GAAsB;AAAA,QAElB"}
1
+ {"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","getTokens","usePaletteValue","Styles","GlobalStylesProps","bodyStyles","key","fonts","fontDisplay","publicUrl","font","monospaceFont","applyLegacyTokens","BODY_STYLES","overscrollBehaviorY","fill","fontFamily","margin","padding","color","preset","letterSpacing","STATIC_CSS","GlobalStyles","props","$","_c","tokens","t0","bodyTokenStyles","t1","Symbol","for","id","t2","t3","fontValue","monospaceFontValue"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\n\nimport { getTokens } from '../tokens';\nimport { usePaletteValue } from '../tokens/palette-config';\n\nimport type { Styles } from '@tenphi/tasty';\n\ninterface GlobalStylesProps {\n bodyStyles?: { [key: string]: string };\n fonts?: boolean;\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n publicUrl?: string;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via useGlobalStyles */\n applyLegacyTokens?: boolean;\n}\n\n/**\n * Body styles applied via useGlobalStyles.\n *\n * `fill` and `color` use scheme-aware Glaze tokens so the whole page flips\n * automatically when `<html data-scheme=\"dark\">` (or `prefers-color-scheme: dark`)\n * is active — see `src/tokens/palette.ts` and `src/components/Root.tsx`.\n */\nconst BODY_STYLES: Styles = {\n overscrollBehaviorY: 'none',\n fill: '#surface',\n fontFamily: 'var(--font-sans)',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n margin: 0,\n padding: 0,\n color: '#surface-text-soft',\n preset: 't3',\n letterSpacing: '0.02em',\n};\n\n// Static CSS that doesn't depend on props\nconst STATIC_CSS = `\n @font-face {\n font-family: text-security-disc;\n src: url(data:font/woff2;base64,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) format('woff2');\n }\n\n kbd {\n font-family: var(--c2-font-family);\n font-weight: var(--c2-font-weight);\n font-size: var(--c2-font-size);\n border: var(--border-width) solid var(--dark-04-color);\n background-color: var(--surface-color);\n color: var(--dark-color);\n border-radius: var(--radius);\n padding: 0 var(--outline-width);\n }\n\n :not([data-qa$=\"Icon\"]) > .tabler-icon {\n font-size: var(--icon-size);\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-height: 1em;\n stroke-width: var(--stroke-width);\n }\n\n .cube-animation-spin {\n animation: cube-animation-spin 1s linear infinite;\n }\n\n @keyframes cube-animation-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n b, strong {\n font-weight: var(--bold-font-weight, 700);\n }\n\n [type=reset], [type=submit], button, html [type=button] {\n -webkit-appearance: none;\n }\n\n code {\n font-family: var(--font-mono);\n }\n\n /*\n * Prism syntax highlighting.\n *\n * All token colors come from the scheme-aware Glaze \\`code-*\\` palette\n * (defined in src/tokens/palette.ts). Each \\`code-*\\` token has \\`mode: 'auto'\\`\n * with a numeric contrast floor of 4.5 against \\`#surface\\` so every token\n * reads at WCAG AA in light AND dark schemes (AAA in high-contrast).\n * Diff insertion / deletion re-use the adaptive \\`success-*\\` and \\`danger-*\\`\n * ramps for both the line bg and the token color.\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n color: var(--surface-text-color);\n background: none;\n font-family: var(--s3-font-family, var(--font-mono));\n text-align: left;\n font-weight: var(--s3-font-weight, 400);\n font-size: var(--s3-font-size, 14px);\n line-height: var(--s3-line-height, 20px);\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n border-radius: 6px;\n border: none;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n @media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n overflow: auto;\n }\n\n :not(pre) > code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background: transparent;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n border-radius: .3em;\n white-space: normal;\n }\n\n /* Diff (re-uses success/danger ramps; both bg and text adapt to scheme) */\n .token.inserted-sign {\n background-color: var(--success-bg-color);\n color: var(--success-text-color);\n }\n\n .token.inserted {\n color: var(--success-text-color);\n }\n\n .token.deleted-sign {\n background-color: var(--danger-bg-color);\n color: var(--danger-text-color);\n }\n\n .token.deleted {\n color: var(--danger-text-color);\n }\n\n /* Comments — subdued gray-ish, AA floor */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-comment-color);\n }\n\n /* Operators / punctuation — subdued purple, AA floor */\n .token.operator,\n .token.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .namespace {\n opacity: .7;\n }\n\n /* Keywords / language constructs — violet */\n .token.boolean,\n .token.constant,\n .token.keyword,\n .token.atrule {\n color: var(--code-keyword-color);\n font-weight: 500;\n }\n\n /* Numbers / numeric entities — orange */\n .token.entity,\n .token.number {\n color: var(--code-number-color);\n }\n\n /* Strings / character literals / URLs — green */\n .token.string,\n .token.char,\n .token.attr-value,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-string-color);\n }\n\n /* Names: functions, class names, regex, variables — pink/coral */\n .token.function,\n .token.class-name,\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-function-color);\n }\n\n /* HTML/XML tag names — same hue as keywords (see Colors / CodeSyntax) */\n .token.tag {\n color: var(--code-keyword-color);\n }\n\n /* Attributes / properties / selectors / built-ins — cyan */\n .token.attr-name,\n .token.property,\n .token.symbol,\n .token.key,\n .token.builtin,\n .token.selector {\n color: var(--code-attribute-color);\n }\n\n /*\n * prism-react-renderer flattens nested markup tokens and prefixes parent\n * types onto each leaf (e.g. \\`token tag attr-value\\`). Re-assert leaf\n * colors so the bare \\`.token.tag\\` rule does not wash the whole tag.\n */\n .token.tag.attr-name {\n color: var(--code-attribute-color);\n }\n\n .token.tag.attr-value {\n color: var(--code-string-color);\n }\n\n .token.tag.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`;\n\nexport function GlobalStyles(props: GlobalStylesProps) {\n const { bodyStyles, font, monospaceFont } = props;\n\n // Re-resolve the tokens whenever the palette is re-seeded at runtime (see\n // `src/tokens/palette-config.ts`). Nothing else has to re-render: every color\n // in the kit compiles to `var(--<name>-color)`, so replacing this one rule\n // recolors the whole UI. `getTokens()` returns a new map only when the palette\n // changes, and taking it as the store value makes it the memo's dependency —\n // a version listed in the deps but never read is dropped by React Compiler.\n const tokens = usePaletteValue(getTokens);\n\n // Merge token styles with the base body styles, then the custom ones. Keys\n // are passed through as-is (tasty handles both camelCase and kebab-case).\n const bodyTokenStyles: Styles = { ...tokens, ...BODY_STYLES, ...bodyStyles };\n\n // Apply tokens and body styles via useGlobalStyles.\n //\n // Replacement does not depend on the `id`: tasty keys its injection slot on\n // `id ?? selector`, so `'body'` on its own already disposes the previous block\n // before writing the new one — which is what removes stale `@hc` rules when the\n // palette is re-seeded, rather than shadowing them. The `id` buys two other\n // things. It gives the token block its own slot, so a host app calling\n // `useGlobalStyles('body', …)` for its own body styles cannot evict ours (and\n // vice versa) — they would otherwise share the `'body'` slot and dispose each\n // other on every change. And under SSR it makes the collector key stable and\n // last-write-wins, instead of content-hashed and first-write-wins.\n useGlobalStyles('body', bodyTokenStyles, { id: 'cube-ui-kit-tokens' });\n\n // Apply static CSS and font definitions via useRawCSS\n useRawCSS(() => {\n const fontValue = font ? `${font}, ` : '';\n const monospaceFontValue = monospaceFont ? `${monospaceFont}, ` : '';\n\n return `\n html {\n overscroll-behavior-y: none;\n --font-sans: ${fontValue}system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n --font-mono: ${monospaceFontValue}ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n }\n${STATIC_CSS}`;\n }, [font, monospaceFont]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;AAyBA,MAAMc,cAAsB;CAC1BC,qBAAqB;CACrBC,MAAM;CACNC,YAAY;CACZ,0BAA0B;CAC1B,2BAA2B;CAC3BC,QAAQ;CACRC,SAAS;CACTC,OAAO;CACPC,QAAQ;CACRC,eAAe;CAChB;AAGD,MAAMC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgPnB,SAAOC,aAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAArB,YAAAK,MAAAC,kBAA4Ca;CAQ5C,MAAAG,SAAezB,gBAAgBD,UAAU;CAAC,IAAA2B;AAAA,KAAAH,EAAA,OAAApB,cAAAoB,EAAA,OAAAE,QAAA;AAIVC,OAAA;GAAA,GAAKD;GAAM,GAAKd;GAAW,GAAKR;GAAY;AAAAoB,IAAA,KAAApB;AAAAoB,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,MAAAH,EAAA;CAA5E,MAAAI,kBAAgCD;CAA6C,IAAAE;AAAA,KAAAL,EAAA,OAAAM,OAAAC,IAAA,4BAAA,EAAA;AAapCF,OAAA,EAAAG,IAAM,sBAAsB;AAAAR,IAAA,KAAAK;OAAAA,MAAAL,EAAA;AAArE1B,iBAAgB,QAAQ8B,iBAAiBC,GAA6B;CAAA,IAAAI;CAAA,IAAAC;AAAA,KAAAV,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;AAG5DuB,aAAA;AAE6D,UAE9D;;;mBAHWxB,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;;AACGa,OAAA,CAACzB,MAAMC,cAAc;AAAAc,IAAA,KAAAf;AAAAe,IAAA,KAAAd;AAAAc,IAAA,KAAAS;AAAAT,IAAA,KAAAU;QAAA;AAAAD,OAAAT,EAAA;AAAAU,OAAAV,EAAA;;AAXxBzB,WAAUkC,IAWPC,GAAsB;AAAA,QAElB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useCombinedRefs } from "../utils/react/useCombinedRefs.js";
3
3
  import { filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef, useCallback, useEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/HiddenInput.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { AMBIENT_PREDEFINED_STATES } from "../utils/react/useScheme.js";
4
4
  import { EventBusProvider } from "../utils/react/useEventBus.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useAction } from "../use-action.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Item } from "../../content/Item/Item.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","names":["IconAlertTriangle","IconCircleCheck","IconExclamationCircle","IconInfoCircle","IconX","tasty","ReactNode","useMemo","useEvent","useI18n","CubeItemProps","Item","Button","CubeButtonProps","CubeItemActionProps","BannerTheme","BannerProps","Omit","theme","isDismissable","onDismiss","BannerActionProps","BannerLinkProps","DEFAULT_ICONS","Record","danger","warning","note","success","BannerElement","styles","width","Description","textOverflow","whiteSpace","Actions","gap","BannerActionElement","Action","type","preset","BannerLinkElement","size","color","textDecoration","BannerAction","props","$","_c","t0","BannerLink","Banner","t","actions","children","icon","rest","t1","undefined","t2","onDismissEvent","defaultIcon","hasActions","t3","t4","t5","Link"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n danger: <IconExclamationCircle />,\n warning: <IconAlertTriangle />,\n note: <IconInfoCircle />,\n success: <IconCircleCheck />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n },\n },\n});\n\n// `current.outline` — the `current` theme on `Item.Action`, given the outlined\n// shape rather than the borderless default.\n//\n// `current` is the right color source: a banner labels itself `#white` in both\n// schemes (see `BannerLinkElement` and `*_PRIMARY_STYLES`), so the action mixes\n// its chip, border and label from that white — label cr 4.3-5.0 against every\n// banner theme, with the chip a subtle 1.06 off the banner. That is what an\n// action on a saturated surface should be: the banner carries the emphasis, the\n// button just has to be findable.\n//\n// `outline` rather than `Item.Action`'s `clear` default because a banner action\n// is a call to action, and `clear` paints nothing at rest — on a busy banner it\n// reads as body text until hovered. The `#current.08` border is what makes it a\n// button, which is why the old `border: '#clear'` override had to go: it was\n// written when `outline` meant `note.outline` and friends, whose border is the\n// opaque `#note-border` — a pale line built for a `#surface-2` chip on a light\n// page and plainly wrong on a saturated banner. On the `current` theme the\n// border IS the chip, and the 3% fill cannot carry one alone.\n//\n// `type=\"primary\"` is deliberately not used. It would fill with the inherited\n// white and punch `#current-fill` out of it, which defaults to `#surface` —\n// white in light mode, so the label would collapse into its own chip. A banner\n// that wants a filled action has to set `#current-fill` to its own surface\n// color; see `CURRENT_PRIMARY_STYLES` in `item-themes`.\nconst BannerActionElement = tasty(Item.Action, {\n type: 'outline',\n styles: {\n preset: 't3m',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = useMemo(() => DEFAULT_ICONS[theme], [theme]);\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Banner.js","names":["IconAlertTriangle","IconCircleCheck","IconExclamationCircle","IconInfoCircle","IconX","tasty","ReactNode","useEvent","useI18n","CubeItemProps","Item","Button","CubeButtonProps","CubeItemActionProps","BannerTheme","BannerProps","Omit","theme","isDismissable","onDismiss","BannerActionProps","BannerLinkProps","DEFAULT_ICONS","Record","danger","warning","note","success","BannerElement","styles","width","Description","textOverflow","whiteSpace","Actions","gap","BannerActionElement","Action","type","preset","BannerLinkElement","size","color","textDecoration","BannerAction","props","$","_c","t0","BannerLink","Banner","t","actions","children","icon","rest","t1","undefined","t2","onDismissEvent","defaultIcon","hasActions","t3","t4","t5","Link"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n danger: <IconExclamationCircle />,\n warning: <IconAlertTriangle />,\n note: <IconInfoCircle />,\n success: <IconCircleCheck />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n },\n },\n});\n\n// `current.outline` — the `current` theme on `Item.Action`, given the outlined\n// shape rather than the borderless default.\n//\n// `current` is the right color source: a banner labels itself `#white` in both\n// schemes (see `BannerLinkElement` and `*_PRIMARY_STYLES`), so the action mixes\n// its chip, border and label from that white — label cr 4.3-5.0 against every\n// banner theme, with the chip a subtle 1.06 off the banner. That is what an\n// action on a saturated surface should be: the banner carries the emphasis, the\n// button just has to be findable.\n//\n// `outline` rather than `Item.Action`'s `clear` default because a banner action\n// is a call to action, and `clear` paints nothing at rest — on a busy banner it\n// reads as body text until hovered. The `#current.08` border is what makes it a\n// button, which is why the old `border: '#clear'` override had to go: it was\n// written when `outline` meant `note.outline` and friends, whose border is the\n// opaque `#note-border` — a pale line built for a `#surface-2` chip on a light\n// page and plainly wrong on a saturated banner. On the `current` theme the\n// border IS the chip, and the 3% fill cannot carry one alone.\n//\n// `type=\"primary\"` is deliberately not used. It would fill with the inherited\n// white and punch `#current-fill` out of it, which defaults to `#surface` —\n// white in light mode, so the label would collapse into its own chip. A banner\n// that wants a filled action has to set `#current-fill` to its own surface\n// color; see `CURRENT_PRIMARY_STYLES` in `item-themes`.\nconst BannerActionElement = tasty(Item.Action, {\n type: 'outline',\n styles: {\n preset: 't3m',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = DEFAULT_ICONS[theme];\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { getDisabledElementProps } from "../../../utils/react/disabledProps.js";
4
4
  import { mergeProps } from "../../../utils/react/mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useSlotProps } from "../../../utils/react/Slots.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,12 +1,13 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { ButtonSplitContext } from "./context.js";
5
5
  import { Button } from "../Button/Button.js";
6
6
  import { DirectionIcon } from "../../../icons/DirectionIcon.js";
7
7
  import { __Menu } from "../Menu/Menu.js";
8
+ import { c } from "react-compiler-runtime";
8
9
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
9
- import { forwardRef, useCallback, useMemo, useState } from "react";
10
+ import { forwardRef, useState } from "react";
10
11
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
12
 
12
13
  //#region src/components/actions/ButtonSplit/ButtonSplit.tsx
@@ -21,44 +22,123 @@ const ButtonSplitElement = tasty({
21
22
  }
22
23
  });
23
24
  const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
25
+ const $ = c(37);
24
26
  const { actions, actionKey: controlledActionKey, defaultActionKey, onAction, onActionChange, type, theme, size, isDisabled, actionProps, triggerProps, menuProps, styles, children, role, ...rest } = props;
25
27
  const isControlled = controlledActionKey !== void 0;
26
- const [uncontrolledKey, setUncontrolledKey] = useState(() => defaultActionKey ?? actions?.[0]?.key);
28
+ let t0;
29
+ if ($[0] !== actions?.[0]?.key || $[1] !== defaultActionKey) {
30
+ t0 = () => defaultActionKey ?? actions?.[0]?.key;
31
+ $[0] = actions?.[0]?.key;
32
+ $[1] = defaultActionKey;
33
+ $[2] = t0;
34
+ } else t0 = $[2];
35
+ const [uncontrolledKey, setUncontrolledKey] = useState(t0);
27
36
  const currentKey = isControlled ? controlledActionKey : uncontrolledKey;
28
- const currentAction = useMemo(() => actions?.find((a) => a.key === currentKey) ?? actions?.[0], [actions, currentKey]);
29
- const handleActionPress = useCallback(() => {
30
- if (currentKey) onAction?.(currentKey);
31
- }, [currentKey, onAction]);
32
- const handleSelectionChange = useCallback((keys) => {
33
- const newKey = keys[0];
34
- if (newKey) {
35
- if (!isControlled) setUncontrolledKey(newKey);
36
- onActionChange?.(newKey);
37
- }
38
- }, [isControlled, onActionChange]);
39
- const containerStyles = extractStyles(rest, STYLE_PROPS);
40
- const mergedStyles = useMemo(() => ({
41
- ...containerStyles,
37
+ let t1;
38
+ if ($[3] !== actions || $[4] !== currentKey) {
39
+ t1 = actions?.find((a) => a.key === currentKey) ?? actions?.[0];
40
+ $[3] = actions;
41
+ $[4] = currentKey;
42
+ $[5] = t1;
43
+ } else t1 = $[5];
44
+ const currentAction = t1;
45
+ let t2;
46
+ if ($[6] !== currentKey || $[7] !== onAction) {
47
+ t2 = () => {
48
+ if (currentKey) onAction?.(currentKey);
49
+ };
50
+ $[6] = currentKey;
51
+ $[7] = onAction;
52
+ $[8] = t2;
53
+ } else t2 = $[8];
54
+ const handleActionPress = t2;
55
+ let t3;
56
+ if ($[9] !== isControlled || $[10] !== onActionChange) {
57
+ t3 = (keys) => {
58
+ const newKey = keys[0];
59
+ if (newKey) {
60
+ if (!isControlled) setUncontrolledKey(newKey);
61
+ onActionChange?.(newKey);
62
+ }
63
+ };
64
+ $[9] = isControlled;
65
+ $[10] = onActionChange;
66
+ $[11] = t3;
67
+ } else t3 = $[11];
68
+ const handleSelectionChange = t3;
69
+ const mergedStyles = {
70
+ ...extractStyles(rest, STYLE_PROPS),
42
71
  ...styles
43
- }), [containerStyles, styles]);
44
- const contextValue = useMemo(() => ({
45
- currentKey,
46
- onAction,
47
- onActionChange,
48
- type,
49
- theme,
50
- size,
51
- isDisabled
52
- }), [
53
- currentKey,
54
- onAction,
55
- onActionChange,
56
- type,
57
- theme,
58
- size,
59
- isDisabled
60
- ]);
72
+ };
73
+ let t4;
74
+ if ($[12] !== currentKey || $[13] !== isDisabled || $[14] !== onAction || $[15] !== onActionChange || $[16] !== size || $[17] !== theme || $[18] !== type) {
75
+ t4 = {
76
+ currentKey,
77
+ onAction,
78
+ onActionChange,
79
+ type,
80
+ theme,
81
+ size,
82
+ isDisabled
83
+ };
84
+ $[12] = currentKey;
85
+ $[13] = isDisabled;
86
+ $[14] = onAction;
87
+ $[15] = onActionChange;
88
+ $[16] = size;
89
+ $[17] = theme;
90
+ $[18] = type;
91
+ $[19] = t4;
92
+ } else t4 = $[19];
93
+ const contextValue = t4;
61
94
  const isCustomMode = children != null;
95
+ let t5;
96
+ if ($[20] !== actionProps || $[21] !== actions || $[22] !== children || $[23] !== currentAction?.icon || $[24] !== currentAction?.label || $[25] !== currentAction?.tooltip || $[26] !== currentKey || $[27] !== handleActionPress || $[28] !== handleSelectionChange || $[29] !== isCustomMode || $[30] !== isDisabled || $[31] !== menuProps || $[32] !== size || $[33] !== theme || $[34] !== triggerProps || $[35] !== type) {
97
+ t5 = isCustomMode ? children : actions ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
98
+ type,
99
+ theme,
100
+ size,
101
+ isDisabled,
102
+ icon: currentAction?.icon,
103
+ tooltip: currentAction?.tooltip,
104
+ ...mergeProps(actionProps, { onPress: handleActionPress }),
105
+ children: currentAction?.label
106
+ }), /* @__PURE__ */ jsxs(__Menu.Trigger, {
107
+ placement: "bottom end",
108
+ children: [/* @__PURE__ */ jsx(Button, {
109
+ type,
110
+ theme,
111
+ size,
112
+ isDisabled,
113
+ "aria-label": "More options",
114
+ icon: _temp,
115
+ ...triggerProps
116
+ }), /* @__PURE__ */ jsx(__Menu, {
117
+ selectionMode: "single",
118
+ selectedKeys: currentKey ? [currentKey] : [],
119
+ onSelectionChange: handleSelectionChange,
120
+ ...menuProps,
121
+ children: actions.map(_temp2)
122
+ })]
123
+ })] }) : null;
124
+ $[20] = actionProps;
125
+ $[21] = actions;
126
+ $[22] = children;
127
+ $[23] = currentAction?.icon;
128
+ $[24] = currentAction?.label;
129
+ $[25] = currentAction?.tooltip;
130
+ $[26] = currentKey;
131
+ $[27] = handleActionPress;
132
+ $[28] = handleSelectionChange;
133
+ $[29] = isCustomMode;
134
+ $[30] = isDisabled;
135
+ $[31] = menuProps;
136
+ $[32] = size;
137
+ $[33] = theme;
138
+ $[34] = triggerProps;
139
+ $[35] = type;
140
+ $[36] = t5;
141
+ } else t5 = $[36];
62
142
  return /* @__PURE__ */ jsx(ButtonSplitContext.Provider, {
63
143
  value: contextValue,
64
144
  children: /* @__PURE__ */ jsx(ButtonSplitElement, {
@@ -68,41 +148,23 @@ const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
68
148
  styles: mergedStyles,
69
149
  qa: rest.qa,
70
150
  role: role ?? (isCustomMode ? "group" : void 0),
71
- children: isCustomMode ? children : actions ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
72
- type,
73
- theme,
74
- size,
75
- isDisabled,
76
- icon: currentAction?.icon,
77
- tooltip: currentAction?.tooltip,
78
- ...mergeProps(actionProps, { onPress: handleActionPress }),
79
- children: currentAction?.label
80
- }), /* @__PURE__ */ jsxs(__Menu.Trigger, {
81
- placement: "bottom end",
82
- children: [/* @__PURE__ */ jsx(Button, {
83
- type,
84
- theme,
85
- size,
86
- isDisabled,
87
- "aria-label": "More options",
88
- icon: ({ pressed }) => /* @__PURE__ */ jsx(DirectionIcon, { to: pressed ? "up" : "down" }),
89
- ...triggerProps
90
- }), /* @__PURE__ */ jsx(__Menu, {
91
- selectionMode: "single",
92
- selectedKeys: currentKey ? [currentKey] : [],
93
- onSelectionChange: handleSelectionChange,
94
- ...menuProps,
95
- children: actions.map(({ key, label, textValue, ...itemProps }) => /* @__PURE__ */ jsx(__Menu.Item, {
96
- textValue: textValue ?? (typeof label === "string" ? label : key),
97
- ...itemProps,
98
- children: label
99
- }, key))
100
- })]
101
- })] }) : null
151
+ children: t5
102
152
  })
103
153
  });
104
154
  });
105
155
  ButtonSplit.displayName = "ButtonSplit";
156
+ function _temp(t0) {
157
+ const { pressed } = t0;
158
+ return /* @__PURE__ */ jsx(DirectionIcon, { to: pressed ? "up" : "down" });
159
+ }
160
+ function _temp2(t0) {
161
+ const { key, label, textValue, ...itemProps } = t0;
162
+ return /* @__PURE__ */ jsx(__Menu.Item, {
163
+ textValue: textValue ?? (typeof label === "string" ? label : key),
164
+ ...itemProps,
165
+ children: label
166
+ }, key);
167
+ }
106
168
 
107
169
  //#endregion
108
170
  export { ButtonSplit };
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonSplit.js","names":["CONTAINER_STYLES","filterBaseProps","tasty","forwardRef","ReactNode","useCallback","useMemo","useState","DirectionIcon","mergeProps","extractStyles","Button","Menu","ButtonSplitContext","BaseProps","ContainerStyleProps","Styles","CubeCollectionItemProps","CubeButtonProps","CubeMenuProps","ButtonSplitAction","Omit","key","label","CubeButtonSplitProps","actions","actionKey","defaultActionKey","onAction","onActionChange","type","theme","size","isDisabled","actionProps","Partial","triggerProps","menuProps","styles","children","STYLE_PROPS","ButtonSplitElement","as","qa","display","position","verticalAlign","ButtonSplit","HTMLDivElement","props","ref","controlledActionKey","role","rest","isControlled","undefined","uncontrolledKey","setUncontrolledKey","currentKey","currentAction","find","a","handleActionPress","handleSelectionChange","keys","newKey","containerStyles","mergedStyles","contextValue","isCustomMode","eventProps","icon","tooltip","onPress","pressed","map","textValue","itemProps","displayName"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, useMemo, useState } from 'react';\n\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../Button/Button';\nimport { Menu } from '../Menu/Menu';\n\nimport { ButtonSplitContext } from './context';\n\nimport type { BaseProps, ContainerStyleProps, Styles } from '@tenphi/tasty';\nimport type { CubeCollectionItemProps } from '../../CollectionItem';\nimport type { CubeButtonProps } from '../Button/Button';\nimport type { CubeMenuProps } from '../Menu/Menu';\n\nexport interface ButtonSplitAction\n extends Omit<\n CubeCollectionItemProps<object>,\n 'children' | 'onAction' | 'wrapper'\n > {\n key: string;\n label: ReactNode;\n}\n\nexport interface CubeButtonSplitProps extends BaseProps, ContainerStyleProps {\n /** Actions for strict mode. When provided, renders action + trigger buttons automatically. */\n actions?: ButtonSplitAction[];\n /** Currently selected action key (controlled). */\n actionKey?: string;\n /** Initially selected action key (uncontrolled). */\n defaultActionKey?: string;\n /** Called when the action button is pressed. Receives the current action key. */\n onAction?: (key: string) => void;\n /** Called when the selected action changes via the trigger menu. */\n onActionChange?: (key: string) => void;\n\n /** Button type applied to both action and trigger buttons in strict mode. */\n type?: CubeButtonProps['type'];\n /** Button theme applied to both action and trigger buttons in strict mode. */\n theme?: CubeButtonProps['theme'];\n /** Button size applied to both action and trigger buttons in strict mode. */\n size?: CubeButtonProps['size'];\n /** Disables both buttons in strict mode. */\n isDisabled?: boolean;\n\n /** Additional props for the action button in strict mode. */\n actionProps?: Partial<CubeButtonProps>;\n /** Additional props for the trigger button in strict mode. */\n triggerProps?: Partial<CubeButtonProps>;\n /** Additional props for the dropdown menu in strict mode. */\n menuProps?: Partial<CubeMenuProps<object>>;\n\n /** Custom styles for the wrapper element. */\n styles?: Styles;\n\n /** Custom mode: render arbitrary Button children. */\n children?: ReactNode;\n}\n\nconst STYLE_PROPS = CONTAINER_STYLES;\n\nconst ButtonSplitElement = tasty({\n as: 'div',\n qa: 'ButtonSplit',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n verticalAlign: 'bottom',\n },\n});\n\nexport const ButtonSplit = forwardRef<HTMLDivElement, CubeButtonSplitProps>(\n function ButtonSplit(props, ref) {\n const {\n actions,\n actionKey: controlledActionKey,\n defaultActionKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n actionProps,\n triggerProps,\n menuProps,\n styles,\n children,\n role,\n ...rest\n } = props;\n\n const isControlled = controlledActionKey !== undefined;\n const [uncontrolledKey, setUncontrolledKey] = useState(\n () => defaultActionKey ?? actions?.[0]?.key,\n );\n\n const currentKey = isControlled ? controlledActionKey : uncontrolledKey;\n\n const currentAction = useMemo(\n () => actions?.find((a) => a.key === currentKey) ?? actions?.[0],\n [actions, currentKey],\n );\n\n const handleActionPress = useCallback(() => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n }, [currentKey, onAction]);\n\n const handleSelectionChange = useCallback(\n (keys: string[]) => {\n const newKey = keys[0];\n\n if (newKey) {\n if (!isControlled) {\n setUncontrolledKey(newKey);\n }\n\n onActionChange?.(newKey);\n }\n },\n [isControlled, onActionChange],\n );\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...containerStyles,\n ...styles,\n }),\n [containerStyles, styles],\n );\n\n const contextValue = useMemo(\n () => ({\n currentKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n }),\n [currentKey, onAction, onActionChange, type, theme, size, isDisabled],\n );\n\n const isCustomMode = children != null;\n\n return (\n <ButtonSplitContext.Provider value={contextValue}>\n <ButtonSplitElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n data-button-split\n styles={mergedStyles}\n qa={rest.qa}\n // Custom mode renders peer buttons with no visible group label, which\n // is exactly when a caller needs `aria-label` to land on something the\n // AT will announce. `role` comes from `BaseProps`, so a caller that\n // wants something else — including `presentation` to opt out — just\n // passes it. Strict mode keeps its previous shape.\n role={role ?? (isCustomMode ? 'group' : undefined)}\n >\n {isCustomMode ? (\n children\n ) : actions ? (\n <>\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n icon={currentAction?.icon}\n tooltip={currentAction?.tooltip}\n {...mergeProps(actionProps, { onPress: handleActionPress })}\n >\n {currentAction?.label}\n </Button>\n <Menu.Trigger placement=\"bottom end\">\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n aria-label=\"More options\"\n icon={({ pressed }) => (\n <DirectionIcon to={pressed ? 'up' : 'down'} />\n )}\n {...triggerProps}\n />\n <Menu\n selectionMode=\"single\"\n selectedKeys={currentKey ? [currentKey] : []}\n onSelectionChange={handleSelectionChange}\n {...menuProps}\n >\n {actions.map(({ key, label, textValue, ...itemProps }) => (\n <Menu.Item\n key={key}\n textValue={\n textValue ?? (typeof label === 'string' ? label : key)\n }\n {...itemProps}\n >\n {label}\n </Menu.Item>\n ))}\n </Menu>\n </Menu.Trigger>\n </>\n ) : null}\n </ButtonSplitElement>\n </ButtonSplitContext.Provider>\n );\n },\n);\n\nButtonSplit.displayName = 'ButtonSplit';\n"],"mappings":";;;;;;;;;;;;AA4DA,MAAMwC,cAAcxC;AAEpB,MAAMyC,qBAAqBvC,MAAM;CAC/BwC,IAAI;CACJC,IAAI;CACJL,QAAQ;EACNM,SAAS;EACTC,UAAU;EACVC,eAAe;EACjB;CACD,CAAC;AAEF,MAAaC,cAAc5C,WACzB,SAAS4C,YAAYE,OAAOC,KAAK;CAC/B,MAAM,EACJzB,SACAC,WAAWyB,qBACXxB,kBACAC,UACAC,gBACAC,MACAC,OACAC,MACAC,YACAC,aACAE,cACAC,WACAC,QACAC,UACAa,MACA,GAAGC,SACDJ;CAEJ,MAAMK,eAAeH,wBAAwBI;CAC7C,MAAM,CAACC,iBAAiBC,sBAAsBlD,eACtCoB,oBAAoBF,UAAU,IAAIH,IACzC;CAED,MAAMoC,aAAaJ,eAAeH,sBAAsBK;CAExD,MAAMG,gBAAgBrD,cACdmB,SAASmC,MAAMC,MAAMA,EAAEvC,QAAQoC,WAAW,IAAIjC,UAAU,IAC9D,CAACA,SAASiC,WACZ,CAAC;CAED,MAAMI,oBAAoBzD,kBAAkB;AAC1C,MAAIqD,WACF9B,YAAW8B,WAAW;IAEvB,CAACA,YAAY9B,SAAS,CAAC;CAE1B,MAAMmC,wBAAwB1D,aAC3B2D,SAAmB;EAClB,MAAMC,SAASD,KAAK;AAEpB,MAAIC,QAAQ;AACV,OAAI,CAACX,aACHG,oBAAmBQ,OAAO;AAG5BpC,oBAAiBoC,OAAO;;IAG5B,CAACX,cAAczB,eACjB,CAAC;CAED,MAAMqC,kBAAkBxD,cAAc2C,MAAMb,YAAY;CAExD,MAAM2B,eAAe7D,eACZ;EACL,GAAG4D;EACH,GAAG5B;EACJ,GACD,CAAC4B,iBAAiB5B,OACpB,CAAC;CAED,MAAM8B,eAAe9D,eACZ;EACLoD;EACA9B;EACAC;EACAC;EACAC;EACAC;EACAC;EACD,GACD;EAACyB;EAAY9B;EAAUC;EAAgBC;EAAMC;EAAOC;EAAMC;EAC5D,CAAC;CAED,MAAMoC,eAAe9B,YAAY;AAEjC,QACE,oBAAC,mBAAmB;EAAS,OAAO6B;YAClC,oBAAC;GACC,GAAInE,gBAAgBoD,MAAM,EAAEiB,YAAY,MAAM,CAAC;GAC1CpB;GACL;GACA,QAAQiB;GACR,IAAId,KAAKV;GAMT,MAAMS,SAASiB,eAAe,UAAUd;aAEvCc,eACC9B,WACEd,UACF,8CACE,oBAAC;IACOK;IACCC;IACDC;IACMC;IACZ,MAAM0B,eAAeY;IACrB,SAASZ,eAAea;IACxB,GAAI/D,WAAWyB,aAAa,EAAEuC,SAASX,mBAAmB,CAAC;cAE1DH,eAAepC;KACV,EACR,qBAAC,OAAK;IAAQ,WAAU;eACtB,oBAAC;KACOO;KACCC;KACDC;KACMC;KACZ,cAAW;KACX,OAAO,EAAEyC,cACP,oBAAC,iBAAc,IAAIA,UAAU,OAAO,SACrC;KACD,GAAItC;MAAa,EAEnB,oBAAC;KACC,eAAc;KACd,cAAcsB,aAAa,CAACA,WAAW,GAAG,EAAE;KAC5C,mBAAmBK;KACnB,GAAI1B;eAEHZ,QAAQkD,KAAK,EAAErD,KAAKC,OAAOqD,WAAW,GAAGC,gBACxC,oBAAC,OAAK;MAEJ,WACED,cAAc,OAAOrD,UAAU,WAAWA,QAAQD;MAEpD,GAAIuD;gBAEHtD;QANID,IAQR,CAAC;MACE;KACM,IACb,GACD;IACc;GACQ;EAGnC;AAEDyB,YAAY+B,cAAc"}
1
+ {"version":3,"file":"ButtonSplit.js","names":["CONTAINER_STYLES","filterBaseProps","tasty","forwardRef","ReactNode","useMemo","useState","DirectionIcon","mergeProps","extractStyles","Button","Menu","ButtonSplitContext","BaseProps","ContainerStyleProps","Styles","CubeCollectionItemProps","CubeButtonProps","CubeMenuProps","ButtonSplitAction","Omit","key","label","CubeButtonSplitProps","actions","actionKey","defaultActionKey","onAction","onActionChange","type","theme","size","isDisabled","actionProps","Partial","triggerProps","menuProps","styles","children","STYLE_PROPS","ButtonSplitElement","as","qa","display","position","verticalAlign","ButtonSplit","HTMLDivElement","props","ref","$","_c","controlledActionKey","role","rest","isControlled","undefined","t0","uncontrolledKey","setUncontrolledKey","currentKey","t1","find","a","currentAction","t2","handleActionPress","t3","keys","newKey","handleSelectionChange","containerStyles","mergedStyles","t4","contextValue","isCustomMode","t5","icon","tooltip","onPress","_temp","map","_temp2","eventProps","displayName","pressed","textValue","itemProps"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useMemo, useState } from 'react';\n\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../Button/Button';\nimport { Menu } from '../Menu/Menu';\n\nimport { ButtonSplitContext } from './context';\n\nimport type { BaseProps, ContainerStyleProps, Styles } from '@tenphi/tasty';\nimport type { CubeCollectionItemProps } from '../../CollectionItem';\nimport type { CubeButtonProps } from '../Button/Button';\nimport type { CubeMenuProps } from '../Menu/Menu';\n\nexport interface ButtonSplitAction\n extends Omit<\n CubeCollectionItemProps<object>,\n 'children' | 'onAction' | 'wrapper'\n > {\n key: string;\n label: ReactNode;\n}\n\nexport interface CubeButtonSplitProps extends BaseProps, ContainerStyleProps {\n /** Actions for strict mode. When provided, renders action + trigger buttons automatically. */\n actions?: ButtonSplitAction[];\n /** Currently selected action key (controlled). */\n actionKey?: string;\n /** Initially selected action key (uncontrolled). */\n defaultActionKey?: string;\n /** Called when the action button is pressed. Receives the current action key. */\n onAction?: (key: string) => void;\n /** Called when the selected action changes via the trigger menu. */\n onActionChange?: (key: string) => void;\n\n /** Button type applied to both action and trigger buttons in strict mode. */\n type?: CubeButtonProps['type'];\n /** Button theme applied to both action and trigger buttons in strict mode. */\n theme?: CubeButtonProps['theme'];\n /** Button size applied to both action and trigger buttons in strict mode. */\n size?: CubeButtonProps['size'];\n /** Disables both buttons in strict mode. */\n isDisabled?: boolean;\n\n /** Additional props for the action button in strict mode. */\n actionProps?: Partial<CubeButtonProps>;\n /** Additional props for the trigger button in strict mode. */\n triggerProps?: Partial<CubeButtonProps>;\n /** Additional props for the dropdown menu in strict mode. */\n menuProps?: Partial<CubeMenuProps<object>>;\n\n /** Custom styles for the wrapper element. */\n styles?: Styles;\n\n /** Custom mode: render arbitrary Button children. */\n children?: ReactNode;\n}\n\nconst STYLE_PROPS = CONTAINER_STYLES;\n\nconst ButtonSplitElement = tasty({\n as: 'div',\n qa: 'ButtonSplit',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n verticalAlign: 'bottom',\n },\n});\n\nexport const ButtonSplit = forwardRef<HTMLDivElement, CubeButtonSplitProps>(\n function ButtonSplit(props, ref) {\n const {\n actions,\n actionKey: controlledActionKey,\n defaultActionKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n actionProps,\n triggerProps,\n menuProps,\n styles,\n children,\n role,\n ...rest\n } = props;\n\n const isControlled = controlledActionKey !== undefined;\n const [uncontrolledKey, setUncontrolledKey] = useState(\n () => defaultActionKey ?? actions?.[0]?.key,\n );\n\n const currentKey = isControlled ? controlledActionKey : uncontrolledKey;\n\n const currentAction =\n actions?.find((a) => a.key === currentKey) ?? actions?.[0];\n\n const handleActionPress = () => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n };\n\n const handleSelectionChange = (keys: string[]) => {\n const newKey = keys[0];\n\n if (newKey) {\n if (!isControlled) {\n setUncontrolledKey(newKey);\n }\n\n onActionChange?.(newKey);\n }\n };\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles: Styles = {\n ...containerStyles,\n ...styles,\n };\n\n const contextValue = useMemo(\n () => ({\n currentKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n }),\n [currentKey, onAction, onActionChange, type, theme, size, isDisabled],\n );\n\n const isCustomMode = children != null;\n\n return (\n <ButtonSplitContext.Provider value={contextValue}>\n <ButtonSplitElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n data-button-split\n styles={mergedStyles}\n qa={rest.qa}\n // Custom mode renders peer buttons with no visible group label, which\n // is exactly when a caller needs `aria-label` to land on something the\n // AT will announce. `role` comes from `BaseProps`, so a caller that\n // wants something else — including `presentation` to opt out — just\n // passes it. Strict mode keeps its previous shape.\n role={role ?? (isCustomMode ? 'group' : undefined)}\n >\n {isCustomMode ? (\n children\n ) : actions ? (\n <>\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n icon={currentAction?.icon}\n tooltip={currentAction?.tooltip}\n {...mergeProps(actionProps, { onPress: handleActionPress })}\n >\n {currentAction?.label}\n </Button>\n <Menu.Trigger placement=\"bottom end\">\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n aria-label=\"More options\"\n icon={({ pressed }) => (\n <DirectionIcon to={pressed ? 'up' : 'down'} />\n )}\n {...triggerProps}\n />\n <Menu\n selectionMode=\"single\"\n selectedKeys={currentKey ? [currentKey] : []}\n onSelectionChange={handleSelectionChange}\n {...menuProps}\n >\n {actions.map(({ key, label, textValue, ...itemProps }) => (\n <Menu.Item\n key={key}\n textValue={\n textValue ?? (typeof label === 'string' ? label : key)\n }\n {...itemProps}\n >\n {label}\n </Menu.Item>\n ))}\n </Menu>\n </Menu.Trigger>\n </>\n ) : null}\n </ButtonSplitElement>\n </ButtonSplitContext.Provider>\n );\n },\n);\n\nButtonSplit.displayName = 'ButtonSplit';\n"],"mappings":";;;;;;;;;;;;;AA4DA,MAAMuC,cAAcvC;AAEpB,MAAMwC,qBAAqBtC,MAAM;CAC/BuC,IAAI;CACJC,IAAI;CACJL,QAAQ;EACNM,SAAS;EACTC,UAAU;EACVC,eAAe;EACjB;CACD,CAAC;AAEF,MAAaC,cAAc3C,WACzB,SAAA2C,YAAAE,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACE,MAAA,EAAA3B,SAAAC,WAAA2B,qBAAA1B,kBAAAC,UAAAC,gBAAAC,MAAAC,OAAAC,MAAAC,YAAAC,aAAAE,cAAAC,WAAAC,QAAAC,UAAAe,MAAA,GAAAC,SAiBIN;CAEJ,MAAAO,eAAqBH,wBAAwBI;CAAU,IAAAC;AAAA,KAAAP,EAAA,OAAA1B,UAAA,IAAAH,OAAA6B,EAAA,OAAAxB,kBAAA;AAErD+B,aAAM/B,oBAAoBF,UAAO,IAAUH;AAAA6B,IAAA,KAAA1B,UAAA,IAAAH;AAAA6B,IAAA,KAAAxB;AAAAwB,IAAA,KAAAO;OAAAA,MAAAP,EAAA;CAD7C,MAAA,CAAAQ,iBAAAC,sBAA8CrD,SAC5CmD,GACD;CAED,MAAAG,aAAmBL,eAAAH,sBAAAM;CAAqD,IAAAG;AAAA,KAAAX,EAAA,OAAA1B,WAAA0B,EAAA,OAAAU,YAAA;AAGtEC,OAAArC,SAAOsC,MAAOC,MAAOA,EAAC1C,QAASuC,WAA2B,IAAZpC,UAAO;AAAK0B,IAAA,KAAA1B;AAAA0B,IAAA,KAAAU;AAAAV,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CAD5D,MAAAc,gBACEH;CAA2D,IAAAI;AAAA,KAAAf,EAAA,OAAAU,cAAAV,EAAA,OAAAvB,UAAA;AAEnCsC,aAAA;AACxB,OAAIL,WACFjC,YAAWiC,WAAW;;AAEzBV,IAAA,KAAAU;AAAAV,IAAA,KAAAvB;AAAAuB,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAJD,MAAAgB,oBAA0BD;CAIxB,IAAAE;AAAA,KAAAjB,EAAA,OAAAK,gBAAAL,EAAA,QAAAtB,gBAAA;AAE4BuC,QAAAC,SAAA;GAC5B,MAAAC,SAAeD,KAAI;AAEnB,OAAIC,QAAM;AACR,QAAI,CAACd,aACHI,oBAAmBU,OAAO;AAG5BzC,qBAAiByC,OAAO;;;AAE3BnB,IAAA,KAAAK;AAAAL,IAAA,MAAAtB;AAAAsB,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;CAVD,MAAAoB,wBAA8BH;CAc9B,MAAAK,eAA6B;EAAA,GAFL/D,cAAc6C,MAAMf,YAAY;EAGpC,GACfF;EACJ;CAAC,IAAAoC;AAAA,KAAAvB,EAAA,QAAAU,cAAAV,EAAA,QAAAlB,cAAAkB,EAAA,QAAAvB,YAAAuB,EAAA,QAAAtB,kBAAAsB,EAAA,QAAAnB,QAAAmB,EAAA,QAAApB,SAAAoB,EAAA,QAAArB,MAAA;AAGO4C,OAAA;GAAAb;GAAAjC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAQN;AAAAkB,IAAA,MAAAU;AAAAV,IAAA,MAAAlB;AAAAkB,IAAA,MAAAvB;AAAAuB,IAAA,MAAAtB;AAAAsB,IAAA,MAAAnB;AAAAmB,IAAA,MAAApB;AAAAoB,IAAA,MAAArB;AAAAqB,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;CATH,MAAAwB,eACSD;CAYT,MAAAE,eAAqBrC,YAAY;CAAK,IAAAsC;AAAA,KAAA1B,EAAA,QAAAjB,eAAAiB,EAAA,QAAA1B,WAAA0B,EAAA,QAAAZ,YAAAY,EAAA,QAAAc,eAAAa,QAAA3B,EAAA,QAAAc,eAAA1C,SAAA4B,EAAA,QAAAc,eAAAc,WAAA5B,EAAA,QAAAU,cAAAV,EAAA,QAAAgB,qBAAAhB,EAAA,QAAAoB,yBAAApB,EAAA,QAAAyB,gBAAAzB,EAAA,QAAAlB,cAAAkB,EAAA,QAAAd,aAAAc,EAAA,QAAAnB,QAAAmB,EAAA,QAAApB,SAAAoB,EAAA,QAAAf,gBAAAe,EAAA,QAAArB,MAAA;AAiB/B+C,OAAAD,eAAArC,WAEGd,UAAA,8CAEA,oBAAC;GACOK;GACCC;GACDC;GACMC;GACN,MAAAgC,eAAaa;GACV,SAAAb,eAAac;GAAS,GAC3BtE,WAAWyB,aAAa,EAAA8C,SAAWb,mBAAmB,CAAC;aAE1DF,eAAa1C;IAEhB,uBAAA,OAAA;GAAwB,WAAA;cACtB,oBAAC;IACOO;IACCC;IACDC;IACMC;IACD,cAAA;IACL,MAAAgD;IAEL,GACG7C;KAEN,sBAAC;IACe,eAAA;IACA,cAAAyB,aAAA,CAAcA,WAAgB,GAA9B,EAA6B;IACxBU,mBAAAA;IAAqB,GACpClC;cAEHZ,QAAOyD,IAAKC,OAUZ;KAEL;IAAe,IAEX,GA7CJ;AA6CIhC,IAAA,MAAAjB;AAAAiB,IAAA,MAAA1B;AAAA0B,IAAA,MAAAZ;AAAAY,IAAA,MAAAc,eAAAa;AAAA3B,IAAA,MAAAc,eAAA1C;AAAA4B,IAAA,MAAAc,eAAAc;AAAA5B,IAAA,MAAAU;AAAAV,IAAA,MAAAgB;AAAAhB,IAAA,MAAAoB;AAAApB,IAAA,MAAAyB;AAAAzB,IAAA,MAAAlB;AAAAkB,IAAA,MAAAd;AAAAc,IAAA,MAAAnB;AAAAmB,IAAA,MAAApB;AAAAoB,IAAA,MAAAf;AAAAe,IAAA,MAAArB;AAAAqB,IAAA,MAAA0B;OAAAA,MAAA1B,EAAA;AAAA,QA7DZ,oBAAA,mBAAA;EAAoCwB,OAAAA;YAClC,oBAAC;GAAkB,GACbzE,gBAAgBqD,MAAM,EAAA6B,YAAc,MAAM,CAAC;GAC1ClC;GACL,qBAAA;GACQuB,QAAAA;GACJ,IAAAlB,KAAIZ;GAMF,MAAAW,SAASsB,eAAA,UAAAnB;aAEdoB;IAiDL;GAA8B;EAGnC;AAED9B,YAAYsC,cAAc;AA3IxB,SAAAJ,MAAAvB,IAAA;CA2GuB,MAAA,EAAA4B,YAAA5B;AAAW,QAChB,oBAAC,iBAAkB,IAAA4B,UAAA,OAAA,SAA2B;;AA5GhE,SAAAH,OAAAzB,IAAA;CAsH8B,MAAA,EAAApC,KAAAC,OAAAgE,WAAA,GAAAC,cAAA9B;AAAuC,QACnD,oBAAA,OAAA;EAGI,WAAA6B,cAAc,OAAOhE,UAAU,WAAjBA,QAAAD;EAAwC,GAEpDkE;YAEHjE;IANID,IAOK"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/ButtonSplit/context.ts