@cube-dev/ui-kit 0.199.2 → 0.200.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/dist/CHANGELOG.md +41 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.d.ts +6 -4
  14. package/dist/components/GridProvider.js +14 -9
  15. package/dist/components/GridProvider.js.map +1 -1
  16. package/dist/components/HiddenInput.js +1 -1
  17. package/dist/components/Root.js +1 -1
  18. package/dist/components/Root.js.map +1 -1
  19. package/dist/components/actions/Action/Action.js +1 -1
  20. package/dist/components/actions/Banner/Banner.js +1 -1
  21. package/dist/components/actions/Button/Button.js +2 -2
  22. package/dist/components/actions/Button/Button.js.map +1 -1
  23. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  25. package/dist/components/actions/ButtonSplit/context.js +1 -1
  26. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +7 -12
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemActionsWrapper.js +5 -6
  32. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  37. package/dist/components/actions/Menu/MenuItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuSection.js +1 -1
  39. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  41. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  43. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  44. package/dist/components/actions/Menu/context.js +1 -1
  45. package/dist/components/actions/Menu/styled.js +2 -2
  46. package/dist/components/actions/Menu/styled.js.map +1 -1
  47. package/dist/components/actions/actions-run.js +1 -1
  48. package/dist/components/actions/index.js +1 -1
  49. package/dist/components/actions/use-action.js +1 -1
  50. package/dist/components/actions/use-anchored-menu.js +1 -1
  51. package/dist/components/actions/use-context-menu.js +1 -1
  52. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  53. package/dist/components/content/Alert/Alert.js +1 -1
  54. package/dist/components/content/Alert/Alert.js.map +1 -1
  55. package/dist/components/content/Alert/use-alert.js +24 -27
  56. package/dist/components/content/Alert/use-alert.js.map +1 -1
  57. package/dist/components/content/Avatar/Avatar.js +1 -1
  58. package/dist/components/content/Badge/Badge.js +6 -2
  59. package/dist/components/content/Badge/Badge.js.map +1 -1
  60. package/dist/components/content/Card/Card.js +1 -1
  61. package/dist/components/content/Content.js +1 -1
  62. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
  63. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  64. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  65. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  66. package/dist/components/content/Divider.js +1 -1
  67. package/dist/components/content/Footer.js +1 -1
  68. package/dist/components/content/Header.js +1 -1
  69. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  70. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  71. package/dist/components/content/InlineInput/InlineInput.js +6 -13
  72. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  73. package/dist/components/content/Item/Item.js +18 -18
  74. package/dist/components/content/Item/Item.js.map +1 -1
  75. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  76. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  77. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  78. package/dist/components/content/Layout/GridLayout.js +1 -1
  79. package/dist/components/content/Layout/Layout.js +1 -1
  80. package/dist/components/content/Layout/Layout.js.map +1 -1
  81. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  82. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  83. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  84. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  85. package/dist/components/content/Layout/LayoutContent.js +5 -3
  86. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  87. package/dist/components/content/Layout/LayoutContext.js +1 -1
  88. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  89. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  90. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  91. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  92. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  93. package/dist/components/content/Layout/LayoutPane.js +16 -12
  94. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  95. package/dist/components/content/Layout/LayoutPanel.js +23 -19
  96. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  97. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  98. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  99. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  100. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  101. package/dist/components/content/Layout/index.js +1 -1
  102. package/dist/components/content/Layout/utils.js +1 -1
  103. package/dist/components/content/Paragraph.js +1 -1
  104. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  105. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  106. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  107. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  108. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  109. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  110. package/dist/components/content/Result/Result.js +1 -1
  111. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  112. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  113. package/dist/components/content/Tag/Tag.js +6 -2
  114. package/dist/components/content/Tag/Tag.js.map +1 -1
  115. package/dist/components/content/Text.js +1 -1
  116. package/dist/components/content/TextItem/TextItem.js +1 -1
  117. package/dist/components/content/Title.js +1 -1
  118. package/dist/components/content/Tree/Tree.js +9 -17
  119. package/dist/components/content/Tree/Tree.js.map +1 -1
  120. package/dist/components/content/Tree/TreeNode.js +6 -4
  121. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  122. package/dist/components/content/Tree/styled.js +30 -11
  123. package/dist/components/content/Tree/styled.js.map +1 -1
  124. package/dist/components/content/Tree/tree-index.js +1 -1
  125. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  126. package/dist/components/content/Tree/use-load-data.js +1 -1
  127. package/dist/components/content/highlightText.js +1 -1
  128. package/dist/components/content/use-auto-tooltip.js +1 -1
  129. package/dist/components/data/DataTable/DataTable.js +1 -1
  130. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  131. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  132. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  133. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  134. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
  135. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  136. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  137. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  138. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  139. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  140. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  141. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  142. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  143. package/dist/components/data/TableBase/RowCollection.js +1 -1
  144. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  145. package/dist/components/data/TableBase/TableRow.js +1 -1
  146. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  147. package/dist/components/data/TableBase/TableView.js +1 -1
  148. package/dist/components/data/TableBase/TableView.js.map +1 -1
  149. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  150. package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
  151. package/dist/components/data/TableBase/column-header.js +1 -1
  152. package/dist/components/data/TableBase/column-menu.js +1 -1
  153. package/dist/components/data/TableBase/column-styles.js +1 -1
  154. package/dist/components/data/TableBase/column-tint.js +1 -1
  155. package/dist/components/data/TableBase/row-menu.js +1 -1
  156. package/dist/components/data/TableBase/styled.js +26 -29
  157. package/dist/components/data/TableBase/styled.js.map +1 -1
  158. package/dist/components/data/TableBase/table-tree.js +1 -1
  159. package/dist/components/data/TableBase/types.js +1 -1
  160. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  161. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  162. package/dist/components/data/TableBase/use-column-order.js +1 -1
  163. package/dist/components/data/TableBase/use-column-window.js +1 -1
  164. package/dist/components/data/TableBase/use-container-width.js +1 -1
  165. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  166. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  167. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  168. package/dist/components/data/TableBase/use-table-search.js +1 -1
  169. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  170. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  171. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  172. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  173. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  174. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  175. package/dist/components/fields/Checkbox/Checkbox.js +3 -3
  176. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  177. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  178. package/dist/components/fields/Checkbox/context.js +1 -1
  179. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  180. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  181. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  182. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +6 -6
  183. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  184. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  185. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  186. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  187. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  188. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -1
  189. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  190. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  191. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  192. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  193. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  194. package/dist/components/fields/DatePicker/DateInputBase.js +5 -9
  195. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  196. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  197. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  198. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  199. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  200. package/dist/components/fields/DatePicker/DatePickerSegment.js +49 -39
  201. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  202. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  203. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  204. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  205. package/dist/components/fields/DatePicker/PeriodPicker.js +5 -3
  206. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  207. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  208. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  209. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  210. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  211. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  212. package/dist/components/fields/DatePicker/period.js +1 -1
  213. package/dist/components/fields/DatePicker/props.js +1 -1
  214. package/dist/components/fields/DatePicker/utils.js +1 -1
  215. package/dist/components/fields/FileInput/FileInput.js +2 -2
  216. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  217. package/dist/components/fields/FilterListBox/FilterListBox.js +6 -8
  218. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  219. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  220. package/dist/components/fields/Input/Input.js +1 -1
  221. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  222. package/dist/components/fields/ListBox/ListBox.d.ts +1 -1
  223. package/dist/components/fields/ListBox/ListBox.js +49 -24
  224. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  225. package/dist/components/fields/ListBox/optionId.js +1 -1
  226. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  227. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  228. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  229. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  230. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  231. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  232. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  233. package/dist/components/fields/Picker/Picker.js +1 -1
  234. package/dist/components/fields/RadioGroup/Radio.js +91 -96
  235. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  236. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
  237. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  238. package/dist/components/fields/RadioGroup/context.js +1 -1
  239. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +1 -1
  240. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  241. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  242. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  243. package/dist/components/fields/Select/Select.d.ts +1 -1
  244. package/dist/components/fields/Select/Select.js +3 -3
  245. package/dist/components/fields/Select/Select.js.map +1 -1
  246. package/dist/components/fields/Slider/Gradation.js +1 -1
  247. package/dist/components/fields/Slider/HueSlider.js +3 -3
  248. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  249. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  250. package/dist/components/fields/Slider/Slider.js +1 -1
  251. package/dist/components/fields/Slider/SliderBase.js +4 -6
  252. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  253. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  254. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  255. package/dist/components/fields/Slider/elements.js +7 -6
  256. package/dist/components/fields/Slider/elements.js.map +1 -1
  257. package/dist/components/fields/Slider/index.js +1 -1
  258. package/dist/components/fields/Switch/Switch.js +3 -3
  259. package/dist/components/fields/Switch/Switch.js.map +1 -1
  260. package/dist/components/fields/TagInput/TagInput.d.ts +1 -1
  261. package/dist/components/fields/TagInput/TagInput.js +1 -1
  262. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  263. package/dist/components/fields/TagInput/TagList.js +3 -3
  264. package/dist/components/fields/TagInput/TagList.js.map +1 -1
  265. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  266. package/dist/components/fields/TagInput/useTagError.js +1 -1
  267. package/dist/components/fields/TextArea/TextArea.js +1 -1
  268. package/dist/components/fields/TextInput/TextInput.js +1 -1
  269. package/dist/components/fields/TextInput/TextInputBase.js +3 -6
  270. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  271. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  272. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  273. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  274. package/dist/components/fields/TriggerActions.js +1 -1
  275. package/dist/components/fields/color/ColorPanel.js +2 -2
  276. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  277. package/dist/components/fields/color/channels.js +1 -1
  278. package/dist/components/fields/color/color.js +1 -1
  279. package/dist/components/fields/color/context.js +1 -1
  280. package/dist/components/fields/option-origin-press.js +1 -1
  281. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  282. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  283. package/dist/components/form/Form/Field.js +1 -1
  284. package/dist/components/form/Form/Form.js +1 -1
  285. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  286. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  287. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  288. package/dist/components/form/Form/SubmitError.js +1 -1
  289. package/dist/components/form/Form/backend.js +1 -1
  290. package/dist/components/form/Form/index.js +1 -1
  291. package/dist/components/form/Form/modern/actions.js +1 -1
  292. package/dist/components/form/Form/modern/context.js +1 -1
  293. package/dist/components/form/Form/modern/controller.js +1 -1
  294. package/dist/components/form/Form/modern/field-binding.js +1 -1
  295. package/dist/components/form/Form/modern/field.js +1 -1
  296. package/dist/components/form/Form/modern/react.js +1 -1
  297. package/dist/components/form/Form/modern/store.js +1 -1
  298. package/dist/components/form/Form/modern/validation.js +1 -1
  299. package/dist/components/form/Form/modern/values.js +1 -1
  300. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  301. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  302. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  303. package/dist/components/form/Form/use-field/use-field.js +1 -1
  304. package/dist/components/form/Form/use-form.js +1 -1
  305. package/dist/components/form/Form/validation.js +1 -1
  306. package/dist/components/form/Label.js +1 -1
  307. package/dist/components/form/field-chrome.js +1 -1
  308. package/dist/components/form/legacy-tooltip.js +1 -1
  309. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  310. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  311. package/dist/components/form/validation/use-validation-props.js +1 -1
  312. package/dist/components/form/wrapper.js +1 -1
  313. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  314. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  315. package/dist/components/layout/Flex.js +1 -1
  316. package/dist/components/layout/Flow.js +1 -1
  317. package/dist/components/layout/Grid.js +1 -1
  318. package/dist/components/layout/Panel.js +13 -38
  319. package/dist/components/layout/Panel.js.map +1 -1
  320. package/dist/components/layout/Prefix.js +1 -1
  321. package/dist/components/layout/ResizablePanel.js +24 -20
  322. package/dist/components/layout/ResizablePanel.js.map +1 -1
  323. package/dist/components/layout/Space.js +1 -1
  324. package/dist/components/layout/Suffix.js +1 -1
  325. package/dist/components/navigation/Pagination/Pagination.js +2 -2
  326. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  327. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  328. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  329. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  330. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  331. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  332. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  333. package/dist/components/navigation/Tabs/TabPicker.js +62 -68
  334. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  335. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  336. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  337. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  338. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  339. package/dist/components/navigation/Tabs/styled.js +13 -12
  340. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  341. package/dist/components/navigation/Tabs/types.js +1 -1
  342. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  343. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  344. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  345. package/dist/components/other/Calendar/Calendar.js +1 -1
  346. package/dist/components/other/Calendar/CalendarCell.js +6 -6
  347. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  348. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  349. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  350. package/dist/components/other/Calendar/CalendarPanel.js +3 -3
  351. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  352. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  353. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  354. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  355. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  356. package/dist/components/other/Calendar/styled.js +4 -4
  357. package/dist/components/other/Calendar/styled.js.map +1 -1
  358. package/dist/components/other/CubeLogo/CubeLogo.js +3 -4
  359. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  360. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  361. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  362. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  363. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  364. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  365. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  366. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  367. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  368. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  369. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  370. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  371. package/dist/components/overlays/Dialog/context.js +1 -1
  372. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  373. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  374. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  375. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  376. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  377. package/dist/components/overlays/Modal/Modal.js +1 -1
  378. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  379. package/dist/components/overlays/Modal/Overlay.js +1 -1
  380. package/dist/components/overlays/Modal/Popover.js +1 -1
  381. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  382. package/dist/components/overlays/Modal/Tray.js +4 -5
  383. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  384. package/dist/components/overlays/Modal/Underlay.js +1 -1
  385. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  386. package/dist/components/overlays/Notifications/Notification.js +1 -1
  387. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  388. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  389. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  390. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  391. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  392. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  393. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  394. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  395. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  396. package/dist/components/overlays/Notifications/index.js +1 -1
  397. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  398. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  399. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  400. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  401. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  402. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  403. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  404. package/dist/components/overlays/Toast/index.js +1 -1
  405. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  406. package/dist/components/overlays/Toast/useToast.js +1 -1
  407. package/dist/components/overlays/Tooltip/Tooltip.js +8 -6
  408. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  409. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  410. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  411. package/dist/components/overlays/Tooltip/context.js +1 -1
  412. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  413. package/dist/components/portal/Portal.js +1 -1
  414. package/dist/components/portal/PortalProvider.js +1 -1
  415. package/dist/components/portal/usePortal.js +1 -1
  416. package/dist/components/shared/DraggableCollection.js +1 -1
  417. package/dist/components/shared/InvalidIcon.js +1 -1
  418. package/dist/components/shared/ValidIcon.js +1 -1
  419. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  420. package/dist/components/status/Spin/Cube.js +1 -1
  421. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  422. package/dist/components/status/Spin/Spin.js +1 -1
  423. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  424. package/dist/data/item-themes.js +27 -27
  425. package/dist/data/item-themes.js.map +1 -1
  426. package/dist/data/themes.js +1 -1
  427. package/dist/eslint-plugin/defaults.generated.js +2 -2
  428. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  429. package/dist/eslint-plugin/index.js +1 -1
  430. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  431. package/dist/i18n/I18nProvider.js +1 -1
  432. package/dist/i18n/createFormatter.js +1 -1
  433. package/dist/i18n/index.js +1 -1
  434. package/dist/i18n/instance.js +1 -1
  435. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  436. package/dist/i18n/locales/en-US/uikit.js +1 -1
  437. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  438. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  439. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  440. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  441. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  442. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  443. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  444. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  445. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  446. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  447. package/dist/i18n/locales.js +1 -1
  448. package/dist/i18n/namespace.js +1 -1
  449. package/dist/i18n/useFormatter.js +1 -1
  450. package/dist/i18n/useI18n.js +1 -1
  451. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  452. package/dist/icons/AdjustmentsIcon.js +1 -1
  453. package/dist/icons/AiIcon.js +1 -1
  454. package/dist/icons/AreaChartIcon.js +1 -1
  455. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  456. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  457. package/dist/icons/BackwardIcon.js +1 -1
  458. package/dist/icons/BarChartIcon.js +1 -1
  459. package/dist/icons/BellFilledIcon.js +1 -1
  460. package/dist/icons/BellIcon.js +1 -1
  461. package/dist/icons/BooleanIcon.js +1 -1
  462. package/dist/icons/CalendarEditIcon.js +1 -1
  463. package/dist/icons/CalendarIcon.js +1 -1
  464. package/dist/icons/CaretDownIcon.js +1 -1
  465. package/dist/icons/CaretUpIcon.js +1 -1
  466. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  467. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  468. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  469. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  470. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  471. package/dist/icons/ChartBarLineIcon.js +1 -1
  472. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  473. package/dist/icons/ChartBarStackedIcon.js +1 -1
  474. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  475. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  476. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  477. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  478. package/dist/icons/ChartBubbleIcon.js +1 -1
  479. package/dist/icons/ChartDonut2Icon.js +1 -1
  480. package/dist/icons/ChartFunnelIcon.js +1 -1
  481. package/dist/icons/ChartHeatmapIcon.js +1 -1
  482. package/dist/icons/ChartKPIIcon.js +1 -1
  483. package/dist/icons/ChartPie2Icon.js +1 -1
  484. package/dist/icons/ChartScatterIcon.js +1 -1
  485. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  486. package/dist/icons/CheckCircleIcon.js +1 -1
  487. package/dist/icons/CheckIcon.js +1 -1
  488. package/dist/icons/CircleFilledIcon.js +1 -1
  489. package/dist/icons/ClearIcon.js +1 -1
  490. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  491. package/dist/icons/CloseCircleIcon.js +1 -1
  492. package/dist/icons/CloseIcon.js +1 -1
  493. package/dist/icons/CodeIcon.js +1 -1
  494. package/dist/icons/ColumnTotalIcon.js +1 -1
  495. package/dist/icons/CopyIcon.js +1 -1
  496. package/dist/icons/CountIcon.js +1 -1
  497. package/dist/icons/CubeIcon.js +1 -1
  498. package/dist/icons/CubePauseIcon.js +1 -1
  499. package/dist/icons/CubePlayIcon.js +1 -1
  500. package/dist/icons/CurrencyDollarIcon.js +1 -1
  501. package/dist/icons/DangerIcon.js +1 -1
  502. package/dist/icons/DashboardIcon.js +1 -1
  503. package/dist/icons/DatabaseIcon.js +1 -1
  504. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  505. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  506. package/dist/icons/DirectionIcon.js +1 -1
  507. package/dist/icons/DonutIcon.js +1 -1
  508. package/dist/icons/DownIcon.js +1 -1
  509. package/dist/icons/EditIcon.js +1 -1
  510. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  511. package/dist/icons/ExclamationCircleIcon.js +1 -1
  512. package/dist/icons/ExclamationIcon.js +1 -1
  513. package/dist/icons/EyeIcon.js +1 -1
  514. package/dist/icons/EyeInvisibleIcon.js +1 -1
  515. package/dist/icons/FilterIcon.js +1 -1
  516. package/dist/icons/FolderFilledIcon.js +1 -1
  517. package/dist/icons/FolderIcon.js +1 -1
  518. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  519. package/dist/icons/FolderOpenIcon.js +1 -1
  520. package/dist/icons/ForwardIcon.js +1 -1
  521. package/dist/icons/GripVerticalIcon.js +1 -1
  522. package/dist/icons/HierarchyIcon.js +1 -1
  523. package/dist/icons/HierarchyOpenIcon.js +1 -1
  524. package/dist/icons/Icon.js +21 -38
  525. package/dist/icons/Icon.js.map +1 -1
  526. package/dist/icons/InfoCircleIcon.js +1 -1
  527. package/dist/icons/InfoIcon.js +1 -1
  528. package/dist/icons/KeyIcon.js +1 -1
  529. package/dist/icons/LeftIcon.js +1 -1
  530. package/dist/icons/LineChartIcon.js +1 -1
  531. package/dist/icons/LoadingIcon.js +1 -1
  532. package/dist/icons/LockFilledIcon.js +1 -1
  533. package/dist/icons/LockIcon.js +1 -1
  534. package/dist/icons/MoreIcon.js +1 -1
  535. package/dist/icons/NotAllowedIcon.js +1 -1
  536. package/dist/icons/Number123Icon.js +1 -1
  537. package/dist/icons/NumberIcon.js +1 -1
  538. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  539. package/dist/icons/PauseCircleIcon.js +1 -1
  540. package/dist/icons/PauseIcon.js +1 -1
  541. package/dist/icons/PercentageIcon.js +1 -1
  542. package/dist/icons/PieChartIcon.js +1 -1
  543. package/dist/icons/PipetteIcon.js +1 -1
  544. package/dist/icons/PlayCircleIcon.js +1 -1
  545. package/dist/icons/PlayIcon.js +1 -1
  546. package/dist/icons/PlusIcon.js +1 -1
  547. package/dist/icons/ProgressBarIcon.js +1 -1
  548. package/dist/icons/ReloadIcon.js +1 -1
  549. package/dist/icons/ReportIcon.js +1 -1
  550. package/dist/icons/ReturnIcon.js +1 -1
  551. package/dist/icons/RightIcon.js +1 -1
  552. package/dist/icons/RowTotalsIcon.js +1 -1
  553. package/dist/icons/SchemeIcon.js +1 -1
  554. package/dist/icons/SearchIcon.js +1 -1
  555. package/dist/icons/SemanticQueryIcon.js +1 -1
  556. package/dist/icons/SettingsIcon.js +1 -1
  557. package/dist/icons/ShieldFilledIcon.js +1 -1
  558. package/dist/icons/ShieldIcon.js +1 -1
  559. package/dist/icons/SlashIcon.js +1 -1
  560. package/dist/icons/SparklesIcon.js +1 -1
  561. package/dist/icons/SqlIcon.js +1 -1
  562. package/dist/icons/StatsIcon.js +1 -1
  563. package/dist/icons/StopIcon.js +1 -1
  564. package/dist/icons/StringIcon.js +1 -1
  565. package/dist/icons/SubtotalsIcon.js +1 -1
  566. package/dist/icons/SwitchIcon.js +1 -1
  567. package/dist/icons/TableIcon.js +1 -1
  568. package/dist/icons/ThumbsDownIcon.js +1 -1
  569. package/dist/icons/ThumbsUpIcon.js +1 -1
  570. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  571. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  572. package/dist/icons/ThunderboltIcon.js +1 -1
  573. package/dist/icons/TimeIcon.js +1 -1
  574. package/dist/icons/TrashIcon.js +1 -1
  575. package/dist/icons/UnlockIcon.js +1 -1
  576. package/dist/icons/UpIcon.js +1 -1
  577. package/dist/icons/UserGroupIcon.js +1 -1
  578. package/dist/icons/UserIcon.js +1 -1
  579. package/dist/icons/UserLockIcon.js +1 -1
  580. package/dist/icons/ViewIcon.js +1 -1
  581. package/dist/icons/WarningFilledIcon.js +1 -1
  582. package/dist/icons/WarningIcon.js +1 -1
  583. package/dist/icons/wrap-icon.js +1 -1
  584. package/dist/index.js +1 -1
  585. package/dist/probe/canonicalize.js +1 -1
  586. package/dist/probe/css.js +1 -1
  587. package/dist/probe/index.js +1 -1
  588. package/dist/provider.js +1 -1
  589. package/dist/providers/TrackingProvider.js +1 -1
  590. package/dist/providers/navigation-url.js +1 -1
  591. package/dist/providers/navigationAdapter.default.js +1 -1
  592. package/dist/providers/use-navigation.js +1 -1
  593. package/dist/tokens/all-tokens.js +1 -1
  594. package/dist/tokens/base.js +8 -2
  595. package/dist/tokens/base.js.map +1 -1
  596. package/dist/tokens/color-seed.js +1 -1
  597. package/dist/tokens/color-theme.js +1 -1
  598. package/dist/tokens/colors.js +1 -1
  599. package/dist/tokens/layout.js +1 -1
  600. package/dist/tokens/lazy-styles.js +1 -1
  601. package/dist/tokens/legacy-color.js +1 -1
  602. package/dist/tokens/palette-config.js +1 -1
  603. package/dist/tokens/palette.js +1 -1
  604. package/dist/tokens/resolve.js +1 -1
  605. package/dist/tokens/shadows.d.ts +0 -1
  606. package/dist/tokens/shadows.js +2 -3
  607. package/dist/tokens/shadows.js.map +1 -1
  608. package/dist/tokens/sizes.js +1 -1
  609. package/dist/tokens/spacing.js +1 -1
  610. package/dist/tokens/typography.js +1 -1
  611. package/dist/utils/ResizeSensor.js +1 -1
  612. package/dist/utils/colors.js +1 -1
  613. package/dist/utils/dotize.js +1 -1
  614. package/dist/utils/is-dev-env.js +1 -1
  615. package/dist/utils/modules.js +1 -1
  616. package/dist/utils/promise.js +1 -1
  617. package/dist/utils/raf.js +1 -1
  618. package/dist/utils/random.js +1 -1
  619. package/dist/utils/range.js +1 -1
  620. package/dist/utils/react/RenderCache.js +1 -1
  621. package/dist/utils/react/Slots.js +1 -1
  622. package/dist/utils/react/chain.js +1 -1
  623. package/dist/utils/react/disabledProps.js +1 -1
  624. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  625. package/dist/utils/react/index.js +1 -1
  626. package/dist/utils/react/interactions.js +1 -1
  627. package/dist/utils/react/isTextOnly.js +1 -1
  628. package/dist/utils/react/mapProps.js +1 -1
  629. package/dist/utils/react/mergeProps.js +1 -1
  630. package/dist/utils/react/nullableValue.js +1 -1
  631. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  632. package/dist/utils/react/programmaticFocus.js +1 -1
  633. package/dist/utils/react/resolveIcon.js +1 -1
  634. package/dist/utils/react/sharedStore.js +1 -1
  635. package/dist/utils/react/useBufferedValue.js +1 -1
  636. package/dist/utils/react/useCombinedRefs.js +1 -1
  637. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  638. package/dist/utils/react/useEventBus.js +1 -1
  639. package/dist/utils/react/useId.js +1 -1
  640. package/dist/utils/react/useIsDarwin.js +1 -1
  641. package/dist/utils/react/useKeySymbols.js +1 -1
  642. package/dist/utils/react/useLayoutEffect.js +1 -1
  643. package/dist/utils/react/useLocalStorage.js +1 -1
  644. package/dist/utils/react/useMergeStyles.js +1 -1
  645. package/dist/utils/react/useOverlayEscapeGuard.js +7 -2
  646. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  647. package/dist/utils/react/usePopoverSync.js +1 -1
  648. package/dist/utils/react/useQaProps.js +1 -1
  649. package/dist/utils/react/useScheme.js +1 -1
  650. package/dist/utils/react/useViewportSize.js +1 -1
  651. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  652. package/dist/utils/selection.js +1 -1
  653. package/dist/utils/styles.js +1 -1
  654. package/dist/utils/tree.js +1 -1
  655. package/dist/utils/warnings.js +1 -1
  656. package/dist/version.js +3 -3
  657. package/docs/BaseProperties.md +2 -0
  658. package/docs/ComplexLayout.md +1 -1
  659. package/docs/Usage.md +45 -2
  660. package/docs/Utilities.md +5 -2
  661. package/docs/components/GridProvider.md +3 -3
  662. package/docs/components/content/Layout.md +1 -1
  663. package/docs/components/fields/ComboBox.md +1 -1
  664. package/docs/components/fields/CommandTextArea.md +1 -1
  665. package/docs/components/fields/FilterListBox.md +1 -1
  666. package/docs/components/fields/FilterPicker.md +1 -1
  667. package/docs/components/fields/ListBox.md +2 -2
  668. package/docs/components/fields/Picker.md +1 -1
  669. package/docs/components/fields/SearchComboBox.md +1 -1
  670. package/docs/components/fields/Select.md +1 -1
  671. package/docs/components/fields/TagInput.md +1 -1
  672. package/docs/components/overlays/Dialog.md +1 -1
  673. package/docs/tasty/react-api.md +1 -1
  674. package/package.json +3 -3
  675. package/tasty.config.ts +153 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SubMenuTrigger.js","names":["useSyncRef","tasty","React","Key","ReactElement","ReactNode","useEffect","useMemo","useRef","useState","AriaMenuTriggerProps","DismissButton","Placement","useMenuTrigger","useOverlayPosition","useMenuTriggerState","useEvent","generateRandomId","usePopoverSync","Popover","MenuContext","MenuContextValue","useMenuContext","SubmenuTriggerContext","DEFAULT_PLACEMENT","DEFAULT_OFFSET","DEFAULT_CROSS_OFFSET","PointerAreaElement","styles","display","CubeSubMenuTriggerProps","placement","offset","crossOffset","shouldFlip","containerPadding","children","isDisabled","onAction","key","autoFocus","InternalSubMenuTriggerProps","targetKey","InternalSubMenuTrigger","props","overlayProps","menuTrigger","menu","Children","toArray","state","submenuId","domTriggerRef","HTMLElement","popoverRef","HTMLDivElement","menuRef","HTMLUListElement","menuId","isOpen","onClose","close","triggerRef","containerRef","menuTriggerProps","rawTriggerProps","menuProps","type","parentContext","onKeyDown","_mtOnKeyDown","onPress","_mtOnPress","onPressStart","_mtOnPressStart","onKeyUp","_mtOnKeyUp","positionProps","resolvedPlacement","targetRef","overlayRef","scrollRef","nestedMenuContext","ctx","ref","closeOnSelect","mods","popover","isClosing","hoverOpenTimerRef","current","clearTimeout","hoverCloseTimerRef","isHoveringRef","isHoveringSubmenuRef","handleKeyDown","e","KeyboardEvent","preventDefault","stopPropagation","open","nativeEvent","stopImmediatePropagation","ReturnType","setTimeout","checkShouldClose","handleMouseEnter","handleMouseLeave","handlePopoverMouseEnter","handlePopoverMouseLeave","mergeHandler","handler1","handler2","args","shouldCloseOnInteractOutside","el","Element","menuTriggerEl","closest","triggerContextValue","triggerProps","onMouseEnter","onMouseLeave","undefined","style","cloneElement","querySelector","focus","SubMenuTrigger","getCollectionNode","trigger","element","wrapper","displayName","Popover"],"sources":["../../../../src/components/actions/Menu/SubMenuTrigger.tsx"],"sourcesContent":["import { useSyncRef } from '@react-aria/utils';\nimport { tasty } from '@tenphi/tasty';\nimport React, {\n Key,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n AriaMenuTriggerProps,\n DismissButton,\n Placement,\n useMenuTrigger,\n useOverlayPosition,\n} from 'react-aria';\nimport { useMenuTriggerState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { generateRandomId } from '../../../utils/random';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { Popover } from '../../overlays/Modal';\n\nimport { MenuContext, MenuContextValue, useMenuContext } from './context';\nimport { SubmenuTriggerContext } from './SubmenuTriggerContext';\n\n// Default placement & offset for sub-menus (matches Spectrum / Aria)\nconst DEFAULT_PLACEMENT: Placement = 'right top';\nconst DEFAULT_OFFSET = 4;\nconst DEFAULT_CROSS_OFFSET = -5;\n\n// Takes no box of its own: it only listens for the pointer entering and\n// leaving the sub-menu.\nconst PointerAreaElement = tasty({ styles: { display: 'contents' } });\n\nexport interface CubeSubMenuTriggerProps extends AriaMenuTriggerProps {\n /** The preferred placement of the sub-menu relative to the trigger */\n placement?: Placement;\n\n /** Distance in pixels between the trigger and sub-menu */\n offset?: number;\n\n /** Distance in pixels along the cross axis from the default alignment */\n crossOffset?: number;\n\n /** Whether the sub-menu should flip to the opposite side when it would overflow */\n shouldFlip?: boolean;\n\n /** Minimum padding in pixels between the sub-menu and viewport edges */\n containerPadding?: number;\n\n /**\n * Sub-menu trigger and the sub-menu itself. Must be exactly two React nodes.\n *\n * 1) Trigger – a `Menu.Item` with its semantic menuitem inside a list row.\n * 2) Sub-menu – a `<Menu>` element.\n */\n children: [ReactNode, ReactElement];\n\n /** Whether the trigger is disabled and cannot be activated */\n isDisabled?: boolean;\n\n /**\n * Callback fired when an action is selected from the sub-menu.\n * Bubbles the `onAction` event from the sub-menu to parent components.\n */\n onAction?: (key: Key) => void;\n\n /**\n * Controls focus behavior when the sub-menu opens.\n * - `true` or `'first'`: Focus the first item\n * - `'last'`: Focus the last item\n * - `false`: Don't auto-focus any item\n * @default 'first'\n */\n autoFocus?: boolean | 'first' | 'last';\n}\n\ninterface InternalSubMenuTriggerProps extends CubeSubMenuTriggerProps {\n targetKey?: Key;\n}\n\n/**\n * Internal SubMenuTrigger that receives the already-rendered trigger element\n * from the collection system and wraps it with submenu behavior.\n */\nfunction InternalSubMenuTrigger(props: InternalSubMenuTriggerProps) {\n const {\n children,\n placement = DEFAULT_PLACEMENT,\n offset = DEFAULT_OFFSET,\n crossOffset = DEFAULT_CROSS_OFFSET,\n shouldFlip = true,\n isDisabled,\n autoFocus = 'first',\n onAction,\n targetKey,\n ...overlayProps\n } = props;\n\n // Children: [menuTrigger (already rendered MenuItem), menu (Menu component)]\n const [menuTrigger, menu] = React.Children.toArray(children) as [\n ReactElement,\n ReactElement,\n ];\n\n const state = useMenuTriggerState(props as AriaMenuTriggerProps);\n\n // Generate a unique ID for this submenu instance\n const submenuId = useMemo(() => generateRandomId(), []);\n\n // Refs – trigger (MenuItem <li>) and overlay (<div> from Popover)\n const domTriggerRef = useRef<HTMLElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n\n usePopoverSync({\n menuId: submenuId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: domTriggerRef,\n containerRef: popoverRef,\n });\n\n // Strip keyboard/press handlers that we will implement ourselves\n const { menuTriggerProps: rawTriggerProps, menuProps } = useMenuTrigger(\n { type: 'menu', isDisabled },\n state,\n domTriggerRef,\n );\n\n // Get parent context to check if parent menu is closing\n const parentContext = useMenuContext();\n\n // Remove default onKeyDown/onPress handlers from trigger props – we implement custom ones\n const {\n onKeyDown: _mtOnKeyDown,\n onPress: _mtOnPress,\n onPressStart: _mtOnPressStart,\n onKeyUp: _mtOnKeyUp,\n ...menuTriggerProps\n } = rawTriggerProps;\n\n const { overlayProps: positionProps, placement: resolvedPlacement } =\n useOverlayPosition({\n targetRef: domTriggerRef,\n overlayRef: popoverRef,\n scrollRef: menuRef,\n placement,\n offset: offset as number,\n crossOffset: crossOffset as number,\n shouldFlip,\n isOpen: state.isOpen,\n onClose: state.close,\n });\n\n /**\n * Build a MenuContext for the nested menu so it behaves just like a regular\n * popover-based Menu (selection handling, focus management, etc.).\n */\n const nestedMenuContext = useMemo(() => {\n const ctx: MenuContextValue = {\n ...menuProps,\n ref: menuRef,\n // Pass the parent's onClose to close the entire menu hierarchy\n onClose: () => {\n // Close this submenu state immediately\n state.close();\n\n // Then close the parent menu\n if (parentContext.onClose) {\n parentContext.onClose();\n }\n },\n closeOnSelect: true,\n autoFocus,\n mods: {\n popover: true,\n },\n // Propagate closing state from parent\n isClosing: parentContext.isClosing || !state.isOpen,\n };\n\n return ctx;\n }, [\n menuProps,\n autoFocus,\n state,\n parentContext.onClose,\n parentContext.isClosing,\n ]);\n\n // Sync the parent selection manager focus with DOM ref (for virtual focus scenarios)\n useSyncRef(parentContext, domTriggerRef);\n\n // Cleanup hover timers and reset refs on unmount\n useEffect(() => {\n return () => {\n if (hoverOpenTimerRef.current) {\n clearTimeout(hoverOpenTimerRef.current);\n }\n if (hoverCloseTimerRef.current) {\n clearTimeout(hoverCloseTimerRef.current);\n }\n isHoveringRef.current = false;\n isHoveringSubmenuRef.current = false;\n };\n }, []);\n\n // ----- Render -----\n\n // Handle keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (isDisabled) return;\n\n // Arrow right opens submenu\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n e.stopPropagation();\n state.open();\n }\n // Enter or Space opens submenu. Preventing the default keeps `MenuItem`\n // from passing the key on to React Aria's item handler, which would click\n // the item and run its action as well.\n else if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n // Stop immediate propagation to prevent React Aria's handlers from running\n e.nativeEvent.stopImmediatePropagation();\n state.open();\n }\n // Arrow left closes submenu if open\n else if (e.key === 'ArrowLeft' && state.isOpen) {\n e.preventDefault();\n e.stopPropagation();\n state.close();\n }\n };\n\n // Use refs to store timer IDs\n const hoverOpenTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hoverCloseTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Track if mouse is over trigger or submenu\n const isHoveringRef = useRef(false);\n const isHoveringSubmenuRef = useRef(false);\n\n const checkShouldClose = () => {\n // Only close if mouse is not over trigger OR submenu\n if (!isHoveringRef.current && !isHoveringSubmenuRef.current) {\n hoverCloseTimerRef.current = setTimeout(() => {\n // Double check before closing\n if (!isHoveringRef.current && !isHoveringSubmenuRef.current) {\n state.close();\n }\n }, 300);\n }\n };\n\n // Handle mouse interactions on trigger\n const handleMouseEnter = () => {\n if (isDisabled) return;\n\n isHoveringRef.current = true;\n\n // Clear any pending close timer\n if (hoverCloseTimerRef.current) {\n clearTimeout(hoverCloseTimerRef.current);\n hoverCloseTimerRef.current = null;\n }\n\n // Use a small delay to prevent accidental opens\n if (!state.isOpen) {\n hoverOpenTimerRef.current = setTimeout(() => {\n if (isHoveringRef.current) {\n state.open();\n }\n }, 200);\n }\n };\n\n const handleMouseLeave = () => {\n isHoveringRef.current = false;\n\n // Clear open timer if it exists\n if (hoverOpenTimerRef.current) {\n clearTimeout(hoverOpenTimerRef.current);\n hoverOpenTimerRef.current = null;\n }\n\n // Check if we should close\n checkShouldClose();\n };\n\n // Handle mouse events on the submenu popover\n const handlePopoverMouseEnter = () => {\n isHoveringSubmenuRef.current = true;\n\n // Clear any pending close timer when entering submenu\n if (hoverCloseTimerRef.current) {\n clearTimeout(hoverCloseTimerRef.current);\n hoverCloseTimerRef.current = null;\n }\n };\n\n const handlePopoverMouseLeave = () => {\n isHoveringSubmenuRef.current = false;\n\n // Check if we should close\n checkShouldClose();\n };\n\n // Merge event handlers\n const mergeHandler = (handler1: any, handler2: any) => {\n return (...args: any[]) => {\n handler1?.(...args);\n handler2?.(...args);\n };\n };\n\n // Outside-click handling for the nested submenu Popover.\n //\n // React Aria's `useOverlay` keeps a module-level `visibleOverlays` stack and\n // only invokes `onClose` for the topmost overlay (`onHide` gates on the\n // stack tail). With root + N nested submenus open, a single outside click\n // would otherwise only close the deepest submenu. Scheduling\n // `parentContext.onClose()` here propagates the close upward; the existing\n // `parentContext.isClosing` cascade (see `nestedMenuContext.isClosing` and\n // the Popover's `isOpen={!parentContext.isClosing}`) collapses every\n // intermediate submenu visually.\n //\n // Mirrors `MenuTrigger`'s predicate so clicks on `[data-popover-trigger]`\n // and `[data-popover-dismiss]` elements behave consistently across nesting\n // levels.\n const shouldCloseOnInteractOutside = useEvent((el: Element) => {\n if (!state.isOpen) return false;\n\n const menuTriggerEl = el.closest('[data-popover-trigger]');\n if (!menuTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n if (el.closest('[data-popover-dismiss]')) {\n // Let the button's onPress fire first, then collapse the chain.\n setTimeout(() => parentContext.onClose?.(), 0);\n return false;\n }\n // True outside click: schedule parent close so the entire hierarchy\n // cascades. `useOverlay`'s own `onHide` will close this submenu via the\n // topmost-overlay rule.\n setTimeout(() => parentContext.onClose?.(), 0);\n return true;\n }\n // Click landed on a popover trigger (parent menu item, sibling submenu\n // trigger, or a different menu's button). Don't close ourselves here —\n // either the trigger handles it or `usePopoverSync` closes us via\n // `popover:open`.\n return false;\n });\n\n // Provide context to the trigger element (already rendered MenuItem)\n const triggerContextValue = useMemo(\n () => ({\n triggerRef: domTriggerRef,\n triggerProps: menuTriggerProps,\n isOpen: state.isOpen,\n isDisabled,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onKeyDown: handleKeyDown,\n onAction: isDisabled\n ? undefined\n : () => {\n // A pointer press: Enter and Space open the submenu in\n // `handleKeyDown` and never reach the item's action.\n state.open();\n },\n }),\n [\n state,\n isDisabled,\n handleMouseEnter,\n handleMouseLeave,\n handleKeyDown,\n menuTriggerProps,\n ],\n );\n\n return (\n <>\n <SubmenuTriggerContext.Provider value={triggerContextValue}>\n {menuTrigger}\n </SubmenuTriggerContext.Provider>\n {state.isOpen && (\n <Popover\n ref={popoverRef}\n hideArrow\n isNonModal\n isOpen={!parentContext.isClosing}\n // oxlint-disable-next-line react/forbid-component-props -- React Aria's overlay positioning computes these coordinates\n style={positionProps.style}\n placement={resolvedPlacement ?? undefined}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n onClose={state.close}\n // Spread any additional overlay props\n {...overlayProps}\n >\n {/* Wrap content in a div to capture mouse events */}\n <PointerAreaElement\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n >\n {/* Dismiss buttons for screen reader / keyboard support */}\n <DismissButton onDismiss={state.close} />\n {/* Provide updated menu context so nested menu behaves correctly */}\n <MenuContext.Provider value={nestedMenuContext}>\n {/* Clone nested menu to inject required props */}\n {React.cloneElement(menu, {\n ...(menu.props as any),\n autoFocus,\n onAction: (key: Key) => {\n // Call original menu onAction first\n (menu.props as any).onAction?.(key);\n onAction?.(key);\n // Don't close here - MenuItem will handle it via context.onClose\n },\n onKeyDown: (e: React.KeyboardEvent) => {\n // Handle keyboard navigation for closing submenu\n if (e.key === 'ArrowLeft' || e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n state.close();\n // Return focus to trigger\n (\n domTriggerRef.current?.querySelector<HTMLElement>(\n '[data-menu-native-primary]',\n ) ?? domTriggerRef.current\n )?.focus();\n }\n // Call original handler if exists\n (menu.props as any).onKeyDown?.(e);\n },\n ref: menuRef,\n })}\n </MenuContext.Provider>\n <DismissButton onDismiss={state.close} />\n </PointerAreaElement>\n </Popover>\n )}\n </>\n );\n}\n\n/**\n * Public SubMenuTrigger component that users interact with.\n * It just provides the getCollectionNode for the collection system.\n */\nexport function SubMenuTrigger(props: CubeSubMenuTriggerProps) {\n // This component is never actually rendered directly.\n // The collection system uses getCollectionNode to build the menu.\n return null;\n}\n\n// Allow React Stately collection builder to treat SubMenuTrigger as an Item\n(SubMenuTrigger as any).getCollectionNode = function* (\n props: CubeSubMenuTriggerProps,\n) {\n const [trigger, menu] = React.Children.toArray(\n props.children,\n ) as ReactElement[];\n\n // Yield a collection node that tells the Menu to wrap this item with InternalSubMenuTrigger\n yield {\n element: trigger,\n wrapper: (element: ReactElement) => (\n <InternalSubMenuTrigger\n key={element.key || undefined}\n targetKey={element.key || undefined}\n {...props}\n >\n {element}\n {menu}\n </InternalSubMenuTrigger>\n ),\n };\n};\n\nSubMenuTrigger.displayName = 'SubMenuTrigger';\n"],"mappings":"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"}
1
+ {"version":3,"file":"SubMenuTrigger.js","names":["useSyncRef","tasty","React","Key","ReactElement","ReactNode","useEffect","useMemo","useRef","useState","AriaMenuTriggerProps","DismissButton","Placement","useMenuTrigger","useOverlayPosition","useMenuTriggerState","useEvent","generateRandomId","usePopoverSync","Popover","MenuContext","MenuContextValue","useMenuContext","SubmenuTriggerContext","DEFAULT_PLACEMENT","DEFAULT_OFFSET","DEFAULT_CROSS_OFFSET","PointerAreaElement","styles","display","CubeSubMenuTriggerProps","placement","offset","crossOffset","shouldFlip","containerPadding","children","isDisabled","onAction","key","autoFocus","InternalSubMenuTriggerProps","targetKey","InternalSubMenuTrigger","props","overlayProps","menuTrigger","menu","Children","toArray","state","submenuId","domTriggerRef","HTMLElement","popoverRef","HTMLDivElement","menuRef","HTMLUListElement","menuId","isOpen","onClose","close","triggerRef","containerRef","menuTriggerProps","rawTriggerProps","menuProps","type","parentContext","onKeyDown","_mtOnKeyDown","onPress","_mtOnPress","onPressStart","_mtOnPressStart","onKeyUp","_mtOnKeyUp","positionProps","resolvedPlacement","targetRef","overlayRef","scrollRef","nestedMenuContext","ctx","ref","closeOnSelect","mods","popover","isClosing","hoverOpenTimerRef","current","clearTimeout","hoverCloseTimerRef","isHoveringRef","isHoveringSubmenuRef","handleKeyDown","e","KeyboardEvent","preventDefault","stopPropagation","open","nativeEvent","stopImmediatePropagation","ReturnType","setTimeout","checkShouldClose","handleMouseEnter","handleMouseLeave","handlePopoverMouseEnter","handlePopoverMouseLeave","mergeHandler","handler1","handler2","args","shouldCloseOnInteractOutside","el","Element","menuTriggerEl","closest","triggerContextValue","triggerProps","onMouseEnter","onMouseLeave","undefined","style","cloneElement","querySelector","focus","SubMenuTrigger","getCollectionNode","trigger","element","wrapper","displayName","Popover"],"sources":["../../../../src/components/actions/Menu/SubMenuTrigger.tsx"],"sourcesContent":["import { useSyncRef } from '@react-aria/utils';\nimport { tasty } from '@tenphi/tasty';\nimport React, {\n Key,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n AriaMenuTriggerProps,\n DismissButton,\n Placement,\n useMenuTrigger,\n useOverlayPosition,\n} from 'react-aria';\nimport { useMenuTriggerState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { generateRandomId } from '../../../utils/random';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { Popover } from '../../overlays/Modal';\n\nimport { MenuContext, MenuContextValue, useMenuContext } from './context';\nimport { SubmenuTriggerContext } from './SubmenuTriggerContext';\n\n// Default placement & offset for sub-menus (matches Spectrum / Aria)\nconst DEFAULT_PLACEMENT: Placement = 'right top';\nconst DEFAULT_OFFSET = 4;\nconst DEFAULT_CROSS_OFFSET = -5;\n\n// Takes no box of its own: it only listens for the pointer entering and\n// leaving the sub-menu.\nconst PointerAreaElement = tasty({ styles: { display: 'contents' } });\n\nexport interface CubeSubMenuTriggerProps extends AriaMenuTriggerProps {\n /** The preferred placement of the sub-menu relative to the trigger */\n placement?: Placement;\n\n /** Distance in pixels between the trigger and sub-menu */\n offset?: number;\n\n /** Distance in pixels along the cross axis from the default alignment */\n crossOffset?: number;\n\n /** Whether the sub-menu should flip to the opposite side when it would overflow */\n shouldFlip?: boolean;\n\n /** Minimum padding in pixels between the sub-menu and viewport edges */\n containerPadding?: number;\n\n /**\n * Sub-menu trigger and the sub-menu itself. Must be exactly two React nodes.\n *\n * 1) Trigger – a `Menu.Item` with its semantic menuitem inside a list row.\n * 2) Sub-menu – a `<Menu>` element.\n */\n children: [ReactNode, ReactElement];\n\n /** Whether the trigger is disabled and cannot be activated */\n isDisabled?: boolean;\n\n /**\n * Callback fired when an action is selected from the sub-menu.\n * Bubbles the `onAction` event from the sub-menu to parent components.\n */\n onAction?: (key: Key) => void;\n\n /**\n * Controls focus behavior when the sub-menu opens.\n * - `true` or `'first'`: Focus the first item\n * - `'last'`: Focus the last item\n * - `false`: Don't auto-focus any item\n * @default 'first'\n */\n autoFocus?: boolean | 'first' | 'last';\n}\n\ninterface InternalSubMenuTriggerProps extends CubeSubMenuTriggerProps {\n targetKey?: Key;\n}\n\n/**\n * Internal SubMenuTrigger that receives the already-rendered trigger element\n * from the collection system and wraps it with submenu behavior.\n */\nfunction InternalSubMenuTrigger(props: InternalSubMenuTriggerProps) {\n const {\n children,\n placement = DEFAULT_PLACEMENT,\n offset = DEFAULT_OFFSET,\n crossOffset = DEFAULT_CROSS_OFFSET,\n shouldFlip = true,\n isDisabled,\n autoFocus = 'first',\n onAction,\n targetKey,\n ...overlayProps\n } = props;\n\n // Children: [menuTrigger (already rendered MenuItem), menu (Menu component)]\n const [menuTrigger, menu] = React.Children.toArray(children) as [\n ReactElement,\n ReactElement,\n ];\n\n const state = useMenuTriggerState(props as AriaMenuTriggerProps);\n\n // Generate a unique ID for this submenu instance\n const submenuId = useMemo(() => generateRandomId(), []);\n\n // Refs – trigger (MenuItem <li>) and overlay (<div> from Popover)\n const domTriggerRef = useRef<HTMLElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n\n usePopoverSync({\n menuId: submenuId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: domTriggerRef,\n containerRef: popoverRef,\n });\n\n // Strip keyboard/press handlers that we will implement ourselves\n const { menuTriggerProps: rawTriggerProps, menuProps } = useMenuTrigger(\n { type: 'menu', isDisabled },\n state,\n domTriggerRef,\n );\n\n // Get parent context to check if parent menu is closing\n const parentContext = useMenuContext();\n\n // Remove default onKeyDown/onPress handlers from trigger props – we implement custom ones\n const {\n onKeyDown: _mtOnKeyDown,\n onPress: _mtOnPress,\n onPressStart: _mtOnPressStart,\n onKeyUp: _mtOnKeyUp,\n ...menuTriggerProps\n } = rawTriggerProps;\n\n const { overlayProps: positionProps, placement: resolvedPlacement } =\n useOverlayPosition({\n targetRef: domTriggerRef,\n overlayRef: popoverRef,\n scrollRef: menuRef,\n placement,\n offset: offset as number,\n crossOffset: crossOffset as number,\n shouldFlip,\n isOpen: state.isOpen,\n onClose: state.close,\n });\n\n /**\n * Build a MenuContext for the nested menu so it behaves just like a regular\n * popover-based Menu (selection handling, focus management, etc.).\n */\n const nestedMenuContext = useMemo(() => {\n const ctx: MenuContextValue = {\n ...menuProps,\n ref: menuRef,\n // Pass the parent's onClose to close the entire menu hierarchy\n onClose: () => {\n // Close this submenu state immediately\n state.close();\n\n // Then close the parent menu\n if (parentContext.onClose) {\n parentContext.onClose();\n }\n },\n closeOnSelect: true,\n autoFocus,\n mods: {\n popover: true,\n },\n // Propagate closing state from parent\n isClosing: parentContext.isClosing || !state.isOpen,\n };\n\n return ctx;\n }, [\n menuProps,\n autoFocus,\n state,\n parentContext.onClose,\n parentContext.isClosing,\n ]);\n\n // Sync the parent selection manager focus with DOM ref (for virtual focus scenarios)\n useSyncRef(parentContext, domTriggerRef);\n\n // Cleanup hover timers and reset refs on unmount\n useEffect(() => {\n return () => {\n if (hoverOpenTimerRef.current) {\n clearTimeout(hoverOpenTimerRef.current);\n }\n if (hoverCloseTimerRef.current) {\n clearTimeout(hoverCloseTimerRef.current);\n }\n isHoveringRef.current = false;\n isHoveringSubmenuRef.current = false;\n };\n }, []);\n\n // ----- Render -----\n\n // Handle keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (isDisabled) return;\n\n // Arrow right opens submenu\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n e.stopPropagation();\n state.open();\n }\n // Enter or Space opens submenu. Preventing the default keeps `MenuItem`\n // from passing the key on to React Aria's item handler, which would click\n // the item and run its action as well.\n else if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n // Stop immediate propagation to prevent React Aria's handlers from running\n e.nativeEvent.stopImmediatePropagation();\n state.open();\n }\n // Arrow left closes submenu if open\n else if (e.key === 'ArrowLeft' && state.isOpen) {\n e.preventDefault();\n e.stopPropagation();\n state.close();\n }\n };\n\n // Use refs to store timer IDs\n const hoverOpenTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hoverCloseTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Track if mouse is over trigger or submenu\n const isHoveringRef = useRef(false);\n const isHoveringSubmenuRef = useRef(false);\n\n const checkShouldClose = () => {\n // Only close if mouse is not over trigger OR submenu\n if (!isHoveringRef.current && !isHoveringSubmenuRef.current) {\n hoverCloseTimerRef.current = setTimeout(() => {\n // Double check before closing\n if (!isHoveringRef.current && !isHoveringSubmenuRef.current) {\n state.close();\n }\n }, 300);\n }\n };\n\n // Handle mouse interactions on trigger\n const handleMouseEnter = () => {\n if (isDisabled) return;\n\n isHoveringRef.current = true;\n\n // Clear any pending close timer\n if (hoverCloseTimerRef.current) {\n clearTimeout(hoverCloseTimerRef.current);\n hoverCloseTimerRef.current = null;\n }\n\n // Use a small delay to prevent accidental opens\n if (!state.isOpen) {\n hoverOpenTimerRef.current = setTimeout(() => {\n if (isHoveringRef.current) {\n state.open();\n }\n }, 200);\n }\n };\n\n const handleMouseLeave = () => {\n isHoveringRef.current = false;\n\n // Clear open timer if it exists\n if (hoverOpenTimerRef.current) {\n clearTimeout(hoverOpenTimerRef.current);\n hoverOpenTimerRef.current = null;\n }\n\n // Check if we should close\n checkShouldClose();\n };\n\n // Handle mouse events on the submenu popover\n const handlePopoverMouseEnter = () => {\n isHoveringSubmenuRef.current = true;\n\n // Clear any pending close timer when entering submenu\n if (hoverCloseTimerRef.current) {\n clearTimeout(hoverCloseTimerRef.current);\n hoverCloseTimerRef.current = null;\n }\n };\n\n const handlePopoverMouseLeave = () => {\n isHoveringSubmenuRef.current = false;\n\n // Check if we should close\n checkShouldClose();\n };\n\n // Merge event handlers\n const mergeHandler = (handler1: any, handler2: any) => {\n return (...args: any[]) => {\n handler1?.(...args);\n handler2?.(...args);\n };\n };\n\n // Outside-click handling for the nested submenu Popover.\n //\n // React Aria's `useOverlay` keeps a module-level `visibleOverlays` stack and\n // only invokes `onClose` for the topmost overlay (`onHide` gates on the\n // stack tail). With root + N nested submenus open, a single outside click\n // would otherwise only close the deepest submenu. Scheduling\n // `parentContext.onClose()` here propagates the close upward; the existing\n // `parentContext.isClosing` cascade (see `nestedMenuContext.isClosing` and\n // the Popover's `isOpen={!parentContext.isClosing}`) collapses every\n // intermediate submenu visually.\n //\n // Mirrors `MenuTrigger`'s predicate so clicks on `[data-popover-trigger]`\n // and `[data-popover-dismiss]` elements behave consistently across nesting\n // levels.\n const shouldCloseOnInteractOutside = useEvent((el: Element) => {\n if (!state.isOpen) return false;\n\n const menuTriggerEl = el.closest('[data-popover-trigger]');\n if (!menuTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n if (el.closest('[data-popover-dismiss]')) {\n // Let the button's onPress fire first, then collapse the chain.\n setTimeout(() => parentContext.onClose?.(), 0);\n return false;\n }\n // True outside click: schedule parent close so the entire hierarchy\n // cascades. `useOverlay`'s own `onHide` will close this submenu via the\n // topmost-overlay rule.\n setTimeout(() => parentContext.onClose?.(), 0);\n return true;\n }\n // Click landed on a popover trigger (parent menu item, sibling submenu\n // trigger, or a different menu's button). Don't close ourselves here —\n // either the trigger handles it or `usePopoverSync` closes us via\n // `popover:open`.\n return false;\n });\n\n // Provide context to the trigger element (already rendered MenuItem)\n const triggerContextValue = useMemo(\n () => ({\n triggerRef: domTriggerRef,\n triggerProps: menuTriggerProps,\n isOpen: state.isOpen,\n isDisabled,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onKeyDown: handleKeyDown,\n onAction: isDisabled\n ? undefined\n : () => {\n // A pointer press: Enter and Space open the submenu in\n // `handleKeyDown` and never reach the item's action.\n state.open();\n },\n }),\n [\n state,\n isDisabled,\n handleMouseEnter,\n handleMouseLeave,\n handleKeyDown,\n menuTriggerProps,\n ],\n );\n\n return (\n <>\n <SubmenuTriggerContext.Provider value={triggerContextValue}>\n {menuTrigger}\n </SubmenuTriggerContext.Provider>\n {state.isOpen && (\n <Popover\n ref={popoverRef}\n hideArrow\n isNonModal\n isOpen={!parentContext.isClosing}\n // oxlint-disable-next-line tasty/no-style-prop -- React Aria's overlay positioning computes these coordinates\n style={positionProps.style}\n placement={resolvedPlacement ?? undefined}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n onClose={state.close}\n // Spread any additional overlay props\n {...overlayProps}\n >\n {/* Wrap content in a div to capture mouse events */}\n <PointerAreaElement\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n >\n {/* Dismiss buttons for screen reader / keyboard support */}\n <DismissButton onDismiss={state.close} />\n {/* Provide updated menu context so nested menu behaves correctly */}\n <MenuContext.Provider value={nestedMenuContext}>\n {/* Clone nested menu to inject required props */}\n {React.cloneElement(menu, {\n ...(menu.props as any),\n autoFocus,\n onAction: (key: Key) => {\n // Call original menu onAction first\n (menu.props as any).onAction?.(key);\n onAction?.(key);\n // Don't close here - MenuItem will handle it via context.onClose\n },\n onKeyDown: (e: React.KeyboardEvent) => {\n // Handle keyboard navigation for closing submenu\n if (e.key === 'ArrowLeft' || e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n state.close();\n // Return focus to trigger\n (\n domTriggerRef.current?.querySelector<HTMLElement>(\n '[data-menu-native-primary]',\n ) ?? domTriggerRef.current\n )?.focus();\n }\n // Call original handler if exists\n (menu.props as any).onKeyDown?.(e);\n },\n ref: menuRef,\n })}\n </MenuContext.Provider>\n <DismissButton onDismiss={state.close} />\n </PointerAreaElement>\n </Popover>\n )}\n </>\n );\n}\n\n/**\n * Public SubMenuTrigger component that users interact with.\n * It just provides the getCollectionNode for the collection system.\n */\nexport function SubMenuTrigger(props: CubeSubMenuTriggerProps) {\n // This component is never actually rendered directly.\n // The collection system uses getCollectionNode to build the menu.\n return null;\n}\n\n// Allow React Stately collection builder to treat SubMenuTrigger as an Item\n(SubMenuTrigger as any).getCollectionNode = function* (\n props: CubeSubMenuTriggerProps,\n) {\n const [trigger, menu] = React.Children.toArray(\n props.children,\n ) as ReactElement[];\n\n // Yield a collection node that tells the Menu to wrap this item with InternalSubMenuTrigger\n yield {\n element: trigger,\n wrapper: (element: ReactElement) => (\n <InternalSubMenuTrigger\n key={element.key || undefined}\n targetKey={element.key || undefined}\n {...props}\n >\n {element}\n {menu}\n </InternalSubMenuTrigger>\n ),\n };\n};\n\nSubMenuTrigger.displayName = 'SubMenuTrigger';\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import React from "react";
3
3
  //#region src/components/actions/Menu/SubmenuTriggerContext.tsx
4
4
  const SubmenuTriggerContext = React.createContext(null);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import React, { useContext } from "react";
3
3
  //#region src/components/actions/Menu/context.ts
4
4
  const MenuContext = React.createContext({});
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { DEFAULT_CLEAR_STYLES } from "../../../data/item-themes.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { DEFAULT_BUTTON_STYLES } from "../Button/Button.js";
@@ -38,7 +38,7 @@ const StyledMenu = tasty({
38
38
  display: "flex",
39
39
  flow: "column",
40
40
  gap: {
41
- "": "1bw",
41
+ "": "$item-gap",
42
42
  sections: false
43
43
  },
44
44
  boxSizing: "border-box",
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","names":["mergeStyles","tasty","DEFAULT_CLEAR_STYLES","CubeSpaceProps","Space","DEFAULT_BUTTON_STYLES","StyledMenuWrapper","qa","styles","display","gridRows","fill","margin","padding","border","radius","width","popover","tray","shadow","height","boxSizing","StyledMenu","as","flow","gap","sections","section","overflow","scrollbar","StyledDivider","listStyle","flexShrink","StyledHeader","color","preset","placeContent","placeItems","whiteSpace","$size","StyledFooter","StyledSection","StyledItem","justifyContent","focused","selected","pressed","disabled","cursor","outline","Description","StyledSectionHeading","size","prefix"],"sources":["../../../../src/components/actions/Menu/styled.tsx"],"sourcesContent":["import { mergeStyles, tasty } from '@tenphi/tasty';\n\nimport { DEFAULT_CLEAR_STYLES } from '../../../data/item-themes';\nimport { CubeSpaceProps, Space } from '../../layout/Space';\nimport { DEFAULT_BUTTON_STYLES } from '../Button/Button';\n\nexport const StyledMenuWrapper = tasty({\n qa: 'Menu',\n styles: {\n display: 'grid',\n gridRows: 'max-content 1sf max-content',\n fill: '#surface',\n margin: 0,\n padding: 0,\n border: true,\n radius: '(1cr + 1bw)',\n width: {\n '': 'auto',\n popover: 'max-content',\n tray: '100%',\n },\n shadow: {\n '': '',\n // Use the design-system `$shadow` token (resolves to\n // `0 .5x 2x #shadow-md`) so the popover shadow follows the\n // scheme-aware Glaze `#shadow-md` color. The previous literal\n // `0px 5px 15px #dark.05` baked in `#dark` (now aliased to the\n // adaptive `#surface-text`) which inverts to a *light* shadow on\n // dark surfaces.\n 'popover | tray': '$shadow',\n },\n height: {\n '': 'initial',\n popover: 'initial max-content (50vh - 4x)',\n // The tray caps the height, and the menu scrolls inside it.\n tray: 'initial max-content inherit',\n },\n boxSizing: 'border-box',\n },\n});\n\nexport const StyledMenu = tasty({\n as: 'ul',\n qa: 'MenuList',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: {\n '': '1bw',\n sections: false,\n },\n boxSizing: 'border-box',\n margin: 0,\n padding: {\n '': '0.5x',\n section: 0, // section menu\n },\n overflow: {\n '': 'auto',\n section: '',\n },\n scrollbar: 'styled',\n },\n});\n\nexport const StyledDivider = tasty({\n qa: 'Divider',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '.5x',\n listStyle: 'none',\n fill: '#border',\n height: '1bw',\n flexShrink: 0,\n },\n});\n\n// No `heading` role: a header can hold controls, and a heading would read\n// them as part of its title.\nexport const StyledHeader = tasty(Space, {\n qa: 'Header',\n as: 'div',\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: 'min $size',\n boxSizing: 'border-box',\n border: 'bottom',\n radius: '1cr top',\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n },\n});\n\nexport const StyledFooter = tasty(Space, {\n qa: 'Footer',\n as: 'div',\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n boxSizing: 'border-box',\n border: 'top',\n radius: '1cr bottom',\n },\n});\n\nexport const StyledSection = tasty({\n qa: 'Section',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '0',\n padding: '0',\n listStyle: 'none',\n fill: '#surface',\n },\n});\n\nexport const StyledItem = tasty({\n qa: 'Item',\n as: 'li',\n // Button's defaults with its `default.clear` theme, merged the way Button\n // applies that variant, then the menu-specific overrides.\n styles: mergeStyles(DEFAULT_BUTTON_STYLES, DEFAULT_CLEAR_STYLES, {\n // Override specifics for menu context\n display: 'flex',\n flow: 'row',\n justifyContent: 'stretch',\n listStyle: 'none',\n flexShrink: 0,\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n border: false,\n boxSizing: 'border-box',\n fill: {\n '': '#clear',\n focused: '#dark.03',\n selected: '#dark.09',\n 'selected & focused': '#dark.12',\n pressed: '#dark.09',\n disabled: '#clear',\n },\n color: {\n '': '#dark-02',\n 'selected | pressed': '#dark',\n disabled: '#disabled-surface-text',\n },\n cursor: {\n '': 'default',\n disabled: 'not-allowed',\n },\n shadow: '#clear',\n padding: {\n '': '.5x 1x',\n 'selectionIcon & selectable & !selected': '.5x 1x .5x (1x + 3x)',\n },\n gap: '.75x',\n outline: false,\n\n Description: {\n preset: 't4',\n color: '#dark-03',\n },\n }),\n});\n\nexport const StyledSectionHeading = tasty<\n CubeSpaceProps & { size?: 'small' | 'medium' | (string & {}) }\n>(Space, {\n qa: 'SectionHeading',\n as: 'div',\n styles: {\n color: '#dark-04',\n preset: 'c2',\n height: '3x',\n placeContent: 'center space-between',\n padding: {\n '': '.5x .75x',\n prefix: '0 .75x 0 .5x',\n },\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"styled.js","names":["mergeStyles","tasty","DEFAULT_CLEAR_STYLES","CubeSpaceProps","Space","DEFAULT_BUTTON_STYLES","StyledMenuWrapper","qa","styles","display","gridRows","fill","margin","padding","border","radius","width","popover","tray","shadow","height","boxSizing","StyledMenu","as","flow","gap","sections","section","overflow","scrollbar","StyledDivider","listStyle","flexShrink","StyledHeader","color","preset","placeContent","placeItems","whiteSpace","$size","StyledFooter","StyledSection","StyledItem","justifyContent","focused","selected","pressed","disabled","cursor","outline","Description","StyledSectionHeading","size","prefix"],"sources":["../../../../src/components/actions/Menu/styled.tsx"],"sourcesContent":["import { mergeStyles, tasty } from '@tenphi/tasty';\n\nimport { DEFAULT_CLEAR_STYLES } from '../../../data/item-themes';\nimport { CubeSpaceProps, Space } from '../../layout/Space';\nimport { DEFAULT_BUTTON_STYLES } from '../Button/Button';\n\nexport const StyledMenuWrapper = tasty({\n qa: 'Menu',\n styles: {\n display: 'grid',\n gridRows: 'max-content 1sf max-content',\n fill: '#surface',\n margin: 0,\n padding: 0,\n border: true,\n radius: '(1cr + 1bw)',\n width: {\n '': 'auto',\n popover: 'max-content',\n tray: '100%',\n },\n shadow: {\n '': '',\n // Use the design-system `$shadow` token (resolves to\n // `0 .5x 2x #shadow-md`) so the popover shadow follows the\n // scheme-aware Glaze `#shadow-md` color. The previous literal\n // `0px 5px 15px #dark.05` baked in `#dark` (now aliased to the\n // adaptive `#surface-text`) which inverts to a *light* shadow on\n // dark surfaces.\n 'popover | tray': '$shadow',\n },\n height: {\n '': 'initial',\n popover: 'initial max-content (50vh - 4x)',\n // The tray caps the height, and the menu scrolls inside it.\n tray: 'initial max-content inherit',\n },\n boxSizing: 'border-box',\n },\n});\n\nexport const StyledMenu = tasty({\n as: 'ul',\n qa: 'MenuList',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: {\n '': '$item-gap',\n sections: false,\n },\n boxSizing: 'border-box',\n margin: 0,\n padding: {\n '': '0.5x',\n section: 0, // section menu\n },\n overflow: {\n '': 'auto',\n section: '',\n },\n scrollbar: 'styled',\n },\n});\n\nexport const StyledDivider = tasty({\n qa: 'Divider',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '.5x',\n listStyle: 'none',\n fill: '#border',\n height: '1bw',\n flexShrink: 0,\n },\n});\n\n// No `heading` role: a header can hold controls, and a heading would read\n// them as part of its title.\nexport const StyledHeader = tasty(Space, {\n qa: 'Header',\n as: 'div',\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: 'min $size',\n boxSizing: 'border-box',\n border: 'bottom',\n radius: '1cr top',\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n },\n});\n\nexport const StyledFooter = tasty(Space, {\n qa: 'Footer',\n as: 'div',\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n boxSizing: 'border-box',\n border: 'top',\n radius: '1cr bottom',\n },\n});\n\nexport const StyledSection = tasty({\n qa: 'Section',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '0',\n padding: '0',\n listStyle: 'none',\n fill: '#surface',\n },\n});\n\nexport const StyledItem = tasty({\n qa: 'Item',\n as: 'li',\n // Button's defaults with its `default.clear` theme, merged the way Button\n // applies that variant, then the menu-specific overrides.\n styles: mergeStyles(DEFAULT_BUTTON_STYLES, DEFAULT_CLEAR_STYLES, {\n // Override specifics for menu context\n display: 'flex',\n flow: 'row',\n justifyContent: 'stretch',\n listStyle: 'none',\n flexShrink: 0,\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n border: false,\n boxSizing: 'border-box',\n fill: {\n '': '#clear',\n focused: '#dark.03',\n selected: '#dark.09',\n 'selected & focused': '#dark.12',\n pressed: '#dark.09',\n disabled: '#clear',\n },\n color: {\n '': '#dark-02',\n 'selected | pressed': '#dark',\n disabled: '#disabled-surface-text',\n },\n cursor: {\n '': 'default',\n disabled: 'not-allowed',\n },\n shadow: '#clear',\n padding: {\n '': '.5x 1x',\n 'selectionIcon & selectable & !selected': '.5x 1x .5x (1x + 3x)',\n },\n gap: '.75x',\n outline: false,\n\n Description: {\n preset: 't4',\n color: '#dark-03',\n },\n }),\n});\n\nexport const StyledSectionHeading = tasty<\n CubeSpaceProps & { size?: 'small' | 'medium' | (string & {}) }\n>(Space, {\n qa: 'SectionHeading',\n as: 'div',\n styles: {\n color: '#dark-04',\n preset: 'c2',\n height: '3x',\n placeContent: 'center space-between',\n padding: {\n '': '.5x .75x',\n prefix: '0 .75x 0 .5x',\n },\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n },\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  //#region src/components/actions/actions-run.ts
3
3
  /**
4
4
  * Whether `element` — the node react-aria hands an overlay's dismiss predicate
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { ItemActionProvider, useItemActionContext } from "./ItemActionContext.js";
3
3
  import { openLink, parseTo, performClickHandler, useAction } from "./use-action.js";
4
4
  import { ItemAction } from "./ItemAction/ItemAction.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../_internal/hooks/use-event.js";
4
4
  import { useWarn } from "../../_internal/hooks/use-warn.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import themes_default from "../../../data/themes.js";
3
3
  import { useAlert } from "./use-alert.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"Alert.js","names":["tasty","ForwardedRef","forwardRef","THEMES","CubeAlertProps","useAlert","AlertElement","name","role","qa","styles","display","flow","radius","padding","preset","color","special","disabled","fill","Object","keys","reduce","map","type","border","Alert","props","ref","$","_c","mods","filteredProps","t0","THEMES","_c"],"sources":["../../../../src/components/content/Alert/Alert.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef } from 'react';\n\nimport THEMES from '../../../data/themes';\n\nimport { CubeAlertProps } from './types';\nimport { useAlert } from './use-alert';\n\nconst AlertElement = tasty({\n name: 'Alert',\n role: 'alert',\n qa: 'Alert',\n styles: {\n display: 'block',\n flow: 'column',\n radius: {\n '': '1cr',\n 'shape=sharp': '0',\n },\n padding: '1.5x',\n preset: 't3',\n color: {\n '': '#dark-02',\n // `color` in THEMES is Badge's fill for the status themes, so only these\n // two read it as a label.\n 'type=special': THEMES.special.color,\n 'type=disabled': THEMES.disabled.color,\n },\n fill: {\n '': '#clear',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme fill states generated from THEMES\n ...Object.keys(THEMES).reduce((map, type) => {\n map[`type=${type}`] = THEMES[type].fill;\n\n return map;\n }, {}),\n },\n border: {\n '': '#clear',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme border states generated from THEMES\n ...Object.keys(THEMES).reduce((map, type) => {\n map[`type=${type}`] = THEMES[type].border;\n\n return map;\n }, {}),\n 'shape=sharp': '0',\n },\n },\n});\n\nexport const Alert = forwardRef(function Alert(\n props: CubeAlertProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { styles, mods, filteredProps } = useAlert(props);\n\n return (\n <AlertElement {...filteredProps} ref={ref} mods={mods} styles={styles} />\n );\n});\n"],"mappings":";;;;;;;;AAQA,MAAMM,eAAeN,MAAM;CACzBO,MAAM;CACNC,MAAM;CACNC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,QAAQ;GACN,IAAI;GACJ,eAAe;EACjB;EACAC,SAAS;EACTC,QAAQ;EACRC,OAAO;GACL,IAAI;GAGJ,gBAAgBb,eAAOc,QAAQD;GAC/B,iBAAiBb,eAAOe,SAASF;EACnC;EACAG,MAAM;GACJ,IAAI;GAEJ,GAAGC,OAAOC,KAAKlB,cAAM,CAAC,CAACmB,QAAQC,KAAKC,SAAS;IAC3CD,IAAI,QAAQC,UAAUrB,eAAOqB,KAAK,CAACL;IAEnC,OAAOI;GACT,GAAG,CAAC,CAAC;EACP;EACAE,QAAQ;GACN,IAAI;GAEJ,GAAGL,OAAOC,KAAKlB,cAAM,CAAC,CAACmB,QAAQC,KAAKC,SAAS;IAC3CD,IAAI,QAAQC,UAAUrB,eAAOqB,KAAK,CAACC;IAEnC,OAAOF;GACT,GAAG,CAAC,CAAC;GACL,eAAe;EACjB;CACF;AACF,CAAC;AAED,MAAaG,QAAQxB,WAAW,SAAAwB,MAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAI9B,MAAA,EAAApB,QAAAqB,MAAAC,kBAAwC3B,SAASsB,KAAK;CAAE,IAAAM;CAAA,IAAAJ,EAAA,OAAAG,iBAAAH,EAAA,OAAAE,QAAAF,EAAA,OAAAD,OAAAC,EAAA,OAAAnB,QAAA;EAGtDuB,KAAA,oBAAC,cAAD;GAAa,GAAKD;GAAoBJ;GAAWG;GAAcrB;EAAM,CAAA;EAAImB,EAAA,KAAAG;EAAAH,EAAA,KAAAE;EAAAF,EAAA,KAAAD;EAAAC,EAAA,KAAAnB;EAAAmB,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAAzEI;AAAyE,CAE5E"}
1
+ {"version":3,"file":"Alert.js","names":["tasty","ForwardedRef","forwardRef","THEMES","CubeAlertProps","useAlert","AlertElement","name","role","qa","styles","display","flow","radius","padding","preset","color","special","disabled","fill","Object","keys","reduce","map","type","border","Alert","props","ref","$","_c","mods","filteredProps","t0","THEMES","_c"],"sources":["../../../../src/components/content/Alert/Alert.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef } from 'react';\n\nimport THEMES from '../../../data/themes';\n\nimport { CubeAlertProps } from './types';\nimport { useAlert } from './use-alert';\n\nconst AlertElement = tasty({\n name: 'Alert',\n role: 'alert',\n qa: 'Alert',\n styles: {\n display: 'block',\n flow: 'column',\n radius: {\n '': '1cr',\n 'shape=sharp': '0',\n },\n padding: '1.5x',\n preset: 't3',\n color: {\n '': '#dark-02',\n // `color` in THEMES is Badge's fill for the status themes, so only these\n // two read it as a label.\n 'type=special': THEMES.special.color,\n 'type=disabled': THEMES.disabled.color,\n },\n fill: {\n '': '#clear',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme fill states generated from THEMES, not a shared base; the plugin can't lint the generated map either way, so it stays in one place\n ...Object.keys(THEMES).reduce((map, type) => {\n map[`type=${type}`] = THEMES[type].fill;\n\n return map;\n }, {}),\n },\n border: {\n '': '#clear',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme border states generated from THEMES must precede 'shape=sharp'; mergeStyles would append them after it and flip its priority\n ...Object.keys(THEMES).reduce((map, type) => {\n map[`type=${type}`] = THEMES[type].border;\n\n return map;\n }, {}),\n 'shape=sharp': '0',\n },\n },\n});\n\nexport const Alert = forwardRef(function Alert(\n props: CubeAlertProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { styles, mods, filteredProps } = useAlert(props);\n\n return (\n <AlertElement {...filteredProps} ref={ref} mods={mods} styles={styles} />\n );\n});\n"],"mappings":";;;;;;;;AAQA,MAAMM,eAAeN,MAAM;CACzBO,MAAM;CACNC,MAAM;CACNC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,QAAQ;GACN,IAAI;GACJ,eAAe;EACjB;EACAC,SAAS;EACTC,QAAQ;EACRC,OAAO;GACL,IAAI;GAGJ,gBAAgBb,eAAOc,QAAQD;GAC/B,iBAAiBb,eAAOe,SAASF;EACnC;EACAG,MAAM;GACJ,IAAI;GAEJ,GAAGC,OAAOC,KAAKlB,cAAM,CAAC,CAACmB,QAAQC,KAAKC,SAAS;IAC3CD,IAAI,QAAQC,UAAUrB,eAAOqB,KAAK,CAACL;IAEnC,OAAOI;GACT,GAAG,CAAC,CAAC;EACP;EACAE,QAAQ;GACN,IAAI;GAEJ,GAAGL,OAAOC,KAAKlB,cAAM,CAAC,CAACmB,QAAQC,KAAKC,SAAS;IAC3CD,IAAI,QAAQC,UAAUrB,eAAOqB,KAAK,CAACC;IAEnC,OAAOF;GACT,GAAG,CAAC,CAAC;GACL,eAAe;EACjB;CACF;AACF,CAAC;AAED,MAAaG,QAAQxB,WAAW,SAAAwB,MAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAI9B,MAAA,EAAApB,QAAAqB,MAAAC,kBAAwC3B,SAASsB,KAAK;CAAE,IAAAM;CAAA,IAAAJ,EAAA,OAAAG,iBAAAH,EAAA,OAAAE,QAAAF,EAAA,OAAAD,OAAAC,EAAA,OAAAnB,QAAA;EAGtDuB,KAAA,oBAAC,cAAD;GAAa,GAAKD;GAAoBJ;GAAWG;GAAcrB;EAAM,CAAA;EAAImB,EAAA,KAAAG;EAAAH,EAAA,KAAAE;EAAAF,EAAA,KAAAD;EAAAC,EAAA,KAAAnB;EAAAmB,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAAzEI;AAAyE,CAE5E"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useDeprecationWarning } from "../../../_internal/hooks/use-deprecation-warning.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -29,36 +29,33 @@ function useAlert(props) {
29
29
  useDeprecationWarning(typeof type === "undefined", t3);
30
30
  const _theme = isDisabled ? "disabled" : theme ?? type ?? "note";
31
31
  let t4;
32
- if ($[3] !== _theme || $[4] !== mods || $[5] !== shape) {
32
+ if ($[3] !== _theme || $[4] !== mods || $[5] !== props || $[6] !== shape || $[7] !== styles) {
33
+ const { theme: _statusTheme, ...domProps } = props;
34
+ let t5;
35
+ if ($[9] !== _theme || $[10] !== mods || $[11] !== shape) {
36
+ t5 = {
37
+ shape,
38
+ type: _theme,
39
+ ...mods
40
+ };
41
+ $[9] = _theme;
42
+ $[10] = mods;
43
+ $[11] = shape;
44
+ $[12] = t5;
45
+ } else t5 = $[12];
33
46
  t4 = {
34
- shape,
35
- type: _theme,
36
- ...mods
47
+ styles,
48
+ mods: t5,
49
+ filteredProps: filterBaseProps(domProps, { eventProps: true })
37
50
  };
38
51
  $[3] = _theme;
39
52
  $[4] = mods;
40
- $[5] = shape;
41
- $[6] = t4;
42
- } else t4 = $[6];
43
- let t5;
44
- if ($[7] !== props) {
45
- t5 = filterBaseProps(props, { eventProps: true });
46
- $[7] = props;
47
- $[8] = t5;
48
- } else t5 = $[8];
49
- let t6;
50
- if ($[9] !== styles || $[10] !== t4 || $[11] !== t5) {
51
- t6 = {
52
- styles,
53
- mods: t4,
54
- filteredProps: t5
55
- };
56
- $[9] = styles;
57
- $[10] = t4;
58
- $[11] = t5;
59
- $[12] = t6;
60
- } else t6 = $[12];
61
- return t6;
53
+ $[5] = props;
54
+ $[6] = shape;
55
+ $[7] = styles;
56
+ $[8] = t4;
57
+ } else t4 = $[8];
58
+ return t4;
62
59
  }
63
60
  //#endregion
64
61
  export { useAlert };
@@ -1 +1 @@
1
- {"version":3,"file":"use-alert.js","names":["CONTAINER_STYLES","filterBaseProps","TEXT_STYLES","useDeprecationWarning","extractStyles","CubeAlertProps","STYLE_LIST","const","useAlert","props","$","_c","type","isDisabled","t0","theme","shape","t1","mods","undefined","t2","styles","t3","Symbol","for","property","name","betterAlternative","_theme","t4","t5","eventProps","t6","filteredProps","_c"],"sources":["../../../../src/components/content/Alert/use-alert.ts"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, TEXT_STYLES } from '@tenphi/tasty';\n\nimport { useDeprecationWarning } from '../../../_internal';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { CubeAlertProps } from './types';\n\nconst STYLE_LIST = [...CONTAINER_STYLES, ...TEXT_STYLES] as const;\n\nexport function useAlert(props: CubeAlertProps) {\n const { type, isDisabled = false, theme, shape = 'card', mods } = props;\n\n const styles = extractStyles(props, STYLE_LIST);\n\n useDeprecationWarning(typeof type === 'undefined', {\n property: 'type',\n name: 'Alert',\n betterAlternative: 'theme',\n });\n\n const _theme = isDisabled ? 'disabled' : (theme ?? type ?? 'note');\n\n return {\n styles,\n mods: {\n shape,\n type: _theme,\n ...mods,\n },\n filteredProps: filterBaseProps(props, { eventProps: true }),\n };\n}\n"],"mappings":";;;;;;AAOA,MAAMM,aAAa,CAAC,GAAGN,kBAAkB,GAAGE,WAAW;AAEvD,SAAOM,SAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAC,MAAAC,YAAAC,IAAAC,OAAAC,OAAAC,IAAAC,SAAkET;CAApD,MAAAI,aAAAC,OAAAK,KAAAA,IAAA,QAAAL;CAA2B,MAAAE,QAAAC,OAAAE,KAAAA,IAAA,SAAAF;CAAc,IAAAG;CAAA,IAAAV,EAAA,OAAAD,OAAA;EAExCW,KAAAhB,cAAcK,OAAOH,UAAU;EAACI,EAAA,KAAAD;EAAAC,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAA/C,MAAAW,SAAeD;CAAiC,IAAAE;CAAA,IAAAZ,EAAA,OAAAa,OAAAC,IAAA,2BAAA,GAAA;EAEGF,KAAA;GAAAG,UACvC;GAAMC,MACV;GAAOC,mBACM;EACrB;EAACjB,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAJDP,sBAAsB,OAAOS,SAAS,aAAaU,EAIlD;CAED,MAAAM,SAAef,aAAA,aAA2BE,SAAAH,QAAA;CAAyB,IAAAiB;CAAA,IAAAnB,EAAA,OAAAkB,UAAAlB,EAAA,OAAAQ,QAAAR,EAAA,OAAAM,OAAA;EAI3Da,KAAA;GAAAb;GAAAJ,MAEEgB;GAAM,GACTV;EACL;EAACR,EAAA,KAAAkB;EAAAlB,EAAA,KAAAQ;EAAAR,EAAA,KAAAM;EAAAN,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,IAAAoB;CAAA,IAAApB,EAAA,OAAAD,OAAA;EACcqB,KAAA7B,gBAAgBQ,OAAO,EAAAsB,YAAc,KAAK,CAAC;EAACrB,EAAA,KAAAD;EAAAC,EAAA,KAAAoB;CAAA,OAAAA,KAAApB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,OAAAW,UAAAX,EAAA,QAAAmB,MAAAnB,EAAA,QAAAoB,IAAA;EAPtDE,KAAA;GAAAX;GAAAH,MAECW;GAILI,eACcH;EACjB;EAACpB,EAAA,KAAAW;EAAAX,EAAA,MAAAmB;EAAAnB,EAAA,MAAAoB;EAAApB,EAAA,MAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAAA,OARMsB;AAQN"}
1
+ {"version":3,"file":"use-alert.js","names":["CONTAINER_STYLES","filterBaseProps","TEXT_STYLES","useDeprecationWarning","extractStyles","CubeAlertProps","STYLE_LIST","const","useAlert","props","$","_c","type","isDisabled","t0","theme","shape","t1","mods","undefined","t2","styles","t3","Symbol","for","property","name","betterAlternative","_theme","t4","_statusTheme","domProps","t5","filteredProps","eventProps","_c"],"sources":["../../../../src/components/content/Alert/use-alert.ts"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, TEXT_STYLES } from '@tenphi/tasty';\n\nimport { useDeprecationWarning } from '../../../_internal';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { CubeAlertProps } from './types';\n\nconst STYLE_LIST = [...CONTAINER_STYLES, ...TEXT_STYLES] as const;\n\nexport function useAlert(props: CubeAlertProps) {\n const { type, isDisabled = false, theme, shape = 'card', mods } = props;\n\n const styles = extractStyles(props, STYLE_LIST);\n\n useDeprecationWarning(typeof type === 'undefined', {\n property: 'type',\n name: 'Alert',\n betterAlternative: 'theme',\n });\n\n const _theme = isDisabled ? 'disabled' : (theme ?? type ?? 'note');\n\n // `theme` is the kit's status theme, rendered through the `type` mod. Tasty's\n // `filterBaseProps` keeps its own `theme` prop and renders it as\n // `data-theme`, so it comes out before filtering.\n const { theme: _statusTheme, ...domProps } = props;\n\n return {\n styles,\n mods: {\n shape,\n type: _theme,\n ...mods,\n },\n filteredProps: filterBaseProps(domProps, { eventProps: true }),\n };\n}\n"],"mappings":";;;;;;AAOA,MAAMM,aAAa,CAAC,GAAGN,kBAAkB,GAAGE,WAAW;AAEvD,SAAOM,SAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAC,MAAAC,YAAAC,IAAAC,OAAAC,OAAAC,IAAAC,SAAkET;CAApD,MAAAI,aAAAC,OAAAK,KAAAA,IAAA,QAAAL;CAA2B,MAAAE,QAAAC,OAAAE,KAAAA,IAAA,SAAAF;CAAc,IAAAG;CAAA,IAAAV,EAAA,OAAAD,OAAA;EAExCW,KAAAhB,cAAcK,OAAOH,UAAU;EAACI,EAAA,KAAAD;EAAAC,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAA/C,MAAAW,SAAeD;CAAiC,IAAAE;CAAA,IAAAZ,EAAA,OAAAa,OAAAC,IAAA,2BAAA,GAAA;EAEGF,KAAA;GAAAG,UACvC;GAAMC,MACV;GAAOC,mBACM;EACrB;EAACjB,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAJDP,sBAAsB,OAAOS,SAAS,aAAaU,EAIlD;CAED,MAAAM,SAAef,aAAA,aAA2BE,SAAAH,QAAA;CAAyB,IAAAiB;CAAA,IAAAnB,EAAA,OAAAkB,UAAAlB,EAAA,OAAAQ,QAAAR,EAAA,OAAAD,SAAAC,EAAA,OAAAM,SAAAN,EAAA,OAAAW,QAAA;EAKnE,MAAA,EAAAN,OAAAe,cAAA,GAAAC,aAA6CtB;EAAM,IAAAuB;EAAA,IAAAtB,EAAA,OAAAkB,UAAAlB,EAAA,QAAAQ,QAAAR,EAAA,QAAAM,OAAA;GAI3CgB,KAAA;IAAAhB;IAAAJ,MAEEgB;IAAM,GACTV;GACL;GAACR,EAAA,KAAAkB;GAAAlB,EAAA,MAAAQ;GAAAR,EAAA,MAAAM;GAAAN,EAAA,MAAAsB;EAAA,OAAAA,KAAAtB,EAAA;EANImB,KAAA;GAAAR;GAAAH,MAECc;GAILC,eACchC,gBAAgB8B,UAAU,EAAAG,YAAc,KAAK,CAAC;EAC/D;EAACxB,EAAA,KAAAkB;EAAAlB,EAAA,KAAAQ;EAAAR,EAAA,KAAAD;EAAAC,EAAA,KAAAM;EAAAN,EAAA,KAAAW;EAAAX,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OARMmB;AAQN"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { CONTAINER_STYLES, Element, filterBaseProps } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { Item as _Item } from "../Item/Item.js";
3
3
  import themes_default from "../../../data/themes.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -35,9 +35,13 @@ const BadgeElement = tasty(_Item, {
35
35
  "": "max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))",
36
36
  "size=inline": ".5x"
37
37
  },
38
+ overflow: {
39
+ "": "clip",
40
+ "has-end-content": "visible"
41
+ },
38
42
  Label: {
39
43
  textAlign: "center",
40
- placeSelf: "center"
44
+ placeSelf: "center stretch"
41
45
  }
42
46
  }
43
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","names":["tasty","forwardRef","THEMES","CubeItemProps","Item","FILL_STYLES","Object","keys","reduce","map","type","fill","color","BadgeElement","qa","role","size","styles","radius","preset","border","Label","textAlign","placeSelf","CubeBadgeProps","theme","Badge","allProps","ref","$","_c","children","props","t0","t1","undefined","badgeTheme","t2","_Badge","displayName","THEMES","Item","_c"],"sources":["../../../../src/components/content/Badge/Badge.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport THEMES from '../../../data/themes';\nimport { CubeItemProps, Item } from '../Item';\n\nconst FILL_STYLES = Object.keys(THEMES).reduce((map, type) => {\n map[`theme=${type}`] =\n type === 'special' ? THEMES[type].fill : THEMES[type].color;\n\n return map;\n}, {});\n\nconst BadgeElement = tasty(Item, {\n qa: 'Badge',\n role: 'status',\n size: 'inline',\n styles: {\n radius: 'round',\n color: {\n '': '#white',\n // Every other theme fills with a fixed accent; `disabled` fills with the\n // adaptive `#surface-text-soft-2`, which turns light in dark, so its label\n // flips with it (a fixed `#white` fell to 3.59:1 there).\n 'theme=disabled': '#surface',\n },\n fill: {\n '': '#primary',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme fill states generated from THEMES\n ...FILL_STYLES,\n },\n preset: {\n '': 'tag',\n 'size=xsmall': 't4',\n 'size=small | size=medium': 't3',\n 'size=large | size=xlarge': 't2',\n },\n border: {\n // extend\n 'type=primary': '#clear',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.5x',\n },\n\n Label: {\n textAlign: 'center',\n placeSelf: 'center',\n },\n },\n});\n\nexport interface CubeBadgeProps extends CubeItemProps {\n /* @deprecated Use theme instead */\n type?: keyof typeof THEMES | string;\n theme?: keyof typeof THEMES | string;\n}\n\nfunction Badge(allProps: CubeBadgeProps, ref) {\n let {\n type,\n theme = 'special',\n children,\n size = 'inline',\n ...props\n } = allProps;\n\n const badgeTheme = theme ?? type;\n\n return (\n <BadgeElement\n ref={ref}\n size={size}\n data-type=\"primary\"\n data-theme={badgeTheme}\n {...props}\n >\n {children}\n </BadgeElement>\n );\n}\n\nconst _Badge = forwardRef(Badge);\n\n_Badge.displayName = 'Badge';\n\nexport { _Badge as Badge };\n"],"mappings":";;;;;;;;AAMA,MAAMK,cAAcC,OAAOC,KAAKL,cAAM,CAAC,CAACM,QAAQC,KAAKC,SAAS;CAC5DD,IAAI,SAASC,UACXA,SAAS,YAAYR,eAAOQ,KAAK,CAACC,OAAOT,eAAOQ,KAAK,CAACE;CAExD,OAAOH;AACT,GAAG,CAAC,CAAC;AAEL,MAAMI,eAAeb,MAAMI,OAAM;CAC/BU,IAAI;CACJC,MAAM;CACNC,MAAM;CACNC,QAAQ;EACNC,QAAQ;EACRN,OAAO;GACL,IAAI;GAIJ,kBAAkB;EACpB;EACAD,MAAM;GACJ,IAAI;GAEJ,GAAGN;EACL;EACAc,QAAQ;GACN,IAAI;GACJ,eAAe;GACf,4BAA4B;GAC5B,4BAA4B;EAC9B;EACAC,QAAQ,EAEN,gBAAgB,SAClB;EAEA,mBAAmB;GACjB,IAAI;GACJ,eAAe;EACjB;EAEAC,OAAO;GACLC,WAAW;GACXC,WAAW;EACb;CACF;AACF,CAAC;AAQD,SAAAG,MAAAC,UAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAxB;CAAA,IAAAmB,EAAA,OAAAF,UAAA;EACE,CAAA,CAAAjB,MAAAe,OAAAQ,IAAAF,UAAAf,MAAAkB,IAAA,GAAAF,SAMIL;EAASE,EAAA,KAAAF;EAAAE,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAnB;CAAA,OAAA;EAAAqB,WAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAAnB,OAAAmB,EAAA;CAAA;CAJX,MAAAJ,QAAAQ,OAAAE,KAAAA,IAAA,YAAAF;CAEA,MAAAjB,OAAAkB,OAAAC,KAAAA,IAAA,WAAAD;CAIF,MAAAE,aAAmBX,SAAAf;CAAc,IAAA2B;CAAA,IAAAR,EAAA,OAAAO,cAAAP,EAAA,OAAAE,YAAAF,EAAA,OAAAG,SAAAH,EAAA,OAAAD,OAAAC,EAAA,QAAAb,MAAA;EAG/BqB,KAAA,oBAAC,cAAD;GACOT;GACCZ;GACI,aAAA;GACEoB,cAAAA;GAAU,GAClBJ;GAEHD;EAPU,CAAA;EAQEF,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAD;EAAAC,EAAA,MAAAb;EAAAa,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OARfQ;AAQe;AAInB,MAAMC,SAASrC,WAAWyB,KAAK;AAE/BY,OAAOC,cAAc"}
1
+ {"version":3,"file":"Badge.js","names":["tasty","forwardRef","THEMES","CubeItemProps","Item","FILL_STYLES","Object","keys","reduce","map","type","fill","color","BadgeElement","qa","role","size","styles","radius","preset","border","overflow","Label","textAlign","placeSelf","CubeBadgeProps","theme","Badge","allProps","ref","$","_c","children","props","t0","t1","undefined","badgeTheme","t2","_Badge","displayName","THEMES","Item","_c"],"sources":["../../../../src/components/content/Badge/Badge.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport THEMES from '../../../data/themes';\nimport { CubeItemProps, Item } from '../Item';\n\nconst FILL_STYLES = Object.keys(THEMES).reduce((map, type) => {\n map[`theme=${type}`] =\n type === 'special' ? THEMES[type].fill : THEMES[type].color;\n\n return map;\n}, {});\n\nconst BadgeElement = tasty(Item, {\n qa: 'Badge',\n role: 'status',\n size: 'inline',\n styles: {\n radius: 'round',\n color: {\n '': '#white',\n // Every other theme fills with a fixed accent; `disabled` fills with the\n // adaptive `#surface-text-soft-2`, which turns light in dark, so its label\n // flips with it (a fixed `#white` fell to 3.59:1 there).\n 'theme=disabled': '#surface',\n },\n fill: {\n '': '#primary',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme fill states generated from THEMES, not a shared base; the plugin can't lint the generated map either way, so it stays in one place\n ...FILL_STYLES,\n },\n preset: {\n '': 'tag',\n 'size=xsmall': 't4',\n 'size=small | size=medium': 't3',\n 'size=large | size=xlarge': 't2',\n },\n border: {\n // extend\n 'type=primary': '#clear',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.5x',\n },\n\n // Same squeeze as Tag's: keep the label's end-padding box after the icon\n // and clip what passes the edge, unless end content zeroes that padding.\n overflow: { '': 'clip', 'has-end-content': 'visible' },\n\n Label: {\n textAlign: 'center',\n placeSelf: 'center stretch',\n },\n },\n});\n\nexport interface CubeBadgeProps extends CubeItemProps {\n /* @deprecated Use theme instead */\n type?: keyof typeof THEMES | string;\n theme?: keyof typeof THEMES | string;\n}\n\nfunction Badge(allProps: CubeBadgeProps, ref) {\n let {\n type,\n theme = 'special',\n children,\n size = 'inline',\n ...props\n } = allProps;\n\n const badgeTheme = theme ?? type;\n\n return (\n <BadgeElement\n ref={ref}\n size={size}\n data-type=\"primary\"\n data-theme={badgeTheme}\n {...props}\n >\n {children}\n </BadgeElement>\n );\n}\n\nconst _Badge = forwardRef(Badge);\n\n_Badge.displayName = 'Badge';\n\nexport { _Badge as Badge };\n"],"mappings":";;;;;;;;AAMA,MAAMK,cAAcC,OAAOC,KAAKL,cAAM,CAAC,CAACM,QAAQC,KAAKC,SAAS;CAC5DD,IAAI,SAASC,UACXA,SAAS,YAAYR,eAAOQ,KAAK,CAACC,OAAOT,eAAOQ,KAAK,CAACE;CAExD,OAAOH;AACT,GAAG,CAAC,CAAC;AAEL,MAAMI,eAAeb,MAAMI,OAAM;CAC/BU,IAAI;CACJC,MAAM;CACNC,MAAM;CACNC,QAAQ;EACNC,QAAQ;EACRN,OAAO;GACL,IAAI;GAIJ,kBAAkB;EACpB;EACAD,MAAM;GACJ,IAAI;GAEJ,GAAGN;EACL;EACAc,QAAQ;GACN,IAAI;GACJ,eAAe;GACf,4BAA4B;GAC5B,4BAA4B;EAC9B;EACAC,QAAQ,EAEN,gBAAgB,SAClB;EAEA,mBAAmB;GACjB,IAAI;GACJ,eAAe;EACjB;EAIAC,UAAU;GAAE,IAAI;GAAQ,mBAAmB;EAAU;EAErDC,OAAO;GACLC,WAAW;GACXC,WAAW;EACb;CACF;AACF,CAAC;AAQD,SAAAG,MAAAC,UAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAzB;CAAA,IAAAoB,EAAA,OAAAF,UAAA;EACE,CAAA,CAAAlB,MAAAgB,OAAAQ,IAAAF,UAAAhB,MAAAmB,IAAA,GAAAF,SAMIL;EAASE,EAAA,KAAAF;EAAAE,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAApB;CAAA,OAAA;EAAAsB,WAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAApB,OAAAoB,EAAA;CAAA;CAJX,MAAAJ,QAAAQ,OAAAE,KAAAA,IAAA,YAAAF;CAEA,MAAAlB,OAAAmB,OAAAC,KAAAA,IAAA,WAAAD;CAIF,MAAAE,aAAmBX,SAAAhB;CAAc,IAAA4B;CAAA,IAAAR,EAAA,OAAAO,cAAAP,EAAA,OAAAE,YAAAF,EAAA,OAAAG,SAAAH,EAAA,OAAAD,OAAAC,EAAA,QAAAd,MAAA;EAG/BsB,KAAA,oBAAC,cAAD;GACOT;GACCb;GACI,aAAA;GACEqB,cAAAA;GAAU,GAClBJ;GAEHD;EAPU,CAAA;EAQEF,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAD;EAAAC,EAAA,MAAAd;EAAAc,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OARfQ;AAQe;AAInB,MAAMC,SAAStC,WAAW0B,KAAK;AAE/BY,OAAOC,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useTimer } from "../../../_internal/hooks/use-timer/use-timer.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -36,7 +36,7 @@ const CopyPasteBlockElement = tasty(Card, {
36
36
  fill: "#surface-2",
37
37
  radius: "1r",
38
38
  padding: {
39
- "": "0 1px",
39
+ "": "0 1bw",
40
40
  ":focus": "0"
41
41
  },
42
42
  color: {
@@ -45,7 +45,7 @@ const CopyPasteBlockElement = tasty(Card, {
45
45
  },
46
46
  border: {
47
47
  "": "dashed #dark-03",
48
- ":focus": "2px dashed #primary-text",
48
+ ":focus": "2bw dashed #primary-text",
49
49
  error: "dashed #danger"
50
50
  },
51
51
  cursor: "$pointer",
@@ -1 +1 @@
1
- {"version":3,"file":"CopyPasteBlock.js","names":["POSITION_STYLES","PositionStyleProps","Styles","tasty","copy","ForwardedRef","forwardRef","ReactNode","useState","TextDropItem","useClipboard","useTimer","useI18n","CopyIcon","extractStyles","Button","useToast","Card","CubeCardProps","StyledBlock","styles","display","flow","placeContent","placeItems","gap","position","width","color","padding","userSelect","Label","whiteSpace","overflow","textOverflow","CopyPasteBlockElement","qa","fill","radius","error","border","cursor","preset","height","boxSizing","Grid","gridColumns","Shortcut","hide","CopyButton","type","icon","placeSelf","shadow","focused","outline","CubeCopyPasteBlockProps","Omit","value","placeholder","title","onPaste","text","Promise","onCopy","size","CopyPasteBlock","allProps","ref","HTMLDivElement","props","t","setError","toast","clipboardProps","items","pasted","all","filter","item","kind","types","has","map","getText","join","e","String","getItems","success","delay","callback","isDisabled","pristineValue","replace","_CopyPasteBlock","displayName"],"sources":["../../../../src/components/content/CopyPasteBlock/CopyPasteBlock.tsx"],"sourcesContent":["import {\n POSITION_STYLES,\n PositionStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ForwardedRef, forwardRef, ReactNode, useState } from 'react';\nimport { TextDropItem, useClipboard } from 'react-aria';\n\nimport { useTimer } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { CopyIcon } from '../../../icons/CopyIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../../actions';\nimport { useToast } from '../../overlays/Toast';\nimport { Card, CubeCardProps } from '../Card/Card';\n\nconst StyledBlock = tasty({\n styles: {\n display: 'grid',\n flow: 'column',\n placeContent: 'center space-between',\n placeItems: 'center stretch',\n gap: '1x',\n position: 'relative',\n width: 'max 100%',\n color: 'inherit',\n padding: '0 1.5x',\n // height: {\n // '': '4.5x',\n // '[data-size=\"small\"]': '3.5x',\n // '[data-size=\"large\"]': '5.5x',\n // },\n userSelect: 'none',\n\n Label: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n },\n});\n\nconst CopyPasteBlockElement = tasty(Card, {\n qa: 'CopyPasteBlock',\n styles: {\n display: 'grid',\n fill: '#surface-2',\n radius: '1r',\n padding: {\n '': '0 1px',\n ':focus': '0',\n },\n color: {\n '': '#dark',\n error: '#danger-text',\n },\n border: {\n '': 'dashed #dark-03',\n ':focus': '2px dashed #primary-text',\n error: 'dashed #danger',\n },\n cursor: '$pointer',\n preset: {\n '': 't3',\n 'size=large': 't2',\n },\n height: {\n '': '5x',\n 'size=small': '4x',\n 'size=large': '6x',\n },\n boxSizing: 'border-box',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) min-content',\n placeContent: 'stretch',\n width: 'min 20x',\n radius: '1r',\n position: 'relative',\n },\n\n Shortcut: {\n display: 'inline',\n hide: {\n '': true,\n ':focus & !error': false,\n },\n },\n },\n});\n\nconst CopyButton = tasty(Button, {\n type: 'clear',\n icon: <CopyIcon />,\n styles: {\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': '0 0 0 1ow #purple-03.0 inset',\n focused: '0 0 0 1ow #purple-03 inset',\n },\n radius: {\n '': '0 1r 1r 0',\n 'multiline | has-scroll': '1r top-right',\n },\n height: 'auto',\n outline: false,\n },\n});\n\nexport interface CubeCopyPasteBlockProps\n extends Omit<CubeCardProps, 'onPaste' | 'onCopy'>, PositionStyleProps {\n padding?: Styles['padding'];\n /** The code snippet */\n value?: string;\n placeholder?: ReactNode;\n /** The title of the snippet */\n title?: string;\n onPaste?: (text: string) => void | Promise<void | string>;\n onCopy?: () => void;\n size?: 'small' | 'medium' | 'large';\n}\n\nfunction CopyPasteBlock(\n allProps: CubeCopyPasteBlockProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n value = '',\n onPaste,\n placeholder,\n title,\n size = 'medium',\n ...props\n } = allProps;\n const styles = extractStyles(props, POSITION_STYLES);\n\n const { t } = useI18n();\n const [error, setError] = useState<string | null>(null);\n const toast = useToast();\n\n const { clipboardProps } = useClipboard({\n async onPaste(items) {\n let pasted = await Promise.all(\n items\n .filter(\n (item) => item.kind === 'text' && item.types.has('text/plain'),\n )\n .map((item) => (item as TextDropItem).getText('text/plain')),\n );\n try {\n await onPaste?.(pasted.join('\\n'));\n } catch (e) {\n setError(String(e));\n }\n },\n getItems() {\n return value\n ? [\n {\n 'text/plain': value,\n },\n ]\n : [];\n },\n onCopy() {\n if (value) {\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n },\n });\n\n useTimer({\n delay: 1000,\n callback() {\n setError(null);\n },\n isDisabled: !error,\n });\n\n async function onCopy() {\n await copy(value);\n\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n\n const pristineValue = value.replace(/\\n/, ' ');\n\n return (\n <CopyPasteBlockElement\n ref={ref}\n mods={{ error: !!error }}\n data-size={size}\n styles={styles}\n tabIndex={0}\n {...props}\n {...clipboardProps}\n >\n <div data-element=\"Grid\">\n <StyledBlock\n data-size={size}\n mods={{\n placeholder: !!placeholder || !value,\n }}\n >\n <div data-element=\"Label\">\n {error != null ? (\n error || t('copyPasteBlock.invalidData', 'Invalid data')\n ) : value ? (\n pristineValue\n ) : (\n <>\n {placeholder\n ? placeholder\n : t('copyPasteBlock.selectAndPaste', 'Select and paste')}\n </>\n )}\n </div>\n <span data-element=\"Shortcut\">\n <kbd>Cmd</kbd> + <kbd>V</kbd>\n </span>\n </StyledBlock>\n {value && !error && (\n <CopyButton\n size={size}\n aria-label={t(\n 'copyPasteBlock.copyToClipboard',\n 'Copy {{title}} to clipboard',\n {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n },\n )}\n onPress={onCopy}\n />\n )}\n </div>\n </CopyPasteBlockElement>\n );\n}\n\nconst _CopyPasteBlock = forwardRef(CopyPasteBlock);\n\n_CopyPasteBlock.displayName = 'CopyPasteBlock';\n\nexport { _CopyPasteBlock as CopyPasteBlock };\n"],"mappings":"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"}
1
+ {"version":3,"file":"CopyPasteBlock.js","names":["POSITION_STYLES","PositionStyleProps","Styles","tasty","copy","ForwardedRef","forwardRef","ReactNode","useState","TextDropItem","useClipboard","useTimer","useI18n","CopyIcon","extractStyles","Button","useToast","Card","CubeCardProps","StyledBlock","styles","display","flow","placeContent","placeItems","gap","position","width","color","padding","userSelect","Label","whiteSpace","overflow","textOverflow","CopyPasteBlockElement","qa","fill","radius","error","border","cursor","preset","height","boxSizing","Grid","gridColumns","Shortcut","hide","CopyButton","type","icon","placeSelf","shadow","focused","outline","CubeCopyPasteBlockProps","Omit","value","placeholder","title","onPaste","text","Promise","onCopy","size","CopyPasteBlock","allProps","ref","HTMLDivElement","props","t","setError","toast","clipboardProps","items","pasted","all","filter","item","kind","types","has","map","getText","join","e","String","getItems","success","delay","callback","isDisabled","pristineValue","replace","_CopyPasteBlock","displayName"],"sources":["../../../../src/components/content/CopyPasteBlock/CopyPasteBlock.tsx"],"sourcesContent":["import {\n POSITION_STYLES,\n PositionStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ForwardedRef, forwardRef, ReactNode, useState } from 'react';\nimport { TextDropItem, useClipboard } from 'react-aria';\n\nimport { useTimer } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { CopyIcon } from '../../../icons/CopyIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../../actions';\nimport { useToast } from '../../overlays/Toast';\nimport { Card, CubeCardProps } from '../Card/Card';\n\nconst StyledBlock = tasty({\n styles: {\n display: 'grid',\n flow: 'column',\n placeContent: 'center space-between',\n placeItems: 'center stretch',\n gap: '1x',\n position: 'relative',\n width: 'max 100%',\n color: 'inherit',\n padding: '0 1.5x',\n // height: {\n // '': '4.5x',\n // '[data-size=\"small\"]': '3.5x',\n // '[data-size=\"large\"]': '5.5x',\n // },\n userSelect: 'none',\n\n Label: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n },\n});\n\nconst CopyPasteBlockElement = tasty(Card, {\n qa: 'CopyPasteBlock',\n styles: {\n display: 'grid',\n fill: '#surface-2',\n radius: '1r',\n padding: {\n '': '0 1bw',\n ':focus': '0',\n },\n color: {\n '': '#dark',\n error: '#danger-text',\n },\n border: {\n '': 'dashed #dark-03',\n ':focus': '2bw dashed #primary-text',\n error: 'dashed #danger',\n },\n cursor: '$pointer',\n preset: {\n '': 't3',\n 'size=large': 't2',\n },\n height: {\n '': '5x',\n 'size=small': '4x',\n 'size=large': '6x',\n },\n boxSizing: 'border-box',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) min-content',\n placeContent: 'stretch',\n width: 'min 20x',\n radius: '1r',\n position: 'relative',\n },\n\n Shortcut: {\n display: 'inline',\n hide: {\n '': true,\n ':focus & !error': false,\n },\n },\n },\n});\n\nconst CopyButton = tasty(Button, {\n type: 'clear',\n icon: <CopyIcon />,\n styles: {\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': '0 0 0 1ow #purple-03.0 inset',\n focused: '0 0 0 1ow #purple-03 inset',\n },\n radius: {\n '': '0 1r 1r 0',\n 'multiline | has-scroll': '1r top-right',\n },\n height: 'auto',\n outline: false,\n },\n});\n\nexport interface CubeCopyPasteBlockProps\n extends Omit<CubeCardProps, 'onPaste' | 'onCopy'>, PositionStyleProps {\n padding?: Styles['padding'];\n /** The code snippet */\n value?: string;\n placeholder?: ReactNode;\n /** The title of the snippet */\n title?: string;\n onPaste?: (text: string) => void | Promise<void | string>;\n onCopy?: () => void;\n size?: 'small' | 'medium' | 'large';\n}\n\nfunction CopyPasteBlock(\n allProps: CubeCopyPasteBlockProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n value = '',\n onPaste,\n placeholder,\n title,\n size = 'medium',\n ...props\n } = allProps;\n const styles = extractStyles(props, POSITION_STYLES);\n\n const { t } = useI18n();\n const [error, setError] = useState<string | null>(null);\n const toast = useToast();\n\n const { clipboardProps } = useClipboard({\n async onPaste(items) {\n let pasted = await Promise.all(\n items\n .filter(\n (item) => item.kind === 'text' && item.types.has('text/plain'),\n )\n .map((item) => (item as TextDropItem).getText('text/plain')),\n );\n try {\n await onPaste?.(pasted.join('\\n'));\n } catch (e) {\n setError(String(e));\n }\n },\n getItems() {\n return value\n ? [\n {\n 'text/plain': value,\n },\n ]\n : [];\n },\n onCopy() {\n if (value) {\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n },\n });\n\n useTimer({\n delay: 1000,\n callback() {\n setError(null);\n },\n isDisabled: !error,\n });\n\n async function onCopy() {\n await copy(value);\n\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n\n const pristineValue = value.replace(/\\n/, ' ');\n\n return (\n <CopyPasteBlockElement\n ref={ref}\n mods={{ error: !!error }}\n data-size={size}\n styles={styles}\n tabIndex={0}\n {...props}\n {...clipboardProps}\n >\n <div data-element=\"Grid\">\n <StyledBlock\n data-size={size}\n mods={{\n placeholder: !!placeholder || !value,\n }}\n >\n <div data-element=\"Label\">\n {error != null ? (\n error || t('copyPasteBlock.invalidData', 'Invalid data')\n ) : value ? (\n pristineValue\n ) : (\n <>\n {placeholder\n ? placeholder\n : t('copyPasteBlock.selectAndPaste', 'Select and paste')}\n </>\n )}\n </div>\n <span data-element=\"Shortcut\">\n <kbd>Cmd</kbd> + <kbd>V</kbd>\n </span>\n </StyledBlock>\n {value && !error && (\n <CopyButton\n size={size}\n aria-label={t(\n 'copyPasteBlock.copyToClipboard',\n 'Copy {{title}} to clipboard',\n {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n },\n )}\n onPress={onCopy}\n />\n )}\n </div>\n </CopyPasteBlockElement>\n );\n}\n\nconst _CopyPasteBlock = forwardRef(CopyPasteBlock);\n\n_CopyPasteBlock.displayName = 'CopyPasteBlock';\n\nexport { _CopyPasteBlock as CopyPasteBlock };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { Tooltip as _Tooltip } from "../../overlays/Tooltip/Tooltip.js";
3
3
  import { TooltipTrigger } from "../../overlays/Tooltip/TooltipTrigger.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../utils/react/Slots.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { Text as _Text } from "../Text.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
2
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { ItemBadge } from "../ItemBadge/ItemBadge.js";