@cube-dev/ui-kit 0.181.0 → 0.183.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1133) hide show
  1. package/dist/CHANGELOG.md +34 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +48 -31
  3. package/dist/_internal/hooks/use-debounced-value.js.map +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +22 -7
  5. package/dist/_internal/hooks/use-deprecation-warning.js.map +1 -1
  6. package/dist/_internal/hooks/use-event.js +1 -1
  7. package/dist/_internal/hooks/use-event.js.map +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-is-first-render.js.map +1 -1
  10. package/dist/_internal/hooks/use-sync-ref.js +12 -4
  11. package/dist/_internal/hooks/use-sync-ref.js.map +1 -1
  12. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  13. package/dist/_internal/hooks/use-timer/timer.js.map +1 -1
  14. package/dist/_internal/hooks/use-timer/use-timer.js +90 -20
  15. package/dist/_internal/hooks/use-timer/use-timer.js.map +1 -1
  16. package/dist/_internal/hooks/use-warn.js +4 -4
  17. package/dist/_internal/hooks/use-warn.js.map +1 -1
  18. package/dist/components/Block.js +29 -7
  19. package/dist/components/Block.js.map +1 -1
  20. package/dist/components/CollectionItem.js +1 -1
  21. package/dist/components/CollectionItem.js.map +1 -1
  22. package/dist/components/GlobalStyles.js +33 -9
  23. package/dist/components/GlobalStyles.js.map +1 -1
  24. package/dist/components/GridProvider.js +4 -4
  25. package/dist/components/GridProvider.js.map +1 -1
  26. package/dist/components/HiddenInput.js +1 -1
  27. package/dist/components/HiddenInput.js.map +1 -1
  28. package/dist/components/Root.js +137 -42
  29. package/dist/components/Root.js.map +1 -1
  30. package/dist/components/actions/Action/Action.js +20 -8
  31. package/dist/components/actions/Action/Action.js.map +1 -1
  32. package/dist/components/actions/Banner/Banner.js +91 -22
  33. package/dist/components/actions/Banner/Banner.js.map +1 -1
  34. package/dist/components/actions/Button/Button.js +7 -5
  35. package/dist/components/actions/Button/Button.js.map +1 -1
  36. package/dist/components/actions/ButtonGroup/ButtonGroup.js +15 -5
  37. package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
  38. package/dist/components/actions/ButtonSplit/ButtonSplit.js +6 -4
  39. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  40. package/dist/components/actions/ButtonSplit/context.js +1 -1
  41. package/dist/components/actions/ButtonSplit/context.js.map +1 -1
  42. package/dist/components/actions/CommandMenu/CommandMenu.js +76 -76
  43. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  44. package/dist/components/actions/CommandMenu/styled.js +1 -1
  45. package/dist/components/actions/CommandMenu/styled.js.map +1 -1
  46. package/dist/components/actions/ItemAction/ItemAction.js +205 -68
  47. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  48. package/dist/components/actions/ItemActionContext.js +26 -7
  49. package/dist/components/actions/ItemActionContext.js.map +1 -1
  50. package/dist/components/actions/ItemActionsWrapper.js +215 -84
  51. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  52. package/dist/components/actions/ItemButton/ItemButton.js +2 -2
  53. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  54. package/dist/components/actions/Link/Link.js +16 -7
  55. package/dist/components/actions/Link/Link.js.map +1 -1
  56. package/dist/components/actions/Menu/Menu.js +127 -72
  57. package/dist/components/actions/Menu/Menu.js.map +1 -1
  58. package/dist/components/actions/Menu/MenuItem.js +116 -43
  59. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  60. package/dist/components/actions/Menu/MenuSection.js +85 -30
  61. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  62. package/dist/components/actions/Menu/MenuTrigger.js +316 -112
  63. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  64. package/dist/components/actions/Menu/SubMenuTrigger.js +6 -6
  65. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  66. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  67. package/dist/components/actions/Menu/SubmenuTriggerContext.js.map +1 -1
  68. package/dist/components/actions/Menu/context.js +1 -1
  69. package/dist/components/actions/Menu/context.js.map +1 -1
  70. package/dist/components/actions/Menu/styled.js +1 -1
  71. package/dist/components/actions/Menu/styled.js.map +1 -1
  72. package/dist/components/actions/actions-run.js +1 -1
  73. package/dist/components/actions/actions-run.js.map +1 -1
  74. package/dist/components/actions/index.js +1 -1
  75. package/dist/components/actions/index.js.map +1 -1
  76. package/dist/components/actions/use-action.js +3 -3
  77. package/dist/components/actions/use-action.js.map +1 -1
  78. package/dist/components/actions/use-anchored-menu.js +6 -6
  79. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  80. package/dist/components/actions/use-context-menu.js +12 -12
  81. package/dist/components/actions/use-context-menu.js.map +1 -1
  82. package/dist/components/content/ActiveZone/ActiveZone.js +84 -18
  83. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  84. package/dist/components/content/Alert/Alert.js +18 -7
  85. package/dist/components/content/Alert/Alert.js.map +1 -1
  86. package/dist/components/content/Alert/use-alert.js +53 -15
  87. package/dist/components/content/Alert/use-alert.js.map +1 -1
  88. package/dist/components/content/Avatar/Avatar.js +51 -13
  89. package/dist/components/content/Avatar/Avatar.js.map +1 -1
  90. package/dist/components/content/Badge/Badge.js +43 -10
  91. package/dist/components/content/Badge/Badge.js.map +1 -1
  92. package/dist/components/content/Card/Card.js +29 -7
  93. package/dist/components/content/Card/Card.js.map +1 -1
  94. package/dist/components/content/Content.js +29 -7
  95. package/dist/components/content/Content.js.map +1 -1
  96. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -2
  97. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  98. package/dist/components/content/CopySnippet/CopySnippet.js +220 -60
  99. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  100. package/dist/components/content/Disclosure/Disclosure.js +453 -194
  101. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  102. package/dist/components/content/Divider.js +52 -14
  103. package/dist/components/content/Divider.js.map +1 -1
  104. package/dist/components/content/Footer.js +29 -7
  105. package/dist/components/content/Footer.js.map +1 -1
  106. package/dist/components/content/Header.js +29 -7
  107. package/dist/components/content/Header.js.map +1 -1
  108. package/dist/components/content/HotKeys/HotKeys.js +55 -27
  109. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  110. package/dist/components/content/InfoBadge/InfoBadge.js +8 -8
  111. package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
  112. package/dist/components/content/InlineInput/InlineInput.js +429 -188
  113. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  114. package/dist/components/content/Item/Item.js +414 -155
  115. package/dist/components/content/Item/Item.js.map +1 -1
  116. package/dist/components/content/ItemBadge/ItemBadge.js +173 -59
  117. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  118. package/dist/components/content/ItemCard/ItemCard.js +34 -9
  119. package/dist/components/content/ItemCard/ItemCard.js.map +1 -1
  120. package/dist/components/content/Layout/GridLayout.js +38 -10
  121. package/dist/components/content/Layout/GridLayout.js.map +1 -1
  122. package/dist/components/content/Layout/Layout.js +30 -13
  123. package/dist/components/content/Layout/Layout.js.map +1 -1
  124. package/dist/components/content/Layout/LayoutBlock.js +33 -8
  125. package/dist/components/content/Layout/LayoutBlock.js.map +1 -1
  126. package/dist/components/content/Layout/LayoutCenter.js +48 -11
  127. package/dist/components/content/Layout/LayoutCenter.js.map +1 -1
  128. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  129. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  130. package/dist/components/content/Layout/LayoutContent.js +1 -1
  131. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  132. package/dist/components/content/Layout/LayoutContext.js +30 -21
  133. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  134. package/dist/components/content/Layout/LayoutFlex.js +33 -8
  135. package/dist/components/content/Layout/LayoutFlex.js.map +1 -1
  136. package/dist/components/content/Layout/LayoutFooter.js +53 -14
  137. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  138. package/dist/components/content/Layout/LayoutGrid.js +48 -11
  139. package/dist/components/content/Layout/LayoutGrid.js.map +1 -1
  140. package/dist/components/content/Layout/LayoutHeader.js +211 -57
  141. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  142. package/dist/components/content/Layout/LayoutPane.js +60 -14
  143. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  144. package/dist/components/content/Layout/LayoutPanel.js +59 -17
  145. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  146. package/dist/components/content/Layout/LayoutPanelHeader.js +89 -27
  147. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  148. package/dist/components/content/Layout/LayoutToolbar.js +33 -8
  149. package/dist/components/content/Layout/LayoutToolbar.js.map +1 -1
  150. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +206 -119
  151. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  152. package/dist/components/content/Layout/index.js +1 -1
  153. package/dist/components/content/Layout/index.js.map +1 -1
  154. package/dist/components/content/Layout/utils.js +1 -1
  155. package/dist/components/content/Layout/utils.js.map +1 -1
  156. package/dist/components/content/Paragraph.js +25 -9
  157. package/dist/components/content/Paragraph.js.map +1 -1
  158. package/dist/components/content/Placeholder/Placeholder.js +52 -14
  159. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  160. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  161. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  162. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  163. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  164. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +52 -17
  165. package/dist/components/content/PrismDiffCode/PrismDiffCode.js.map +1 -1
  166. package/dist/components/content/Result/Result.js +117 -38
  167. package/dist/components/content/Result/Result.js.map +1 -1
  168. package/dist/components/content/Skeleton/Skeleton.js +26 -17
  169. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  170. package/dist/components/content/Tag/Tag.js +68 -13
  171. package/dist/components/content/Tag/Tag.js.map +1 -1
  172. package/dist/components/content/Text.d.ts +14 -14
  173. package/dist/components/content/Text.js +61 -14
  174. package/dist/components/content/Text.js.map +1 -1
  175. package/dist/components/content/TextItem/TextItem.js +37 -16
  176. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  177. package/dist/components/content/Title.js +98 -23
  178. package/dist/components/content/Title.js.map +1 -1
  179. package/dist/components/content/Tree/Tree.js +32 -32
  180. package/dist/components/content/Tree/Tree.js.map +1 -1
  181. package/dist/components/content/Tree/TreeNode.js +10 -10
  182. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  183. package/dist/components/content/Tree/styled.js +1 -1
  184. package/dist/components/content/Tree/styled.js.map +1 -1
  185. package/dist/components/content/Tree/tree-index.js +1 -1
  186. package/dist/components/content/Tree/tree-index.js.map +1 -1
  187. package/dist/components/content/Tree/use-checkbox-tree.js +123 -89
  188. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  189. package/dist/components/content/Tree/use-load-data.js +52 -21
  190. package/dist/components/content/Tree/use-load-data.js.map +1 -1
  191. package/dist/components/content/highlightText.js +1 -1
  192. package/dist/components/content/highlightText.js.map +1 -1
  193. package/dist/components/content/use-auto-tooltip.js +1 -1
  194. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  195. package/dist/components/data/DataTable/DataTable.js +31 -31
  196. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  197. package/dist/components/data/ItemTable/ItemTable.js +41 -41
  198. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  199. package/dist/components/data/ItemTable/ItemTableBulkBar.js +11 -11
  200. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  201. package/dist/components/data/ItemTable/ItemTableDragPreview.js +41 -4
  202. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
  203. package/dist/components/data/ItemTable/ItemTableFooter.js +67 -30
  204. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
  205. package/dist/components/data/ItemTable/ItemTableToolbar.js +95 -28
  206. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  207. package/dist/components/data/TableBase/ColumnResizer.js +90 -41
  208. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
  209. package/dist/components/data/TableBase/RowCollection.js +1 -1
  210. package/dist/components/data/TableBase/RowCollection.js.map +1 -1
  211. package/dist/components/data/TableBase/TableHeaderCell.js +154 -64
  212. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
  213. package/dist/components/data/TableBase/TableRow.js +211 -69
  214. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  215. package/dist/components/data/TableBase/TableView.js +119 -80
  216. package/dist/components/data/TableBase/TableView.js.map +1 -1
  217. package/dist/components/data/TableBase/column-menu.js +1 -1
  218. package/dist/components/data/TableBase/column-menu.js.map +1 -1
  219. package/dist/components/data/TableBase/column-tint.js +1 -1
  220. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  221. package/dist/components/data/TableBase/row-menu.js +1 -1
  222. package/dist/components/data/TableBase/row-menu.js.map +1 -1
  223. package/dist/components/data/TableBase/styled.js +1 -1
  224. package/dist/components/data/TableBase/styled.js.map +1 -1
  225. package/dist/components/data/TableBase/table-tree.js +1 -1
  226. package/dist/components/data/TableBase/table-tree.js.map +1 -1
  227. package/dist/components/data/TableBase/types.js +1 -1
  228. package/dist/components/data/TableBase/types.js.map +1 -1
  229. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  230. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
  231. package/dist/components/data/TableBase/use-column-order.js +56 -12
  232. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  233. package/dist/components/data/TableBase/use-container-width.js +24 -10
  234. package/dist/components/data/TableBase/use-container-width.js.map +1 -1
  235. package/dist/components/data/TableBase/use-row-move-animation.js +68 -49
  236. package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -1
  237. package/dist/components/data/TableBase/use-scrollability.js +32 -18
  238. package/dist/components/data/TableBase/use-scrollability.js.map +1 -1
  239. package/dist/components/data/TableBase/use-table-columns.js +130 -60
  240. package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
  241. package/dist/components/data/TableBase/use-table-search.js +1 -1
  242. package/dist/components/data/TableBase/use-table-search.js.map +1 -1
  243. package/dist/components/data/TableBase/use-table-selection.js +39 -39
  244. package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
  245. package/dist/components/data/TableBase/use-table-sort.js +132 -68
  246. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  247. package/dist/components/data/TableBase/use-table-sorts.js +168 -101
  248. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  249. package/dist/components/data/TableBase/use-table-storage.js +2 -2
  250. package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
  251. package/dist/components/data/TableBase/use-table-tree-state.js +181 -86
  252. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  253. package/dist/components/fields/Checkbox/Checkbox.js +13 -6
  254. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  255. package/dist/components/fields/Checkbox/CheckboxGroup.js +101 -33
  256. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  257. package/dist/components/fields/Checkbox/context.js +1 -1
  258. package/dist/components/fields/Checkbox/context.js.map +1 -1
  259. package/dist/components/fields/ColorInput/ColorInput.js +329 -150
  260. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  261. package/dist/components/fields/ColorPicker/ColorPicker.js +16 -16
  262. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  263. package/dist/components/fields/ColorSwatch/ColorSwatch.js +52 -13
  264. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
  265. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +90 -28
  266. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  267. package/dist/components/fields/ComboBox/ComboBox.js +216 -134
  268. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  269. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +21 -1
  270. package/dist/components/fields/CommandTextArea/CommandTextArea.js +26 -7
  271. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  272. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  273. package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
  274. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +88 -49
  275. package/dist/components/fields/CommandTextArea/useCaretAnchor.js.map +1 -1
  276. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  277. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  278. package/dist/components/fields/DatePicker/DateInputBase.js +129 -34
  279. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  280. package/dist/components/fields/DatePicker/DatePicker.js +194 -66
  281. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  282. package/dist/components/fields/DatePicker/DatePickerButton.js +39 -8
  283. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  284. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  285. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  286. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  287. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  288. package/dist/components/fields/DatePicker/DatePickerSegment.js +109 -29
  289. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  290. package/dist/components/fields/DatePicker/DateRangePicker.js +224 -85
  291. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  292. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +473 -177
  293. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  294. package/dist/components/fields/DatePicker/MonthPicker.js +15 -6
  295. package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -1
  296. package/dist/components/fields/DatePicker/PeriodPicker.js +288 -91
  297. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  298. package/dist/components/fields/DatePicker/QuarterPicker.js +15 -6
  299. package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -1
  300. package/dist/components/fields/DatePicker/TimeInput.js +15 -7
  301. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  302. package/dist/components/fields/DatePicker/WeekPicker.js +15 -6
  303. package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -1
  304. package/dist/components/fields/DatePicker/YearPicker.js +15 -6
  305. package/dist/components/fields/DatePicker/YearPicker.js.map +1 -1
  306. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  307. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  308. package/dist/components/fields/DatePicker/period.js +1 -1
  309. package/dist/components/fields/DatePicker/period.js.map +1 -1
  310. package/dist/components/fields/DatePicker/props.js +1 -1
  311. package/dist/components/fields/DatePicker/props.js.map +1 -1
  312. package/dist/components/fields/DatePicker/utils.js +15 -8
  313. package/dist/components/fields/DatePicker/utils.js.map +1 -1
  314. package/dist/components/fields/FileInput/FileInput.js +3 -3
  315. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  316. package/dist/components/fields/FilterListBox/FilterListBox.js +87 -87
  317. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  318. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +2 -0
  319. package/dist/components/fields/FilterPicker/FilterPicker.js +24 -23
  320. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  321. package/dist/components/fields/Input/Input.js +1 -1
  322. package/dist/components/fields/Input/Input.js.map +1 -1
  323. package/dist/components/fields/ListBox/DraggableListBox.js +23 -10
  324. package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -1
  325. package/dist/components/fields/ListBox/ListBox.js +138 -53
  326. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  327. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +156 -37
  328. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  329. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  330. package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
  331. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +61 -33
  332. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  333. package/dist/components/fields/NumberInput/NumberInput.js +123 -33
  334. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  335. package/dist/components/fields/NumberInput/StepButton.js +53 -15
  336. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  337. package/dist/components/fields/PasswordInput/PasswordInput.js +149 -45
  338. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  339. package/dist/components/fields/Picker/Picker.d.ts +2 -0
  340. package/dist/components/fields/Picker/Picker.js +10 -9
  341. package/dist/components/fields/Picker/Picker.js.map +1 -1
  342. package/dist/components/fields/RadioGroup/Radio.js +273 -104
  343. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  344. package/dist/components/fields/RadioGroup/RadioGroup.js +149 -48
  345. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  346. package/dist/components/fields/RadioGroup/context.js +1 -1
  347. package/dist/components/fields/RadioGroup/context.js.map +1 -1
  348. package/dist/components/fields/SearchComboBox/SearchComboBox.js +80 -65
  349. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  350. package/dist/components/fields/SearchInput/SearchInput.js +91 -28
  351. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  352. package/dist/components/fields/Select/Select.d.ts +2 -0
  353. package/dist/components/fields/Select/Select.js +373 -118
  354. package/dist/components/fields/Select/Select.js.map +1 -1
  355. package/dist/components/fields/Slider/Gradation.js +45 -10
  356. package/dist/components/fields/Slider/Gradation.js.map +1 -1
  357. package/dist/components/fields/Slider/HueSlider.js +121 -32
  358. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  359. package/dist/components/fields/Slider/RangeSlider.js +46 -10
  360. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  361. package/dist/components/fields/Slider/Slider.js +108 -23
  362. package/dist/components/fields/Slider/Slider.js.map +1 -1
  363. package/dist/components/fields/Slider/SliderBase.js +2 -2
  364. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  365. package/dist/components/fields/Slider/SliderThumb.js +96 -37
  366. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  367. package/dist/components/fields/Slider/SliderTrack.js +64 -23
  368. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  369. package/dist/components/fields/Slider/elements.js +1 -1
  370. package/dist/components/fields/Slider/elements.js.map +1 -1
  371. package/dist/components/fields/Slider/index.js +1 -1
  372. package/dist/components/fields/Switch/Switch.js +190 -66
  373. package/dist/components/fields/Switch/Switch.js.map +1 -1
  374. package/dist/components/fields/TextArea/TextArea.js +137 -47
  375. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  376. package/dist/components/fields/TextInput/TextInput.js +80 -27
  377. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  378. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  379. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  380. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  381. package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
  382. package/dist/components/fields/TextInputMapper/TextInputMapper.js +156 -83
  383. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  384. package/dist/components/fields/TriggerActions.js +11 -2
  385. package/dist/components/fields/TriggerActions.js.map +1 -1
  386. package/dist/components/fields/color/ColorPanel.js +237 -59
  387. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  388. package/dist/components/fields/color/channels.js +1 -1
  389. package/dist/components/fields/color/channels.js.map +1 -1
  390. package/dist/components/fields/color/color.js +1 -1
  391. package/dist/components/fields/color/color.js.map +1 -1
  392. package/dist/components/fields/color/context.js +1 -1
  393. package/dist/components/fields/color/context.js.map +1 -1
  394. package/dist/components/form/FieldWrapper/FieldWrapper.js +195 -72
  395. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  396. package/dist/components/form/Form/Field.js +23 -9
  397. package/dist/components/form/Form/Field.js.map +1 -1
  398. package/dist/components/form/Form/Form.js +76 -30
  399. package/dist/components/form/Form/Form.js.map +1 -1
  400. package/dist/components/form/Form/ModernFormRoot.js +294 -81
  401. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  402. package/dist/components/form/Form/ResetButton/ResetButton.js +32 -10
  403. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  404. package/dist/components/form/Form/SubmitButton/SubmitButton.js +32 -10
  405. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  406. package/dist/components/form/Form/SubmitError.js +130 -32
  407. package/dist/components/form/Form/SubmitError.js.map +1 -1
  408. package/dist/components/form/Form/backend.js +1 -1
  409. package/dist/components/form/Form/backend.js.map +1 -1
  410. package/dist/components/form/Form/index.js +1 -1
  411. package/dist/components/form/Form/index.js.map +1 -1
  412. package/dist/components/form/Form/modern/actions.js +140 -45
  413. package/dist/components/form/Form/modern/actions.js.map +1 -1
  414. package/dist/components/form/Form/modern/context.js +1 -1
  415. package/dist/components/form/Form/modern/context.js.map +1 -1
  416. package/dist/components/form/Form/modern/controller.js +1 -1
  417. package/dist/components/form/Form/modern/controller.js.map +1 -1
  418. package/dist/components/form/Form/modern/field-binding.js +1 -1
  419. package/dist/components/form/Form/modern/field-binding.js.map +1 -1
  420. package/dist/components/form/Form/modern/field.js +1 -1
  421. package/dist/components/form/Form/modern/field.js.map +1 -1
  422. package/dist/components/form/Form/modern/react.js +102 -19
  423. package/dist/components/form/Form/modern/react.js.map +1 -1
  424. package/dist/components/form/Form/modern/store.js +13 -3
  425. package/dist/components/form/Form/modern/store.js.map +1 -1
  426. package/dist/components/form/Form/modern/types.d.ts +3 -1
  427. package/dist/components/form/Form/modern/validation.js +1 -1
  428. package/dist/components/form/Form/modern/validation.js.map +1 -1
  429. package/dist/components/form/Form/modern/values.js +1 -1
  430. package/dist/components/form/Form/modern/values.js.map +1 -1
  431. package/dist/components/form/Form/use-field/use-field-binding.js +236 -63
  432. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
  433. package/dist/components/form/Form/use-field/use-field-props.js +106 -61
  434. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  435. package/dist/components/form/Form/use-field/use-field.js +5 -4
  436. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  437. package/dist/components/form/Form/use-form.js +2 -1
  438. package/dist/components/form/Form/use-form.js.map +1 -1
  439. package/dist/components/form/Form/validation.js +1 -1
  440. package/dist/components/form/Form/validation.js.map +1 -1
  441. package/dist/components/form/Label.js +127 -37
  442. package/dist/components/form/Label.js.map +1 -1
  443. package/dist/components/form/validation/ValidationIndicator.js +20 -5
  444. package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
  445. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  446. package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
  447. package/dist/components/form/validation/use-validation-props.js +36 -10
  448. package/dist/components/form/validation/use-validation-props.js.map +1 -1
  449. package/dist/components/form/wrapper.js +1 -1
  450. package/dist/components/form/wrapper.js.map +1 -1
  451. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +49 -29
  452. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  453. package/dist/components/helpers/IconSwitch/IconSwitch.js +8 -8
  454. package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
  455. package/dist/components/layout/Board/Board.js +27 -9
  456. package/dist/components/layout/Board/Board.js.map +1 -1
  457. package/dist/components/layout/Board/BoardProvider.js +1 -1
  458. package/dist/components/layout/Board/BoardProvider.js.map +1 -1
  459. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  460. package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
  461. package/dist/components/layout/Board/Widget.js +1 -1
  462. package/dist/components/layout/Board/Widget.js.map +1 -1
  463. package/dist/components/layout/Board/WidgetHost.js +159 -121
  464. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  465. package/dist/components/layout/Board/board-context.js +14 -5
  466. package/dist/components/layout/Board/board-context.js.map +1 -1
  467. package/dist/components/layout/Board/board-store.js +1 -1
  468. package/dist/components/layout/Board/board-store.js.map +1 -1
  469. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  470. package/dist/components/layout/Board/grid-core/calculate.js.map +1 -1
  471. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  472. package/dist/components/layout/Board/grid-core/collision-modes.js.map +1 -1
  473. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  474. package/dist/components/layout/Board/grid-core/collision.js.map +1 -1
  475. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  476. package/dist/components/layout/Board/grid-core/compactors.js.map +1 -1
  477. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  478. package/dist/components/layout/Board/grid-core/constraints.js.map +1 -1
  479. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  480. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -1
  481. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  482. package/dist/components/layout/Board/grid-core/layout.js.map +1 -1
  483. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  484. package/dist/components/layout/Board/grid-core/placement.js.map +1 -1
  485. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  486. package/dist/components/layout/Board/grid-core/sort.js.map +1 -1
  487. package/dist/components/layout/Board/index.js +1 -1
  488. package/dist/components/layout/Board/index.js.map +1 -1
  489. package/dist/components/layout/Board/responsive-utils.js +1 -1
  490. package/dist/components/layout/Board/responsive-utils.js.map +1 -1
  491. package/dist/components/layout/Board/use-board-layout.js +8 -8
  492. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  493. package/dist/components/layout/Board/use-board-registry.js +257 -257
  494. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  495. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  496. package/dist/components/layout/Board/use-board-select-modifier-key.js.map +1 -1
  497. package/dist/components/layout/Board/use-board-selection.js +16 -16
  498. package/dist/components/layout/Board/use-board-selection.js.map +1 -1
  499. package/dist/components/layout/Flex.js +29 -7
  500. package/dist/components/layout/Flex.js.map +1 -1
  501. package/dist/components/layout/Flow.js +29 -7
  502. package/dist/components/layout/Flow.js.map +1 -1
  503. package/dist/components/layout/Grid.js +30 -7
  504. package/dist/components/layout/Grid.js.map +1 -1
  505. package/dist/components/layout/Panel.js +9 -9
  506. package/dist/components/layout/Panel.js.map +1 -1
  507. package/dist/components/layout/Prefix.js +59 -16
  508. package/dist/components/layout/Prefix.js.map +1 -1
  509. package/dist/components/layout/ResizablePanel.js +62 -32
  510. package/dist/components/layout/ResizablePanel.js.map +1 -1
  511. package/dist/components/layout/Space.js +55 -11
  512. package/dist/components/layout/Space.js.map +1 -1
  513. package/dist/components/layout/Suffix.js +59 -16
  514. package/dist/components/layout/Suffix.js.map +1 -1
  515. package/dist/components/navigation/Pagination/Pagination.js +394 -164
  516. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  517. package/dist/components/navigation/Pagination/use-pagination.js +69 -26
  518. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  519. package/dist/components/navigation/Tabs/DraggableTabList.js +25 -10
  520. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  521. package/dist/components/navigation/Tabs/TabButton.js +604 -235
  522. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  523. package/dist/components/navigation/Tabs/TabDropIndicator.js +65 -23
  524. package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
  525. package/dist/components/navigation/Tabs/TabPanel.js +47 -19
  526. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  527. package/dist/components/navigation/Tabs/TabPicker.js +105 -33
  528. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  529. package/dist/components/navigation/Tabs/Tabs.js +45 -45
  530. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  531. package/dist/components/navigation/Tabs/TabsAction.js +53 -19
  532. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  533. package/dist/components/navigation/Tabs/TabsContext.js +16 -6
  534. package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
  535. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  536. package/dist/components/navigation/Tabs/popover-placement.js.map +1 -1
  537. package/dist/components/navigation/Tabs/styled.js +1 -1
  538. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  539. package/dist/components/navigation/Tabs/types.js +1 -1
  540. package/dist/components/navigation/Tabs/types.js.map +1 -1
  541. package/dist/components/navigation/Tabs/use-tab-editing.js +50 -13
  542. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  543. package/dist/components/navigation/Tabs/use-tab-indicator.js +111 -63
  544. package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
  545. package/dist/components/organisms/StatsCard/StatsCard.js +54 -14
  546. package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
  547. package/dist/components/other/Calendar/Calendar.js +79 -31
  548. package/dist/components/other/Calendar/Calendar.js.map +1 -1
  549. package/dist/components/other/Calendar/CalendarCell.js +66 -20
  550. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  551. package/dist/components/other/Calendar/CalendarGrid.js +90 -40
  552. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  553. package/dist/components/other/Calendar/CalendarHeader.js +80 -17
  554. package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
  555. package/dist/components/other/Calendar/CalendarPanel.js +568 -144
  556. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  557. package/dist/components/other/Calendar/PeriodCalendar.js +425 -134
  558. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  559. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  560. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  561. package/dist/components/other/Calendar/RangeCalendar.js +50 -24
  562. package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
  563. package/dist/components/other/Calendar/styled.js +1 -1
  564. package/dist/components/other/Calendar/styled.js.map +1 -1
  565. package/dist/components/other/CubeLogo/CubeLogo.js +95 -34
  566. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  567. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  568. package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -1
  569. package/dist/components/overlays/AlertDialog/AlertDialog.js +153 -42
  570. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  571. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +76 -54
  572. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  573. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +146 -39
  574. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  575. package/dist/components/overlays/Dialog/Dialog.js +26 -10
  576. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  577. package/dist/components/overlays/Dialog/DialogContainer.js +13 -13
  578. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  579. package/dist/components/overlays/Dialog/DialogForm.d.ts +12 -7
  580. package/dist/components/overlays/Dialog/DialogForm.js +18 -7
  581. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  582. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +1 -1
  583. package/dist/components/overlays/Dialog/DialogTrigger.js +214 -59
  584. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  585. package/dist/components/overlays/Dialog/ModernDialogForm.js +350 -0
  586. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -0
  587. package/dist/components/overlays/Dialog/context.js +1 -1
  588. package/dist/components/overlays/Dialog/context.js.map +1 -1
  589. package/dist/components/overlays/Dialog/index.d.ts +1 -1
  590. package/dist/components/overlays/Dialog/use-dialog-container.js +6 -6
  591. package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
  592. package/dist/components/overlays/Modal/Modal.js +140 -27
  593. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  594. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  595. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
  596. package/dist/components/overlays/Modal/Overlay.js +4 -4
  597. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  598. package/dist/components/overlays/Modal/Popover.js +131 -29
  599. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  600. package/dist/components/overlays/Modal/Tray.js +142 -30
  601. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  602. package/dist/components/overlays/Modal/Underlay.js +36 -7
  603. package/dist/components/overlays/Modal/Underlay.js.map +1 -1
  604. package/dist/components/overlays/Notifications/Notification.js +69 -32
  605. package/dist/components/overlays/Notifications/Notification.js.map +1 -1
  606. package/dist/components/overlays/Notifications/NotificationAction.js +79 -26
  607. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  608. package/dist/components/overlays/Notifications/NotificationCard.js +138 -33
  609. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  610. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  611. package/dist/components/overlays/Notifications/NotificationContext.js.map +1 -1
  612. package/dist/components/overlays/Notifications/NotificationItem.js +63 -16
  613. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  614. package/dist/components/overlays/Notifications/OverlayContainer.js +312 -151
  615. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  616. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  617. package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
  618. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +210 -58
  619. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  620. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  621. package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -1
  622. package/dist/components/overlays/Notifications/format-relative-time.d.ts +1 -1
  623. package/dist/components/overlays/Notifications/format-relative-time.js +3 -3
  624. package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
  625. package/dist/components/overlays/Notifications/index.js +1 -1
  626. package/dist/components/overlays/Notifications/index.js.map +1 -1
  627. package/dist/components/overlays/Notifications/use-notification-state.js +51 -51
  628. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  629. package/dist/components/overlays/Notifications/use-notifications.js +12 -12
  630. package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
  631. package/dist/components/overlays/Notifications/use-overlay-timers.js +10 -10
  632. package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
  633. package/dist/components/overlays/Notifications/use-persistent-notifications.js +24 -5
  634. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  635. package/dist/components/overlays/Notifications/use-persistent-state.js +145 -43
  636. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  637. package/dist/components/overlays/Notifications/use-toast-state.js +25 -25
  638. package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
  639. package/dist/components/overlays/Toast/ToastItem.js +68 -15
  640. package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
  641. package/dist/components/overlays/Toast/index.js +100 -34
  642. package/dist/components/overlays/Toast/index.js.map +1 -1
  643. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  644. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  645. package/dist/components/overlays/Toast/useToast.js +9 -9
  646. package/dist/components/overlays/Toast/useToast.js.map +1 -1
  647. package/dist/components/overlays/Tooltip/Tooltip.js +88 -31
  648. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  649. package/dist/components/overlays/Tooltip/TooltipProvider.js +75 -10
  650. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  651. package/dist/components/overlays/Tooltip/TooltipTrigger.js +186 -77
  652. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  653. package/dist/components/overlays/Tooltip/context.js +1 -1
  654. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  655. package/dist/components/portal/Portal.js +18 -3
  656. package/dist/components/portal/Portal.js.map +1 -1
  657. package/dist/components/portal/PortalProvider.js +11 -2
  658. package/dist/components/portal/PortalProvider.js.map +1 -1
  659. package/dist/components/portal/usePortal.js +1 -1
  660. package/dist/components/portal/usePortal.js.map +1 -1
  661. package/dist/components/shared/DraggableCollection.js +23 -23
  662. package/dist/components/shared/DraggableCollection.js.map +1 -1
  663. package/dist/components/shared/InvalidIcon.js +1 -1
  664. package/dist/components/shared/InvalidIcon.js.map +1 -1
  665. package/dist/components/shared/ValidIcon.js +1 -1
  666. package/dist/components/shared/ValidIcon.js.map +1 -1
  667. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +156 -48
  668. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  669. package/dist/components/status/Spin/Cube.js +12 -3
  670. package/dist/components/status/Spin/Cube.js.map +1 -1
  671. package/dist/components/status/Spin/InternalSpinner.js +21 -6
  672. package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
  673. package/dist/components/status/Spin/Spin.js +31 -7
  674. package/dist/components/status/Spin/Spin.js.map +1 -1
  675. package/dist/components/status/Spin/SpinsContainer.js +23 -6
  676. package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
  677. package/dist/data/item-themes.js +1 -1
  678. package/dist/data/item-themes.js.map +1 -1
  679. package/dist/data/themes.js +1 -1
  680. package/dist/data/themes.js.map +1 -1
  681. package/dist/eslint-plugin/defaults.generated.js +18 -7
  682. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  683. package/dist/eslint-plugin/index.js +1 -1
  684. package/dist/eslint-plugin/index.js.map +1 -1
  685. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  686. package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
  687. package/dist/i18n/I18nProvider.js +54 -13
  688. package/dist/i18n/I18nProvider.js.map +1 -1
  689. package/dist/i18n/createFormatter.js +1 -1
  690. package/dist/i18n/createFormatter.js.map +1 -1
  691. package/dist/i18n/index.js +1 -1
  692. package/dist/i18n/index.js.map +1 -1
  693. package/dist/i18n/instance.js +1 -1
  694. package/dist/i18n/instance.js.map +1 -1
  695. package/dist/i18n/locales/de-DE/uikit.js +5 -2
  696. package/dist/i18n/locales/en-US/uikit.js +5 -2
  697. package/dist/i18n/locales/en-US/uikit.json.d.ts +15 -5
  698. package/dist/i18n/locales/es-ES/uikit.js +5 -2
  699. package/dist/i18n/locales/es-MX/uikit.js +5 -2
  700. package/dist/i18n/locales/fr-FR/uikit.js +5 -2
  701. package/dist/i18n/locales/it-IT/uikit.js +5 -2
  702. package/dist/i18n/locales/ja-JP/uikit.js +5 -2
  703. package/dist/i18n/locales/nb-NO/uikit.js +5 -2
  704. package/dist/i18n/locales/pt-BR/uikit.js +5 -2
  705. package/dist/i18n/locales/pt-PT/uikit.js +5 -2
  706. package/dist/i18n/locales/sv-SE/uikit.js +5 -2
  707. package/dist/i18n/locales/vi-VN/uikit.js +5 -2
  708. package/dist/i18n/locales.js +1 -1
  709. package/dist/i18n/locales.js.map +1 -1
  710. package/dist/i18n/useFormatter.js +10 -3
  711. package/dist/i18n/useFormatter.js.map +1 -1
  712. package/dist/i18n/useI18n.js +1 -1
  713. package/dist/i18n/useI18n.js.map +1 -1
  714. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  715. package/dist/icons/AdjustmentsHorizontalIcon.js.map +1 -1
  716. package/dist/icons/AdjustmentsIcon.js +1 -1
  717. package/dist/icons/AdjustmentsIcon.js.map +1 -1
  718. package/dist/icons/AiIcon.js +1 -1
  719. package/dist/icons/AiIcon.js.map +1 -1
  720. package/dist/icons/AreaChartIcon.js +1 -1
  721. package/dist/icons/AreaChartIcon.js.map +1 -1
  722. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  723. package/dist/icons/ArrowNarrowDownIcon.js.map +1 -1
  724. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  725. package/dist/icons/ArrowNarrowUpIcon.js.map +1 -1
  726. package/dist/icons/BackwardIcon.js +1 -1
  727. package/dist/icons/BackwardIcon.js.map +1 -1
  728. package/dist/icons/BarChartIcon.js +1 -1
  729. package/dist/icons/BarChartIcon.js.map +1 -1
  730. package/dist/icons/BellFilledIcon.js +1 -1
  731. package/dist/icons/BellFilledIcon.js.map +1 -1
  732. package/dist/icons/BellIcon.js +1 -1
  733. package/dist/icons/BellIcon.js.map +1 -1
  734. package/dist/icons/BooleanIcon.js +1 -1
  735. package/dist/icons/BooleanIcon.js.map +1 -1
  736. package/dist/icons/CalendarEditIcon.js +1 -1
  737. package/dist/icons/CalendarEditIcon.js.map +1 -1
  738. package/dist/icons/CalendarIcon.js +1 -1
  739. package/dist/icons/CalendarIcon.js.map +1 -1
  740. package/dist/icons/CaretDownIcon.js +1 -1
  741. package/dist/icons/CaretDownIcon.js.map +1 -1
  742. package/dist/icons/CaretUpIcon.js +1 -1
  743. package/dist/icons/CaretUpIcon.js.map +1 -1
  744. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  745. package/dist/icons/ChartAreaStackedIcon.js.map +1 -1
  746. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  747. package/dist/icons/ChartAreaStackedPercentageIcon.js.map +1 -1
  748. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  749. package/dist/icons/ChartBarGroupedHorizontalIcon.js.map +1 -1
  750. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  751. package/dist/icons/ChartBarGroupedIcon.js.map +1 -1
  752. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  753. package/dist/icons/ChartBarHorizontalIcon.js.map +1 -1
  754. package/dist/icons/ChartBarLineIcon.js +1 -1
  755. package/dist/icons/ChartBarLineIcon.js.map +1 -1
  756. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  757. package/dist/icons/ChartBarStackedHorizontalIcon.js.map +1 -1
  758. package/dist/icons/ChartBarStackedIcon.js +1 -1
  759. package/dist/icons/ChartBarStackedIcon.js.map +1 -1
  760. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  761. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js.map +1 -1
  762. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  763. package/dist/icons/ChartBarStackedPercentageIcon.js.map +1 -1
  764. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  765. package/dist/icons/ChartBoxPlot2Icon.js.map +1 -1
  766. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  767. package/dist/icons/ChartBoxPlotIcon.js.map +1 -1
  768. package/dist/icons/ChartBubbleIcon.js +1 -1
  769. package/dist/icons/ChartBubbleIcon.js.map +1 -1
  770. package/dist/icons/ChartDonut2Icon.js +1 -1
  771. package/dist/icons/ChartDonut2Icon.js.map +1 -1
  772. package/dist/icons/ChartFunnelIcon.js +1 -1
  773. package/dist/icons/ChartFunnelIcon.js.map +1 -1
  774. package/dist/icons/ChartHeatmapIcon.js +1 -1
  775. package/dist/icons/ChartHeatmapIcon.js.map +1 -1
  776. package/dist/icons/ChartKPIIcon.js +1 -1
  777. package/dist/icons/ChartKPIIcon.js.map +1 -1
  778. package/dist/icons/ChartPie2Icon.js +1 -1
  779. package/dist/icons/ChartPie2Icon.js.map +1 -1
  780. package/dist/icons/ChartScatterIcon.js +1 -1
  781. package/dist/icons/ChartScatterIcon.js.map +1 -1
  782. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  783. package/dist/icons/CheckCircleFilledIcon.js.map +1 -1
  784. package/dist/icons/CheckCircleIcon.js +1 -1
  785. package/dist/icons/CheckCircleIcon.js.map +1 -1
  786. package/dist/icons/CheckIcon.js +1 -1
  787. package/dist/icons/CheckIcon.js.map +1 -1
  788. package/dist/icons/CircleFilledIcon.js +1 -1
  789. package/dist/icons/CircleFilledIcon.js.map +1 -1
  790. package/dist/icons/ClearIcon.js +1 -1
  791. package/dist/icons/ClearIcon.js.map +1 -1
  792. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  793. package/dist/icons/CloseCircleFilledIcon.js.map +1 -1
  794. package/dist/icons/CloseCircleIcon.js +1 -1
  795. package/dist/icons/CloseCircleIcon.js.map +1 -1
  796. package/dist/icons/CloseIcon.js +1 -1
  797. package/dist/icons/CloseIcon.js.map +1 -1
  798. package/dist/icons/CodeIcon.js +1 -1
  799. package/dist/icons/CodeIcon.js.map +1 -1
  800. package/dist/icons/ColumnTotalIcon.js +1 -1
  801. package/dist/icons/ColumnTotalIcon.js.map +1 -1
  802. package/dist/icons/CopyIcon.js +1 -1
  803. package/dist/icons/CopyIcon.js.map +1 -1
  804. package/dist/icons/CountIcon.js +1 -1
  805. package/dist/icons/CountIcon.js.map +1 -1
  806. package/dist/icons/CubeIcon.js +1 -1
  807. package/dist/icons/CubeIcon.js.map +1 -1
  808. package/dist/icons/CubePauseIcon.js +1 -1
  809. package/dist/icons/CubePauseIcon.js.map +1 -1
  810. package/dist/icons/CubePlayIcon.js +1 -1
  811. package/dist/icons/CubePlayIcon.js.map +1 -1
  812. package/dist/icons/CurrencyDollarIcon.js +1 -1
  813. package/dist/icons/CurrencyDollarIcon.js.map +1 -1
  814. package/dist/icons/DangerIcon.js +1 -1
  815. package/dist/icons/DangerIcon.js.map +1 -1
  816. package/dist/icons/DashboardIcon.js +1 -1
  817. package/dist/icons/DashboardIcon.js.map +1 -1
  818. package/dist/icons/DatabaseIcon.js +1 -1
  819. package/dist/icons/DatabaseIcon.js.map +1 -1
  820. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  821. package/dist/icons/DecimalDecreaseIcon.js.map +1 -1
  822. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  823. package/dist/icons/DecimalIncreaseIcon.js.map +1 -1
  824. package/dist/icons/DirectionIcon.js +67 -22
  825. package/dist/icons/DirectionIcon.js.map +1 -1
  826. package/dist/icons/DonutIcon.js +1 -1
  827. package/dist/icons/DonutIcon.js.map +1 -1
  828. package/dist/icons/DownIcon.js +1 -1
  829. package/dist/icons/DownIcon.js.map +1 -1
  830. package/dist/icons/EditIcon.js +1 -1
  831. package/dist/icons/EditIcon.js.map +1 -1
  832. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  833. package/dist/icons/ExclamationCircleFilledIcon.js.map +1 -1
  834. package/dist/icons/ExclamationCircleIcon.js +1 -1
  835. package/dist/icons/ExclamationCircleIcon.js.map +1 -1
  836. package/dist/icons/ExclamationIcon.js +1 -1
  837. package/dist/icons/ExclamationIcon.js.map +1 -1
  838. package/dist/icons/EyeIcon.js +1 -1
  839. package/dist/icons/EyeIcon.js.map +1 -1
  840. package/dist/icons/EyeInvisibleIcon.js +1 -1
  841. package/dist/icons/EyeInvisibleIcon.js.map +1 -1
  842. package/dist/icons/FilterIcon.js +1 -1
  843. package/dist/icons/FilterIcon.js.map +1 -1
  844. package/dist/icons/FolderFilledIcon.js +1 -1
  845. package/dist/icons/FolderFilledIcon.js.map +1 -1
  846. package/dist/icons/FolderIcon.js +1 -1
  847. package/dist/icons/FolderIcon.js.map +1 -1
  848. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  849. package/dist/icons/FolderOpenFilledIcon.js.map +1 -1
  850. package/dist/icons/FolderOpenIcon.js +1 -1
  851. package/dist/icons/FolderOpenIcon.js.map +1 -1
  852. package/dist/icons/ForwardIcon.js +1 -1
  853. package/dist/icons/ForwardIcon.js.map +1 -1
  854. package/dist/icons/GripVerticalIcon.js +1 -1
  855. package/dist/icons/GripVerticalIcon.js.map +1 -1
  856. package/dist/icons/HierarchyIcon.js +1 -1
  857. package/dist/icons/HierarchyIcon.js.map +1 -1
  858. package/dist/icons/HierarchyOpenIcon.js +1 -1
  859. package/dist/icons/HierarchyOpenIcon.js.map +1 -1
  860. package/dist/icons/Icon.js +60 -16
  861. package/dist/icons/Icon.js.map +1 -1
  862. package/dist/icons/InfoCircleIcon.js +1 -1
  863. package/dist/icons/InfoCircleIcon.js.map +1 -1
  864. package/dist/icons/InfoIcon.js +1 -1
  865. package/dist/icons/InfoIcon.js.map +1 -1
  866. package/dist/icons/KeyIcon.js +1 -1
  867. package/dist/icons/KeyIcon.js.map +1 -1
  868. package/dist/icons/LeftIcon.js +1 -1
  869. package/dist/icons/LeftIcon.js.map +1 -1
  870. package/dist/icons/LineChartIcon.js +1 -1
  871. package/dist/icons/LineChartIcon.js.map +1 -1
  872. package/dist/icons/LoadingIcon.js +1 -1
  873. package/dist/icons/LoadingIcon.js.map +1 -1
  874. package/dist/icons/LockFilledIcon.js +1 -1
  875. package/dist/icons/LockFilledIcon.js.map +1 -1
  876. package/dist/icons/LockIcon.js +1 -1
  877. package/dist/icons/LockIcon.js.map +1 -1
  878. package/dist/icons/MoreIcon.js +1 -1
  879. package/dist/icons/MoreIcon.js.map +1 -1
  880. package/dist/icons/NotAllowedIcon.js +1 -1
  881. package/dist/icons/NotAllowedIcon.js.map +1 -1
  882. package/dist/icons/Number123Icon.js +1 -1
  883. package/dist/icons/Number123Icon.js.map +1 -1
  884. package/dist/icons/NumberIcon.js +1 -1
  885. package/dist/icons/NumberIcon.js.map +1 -1
  886. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  887. package/dist/icons/PauseCircleFilledIcon.js.map +1 -1
  888. package/dist/icons/PauseCircleIcon.js +1 -1
  889. package/dist/icons/PauseCircleIcon.js.map +1 -1
  890. package/dist/icons/PauseIcon.js +1 -1
  891. package/dist/icons/PauseIcon.js.map +1 -1
  892. package/dist/icons/PercentageIcon.js +1 -1
  893. package/dist/icons/PercentageIcon.js.map +1 -1
  894. package/dist/icons/PieChartIcon.js +1 -1
  895. package/dist/icons/PieChartIcon.js.map +1 -1
  896. package/dist/icons/PipetteIcon.js +1 -1
  897. package/dist/icons/PipetteIcon.js.map +1 -1
  898. package/dist/icons/PlayCircleIcon.js +1 -1
  899. package/dist/icons/PlayCircleIcon.js.map +1 -1
  900. package/dist/icons/PlayIcon.js +1 -1
  901. package/dist/icons/PlayIcon.js.map +1 -1
  902. package/dist/icons/PlusIcon.js +1 -1
  903. package/dist/icons/PlusIcon.js.map +1 -1
  904. package/dist/icons/ProgressBarIcon.js +1 -1
  905. package/dist/icons/ProgressBarIcon.js.map +1 -1
  906. package/dist/icons/ReloadIcon.js +1 -1
  907. package/dist/icons/ReloadIcon.js.map +1 -1
  908. package/dist/icons/ReportIcon.js +1 -1
  909. package/dist/icons/ReportIcon.js.map +1 -1
  910. package/dist/icons/ReturnIcon.js +1 -1
  911. package/dist/icons/ReturnIcon.js.map +1 -1
  912. package/dist/icons/RightIcon.js +1 -1
  913. package/dist/icons/RightIcon.js.map +1 -1
  914. package/dist/icons/RowTotalsIcon.js +1 -1
  915. package/dist/icons/RowTotalsIcon.js.map +1 -1
  916. package/dist/icons/SchemeIcon.js +1 -1
  917. package/dist/icons/SchemeIcon.js.map +1 -1
  918. package/dist/icons/SearchIcon.js +1 -1
  919. package/dist/icons/SearchIcon.js.map +1 -1
  920. package/dist/icons/SemanticQueryIcon.js +1 -1
  921. package/dist/icons/SemanticQueryIcon.js.map +1 -1
  922. package/dist/icons/SettingsIcon.js +1 -1
  923. package/dist/icons/SettingsIcon.js.map +1 -1
  924. package/dist/icons/ShieldFilledIcon.js +1 -1
  925. package/dist/icons/ShieldFilledIcon.js.map +1 -1
  926. package/dist/icons/ShieldIcon.js +1 -1
  927. package/dist/icons/ShieldIcon.js.map +1 -1
  928. package/dist/icons/SlashIcon.js +1 -1
  929. package/dist/icons/SlashIcon.js.map +1 -1
  930. package/dist/icons/SparklesIcon.js +1 -1
  931. package/dist/icons/SparklesIcon.js.map +1 -1
  932. package/dist/icons/SqlIcon.js +1 -1
  933. package/dist/icons/SqlIcon.js.map +1 -1
  934. package/dist/icons/StatsIcon.js +1 -1
  935. package/dist/icons/StatsIcon.js.map +1 -1
  936. package/dist/icons/StopIcon.js +1 -1
  937. package/dist/icons/StopIcon.js.map +1 -1
  938. package/dist/icons/StringIcon.js +1 -1
  939. package/dist/icons/StringIcon.js.map +1 -1
  940. package/dist/icons/SubtotalsIcon.js +1 -1
  941. package/dist/icons/SubtotalsIcon.js.map +1 -1
  942. package/dist/icons/SwitchIcon.js +1 -1
  943. package/dist/icons/SwitchIcon.js.map +1 -1
  944. package/dist/icons/TableIcon.js +1 -1
  945. package/dist/icons/TableIcon.js.map +1 -1
  946. package/dist/icons/ThumbsDownIcon.js +1 -1
  947. package/dist/icons/ThumbsDownIcon.js.map +1 -1
  948. package/dist/icons/ThumbsUpIcon.js +1 -1
  949. package/dist/icons/ThumbsUpIcon.js.map +1 -1
  950. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  951. package/dist/icons/ThunderboltCrossedIcon.js.map +1 -1
  952. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  953. package/dist/icons/ThunderboltFilledIcon.js.map +1 -1
  954. package/dist/icons/ThunderboltIcon.js +1 -1
  955. package/dist/icons/ThunderboltIcon.js.map +1 -1
  956. package/dist/icons/TimeIcon.js +1 -1
  957. package/dist/icons/TimeIcon.js.map +1 -1
  958. package/dist/icons/TrashIcon.js +1 -1
  959. package/dist/icons/TrashIcon.js.map +1 -1
  960. package/dist/icons/UnlockIcon.js +1 -1
  961. package/dist/icons/UnlockIcon.js.map +1 -1
  962. package/dist/icons/UpIcon.js +1 -1
  963. package/dist/icons/UpIcon.js.map +1 -1
  964. package/dist/icons/UserGroupIcon.js +1 -1
  965. package/dist/icons/UserGroupIcon.js.map +1 -1
  966. package/dist/icons/UserIcon.js +1 -1
  967. package/dist/icons/UserIcon.js.map +1 -1
  968. package/dist/icons/UserLockIcon.js +1 -1
  969. package/dist/icons/UserLockIcon.js.map +1 -1
  970. package/dist/icons/ViewIcon.js +1 -1
  971. package/dist/icons/ViewIcon.js.map +1 -1
  972. package/dist/icons/WarningFilledIcon.js +1 -1
  973. package/dist/icons/WarningFilledIcon.js.map +1 -1
  974. package/dist/icons/WarningIcon.js +1 -1
  975. package/dist/icons/WarningIcon.js.map +1 -1
  976. package/dist/icons/wrap-icon.js +15 -7
  977. package/dist/icons/wrap-icon.js.map +1 -1
  978. package/dist/index.d.ts +22 -22
  979. package/dist/index.js +1 -1
  980. package/dist/index.js.map +1 -1
  981. package/dist/probe/canonicalize.js +2 -2
  982. package/dist/probe/canonicalize.js.map +1 -1
  983. package/dist/probe/css.js +1 -1
  984. package/dist/probe/css.js.map +1 -1
  985. package/dist/probe/index.js +1 -1
  986. package/dist/provider.js +17 -7
  987. package/dist/provider.js.map +1 -1
  988. package/dist/providers/TrackingProvider.js +33 -9
  989. package/dist/providers/TrackingProvider.js.map +1 -1
  990. package/dist/providers/navigationAdapter.default.js +1 -1
  991. package/dist/providers/navigationAdapter.default.js.map +1 -1
  992. package/dist/tokens/all-tokens.js +1 -1
  993. package/dist/tokens/all-tokens.js.map +1 -1
  994. package/dist/tokens/base.js +2 -2
  995. package/dist/tokens/base.js.map +1 -1
  996. package/dist/tokens/color-seed.js +1 -1
  997. package/dist/tokens/color-seed.js.map +1 -1
  998. package/dist/tokens/color-theme.js +18 -3
  999. package/dist/tokens/color-theme.js.map +1 -1
  1000. package/dist/tokens/colors.js +1 -1
  1001. package/dist/tokens/colors.js.map +1 -1
  1002. package/dist/tokens/layout.js +1 -1
  1003. package/dist/tokens/layout.js.map +1 -1
  1004. package/dist/tokens/lazy-styles.js +1 -1
  1005. package/dist/tokens/lazy-styles.js.map +1 -1
  1006. package/dist/tokens/legacy-color.js +1 -1
  1007. package/dist/tokens/legacy-color.js.map +1 -1
  1008. package/dist/tokens/palette-config.js +9 -2
  1009. package/dist/tokens/palette-config.js.map +1 -1
  1010. package/dist/tokens/palette.js +1 -1
  1011. package/dist/tokens/palette.js.map +1 -1
  1012. package/dist/tokens/resolve.js +85 -21
  1013. package/dist/tokens/resolve.js.map +1 -1
  1014. package/dist/tokens/shadows.js +1 -1
  1015. package/dist/tokens/shadows.js.map +1 -1
  1016. package/dist/tokens/sizes.js +1 -1
  1017. package/dist/tokens/sizes.js.map +1 -1
  1018. package/dist/tokens/spacing.js +1 -1
  1019. package/dist/tokens/spacing.js.map +1 -1
  1020. package/dist/tokens/typography.js +1 -1
  1021. package/dist/tokens/typography.js.map +1 -1
  1022. package/dist/utils/ResizeSensor.js +1 -1
  1023. package/dist/utils/ResizeSensor.js.map +1 -1
  1024. package/dist/utils/colors.js +1 -1
  1025. package/dist/utils/colors.js.map +1 -1
  1026. package/dist/utils/dotize.js +1 -1
  1027. package/dist/utils/dotize.js.map +1 -1
  1028. package/dist/utils/is-dev-env.js +1 -1
  1029. package/dist/utils/is-dev-env.js.map +1 -1
  1030. package/dist/utils/modules.js +1 -1
  1031. package/dist/utils/modules.js.map +1 -1
  1032. package/dist/utils/promise.js +1 -1
  1033. package/dist/utils/promise.js.map +1 -1
  1034. package/dist/utils/raf.js +1 -1
  1035. package/dist/utils/raf.js.map +1 -1
  1036. package/dist/utils/random.js +1 -1
  1037. package/dist/utils/random.js.map +1 -1
  1038. package/dist/utils/range.js +1 -1
  1039. package/dist/utils/range.js.map +1 -1
  1040. package/dist/utils/react/RenderCache.js +2 -2
  1041. package/dist/utils/react/RenderCache.js.map +1 -1
  1042. package/dist/utils/react/Slots.js +67 -24
  1043. package/dist/utils/react/Slots.js.map +1 -1
  1044. package/dist/utils/react/chain.js +1 -1
  1045. package/dist/utils/react/chain.js.map +1 -1
  1046. package/dist/utils/react/disabledProps.js +1 -1
  1047. package/dist/utils/react/disabledProps.js.map +1 -1
  1048. package/dist/utils/react/escapePropagation.js +1 -1
  1049. package/dist/utils/react/escapePropagation.js.map +1 -1
  1050. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  1051. package/dist/utils/react/forwardRefWithGenerics.js.map +1 -1
  1052. package/dist/utils/react/index.js +1 -1
  1053. package/dist/utils/react/interactions.js +35 -12
  1054. package/dist/utils/react/interactions.js.map +1 -1
  1055. package/dist/utils/react/isTextOnly.js +1 -1
  1056. package/dist/utils/react/isTextOnly.js.map +1 -1
  1057. package/dist/utils/react/mapProps.js +1 -1
  1058. package/dist/utils/react/mapProps.js.map +1 -1
  1059. package/dist/utils/react/mergeProps.js +1 -1
  1060. package/dist/utils/react/mergeProps.js.map +1 -1
  1061. package/dist/utils/react/nullableValue.js +1 -1
  1062. package/dist/utils/react/nullableValue.js.map +1 -1
  1063. package/dist/utils/react/programmaticFocus.js +1 -1
  1064. package/dist/utils/react/programmaticFocus.js.map +1 -1
  1065. package/dist/utils/react/resolveIcon.js +1 -1
  1066. package/dist/utils/react/resolveIcon.js.map +1 -1
  1067. package/dist/utils/react/sharedStore.js +13 -2
  1068. package/dist/utils/react/sharedStore.js.map +1 -1
  1069. package/dist/utils/react/useBufferedValue.js +5 -5
  1070. package/dist/utils/react/useBufferedValue.js.map +1 -1
  1071. package/dist/utils/react/useCombinedRefs.js +20 -5
  1072. package/dist/utils/react/useCombinedRefs.js.map +1 -1
  1073. package/dist/utils/react/useControlledFocusVisible.js +53 -17
  1074. package/dist/utils/react/useControlledFocusVisible.js.map +1 -1
  1075. package/dist/utils/react/useEventBus.js +43 -18
  1076. package/dist/utils/react/useEventBus.js.map +1 -1
  1077. package/dist/utils/react/useId.js +2 -1
  1078. package/dist/utils/react/useId.js.map +1 -1
  1079. package/dist/utils/react/useIsDarwin.js +29 -16
  1080. package/dist/utils/react/useIsDarwin.js.map +1 -1
  1081. package/dist/utils/react/useKeySymbols.js +23 -9
  1082. package/dist/utils/react/useKeySymbols.js.map +1 -1
  1083. package/dist/utils/react/useLayoutEffect.js +1 -1
  1084. package/dist/utils/react/useLayoutEffect.js.map +1 -1
  1085. package/dist/utils/react/useLocalStorage.js +75 -30
  1086. package/dist/utils/react/useLocalStorage.js.map +1 -1
  1087. package/dist/utils/react/useMergeStyles.js +1 -1
  1088. package/dist/utils/react/useMergeStyles.js.map +1 -1
  1089. package/dist/utils/react/useOverlayEscapeGuard.js +25 -9
  1090. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  1091. package/dist/utils/react/usePopoverSync.js +175 -73
  1092. package/dist/utils/react/usePopoverSync.js.map +1 -1
  1093. package/dist/utils/react/useQaProps.js +1 -1
  1094. package/dist/utils/react/useQaProps.js.map +1 -1
  1095. package/dist/utils/react/useScheme.js +1 -1
  1096. package/dist/utils/react/useScheme.js.map +1 -1
  1097. package/dist/utils/react/useViewportSize.js +43 -19
  1098. package/dist/utils/react/useViewportSize.js.map +1 -1
  1099. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  1100. package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
  1101. package/dist/utils/selection.js +1 -1
  1102. package/dist/utils/selection.js.map +1 -1
  1103. package/dist/utils/styles.js +1 -1
  1104. package/dist/utils/styles.js.map +1 -1
  1105. package/dist/utils/tree.js +1 -1
  1106. package/dist/utils/tree.js.map +1 -1
  1107. package/dist/utils/warnings.js +1 -1
  1108. package/dist/utils/warnings.js.map +1 -1
  1109. package/dist/version.js +2 -2
  1110. package/dist/version.js.map +1 -1
  1111. package/docs/Usage.md +9 -1
  1112. package/docs/components/actions/Button.md +1 -1
  1113. package/docs/components/content/InlineInput.md +1 -1
  1114. package/docs/components/content/Item.md +19 -0
  1115. package/docs/components/fields/ColorInput.md +13 -8
  1116. package/docs/components/fields/ColorPicker.md +13 -8
  1117. package/docs/components/fields/ComboBox.md +16 -12
  1118. package/docs/components/fields/CommandTextArea.md +3 -1
  1119. package/docs/components/fields/FilterListBox.md +24 -19
  1120. package/docs/components/fields/FilterPicker.md +25 -19
  1121. package/docs/components/fields/ListBox.md +36 -26
  1122. package/docs/components/fields/Picker.md +28 -21
  1123. package/docs/components/fields/Select.md +17 -12
  1124. package/docs/components/form/Field.md +2 -2
  1125. package/docs/components/form/Form.md +60 -579
  1126. package/docs/components/form/ModernForm.md +22 -1
  1127. package/docs/components/overlays/Dialog.md +26 -0
  1128. package/docs/components/overlays/DialogForm.md +121 -263
  1129. package/docs/components/overlays/DialogTrigger.md +1 -1
  1130. package/docs/components/overlays/UseDialogContainer.md +11 -13
  1131. package/docs/modern-form-guide.md +22 -1
  1132. package/docs/modern-form-migration.md +1 -1
  1133. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","names":["Item"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n danger: <IconExclamationCircle />,\n warning: <IconAlertTriangle />,\n note: <IconInfoCircle />,\n success: <IconCircleCheck />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n },\n },\n});\n\n// `current.outline` — the `current` theme on `Item.Action`, given the outlined\n// shape rather than the borderless default.\n//\n// `current` is the right color source: a banner labels itself `#white` in both\n// schemes (see `BannerLinkElement` and `*_PRIMARY_STYLES`), so the action mixes\n// its chip, border and label from that white — label cr 4.3-5.0 against every\n// banner theme, with the chip a subtle 1.06 off the banner. That is what an\n// action on a saturated surface should be: the banner carries the emphasis, the\n// button just has to be findable.\n//\n// `outline` rather than `Item.Action`'s `clear` default because a banner action\n// is a call to action, and `clear` paints nothing at rest — on a busy banner it\n// reads as body text until hovered. The `#current.08` border is what makes it a\n// button, which is why the old `border: '#clear'` override had to go: it was\n// written when `outline` meant `note.outline` and friends, whose border is the\n// opaque `#note-border` — a pale line built for a `#surface-2` chip on a light\n// page and plainly wrong on a saturated banner. On the `current` theme the\n// border IS the chip, and the 3% fill cannot carry one alone.\n//\n// `type=\"primary\"` is deliberately not used. It would fill with the inherited\n// white and punch `#current-fill` out of it, which defaults to `#surface` —\n// white in light mode, so the label would collapse into its own chip. A banner\n// that wants a filled action has to set `#current-fill` to its own surface\n// color; see `CURRENT_PRIMARY_STYLES` in `item-themes`.\nconst BannerActionElement = tasty(Item.Action, {\n type: 'outline',\n styles: {\n preset: 't3m',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = useMemo(() => DEFAULT_ICONS[theme], [theme]);\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":";;;;;;;;;;;AAuCA,MAAM,gBAAgD;CACpD,QAAQ,oBAAC,0BAAwB;CACjC,SAAS,oBAAC,sBAAoB;CAC9B,MAAM,oBAAC,mBAAiB;CACxB,SAAS,oBAAC,oBAAkB;CAC7B;AAED,MAAM,gBAAgB,MAAMA,OAAM,EAChC,QAAQ;CACN,OAAO;CAEP,aAAa;EACX,cAAc;EACd,YAAY;EACb;CAED,SAAS,EACP,KAAK,MACN;CACF,EACF,CAAC;AA0BF,MAAM,sBAAsB,MAAMA,MAAK,QAAQ;CAC7C,MAAM;CACN,QAAQ,EACN,QAAQ,OACT;CACF,CAAC;AAEF,MAAM,oBAAoB,MAAM,QAAQ;CACtC,MAAM;CACN,MAAM;CACN,QAAQ;EACN,OAAO;EACP,gBAAgB;EACjB;CACF,CAAC;;;;;AAMF,SAAgB,aAAa,OAA0B;AACrD,QAAO,oBAAC,uBAAoB,GAAI,QAAS;;;;;;AAO3C,SAAgB,WAAW,OAAwB;AACjD,QAAO,oBAAC,qBAAkB,GAAI,QAAS;;;;;;;AAQzC,SAAgB,OAAO,OAAoB;CACzC,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,EACJ,QAAQ,QACR,SACA,gBAAgB,OAChB,WACA,UACA,MACA,GAAG,SACD;CAEJ,MAAM,iBAAiB,eAAe;AACpC,eAAa;GACb;CAEF,MAAM,cAAc,cAAc,cAAc,QAAQ,CAAC,MAAM,CAAC;CAEhE,MAAM,aAAa,CAAC,EAAE,WAAW;AAEjC,QACE,oBAAC;EACC,IAAG;EACH,MAAK;EACL,MAAK;EACE;EACP,MAAK;EACL,MAAM,QAAQ;EACd,GAAI;EACJ,SACE,aACE,8CACG,SACA,iBACC,oBAACA,MAAK;GACJ,MAAM,oBAAC,UAAQ;GACf,SAAS,EAAE,qBAAqB,cAAc;GAC9C,SAAS;IACT,IAEH,GACD;EAGL;GACa;;AAIpB,OAAO,SAAS;AAChB,OAAO,OAAO"}
1
+ {"version":3,"file":"Banner.js","names":["IconAlertTriangle","IconCircleCheck","IconExclamationCircle","IconInfoCircle","IconX","tasty","ReactNode","useMemo","useEvent","useI18n","CubeItemProps","Item","Button","CubeButtonProps","CubeItemActionProps","BannerTheme","BannerProps","Omit","theme","isDismissable","onDismiss","BannerActionProps","BannerLinkProps","DEFAULT_ICONS","Record","danger","warning","note","success","BannerElement","styles","width","Description","textOverflow","whiteSpace","Actions","gap","BannerActionElement","Action","type","preset","BannerLinkElement","size","color","textDecoration","BannerAction","props","$","_c","t0","BannerLink","Banner","t","actions","children","icon","rest","t1","undefined","t2","onDismissEvent","defaultIcon","hasActions","t3","t4","t5","Link"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n danger: <IconExclamationCircle />,\n warning: <IconAlertTriangle />,\n note: <IconInfoCircle />,\n success: <IconCircleCheck />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n },\n },\n});\n\n// `current.outline` — the `current` theme on `Item.Action`, given the outlined\n// shape rather than the borderless default.\n//\n// `current` is the right color source: a banner labels itself `#white` in both\n// schemes (see `BannerLinkElement` and `*_PRIMARY_STYLES`), so the action mixes\n// its chip, border and label from that white — label cr 4.3-5.0 against every\n// banner theme, with the chip a subtle 1.06 off the banner. That is what an\n// action on a saturated surface should be: the banner carries the emphasis, the\n// button just has to be findable.\n//\n// `outline` rather than `Item.Action`'s `clear` default because a banner action\n// is a call to action, and `clear` paints nothing at rest — on a busy banner it\n// reads as body text until hovered. The `#current.08` border is what makes it a\n// button, which is why the old `border: '#clear'` override had to go: it was\n// written when `outline` meant `note.outline` and friends, whose border is the\n// opaque `#note-border` — a pale line built for a `#surface-2` chip on a light\n// page and plainly wrong on a saturated banner. On the `current` theme the\n// border IS the chip, and the 3% fill cannot carry one alone.\n//\n// `type=\"primary\"` is deliberately not used. It would fill with the inherited\n// white and punch `#current-fill` out of it, which defaults to `#surface` —\n// white in light mode, so the label would collapse into its own chip. A banner\n// that wants a filled action has to set `#current-fill` to its own surface\n// color; see `CURRENT_PRIMARY_STYLES` in `item-themes`.\nconst BannerActionElement = tasty(Item.Action, {\n type: 'outline',\n styles: {\n preset: 't3m',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = useMemo(() => DEFAULT_ICONS[theme], [theme]);\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { getDisabledElementProps } from "../../../utils/react/disabledProps.js";
4
4
  import { mergeProps } from "../../../utils/react/mergeProps.js";
@@ -312,9 +312,11 @@ const Button = forwardRef(function Button(allProps, ref) {
312
312
  const isCustomSize = typeof size === "number" || size != null && !BUTTON_SIZE_VALUES.includes(size);
313
313
  const sizeTokenValue = typeof size === "number" ? `${size}px` : isCustomSize ? size : void 0;
314
314
  const effectiveType = theme === "special" && type === "outline-2" ? "outline" : type;
315
+ const ariaPressed = allProps["aria-pressed"] ?? (isSelected != null && actionProps.as !== "a" && allProps.role == null ? isSelected : void 0);
315
316
  return /* @__PURE__ */ jsxs(ButtonElement, {
316
317
  download,
317
318
  ...mergeProps(actionProps, tooltipTriggerProps || {}, inertProps),
319
+ "aria-pressed": ariaPressed,
318
320
  ref: handleRef,
319
321
  mods: {
320
322
  ...actionProps.mods,
@@ -336,8 +338,8 @@ const Button = forwardRef(function Button(allProps, ref) {
336
338
  isShown: hasLeftIcon,
337
339
  animateOnMount: !isFirstRender,
338
340
  onToggle: setIsIconShown,
339
- children: ({ ref }) => /* @__PURE__ */ jsx("div", {
340
- ref,
341
+ children: ({ ref: ref_0 }) => /* @__PURE__ */ jsx("div", {
342
+ ref: ref_0,
341
343
  "data-element": "Icon",
342
344
  "aria-hidden": "true",
343
345
  children: /* @__PURE__ */ jsx(IconSwitch, {
@@ -357,8 +359,8 @@ const Button = forwardRef(function Button(allProps, ref) {
357
359
  isShown: hasRightSlot,
358
360
  animateOnMount: !isFirstRender,
359
361
  onToggle: setIsRightIconShown,
360
- children: ({ ref }) => /* @__PURE__ */ jsx("div", {
361
- ref,
362
+ children: ({ ref: ref_1 }) => /* @__PURE__ */ jsx("div", {
363
+ ref: ref_1,
362
364
  "data-element": "RightIcon",
363
365
  "aria-hidden": "true",
364
366
  children: /* @__PURE__ */ jsx(IconSwitch, {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":[],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef, PressEvent } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\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 { OverlayProps } 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 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 { 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?: OverlayProps['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 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: {\n ...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: {\n ...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 isDisabled =\n splitContext?.isDisabled || props.isDisabled || 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 // 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]')) return;\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 } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\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. The attribute is skipped for links too, where it is not\n // valid markup and `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: isTooltipActive,\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\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 return (\n <ButtonElement\n download={download}\n {...mergeProps(actionProps, tooltipTriggerProps || {}, inertProps)}\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
+ {"version":3,"file":"Button.js","names":["FocusableRef","PressEvent","CONTAINER_STYLES","Mods","Styles","tasty","TEXT_STYLES","Children","forwardRef","HTMLAttributes","isValidElement","ReactNode","RefObject","useMemo","useRef","useState","OverlayProps","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","resolveIcon","useDismissParentPopover","extractStyles","useAutoTooltip","DisplayTransition","IconSwitch","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","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","undefined","isNativelyDisabled","inertProps","keepEvents","as","renderButtonElement","tooltipTriggerProps","tooltipRef","handleRef","element","domRef","isCustomSize","includes","sizeTokenValue","effectiveType","ariaPressed","role"],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef, PressEvent } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\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 { OverlayProps } 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 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 { 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?: OverlayProps['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 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: {\n ...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: {\n ...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 isDisabled =\n splitContext?.isDisabled || props.isDisabled || 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 // 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]')) return;\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 } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\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. The attribute is skipped for links too, where it is not\n // valid markup and `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: isTooltipActive,\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\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 {...mergeProps(actionProps, tooltipTriggerProps || {}, inertProps)}\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,6 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../../utils/react/Slots.js";
3
3
  import { Space } from "../../layout/Space.js";
4
+ import { c } from "react-compiler-runtime";
4
5
  import { tasty } from "@tenphi/tasty";
5
6
  import { forwardRef } from "react";
6
7
  import { jsx } from "react/jsx-runtime";
@@ -11,10 +12,19 @@ const ButtonGroupElement = tasty(Space, {
11
12
  styles: { gridArea: "buttonGroup" }
12
13
  });
13
14
  const ButtonGroup = forwardRef(function ButtonGroup(props, ref) {
14
- return /* @__PURE__ */ jsx(ButtonGroupElement, {
15
- ref,
16
- ...useSlotProps(props, "buttonGroup")
17
- });
15
+ const $ = c(3);
16
+ const t0 = useSlotProps(props, "buttonGroup");
17
+ let t1;
18
+ if ($[0] !== ref || $[1] !== t0) {
19
+ t1 = /* @__PURE__ */ jsx(ButtonGroupElement, {
20
+ ref,
21
+ ...t0
22
+ });
23
+ $[0] = ref;
24
+ $[1] = t0;
25
+ $[2] = t1;
26
+ } else t1 = $[2];
27
+ return t1;
18
28
  });
19
29
 
20
30
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.js","names":[],"sources":["../../../../src/components/actions/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useSlotProps } from '../../../utils/react';\nimport { CubeSpaceProps, Space } from '../../layout/Space';\n\nconst ButtonGroupElement = tasty(Space, {\n qa: 'ButtonGroup',\n styles: {\n gridArea: 'buttonGroup',\n },\n});\n\nexport const ButtonGroup = forwardRef(function ButtonGroup(\n props: CubeSpaceProps,\n ref,\n) {\n return (\n <ButtonGroupElement ref={ref} {...useSlotProps(props, 'buttonGroup')} />\n );\n});\n"],"mappings":";;;;;;;;AAMA,MAAM,qBAAqB,MAAM,OAAO;CACtC,IAAI;CACJ,QAAQ,EACN,UAAU,eACX;CACF,CAAC;AAEF,MAAa,cAAc,WAAW,SAAS,YAC7C,OACA,KACA;AACA,QACE,oBAAC;EAAwB;EAAK,GAAI,aAAa,OAAO,cAAc;GAAI;EAE1E"}
1
+ {"version":3,"file":"ButtonGroup.js","names":["tasty","forwardRef","useSlotProps","CubeSpaceProps","Space","ButtonGroupElement","qa","styles","gridArea","ButtonGroup","props","ref","$","_c","t0","t1"],"sources":["../../../../src/components/actions/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useSlotProps } from '../../../utils/react';\nimport { CubeSpaceProps, Space } from '../../layout/Space';\n\nconst ButtonGroupElement = tasty(Space, {\n qa: 'ButtonGroup',\n styles: {\n gridArea: 'buttonGroup',\n },\n});\n\nexport const ButtonGroup = forwardRef(function ButtonGroup(\n props: CubeSpaceProps,\n ref,\n) {\n return (\n <ButtonGroupElement ref={ref} {...useSlotProps(props, 'buttonGroup')} />\n );\n});\n"],"mappings":";;;;;;;;;AAMA,MAAMK,qBAAqBL,MAAMI,OAAO;CACtCE,IAAI;CACJC,QAAQ,EACNC,UAAU,eACZ;CACD,CAAC;AAEF,MAAaC,cAAcR,WAAW,SAAAQ,YAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAKA,MAAAC,KAAAZ,aAAaQ,OAAO,cAAc;CAAA,IAAAK;AAAA,KAAAH,EAAA,OAAAD,OAAAC,EAAA,OAAAE,IAAA;AAApEC,OAAA,oBAAC;GAAwBJ;GAAG,GAAMG;IAAsC;AAAAF,IAAA,KAAAD;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,MAAAH,EAAA;AAAA,QAAxEG;EAEF"}
@@ -1,18 +1,18 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { ButtonSplitContext } from "./context.js";
5
5
  import { Button } from "../Button/Button.js";
6
6
  import { DirectionIcon } from "../../../icons/DirectionIcon.js";
7
7
  import { __Menu } from "../Menu/Menu.js";
8
- import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
8
+ import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
9
9
  import { forwardRef, useCallback, useMemo, useState } from "react";
10
10
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
11
 
12
12
  //#region src/components/actions/ButtonSplit/ButtonSplit.tsx
13
13
  const STYLE_PROPS = CONTAINER_STYLES;
14
14
  const ButtonSplitElement = tasty({
15
- tag: "div",
15
+ as: "div",
16
16
  qa: "ButtonSplit",
17
17
  styles: {
18
18
  display: "inline-flex",
@@ -21,7 +21,7 @@ const ButtonSplitElement = tasty({
21
21
  }
22
22
  });
23
23
  const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
24
- const { actions, actionKey: controlledActionKey, defaultActionKey, onAction, onActionChange, type, theme, size, isDisabled, actionProps, triggerProps, menuProps, styles, children, ...rest } = props;
24
+ const { actions, actionKey: controlledActionKey, defaultActionKey, onAction, onActionChange, type, theme, size, isDisabled, actionProps, triggerProps, menuProps, styles, children, role, ...rest } = props;
25
25
  const isControlled = controlledActionKey !== void 0;
26
26
  const [uncontrolledKey, setUncontrolledKey] = useState(() => defaultActionKey ?? actions?.[0]?.key);
27
27
  const currentKey = isControlled ? controlledActionKey : uncontrolledKey;
@@ -62,10 +62,12 @@ const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
62
62
  return /* @__PURE__ */ jsx(ButtonSplitContext.Provider, {
63
63
  value: contextValue,
64
64
  children: /* @__PURE__ */ jsx(ButtonSplitElement, {
65
+ ...filterBaseProps(rest, { eventProps: true }),
65
66
  ref,
66
67
  "data-button-split": true,
67
68
  styles: mergedStyles,
68
69
  qa: rest.qa,
70
+ role: role ?? (isCustomMode ? "group" : void 0),
69
71
  children: isCustomMode ? children : actions ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
70
72
  type,
71
73
  theme,
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonSplit.js","names":["Menu"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, useMemo, useState } from 'react';\n\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../Button/Button';\nimport { Menu } from '../Menu/Menu';\n\nimport { ButtonSplitContext } from './context';\n\nimport type { BaseProps, ContainerStyleProps, Styles } from '@tenphi/tasty';\nimport type { CubeCollectionItemProps } from '../../CollectionItem';\nimport type { CubeButtonProps } from '../Button/Button';\nimport type { CubeMenuProps } from '../Menu/Menu';\n\nexport interface ButtonSplitAction\n extends Omit<\n CubeCollectionItemProps<object>,\n 'children' | 'onAction' | 'wrapper'\n > {\n key: string;\n label: ReactNode;\n}\n\nexport interface CubeButtonSplitProps extends BaseProps, ContainerStyleProps {\n /** Actions for strict mode. When provided, renders action + trigger buttons automatically. */\n actions?: ButtonSplitAction[];\n /** Currently selected action key (controlled). */\n actionKey?: string;\n /** Initially selected action key (uncontrolled). */\n defaultActionKey?: string;\n /** Called when the action button is pressed. Receives the current action key. */\n onAction?: (key: string) => void;\n /** Called when the selected action changes via the trigger menu. */\n onActionChange?: (key: string) => void;\n\n /** Button type applied to both action and trigger buttons in strict mode. */\n type?: CubeButtonProps['type'];\n /** Button theme applied to both action and trigger buttons in strict mode. */\n theme?: CubeButtonProps['theme'];\n /** Button size applied to both action and trigger buttons in strict mode. */\n size?: CubeButtonProps['size'];\n /** Disables both buttons in strict mode. */\n isDisabled?: boolean;\n\n /** Additional props for the action button in strict mode. */\n actionProps?: Partial<CubeButtonProps>;\n /** Additional props for the trigger button in strict mode. */\n triggerProps?: Partial<CubeButtonProps>;\n /** Additional props for the dropdown menu in strict mode. */\n menuProps?: Partial<CubeMenuProps<object>>;\n\n /** Custom styles for the wrapper element. */\n styles?: Styles;\n\n /** Custom mode: render arbitrary Button children. */\n children?: ReactNode;\n}\n\nconst STYLE_PROPS = CONTAINER_STYLES;\n\nconst ButtonSplitElement = tasty({\n tag: 'div',\n qa: 'ButtonSplit',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n verticalAlign: 'bottom',\n },\n});\n\nexport const ButtonSplit = forwardRef<HTMLDivElement, CubeButtonSplitProps>(\n function ButtonSplit(props, ref) {\n const {\n actions,\n actionKey: controlledActionKey,\n defaultActionKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n actionProps,\n triggerProps,\n menuProps,\n styles,\n children,\n ...rest\n } = props;\n\n const isControlled = controlledActionKey !== undefined;\n const [uncontrolledKey, setUncontrolledKey] = useState(\n () => defaultActionKey ?? actions?.[0]?.key,\n );\n\n const currentKey = isControlled ? controlledActionKey : uncontrolledKey;\n\n const currentAction = useMemo(\n () => actions?.find((a) => a.key === currentKey) ?? actions?.[0],\n [actions, currentKey],\n );\n\n const handleActionPress = useCallback(() => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n }, [currentKey, onAction]);\n\n const handleSelectionChange = useCallback(\n (keys: string[]) => {\n const newKey = keys[0];\n\n if (newKey) {\n if (!isControlled) {\n setUncontrolledKey(newKey);\n }\n\n onActionChange?.(newKey);\n }\n },\n [isControlled, onActionChange],\n );\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...containerStyles,\n ...styles,\n }),\n [containerStyles, styles],\n );\n\n const contextValue = useMemo(\n () => ({\n currentKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n }),\n [currentKey, onAction, onActionChange, type, theme, size, isDisabled],\n );\n\n const isCustomMode = children != null;\n\n return (\n <ButtonSplitContext.Provider value={contextValue}>\n <ButtonSplitElement\n ref={ref}\n data-button-split\n styles={mergedStyles}\n qa={rest.qa}\n >\n {isCustomMode ? (\n children\n ) : actions ? (\n <>\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n icon={currentAction?.icon}\n {...mergeProps(actionProps, { onPress: handleActionPress })}\n >\n {currentAction?.label}\n </Button>\n <Menu.Trigger placement=\"bottom end\">\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n aria-label=\"More options\"\n icon={({ pressed }) => (\n <DirectionIcon to={pressed ? 'up' : 'down'} />\n )}\n {...triggerProps}\n />\n <Menu\n selectionMode=\"single\"\n selectedKeys={currentKey ? [currentKey] : []}\n onSelectionChange={handleSelectionChange}\n {...menuProps}\n >\n {actions.map(({ key, label, textValue, ...itemProps }) => (\n <Menu.Item\n key={key}\n textValue={\n textValue ?? (typeof label === 'string' ? label : key)\n }\n {...itemProps}\n >\n {label}\n </Menu.Item>\n ))}\n </Menu>\n </Menu.Trigger>\n </>\n ) : null}\n </ButtonSplitElement>\n </ButtonSplitContext.Provider>\n );\n },\n);\n\nButtonSplit.displayName = 'ButtonSplit';\n"],"mappings":";;;;;;;;;;;;AA4DA,MAAM,cAAc;AAEpB,MAAM,qBAAqB,MAAM;CAC/B,KAAK;CACL,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,UAAU;EACV,eAAe;EAChB;CACF,CAAC;AAEF,MAAa,cAAc,WACzB,SAAS,YAAY,OAAO,KAAK;CAC/B,MAAM,EACJ,SACA,WAAW,qBACX,kBACA,UACA,gBACA,MACA,OACA,MACA,YACA,aACA,cACA,WACA,QACA,UACA,GAAG,SACD;CAEJ,MAAM,eAAe,wBAAwB;CAC7C,MAAM,CAAC,iBAAiB,sBAAsB,eACtC,oBAAoB,UAAU,IAAI,IACzC;CAED,MAAM,aAAa,eAAe,sBAAsB;CAExD,MAAM,gBAAgB,cACd,SAAS,MAAM,MAAM,EAAE,QAAQ,WAAW,IAAI,UAAU,IAC9D,CAAC,SAAS,WAAW,CACtB;CAED,MAAM,oBAAoB,kBAAkB;AAC1C,MAAI,WACF,YAAW,WAAW;IAEvB,CAAC,YAAY,SAAS,CAAC;CAE1B,MAAM,wBAAwB,aAC3B,SAAmB;EAClB,MAAM,SAAS,KAAK;AAEpB,MAAI,QAAQ;AACV,OAAI,CAAC,aACH,oBAAmB,OAAO;AAG5B,oBAAiB,OAAO;;IAG5B,CAAC,cAAc,eAAe,CAC/B;CAED,MAAM,kBAAkB,cAAc,MAAM,YAAY;CAExD,MAAM,eAAe,eACZ;EACL,GAAG;EACH,GAAG;EACJ,GACD,CAAC,iBAAiB,OAAO,CAC1B;CAED,MAAM,eAAe,eACZ;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACD,GACD;EAAC;EAAY;EAAU;EAAgB;EAAM;EAAO;EAAM;EAAW,CACtE;CAED,MAAM,eAAe,YAAY;AAEjC,QACE,oBAAC,mBAAmB;EAAS,OAAO;YAClC,oBAAC;GACM;GACL;GACA,QAAQ;GACR,IAAI,KAAK;aAER,eACC,WACE,UACF,8CACE,oBAAC;IACO;IACC;IACD;IACM;IACZ,MAAM,eAAe;IACrB,GAAI,WAAW,aAAa,EAAE,SAAS,mBAAmB,CAAC;cAE1D,eAAe;KACT,EACT,qBAACA,OAAK;IAAQ,WAAU;eACtB,oBAAC;KACO;KACC;KACD;KACM;KACZ,cAAW;KACX,OAAO,EAAE,cACP,oBAAC,iBAAc,IAAI,UAAU,OAAO,SAAU;KAEhD,GAAI;MACJ,EACF,oBAACA;KACC,eAAc;KACd,cAAc,aAAa,CAAC,WAAW,GAAG,EAAE;KAC5C,mBAAmB;KACnB,GAAI;eAEH,QAAQ,KAAK,EAAE,KAAK,OAAO,WAAW,GAAG,gBACxC,oBAACA,OAAK;MAEJ,WACE,cAAc,OAAO,UAAU,WAAW,QAAQ;MAEpD,GAAI;gBAEH;QANI,IAOK,CACZ;MACG;KACM,IACd,GACD;IACe;GACO;EAGnC;AAED,YAAY,cAAc"}
1
+ {"version":3,"file":"ButtonSplit.js","names":["CONTAINER_STYLES","filterBaseProps","tasty","forwardRef","ReactNode","useCallback","useMemo","useState","DirectionIcon","mergeProps","extractStyles","Button","Menu","ButtonSplitContext","BaseProps","ContainerStyleProps","Styles","CubeCollectionItemProps","CubeButtonProps","CubeMenuProps","ButtonSplitAction","Omit","key","label","CubeButtonSplitProps","actions","actionKey","defaultActionKey","onAction","onActionChange","type","theme","size","isDisabled","actionProps","Partial","triggerProps","menuProps","styles","children","STYLE_PROPS","ButtonSplitElement","as","qa","display","position","verticalAlign","ButtonSplit","HTMLDivElement","props","ref","controlledActionKey","role","rest","isControlled","undefined","uncontrolledKey","setUncontrolledKey","currentKey","currentAction","find","a","handleActionPress","handleSelectionChange","keys","newKey","containerStyles","mergedStyles","contextValue","isCustomMode","eventProps","icon","onPress","pressed","map","textValue","itemProps","displayName"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, useMemo, useState } from 'react';\n\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../Button/Button';\nimport { Menu } from '../Menu/Menu';\n\nimport { ButtonSplitContext } from './context';\n\nimport type { BaseProps, ContainerStyleProps, Styles } from '@tenphi/tasty';\nimport type { CubeCollectionItemProps } from '../../CollectionItem';\nimport type { CubeButtonProps } from '../Button/Button';\nimport type { CubeMenuProps } from '../Menu/Menu';\n\nexport interface ButtonSplitAction\n extends Omit<\n CubeCollectionItemProps<object>,\n 'children' | 'onAction' | 'wrapper'\n > {\n key: string;\n label: ReactNode;\n}\n\nexport interface CubeButtonSplitProps extends BaseProps, ContainerStyleProps {\n /** Actions for strict mode. When provided, renders action + trigger buttons automatically. */\n actions?: ButtonSplitAction[];\n /** Currently selected action key (controlled). */\n actionKey?: string;\n /** Initially selected action key (uncontrolled). */\n defaultActionKey?: string;\n /** Called when the action button is pressed. Receives the current action key. */\n onAction?: (key: string) => void;\n /** Called when the selected action changes via the trigger menu. */\n onActionChange?: (key: string) => void;\n\n /** Button type applied to both action and trigger buttons in strict mode. */\n type?: CubeButtonProps['type'];\n /** Button theme applied to both action and trigger buttons in strict mode. */\n theme?: CubeButtonProps['theme'];\n /** Button size applied to both action and trigger buttons in strict mode. */\n size?: CubeButtonProps['size'];\n /** Disables both buttons in strict mode. */\n isDisabled?: boolean;\n\n /** Additional props for the action button in strict mode. */\n actionProps?: Partial<CubeButtonProps>;\n /** Additional props for the trigger button in strict mode. */\n triggerProps?: Partial<CubeButtonProps>;\n /** Additional props for the dropdown menu in strict mode. */\n menuProps?: Partial<CubeMenuProps<object>>;\n\n /** Custom styles for the wrapper element. */\n styles?: Styles;\n\n /** Custom mode: render arbitrary Button children. */\n children?: ReactNode;\n}\n\nconst STYLE_PROPS = CONTAINER_STYLES;\n\nconst ButtonSplitElement = tasty({\n as: 'div',\n qa: 'ButtonSplit',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n verticalAlign: 'bottom',\n },\n});\n\nexport const ButtonSplit = forwardRef<HTMLDivElement, CubeButtonSplitProps>(\n function ButtonSplit(props, ref) {\n const {\n actions,\n actionKey: controlledActionKey,\n defaultActionKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n actionProps,\n triggerProps,\n menuProps,\n styles,\n children,\n role,\n ...rest\n } = props;\n\n const isControlled = controlledActionKey !== undefined;\n const [uncontrolledKey, setUncontrolledKey] = useState(\n () => defaultActionKey ?? actions?.[0]?.key,\n );\n\n const currentKey = isControlled ? controlledActionKey : uncontrolledKey;\n\n const currentAction = useMemo(\n () => actions?.find((a) => a.key === currentKey) ?? actions?.[0],\n [actions, currentKey],\n );\n\n const handleActionPress = useCallback(() => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n }, [currentKey, onAction]);\n\n const handleSelectionChange = useCallback(\n (keys: string[]) => {\n const newKey = keys[0];\n\n if (newKey) {\n if (!isControlled) {\n setUncontrolledKey(newKey);\n }\n\n onActionChange?.(newKey);\n }\n },\n [isControlled, onActionChange],\n );\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...containerStyles,\n ...styles,\n }),\n [containerStyles, styles],\n );\n\n const contextValue = useMemo(\n () => ({\n currentKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n }),\n [currentKey, onAction, onActionChange, type, theme, size, isDisabled],\n );\n\n const isCustomMode = children != null;\n\n return (\n <ButtonSplitContext.Provider value={contextValue}>\n <ButtonSplitElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n data-button-split\n styles={mergedStyles}\n qa={rest.qa}\n // Custom mode renders peer buttons with no visible group label, which\n // is exactly when a caller needs `aria-label` to land on something the\n // AT will announce. `role` comes from `BaseProps`, so a caller that\n // wants something else — including `presentation` to opt out — just\n // passes it. Strict mode keeps its previous shape.\n role={role ?? (isCustomMode ? 'group' : undefined)}\n >\n {isCustomMode ? (\n children\n ) : actions ? (\n <>\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n icon={currentAction?.icon}\n {...mergeProps(actionProps, { onPress: handleActionPress })}\n >\n {currentAction?.label}\n </Button>\n <Menu.Trigger placement=\"bottom end\">\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n aria-label=\"More options\"\n icon={({ pressed }) => (\n <DirectionIcon to={pressed ? 'up' : 'down'} />\n )}\n {...triggerProps}\n />\n <Menu\n selectionMode=\"single\"\n selectedKeys={currentKey ? [currentKey] : []}\n onSelectionChange={handleSelectionChange}\n {...menuProps}\n >\n {actions.map(({ key, label, textValue, ...itemProps }) => (\n <Menu.Item\n key={key}\n textValue={\n textValue ?? (typeof label === 'string' ? label : key)\n }\n {...itemProps}\n >\n {label}\n </Menu.Item>\n ))}\n </Menu>\n </Menu.Trigger>\n </>\n ) : null}\n </ButtonSplitElement>\n </ButtonSplitContext.Provider>\n );\n },\n);\n\nButtonSplit.displayName = 'ButtonSplit';\n"],"mappings":";;;;;;;;;;;;AA4DA,MAAMwC,cAAcxC;AAEpB,MAAMyC,qBAAqBvC,MAAM;CAC/BwC,IAAI;CACJC,IAAI;CACJL,QAAQ;EACNM,SAAS;EACTC,UAAU;EACVC,eAAe;EACjB;CACD,CAAC;AAEF,MAAaC,cAAc5C,WACzB,SAAS4C,YAAYE,OAAOC,KAAK;CAC/B,MAAM,EACJzB,SACAC,WAAWyB,qBACXxB,kBACAC,UACAC,gBACAC,MACAC,OACAC,MACAC,YACAC,aACAE,cACAC,WACAC,QACAC,UACAa,MACA,GAAGC,SACDJ;CAEJ,MAAMK,eAAeH,wBAAwBI;CAC7C,MAAM,CAACC,iBAAiBC,sBAAsBlD,eACtCoB,oBAAoBF,UAAU,IAAIH,IACzC;CAED,MAAMoC,aAAaJ,eAAeH,sBAAsBK;CAExD,MAAMG,gBAAgBrD,cACdmB,SAASmC,MAAMC,MAAMA,EAAEvC,QAAQoC,WAAW,IAAIjC,UAAU,IAC9D,CAACA,SAASiC,WACZ,CAAC;CAED,MAAMI,oBAAoBzD,kBAAkB;AAC1C,MAAIqD,WACF9B,YAAW8B,WAAW;IAEvB,CAACA,YAAY9B,SAAS,CAAC;CAE1B,MAAMmC,wBAAwB1D,aAC3B2D,SAAmB;EAClB,MAAMC,SAASD,KAAK;AAEpB,MAAIC,QAAQ;AACV,OAAI,CAACX,aACHG,oBAAmBQ,OAAO;AAG5BpC,oBAAiBoC,OAAO;;IAG5B,CAACX,cAAczB,eACjB,CAAC;CAED,MAAMqC,kBAAkBxD,cAAc2C,MAAMb,YAAY;CAExD,MAAM2B,eAAe7D,eACZ;EACL,GAAG4D;EACH,GAAG5B;EACJ,GACD,CAAC4B,iBAAiB5B,OACpB,CAAC;CAED,MAAM8B,eAAe9D,eACZ;EACLoD;EACA9B;EACAC;EACAC;EACAC;EACAC;EACAC;EACD,GACD;EAACyB;EAAY9B;EAAUC;EAAgBC;EAAMC;EAAOC;EAAMC;EAC5D,CAAC;CAED,MAAMoC,eAAe9B,YAAY;AAEjC,QACE,oBAAC,mBAAmB;EAAS,OAAO6B;YAClC,oBAAC;GACC,GAAInE,gBAAgBoD,MAAM,EAAEiB,YAAY,MAAM,CAAC;GAC1CpB;GACL;GACA,QAAQiB;GACR,IAAId,KAAKV;GAMT,MAAMS,SAASiB,eAAe,UAAUd;aAEvCc,eACC9B,WACEd,UACF,8CACE,oBAAC;IACOK;IACCC;IACDC;IACMC;IACZ,MAAM0B,eAAeY;IACrB,GAAI9D,WAAWyB,aAAa,EAAEsC,SAASV,mBAAmB,CAAC;cAE1DH,eAAepC;KACV,EACR,qBAAC,OAAK;IAAQ,WAAU;eACtB,oBAAC;KACOO;KACCC;KACDC;KACMC;KACZ,cAAW;KACX,OAAO,EAAEwC,cACP,oBAAC,iBAAc,IAAIA,UAAU,OAAO,SACrC;KACD,GAAIrC;MAAa,EAEnB,oBAAC;KACC,eAAc;KACd,cAAcsB,aAAa,CAACA,WAAW,GAAG,EAAE;KAC5C,mBAAmBK;KACnB,GAAI1B;eAEHZ,QAAQiD,KAAK,EAAEpD,KAAKC,OAAOoD,WAAW,GAAGC,gBACxC,oBAAC,OAAK;MAEJ,WACED,cAAc,OAAOpD,UAAU,WAAWA,QAAQD;MAEpD,GAAIsD;gBAEHrD;QANID,IAQR,CAAC;MACE;KACM,IACb,GACD;IACc;GACQ;EAGnC;AAEDyB,YAAY8B,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/ButtonSplit/context.ts
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/components/actions/ButtonSplit/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface ButtonSplitContextValue {\n currentKey: string | undefined;\n onAction: ((key: string) => void) | undefined;\n onActionChange: ((key: string) => void) | undefined;\n type?: string;\n theme?: string;\n size?: string | number;\n isDisabled?: boolean;\n}\n\nexport const ButtonSplitContext = createContext<ButtonSplitContextValue | null>(\n null,\n);\n\nexport function useButtonSplitContext(): ButtonSplitContextValue | null {\n return useContext(ButtonSplitContext);\n}\n"],"mappings":";;;;AAYA,MAAa,qBAAqB,cAChC,KACD;AAED,SAAgB,wBAAwD;AACtE,QAAO,WAAW,mBAAmB"}
1
+ {"version":3,"file":"context.js","names":["createContext","useContext","ButtonSplitContextValue","currentKey","onAction","key","onActionChange","type","theme","size","isDisabled","ButtonSplitContext","useButtonSplitContext"],"sources":["../../../../src/components/actions/ButtonSplit/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface ButtonSplitContextValue {\n currentKey: string | undefined;\n onAction: ((key: string) => void) | undefined;\n onActionChange: ((key: string) => void) | undefined;\n type?: string;\n theme?: string;\n size?: string | number;\n isDisabled?: boolean;\n}\n\nexport const ButtonSplitContext = createContext<ButtonSplitContextValue | null>(\n null,\n);\n\nexport function useButtonSplitContext(): ButtonSplitContextValue | null {\n return useContext(ButtonSplitContext);\n}\n"],"mappings":";;;;AAYA,MAAaW,qBAAqBX,cAChC,KACD;AAED,SAAOY,wBAAA;AAAA,QACEX,WAAWU,mBAAmB"}