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