@cube-dev/ui-kit 0.199.2 → 0.200.1

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 (675) hide show
  1. package/dist/CHANGELOG.md +41 -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 +1 -1
  13. package/dist/components/GridProvider.d.ts +6 -4
  14. package/dist/components/GridProvider.js +14 -9
  15. package/dist/components/GridProvider.js.map +1 -1
  16. package/dist/components/HiddenInput.js +1 -1
  17. package/dist/components/Root.js +1 -1
  18. package/dist/components/Root.js.map +1 -1
  19. package/dist/components/actions/Action/Action.js +1 -1
  20. package/dist/components/actions/Banner/Banner.js +1 -1
  21. package/dist/components/actions/Button/Button.js +2 -2
  22. package/dist/components/actions/Button/Button.js.map +1 -1
  23. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  25. package/dist/components/actions/ButtonSplit/context.js +1 -1
  26. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +7 -12
  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 +5 -6
  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 +1 -1
  36. package/dist/components/actions/Menu/MenuCollectionItem.js +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/MenuTrigger.js.map +1 -1
  41. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  43. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  44. package/dist/components/actions/Menu/context.js +1 -1
  45. package/dist/components/actions/Menu/styled.js +2 -2
  46. package/dist/components/actions/Menu/styled.js.map +1 -1
  47. package/dist/components/actions/actions-run.js +1 -1
  48. package/dist/components/actions/index.js +1 -1
  49. package/dist/components/actions/use-action.js +1 -1
  50. package/dist/components/actions/use-anchored-menu.js +1 -1
  51. package/dist/components/actions/use-context-menu.js +1 -1
  52. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  53. package/dist/components/content/Alert/Alert.js +1 -1
  54. package/dist/components/content/Alert/Alert.js.map +1 -1
  55. package/dist/components/content/Alert/use-alert.js +24 -27
  56. package/dist/components/content/Alert/use-alert.js.map +1 -1
  57. package/dist/components/content/Avatar/Avatar.js +1 -1
  58. package/dist/components/content/Badge/Badge.js +6 -2
  59. package/dist/components/content/Badge/Badge.js.map +1 -1
  60. package/dist/components/content/Card/Card.js +1 -1
  61. package/dist/components/content/Content.js +1 -1
  62. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
  63. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  64. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  65. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  66. package/dist/components/content/Divider.js +1 -1
  67. package/dist/components/content/Footer.js +1 -1
  68. package/dist/components/content/Header.js +1 -1
  69. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  70. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  71. package/dist/components/content/InlineInput/InlineInput.js +6 -13
  72. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  73. package/dist/components/content/Item/Item.js +18 -18
  74. package/dist/components/content/Item/Item.js.map +1 -1
  75. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  76. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  77. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  78. package/dist/components/content/Layout/GridLayout.js +1 -1
  79. package/dist/components/content/Layout/Layout.js +1 -1
  80. package/dist/components/content/Layout/Layout.js.map +1 -1
  81. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  82. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  83. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  84. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  85. package/dist/components/content/Layout/LayoutContent.js +5 -3
  86. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  87. package/dist/components/content/Layout/LayoutContext.js +1 -1
  88. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  89. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  90. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  91. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  92. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  93. package/dist/components/content/Layout/LayoutPane.js +16 -12
  94. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  95. package/dist/components/content/Layout/LayoutPanel.js +23 -19
  96. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  97. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  98. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  99. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  100. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  101. package/dist/components/content/Layout/index.js +1 -1
  102. package/dist/components/content/Layout/utils.js +1 -1
  103. package/dist/components/content/Paragraph.js +1 -1
  104. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  105. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  106. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  107. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  108. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  109. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  110. package/dist/components/content/Result/Result.js +1 -1
  111. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  112. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  113. package/dist/components/content/Tag/Tag.js +6 -2
  114. package/dist/components/content/Tag/Tag.js.map +1 -1
  115. package/dist/components/content/Text.js +1 -1
  116. package/dist/components/content/TextItem/TextItem.js +1 -1
  117. package/dist/components/content/Title.js +1 -1
  118. package/dist/components/content/Tree/Tree.js +9 -17
  119. package/dist/components/content/Tree/Tree.js.map +1 -1
  120. package/dist/components/content/Tree/TreeNode.js +6 -4
  121. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  122. package/dist/components/content/Tree/styled.js +30 -11
  123. package/dist/components/content/Tree/styled.js.map +1 -1
  124. package/dist/components/content/Tree/tree-index.js +1 -1
  125. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  126. package/dist/components/content/Tree/use-load-data.js +1 -1
  127. package/dist/components/content/highlightText.js +1 -1
  128. package/dist/components/content/use-auto-tooltip.js +1 -1
  129. package/dist/components/data/DataTable/DataTable.js +1 -1
  130. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  131. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  132. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  133. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  134. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
  135. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  136. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  137. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  138. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  139. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  140. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  141. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  142. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  143. package/dist/components/data/TableBase/RowCollection.js +1 -1
  144. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  145. package/dist/components/data/TableBase/TableRow.js +1 -1
  146. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  147. package/dist/components/data/TableBase/TableView.js +1 -1
  148. package/dist/components/data/TableBase/TableView.js.map +1 -1
  149. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  150. package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
  151. package/dist/components/data/TableBase/column-header.js +1 -1
  152. package/dist/components/data/TableBase/column-menu.js +1 -1
  153. package/dist/components/data/TableBase/column-styles.js +1 -1
  154. package/dist/components/data/TableBase/column-tint.js +1 -1
  155. package/dist/components/data/TableBase/row-menu.js +1 -1
  156. package/dist/components/data/TableBase/styled.js +26 -29
  157. package/dist/components/data/TableBase/styled.js.map +1 -1
  158. package/dist/components/data/TableBase/table-tree.js +1 -1
  159. package/dist/components/data/TableBase/types.js +1 -1
  160. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  161. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  162. package/dist/components/data/TableBase/use-column-order.js +1 -1
  163. package/dist/components/data/TableBase/use-column-window.js +1 -1
  164. package/dist/components/data/TableBase/use-container-width.js +1 -1
  165. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  166. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  167. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  168. package/dist/components/data/TableBase/use-table-search.js +1 -1
  169. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  170. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  171. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  172. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  173. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  174. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  175. package/dist/components/fields/Checkbox/Checkbox.js +3 -3
  176. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  177. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  178. package/dist/components/fields/Checkbox/context.js +1 -1
  179. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  180. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  181. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  182. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +6 -6
  183. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  184. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  185. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  186. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  187. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  188. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -1
  189. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  190. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  191. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  192. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  193. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  194. package/dist/components/fields/DatePicker/DateInputBase.js +5 -9
  195. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  196. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  197. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  198. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  199. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  200. package/dist/components/fields/DatePicker/DatePickerSegment.js +49 -39
  201. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  202. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  203. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  204. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  205. package/dist/components/fields/DatePicker/PeriodPicker.js +5 -3
  206. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  207. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  208. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  209. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  210. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  211. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  212. package/dist/components/fields/DatePicker/period.js +1 -1
  213. package/dist/components/fields/DatePicker/props.js +1 -1
  214. package/dist/components/fields/DatePicker/utils.js +1 -1
  215. package/dist/components/fields/FileInput/FileInput.js +2 -2
  216. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  217. package/dist/components/fields/FilterListBox/FilterListBox.js +6 -8
  218. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  219. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  220. package/dist/components/fields/Input/Input.js +1 -1
  221. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  222. package/dist/components/fields/ListBox/ListBox.d.ts +1 -1
  223. package/dist/components/fields/ListBox/ListBox.js +49 -24
  224. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  225. package/dist/components/fields/ListBox/optionId.js +1 -1
  226. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  227. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  228. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  229. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  230. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  231. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  232. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  233. package/dist/components/fields/Picker/Picker.js +1 -1
  234. package/dist/components/fields/RadioGroup/Radio.js +91 -96
  235. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  236. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
  237. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  238. package/dist/components/fields/RadioGroup/context.js +1 -1
  239. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +1 -1
  240. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  241. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  242. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  243. package/dist/components/fields/Select/Select.d.ts +1 -1
  244. package/dist/components/fields/Select/Select.js +3 -3
  245. package/dist/components/fields/Select/Select.js.map +1 -1
  246. package/dist/components/fields/Slider/Gradation.js +1 -1
  247. package/dist/components/fields/Slider/HueSlider.js +3 -3
  248. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  249. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  250. package/dist/components/fields/Slider/Slider.js +1 -1
  251. package/dist/components/fields/Slider/SliderBase.js +4 -6
  252. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  253. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  254. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  255. package/dist/components/fields/Slider/elements.js +7 -6
  256. package/dist/components/fields/Slider/elements.js.map +1 -1
  257. package/dist/components/fields/Slider/index.js +1 -1
  258. package/dist/components/fields/Switch/Switch.js +3 -3
  259. package/dist/components/fields/Switch/Switch.js.map +1 -1
  260. package/dist/components/fields/TagInput/TagInput.d.ts +1 -1
  261. package/dist/components/fields/TagInput/TagInput.js +1 -1
  262. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  263. package/dist/components/fields/TagInput/TagList.js +3 -3
  264. package/dist/components/fields/TagInput/TagList.js.map +1 -1
  265. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  266. package/dist/components/fields/TagInput/useTagError.js +1 -1
  267. package/dist/components/fields/TextArea/TextArea.js +1 -1
  268. package/dist/components/fields/TextInput/TextInput.js +1 -1
  269. package/dist/components/fields/TextInput/TextInputBase.js +3 -6
  270. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  271. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  272. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  273. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  274. package/dist/components/fields/TriggerActions.js +1 -1
  275. package/dist/components/fields/color/ColorPanel.js +2 -2
  276. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  277. package/dist/components/fields/color/channels.js +1 -1
  278. package/dist/components/fields/color/color.js +1 -1
  279. package/dist/components/fields/color/context.js +1 -1
  280. package/dist/components/fields/option-origin-press.js +1 -1
  281. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  282. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  283. package/dist/components/form/Form/Field.js +1 -1
  284. package/dist/components/form/Form/Form.js +1 -1
  285. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  286. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  287. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  288. package/dist/components/form/Form/SubmitError.js +1 -1
  289. package/dist/components/form/Form/backend.js +1 -1
  290. package/dist/components/form/Form/index.js +1 -1
  291. package/dist/components/form/Form/modern/actions.js +1 -1
  292. package/dist/components/form/Form/modern/context.js +1 -1
  293. package/dist/components/form/Form/modern/controller.js +1 -1
  294. package/dist/components/form/Form/modern/field-binding.js +1 -1
  295. package/dist/components/form/Form/modern/field.js +1 -1
  296. package/dist/components/form/Form/modern/react.js +1 -1
  297. package/dist/components/form/Form/modern/store.js +1 -1
  298. package/dist/components/form/Form/modern/validation.js +1 -1
  299. package/dist/components/form/Form/modern/values.js +1 -1
  300. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  301. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  302. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  303. package/dist/components/form/Form/use-field/use-field.js +1 -1
  304. package/dist/components/form/Form/use-form.js +1 -1
  305. package/dist/components/form/Form/validation.js +1 -1
  306. package/dist/components/form/Label.js +1 -1
  307. package/dist/components/form/field-chrome.js +1 -1
  308. package/dist/components/form/legacy-tooltip.js +1 -1
  309. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  310. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  311. package/dist/components/form/validation/use-validation-props.js +1 -1
  312. package/dist/components/form/wrapper.js +1 -1
  313. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  314. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  315. package/dist/components/layout/Flex.js +1 -1
  316. package/dist/components/layout/Flow.js +1 -1
  317. package/dist/components/layout/Grid.js +1 -1
  318. package/dist/components/layout/Panel.js +13 -38
  319. package/dist/components/layout/Panel.js.map +1 -1
  320. package/dist/components/layout/Prefix.js +1 -1
  321. package/dist/components/layout/ResizablePanel.js +24 -20
  322. package/dist/components/layout/ResizablePanel.js.map +1 -1
  323. package/dist/components/layout/Space.js +1 -1
  324. package/dist/components/layout/Suffix.js +1 -1
  325. package/dist/components/navigation/Pagination/Pagination.js +2 -2
  326. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  327. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  328. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  329. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  330. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  331. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  332. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  333. package/dist/components/navigation/Tabs/TabPicker.js +62 -68
  334. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  335. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  336. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  337. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  338. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  339. package/dist/components/navigation/Tabs/styled.js +13 -12
  340. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  341. package/dist/components/navigation/Tabs/types.js +1 -1
  342. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  343. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  344. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  345. package/dist/components/other/Calendar/Calendar.js +1 -1
  346. package/dist/components/other/Calendar/CalendarCell.js +6 -6
  347. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  348. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  349. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  350. package/dist/components/other/Calendar/CalendarPanel.js +3 -3
  351. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  352. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  353. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  354. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  355. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  356. package/dist/components/other/Calendar/styled.js +4 -4
  357. package/dist/components/other/Calendar/styled.js.map +1 -1
  358. package/dist/components/other/CubeLogo/CubeLogo.js +3 -4
  359. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  360. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  361. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  362. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  363. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  364. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  365. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  366. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  367. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  368. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  369. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  370. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  371. package/dist/components/overlays/Dialog/context.js +1 -1
  372. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  373. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  374. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  375. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  376. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  377. package/dist/components/overlays/Modal/Modal.js +1 -1
  378. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  379. package/dist/components/overlays/Modal/Overlay.js +1 -1
  380. package/dist/components/overlays/Modal/Popover.js +1 -1
  381. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  382. package/dist/components/overlays/Modal/Tray.js +4 -5
  383. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  384. package/dist/components/overlays/Modal/Underlay.js +1 -1
  385. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  386. package/dist/components/overlays/Notifications/Notification.js +1 -1
  387. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  388. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  389. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  390. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  391. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  392. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  393. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  394. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  395. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  396. package/dist/components/overlays/Notifications/index.js +1 -1
  397. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  398. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  399. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  400. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  401. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  402. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  403. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  404. package/dist/components/overlays/Toast/index.js +1 -1
  405. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  406. package/dist/components/overlays/Toast/useToast.js +1 -1
  407. package/dist/components/overlays/Tooltip/Tooltip.js +8 -6
  408. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  409. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  410. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  411. package/dist/components/overlays/Tooltip/context.js +1 -1
  412. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  413. package/dist/components/portal/Portal.js +1 -1
  414. package/dist/components/portal/PortalProvider.js +1 -1
  415. package/dist/components/portal/usePortal.js +1 -1
  416. package/dist/components/shared/DraggableCollection.js +1 -1
  417. package/dist/components/shared/InvalidIcon.js +1 -1
  418. package/dist/components/shared/ValidIcon.js +1 -1
  419. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  420. package/dist/components/status/Spin/Cube.js +1 -1
  421. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  422. package/dist/components/status/Spin/Spin.js +1 -1
  423. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  424. package/dist/data/item-themes.js +27 -27
  425. package/dist/data/item-themes.js.map +1 -1
  426. package/dist/data/themes.js +1 -1
  427. package/dist/eslint-plugin/defaults.generated.js +2 -2
  428. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  429. package/dist/eslint-plugin/index.js +1 -1
  430. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  431. package/dist/i18n/I18nProvider.js +1 -1
  432. package/dist/i18n/createFormatter.js +1 -1
  433. package/dist/i18n/index.js +1 -1
  434. package/dist/i18n/instance.js +1 -1
  435. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  436. package/dist/i18n/locales/en-US/uikit.js +1 -1
  437. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  438. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  439. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  440. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  441. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  442. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  443. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  444. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  445. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  446. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  447. package/dist/i18n/locales.js +1 -1
  448. package/dist/i18n/namespace.js +1 -1
  449. package/dist/i18n/useFormatter.js +1 -1
  450. package/dist/i18n/useI18n.js +1 -1
  451. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  452. package/dist/icons/AdjustmentsIcon.js +1 -1
  453. package/dist/icons/AiIcon.js +1 -1
  454. package/dist/icons/AreaChartIcon.js +1 -1
  455. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  456. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  457. package/dist/icons/BackwardIcon.js +1 -1
  458. package/dist/icons/BarChartIcon.js +1 -1
  459. package/dist/icons/BellFilledIcon.js +1 -1
  460. package/dist/icons/BellIcon.js +1 -1
  461. package/dist/icons/BooleanIcon.js +1 -1
  462. package/dist/icons/CalendarEditIcon.js +1 -1
  463. package/dist/icons/CalendarIcon.js +1 -1
  464. package/dist/icons/CaretDownIcon.js +1 -1
  465. package/dist/icons/CaretUpIcon.js +1 -1
  466. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  467. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  468. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  469. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  470. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  471. package/dist/icons/ChartBarLineIcon.js +1 -1
  472. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  473. package/dist/icons/ChartBarStackedIcon.js +1 -1
  474. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  475. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  476. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  477. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  478. package/dist/icons/ChartBubbleIcon.js +1 -1
  479. package/dist/icons/ChartDonut2Icon.js +1 -1
  480. package/dist/icons/ChartFunnelIcon.js +1 -1
  481. package/dist/icons/ChartHeatmapIcon.js +1 -1
  482. package/dist/icons/ChartKPIIcon.js +1 -1
  483. package/dist/icons/ChartPie2Icon.js +1 -1
  484. package/dist/icons/ChartScatterIcon.js +1 -1
  485. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  486. package/dist/icons/CheckCircleIcon.js +1 -1
  487. package/dist/icons/CheckIcon.js +1 -1
  488. package/dist/icons/CircleFilledIcon.js +1 -1
  489. package/dist/icons/ClearIcon.js +1 -1
  490. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  491. package/dist/icons/CloseCircleIcon.js +1 -1
  492. package/dist/icons/CloseIcon.js +1 -1
  493. package/dist/icons/CodeIcon.js +1 -1
  494. package/dist/icons/ColumnTotalIcon.js +1 -1
  495. package/dist/icons/CopyIcon.js +1 -1
  496. package/dist/icons/CountIcon.js +1 -1
  497. package/dist/icons/CubeIcon.js +1 -1
  498. package/dist/icons/CubePauseIcon.js +1 -1
  499. package/dist/icons/CubePlayIcon.js +1 -1
  500. package/dist/icons/CurrencyDollarIcon.js +1 -1
  501. package/dist/icons/DangerIcon.js +1 -1
  502. package/dist/icons/DashboardIcon.js +1 -1
  503. package/dist/icons/DatabaseIcon.js +1 -1
  504. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  505. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  506. package/dist/icons/DirectionIcon.js +1 -1
  507. package/dist/icons/DonutIcon.js +1 -1
  508. package/dist/icons/DownIcon.js +1 -1
  509. package/dist/icons/EditIcon.js +1 -1
  510. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  511. package/dist/icons/ExclamationCircleIcon.js +1 -1
  512. package/dist/icons/ExclamationIcon.js +1 -1
  513. package/dist/icons/EyeIcon.js +1 -1
  514. package/dist/icons/EyeInvisibleIcon.js +1 -1
  515. package/dist/icons/FilterIcon.js +1 -1
  516. package/dist/icons/FolderFilledIcon.js +1 -1
  517. package/dist/icons/FolderIcon.js +1 -1
  518. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  519. package/dist/icons/FolderOpenIcon.js +1 -1
  520. package/dist/icons/ForwardIcon.js +1 -1
  521. package/dist/icons/GripVerticalIcon.js +1 -1
  522. package/dist/icons/HierarchyIcon.js +1 -1
  523. package/dist/icons/HierarchyOpenIcon.js +1 -1
  524. package/dist/icons/Icon.js +21 -38
  525. package/dist/icons/Icon.js.map +1 -1
  526. package/dist/icons/InfoCircleIcon.js +1 -1
  527. package/dist/icons/InfoIcon.js +1 -1
  528. package/dist/icons/KeyIcon.js +1 -1
  529. package/dist/icons/LeftIcon.js +1 -1
  530. package/dist/icons/LineChartIcon.js +1 -1
  531. package/dist/icons/LoadingIcon.js +1 -1
  532. package/dist/icons/LockFilledIcon.js +1 -1
  533. package/dist/icons/LockIcon.js +1 -1
  534. package/dist/icons/MoreIcon.js +1 -1
  535. package/dist/icons/NotAllowedIcon.js +1 -1
  536. package/dist/icons/Number123Icon.js +1 -1
  537. package/dist/icons/NumberIcon.js +1 -1
  538. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  539. package/dist/icons/PauseCircleIcon.js +1 -1
  540. package/dist/icons/PauseIcon.js +1 -1
  541. package/dist/icons/PercentageIcon.js +1 -1
  542. package/dist/icons/PieChartIcon.js +1 -1
  543. package/dist/icons/PipetteIcon.js +1 -1
  544. package/dist/icons/PlayCircleIcon.js +1 -1
  545. package/dist/icons/PlayIcon.js +1 -1
  546. package/dist/icons/PlusIcon.js +1 -1
  547. package/dist/icons/ProgressBarIcon.js +1 -1
  548. package/dist/icons/ReloadIcon.js +1 -1
  549. package/dist/icons/ReportIcon.js +1 -1
  550. package/dist/icons/ReturnIcon.js +1 -1
  551. package/dist/icons/RightIcon.js +1 -1
  552. package/dist/icons/RowTotalsIcon.js +1 -1
  553. package/dist/icons/SchemeIcon.js +1 -1
  554. package/dist/icons/SearchIcon.js +1 -1
  555. package/dist/icons/SemanticQueryIcon.js +1 -1
  556. package/dist/icons/SettingsIcon.js +1 -1
  557. package/dist/icons/ShieldFilledIcon.js +1 -1
  558. package/dist/icons/ShieldIcon.js +1 -1
  559. package/dist/icons/SlashIcon.js +1 -1
  560. package/dist/icons/SparklesIcon.js +1 -1
  561. package/dist/icons/SqlIcon.js +1 -1
  562. package/dist/icons/StatsIcon.js +1 -1
  563. package/dist/icons/StopIcon.js +1 -1
  564. package/dist/icons/StringIcon.js +1 -1
  565. package/dist/icons/SubtotalsIcon.js +1 -1
  566. package/dist/icons/SwitchIcon.js +1 -1
  567. package/dist/icons/TableIcon.js +1 -1
  568. package/dist/icons/ThumbsDownIcon.js +1 -1
  569. package/dist/icons/ThumbsUpIcon.js +1 -1
  570. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  571. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  572. package/dist/icons/ThunderboltIcon.js +1 -1
  573. package/dist/icons/TimeIcon.js +1 -1
  574. package/dist/icons/TrashIcon.js +1 -1
  575. package/dist/icons/UnlockIcon.js +1 -1
  576. package/dist/icons/UpIcon.js +1 -1
  577. package/dist/icons/UserGroupIcon.js +1 -1
  578. package/dist/icons/UserIcon.js +1 -1
  579. package/dist/icons/UserLockIcon.js +1 -1
  580. package/dist/icons/ViewIcon.js +1 -1
  581. package/dist/icons/WarningFilledIcon.js +1 -1
  582. package/dist/icons/WarningIcon.js +1 -1
  583. package/dist/icons/wrap-icon.js +1 -1
  584. package/dist/index.js +1 -1
  585. package/dist/probe/canonicalize.js +1 -1
  586. package/dist/probe/css.js +1 -1
  587. package/dist/probe/index.js +1 -1
  588. package/dist/provider.js +1 -1
  589. package/dist/providers/TrackingProvider.js +1 -1
  590. package/dist/providers/navigation-url.js +1 -1
  591. package/dist/providers/navigationAdapter.default.js +1 -1
  592. package/dist/providers/use-navigation.js +1 -1
  593. package/dist/tokens/all-tokens.js +1 -1
  594. package/dist/tokens/base.js +8 -2
  595. package/dist/tokens/base.js.map +1 -1
  596. package/dist/tokens/color-seed.js +1 -1
  597. package/dist/tokens/color-theme.js +1 -1
  598. package/dist/tokens/colors.js +1 -1
  599. package/dist/tokens/layout.js +1 -1
  600. package/dist/tokens/lazy-styles.js +1 -1
  601. package/dist/tokens/legacy-color.js +1 -1
  602. package/dist/tokens/palette-config.js +1 -1
  603. package/dist/tokens/palette.js +1 -1
  604. package/dist/tokens/resolve.js +1 -1
  605. package/dist/tokens/shadows.d.ts +0 -1
  606. package/dist/tokens/shadows.js +2 -3
  607. package/dist/tokens/shadows.js.map +1 -1
  608. package/dist/tokens/sizes.js +1 -1
  609. package/dist/tokens/spacing.js +1 -1
  610. package/dist/tokens/typography.js +1 -1
  611. package/dist/utils/ResizeSensor.js +1 -1
  612. package/dist/utils/colors.js +1 -1
  613. package/dist/utils/dotize.js +1 -1
  614. package/dist/utils/is-dev-env.js +1 -1
  615. package/dist/utils/modules.js +1 -1
  616. package/dist/utils/promise.js +1 -1
  617. package/dist/utils/raf.js +1 -1
  618. package/dist/utils/random.js +1 -1
  619. package/dist/utils/range.js +1 -1
  620. package/dist/utils/react/RenderCache.js +1 -1
  621. package/dist/utils/react/Slots.js +1 -1
  622. package/dist/utils/react/chain.js +1 -1
  623. package/dist/utils/react/disabledProps.js +1 -1
  624. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  625. package/dist/utils/react/index.js +1 -1
  626. package/dist/utils/react/interactions.js +1 -1
  627. package/dist/utils/react/isTextOnly.js +1 -1
  628. package/dist/utils/react/mapProps.js +1 -1
  629. package/dist/utils/react/mergeProps.js +1 -1
  630. package/dist/utils/react/nullableValue.js +1 -1
  631. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  632. package/dist/utils/react/programmaticFocus.js +1 -1
  633. package/dist/utils/react/resolveIcon.js +1 -1
  634. package/dist/utils/react/sharedStore.js +1 -1
  635. package/dist/utils/react/useBufferedValue.js +1 -1
  636. package/dist/utils/react/useCombinedRefs.js +1 -1
  637. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  638. package/dist/utils/react/useEventBus.js +1 -1
  639. package/dist/utils/react/useId.js +1 -1
  640. package/dist/utils/react/useIsDarwin.js +1 -1
  641. package/dist/utils/react/useKeySymbols.js +1 -1
  642. package/dist/utils/react/useLayoutEffect.js +1 -1
  643. package/dist/utils/react/useLocalStorage.js +1 -1
  644. package/dist/utils/react/useMergeStyles.js +1 -1
  645. package/dist/utils/react/useOverlayEscapeGuard.js +7 -2
  646. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  647. package/dist/utils/react/usePopoverSync.js +1 -1
  648. package/dist/utils/react/useQaProps.js +1 -1
  649. package/dist/utils/react/useScheme.js +1 -1
  650. package/dist/utils/react/useViewportSize.js +1 -1
  651. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  652. package/dist/utils/selection.js +1 -1
  653. package/dist/utils/styles.js +1 -1
  654. package/dist/utils/tree.js +1 -1
  655. package/dist/utils/warnings.js +1 -1
  656. package/dist/version.js +3 -3
  657. package/docs/BaseProperties.md +2 -0
  658. package/docs/ComplexLayout.md +1 -1
  659. package/docs/Usage.md +45 -2
  660. package/docs/Utilities.md +5 -2
  661. package/docs/components/GridProvider.md +3 -3
  662. package/docs/components/content/Layout.md +1 -1
  663. package/docs/components/fields/ComboBox.md +1 -1
  664. package/docs/components/fields/CommandTextArea.md +1 -1
  665. package/docs/components/fields/FilterListBox.md +1 -1
  666. package/docs/components/fields/FilterPicker.md +1 -1
  667. package/docs/components/fields/ListBox.md +2 -2
  668. package/docs/components/fields/Picker.md +1 -1
  669. package/docs/components/fields/SearchComboBox.md +1 -1
  670. package/docs/components/fields/Select.md +1 -1
  671. package/docs/components/fields/TagInput.md +1 -1
  672. package/docs/components/overlays/Dialog.md +1 -1
  673. package/docs/tasty/react-api.md +1 -1
  674. package/package.json +3 -3
  675. package/tasty.config.ts +153 -0
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.200.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1574](https://github.com/cube-js/cube-ui-kit/pull/1574) [`10da2671`](https://github.com/cube-js/cube-ui-kit/commit/10da2671efa8f8bf7141eb1aea82adb003fb16c8) Thanks [@tenphi](https://github.com/tenphi)! - Keep dialogs, trays and popovers open when a control inside already handles Escape, such as a code editor closing autocomplete. The handled key also stays inside the overlay, so an enclosing dialog stays open.
8
+
9
+ ## 0.200.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#1573](https://github.com/cube-js/cube-ui-kit/pull/1573) [`7caf4add`](https://github.com/cube-js/cube-ui-kit/commit/7caf4add01f06c1cfa5ed9ef7c7cea92c29fa611) Thanks [@tenphi](https://github.com/tenphi)! - The published `tasty.config.ts` lists the components a consumer customizes through their props rather than by restyling them, as `protectedComponents`. With `@tenphi/eslint-plugin-tasty` 1.12.0 or newer, a project that extends the config gets `tasty/no-protected-restyle` reports for:
14
+
15
+ - instance `styles` and `*Styles` props;
16
+ - appearance style props such as `fill`, `color`, `border` or `radius`;
17
+ - `tasty()` wrappers that restyle one of these components.
18
+
19
+ Every component is protected except the layout and typography primitives, the `Action` base and the icons. Style props that place or size a component stay allowed. Containers also keep the ones that lay out their content: `Card`, `Panel`, `ResizablePanel`, `Content`, `Header`, `Footer`, `Layout` and `GridLayout`. A component's own prop that shares a name with a style, such as a field's `filter` or `ColorSwatch`'s `color`, passes.
20
+
21
+ The rule is a warning in both of the plugin's presets, so a project that uses a preset sees these warnings once it updates. A project that lists its rules sees them only after it enables `tasty/no-protected-restyle`. The Usage docs (Customizing components) describe the contract.
22
+
23
+ ### Patch Changes
24
+
25
+ - [#1572](https://github.com/cube-js/cube-ui-kit/pull/1572) [`3268c4a5`](https://github.com/cube-js/cube-ui-kit/commit/3268c4a5450af0a8776e40423515975df1d05afa) Thanks [@tenphi](https://github.com/tenphi)! - A virtualized `ListBox` and `Tree`, the `Slider` value label and `DatePicker` segments now size and place themselves through Tasty tokens instead of inline `style`, and render the same. A virtualized `ListBox` takes its height from a spacer, so a `listStyles` height now applies to it: a cap such as `height: 'max 30x'` still caps the list, which now scrolls its whole length at once, and a fixed height, which the inline height used to replace, now sets it. A `position` in `listStyles`, or a `position`, `inset` or `transform` in an option's `styles`, now takes over from the virtualizer's value; before, the inline value won. `Tree` now wraps its rows in a Tasty element with `data-qa="TreeSizer"`.
26
+
27
+ - [#1567](https://github.com/cube-js/cube-ui-kit/pull/1567) [`72048186`](https://github.com/cube-js/cube-ui-kit/commit/720481868f209b382230ae498870ab205546ef6d) Thanks [@tenphi](https://github.com/tenphi)! - Add the `$outline-offset` token (`1px`), the gap between a focus outline and its element. The focus rings of `Button`, `ItemAction`, `Item`, `InlineInput`, `Checkbox`, `Switch`, `Slider`, `TagInput`'s tags, `Calendar` (at half), `ListBox` options (inward), the `TableBase` column resizer and drop indicator, and the `Layout` and `ResizablePanel` resize handles use it. The `TableBase` and `ListBox` offsets no longer follow `--border-width`. `FileInput`'s padding and `CopyPasteBlock`'s padding and focus border compensate for a border, so they now use the `bw` unit and follow `--border-width`. The `Tabs` drop-indicator offset and `ItemTable`'s search width cap use the `x` unit. Rendered sizes are unchanged at the defaults.
28
+
29
+ - [#1569](https://github.com/cube-js/cube-ui-kit/pull/1569) [`5e6a5f33`](https://github.com/cube-js/cube-ui-kit/commit/5e6a5f33d8f448a6b152c52c4524123e61319ed7) Thanks [@tenphi](https://github.com/tenphi)! - Stop using the `bw` unit for values that aren't border widths, so changing `--border-width` now moves only borders, dividers and the sizes that make room for a border. Two new tokens cover the shared values:
30
+
31
+ - `$ring-width` (`1px`), the width of a hairline focus or selection ring. The hairline focus outlines use it (a field's thick focus ring stays `ow`, `$outline-width`), and so do the rings drawn with `shadow` in `TableBase`, `Tabs`, `ColorSwatchGroup` and the color-picker thumb. `RadioGroup` and `ColorSwatchGroup` also take their ring offset from `$outline-offset` now.
32
+ - `$item-gap` (`1px`), the hairline between adjacent items. `Menu`, `Select`, `ListBox` and the other `listGap` lists, `Item` actions, `Pagination`, vertical `Tabs` and the `Layout` breadcrumbs use it, and `listGap` documents it as its default.
33
+
34
+ The resize-handle dot gaps, `Calendar` cell spacing, `DatePicker` segment padding, the `Tabs` indicator, the `TableBase` drop indicators and the resizer's hover line keep their own device-pixel sizes, and `$item-shadow`'s offset is a plain `1px`. Rendered sizes are unchanged at the defaults.
35
+
36
+ - [#1570](https://github.com/cube-js/cube-ui-kit/pull/1570) [`39629fb1`](https://github.com/cube-js/cube-ui-kit/commit/39629fb15bf0a0735cb9488a5220634bfda21fed) Thanks [@tenphi](https://github.com/tenphi)! - `GridProvider` sets its grid custom properties through `tokens`, so a container resize updates them inline instead of generating a new class for every measured width. Its `width`, `initialWidth` and `gap` props now take a single value (`string | number`): a state map, such as a responsive `gap`, is no longer accepted, since `tokens` take one value. A number now means pixels, and the default `gap` is `0` pixels instead of `'0'`. A unitless value makes `--column-width` invalid, so a string needs a unit (`'8px'`, `'1x'`).
37
+
38
+ `InlineInput`'s `inputStyles`, the `resize` prop of `TextInput` and `TextArea`, and `Icon`'s `size` and `stroke` are now merged with Tasty's merge instead of an object spread. A state map without a `''` key in one of them now extends the same property in the styles it is merged over (`styles.Input`, `inputStyles` or `styles`) instead of replacing it. `Panel` now sends its inner style props (`padding`, `gap`, `fill`, …) to the inner element even when the value is falsy, such as `padding={0}`; before, a falsy value went to the outer element.
39
+
40
+ - [#1571](https://github.com/cube-js/cube-ui-kit/pull/1571) [`aa1ef937`](https://github.com/cube-js/cube-ui-kit/commit/aa1ef937e117a9c45981d043a8873494f37800e3) Thanks [@tenphi](https://github.com/tenphi)! - `Tag` and `Badge` with an icon no longer paint a sliver of their label over the icon or past their edge when squeezed below their label. A cut label now starts right after the icon, and the element clips what passes its edge unless it has end content (a close button, suffix or right icon). A label that fits is placed as before.
41
+
42
+ - [#1567](https://github.com/cube-js/cube-ui-kit/pull/1567) [`72048186`](https://github.com/cube-js/cube-ui-kit/commit/720481868f209b382230ae498870ab205546ef6d) Thanks [@tenphi](https://github.com/tenphi)! - Update Tasty to 3.14.0 (from 3.13.0). Components that pass their props through `filterBaseProps` (`Block`, `Flex`, `Text`, `Card`, `Action` and others) now apply a consumer's `tokens` instead of dropping them, render a Tasty `theme` as `data-theme`, and render `isChecked` as `data-checked`. `Alert`'s own `theme` prop, its status theme, still renders only through `data-type`. Sub-elements created by `elements` also accept `theme` now.
43
+
3
44
  ## 0.199.2
4
45
 
5
46
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  //#region src/_internal/hooks/use-debounced-value.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { useSyncRef } from "./use-sync-ref.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  //#region src/_internal/hooks/use-event.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
  //#region src/_internal/hooks/use-is-first-render.ts
4
4
  function useIsFirstRender() {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { mergeStyleLayers } from "../utils/styles.js";
3
3
  import { usePaletteValue } from "../tokens/palette-config.js";
4
4
  import { getTokens } from "../tokens/all-tokens.js";
@@ -1,13 +1,15 @@
1
1
 
2
- import { Styles } from "@tenphi/tasty";
3
2
  import { ReactNode } from "react";
4
3
  //#region src/components/GridProvider.d.ts
5
4
  export interface CubeGridProviderProps {
6
5
  children: ReactNode;
7
6
  columns?: number;
8
- gap?: Styles['gap'];
9
- width?: Styles['width'];
10
- initialWidth?: Styles['width'];
7
+ /** Gap between columns, as a single Tasty value such as `'1x'`, or a number of pixels. */
8
+ gap?: string | number;
9
+ /** Forced container width, as a single Tasty value, or a number of pixels. */
10
+ width?: string | number;
11
+ /** Width before the resize observer measures the container, as a single Tasty value, or a number of pixels. */
12
+ initialWidth?: string | number;
11
13
  }
12
14
  export declare const GridProvider: import("react").ForwardRefExoticComponent<CubeGridProviderProps & import("react").RefAttributes<HTMLDivElement>>;
13
15
  //#endregion
@@ -1,14 +1,20 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/components/GridProvider.tsx
7
- const GridElement = tasty({ styles: { display: "contents" } });
8
- const COLUMN_WIDTH = "(($grid-width - ($column-gap * ($columns-amount - 1))) / $columns-amount)";
7
+ const GridElement = tasty({ styles: {
8
+ display: "contents",
9
+ "$column-width": "(($grid-width - ($column-gap * ($columns-amount - 1))) / $columns-amount)"
10
+ } });
11
+ /** Numbers are pixels: a custom property gets no default unit. */
12
+ function toLength(value) {
13
+ return typeof value === "number" ? `${value}px` : value;
14
+ }
9
15
  const GridProvider = forwardRef(function GridProvider(props, outerRef) {
10
16
  let ref = useCombinedRefs(outerRef);
11
- let { children, columns = 2, gap = "0", width: forcedWidth, initialWidth } = props;
17
+ let { children, columns = 2, gap = 0, width: forcedWidth, initialWidth } = props;
12
18
  let [width, setWidth] = useState(forcedWidth || initialWidth || "100vw");
13
19
  const resizeCallback = useCallback(() => {
14
20
  const el = ref?.current?.parentElement;
@@ -40,11 +46,10 @@ const GridProvider = forwardRef(function GridProvider(props, outerRef) {
40
46
  return /* @__PURE__ */ jsx(GridElement, {
41
47
  ...filterBaseProps(props, { eventProps: true }),
42
48
  ref,
43
- styles: {
44
- "--grid-width": width,
45
- "--columns-amount": columns,
46
- "--column-gap": gap,
47
- "--column-width": COLUMN_WIDTH
49
+ tokens: {
50
+ "$grid-width": toLength(width),
51
+ "$columns-amount": columns,
52
+ "$column-gap": toLength(gap)
48
53
  },
49
54
  children
50
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"GridProvider.js","names":["filterBaseProps","Styles","tasty","forwardRef","ReactNode","useCallback","useEffect","useState","useCombinedRefs","GridElement","styles","display","COLUMN_WIDTH","CubeGridProviderProps","children","columns","gap","width","initialWidth","GridProvider","HTMLDivElement","props","outerRef","ref","forcedWidth","setWidth","resizeCallback","el","current","parentElement","computedStyle","getComputedStyle","containerWidth","clientWidth","parseFloat","paddingLeft","paddingRight","parentNode","sensor","then","module","ResizeSensor","detach","eventProps"],"sources":["../../src/components/GridProvider.tsx"],"sourcesContent":["import { filterBaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { useCombinedRefs } from '../utils/react';\n\nconst GridElement = tasty({\n styles: {\n display: 'contents',\n },\n});\n\nconst COLUMN_WIDTH =\n '(($grid-width - ($column-gap * ($columns-amount - 1))) / $columns-amount)';\n\nexport interface CubeGridProviderProps {\n children: ReactNode;\n columns?: number;\n gap?: Styles['gap'];\n width?: Styles['width'];\n initialWidth?: Styles['width'];\n}\n\nexport const GridProvider = forwardRef<HTMLDivElement, CubeGridProviderProps>(\n function GridProvider(props, outerRef) {\n let ref = useCombinedRefs(outerRef);\n\n let {\n children,\n columns = 2,\n gap = '0',\n width: forcedWidth,\n initialWidth,\n } = props;\n\n let [width, setWidth] = useState<Styles['width']>(\n forcedWidth || initialWidth || '100vw',\n );\n\n const resizeCallback = useCallback(() => {\n const el = ref?.current?.parentElement;\n\n if (!el) return;\n\n const computedStyle = getComputedStyle(el);\n const containerWidth =\n el.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight);\n\n setWidth(`${containerWidth}px`);\n }, [ref, columns, gap]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n const el = ref && ref.current && ref.current.parentNode;\n\n if (!el) return;\n\n let sensor;\n\n import('../utils/ResizeSensor')\n .then((module) => module.ResizeSensor)\n .then((ResizeSensor) => {\n sensor = new ResizeSensor(el, resizeCallback);\n });\n\n return () => {\n if (sensor) {\n sensor.detach();\n }\n };\n }, [resizeCallback]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n resizeCallback();\n }, [resizeCallback]);\n\n return (\n <GridElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n styles={{\n '--grid-width': width,\n '--columns-amount': columns,\n '--column-gap': gap,\n '--column-width': COLUMN_WIDTH,\n }}\n >\n {children}\n </GridElement>\n );\n },\n);\n"],"mappings":";;;;;;AAKA,MAAMS,cAAcP,MAAM,EACxBQ,QAAQ,EACNC,SAAS,WACX,EACF,CAAC;AAED,MAAMC,eACJ;AAUF,MAAaO,eAAehB,WAC1B,SAASgB,aAAaE,OAAOC,UAAU;CACrC,IAAIC,MAAMf,gBAAgBc,QAAQ;CAElC,IAAI,EACFR,UACAC,UAAU,GACVC,MAAM,KACNC,OAAOO,aACPN,iBACEG;CAEJ,IAAI,CAACJ,OAAOQ,YAAYlB,SACtBiB,eAAeN,gBAAgB,OACjC;CAEA,MAAMQ,iBAAiBrB,kBAAkB;EACvC,MAAMsB,KAAKJ,KAAKK,SAASC;EAEzB,IAAI,CAACF,IAAI;EAET,MAAMG,gBAAgBC,iBAAiBJ,EAAE;EACzC,MAAMK,iBACJL,GAAGM,cACHC,WAAWJ,cAAcK,WAAW,IACpCD,WAAWJ,cAAcM,YAAY;EAEvCX,SAAS,GAAGO,eAAc,GAAI;CAChC,GAAG;EAACT;EAAKR;EAASC;CAAG,CAAC;CAEtBV,gBAAgB;EACd,IAAIkB,aAAa;EAEjB,MAAMG,OAAKJ,OAAOA,IAAIK,WAAWL,IAAIK,QAAQS;EAE7C,IAAI,CAACV,MAAI;EAET,IAAIW;EAEJ,OAAO,2BAAwB,CAC5BC,MAAMC,WAAWA,OAAOC,YAAY,CAAC,CACrCF,MAAME,iBAAiB;GACtBH,SAAS,IAAIG,aAAad,MAAID,cAAc;EAC9C,CAAC;EAEH,aAAa;GACX,IAAIY,QACFA,OAAOI,OAAO;EAElB;CACF,GAAG,CAAChB,cAAc,CAAC;CAEnBpB,gBAAgB;EACd,IAAIkB,aAAa;EAEjBE,eAAe;CACjB,GAAG,CAACA,cAAc,CAAC;CAEnB,OACE,oBAAC,aAAD;EACE,GAAI1B,gBAAgBqB,OAAO,EAAEsB,YAAY,KAAK,CAAC;EAC1CpB;EACL,QAAQ;GACN,gBAAgBN;GAChB,oBAAoBF;GACpB,gBAAgBC;GAChB,kBAAkBJ;EACpB;EAECE;CACU,CAAA;AAEjB,CACF"}
1
+ {"version":3,"file":"GridProvider.js","names":["filterBaseProps","tasty","forwardRef","ReactNode","useCallback","useEffect","useState","useCombinedRefs","GridElement","styles","display","toLength","value","CubeGridProviderProps","children","columns","gap","width","initialWidth","GridProvider","HTMLDivElement","props","outerRef","ref","forcedWidth","setWidth","resizeCallback","el","current","parentElement","computedStyle","getComputedStyle","containerWidth","clientWidth","parseFloat","paddingLeft","paddingRight","parentNode","sensor","then","module","ResizeSensor","detach","eventProps"],"sources":["../../src/components/GridProvider.tsx"],"sourcesContent":["import { filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { useCombinedRefs } from '../utils/react';\n\nconst GridElement = tasty({\n styles: {\n display: 'contents',\n '$column-width':\n '(($grid-width - ($column-gap * ($columns-amount - 1))) / $columns-amount)',\n },\n});\n\n/** Numbers are pixels: a custom property gets no default unit. */\nfunction toLength(value: string | number) {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport interface CubeGridProviderProps {\n children: ReactNode;\n columns?: number;\n /** Gap between columns, as a single Tasty value such as `'1x'`, or a number of pixels. */\n gap?: string | number;\n /** Forced container width, as a single Tasty value, or a number of pixels. */\n width?: string | number;\n /** Width before the resize observer measures the container, as a single Tasty value, or a number of pixels. */\n initialWidth?: string | number;\n}\n\nexport const GridProvider = forwardRef<HTMLDivElement, CubeGridProviderProps>(\n function GridProvider(props, outerRef) {\n let ref = useCombinedRefs(outerRef);\n\n let {\n children,\n columns = 2,\n gap = 0,\n width: forcedWidth,\n initialWidth,\n } = props;\n\n let [width, setWidth] = useState<string | number>(\n forcedWidth || initialWidth || '100vw',\n );\n\n const resizeCallback = useCallback(() => {\n const el = ref?.current?.parentElement;\n\n if (!el) return;\n\n const computedStyle = getComputedStyle(el);\n const containerWidth =\n el.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight);\n\n setWidth(`${containerWidth}px`);\n }, [ref, columns, gap]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n const el = ref && ref.current && ref.current.parentNode;\n\n if (!el) return;\n\n let sensor;\n\n import('../utils/ResizeSensor')\n .then((module) => module.ResizeSensor)\n .then((ResizeSensor) => {\n sensor = new ResizeSensor(el, resizeCallback);\n });\n\n return () => {\n if (sensor) {\n sensor.detach();\n }\n };\n }, [resizeCallback]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n resizeCallback();\n }, [resizeCallback]);\n\n return (\n <GridElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n tokens={{\n '$grid-width': toLength(width),\n '$columns-amount': columns,\n '$column-gap': toLength(gap),\n }}\n >\n {children}\n </GridElement>\n );\n },\n);\n"],"mappings":";;;;;;AAKA,MAAMQ,cAAcP,MAAM,EACxBQ,QAAQ;CACNC,SAAS;CACT,iBACE;AACJ,EACF,CAAC;;AAGD,SAASC,SAASC,OAAwB;CACxC,OAAO,OAAOA,UAAU,WAAW,GAAGA,MAAK,MAAOA;AACpD;AAaA,MAAaO,eAAejB,WAC1B,SAASiB,aAAaE,OAAOC,UAAU;CACrC,IAAIC,MAAMhB,gBAAgBe,QAAQ;CAElC,IAAI,EACFR,UACAC,UAAU,GACVC,MAAM,GACNC,OAAOO,aACPN,iBACEG;CAEJ,IAAI,CAACJ,OAAOQ,YAAYnB,SACtBkB,eAAeN,gBAAgB,OACjC;CAEA,MAAMQ,iBAAiBtB,kBAAkB;EACvC,MAAMuB,KAAKJ,KAAKK,SAASC;EAEzB,IAAI,CAACF,IAAI;EAET,MAAMG,gBAAgBC,iBAAiBJ,EAAE;EACzC,MAAMK,iBACJL,GAAGM,cACHC,WAAWJ,cAAcK,WAAW,IACpCD,WAAWJ,cAAcM,YAAY;EAEvCX,SAAS,GAAGO,eAAc,GAAI;CAChC,GAAG;EAACT;EAAKR;EAASC;CAAG,CAAC;CAEtBX,gBAAgB;EACd,IAAImB,aAAa;EAEjB,MAAMG,OAAKJ,OAAOA,IAAIK,WAAWL,IAAIK,QAAQS;EAE7C,IAAI,CAACV,MAAI;EAET,IAAIW;EAEJ,OAAO,2BAAwB,CAC5BC,MAAMC,WAAWA,OAAOC,YAAY,CAAC,CACrCF,MAAME,iBAAiB;GACtBH,SAAS,IAAIG,aAAad,MAAID,cAAc;EAC9C,CAAC;EAEH,aAAa;GACX,IAAIY,QACFA,OAAOI,OAAO;EAElB;CACF,GAAG,CAAChB,cAAc,CAAC;CAEnBrB,gBAAgB;EACd,IAAImB,aAAa;EAEjBE,eAAe;CACjB,GAAG,CAACA,cAAc,CAAC;CAEnB,OACE,oBAAC,aAAD;EACE,GAAI1B,gBAAgBqB,OAAO,EAAEsB,YAAY,KAAK,CAAC;EAC1CpB;EACL,QAAQ;GACN,eAAeZ,SAASM,KAAK;GAC7B,mBAAmBF;GACnB,eAAeJ,SAASK,GAAG;EAC7B;EAECF;CACU,CAAA;AAEjB,CACF"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  //#region src/components/HiddenInput.tsx
4
4
  const HiddenInput = tasty({
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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 +1 @@
1
- {"version":3,"file":"Root.js","names":["BASE_STYLES","BaseProps","BLOCK_STYLES","configure","filterBaseProps","setGlobalPredefinedStates","tasty","TastyBatchProvider","useEffect","useLayoutEffect","useRef","useState","ModalProvider","I18nProvider","Provider","NavigationAdapter","TrackingProps","TrackingProvider","PaletteConfig","setPaletteConfig","EventBusProvider","AMBIENT_PREDEFINED_STATES","extractStyles","TASTY_VERSION","VERSION","GlobalStyles","AlertDialogApiProvider","OverlayProvider","PortalProvider","i18n","I18nInstance","batchInjection","units","x","r","cr","bw","ow","recipes","reset","margin","padding","border","outline","boxSizing","button","appearance","touchAction","textDecoration","fill","color","cursor","disabled","input","wordSpacing","caretColor","shadow","preset","hide","RootElement","id","styles","display","STYLES","CubeRootProps","tokens","key","palette","bodyStyles","fontDisplay","fonts","publicUrl","navigation","font","monospaceFont","applyLegacyTokens","tracking","cursorStrategy","locale","Root","allProps","$","_c","children","t0","_applyLegacyTokens","t1","style","props","undefined","t2","t3","t4","ref","rootRef","setRootRef","t5","current","t6","Symbol","for","T0","T1","T2","T3","t7","event","T4","t10","eventProps","t11","t12","$pointer","t13","t14","t15","t8","t9","t16","t17","t18","t19","_c","I18nProvider"],"sources":["../../src/components/Root.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n BaseProps,\n BLOCK_STYLES,\n configure,\n filterBaseProps,\n setGlobalPredefinedStates,\n tasty,\n TastyBatchProvider,\n} from '@tenphi/tasty';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { ModalProvider } from 'react-aria';\n\nimport { I18nProvider } from '../i18n';\nimport { Provider } from '../provider';\nimport { NavigationAdapter } from '../providers/navigation.types';\nimport { TrackingProps, TrackingProvider } from '../providers/TrackingProvider';\nimport { PaletteConfig, setPaletteConfig } from '../tokens/palette-config';\nimport { EventBusProvider } from '../utils/react/useEventBus';\nimport { AMBIENT_PREDEFINED_STATES } from '../utils/react/useScheme';\nimport { extractStyles } from '../utils/styles';\nimport { TASTY_VERSION, VERSION } from '../version';\n\nimport { GlobalStyles } from './GlobalStyles';\nimport { AlertDialogApiProvider } from './overlays/AlertDialog/AlertDialogApiProvider';\nimport { OverlayProvider } from './overlays/Notifications/OverlayProvider';\nimport { PortalProvider } from './portal';\n\nimport type { i18n as I18nInstance } from 'i18next';\n\n// Color-scheme aliases for the Glaze-generated palette (see `src/tokens/palette.ts`).\n// Attribute opt-in wins over system preference:\n// <html data-scheme=\"dark\"> → forces the dark scheme\n// <html data-contrast=\"high\"> → forces the high-contrast scheme\n// Otherwise falls back to the user's `prefers-color-scheme` / `prefers-contrast`.\n//\n// The strings live in `useScheme.ts`, which also reads the same two conditions\n// from JS (`useScheme()` / `useHighContrast()`) — one definition, so the CSS and\n// the JS answers cannot drift apart.\nsetGlobalPredefinedStates(AMBIENT_PREDEFINED_STATES);\n\nconfigure({\n // Collapse the kit's stylesheet writes into one style invalidation per commit\n // instead of one per component. Only takes effect inside a\n // `<TastyBatchProvider>` window, and windows have to be opened per portal\n // boundary because a commit that mounts a portal does not re-render `<Root>`.\n // The kit opens three: here, in `<Portal>` (tooltips, Select and\n // ListBoxPopover lists, notifications, AlertDialogZone) and in `<Overlay>`\n // (popovers, modals, trays — i.e. Dialog and Menu). Writes in any commit\n // without a window go straight through exactly as before, so a\n // `useLayoutEffect` can never measure an element whose rules have not landed.\n batchInjection: true,\n units: {\n x: 'var(--gap)',\n r: 'var(--radius)',\n cr: 'var(--card-radius)',\n bw: 'var(--border-width)',\n ow: 'var(--outline-width)',\n },\n recipes: {\n reset: {\n margin: 0,\n padding: 0,\n border: 0,\n outline: 0,\n boxSizing: 'border-box',\n },\n button: {\n appearance: 'none',\n touchAction: 'manipulation',\n textDecoration: 'none',\n '-webkit-tap-highlight-color': 'transparent',\n fill: '#clear',\n color: 'inherit',\n cursor: {\n '': 'default',\n ':is(a)': 'pointer',\n ':is(button)': '$pointer',\n disabled: 'not-allowed',\n },\n },\n input: {\n appearance: 'none',\n wordSpacing: 'initial',\n color: 'inherit',\n fill: '#clear',\n },\n 'input-autofill': {\n '@autofill': ':-webkit-autofill | :autofill',\n appearance: {\n '@autofill': 'none',\n },\n '-webkit-text-fill-color': {\n '': 'currentColor',\n '@autofill': '#primary-text',\n },\n caretColor: {\n '@autofill': '#primary-text',\n },\n shadow: {\n '@autofill': '0 0 0 9999rem #surface inset',\n },\n preset: {\n '@autofill': 'inherit',\n },\n '-webkit-opacity': {\n '': false,\n '[disabled]': '1',\n },\n },\n 'input-placeholder': {\n '-webkit-text-fill-color': '#placeholder',\n color: '#placeholder',\n },\n 'input-search-cancel-button': {\n hide: true,\n appearance: 'none',\n },\n },\n});\n\nconst RootElement = tasty({\n id: 'cube-ui-kit-root',\n styles: {\n display: 'contents',\n color: '#dark-02',\n preset: 't3',\n },\n});\n\nconst STYLES = [...BASE_STYLES, ...BLOCK_STYLES];\n\nexport interface CubeRootProps extends BaseProps {\n tokens?: { [key: string]: string };\n /**\n * Tune the generated color palette. Every zone — `accent`, `base` and each status\n * theme — takes the same seed: a color, or `{ hue, saturation }`. Plus the global\n * `surfaceMode`, `pastel` and `contrastLevel`. Omitted fields take their default, so\n * this prop describes the whole palette and dropping a field from it drops the\n * customization.\n *\n * Removing the prop entirely is the one thing that does *not* reset the\n * palette, so `<Root>` with no `palette` cannot clobber a host's imperative\n * `setPaletteConfig()` call. Pass `{}` to ask for the default.\n *\n * The first mount applies it during render, so the first paint is already\n * tuned; a later change applies in a layout effect, before paint.\n *\n * The palette is global process state, so this is a declarative wrapper over\n * `setPaletteConfig()`; both drive the same store, and the last write wins.\n * Root's layout effect runs after its descendants' in the same commit, so a\n * descendant's `setPaletteConfig()` from a layout effect in that commit loses\n * to the prop; write from a passive effect or an event handler instead.\n * See `Getting Started/Theming` in Storybook.\n */\n palette?: PaletteConfig;\n bodyStyles?: { [key: string]: string };\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n fonts?: boolean;\n publicUrl?: string;\n navigation?: NavigationAdapter;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via GlobalStyles */\n applyLegacyTokens?: boolean;\n tracking?: TrackingProps;\n cursorStrategy?: 'web' | 'native';\n /**\n * i18next instance for this tree. During SSR, pass a request-local instance\n * created with `createUIKitI18n(locale)`.\n */\n i18n?: I18nInstance;\n /** Override the React Aria formatting locale. */\n locale?: string;\n}\n\nexport function Root(allProps: CubeRootProps) {\n let {\n children,\n /** Raw css styles for body element */\n bodyStyles,\n fontDisplay = 'swap',\n fonts,\n publicUrl,\n navigation,\n font,\n monospaceFont,\n applyLegacyTokens: _applyLegacyTokens, // deprecated, ignored\n tracking,\n cursorStrategy = 'web',\n style,\n tokens,\n palette,\n i18n,\n locale,\n ...props\n } = allProps;\n\n // The first mount applies the palette during render, so the first paint and\n // SSR output already use it and `GlobalStyles` below reads it directly. A lazy\n // initializer runs once per mount, which React Compiler preserves; a `useMemo`\n // compiles to a call on every render. A later change waits for the layout\n // effect: a write notifies every palette subscriber, and React rejects\n // updating another component while this one renders. Updates from a layout\n // effect still land before paint. `setPaletteConfig` is a no-op when the\n // resolved config is unchanged, so the effect's mount pass, an inline object\n // literal and StrictMode's double calls cost nothing.\n //\n // A `<Root>` that mounts while another tree already subscribes, with a\n // different palette, still notifies that tree during its first render.\n useState(() => {\n if (palette) setPaletteConfig(palette);\n });\n\n useLayoutEffect(() => {\n if (palette) setPaletteConfig(palette);\n }, [palette]);\n\n const ref = useRef(null);\n\n const [rootRef, setRootRef] = useState();\n\n useEffect(() => {\n if (!rootRef) {\n // @ts-ignore\n setRootRef(ref?.current);\n }\n }, []);\n\n const styles = extractStyles(props, STYLES);\n\n return (\n <TastyBatchProvider>\n <I18nProvider i18n={i18n} locale={locale}>\n <Provider navigation={navigation} root={rootRef}>\n <TrackingProvider event={tracking?.event}>\n <RootElement\n ref={ref}\n data-uikit={VERSION}\n data-tasty={TASTY_VERSION}\n data-font-display={fontDisplay}\n {...filterBaseProps(props, { eventProps: true })}\n styles={styles}\n tokens={{\n $pointer: cursorStrategy === 'web' ? 'pointer' : 'default',\n ...tokens,\n }}\n // oxlint-disable-next-line react/forbid-component-props -- forwards the consumer's public `style` prop\n style={style}\n >\n <GlobalStyles\n bodyStyles={bodyStyles}\n publicUrl={publicUrl}\n fonts={fonts}\n font={font}\n monospaceFont={monospaceFont}\n fontDisplay={fontDisplay}\n />\n <ModalProvider>\n <PortalProvider value={ref}>\n <EventBusProvider>\n <OverlayProvider>\n <AlertDialogApiProvider>\n {children}\n </AlertDialogApiProvider>\n </OverlayProvider>\n </EventBusProvider>\n </PortalProvider>\n </ModalProvider>\n </RootElement>\n </TrackingProvider>\n </Provider>\n </I18nProvider>\n </TastyBatchProvider>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Root.js","names":["BASE_STYLES","BaseProps","BLOCK_STYLES","configure","filterBaseProps","setGlobalPredefinedStates","tasty","TastyBatchProvider","useEffect","useLayoutEffect","useRef","useState","ModalProvider","I18nProvider","Provider","NavigationAdapter","TrackingProps","TrackingProvider","PaletteConfig","setPaletteConfig","EventBusProvider","AMBIENT_PREDEFINED_STATES","extractStyles","TASTY_VERSION","VERSION","GlobalStyles","AlertDialogApiProvider","OverlayProvider","PortalProvider","i18n","I18nInstance","batchInjection","units","x","r","cr","bw","ow","recipes","reset","margin","padding","border","outline","boxSizing","button","appearance","touchAction","textDecoration","fill","color","cursor","disabled","input","wordSpacing","caretColor","shadow","preset","hide","RootElement","id","styles","display","STYLES","CubeRootProps","tokens","key","palette","bodyStyles","fontDisplay","fonts","publicUrl","navigation","font","monospaceFont","applyLegacyTokens","tracking","cursorStrategy","locale","Root","allProps","$","_c","children","t0","_applyLegacyTokens","t1","style","props","undefined","t2","t3","t4","ref","rootRef","setRootRef","t5","current","t6","Symbol","for","T0","T1","T2","T3","t7","event","T4","t10","eventProps","t11","t12","$pointer","t13","t14","t15","t8","t9","t16","t17","t18","t19","_c","I18nProvider"],"sources":["../../src/components/Root.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n BaseProps,\n BLOCK_STYLES,\n configure,\n filterBaseProps,\n setGlobalPredefinedStates,\n tasty,\n TastyBatchProvider,\n} from '@tenphi/tasty';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { ModalProvider } from 'react-aria';\n\nimport { I18nProvider } from '../i18n';\nimport { Provider } from '../provider';\nimport { NavigationAdapter } from '../providers/navigation.types';\nimport { TrackingProps, TrackingProvider } from '../providers/TrackingProvider';\nimport { PaletteConfig, setPaletteConfig } from '../tokens/palette-config';\nimport { EventBusProvider } from '../utils/react/useEventBus';\nimport { AMBIENT_PREDEFINED_STATES } from '../utils/react/useScheme';\nimport { extractStyles } from '../utils/styles';\nimport { TASTY_VERSION, VERSION } from '../version';\n\nimport { GlobalStyles } from './GlobalStyles';\nimport { AlertDialogApiProvider } from './overlays/AlertDialog/AlertDialogApiProvider';\nimport { OverlayProvider } from './overlays/Notifications/OverlayProvider';\nimport { PortalProvider } from './portal';\n\nimport type { i18n as I18nInstance } from 'i18next';\n\n// Color-scheme aliases for the Glaze-generated palette (see `src/tokens/palette.ts`).\n// Attribute opt-in wins over system preference:\n// <html data-scheme=\"dark\"> → forces the dark scheme\n// <html data-contrast=\"high\"> → forces the high-contrast scheme\n// Otherwise falls back to the user's `prefers-color-scheme` / `prefers-contrast`.\n//\n// The strings live in `useScheme.ts`, which also reads the same two conditions\n// from JS (`useScheme()` / `useHighContrast()`) — one definition, so the CSS and\n// the JS answers cannot drift apart.\nsetGlobalPredefinedStates(AMBIENT_PREDEFINED_STATES);\n\nconfigure({\n // Collapse the kit's stylesheet writes into one style invalidation per commit\n // instead of one per component. Only takes effect inside a\n // `<TastyBatchProvider>` window, and windows have to be opened per portal\n // boundary because a commit that mounts a portal does not re-render `<Root>`.\n // The kit opens three: here, in `<Portal>` (tooltips, Select and\n // ListBoxPopover lists, notifications, AlertDialogZone) and in `<Overlay>`\n // (popovers, modals, trays — i.e. Dialog and Menu). Writes in any commit\n // without a window go straight through exactly as before, so a\n // `useLayoutEffect` can never measure an element whose rules have not landed.\n batchInjection: true,\n units: {\n x: 'var(--gap)',\n r: 'var(--radius)',\n cr: 'var(--card-radius)',\n bw: 'var(--border-width)',\n ow: 'var(--outline-width)',\n },\n recipes: {\n reset: {\n margin: 0,\n padding: 0,\n border: 0,\n outline: 0,\n boxSizing: 'border-box',\n },\n button: {\n appearance: 'none',\n touchAction: 'manipulation',\n textDecoration: 'none',\n '-webkit-tap-highlight-color': 'transparent',\n fill: '#clear',\n color: 'inherit',\n cursor: {\n '': 'default',\n ':is(a)': 'pointer',\n ':is(button)': '$pointer',\n disabled: 'not-allowed',\n },\n },\n input: {\n appearance: 'none',\n wordSpacing: 'initial',\n color: 'inherit',\n fill: '#clear',\n },\n 'input-autofill': {\n '@autofill': ':-webkit-autofill | :autofill',\n appearance: {\n '@autofill': 'none',\n },\n '-webkit-text-fill-color': {\n '': 'currentColor',\n '@autofill': '#primary-text',\n },\n caretColor: {\n '@autofill': '#primary-text',\n },\n shadow: {\n '@autofill': '0 0 0 9999rem #surface inset',\n },\n preset: {\n '@autofill': 'inherit',\n },\n '-webkit-opacity': {\n '': false,\n '[disabled]': '1',\n },\n },\n 'input-placeholder': {\n '-webkit-text-fill-color': '#placeholder',\n color: '#placeholder',\n },\n 'input-search-cancel-button': {\n hide: true,\n appearance: 'none',\n },\n },\n});\n\nconst RootElement = tasty({\n id: 'cube-ui-kit-root',\n styles: {\n display: 'contents',\n color: '#dark-02',\n preset: 't3',\n },\n});\n\nconst STYLES = [...BASE_STYLES, ...BLOCK_STYLES];\n\nexport interface CubeRootProps extends BaseProps {\n tokens?: { [key: string]: string };\n /**\n * Tune the generated color palette. Every zone — `accent`, `base` and each status\n * theme — takes the same seed: a color, or `{ hue, saturation }`. Plus the global\n * `surfaceMode`, `pastel` and `contrastLevel`. Omitted fields take their default, so\n * this prop describes the whole palette and dropping a field from it drops the\n * customization.\n *\n * Removing the prop entirely is the one thing that does *not* reset the\n * palette, so `<Root>` with no `palette` cannot clobber a host's imperative\n * `setPaletteConfig()` call. Pass `{}` to ask for the default.\n *\n * The first mount applies it during render, so the first paint is already\n * tuned; a later change applies in a layout effect, before paint.\n *\n * The palette is global process state, so this is a declarative wrapper over\n * `setPaletteConfig()`; both drive the same store, and the last write wins.\n * Root's layout effect runs after its descendants' in the same commit, so a\n * descendant's `setPaletteConfig()` from a layout effect in that commit loses\n * to the prop; write from a passive effect or an event handler instead.\n * See `Getting Started/Theming` in Storybook.\n */\n palette?: PaletteConfig;\n bodyStyles?: { [key: string]: string };\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n fonts?: boolean;\n publicUrl?: string;\n navigation?: NavigationAdapter;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via GlobalStyles */\n applyLegacyTokens?: boolean;\n tracking?: TrackingProps;\n cursorStrategy?: 'web' | 'native';\n /**\n * i18next instance for this tree. During SSR, pass a request-local instance\n * created with `createUIKitI18n(locale)`.\n */\n i18n?: I18nInstance;\n /** Override the React Aria formatting locale. */\n locale?: string;\n}\n\nexport function Root(allProps: CubeRootProps) {\n let {\n children,\n /** Raw css styles for body element */\n bodyStyles,\n fontDisplay = 'swap',\n fonts,\n publicUrl,\n navigation,\n font,\n monospaceFont,\n applyLegacyTokens: _applyLegacyTokens, // deprecated, ignored\n tracking,\n cursorStrategy = 'web',\n style,\n tokens,\n palette,\n i18n,\n locale,\n ...props\n } = allProps;\n\n // The first mount applies the palette during render, so the first paint and\n // SSR output already use it and `GlobalStyles` below reads it directly. A lazy\n // initializer runs once per mount, which React Compiler preserves; a `useMemo`\n // compiles to a call on every render. A later change waits for the layout\n // effect: a write notifies every palette subscriber, and React rejects\n // updating another component while this one renders. Updates from a layout\n // effect still land before paint. `setPaletteConfig` is a no-op when the\n // resolved config is unchanged, so the effect's mount pass, an inline object\n // literal and StrictMode's double calls cost nothing.\n //\n // A `<Root>` that mounts while another tree already subscribes, with a\n // different palette, still notifies that tree during its first render.\n useState(() => {\n if (palette) setPaletteConfig(palette);\n });\n\n useLayoutEffect(() => {\n if (palette) setPaletteConfig(palette);\n }, [palette]);\n\n const ref = useRef(null);\n\n const [rootRef, setRootRef] = useState();\n\n useEffect(() => {\n if (!rootRef) {\n // @ts-ignore\n setRootRef(ref?.current);\n }\n }, []);\n\n const styles = extractStyles(props, STYLES);\n\n return (\n <TastyBatchProvider>\n <I18nProvider i18n={i18n} locale={locale}>\n <Provider navigation={navigation} root={rootRef}>\n <TrackingProvider event={tracking?.event}>\n <RootElement\n ref={ref}\n data-uikit={VERSION}\n data-tasty={TASTY_VERSION}\n data-font-display={fontDisplay}\n {...filterBaseProps(props, { eventProps: true })}\n styles={styles}\n tokens={{\n $pointer: cursorStrategy === 'web' ? 'pointer' : 'default',\n ...tokens,\n }}\n // oxlint-disable-next-line tasty/no-style-prop -- forwards the consumer's public `style` prop\n style={style}\n >\n <GlobalStyles\n bodyStyles={bodyStyles}\n publicUrl={publicUrl}\n fonts={fonts}\n font={font}\n monospaceFont={monospaceFont}\n fontDisplay={fontDisplay}\n />\n <ModalProvider>\n <PortalProvider value={ref}>\n <EventBusProvider>\n <OverlayProvider>\n <AlertDialogApiProvider>\n {children}\n </AlertDialogApiProvider>\n </OverlayProvider>\n </EventBusProvider>\n </PortalProvider>\n </ModalProvider>\n </RootElement>\n </TrackingProvider>\n </Provider>\n </I18nProvider>\n </TastyBatchProvider>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { Item as _Item } from "../../content/Item/Item.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
@@ -57,7 +57,7 @@ const DEFAULT_BUTTON_STYLES = {
57
57
  "size=xlarge": "t2m",
58
58
  "type=link": "strong"
59
59
  },
60
- outlineOffset: 1,
60
+ outlineOffset: "$outline-offset",
61
61
  padding: {
62
62
  "": 0,
63
63
  "raw-children & !has-icons": "$block-padding $inline-padding $block-padding $inline-padding",
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["FocusableRef","PressEvent","CONTAINER_STYLES","mergeStyles","Mods","Styles","tasty","TEXT_STYLES","Children","forwardRef","HTMLAttributes","isValidElement","ReactNode","RefObject","useMemo","useRef","useState","Placement","useEvent","useIsFirstRender","useWarn","CURRENT_CLEAR_STYLES","CURRENT_LINK_STYLES","CURRENT_OUTLINE_2_STYLES","CURRENT_OUTLINE_STYLES","CURRENT_PRIMARY_STYLES","DANGER_CLEAR_STYLES","DANGER_LINK_STYLES","DANGER_OUTLINE_2_STYLES","DANGER_OUTLINE_STYLES","DANGER_PRIMARY_STYLES","DEFAULT_CLEAR_STYLES","DEFAULT_LINK_STYLES","DEFAULT_OUTLINE_2_STYLES","DEFAULT_OUTLINE_STYLES","DEFAULT_PRIMARY_STYLES","NOTE_CLEAR_STYLES","NOTE_LINK_STYLES","NOTE_OUTLINE_2_STYLES","NOTE_OUTLINE_STYLES","NOTE_PRIMARY_STYLES","SPECIAL_CLEAR_STYLES","SPECIAL_LINK_STYLES","SPECIAL_OUTLINE_STYLES","SPECIAL_PRIMARY_STYLES","SUCCESS_CLEAR_STYLES","SUCCESS_LINK_STYLES","SUCCESS_OUTLINE_2_STYLES","SUCCESS_OUTLINE_STYLES","SUCCESS_PRIMARY_STYLES","WARNING_CLEAR_STYLES","WARNING_LINK_STYLES","WARNING_OUTLINE_2_STYLES","WARNING_OUTLINE_STYLES","WARNING_PRIMARY_STYLES","LoadingIcon","DynamicIcon","getDisabledElementProps","mergeProps","omitActivationEventProps","resolveIcon","useDismissParentPopover","extractStyles","useAutoTooltip","DisplayTransition","IconSwitch","mergeTooltipFocusProps","CubeTooltipProviderProps","CubeActionProps","useButtonSplitContext","useAction","BUTTON_SIZE_VALUES","const","ButtonMods","pressed","loading","selected","CubeButtonProps","icon","rightIcon","isLoading","isSelected","type","theme","size","tooltip","Omit","auto","defaultTooltipPlacement","ButtonVariant","STYLE_PROPS","DEFAULT_ICON_STYLES","$","position","display","placeItems","placeContent","placeSelf","width","height","pointerEvents","transition","DEFAULT_BUTTON_STYLES","recipe","flow","gap","preset","outlineOffset","padding","whiteSpace","radius","margin","zIndex","verticalAlign","$size","Icon","opacity","translate","RightIcon","Label","boxSizing","overflow","textOverflow","textAlign","ButtonElement","qa","styles","variants","Button","allProps","ref","HTMLElement","splitContext","sizeProp","label","children","iconProp","rightIconProp","mods","download","onPress","userOnPress","tokens","props","isExplicitlyDisabled","isDisabled","dismissParentPopover","buttonElementRef","wrappedOnPress","e","el","current","hasAttribute","closest","actionProps","isPressed","isDisabledElement","baseMods","resolvedIcon","resolvedRightIcon","hasLeftSlot","hasSlot","hasRightSlot","content","iconKey","displayName","name","rightIconKey","specifiedLabel","key","args","hasLeftIcon","hasChildren","singleIcon","hasIcons","rawChildren","toArray","some","child","isIconShown","setIsIconShown","isRightIconShown","setIsRightIconShown","isFirstRender","modifiers","labelProps","finalLabelProps","labelRef","renderWithTooltip","isTooltipActive","isAutoTooltipEnabled","undefined","hasOwnTooltip","isOnlyLoading","isNativelyDisabled","isInert","inertProps","keepEvents","as","elementProps","renderButtonElement","tooltipTriggerProps","tooltipRef","handleRef","element","domRef","isCustomSize","includes","sizeTokenValue","effectiveType","ariaPressed","role","tabIndex"],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef, PressEvent } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\n mergeStyles,\n Mods,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n Children,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n ReactNode,\n RefObject,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Placement } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_LINK_STYLES,\n CURRENT_OUTLINE_2_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_LINK_STYLES,\n DANGER_OUTLINE_2_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_OUTLINE_2_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_LINK_STYLES,\n NOTE_OUTLINE_2_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_OUTLINE_2_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_LINK_STYLES,\n WARNING_OUTLINE_2_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport {\n DynamicIcon,\n getDisabledElementProps,\n mergeProps,\n omitActivationEventProps,\n resolveIcon,\n useDismissParentPopover,\n} from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport { DisplayTransition } from '../../helpers/DisplayTransition';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { mergeTooltipFocusProps } from '../../overlays/Tooltip/split-trigger-props';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { CubeActionProps } from '../Action/Action';\nimport { useButtonSplitContext } from '../ButtonSplit/context';\nimport { useAction } from '../use-action';\n\nconst BUTTON_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Button component */\nexport type ButtonMods = Mods<{\n pressed?: boolean;\n loading?: boolean;\n selected?: boolean;\n 'has-icons'?: boolean;\n 'has-icon'?: boolean;\n 'has-right-icon'?: boolean;\n 'single-icon'?: boolean;\n 'text-only'?: boolean;\n 'raw-children'?: boolean;\n}>;\n\nexport interface CubeButtonProps extends CubeActionProps {\n icon?: DynamicIcon<ButtonMods>;\n rightIcon?: DynamicIcon<ButtonMods>;\n isLoading?: boolean;\n isSelected?: boolean;\n type?:\n | 'primary'\n | 'danger'\n | 'link'\n | 'clear'\n | 'outline'\n | 'outline-2'\n | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | 'current'\n | (string & {});\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n /**\n * @private\n * Default tooltip placement for the button.\n * @default \"top\"\n */\n defaultTooltipPlacement?: Placement;\n}\n\nexport type ButtonVariant =\n // The `current` theme mixes every color from the inherited `currentcolor`\n // instead of a brand ramp — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.outline'\n | 'current.outline-2'\n | 'current.clear'\n | 'current.link'\n | 'default.primary'\n | 'default.outline'\n | 'default.outline-2'\n | 'default.clear'\n | 'default.link'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.outline-2'\n | 'danger.clear'\n | 'danger.link'\n | 'success.primary'\n | 'success.outline'\n | 'success.outline-2'\n | 'success.clear'\n | 'success.link'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.outline-2'\n | 'warning.clear'\n | 'warning.link'\n | 'note.primary'\n | 'note.outline'\n | 'note.outline-2'\n | 'note.clear'\n | 'note.link'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear'\n | 'special.link';\n\nconst STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n position: 'relative',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n placeSelf: 'stretch',\n // overflow: 'hidden',\n width: 'fixed ($size - 2bw)',\n height: 'fixed ($size - 2bw)',\n pointerEvents: 'none',\n transition: 'theme, width, height, translate',\n};\n\nexport const DEFAULT_BUTTON_STYLES: Styles = {\n recipe: 'reset button',\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n placeItems: {\n '': 'stretch',\n 'raw-children': 'center stretch',\n },\n placeContent: 'center',\n position: 'relative',\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2m',\n 'type=link': 'strong',\n },\n outlineOffset: 1,\n padding: {\n '': 0,\n 'raw-children & !has-icons':\n '$block-padding $inline-padding $block-padding $inline-padding',\n 'type=link': '0',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2 - 2bw)',\n 'single-icon': 'fixed $size',\n 'type=link': 'min 1ch',\n },\n height: {\n '': 'fixed $size',\n 'type=link': 'initial',\n },\n whiteSpace: 'nowrap',\n radius: {\n '': true,\n 'type=link & !focused': 0,\n '@parent(button-split, >) & !:last-child': '1r left',\n '@parent(button-split, >) & !:first-child': '1r right',\n '@parent(button-split, >) & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary)':\n '-1bw left',\n },\n // oxlint-disable-next-line tasty/require-default-state -- outside a ButtonSplit the button sets no z-index, so the consumer's stacking applies\n zIndex: {\n '@parent(button-split, >) & :hover': 1,\n '@parent(button-split, >) & :focus-visible': 2,\n },\n transition: 'theme, grid-template, padding',\n verticalAlign: 'bottom',\n\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n 'size=inline': '(1lh + 2bw)',\n },\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n },\n '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n '$left-padding': {\n '': '$inline-padding',\n 'is-icon-shown': '0px',\n },\n '$right-padding': {\n '': '$inline-padding',\n 'is-right-icon-shown': '0px',\n },\n\n // Icon sub-element (recommended format)\n Icon: mergeStyles(DEFAULT_ICON_STYLES, {\n width: {\n '': 'fixed 0px',\n 'is-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-icon-shown': 1,\n },\n translate: {\n '': '($size * 1 / 4) 0',\n 'is-icon-shown': '0 0',\n },\n }),\n\n // RightIcon sub-element (recommended format)\n RightIcon: mergeStyles(DEFAULT_ICON_STYLES, {\n width: {\n '': 'fixed 0px',\n 'is-right-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-right-icon-shown': 1,\n },\n translate: {\n '': '($size * -1 / 4) 0',\n 'is-right-icon-shown': '0 0',\n },\n }),\n\n // Label sub-element (recommended format)\n Label: {\n $: '>',\n display: 'block',\n placeSelf: 'center stretch',\n boxSizing: 'border-box',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n textAlign: 'center',\n transition: 'theme, padding',\n padding: {\n '': '$block-padding $right-padding $block-padding $left-padding',\n 'type=link': '0',\n },\n },\n} as const;\n\nconst ButtonElement = tasty({\n qa: 'Button',\n styles: DEFAULT_BUTTON_STYLES,\n variants: {\n // Current theme — colors mixed from the inherited `currentcolor`\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.outline-2': CURRENT_OUTLINE_2_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n 'current.link': CURRENT_LINK_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.outline-2': DEFAULT_OUTLINE_2_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.outline-2': DANGER_OUTLINE_2_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n 'danger.link': DANGER_LINK_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.outline-2': SUCCESS_OUTLINE_2_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n 'success.link': SUCCESS_LINK_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.outline-2': WARNING_OUTLINE_2_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n 'warning.link': WARNING_LINK_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.outline-2': NOTE_OUTLINE_2_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n 'note.link': NOTE_LINK_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n 'special.link': SPECIAL_LINK_STYLES,\n },\n});\n\nexport const Button = forwardRef(function Button(\n allProps: CubeButtonProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const splitContext = useButtonSplitContext();\n\n let {\n type,\n size: sizeProp,\n label,\n children,\n theme = splitContext?.theme ?? 'default',\n icon: iconProp,\n rightIcon: rightIconProp,\n mods,\n download,\n tooltip = true,\n defaultTooltipPlacement = 'top',\n onPress: userOnPress,\n tokens,\n ...props\n } = allProps;\n\n type = type ?? splitContext?.type;\n const size =\n sizeProp ?? splitContext?.size ?? (type === 'link' ? 'inline' : 'medium');\n\n const isExplicitlyDisabled = splitContext?.isDisabled || props.isDisabled;\n const isDisabled = isExplicitlyDisabled || props.isLoading;\n const isLoading = props.isLoading;\n const isSelected = props.isSelected;\n\n // Default: pressing a Button inside an open popover closes that popover.\n // Opt-outs (handled inline below):\n // - `data-popover-trigger` (auto, applied by MenuTrigger/DialogTrigger\n // type='popover' so triggers don't dismiss the popover they live in)\n // - `data-popover-keep` on self or any ancestor (manual opt-out for\n // toggles, custom inline editors, etc.)\n // - `data-popover-keep-on-press` on self or any ancestor: the same opt-out\n // for presses only. Unlike `data-popover-keep`, it does not stop a click\n // in the subtree from closing a nested popover (a field's listbox).\n // Modals/trays don't subscribe at all, so this is a no-op there.\n const dismissParentPopover = useDismissParentPopover();\n const buttonElementRef = useRef<HTMLElement | null>(null);\n\n const wrappedOnPress = useEvent((e: PressEvent) => {\n userOnPress?.(e);\n const el = buttonElementRef.current;\n if (!el) return;\n if (el.hasAttribute('data-popover-trigger')) return;\n if (el.closest('[data-popover-keep], [data-popover-keep-on-press]')) {\n return;\n }\n dismissParentPopover(el);\n });\n\n const { actionProps, isPressed } = useAction(\n {\n ...allProps,\n isDisabled,\n onPress: wrappedOnPress,\n ...(label ? { label } : {}),\n },\n ref,\n );\n\n const styles = extractStyles(props, STYLE_PROPS);\n const isDisabledElement = actionProps.isDisabled;\n\n delete actionProps.isDisabled;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ButtonMods>(\n () => ({\n pressed: isPressed && !isDisabled,\n loading: isLoading,\n selected: isSelected,\n ...mods,\n }),\n [isPressed, isDisabled, isLoading, isSelected, mods],\n );\n\n // Resolve dynamic icon props\n const resolvedIcon = useMemo(\n () => resolveIcon(iconProp, baseMods),\n [iconProp, baseMods],\n );\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n const hasLeftSlot = resolvedIcon.hasSlot;\n const hasRightSlot = resolvedRightIcon.hasSlot;\n\n const icon: ReactNode = resolvedIcon.content;\n const rightIcon: ReactNode = resolvedRightIcon.content;\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = isLoading\n ? 'loading'\n : isValidElement(icon)\n ? (icon.type as any)?.displayName || (icon.type as any)?.name || 'icon'\n : icon\n ? 'icon'\n : 'empty';\n\n const rightIconKey = isValidElement(rightIcon)\n ? (rightIcon.type as any)?.displayName ||\n (rightIcon.type as any)?.name ||\n 'icon'\n : rightIcon\n ? 'icon'\n : 'empty';\n\n children = children || hasLeftSlot || hasRightSlot ? children : label;\n\n const specifiedLabel =\n label ?? props['aria-label'] ?? props['aria-labelledby'];\n\n // Warn about accessibility issues when button has no accessible label\n useWarn(!children && hasLeftSlot && !specifiedLabel, {\n key: ['button-icon-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide `icon` property for a Button and do not provide any children then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n useWarn(!children && !hasLeftSlot && !specifiedLabel, {\n key: ['button-no-content-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide no children for a Button then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n if (!children && !specifiedLabel) {\n label = 'Unnamed'; // fix to avoid warning in production\n }\n\n const hasLeftIcon = !!(hasLeftSlot || isLoading);\n const hasChildren = children != null;\n const singleIcon = !!(\n ((hasLeftIcon && !hasRightSlot) || (hasRightSlot && !hasLeftIcon)) &&\n !hasChildren\n );\n\n const hasIcons = hasLeftIcon || hasRightSlot;\n const rawChildren = !!(\n hasChildren &&\n typeof children !== 'string' &&\n !Children.toArray(children).some((child) => typeof child === 'string')\n );\n\n const [isIconShown, setIsIconShown] = useState(hasLeftIcon);\n const [isRightIconShown, setIsRightIconShown] = useState(hasRightSlot);\n const isFirstRender = useIsFirstRender();\n\n const modifiers = useMemo<ButtonMods>(\n () => ({\n ...baseMods,\n 'has-icons': hasIcons,\n 'has-icon': hasLeftIcon,\n 'is-icon-shown': isIconShown,\n 'has-right-icon': hasRightSlot,\n 'is-right-icon-shown': isRightIconShown,\n 'single-icon': singleIcon,\n 'text-only': !!(hasChildren && typeof children === 'string' && !hasIcons),\n 'raw-children': rawChildren,\n 'has-content': children != null,\n }),\n [\n baseMods,\n children,\n hasLeftIcon,\n hasRightSlot,\n singleIcon,\n hasIcons,\n hasChildren,\n rawChildren,\n isIconShown,\n isRightIconShown,\n ],\n );\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n isTooltipActive,\n isAutoTooltipEnabled,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // A tooltip the caller wrote, as opposed to the automatic one that shows a\n // label cut off by the layout.\n const hasOwnTooltip = isTooltipActive && !isAutoTooltipEnabled;\n // Loading without being disabled: busy, but not unavailable.\n const isOnlyLoading = !!isLoading && !isExplicitlyDisabled;\n\n // A disabled button still has to be able to show its tooltip — that is\n // usually where the reason for being unavailable is written. The native\n // `disabled` attribute would make the browser drop the hover that opens it,\n // so when a tooltip is present the button is marked `aria-disabled` and kept\n // inert instead. Only the caller's tooltip counts: the automatic one turns\n // on with the layout, and would make the button a Tab stop only while its\n // label is cut off.\n //\n // A button that is only loading keeps the focus it has, so a keyboard press\n // that starts the work does not drop it to the page, but Tab skips it, as it\n // would a disabled one, unless the caller's tooltip is there to be read. One\n // that is also `isDisabled` stays natively disabled: `SubmitButton` sets both\n // while a submission runs, and the frozen legacy Form contract pins that\n // button as `disabled`.\n //\n // The attribute is skipped for links too, where it is not valid markup and\n // `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: hasOwnTooltip || isOnlyLoading,\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\n\n // Without the native attribute, handlers a parent passed in (a `MenuTrigger`'s\n // `onKeyDown`) would still activate the button.\n const elementProps = isInert\n ? omitActivationEventProps(actionProps)\n : actionProps;\n\n // Render function that creates the button element\n const renderButtonElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ): ReactNode => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref from useAction\n const domRef = actionProps.ref as any;\n if (typeof domRef === 'function') {\n domRef(element);\n } else if (domRef) {\n domRef.current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Track the rendered DOM node so the dismiss wrapper around `onPress`\n // can read it synchronously without coupling to `useAction`'s ref shape.\n buttonElementRef.current = element;\n };\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n (size != null &&\n !(BUTTON_SIZE_VALUES as readonly string[]).includes(size));\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n // The `special` theme has no `outline-2` variant (it paints over\n // `#special-surface`, not `#surface-2`/`#surface-3`); fall back to\n // `outline` so the button still renders.\n const effectiveType =\n theme === 'special' && type === 'outline-2' ? 'outline' : type;\n\n // `isSelected` is a toggle state, so mirror it into `aria-pressed` — the\n // behaviour Button.docs.mdx has always described. An explicit\n // `aria-pressed` from the call site still wins.\n //\n // Skipped when the button renders as a link (`to`), where `aria-pressed` is\n // not a valid attribute, and when the call site sets its own `role` — a\n // button acting as a tab or an option needs `aria-selected`/`aria-current`\n // instead, and only the call site knows which.\n //\n // Applied *after* the spread: react-aria's `useButton` always returns an\n // `aria-pressed` key (undefined when the caller passed none), so anything\n // set before the spread is overwritten by it.\n const ariaPressed =\n allProps['aria-pressed'] ??\n (isSelected != null && actionProps.as !== 'a' && allProps.role == null\n ? isSelected\n : undefined);\n\n return (\n <ButtonElement\n download={download}\n aria-busy={isLoading || undefined}\n // The tooltip joins the button's own description rather than\n // replacing it while open.\n {...mergeProps(\n mergeTooltipFocusProps(elementProps, tooltipTriggerProps),\n inertProps,\n )}\n {...(isOnlyLoading && !hasOwnTooltip ? { tabIndex: -1 } : null)}\n aria-pressed={ariaPressed}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isNativelyDisabled}\n variant={`${theme}.${effectiveType ?? 'outline'}` as ButtonVariant}\n data-theme={theme}\n data-type={effectiveType ?? 'outline'}\n data-size={size}\n data-popover-dismiss=\"\"\n styles={styles}\n tokens={{\n ...tokens,\n ...(sizeTokenValue ? { $size: sizeTokenValue } : {}),\n }}\n >\n <DisplayTransition\n isShown={hasLeftIcon}\n animateOnMount={!isFirstRender}\n onToggle={setIsIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"Icon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {isLoading ? <LoadingIcon /> : icon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n {hasChildren &&\n (rawChildren ? (\n children\n ) : (\n <div data-element=\"Label\" {...finalLabelProps} ref={labelRef}>\n {children}\n </div>\n ))}\n <DisplayTransition\n isShown={hasRightSlot}\n animateOnMount={!isFirstRender}\n onToggle={setIsRightIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"RightIcon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {rightIcon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n </ButtonElement>\n );\n };\n\n return renderWithTooltip(renderButtonElement, defaultTooltipPlacement);\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgFA,MAAMuE,qBAAqB;CACzB;CACA;CACA;CACA;CACA;CACA;AAAQ;AAuGV,MAAMmB,cAAc,CAAC,GAAGxF,kBAAkB,GAAGK,WAAW;AAExD,MAAMoF,sBAA8B;CAClCC,GAAG;CACHC,UAAU;CACVC,SAAS;CACTC,YAAY;CACZC,cAAc;CACdC,WAAW;CAEXC,OAAO;CACPC,QAAQ;CACRC,eAAe;CACfC,YAAY;AACd;AAEA,MAAaC,wBAAgC;CAC3CC,QAAQ;CACRT,SAAS;CACTU,MAAM;CACNC,KAAK;CACLV,YAAY;EACV,IAAI;EACJ,gBAAgB;CAClB;CACAC,cAAc;CACdH,UAAU;CACVa,QAAQ;EACN,IAAI;EACJ,eAAe;EACf,eAAe;EACf,aAAa;CACf;CACAC,eAAe;CACfC,SAAS;EACP,IAAI;EACJ,6BACE;EACF,aAAa;CACf;CACAV,OAAO;EACL,IAAI;EACJ,6BAA6B;EAC7B,eAAe;EACf,aAAa;CACf;CACAC,QAAQ;EACN,IAAI;EACJ,aAAa;CACf;CACAU,YAAY;CACZC,QAAQ;EACN,IAAI;EACJ,wBAAwB;EACxB,2CAA2C;EAC3C,4CAA4C;EAC5C,2DAA2D;CAC7D;CACAC,QAAQ;EACN,IAAI;EACJ,6FACE;CACJ;CAEAC,QAAQ;EACN,qCAAqC;EACrC,6CAA6C;CAC/C;CACAX,YAAY;CACZY,eAAe;CAEfC,OAAO;EACL,IAAI;EACJ,eAAe;EACf,cAAc;EACd,eAAe;EACf,cAAc;EACd,eAAe;EACf,eAAe;CACjB;CACA,mBAAmB,EACjB,IAAI,6EACN;CACA,kBAAkB;EAChB,IAAI;EACJ,4BAA4B;CAC9B;CACA,wBAAwB;CACxB,uBAAuB;CACvB,iBAAiB;EACf,IAAI;EACJ,iBAAiB;CACnB;CACA,kBAAkB;EAChB,IAAI;EACJ,uBAAuB;CACzB;CAGAC,MAAMhH,YAAYwF,qBAAqB;EACrCO,OAAO;GACL,IAAI;GACJ,iBAAiB;EACnB;EACAkB,SAAS;GACP,IAAI;GACJ,iBAAiB;EACnB;EACAC,WAAW;GACT,IAAI;GACJ,iBAAiB;EACnB;CACF,CAAC;CAGDC,WAAWnH,YAAYwF,qBAAqB;EAC1CO,OAAO;GACL,IAAI;GACJ,uBAAuB;EACzB;EACAkB,SAAS;GACP,IAAI;GACJ,uBAAuB;EACzB;EACAC,WAAW;GACT,IAAI;GACJ,uBAAuB;EACzB;CACF,CAAC;CAGDE,OAAO;EACL3B,GAAG;EACHE,SAAS;EACTG,WAAW;EACXuB,WAAW;EACXX,YAAY;EACZY,UAAU;EACVC,cAAc;EACdxB,OAAO;EACPyB,WAAW;EACXtB,YAAY;EACZO,SAAS;GACP,IAAI;GACJ,aAAa;EACf;CACF;AACF;AAEA,MAAMgB,gBAAgBtH,MAAM;CAC1BuH,IAAI;CACJC,QAAQxB;CACRyB,UAAU;EAER,mBAAmBtG;EACnB,mBAAmBD;EACnB,qBAAqBD;EACrB,iBAAiBF;EACjB,gBAAgBC;EAGhB,mBAAmBa;EACnB,mBAAmBD;EACnB,qBAAqBD;EACrB,iBAAiBF;EACjB,gBAAgBC;EAGhB,kBAAkBF;EAClB,kBAAkBD;EAClB,oBAAoBD;EACpB,gBAAgBF;EAChB,eAAeC;EAGf,mBAAmBsB;EACnB,mBAAmBD;EACnB,qBAAqBD;EACrB,iBAAiBF;EACjB,gBAAgBC;EAGhB,mBAAmBQ;EACnB,mBAAmBD;EACnB,qBAAqBD;EACrB,iBAAiBF;EACjB,gBAAgBC;EAGhB,gBAAgBX;EAChB,gBAAgBD;EAChB,kBAAkBD;EAClB,cAAcF;EACd,aAAaC;EAGb,mBAAmBO;EACnB,mBAAmBD;EACnB,iBAAiBF;EACjB,gBAAgBC;CAClB;AACF,CAAC;AAED,MAAasF,SAASvH,WAAW,SAASuH,OACxCC,UACAC,KACA;CACA,MAAME,eAAe/D,sBAAsB;CAE3C,IAAI,EACFa,MACAE,MAAMiD,UACNC,OACAC,UACApD,QAAQiD,cAAcjD,SAAS,WAC/BL,MAAM0D,UACNzD,WAAW0D,eACXC,MACAC,UACAtD,UAAU,MACVG,0BAA0B,OAC1BoD,SAASC,aACTC,QACA,GAAGC,UACDd;CAEJ/C,OAAOA,QAAQkD,cAAclD;CAC7B,MAAME,OACJiD,YAAYD,cAAchD,SAASF,SAAS,SAAS,WAAW;CAElE,MAAM8D,uBAAuBZ,cAAca,cAAcF,MAAME;CAC/D,MAAMA,aAAaD,wBAAwBD,MAAM/D;CACjD,MAAMA,YAAY+D,MAAM/D;CACxB,MAAMC,aAAa8D,MAAM9D;CAYzB,MAAMiE,uBAAuBrF,wBAAwB;CACrD,MAAMsF,mBAAmBpI,OAA2B,IAAI;CAExD,MAAMqI,iBAAiBlI,UAAUmI,MAAkB;EACjDR,cAAcQ,CAAC;EACf,MAAMC,KAAKH,iBAAiBI;EAC5B,IAAI,CAACD,IAAI;EACT,IAAIA,GAAGE,aAAa,sBAAsB,GAAG;EAC7C,IAAIF,GAAGG,QAAQ,mDAAmD,GAChE;EAEFP,qBAAqBI,EAAE;CACzB,CAAC;CAED,MAAM,EAAEI,aAAaC,cAAcrF,UACjC;EACE,GAAG2D;EACHgB;EACAL,SAASQ;EACT,GAAId,QAAQ,EAAEA,MAAM,IAAI,CAAC;CAC3B,GACAJ,GACF;CAEA,MAAMJ,SAAShE,cAAciF,OAAOrD,WAAW;CAC/C,MAAMkE,oBAAoBF,YAAYT;CAEtC,OAAOS,YAAYT;CAGnB,MAAMY,WAAW/I,eACR;EACL4D,SAASiF,aAAa,CAACV;EACvBtE,SAASK;EACTJ,UAAUK;EACV,GAAGyD;CACL,IACA;EAACiB;EAAWV;EAAYjE;EAAWC;EAAYyD;CAAI,CACrD;CAGA,MAAMoB,eAAehJ,cACb8C,YAAY4E,UAAUqB,QAAQ,GACpC,CAACrB,UAAUqB,QAAQ,CACrB;CACA,MAAME,oBAAoBjJ,cAClB8C,YAAY6E,eAAeoB,QAAQ,GACzC,CAACpB,eAAeoB,QAAQ,CAC1B;CAEA,MAAMG,cAAcF,aAAaG;CACjC,MAAMC,eAAeH,kBAAkBE;CAEvC,MAAMnF,OAAkBgF,aAAaK;CACrC,MAAMpF,YAAuBgF,kBAAkBI;CAG/C,MAAMC,UAAUpF,YACZ,YACArE,eAAemE,IAAI,IAChBA,KAAKI,MAAcmF,eAAgBvF,KAAKI,MAAcoF,QAAQ,SAC/DxF,OACE,SACA;CAER,MAAMyF,eAAe5J,eAAeoE,SAAS,IACxCA,UAAUG,MAAcmF,eACxBtF,UAAUG,MAAcoF,QACzB,SACAvF,YACE,SACA;CAENwD,WAAWA,YAAYyB,eAAeE,eAAe3B,WAAWD;CAEhE,MAAMkC,iBACJlC,SAASS,MAAM,iBAAiBA,MAAM;CAGxC3H,QAAQ,CAACmH,YAAYyB,eAAe,CAACQ,gBAAgB;EACnDC,KAAK,CAAC,wBAAwBT,WAAW;EACzCU,MAAM,CACJ,wBACA,iLAAiL;CAErL,CAAC;CAEDtJ,QAAQ,CAACmH,YAAY,CAACyB,eAAe,CAACQ,gBAAgB;EACpDC,KAAK,CAAC,8BAA8BT,WAAW;EAC/CU,MAAM,CACJ,wBACA,6IAA6I;CAEjJ,CAAC;CAED,IAAI,CAACnC,YAAY,CAACiC,gBAChBlC,QAAQ;CAGV,MAAMqC,cAAc,CAAC,EAAEX,eAAehF;CACtC,MAAM4F,cAAcrC,YAAY;CAChC,MAAMsC,aAAa,CAAC,GAChBF,eAAe,CAACT,gBAAkBA,gBAAgB,CAACS,gBACrD,CAACC;CAGH,MAAME,WAAWH,eAAeT;CAChC,MAAMa,cAAc,CAAC,EACnBH,eACA,OAAOrC,aAAa,YACpB,CAAC/H,SAASwK,QAAQzC,QAAQ,CAAC,CAAC0C,MAAMC,UAAU,OAAOA,UAAU,QAAQ;CAGvE,MAAM,CAACC,aAAaC,kBAAkBpK,SAAS2J,WAAW;CAC1D,MAAM,CAACU,kBAAkBC,uBAAuBtK,SAASkJ,YAAY;CACrE,MAAMqB,gBAAgBpK,iBAAiB;CAEvC,MAAMqK,YAAY1K,eACT;EACL,GAAG+I;EACH,aAAaiB;EACb,YAAYH;EACZ,iBAAiBQ;EACjB,kBAAkBjB;EAClB,uBAAuBmB;EACvB,eAAeR;EACf,aAAa,CAAC,EAAED,eAAe,OAAOrC,aAAa,YAAY,CAACuC;EAChE,gBAAgBC;EAChB,eAAexC,YAAY;CAC7B,IACA;EACEsB;EACAtB;EACAoC;EACAT;EACAW;EACAC;EACAF;EACAG;EACAI;EACAE;CAAgB,CAEpB;CAEA,MAAM,EACJI,YAAYC,iBACZC,UACAC,mBACAC,iBACAC,yBACE/H,eAAe;EACjBsB;EACAkD;EACAkD,YAAYM,KAAAA;CACd,CAAC;CAID,MAAMC,gBAAgBH,mBAAmB,CAACC;CAE1C,MAAMG,gBAAgB,CAAC,CAACjH,aAAa,CAACgE;CAmBtC,MAAM,EAAEkD,oBAAoBC,SAASC,eAAe3I,wBAAwB;EAC1EwF,YAAYW;EACZyC,YAAYL,iBAAiBC;EAC7BK,IAAI,OAAO5C,YAAY4C,OAAO,WAAW5C,YAAY4C,KAAKP,KAAAA;CAC5D,CAAC;CAID,MAAMQ,eAAeJ,UACjBxI,yBAAyB+F,WAAW,IACpCA;CAGJ,MAAM8C,uBACJC,qBACAC,eACc;EAEd,MAAMC,aAAaC,YAAgC;GAEjD,MAAMC,SAASnD,YAAYxB;GAC3B,IAAI,OAAO2E,WAAW,YACpBA,OAAOD,OAAO;QACT,IAAIC,QACTA,OAAOtD,UAAUqD;GAGnB,IAAIF,YACF,WAAoBnD,UAAUqD;GAIhCzD,iBAAiBI,UAAUqD;EAC7B;EAGA,MAAME,eACJ,OAAO1H,SAAS,YACfA,QAAQ,QACP,CAAEb,mBAAyCwI,SAAS3H,IAAI;EAC5D,MAAM4H,iBACJ,OAAO5H,SAAS,WAAW,GAAGA,KAAI,MAAO0H,eAAe1H,OAAO2G,KAAAA;EAKjE,MAAMkB,gBACJ9H,UAAU,aAAaD,SAAS,cAAc,YAAYA;EAc5D,MAAMgI,cACJjF,SAAS,oBACRhD,cAAc,QAAQyE,YAAY4C,OAAO,OAAOrE,SAASkF,QAAQ,OAC9DlI,aACA8G,KAAAA;EAEN,OACE,qBAAC,eAAD;GACYpD;GACV,aAAW3D,aAAa+G,KAAAA;GAGxB,GAAIrI,WACFQ,uBAAuBqI,cAAcE,mBAAmB,GACxDL,UACF;GACA,GAAKH,iBAAiB,CAACD,gBAAgB,EAAEoB,UAAU,GAAG,IAAI;GAC1D,gBAAcF;GACd,KAAKP;GACL,MAAM;IAAE,GAAGjD,YAAYhB;IAAM,GAAG8C;GAAU;GAC1C,UAAUU;GACV,SAAS,GAAG/G,MAAK,GAAI8H,iBAAiB;GACtC,cAAY9H;GACZ,aAAW8H,iBAAiB;GAC5B,aAAW7H;GACX,wBAAqB;GACb0C;GACR,QAAQ;IACN,GAAGgB;IACH,GAAIkE,iBAAiB,EAAE9F,OAAO8F,eAAe,IAAI,CAAC;GACpD;GAvBF,UAAA;IAyBE,oBAAC,mBAAD;KACE,SAASrC;KACT,gBAAgB,CAACY;KACjB,UAAUH;KAER,WAAA,EAAElD,KAAAA,YACF,oBAAC,OAAD;MAAK,KAAKA;MAAK,gBAAa;MAAO,eAAY;MAC7C,UAAA,oBAAC,YAAD;OAAY,WAAA;OAAU,YAAYkC;OAC/BpF,UAAAA,YAAY,oBAAC,aAAD,CAAY,CAAA,IAAMF;MACrB,CAAA;KACT,CAAA;IAEU,CAAA;IAClB8F,gBACEG,cACCxC,WAEA,oBAAC,OAAD;KAAK,gBAAa;KAAQ,GAAImD;KAAiB,KAAKC;KACjDpD;IACE,CAAA;IAET,oBAAC,mBAAD;KACE,SAAS2B;KACT,gBAAgB,CAACqB;KACjB,UAAUD;KAER,WAAA,EAAEpD,KAAAA,YACF,oBAAC,OAAD;MAAK,KAAKA;MAAK,gBAAa;MAAY,eAAY;MAClD,UAAA,oBAAC,YAAD;OAAY,WAAA;OAAU,YAAYqC;OAC/BxF,UAAAA;MACS,CAAA;KACT,CAAA;IAEU,CAAA;GACN;;CAEnB;CAEA,OAAO6G,kBAAkBY,qBAAqBhH,uBAAuB;AACvE,CAAC"}
1
+ {"version":3,"file":"Button.js","names":["FocusableRef","PressEvent","CONTAINER_STYLES","mergeStyles","Mods","Styles","tasty","TEXT_STYLES","Children","forwardRef","HTMLAttributes","isValidElement","ReactNode","RefObject","useMemo","useRef","useState","Placement","useEvent","useIsFirstRender","useWarn","CURRENT_CLEAR_STYLES","CURRENT_LINK_STYLES","CURRENT_OUTLINE_2_STYLES","CURRENT_OUTLINE_STYLES","CURRENT_PRIMARY_STYLES","DANGER_CLEAR_STYLES","DANGER_LINK_STYLES","DANGER_OUTLINE_2_STYLES","DANGER_OUTLINE_STYLES","DANGER_PRIMARY_STYLES","DEFAULT_CLEAR_STYLES","DEFAULT_LINK_STYLES","DEFAULT_OUTLINE_2_STYLES","DEFAULT_OUTLINE_STYLES","DEFAULT_PRIMARY_STYLES","NOTE_CLEAR_STYLES","NOTE_LINK_STYLES","NOTE_OUTLINE_2_STYLES","NOTE_OUTLINE_STYLES","NOTE_PRIMARY_STYLES","SPECIAL_CLEAR_STYLES","SPECIAL_LINK_STYLES","SPECIAL_OUTLINE_STYLES","SPECIAL_PRIMARY_STYLES","SUCCESS_CLEAR_STYLES","SUCCESS_LINK_STYLES","SUCCESS_OUTLINE_2_STYLES","SUCCESS_OUTLINE_STYLES","SUCCESS_PRIMARY_STYLES","WARNING_CLEAR_STYLES","WARNING_LINK_STYLES","WARNING_OUTLINE_2_STYLES","WARNING_OUTLINE_STYLES","WARNING_PRIMARY_STYLES","LoadingIcon","DynamicIcon","getDisabledElementProps","mergeProps","omitActivationEventProps","resolveIcon","useDismissParentPopover","extractStyles","useAutoTooltip","DisplayTransition","IconSwitch","mergeTooltipFocusProps","CubeTooltipProviderProps","CubeActionProps","useButtonSplitContext","useAction","BUTTON_SIZE_VALUES","const","ButtonMods","pressed","loading","selected","CubeButtonProps","icon","rightIcon","isLoading","isSelected","type","theme","size","tooltip","Omit","auto","defaultTooltipPlacement","ButtonVariant","STYLE_PROPS","DEFAULT_ICON_STYLES","$","position","display","placeItems","placeContent","placeSelf","width","height","pointerEvents","transition","DEFAULT_BUTTON_STYLES","recipe","flow","gap","preset","outlineOffset","padding","whiteSpace","radius","margin","zIndex","verticalAlign","$size","Icon","opacity","translate","RightIcon","Label","boxSizing","overflow","textOverflow","textAlign","ButtonElement","qa","styles","variants","Button","allProps","ref","HTMLElement","splitContext","sizeProp","label","children","iconProp","rightIconProp","mods","download","onPress","userOnPress","tokens","props","isExplicitlyDisabled","isDisabled","dismissParentPopover","buttonElementRef","wrappedOnPress","e","el","current","hasAttribute","closest","actionProps","isPressed","isDisabledElement","baseMods","resolvedIcon","resolvedRightIcon","hasLeftSlot","hasSlot","hasRightSlot","content","iconKey","displayName","name","rightIconKey","specifiedLabel","key","args","hasLeftIcon","hasChildren","singleIcon","hasIcons","rawChildren","toArray","some","child","isIconShown","setIsIconShown","isRightIconShown","setIsRightIconShown","isFirstRender","modifiers","labelProps","finalLabelProps","labelRef","renderWithTooltip","isTooltipActive","isAutoTooltipEnabled","undefined","hasOwnTooltip","isOnlyLoading","isNativelyDisabled","isInert","inertProps","keepEvents","as","elementProps","renderButtonElement","tooltipTriggerProps","tooltipRef","handleRef","element","domRef","isCustomSize","includes","sizeTokenValue","effectiveType","ariaPressed","role","tabIndex"],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef, PressEvent } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\n mergeStyles,\n Mods,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n Children,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n ReactNode,\n RefObject,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Placement } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_LINK_STYLES,\n CURRENT_OUTLINE_2_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_LINK_STYLES,\n DANGER_OUTLINE_2_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_OUTLINE_2_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_LINK_STYLES,\n NOTE_OUTLINE_2_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_OUTLINE_2_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_LINK_STYLES,\n WARNING_OUTLINE_2_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport {\n DynamicIcon,\n getDisabledElementProps,\n mergeProps,\n omitActivationEventProps,\n resolveIcon,\n useDismissParentPopover,\n} from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport { DisplayTransition } from '../../helpers/DisplayTransition';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { mergeTooltipFocusProps } from '../../overlays/Tooltip/split-trigger-props';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { CubeActionProps } from '../Action/Action';\nimport { useButtonSplitContext } from '../ButtonSplit/context';\nimport { useAction } from '../use-action';\n\nconst BUTTON_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Button component */\nexport type ButtonMods = Mods<{\n pressed?: boolean;\n loading?: boolean;\n selected?: boolean;\n 'has-icons'?: boolean;\n 'has-icon'?: boolean;\n 'has-right-icon'?: boolean;\n 'single-icon'?: boolean;\n 'text-only'?: boolean;\n 'raw-children'?: boolean;\n}>;\n\nexport interface CubeButtonProps extends CubeActionProps {\n icon?: DynamicIcon<ButtonMods>;\n rightIcon?: DynamicIcon<ButtonMods>;\n isLoading?: boolean;\n isSelected?: boolean;\n type?:\n | 'primary'\n | 'danger'\n | 'link'\n | 'clear'\n | 'outline'\n | 'outline-2'\n | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | 'current'\n | (string & {});\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n /**\n * @private\n * Default tooltip placement for the button.\n * @default \"top\"\n */\n defaultTooltipPlacement?: Placement;\n}\n\nexport type ButtonVariant =\n // The `current` theme mixes every color from the inherited `currentcolor`\n // instead of a brand ramp — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.outline'\n | 'current.outline-2'\n | 'current.clear'\n | 'current.link'\n | 'default.primary'\n | 'default.outline'\n | 'default.outline-2'\n | 'default.clear'\n | 'default.link'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.outline-2'\n | 'danger.clear'\n | 'danger.link'\n | 'success.primary'\n | 'success.outline'\n | 'success.outline-2'\n | 'success.clear'\n | 'success.link'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.outline-2'\n | 'warning.clear'\n | 'warning.link'\n | 'note.primary'\n | 'note.outline'\n | 'note.outline-2'\n | 'note.clear'\n | 'note.link'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear'\n | 'special.link';\n\nconst STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n position: 'relative',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n placeSelf: 'stretch',\n // overflow: 'hidden',\n width: 'fixed ($size - 2bw)',\n height: 'fixed ($size - 2bw)',\n pointerEvents: 'none',\n transition: 'theme, width, height, translate',\n};\n\nexport const DEFAULT_BUTTON_STYLES: Styles = {\n recipe: 'reset button',\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n placeItems: {\n '': 'stretch',\n 'raw-children': 'center stretch',\n },\n placeContent: 'center',\n position: 'relative',\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2m',\n 'type=link': 'strong',\n },\n outlineOffset: '$outline-offset',\n padding: {\n '': 0,\n 'raw-children & !has-icons':\n '$block-padding $inline-padding $block-padding $inline-padding',\n 'type=link': '0',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2 - 2bw)',\n 'single-icon': 'fixed $size',\n 'type=link': 'min 1ch',\n },\n height: {\n '': 'fixed $size',\n 'type=link': 'initial',\n },\n whiteSpace: 'nowrap',\n radius: {\n '': true,\n 'type=link & !focused': 0,\n '@parent(button-split, >) & !:last-child': '1r left',\n '@parent(button-split, >) & !:first-child': '1r right',\n '@parent(button-split, >) & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary)':\n '-1bw left',\n },\n // oxlint-disable-next-line tasty/require-default-state -- outside a ButtonSplit the button sets no z-index, so the consumer's stacking applies\n zIndex: {\n '@parent(button-split, >) & :hover': 1,\n '@parent(button-split, >) & :focus-visible': 2,\n },\n transition: 'theme, grid-template, padding',\n verticalAlign: 'bottom',\n\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n 'size=inline': '(1lh + 2bw)',\n },\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n },\n '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n '$left-padding': {\n '': '$inline-padding',\n 'is-icon-shown': '0px',\n },\n '$right-padding': {\n '': '$inline-padding',\n 'is-right-icon-shown': '0px',\n },\n\n // Icon sub-element (recommended format)\n Icon: mergeStyles(DEFAULT_ICON_STYLES, {\n width: {\n '': 'fixed 0px',\n 'is-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-icon-shown': 1,\n },\n translate: {\n '': '($size * 1 / 4) 0',\n 'is-icon-shown': '0 0',\n },\n }),\n\n // RightIcon sub-element (recommended format)\n RightIcon: mergeStyles(DEFAULT_ICON_STYLES, {\n width: {\n '': 'fixed 0px',\n 'is-right-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-right-icon-shown': 1,\n },\n translate: {\n '': '($size * -1 / 4) 0',\n 'is-right-icon-shown': '0 0',\n },\n }),\n\n // Label sub-element (recommended format)\n Label: {\n $: '>',\n display: 'block',\n placeSelf: 'center stretch',\n boxSizing: 'border-box',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n textAlign: 'center',\n transition: 'theme, padding',\n padding: {\n '': '$block-padding $right-padding $block-padding $left-padding',\n 'type=link': '0',\n },\n },\n} as const;\n\nconst ButtonElement = tasty({\n qa: 'Button',\n styles: DEFAULT_BUTTON_STYLES,\n variants: {\n // Current theme — colors mixed from the inherited `currentcolor`\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.outline-2': CURRENT_OUTLINE_2_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n 'current.link': CURRENT_LINK_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.outline-2': DEFAULT_OUTLINE_2_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.outline-2': DANGER_OUTLINE_2_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n 'danger.link': DANGER_LINK_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.outline-2': SUCCESS_OUTLINE_2_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n 'success.link': SUCCESS_LINK_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.outline-2': WARNING_OUTLINE_2_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n 'warning.link': WARNING_LINK_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.outline-2': NOTE_OUTLINE_2_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n 'note.link': NOTE_LINK_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n 'special.link': SPECIAL_LINK_STYLES,\n },\n});\n\nexport const Button = forwardRef(function Button(\n allProps: CubeButtonProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const splitContext = useButtonSplitContext();\n\n let {\n type,\n size: sizeProp,\n label,\n children,\n theme = splitContext?.theme ?? 'default',\n icon: iconProp,\n rightIcon: rightIconProp,\n mods,\n download,\n tooltip = true,\n defaultTooltipPlacement = 'top',\n onPress: userOnPress,\n tokens,\n ...props\n } = allProps;\n\n type = type ?? splitContext?.type;\n const size =\n sizeProp ?? splitContext?.size ?? (type === 'link' ? 'inline' : 'medium');\n\n const isExplicitlyDisabled = splitContext?.isDisabled || props.isDisabled;\n const isDisabled = isExplicitlyDisabled || props.isLoading;\n const isLoading = props.isLoading;\n const isSelected = props.isSelected;\n\n // Default: pressing a Button inside an open popover closes that popover.\n // Opt-outs (handled inline below):\n // - `data-popover-trigger` (auto, applied by MenuTrigger/DialogTrigger\n // type='popover' so triggers don't dismiss the popover they live in)\n // - `data-popover-keep` on self or any ancestor (manual opt-out for\n // toggles, custom inline editors, etc.)\n // - `data-popover-keep-on-press` on self or any ancestor: the same opt-out\n // for presses only. Unlike `data-popover-keep`, it does not stop a click\n // in the subtree from closing a nested popover (a field's listbox).\n // Modals/trays don't subscribe at all, so this is a no-op there.\n const dismissParentPopover = useDismissParentPopover();\n const buttonElementRef = useRef<HTMLElement | null>(null);\n\n const wrappedOnPress = useEvent((e: PressEvent) => {\n userOnPress?.(e);\n const el = buttonElementRef.current;\n if (!el) return;\n if (el.hasAttribute('data-popover-trigger')) return;\n if (el.closest('[data-popover-keep], [data-popover-keep-on-press]')) {\n return;\n }\n dismissParentPopover(el);\n });\n\n const { actionProps, isPressed } = useAction(\n {\n ...allProps,\n isDisabled,\n onPress: wrappedOnPress,\n ...(label ? { label } : {}),\n },\n ref,\n );\n\n const styles = extractStyles(props, STYLE_PROPS);\n const isDisabledElement = actionProps.isDisabled;\n\n delete actionProps.isDisabled;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ButtonMods>(\n () => ({\n pressed: isPressed && !isDisabled,\n loading: isLoading,\n selected: isSelected,\n ...mods,\n }),\n [isPressed, isDisabled, isLoading, isSelected, mods],\n );\n\n // Resolve dynamic icon props\n const resolvedIcon = useMemo(\n () => resolveIcon(iconProp, baseMods),\n [iconProp, baseMods],\n );\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n const hasLeftSlot = resolvedIcon.hasSlot;\n const hasRightSlot = resolvedRightIcon.hasSlot;\n\n const icon: ReactNode = resolvedIcon.content;\n const rightIcon: ReactNode = resolvedRightIcon.content;\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = isLoading\n ? 'loading'\n : isValidElement(icon)\n ? (icon.type as any)?.displayName || (icon.type as any)?.name || 'icon'\n : icon\n ? 'icon'\n : 'empty';\n\n const rightIconKey = isValidElement(rightIcon)\n ? (rightIcon.type as any)?.displayName ||\n (rightIcon.type as any)?.name ||\n 'icon'\n : rightIcon\n ? 'icon'\n : 'empty';\n\n children = children || hasLeftSlot || hasRightSlot ? children : label;\n\n const specifiedLabel =\n label ?? props['aria-label'] ?? props['aria-labelledby'];\n\n // Warn about accessibility issues when button has no accessible label\n useWarn(!children && hasLeftSlot && !specifiedLabel, {\n key: ['button-icon-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide `icon` property for a Button and do not provide any children then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n useWarn(!children && !hasLeftSlot && !specifiedLabel, {\n key: ['button-no-content-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide no children for a Button then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n if (!children && !specifiedLabel) {\n label = 'Unnamed'; // fix to avoid warning in production\n }\n\n const hasLeftIcon = !!(hasLeftSlot || isLoading);\n const hasChildren = children != null;\n const singleIcon = !!(\n ((hasLeftIcon && !hasRightSlot) || (hasRightSlot && !hasLeftIcon)) &&\n !hasChildren\n );\n\n const hasIcons = hasLeftIcon || hasRightSlot;\n const rawChildren = !!(\n hasChildren &&\n typeof children !== 'string' &&\n !Children.toArray(children).some((child) => typeof child === 'string')\n );\n\n const [isIconShown, setIsIconShown] = useState(hasLeftIcon);\n const [isRightIconShown, setIsRightIconShown] = useState(hasRightSlot);\n const isFirstRender = useIsFirstRender();\n\n const modifiers = useMemo<ButtonMods>(\n () => ({\n ...baseMods,\n 'has-icons': hasIcons,\n 'has-icon': hasLeftIcon,\n 'is-icon-shown': isIconShown,\n 'has-right-icon': hasRightSlot,\n 'is-right-icon-shown': isRightIconShown,\n 'single-icon': singleIcon,\n 'text-only': !!(hasChildren && typeof children === 'string' && !hasIcons),\n 'raw-children': rawChildren,\n 'has-content': children != null,\n }),\n [\n baseMods,\n children,\n hasLeftIcon,\n hasRightSlot,\n singleIcon,\n hasIcons,\n hasChildren,\n rawChildren,\n isIconShown,\n isRightIconShown,\n ],\n );\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n isTooltipActive,\n isAutoTooltipEnabled,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // A tooltip the caller wrote, as opposed to the automatic one that shows a\n // label cut off by the layout.\n const hasOwnTooltip = isTooltipActive && !isAutoTooltipEnabled;\n // Loading without being disabled: busy, but not unavailable.\n const isOnlyLoading = !!isLoading && !isExplicitlyDisabled;\n\n // A disabled button still has to be able to show its tooltip — that is\n // usually where the reason for being unavailable is written. The native\n // `disabled` attribute would make the browser drop the hover that opens it,\n // so when a tooltip is present the button is marked `aria-disabled` and kept\n // inert instead. Only the caller's tooltip counts: the automatic one turns\n // on with the layout, and would make the button a Tab stop only while its\n // label is cut off.\n //\n // A button that is only loading keeps the focus it has, so a keyboard press\n // that starts the work does not drop it to the page, but Tab skips it, as it\n // would a disabled one, unless the caller's tooltip is there to be read. One\n // that is also `isDisabled` stays natively disabled: `SubmitButton` sets both\n // while a submission runs, and the frozen legacy Form contract pins that\n // button as `disabled`.\n //\n // The attribute is skipped for links too, where it is not valid markup and\n // `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: hasOwnTooltip || isOnlyLoading,\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\n\n // Without the native attribute, handlers a parent passed in (a `MenuTrigger`'s\n // `onKeyDown`) would still activate the button.\n const elementProps = isInert\n ? omitActivationEventProps(actionProps)\n : actionProps;\n\n // Render function that creates the button element\n const renderButtonElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ): ReactNode => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref from useAction\n const domRef = actionProps.ref as any;\n if (typeof domRef === 'function') {\n domRef(element);\n } else if (domRef) {\n domRef.current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Track the rendered DOM node so the dismiss wrapper around `onPress`\n // can read it synchronously without coupling to `useAction`'s ref shape.\n buttonElementRef.current = element;\n };\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n (size != null &&\n !(BUTTON_SIZE_VALUES as readonly string[]).includes(size));\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n // The `special` theme has no `outline-2` variant (it paints over\n // `#special-surface`, not `#surface-2`/`#surface-3`); fall back to\n // `outline` so the button still renders.\n const effectiveType =\n theme === 'special' && type === 'outline-2' ? 'outline' : type;\n\n // `isSelected` is a toggle state, so mirror it into `aria-pressed` — the\n // behaviour Button.docs.mdx has always described. An explicit\n // `aria-pressed` from the call site still wins.\n //\n // Skipped when the button renders as a link (`to`), where `aria-pressed` is\n // not a valid attribute, and when the call site sets its own `role` — a\n // button acting as a tab or an option needs `aria-selected`/`aria-current`\n // instead, and only the call site knows which.\n //\n // Applied *after* the spread: react-aria's `useButton` always returns an\n // `aria-pressed` key (undefined when the caller passed none), so anything\n // set before the spread is overwritten by it.\n const ariaPressed =\n allProps['aria-pressed'] ??\n (isSelected != null && actionProps.as !== 'a' && allProps.role == null\n ? isSelected\n : undefined);\n\n return (\n <ButtonElement\n download={download}\n aria-busy={isLoading || undefined}\n // The tooltip joins the button's own description rather than\n // replacing it while open.\n {...mergeProps(\n mergeTooltipFocusProps(elementProps, tooltipTriggerProps),\n inertProps,\n )}\n {...(isOnlyLoading && !hasOwnTooltip ? { tabIndex: -1 } : null)}\n aria-pressed={ariaPressed}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isNativelyDisabled}\n variant={`${theme}.${effectiveType ?? 'outline'}` as ButtonVariant}\n data-theme={theme}\n data-type={effectiveType ?? 'outline'}\n data-size={size}\n data-popover-dismiss=\"\"\n styles={styles}\n tokens={{\n ...tokens,\n ...(sizeTokenValue ? { $size: sizeTokenValue } : {}),\n }}\n >\n <DisplayTransition\n isShown={hasLeftIcon}\n animateOnMount={!isFirstRender}\n onToggle={setIsIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"Icon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {isLoading ? <LoadingIcon /> : icon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n {hasChildren &&\n (rawChildren ? (\n children\n ) : (\n <div data-element=\"Label\" {...finalLabelProps} ref={labelRef}>\n {children}\n </div>\n ))}\n <DisplayTransition\n isShown={hasRightSlot}\n animateOnMount={!isFirstRender}\n onToggle={setIsRightIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"RightIcon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {rightIcon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n </ButtonElement>\n );\n };\n\n return renderWithTooltip(renderButtonElement, defaultTooltipPlacement);\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | 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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  //#region src/components/actions/ButtonSplit/context.ts
4
4
  const ButtonSplitContext = createContext(null);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  //#region src/components/actions/CommandMenu/styled.tsx
4
4
  const StyledCommandMenu = tasty({