@cube-dev/ui-kit 0.0.0-canary-3e118e9 → 0.0.0-canary-6be6cbe

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 (542) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  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.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +4 -3
  16. package/dist/components/Root.js.map +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +4 -2
  19. package/dist/components/actions/Banner/Banner.js.map +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  23. package/dist/components/actions/ButtonSplit/context.js +1 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.js +4 -2
  25. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +6 -3
  42. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  43. package/dist/components/actions/use-context-menu.js +6 -3
  44. package/dist/components/actions/use-context-menu.js.map +1 -1
  45. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/dist/components/content/Alert/Alert.js +1 -1
  47. package/dist/components/content/Alert/use-alert.js +1 -1
  48. package/dist/components/content/Avatar/Avatar.js +1 -1
  49. package/dist/components/content/Badge/Badge.js +1 -1
  50. package/dist/components/content/Card/Card.js +1 -1
  51. package/dist/components/content/Content.js +1 -1
  52. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +7 -6
  53. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  54. package/dist/components/content/CopySnippet/CopySnippet.js +9 -9
  55. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  56. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  57. package/dist/components/content/Divider.js +1 -1
  58. package/dist/components/content/Footer.js +1 -1
  59. package/dist/components/content/Header.js +1 -1
  60. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  61. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  62. package/dist/components/content/Item/Item.js +1 -1
  63. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  64. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  65. package/dist/components/content/Layout/GridLayout.js +1 -1
  66. package/dist/components/content/Layout/Layout.js +1 -1
  67. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  68. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  69. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  70. package/dist/components/content/Layout/LayoutContent.js +1 -1
  71. package/dist/components/content/Layout/LayoutContext.js +1 -1
  72. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  73. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  74. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  75. package/dist/components/content/Layout/LayoutHeader.js +4 -2
  76. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  77. package/dist/components/content/Layout/LayoutPane.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  79. package/dist/components/content/Layout/LayoutPanelHeader.js +9 -6
  80. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  81. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  82. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  83. package/dist/components/content/Layout/index.js +1 -1
  84. package/dist/components/content/Layout/utils.js +1 -1
  85. package/dist/components/content/Paragraph.js +1 -1
  86. package/dist/components/content/Placeholder/Placeholder.js +4 -2
  87. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  88. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  89. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  90. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  91. package/dist/components/content/Result/Result.js +1 -1
  92. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  93. package/dist/components/content/Tag/Tag.js +4 -2
  94. package/dist/components/content/Tag/Tag.js.map +1 -1
  95. package/dist/components/content/Text.d.ts +7 -7
  96. package/dist/components/content/Text.js +1 -1
  97. package/dist/components/content/TextItem/TextItem.js +1 -1
  98. package/dist/components/content/Title.js +1 -1
  99. package/dist/components/content/Tree/Tree.js +1 -1
  100. package/dist/components/content/Tree/TreeNode.js +4 -2
  101. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  102. package/dist/components/content/Tree/styled.js +1 -1
  103. package/dist/components/content/Tree/tree-index.js +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +1 -1
  108. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  109. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  110. package/dist/components/fields/Checkbox/context.js +1 -1
  111. package/dist/components/fields/ComboBox/ComboBox.js +5 -3
  112. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  113. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  114. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  115. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  116. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  117. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  118. package/dist/components/fields/DatePicker/DatePicker.js +4 -3
  119. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  120. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  121. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  122. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  123. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  124. package/dist/components/fields/DatePicker/DateRangePicker.js +5 -4
  125. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  126. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +6 -5
  127. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  128. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  129. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  130. package/dist/components/fields/DatePicker/props.js +1 -1
  131. package/dist/components/fields/DatePicker/utils.js +1 -1
  132. package/dist/components/fields/FileInput/FileInput.js +5 -3
  133. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  134. package/dist/components/fields/FilterListBox/FilterListBox.js +9 -6
  135. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  136. package/dist/components/fields/FilterPicker/FilterPicker.js +5 -3
  137. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  138. package/dist/components/fields/Input/Input.js +1 -1
  139. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  140. package/dist/components/fields/ListBox/ListBox.js +9 -5
  141. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  142. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +4 -2
  143. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  144. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  145. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  146. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  147. package/dist/components/fields/NumberInput/StepButton.js +5 -2
  148. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  149. package/dist/components/fields/PasswordInput/PasswordInput.js +4 -2
  150. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  151. package/dist/components/fields/Picker/Picker.js +5 -3
  152. package/dist/components/fields/Picker/Picker.js.map +1 -1
  153. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  154. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  155. package/dist/components/fields/RadioGroup/context.js +1 -1
  156. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  157. package/dist/components/fields/Select/Select.js +1 -1
  158. package/dist/components/fields/Slider/Gradation.js +1 -1
  159. package/dist/components/fields/Slider/HueSlider.js +1 -1
  160. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  161. package/dist/components/fields/Slider/Slider.js +1 -1
  162. package/dist/components/fields/Slider/SliderBase.js +1 -1
  163. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  164. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  165. package/dist/components/fields/Slider/elements.js +1 -1
  166. package/dist/components/fields/Slider/index.js +1 -1
  167. package/dist/components/fields/Switch/Switch.js +1 -1
  168. package/dist/components/fields/TextArea/TextArea.js +1 -1
  169. package/dist/components/fields/TextInput/TextInput.js +1 -1
  170. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  171. package/dist/components/fields/TextInputMapper/TextInputMapper.js +7 -5
  172. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  173. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  174. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  175. package/dist/components/form/Form/Field.js +1 -1
  176. package/dist/components/form/Form/Form.js +1 -1
  177. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  178. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  179. package/dist/components/form/Form/SubmitError.js +4 -2
  180. package/dist/components/form/Form/SubmitError.js.map +1 -1
  181. package/dist/components/form/Form/index.js +1 -1
  182. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  183. package/dist/components/form/Form/use-field/use-field.js +1 -1
  184. package/dist/components/form/Form/use-form.js +1 -1
  185. package/dist/components/form/Form/validation.js +1 -1
  186. package/dist/components/form/Label.js +6 -8
  187. package/dist/components/form/Label.js.map +1 -1
  188. package/dist/components/form/wrapper.js +1 -1
  189. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  190. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  191. package/dist/components/layout/Board/Board.d.ts +5 -24
  192. package/dist/components/layout/Board/Board.js +61 -79
  193. package/dist/components/layout/Board/Board.js.map +1 -1
  194. package/dist/components/layout/Board/BoardProvider.js +1 -1
  195. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  196. package/dist/components/layout/Board/Widget.d.ts +3 -23
  197. package/dist/components/layout/Board/Widget.js +2 -28
  198. package/dist/components/layout/Board/Widget.js.map +1 -1
  199. package/dist/components/layout/Board/WidgetHost.js +10 -20
  200. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  201. package/dist/components/layout/Board/board-context.js +2 -12
  202. package/dist/components/layout/Board/board-context.js.map +1 -1
  203. package/dist/components/layout/Board/board-store.js +2 -2
  204. package/dist/components/layout/Board/board-store.js.map +1 -1
  205. package/dist/components/layout/Board/grid-core/calculate.js +2 -2
  206. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  207. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  208. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  209. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  210. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  211. package/dist/components/layout/Board/index.d.ts +1 -1
  212. package/dist/components/layout/Board/index.js +1 -1
  213. package/dist/components/layout/Board/responsive-utils.js +1 -1
  214. package/dist/components/layout/Board/use-board-layout.js +1 -1
  215. package/dist/components/layout/Board/use-board-registry.js +2 -3
  216. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  217. package/dist/components/layout/Flex.js +1 -1
  218. package/dist/components/layout/Flow.js +1 -1
  219. package/dist/components/layout/Grid.js +1 -1
  220. package/dist/components/layout/Panel.js +1 -1
  221. package/dist/components/layout/Prefix.js +1 -1
  222. package/dist/components/layout/ResizablePanel.js +1 -1
  223. package/dist/components/layout/Space.js +1 -1
  224. package/dist/components/layout/Suffix.js +1 -1
  225. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  226. package/dist/components/navigation/Tabs/TabButton.js +7 -4
  227. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  228. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  229. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  230. package/dist/components/navigation/Tabs/TabPicker.js +5 -3
  231. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  232. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  233. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  234. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  235. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  236. package/dist/components/navigation/Tabs/styled.js +1 -1
  237. package/dist/components/navigation/Tabs/types.js +1 -1
  238. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  239. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  240. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  241. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  242. package/dist/components/other/Calendar/Calendar.js +1 -1
  243. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  244. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  245. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  246. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  247. package/dist/components/overlays/AlertDialog/AlertDialog.js +8 -6
  248. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  249. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  250. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  251. package/dist/components/overlays/Dialog/Dialog.js +5 -8
  252. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  253. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  254. package/dist/components/overlays/Dialog/DialogForm.js +5 -3
  255. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  256. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  257. package/dist/components/overlays/Dialog/context.js +1 -1
  258. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  259. package/dist/components/overlays/Modal/Modal.js +1 -1
  260. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  261. package/dist/components/overlays/Modal/Overlay.js +1 -1
  262. package/dist/components/overlays/Modal/Popover.js +1 -1
  263. package/dist/components/overlays/Modal/Tray.js +1 -1
  264. package/dist/components/overlays/Modal/Underlay.js +1 -1
  265. package/dist/components/overlays/Notifications/Notification.js +1 -1
  266. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  267. package/dist/components/overlays/Notifications/NotificationCard.js +4 -2
  268. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  269. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  270. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  271. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  272. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  273. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +17 -8
  274. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  275. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  276. package/dist/components/overlays/Notifications/format-relative-time.d.ts +9 -3
  277. package/dist/components/overlays/Notifications/format-relative-time.js +20 -12
  278. package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
  279. package/dist/components/overlays/Notifications/index.js +1 -1
  280. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  281. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  282. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  283. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  284. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  285. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  286. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  287. package/dist/components/overlays/Toast/index.js +1 -1
  288. package/dist/components/overlays/Toast/useProgressToast.js +6 -3
  289. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  290. package/dist/components/overlays/Toast/useToast.js +1 -1
  291. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  292. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  293. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  294. package/dist/components/overlays/Tooltip/context.js +1 -1
  295. package/dist/components/portal/Portal.js +1 -1
  296. package/dist/components/portal/PortalProvider.js +1 -1
  297. package/dist/components/portal/usePortal.js +1 -1
  298. package/dist/components/shared/DraggableCollection.js +1 -1
  299. package/dist/components/shared/InvalidIcon.js +1 -1
  300. package/dist/components/shared/ValidIcon.js +1 -1
  301. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +4 -2
  302. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  303. package/dist/components/status/Spin/Cube.js +1 -1
  304. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  305. package/dist/components/status/Spin/Spin.js +1 -1
  306. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  307. package/dist/data/item-themes.js +1 -1
  308. package/dist/data/themes.js +1 -1
  309. package/dist/i18n/I18nProvider.d.ts +39 -0
  310. package/dist/i18n/I18nProvider.js +43 -0
  311. package/dist/i18n/I18nProvider.js.map +1 -0
  312. package/dist/i18n/createFormatter.d.ts +59 -0
  313. package/dist/i18n/createFormatter.js +148 -0
  314. package/dist/i18n/createFormatter.js.map +1 -0
  315. package/dist/i18n/formatting-locale.d.ts +9 -0
  316. package/dist/i18n/formatting-locale.js +29 -0
  317. package/dist/i18n/formatting-locale.js.map +1 -0
  318. package/dist/i18n/index.d.ts +19 -0
  319. package/dist/i18n/index.js +22 -0
  320. package/dist/i18n/index.js.map +1 -0
  321. package/dist/i18n/instance.d.ts +14 -0
  322. package/dist/i18n/instance.js +64 -0
  323. package/dist/i18n/instance.js.map +1 -0
  324. package/dist/i18n/locales/de-DE/uikit.js +112 -0
  325. package/dist/i18n/locales/de-DE/uikit.js.map +1 -0
  326. package/dist/i18n/locales/en-US/uikit.js +112 -0
  327. package/dist/i18n/locales/en-US/uikit.js.map +1 -0
  328. package/dist/i18n/locales/en-US/uikit.json.d.ts +140 -0
  329. package/dist/i18n/locales/es-ES/uikit.js +112 -0
  330. package/dist/i18n/locales/es-ES/uikit.js.map +1 -0
  331. package/dist/i18n/locales/es-MX/uikit.js +112 -0
  332. package/dist/i18n/locales/es-MX/uikit.js.map +1 -0
  333. package/dist/i18n/locales/fr-FR/uikit.js +112 -0
  334. package/dist/i18n/locales/fr-FR/uikit.js.map +1 -0
  335. package/dist/i18n/locales/it-IT/uikit.js +112 -0
  336. package/dist/i18n/locales/it-IT/uikit.js.map +1 -0
  337. package/dist/i18n/locales/ja-JP/uikit.js +112 -0
  338. package/dist/i18n/locales/ja-JP/uikit.js.map +1 -0
  339. package/dist/i18n/locales/nb-NO/uikit.js +112 -0
  340. package/dist/i18n/locales/nb-NO/uikit.js.map +1 -0
  341. package/dist/i18n/locales/pt-BR/uikit.js +112 -0
  342. package/dist/i18n/locales/pt-BR/uikit.js.map +1 -0
  343. package/dist/i18n/locales/pt-PT/uikit.js +112 -0
  344. package/dist/i18n/locales/pt-PT/uikit.js.map +1 -0
  345. package/dist/i18n/locales/sv-SE/uikit.js +112 -0
  346. package/dist/i18n/locales/sv-SE/uikit.js.map +1 -0
  347. package/dist/i18n/locales/vi-VN/uikit.js +112 -0
  348. package/dist/i18n/locales/vi-VN/uikit.js.map +1 -0
  349. package/dist/i18n/locales.d.ts +17 -0
  350. package/dist/i18n/locales.js +45 -0
  351. package/dist/i18n/locales.js.map +1 -0
  352. package/dist/i18n/useFormatter.d.ts +33 -0
  353. package/dist/i18n/useFormatter.js +59 -0
  354. package/dist/i18n/useFormatter.js.map +1 -0
  355. package/dist/i18n/useI18n.d.ts +2 -0
  356. package/dist/i18n/useI18n.js +19 -0
  357. package/dist/i18n/useI18n.js.map +1 -0
  358. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  359. package/dist/icons/AdjustmentsIcon.js +1 -1
  360. package/dist/icons/AiIcon.js +1 -1
  361. package/dist/icons/AreaChartIcon.js +1 -1
  362. package/dist/icons/BackwardIcon.js +1 -1
  363. package/dist/icons/BarChartIcon.js +1 -1
  364. package/dist/icons/BellFilledIcon.js +1 -1
  365. package/dist/icons/BellIcon.js +1 -1
  366. package/dist/icons/BooleanIcon.js +1 -1
  367. package/dist/icons/CalendarEditIcon.js +1 -1
  368. package/dist/icons/CalendarIcon.js +1 -1
  369. package/dist/icons/CaretDownIcon.js +1 -1
  370. package/dist/icons/CaretUpIcon.js +1 -1
  371. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  372. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  373. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  374. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  375. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  376. package/dist/icons/ChartBarLineIcon.js +1 -1
  377. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  378. package/dist/icons/ChartBarStackedIcon.js +1 -1
  379. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  380. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  381. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  382. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  383. package/dist/icons/ChartBubbleIcon.js +1 -1
  384. package/dist/icons/ChartDonut2Icon.js +1 -1
  385. package/dist/icons/ChartFunnelIcon.js +1 -1
  386. package/dist/icons/ChartHeatmapIcon.js +1 -1
  387. package/dist/icons/ChartKPIIcon.js +1 -1
  388. package/dist/icons/ChartPie2Icon.js +1 -1
  389. package/dist/icons/ChartScatterIcon.js +1 -1
  390. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  391. package/dist/icons/CheckCircleIcon.js +1 -1
  392. package/dist/icons/CheckIcon.js +1 -1
  393. package/dist/icons/CircleFilledIcon.js +1 -1
  394. package/dist/icons/ClearIcon.js +1 -1
  395. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  396. package/dist/icons/CloseCircleIcon.js +1 -1
  397. package/dist/icons/CloseIcon.js +1 -1
  398. package/dist/icons/CodeIcon.js +1 -1
  399. package/dist/icons/ColumnTotalIcon.js +1 -1
  400. package/dist/icons/CopyIcon.js +1 -1
  401. package/dist/icons/CountIcon.js +1 -1
  402. package/dist/icons/CubeIcon.js +1 -1
  403. package/dist/icons/CubePauseIcon.js +1 -1
  404. package/dist/icons/CubePlayIcon.js +1 -1
  405. package/dist/icons/CurrencyDollarIcon.js +1 -1
  406. package/dist/icons/DangerIcon.js +1 -1
  407. package/dist/icons/DashboardIcon.js +1 -1
  408. package/dist/icons/DatabaseIcon.js +1 -1
  409. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  410. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  411. package/dist/icons/DirectionIcon.js +1 -1
  412. package/dist/icons/DonutIcon.js +1 -1
  413. package/dist/icons/DownIcon.js +1 -1
  414. package/dist/icons/EditIcon.js +1 -1
  415. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  416. package/dist/icons/ExclamationCircleIcon.js +1 -1
  417. package/dist/icons/ExclamationIcon.js +1 -1
  418. package/dist/icons/EyeIcon.js +1 -1
  419. package/dist/icons/EyeInvisibleIcon.js +1 -1
  420. package/dist/icons/FilterIcon.js +1 -1
  421. package/dist/icons/FolderFilledIcon.js +1 -1
  422. package/dist/icons/FolderIcon.js +1 -1
  423. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  424. package/dist/icons/FolderOpenIcon.js +1 -1
  425. package/dist/icons/ForwardIcon.js +1 -1
  426. package/dist/icons/GripVerticalIcon.js +1 -1
  427. package/dist/icons/HierarchyIcon.js +1 -1
  428. package/dist/icons/HierarchyOpenIcon.js +1 -1
  429. package/dist/icons/Icon.js +1 -1
  430. package/dist/icons/InfoCircleIcon.js +1 -1
  431. package/dist/icons/InfoIcon.js +1 -1
  432. package/dist/icons/KeyIcon.js +1 -1
  433. package/dist/icons/LeftIcon.js +1 -1
  434. package/dist/icons/LineChartIcon.js +1 -1
  435. package/dist/icons/LoadingIcon.js +1 -1
  436. package/dist/icons/LockFilledIcon.js +1 -1
  437. package/dist/icons/LockIcon.js +1 -1
  438. package/dist/icons/MoreIcon.js +1 -1
  439. package/dist/icons/NotAllowedIcon.js +1 -1
  440. package/dist/icons/Number123Icon.js +1 -1
  441. package/dist/icons/NumberIcon.js +1 -1
  442. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  443. package/dist/icons/PauseCircleIcon.js +1 -1
  444. package/dist/icons/PauseIcon.js +1 -1
  445. package/dist/icons/PercentageIcon.js +1 -1
  446. package/dist/icons/PieChartIcon.js +1 -1
  447. package/dist/icons/PlayCircleIcon.js +1 -1
  448. package/dist/icons/PlayIcon.js +1 -1
  449. package/dist/icons/PlusIcon.js +1 -1
  450. package/dist/icons/ProgressBarIcon.js +1 -1
  451. package/dist/icons/ReloadIcon.js +1 -1
  452. package/dist/icons/ReportIcon.js +1 -1
  453. package/dist/icons/ReturnIcon.js +1 -1
  454. package/dist/icons/RightIcon.js +1 -1
  455. package/dist/icons/RowTotalsIcon.js +1 -1
  456. package/dist/icons/SchemeIcon.js +1 -1
  457. package/dist/icons/SearchIcon.js +1 -1
  458. package/dist/icons/SemanticQueryIcon.js +1 -1
  459. package/dist/icons/SettingsIcon.js +1 -1
  460. package/dist/icons/ShieldFilledIcon.js +1 -1
  461. package/dist/icons/ShieldIcon.js +1 -1
  462. package/dist/icons/SlashIcon.js +1 -1
  463. package/dist/icons/SparklesIcon.js +1 -1
  464. package/dist/icons/SqlIcon.js +1 -1
  465. package/dist/icons/StatsIcon.js +1 -1
  466. package/dist/icons/StopIcon.js +1 -1
  467. package/dist/icons/StringIcon.js +1 -1
  468. package/dist/icons/SubtotalsIcon.js +1 -1
  469. package/dist/icons/SwitchIcon.js +1 -1
  470. package/dist/icons/TableIcon.js +1 -1
  471. package/dist/icons/ThumbsDownIcon.js +1 -1
  472. package/dist/icons/ThumbsUpIcon.js +1 -1
  473. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  474. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  475. package/dist/icons/ThunderboltIcon.js +1 -1
  476. package/dist/icons/TimeIcon.js +1 -1
  477. package/dist/icons/TrashIcon.js +1 -1
  478. package/dist/icons/UnlockIcon.js +1 -1
  479. package/dist/icons/UpIcon.js +1 -1
  480. package/dist/icons/UserGroupIcon.js +1 -1
  481. package/dist/icons/UserIcon.js +1 -1
  482. package/dist/icons/UserLockIcon.js +1 -1
  483. package/dist/icons/ViewIcon.js +1 -1
  484. package/dist/icons/WarningFilledIcon.js +1 -1
  485. package/dist/icons/WarningIcon.js +1 -1
  486. package/dist/icons/wrap-icon.js +1 -1
  487. package/dist/index.d.ts +12 -2
  488. package/dist/index.js +12 -2
  489. package/dist/index.js.map +1 -1
  490. package/dist/provider.js +1 -1
  491. package/dist/providers/TrackingProvider.js +1 -1
  492. package/dist/providers/navigationAdapter.default.js +1 -1
  493. package/dist/tokens/base.js +1 -1
  494. package/dist/tokens/colors.js +1 -1
  495. package/dist/tokens/index.js +1 -1
  496. package/dist/tokens/layout.js +1 -1
  497. package/dist/tokens/palette.js +1 -1
  498. package/dist/tokens/shadows.js +1 -1
  499. package/dist/tokens/sizes.js +1 -1
  500. package/dist/tokens/spacing.js +1 -1
  501. package/dist/tokens/typography.js +1 -1
  502. package/dist/utils/ResizeSensor.js +1 -1
  503. package/dist/utils/is-dev-env.js +1 -1
  504. package/dist/utils/modules.js +1 -1
  505. package/dist/utils/promise.js +1 -1
  506. package/dist/utils/raf.js +1 -1
  507. package/dist/utils/random.js +1 -1
  508. package/dist/utils/range.js +1 -1
  509. package/dist/utils/react/RenderCache.js +1 -1
  510. package/dist/utils/react/Slots.js +1 -1
  511. package/dist/utils/react/chain.js +1 -1
  512. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  513. package/dist/utils/react/index.js +1 -1
  514. package/dist/utils/react/interactions.js +1 -1
  515. package/dist/utils/react/isTextOnly.js +1 -1
  516. package/dist/utils/react/mapProps.js +1 -1
  517. package/dist/utils/react/mergeProps.js +1 -1
  518. package/dist/utils/react/nullableValue.js +1 -1
  519. package/dist/utils/react/resolveIcon.js +1 -1
  520. package/dist/utils/react/sharedStore.js +1 -1
  521. package/dist/utils/react/useCombinedRefs.js +1 -1
  522. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  523. package/dist/utils/react/useEventBus.js +1 -1
  524. package/dist/utils/react/useId.js +1 -1
  525. package/dist/utils/react/useIsDarwin.js +1 -1
  526. package/dist/utils/react/useKeySymbols.js +1 -1
  527. package/dist/utils/react/useLayoutEffect.js +1 -1
  528. package/dist/utils/react/useLocalStorage.js +1 -1
  529. package/dist/utils/react/useMergeStyles.js +1 -1
  530. package/dist/utils/react/usePopoverSync.js +1 -1
  531. package/dist/utils/react/useQaProps.js +1 -1
  532. package/dist/utils/react/useViewportSize.js +1 -1
  533. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  534. package/dist/utils/selection.js +1 -1
  535. package/dist/utils/styles.js +1 -1
  536. package/dist/utils/tree.js +1 -1
  537. package/dist/utils/warnings.js +1 -1
  538. package/dist/version.js +2 -2
  539. package/docs/components/layout/Board.md +12 -35
  540. package/package.json +3 -1
  541. package/dist/components/fields/DatePicker/intl.js +0 -11
  542. package/dist/components/fields/DatePicker/intl.js.map +0 -1
@@ -1,5 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { useAutoTooltip } from "../use-auto-tooltip.js";
3
+ import { useI18n } from "../../../i18n/useI18n.js";
3
4
  import { SlashIcon } from "../../../icons/SlashIcon.js";
4
5
  import { Button } from "../../actions/Button/Button.js";
5
6
  import { Link } from "../../actions/Link/Link.js";
@@ -94,6 +95,7 @@ const HeaderElement = tasty(_LayoutContent, {
94
95
  }
95
96
  });
96
97
  function LayoutHeader(props, ref) {
98
+ const { t } = useI18n();
97
99
  const { title, level = 3, suffix, extra, subtitle, breadcrumbs, onBack, scrollbar = "tiny", children, mods, ...otherProps } = props;
98
100
  const { labelRef, renderWithTooltip } = useAutoTooltip({
99
101
  tooltip: true,
@@ -138,7 +140,7 @@ function LayoutHeader(props, ref) {
138
140
  children: /* @__PURE__ */ jsx(Button, {
139
141
  type: "clear",
140
142
  icon: /* @__PURE__ */ jsx(IconArrowLeft, {}),
141
- "aria-label": "Go back",
143
+ "aria-label": t("layout.goBack", "Go back"),
142
144
  onPress: onBack
143
145
  })
144
146
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutHeader.js","names":["LayoutContent"],"sources":["../../../../src/components/content/Layout/LayoutHeader.tsx"],"sourcesContent":["import { IconArrowLeft } from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n Fragment,\n HTMLAttributes,\n ReactNode,\n Ref,\n RefCallback,\n} from 'react';\n\nimport { SlashIcon } from '../../../icons/SlashIcon';\nimport { Button } from '../../actions/Button/Button';\nimport { Link } from '../../actions/Link/Link';\nimport { useAutoTooltip } from '../use-auto-tooltip';\n\nimport { CubeLayoutContentProps, LayoutContent } from './LayoutContent';\n\nconst HeaderElement = tasty(LayoutContent, {\n as: 'header',\n qa: 'LayoutHeader',\n styles: {\n container: 'none',\n // Header always has bottom border (inherent style)\n border: 'bottom',\n flexShrink: 0,\n flexGrow: 0,\n height: 'min 6x',\n\n Inner: {\n $: '>',\n display: 'grid',\n gridTemplate: `\n \"breadcrumbs breadcrumbs breadcrumbs extra\" auto\n \"back title suffix extra\" max-content\n \".. subtitle subtitle extra\" auto\n / auto max-content 1fr minmax(0, auto)\n `,\n gap: 0,\n placeContent: 'center stretch',\n placeItems: 'center stretch',\n padding: '0 ($content-padding, 1x)',\n placeSelf: 'center stretch',\n },\n\n Back: {\n $: '> Inner >',\n gridArea: 'back',\n display: 'flex',\n placeItems: 'center',\n margin: '.5x right',\n },\n\n Breadcrumbs: {\n $: '> Inner >',\n gridArea: 'breadcrumbs',\n display: 'flex',\n flow: 'row nowrap',\n placeItems: 'center start',\n gap: '1bw',\n preset: 't3 / strong',\n color: '#dark-02',\n },\n\n Title: {\n $: '> Inner >',\n gridArea: 'title',\n preset: {\n '': 'h3',\n 'level=1': 'h1',\n 'level=2': 'h2',\n 'level=3': 'h3',\n 'level=4': 'h4',\n 'level=5': 'h5',\n 'level=6': 'h6',\n },\n lineHeight: 'normal',\n color: '#dark',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n\n Suffix: {\n $: '> Inner >',\n gridArea: 'suffix',\n display: 'flex',\n placeItems: 'center',\n },\n\n Extra: {\n $: '> Inner >',\n gridArea: 'extra',\n display: 'flex',\n placeItems: 'center',\n placeSelf: 'center',\n gap: '1x',\n width: 'max 100%',\n },\n\n Subtitle: {\n $: '> Inner >',\n gridArea: 'subtitle',\n preset: 't3',\n color: '#dark-02',\n },\n },\n});\n\nexport interface CubeLayoutHeaderProps extends CubeLayoutContentProps {\n /** Page/section title */\n title?: ReactNode;\n /** Title heading level (1-6) */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Content next to the title */\n suffix?: ReactNode;\n /** Content on the right side */\n extra?: ReactNode;\n /** Text below the title */\n subtitle?: ReactNode;\n /**\n * Navigation breadcrumbs (max 3 items recommended).\n * Uses Link component which integrates with the navigation provider.\n */\n breadcrumbs?: Array<[label: string, href: string]>;\n /** Callback for the back button. When provided, a back arrow button is rendered to the left of the title. */\n onBack?: () => void;\n}\n\nfunction LayoutHeader(\n props: CubeLayoutHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n title,\n level = 3,\n suffix,\n extra,\n subtitle,\n breadcrumbs,\n onBack,\n scrollbar = 'tiny',\n children,\n mods,\n ...otherProps\n } = props;\n\n // Use auto tooltip for title overflow detection\n const { labelRef, renderWithTooltip } = useAutoTooltip({\n tooltip: true,\n children: typeof title === 'string' ? title : undefined,\n });\n\n const hasBreadcrumbs = breadcrumbs && breadcrumbs.length > 0;\n\n const renderBreadcrumbs = () => {\n if (!hasBreadcrumbs) return null;\n\n return (\n <div data-element=\"Breadcrumbs\">\n {breadcrumbs.map(([label, href], index) => (\n <Fragment key={href}>\n <Link to={href}>{label}</Link>\n <SlashIcon />\n </Fragment>\n ))}\n </div>\n );\n };\n\n const renderTitle = (\n tooltipProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: Ref<HTMLElement>,\n ) => {\n if (!title) return null;\n\n const TitleTag = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n return (\n <TitleTag\n ref={tooltipRef as Ref<HTMLHeadingElement>}\n data-element=\"Title\"\n data-level={level}\n {...tooltipProps}\n >\n <span ref={labelRef as RefCallback<HTMLSpanElement>}>{title}</span>\n </TitleTag>\n );\n };\n\n return (\n <HeaderElement\n {...otherProps}\n ref={ref}\n mods={{ ...mods, level }}\n scrollbar={scrollbar}\n >\n {renderBreadcrumbs()}\n {onBack && (\n <div data-element=\"Back\">\n <Button\n type=\"clear\"\n icon={<IconArrowLeft />}\n aria-label=\"Go back\"\n onPress={onBack}\n />\n </div>\n )}\n {renderWithTooltip(renderTitle, 'bottom')}\n {suffix && <div data-element=\"Suffix\">{suffix}</div>}\n {extra && <div data-element=\"Extra\">{extra}</div>}\n {subtitle && <div data-element=\"Subtitle\">{subtitle}</div>}\n {children}\n </HeaderElement>\n );\n}\n\nconst _LayoutHeader = forwardRef(LayoutHeader);\n\n_LayoutHeader.displayName = 'Layout.Header';\n\nexport { _LayoutHeader as LayoutHeader };\n"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,gBAAgB,MAAMA,gBAAe;CACzC,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,WAAW;EAEX,QAAQ;EACR,YAAY;EACZ,UAAU;EACV,QAAQ;EAER,OAAO;GACL,GAAG;GACH,SAAS;GACT,cAAc;;;;;;GAMd,KAAK;GACL,cAAc;GACd,YAAY;GACZ,SAAS;GACT,WAAW;GACZ;EAED,MAAM;GACJ,GAAG;GACH,UAAU;GACV,SAAS;GACT,YAAY;GACZ,QAAQ;GACT;EAED,aAAa;GACX,GAAG;GACH,UAAU;GACV,SAAS;GACT,MAAM;GACN,YAAY;GACZ,KAAK;GACL,QAAQ;GACR,OAAO;GACR;EAED,OAAO;GACL,GAAG;GACH,UAAU;GACV,QAAQ;IACN,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACZ;GACD,YAAY;GACZ,OAAO;GACP,QAAQ;GACR,UAAU;GACV,cAAc;GACd,YAAY;GACb;EAED,QAAQ;GACN,GAAG;GACH,UAAU;GACV,SAAS;GACT,YAAY;GACb;EAED,OAAO;GACL,GAAG;GACH,UAAU;GACV,SAAS;GACT,YAAY;GACZ,WAAW;GACX,KAAK;GACL,OAAO;GACR;EAED,UAAU;GACR,GAAG;GACH,UAAU;GACV,QAAQ;GACR,OAAO;GACR;EACF;CACF,CAAC;AAsBF,SAAS,aACP,OACA,KACA;CACA,MAAM,EACJ,OACA,QAAQ,GACR,QACA,OACA,UACA,aACA,QACA,YAAY,QACZ,UACA,MACA,GAAG,eACD;CAGJ,MAAM,EAAE,UAAU,sBAAsB,eAAe;EACrD,SAAS;EACT,UAAU,OAAO,UAAU,WAAW,QAAQ;EAC/C,CAAC;CAEF,MAAM,iBAAiB,eAAe,YAAY,SAAS;CAE3D,MAAM,0BAA0B;AAC9B,MAAI,CAAC,eAAgB,QAAO;AAE5B,SACE,oBAAC;GAAI,gBAAa;aACf,YAAY,KAAK,CAAC,OAAO,OAAO,UAC/B,qBAAC,uBACC,oBAAC;IAAK,IAAI;cAAO;KAAa,EAC9B,oBAAC,cAAY,KAFA,KAGJ,CACX;IACE;;CAIV,MAAM,eACJ,cACA,eACG;AACH,MAAI,CAAC,MAAO,QAAO;AAInB,SACE,oBAHe,IAAI;GAIjB,KAAK;GACL,gBAAa;GACb,cAAY;GACZ,GAAI;aAEJ,oBAAC;IAAK,KAAK;cAA2C;KAAa;IAC1D;;AAIf,QACE,qBAAC;EACC,GAAI;EACC;EACL,MAAM;GAAE,GAAG;GAAM;GAAO;EACb;;GAEV,mBAAmB;GACnB,UACC,oBAAC;IAAI,gBAAa;cAChB,oBAAC;KACC,MAAK;KACL,MAAM,oBAAC,kBAAgB;KACvB,cAAW;KACX,SAAS;MACT;KACE;GAEP,kBAAkB,aAAa,SAAS;GACxC,UAAU,oBAAC;IAAI,gBAAa;cAAU;KAAa;GACnD,SAAS,oBAAC;IAAI,gBAAa;cAAS;KAAY;GAChD,YAAY,oBAAC;IAAI,gBAAa;cAAY;KAAe;GACzD;;GACa;;AAIpB,MAAM,gBAAgB,WAAW,aAAa;AAE9C,cAAc,cAAc"}
1
+ {"version":3,"file":"LayoutHeader.js","names":["LayoutContent"],"sources":["../../../../src/components/content/Layout/LayoutHeader.tsx"],"sourcesContent":["import { IconArrowLeft } from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n Fragment,\n HTMLAttributes,\n ReactNode,\n Ref,\n RefCallback,\n} from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { SlashIcon } from '../../../icons/SlashIcon';\nimport { Button } from '../../actions/Button/Button';\nimport { Link } from '../../actions/Link/Link';\nimport { useAutoTooltip } from '../use-auto-tooltip';\n\nimport { CubeLayoutContentProps, LayoutContent } from './LayoutContent';\n\nconst HeaderElement = tasty(LayoutContent, {\n as: 'header',\n qa: 'LayoutHeader',\n styles: {\n container: 'none',\n // Header always has bottom border (inherent style)\n border: 'bottom',\n flexShrink: 0,\n flexGrow: 0,\n height: 'min 6x',\n\n Inner: {\n $: '>',\n display: 'grid',\n gridTemplate: `\n \"breadcrumbs breadcrumbs breadcrumbs extra\" auto\n \"back title suffix extra\" max-content\n \".. subtitle subtitle extra\" auto\n / auto max-content 1fr minmax(0, auto)\n `,\n gap: 0,\n placeContent: 'center stretch',\n placeItems: 'center stretch',\n padding: '0 ($content-padding, 1x)',\n placeSelf: 'center stretch',\n },\n\n Back: {\n $: '> Inner >',\n gridArea: 'back',\n display: 'flex',\n placeItems: 'center',\n margin: '.5x right',\n },\n\n Breadcrumbs: {\n $: '> Inner >',\n gridArea: 'breadcrumbs',\n display: 'flex',\n flow: 'row nowrap',\n placeItems: 'center start',\n gap: '1bw',\n preset: 't3 / strong',\n color: '#dark-02',\n },\n\n Title: {\n $: '> Inner >',\n gridArea: 'title',\n preset: {\n '': 'h3',\n 'level=1': 'h1',\n 'level=2': 'h2',\n 'level=3': 'h3',\n 'level=4': 'h4',\n 'level=5': 'h5',\n 'level=6': 'h6',\n },\n lineHeight: 'normal',\n color: '#dark',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n\n Suffix: {\n $: '> Inner >',\n gridArea: 'suffix',\n display: 'flex',\n placeItems: 'center',\n },\n\n Extra: {\n $: '> Inner >',\n gridArea: 'extra',\n display: 'flex',\n placeItems: 'center',\n placeSelf: 'center',\n gap: '1x',\n width: 'max 100%',\n },\n\n Subtitle: {\n $: '> Inner >',\n gridArea: 'subtitle',\n preset: 't3',\n color: '#dark-02',\n },\n },\n});\n\nexport interface CubeLayoutHeaderProps extends CubeLayoutContentProps {\n /** Page/section title */\n title?: ReactNode;\n /** Title heading level (1-6) */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Content next to the title */\n suffix?: ReactNode;\n /** Content on the right side */\n extra?: ReactNode;\n /** Text below the title */\n subtitle?: ReactNode;\n /**\n * Navigation breadcrumbs (max 3 items recommended).\n * Uses Link component which integrates with the navigation provider.\n */\n breadcrumbs?: Array<[label: string, href: string]>;\n /** Callback for the back button. When provided, a back arrow button is rendered to the left of the title. */\n onBack?: () => void;\n}\n\nfunction LayoutHeader(\n props: CubeLayoutHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n const {\n title,\n level = 3,\n suffix,\n extra,\n subtitle,\n breadcrumbs,\n onBack,\n scrollbar = 'tiny',\n children,\n mods,\n ...otherProps\n } = props;\n\n // Use auto tooltip for title overflow detection\n const { labelRef, renderWithTooltip } = useAutoTooltip({\n tooltip: true,\n children: typeof title === 'string' ? title : undefined,\n });\n\n const hasBreadcrumbs = breadcrumbs && breadcrumbs.length > 0;\n\n const renderBreadcrumbs = () => {\n if (!hasBreadcrumbs) return null;\n\n return (\n <div data-element=\"Breadcrumbs\">\n {breadcrumbs.map(([label, href], index) => (\n <Fragment key={href}>\n <Link to={href}>{label}</Link>\n <SlashIcon />\n </Fragment>\n ))}\n </div>\n );\n };\n\n const renderTitle = (\n tooltipProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: Ref<HTMLElement>,\n ) => {\n if (!title) return null;\n\n const TitleTag = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n return (\n <TitleTag\n ref={tooltipRef as Ref<HTMLHeadingElement>}\n data-element=\"Title\"\n data-level={level}\n {...tooltipProps}\n >\n <span ref={labelRef as RefCallback<HTMLSpanElement>}>{title}</span>\n </TitleTag>\n );\n };\n\n return (\n <HeaderElement\n {...otherProps}\n ref={ref}\n mods={{ ...mods, level }}\n scrollbar={scrollbar}\n >\n {renderBreadcrumbs()}\n {onBack && (\n <div data-element=\"Back\">\n <Button\n type=\"clear\"\n icon={<IconArrowLeft />}\n aria-label={t('layout.goBack', 'Go back')}\n onPress={onBack}\n />\n </div>\n )}\n {renderWithTooltip(renderTitle, 'bottom')}\n {suffix && <div data-element=\"Suffix\">{suffix}</div>}\n {extra && <div data-element=\"Extra\">{extra}</div>}\n {subtitle && <div data-element=\"Subtitle\">{subtitle}</div>}\n {children}\n </HeaderElement>\n );\n}\n\nconst _LayoutHeader = forwardRef(LayoutHeader);\n\n_LayoutHeader.displayName = 'Layout.Header';\n\nexport { _LayoutHeader as LayoutHeader };\n"],"mappings":";;;;;;;;;;;;;AAoBA,MAAM,gBAAgB,MAAMA,gBAAe;CACzC,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,WAAW;EAEX,QAAQ;EACR,YAAY;EACZ,UAAU;EACV,QAAQ;EAER,OAAO;GACL,GAAG;GACH,SAAS;GACT,cAAc;;;;;;GAMd,KAAK;GACL,cAAc;GACd,YAAY;GACZ,SAAS;GACT,WAAW;GACZ;EAED,MAAM;GACJ,GAAG;GACH,UAAU;GACV,SAAS;GACT,YAAY;GACZ,QAAQ;GACT;EAED,aAAa;GACX,GAAG;GACH,UAAU;GACV,SAAS;GACT,MAAM;GACN,YAAY;GACZ,KAAK;GACL,QAAQ;GACR,OAAO;GACR;EAED,OAAO;GACL,GAAG;GACH,UAAU;GACV,QAAQ;IACN,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACZ;GACD,YAAY;GACZ,OAAO;GACP,QAAQ;GACR,UAAU;GACV,cAAc;GACd,YAAY;GACb;EAED,QAAQ;GACN,GAAG;GACH,UAAU;GACV,SAAS;GACT,YAAY;GACb;EAED,OAAO;GACL,GAAG;GACH,UAAU;GACV,SAAS;GACT,YAAY;GACZ,WAAW;GACX,KAAK;GACL,OAAO;GACR;EAED,UAAU;GACR,GAAG;GACH,UAAU;GACV,QAAQ;GACR,OAAO;GACR;EACF;CACF,CAAC;AAsBF,SAAS,aACP,OACA,KACA;CACA,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,EACJ,OACA,QAAQ,GACR,QACA,OACA,UACA,aACA,QACA,YAAY,QACZ,UACA,MACA,GAAG,eACD;CAGJ,MAAM,EAAE,UAAU,sBAAsB,eAAe;EACrD,SAAS;EACT,UAAU,OAAO,UAAU,WAAW,QAAQ;EAC/C,CAAC;CAEF,MAAM,iBAAiB,eAAe,YAAY,SAAS;CAE3D,MAAM,0BAA0B;AAC9B,MAAI,CAAC,eAAgB,QAAO;AAE5B,SACE,oBAAC;GAAI,gBAAa;aACf,YAAY,KAAK,CAAC,OAAO,OAAO,UAC/B,qBAAC,uBACC,oBAAC;IAAK,IAAI;cAAO;KAAa,EAC9B,oBAAC,cAAY,KAFA,KAGJ,CACX;IACE;;CAIV,MAAM,eACJ,cACA,eACG;AACH,MAAI,CAAC,MAAO,QAAO;AAInB,SACE,oBAHe,IAAI;GAIjB,KAAK;GACL,gBAAa;GACb,cAAY;GACZ,GAAI;aAEJ,oBAAC;IAAK,KAAK;cAA2C;KAAa;IAC1D;;AAIf,QACE,qBAAC;EACC,GAAI;EACC;EACL,MAAM;GAAE,GAAG;GAAM;GAAO;EACb;;GAEV,mBAAmB;GACnB,UACC,oBAAC;IAAI,gBAAa;cAChB,oBAAC;KACC,MAAK;KACL,MAAM,oBAAC,kBAAgB;KACvB,cAAY,EAAE,iBAAiB,UAAU;KACzC,SAAS;MACT;KACE;GAEP,kBAAkB,aAAa,SAAS;GACxC,UAAU,oBAAC;IAAI,gBAAa;cAAU;KAAa;GACnD,SAAS,oBAAC;IAAI,gBAAa;cAAS;KAAY;GAChD,YAAY,oBAAC;IAAI,gBAAa;cAAY;KAAe;GACzD;;GACa;;AAIpB,MAAM,gBAAgB,WAAW,aAAa;AAE9C,cAAc,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | 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 { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | 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 { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { _Item } from "../Item/Item.js";
5
+ import { useI18n } from "../../../i18n/useI18n.js";
5
6
  import { CloseIcon } from "../../../icons/CloseIcon.js";
6
7
  import { useDialogContext } from "../../overlays/Dialog/context.js";
7
8
  import { useLayoutPanelContext } from "./LayoutContext.js";
@@ -21,6 +22,7 @@ const PanelHeaderElement = tasty(_Item, {
21
22
  }
22
23
  });
23
24
  function LayoutPanelHeader(props, ref) {
25
+ const { t } = useI18n();
24
26
  const { title, level = 3, isClosable, onClose, actions, children, ...otherProps } = props;
25
27
  const styles = extractStyles(otherProps, CONTAINER_STYLES);
26
28
  const dialogContext = useDialogContext();
@@ -34,15 +36,16 @@ function LayoutPanelHeader(props, ref) {
34
36
  panelContext,
35
37
  dialogContext
36
38
  ]);
39
+ const closeAction = isClosable ? /* @__PURE__ */ jsx(ItemAction, {
40
+ icon: /* @__PURE__ */ jsx(CloseIcon, {}),
41
+ "aria-label": t("layout.closePanel", "Close panel"),
42
+ onPress: handleClose
43
+ }) : null;
37
44
  return /* @__PURE__ */ jsx(PanelHeaderElement, {
38
45
  ref,
39
46
  level,
40
47
  size: "large",
41
- actions: actions ?? (isClosable ? /* @__PURE__ */ jsx(ItemAction, {
42
- icon: /* @__PURE__ */ jsx(CloseIcon, {}),
43
- "aria-label": "Close panel",
44
- onPress: handleClose
45
- }) : null),
48
+ actions: actions ?? closeAction,
46
49
  styles,
47
50
  ...otherProps,
48
51
  children: title ?? children
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutPanelHeader.js","names":["Item"],"sources":["../../../../src/components/content/Layout/LayoutPanelHeader.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode, useCallback } from 'react';\n\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemAction } from '../../actions/ItemAction';\nimport { useDialogContext } from '../../overlays/Dialog/context';\nimport { CubeItemProps, Item } from '../Item/Item';\n\nimport { useLayoutPanelContext } from './LayoutContext';\n\nconst PanelHeaderElement = tasty(Item, {\n qa: 'PanelHeader',\n shape: 'sharp',\n type: 'header',\n styles: {\n border: 'bottom',\n boxSizing: 'content-box',\n\n '$inline-padding': '($content-padding, 1x)',\n },\n});\n\nexport interface CubeLayoutPanelHeaderProps\n extends Omit<BaseProps, 'theme'>,\n ContainerStyleProps,\n CubeItemProps {\n /** Panel title */\n title?: ReactNode;\n /** Title heading level (affects semantics, not visual) */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Show close button */\n isClosable?: boolean;\n /** Close button click handler */\n onClose?: () => void;\n}\n\nfunction LayoutPanelHeader(\n props: CubeLayoutPanelHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n title,\n level = 3,\n isClosable,\n onClose,\n actions,\n children,\n ...otherProps\n } = props;\n\n // Extract container styles\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n // Access dialog context if in dialog mode\n const dialogContext = useDialogContext();\n // Access panel context to update panel open state\n const panelContext = useLayoutPanelContext();\n\n // Close handler that works for both panel and dialog modes\n const handleClose = useCallback(() => {\n // Call user-provided onClose callback\n onClose?.();\n // Update panel's internal open state\n panelContext?.onOpenChange(false);\n // If in dialog mode, also close the dialog\n dialogContext?.onClose?.();\n }, [onClose, panelContext, dialogContext]);\n\n const closeAction = isClosable ? (\n <ItemAction\n icon={<CloseIcon />}\n aria-label=\"Close panel\"\n onPress={handleClose}\n />\n ) : null;\n\n const finalActions = actions ?? closeAction;\n\n return (\n <PanelHeaderElement\n ref={ref}\n level={level}\n size=\"large\"\n actions={finalActions}\n styles={styles}\n {...otherProps}\n >\n {title ?? children}\n </PanelHeaderElement>\n );\n}\n\nconst _LayoutPanelHeader = forwardRef(LayoutPanelHeader);\n\n_LayoutPanelHeader.displayName = 'Layout.PanelHeader';\n\nexport { _LayoutPanelHeader as LayoutPanelHeader };\n"],"mappings":";;;;;;;;;;;;AAgBA,MAAM,qBAAqB,MAAMA,OAAM;CACrC,IAAI;CACJ,OAAO;CACP,MAAM;CACN,QAAQ;EACN,QAAQ;EACR,WAAW;EAEX,mBAAmB;EACpB;CACF,CAAC;AAgBF,SAAS,kBACP,OACA,KACA;CACA,MAAM,EACJ,OACA,QAAQ,GACR,YACA,SACA,SACA,UACA,GAAG,eACD;CAGJ,MAAM,SAAS,cAAc,YAAY,iBAAiB;CAG1D,MAAM,gBAAgB,kBAAkB;CAExC,MAAM,eAAe,uBAAuB;CAG5C,MAAM,cAAc,kBAAkB;AAEpC,aAAW;AAEX,gBAAc,aAAa,MAAM;AAEjC,iBAAe,WAAW;IACzB;EAAC;EAAS;EAAc;EAAc,CAAC;AAY1C,QACE,oBAAC;EACM;EACE;EACP,MAAK;EACL,SAPiB,YARD,aAClB,oBAAC;GACC,MAAM,oBAAC,cAAY;GACnB,cAAW;GACX,SAAS;IACT,GACA;EAUQ;EACR,GAAI;YAEH,SAAS;GACS;;AAIzB,MAAM,qBAAqB,WAAW,kBAAkB;AAExD,mBAAmB,cAAc"}
1
+ {"version":3,"file":"LayoutPanelHeader.js","names":["Item"],"sources":["../../../../src/components/content/Layout/LayoutPanelHeader.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode, useCallback } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemAction } from '../../actions/ItemAction';\nimport { useDialogContext } from '../../overlays/Dialog/context';\nimport { CubeItemProps, Item } from '../Item/Item';\n\nimport { useLayoutPanelContext } from './LayoutContext';\n\nconst PanelHeaderElement = tasty(Item, {\n qa: 'PanelHeader',\n shape: 'sharp',\n type: 'header',\n styles: {\n border: 'bottom',\n boxSizing: 'content-box',\n\n '$inline-padding': '($content-padding, 1x)',\n },\n});\n\nexport interface CubeLayoutPanelHeaderProps\n extends Omit<BaseProps, 'theme'>,\n ContainerStyleProps,\n CubeItemProps {\n /** Panel title */\n title?: ReactNode;\n /** Title heading level (affects semantics, not visual) */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Show close button */\n isClosable?: boolean;\n /** Close button click handler */\n onClose?: () => void;\n}\n\nfunction LayoutPanelHeader(\n props: CubeLayoutPanelHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n const {\n title,\n level = 3,\n isClosable,\n onClose,\n actions,\n children,\n ...otherProps\n } = props;\n\n // Extract container styles\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n // Access dialog context if in dialog mode\n const dialogContext = useDialogContext();\n // Access panel context to update panel open state\n const panelContext = useLayoutPanelContext();\n\n // Close handler that works for both panel and dialog modes\n const handleClose = useCallback(() => {\n // Call user-provided onClose callback\n onClose?.();\n // Update panel's internal open state\n panelContext?.onOpenChange(false);\n // If in dialog mode, also close the dialog\n dialogContext?.onClose?.();\n }, [onClose, panelContext, dialogContext]);\n\n const closeAction = isClosable ? (\n <ItemAction\n icon={<CloseIcon />}\n aria-label={t('layout.closePanel', 'Close panel')}\n onPress={handleClose}\n />\n ) : null;\n\n const finalActions = actions ?? closeAction;\n\n return (\n <PanelHeaderElement\n ref={ref}\n level={level}\n size=\"large\"\n actions={finalActions}\n styles={styles}\n {...otherProps}\n >\n {title ?? children}\n </PanelHeaderElement>\n );\n}\n\nconst _LayoutPanelHeader = forwardRef(LayoutPanelHeader);\n\n_LayoutPanelHeader.displayName = 'Layout.PanelHeader';\n\nexport { _LayoutPanelHeader as LayoutPanelHeader };\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,qBAAqB,MAAMA,OAAM;CACrC,IAAI;CACJ,OAAO;CACP,MAAM;CACN,QAAQ;EACN,QAAQ;EACR,WAAW;EAEX,mBAAmB;EACpB;CACF,CAAC;AAgBF,SAAS,kBACP,OACA,KACA;CACA,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,EACJ,OACA,QAAQ,GACR,YACA,SACA,SACA,UACA,GAAG,eACD;CAGJ,MAAM,SAAS,cAAc,YAAY,iBAAiB;CAG1D,MAAM,gBAAgB,kBAAkB;CAExC,MAAM,eAAe,uBAAuB;CAG5C,MAAM,cAAc,kBAAkB;AAEpC,aAAW;AAEX,gBAAc,aAAa,MAAM;AAEjC,iBAAe,WAAW;IACzB;EAAC;EAAS;EAAc;EAAc,CAAC;CAE1C,MAAM,cAAc,aAClB,oBAAC;EACC,MAAM,oBAAC,cAAY;EACnB,cAAY,EAAE,qBAAqB,cAAc;EACjD,SAAS;GACT,GACA;AAIJ,QACE,oBAAC;EACM;EACE;EACP,MAAK;EACL,SAPiB,WAAW;EAQpB;EACR,GAAI;YAEH,SAAS;GACS;;AAIzB,MAAM,qBAAqB,WAAW,kBAAkB;AAExD,mBAAmB,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { useCallback, useEffect, useRef, useState } from "react";
3
3
 
4
4
  //#region src/components/content/Layout/hooks/useTinyScrollbar.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { LayoutActionsContext, LayoutContextReset, LayoutPanelContext, LayoutRefsContext, LayoutStateContext, useLayoutActionsContext, useLayoutPanelContext, useLayoutRefsContext, useLayoutStateContext } from "./LayoutContext.js";
3
3
  import { _Layout } from "./Layout.js";
4
4
  import { _LayoutContent } from "./LayoutContent.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  //#region src/components/content/Layout/utils.ts
3
3
  /**
4
4
  * Clamps a size value within min/max constraints.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { _Text } from "./Text.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES } from "@tenphi/tasty";
@@ -1,5 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
+ import { useI18n } from "../../../i18n/useI18n.js";
3
4
  import { CONTAINER_STYLES, filterBaseProps, keyframes, tasty } from "@tenphi/tasty";
4
5
  import { forwardRef } from "react";
5
6
  import { jsx } from "react/jsx-runtime";
@@ -12,7 +13,6 @@ const placeholderAnimation = keyframes({
12
13
  const StyledPlaceholder = tasty({
13
14
  role: "alert",
14
15
  "aria-live": "polite",
15
- "aria-label": "Content is loading",
16
16
  styles: {
17
17
  display: "block",
18
18
  fill: "#dark.10",
@@ -52,9 +52,11 @@ const StyledPlaceholder = tasty({
52
52
  });
53
53
  const Placeholder = forwardRef(function Placeholder(allProps, ref) {
54
54
  let { size = "2x", isStatic, circle, ...props } = allProps;
55
+ const { t } = useI18n();
55
56
  let styles = extractStyles(props, CONTAINER_STYLES);
56
57
  return /* @__PURE__ */ jsx(StyledPlaceholder, {
57
58
  role: "region",
59
+ "aria-label": t("placeholder.contentIsLoading", "Content is loading"),
58
60
  ...filterBaseProps(props, { eventProps: true }),
59
61
  ref,
60
62
  mods: {
@@ -1 +1 @@
1
- {"version":3,"file":"Placeholder.js","names":[],"sources":["../../../../src/components/content/Placeholder/Placeholder.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n keyframes,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { extractStyles } from '../../../utils/styles';\n\n// Create the placeholder animation using keyframes helper\nconst placeholderAnimation = keyframes({\n '0%': {\n 'background-position': '0 0',\n },\n '100%': {\n 'background-position': '$placeholder-animation-size 0',\n },\n});\n\nconst StyledPlaceholder = tasty({\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-label': 'Content is loading',\n styles: {\n display: 'block',\n fill: '#dark.10',\n height: '2x',\n opacity: '.35',\n aspectRatio: {\n '': 'initial',\n circle: '1 / 1',\n },\n radius: {\n '': '1r',\n circle: 'round',\n },\n\n // CSS custom properties for animation\n '$placeholder-animation-time': '1.4s',\n '$placeholder-animation-size': 'calc((180rem + 100vw) / 3)',\n\n // Base background styling\n backgroundRepeat: 'repeat',\n backgroundSize: '$placeholder-animation-size',\n backgroundColor: '#dark.15',\n\n // Animated state styling\n animation: {\n '': 'none',\n animated: `${placeholderAnimation} $placeholder-animation-time linear infinite`,\n },\n backgroundImage: {\n '': 'none',\n animated: `linear-gradient(\n 135deg,\n #dark.15 0%,\n #dark.15 5%,\n #dark.0 35%,\n #dark-03.2 50%,\n #dark-03.0 65%,\n #dark.15 95%,\n #dark.15 100%\n )`,\n },\n },\n});\n\nexport interface CubePlaceholderProps extends BaseProps, ContainerStyleProps {\n size?: Styles['fontSize'];\n circle?: boolean;\n isStatic?: boolean;\n}\n\nexport const Placeholder = forwardRef(function Placeholder(\n allProps: CubePlaceholderProps,\n ref,\n) {\n let { size = '2x', isStatic, circle, ...props } = allProps;\n\n let styles = extractStyles(props, CONTAINER_STYLES);\n\n return (\n <StyledPlaceholder\n role=\"region\"\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n mods={{ animated: !isStatic, circle }}\n styles={{\n height: size,\n ...styles,\n }}\n />\n );\n});\n"],"mappings":";;;;;;;AAcA,MAAM,uBAAuB,UAAU;CACrC,MAAM,EACJ,uBAAuB,OACxB;CACD,QAAQ,EACN,uBAAuB,iCACxB;CACF,CAAC;AAEF,MAAM,oBAAoB,MAAM;CAC9B,MAAM;CACN,aAAa;CACb,cAAc;CACd,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACT,aAAa;GACX,IAAI;GACJ,QAAQ;GACT;EACD,QAAQ;GACN,IAAI;GACJ,QAAQ;GACT;EAGD,+BAA+B;EAC/B,+BAA+B;EAG/B,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EAGjB,WAAW;GACT,IAAI;GACJ,UAAU,GAAG,qBAAqB;GACnC;EACD,iBAAiB;GACf,IAAI;GACJ,UAAU;;;;;;;;;;GAUX;EACF;CACF,CAAC;AAQF,MAAa,cAAc,WAAW,SAAS,YAC7C,UACA,KACA;CACA,IAAI,EAAE,OAAO,MAAM,UAAU,QAAQ,GAAG,UAAU;CAElD,IAAI,SAAS,cAAc,OAAO,iBAAiB;AAEnD,QACE,oBAAC;EACC,MAAK;EACL,GAAI,gBAAgB,OAAO,EAAE,YAAY,MAAM,CAAC;EAC3C;EACL,MAAM;GAAE,UAAU,CAAC;GAAU;GAAQ;EACrC,QAAQ;GACN,QAAQ;GACR,GAAG;GACJ;GACD;EAEJ"}
1
+ {"version":3,"file":"Placeholder.js","names":[],"sources":["../../../../src/components/content/Placeholder/Placeholder.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n keyframes,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { extractStyles } from '../../../utils/styles';\n\n// Create the placeholder animation using keyframes helper\nconst placeholderAnimation = keyframes({\n '0%': {\n 'background-position': '0 0',\n },\n '100%': {\n 'background-position': '$placeholder-animation-size 0',\n },\n});\n\nconst StyledPlaceholder = tasty({\n role: 'alert',\n 'aria-live': 'polite',\n styles: {\n display: 'block',\n fill: '#dark.10',\n height: '2x',\n opacity: '.35',\n aspectRatio: {\n '': 'initial',\n circle: '1 / 1',\n },\n radius: {\n '': '1r',\n circle: 'round',\n },\n\n // CSS custom properties for animation\n '$placeholder-animation-time': '1.4s',\n '$placeholder-animation-size': 'calc((180rem + 100vw) / 3)',\n\n // Base background styling\n backgroundRepeat: 'repeat',\n backgroundSize: '$placeholder-animation-size',\n backgroundColor: '#dark.15',\n\n // Animated state styling\n animation: {\n '': 'none',\n animated: `${placeholderAnimation} $placeholder-animation-time linear infinite`,\n },\n backgroundImage: {\n '': 'none',\n animated: `linear-gradient(\n 135deg,\n #dark.15 0%,\n #dark.15 5%,\n #dark.0 35%,\n #dark-03.2 50%,\n #dark-03.0 65%,\n #dark.15 95%,\n #dark.15 100%\n )`,\n },\n },\n});\n\nexport interface CubePlaceholderProps extends BaseProps, ContainerStyleProps {\n size?: Styles['fontSize'];\n circle?: boolean;\n isStatic?: boolean;\n}\n\nexport const Placeholder = forwardRef(function Placeholder(\n allProps: CubePlaceholderProps,\n ref,\n) {\n let { size = '2x', isStatic, circle, ...props } = allProps;\n\n const { t } = useI18n();\n\n let styles = extractStyles(props, CONTAINER_STYLES);\n\n return (\n <StyledPlaceholder\n role=\"region\"\n aria-label={t('placeholder.contentIsLoading', 'Content is loading')}\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n mods={{ animated: !isStatic, circle }}\n styles={{\n height: size,\n ...styles,\n }}\n />\n );\n});\n"],"mappings":";;;;;;;;AAeA,MAAM,uBAAuB,UAAU;CACrC,MAAM,EACJ,uBAAuB,OACxB;CACD,QAAQ,EACN,uBAAuB,iCACxB;CACF,CAAC;AAEF,MAAM,oBAAoB,MAAM;CAC9B,MAAM;CACN,aAAa;CACb,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACT,aAAa;GACX,IAAI;GACJ,QAAQ;GACT;EACD,QAAQ;GACN,IAAI;GACJ,QAAQ;GACT;EAGD,+BAA+B;EAC/B,+BAA+B;EAG/B,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EAGjB,WAAW;GACT,IAAI;GACJ,UAAU,GAAG,qBAAqB;GACnC;EACD,iBAAiB;GACf,IAAI;GACJ,UAAU;;;;;;;;;;GAUX;EACF;CACF,CAAC;AAQF,MAAa,cAAc,WAAW,SAAS,YAC7C,UACA,KACA;CACA,IAAI,EAAE,OAAO,MAAM,UAAU,QAAQ,GAAG,UAAU;CAElD,MAAM,EAAE,MAAM,SAAS;CAEvB,IAAI,SAAS,cAAc,OAAO,iBAAiB;AAEnD,QACE,oBAAC;EACC,MAAK;EACL,cAAY,EAAE,gCAAgC,qBAAqB;EACnE,GAAI,gBAAgB,OAAO,EAAE,YAAY,MAAM,CAAC;EAC3C;EACL,MAAM;GAAE,UAAU,CAAC;GAAU;GAAQ;EACrC,QAAQ;GACN,QAAQ;GACR,GAAG;GACJ;GACD;EAEJ"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { RendererPrism, ensureYamlSqlExtensions } from "./prismSetup.js";
3
3
  import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { Prism as RendererPrism } from "prism-react-renderer";
3
3
 
4
4
  //#region src/components/content/PrismCode/prismSetup.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { _PrismCode } from "../PrismCode/PrismCode.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { diffLines } from "diff";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { Space } from "../../layout/Space.js";
3
3
  import { Grid } from "../../layout/Grid.js";
4
4
  import { Flow } from "../../layout/Flow.js";
@@ -1,5 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
+ import { useI18n } from "../../../i18n/useI18n.js";
3
4
  import { CloseIcon } from "../../../icons/CloseIcon.js";
4
5
  import { tasty } from "@tenphi/tasty";
5
6
  import { forwardRef } from "react";
@@ -26,6 +27,7 @@ const TagElement = tasty(_Item, {
26
27
  }
27
28
  });
28
29
  function Tag(allProps, ref) {
30
+ const { t } = useI18n();
29
31
  let { theme = "default", isClosable, onClose, closeButtonStyles, children, size = "inline", mods, ...props } = allProps;
30
32
  let type = "card";
31
33
  if (theme === "special") {
@@ -39,7 +41,7 @@ function Tag(allProps, ref) {
39
41
  variant: `${theme}.${type}`,
40
42
  mods,
41
43
  actions: isClosable ? /* @__PURE__ */ jsx(_Item.Action, {
42
- "aria-label": "Close",
44
+ "aria-label": t("tag.close", "Close"),
43
45
  styles: {
44
46
  color: "currentColor",
45
47
  ...closeButtonStyles
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","names":["Item"],"sources":["../../../../src/components/content/Tag/Tag.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\nimport { ItemVariant } from 'src/data/item-themes';\n\nimport { CloseIcon } from '../../../icons';\nimport { CubeItemProps, Item } from '../Item';\n\nconst TagElement = tasty(Item, {\n qa: 'Tag',\n role: 'status',\n styles: {\n padding: 0,\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 '$min-inline-padding': '.5x',\n\n Label: {\n textAlign: 'center',\n placeSelf: 'center',\n },\n },\n});\n\nexport interface CubeTagProps extends CubeItemProps {\n theme?: 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special';\n isClosable?: boolean;\n onClose?: () => void;\n closeButtonStyles?: Styles;\n}\n\nfunction Tag(allProps: CubeTagProps, ref) {\n let {\n theme = 'default',\n isClosable,\n onClose,\n closeButtonStyles,\n children,\n size = 'inline',\n mods,\n ...props\n } = allProps;\n\n let type = 'card';\n\n if (theme === 'special') {\n theme = 'default';\n type = 'primary';\n }\n\n return (\n <TagElement\n ref={ref}\n size={size}\n data-type={type}\n variant={`${theme}.${type}` as ItemVariant}\n mods={mods}\n actions={\n isClosable ? (\n <Item.Action\n aria-label=\"Close\"\n styles={{ color: 'currentColor', ...closeButtonStyles }}\n icon={<CloseIcon />}\n onPress={onClose}\n />\n ) : undefined\n }\n {...props}\n >\n {children}\n </TagElement>\n );\n}\n\nconst _Tag = forwardRef(Tag);\n\n_Tag.displayName = 'Tag';\n\nexport { _Tag as Tag };\n"],"mappings":";;;;;;;;AAOA,MAAM,aAAa,MAAMA,OAAM;CAC7B,IAAI;CACJ,MAAM;CACN,QAAQ;EACN,SAAS;EACT,QAAQ;GACN,IAAI;GACJ,eAAe;GACf,4BAA4B;GAC5B,4BAA4B;GAC7B;EACD,QAAQ,EAEN,gBAAgB,UACjB;EAED,uBAAuB;EAEvB,OAAO;GACL,WAAW;GACX,WAAW;GACZ;EACF;CACF,CAAC;AASF,SAAS,IAAI,UAAwB,KAAK;CACxC,IAAI,EACF,QAAQ,WACR,YACA,SACA,mBACA,UACA,OAAO,UACP,MACA,GAAG,UACD;CAEJ,IAAI,OAAO;AAEX,KAAI,UAAU,WAAW;AACvB,UAAQ;AACR,SAAO;;AAGT,QACE,oBAAC;EACM;EACC;EACN,aAAW;EACX,SAAS,GAAG,MAAM,GAAG;EACf;EACN,SACE,aACE,oBAACA,MAAK;GACJ,cAAW;GACX,QAAQ;IAAE,OAAO;IAAgB,GAAG;IAAmB;GACvD,MAAM,oBAAC,cAAY;GACnB,SAAS;IACT,GACA;EAEN,GAAI;EAEH;GACU;;AAIjB,MAAM,OAAO,WAAW,IAAI;AAE5B,KAAK,cAAc"}
1
+ {"version":3,"file":"Tag.js","names":["Item"],"sources":["../../../../src/components/content/Tag/Tag.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\nimport { ItemVariant } from 'src/data/item-themes';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons';\nimport { CubeItemProps, Item } from '../Item';\n\nconst TagElement = tasty(Item, {\n qa: 'Tag',\n role: 'status',\n styles: {\n padding: 0,\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 '$min-inline-padding': '.5x',\n\n Label: {\n textAlign: 'center',\n placeSelf: 'center',\n },\n },\n});\n\nexport interface CubeTagProps extends CubeItemProps {\n theme?: 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special';\n isClosable?: boolean;\n onClose?: () => void;\n closeButtonStyles?: Styles;\n}\n\nfunction Tag(allProps: CubeTagProps, ref) {\n const { t } = useI18n();\n\n let {\n theme = 'default',\n isClosable,\n onClose,\n closeButtonStyles,\n children,\n size = 'inline',\n mods,\n ...props\n } = allProps;\n\n let type = 'card';\n\n if (theme === 'special') {\n theme = 'default';\n type = 'primary';\n }\n\n return (\n <TagElement\n ref={ref}\n size={size}\n data-type={type}\n variant={`${theme}.${type}` as ItemVariant}\n mods={mods}\n actions={\n isClosable ? (\n <Item.Action\n aria-label={t('tag.close', 'Close')}\n styles={{ color: 'currentColor', ...closeButtonStyles }}\n icon={<CloseIcon />}\n onPress={onClose}\n />\n ) : undefined\n }\n {...props}\n >\n {children}\n </TagElement>\n );\n}\n\nconst _Tag = forwardRef(Tag);\n\n_Tag.displayName = 'Tag';\n\nexport { _Tag as Tag };\n"],"mappings":";;;;;;;;;AAQA,MAAM,aAAa,MAAMA,OAAM;CAC7B,IAAI;CACJ,MAAM;CACN,QAAQ;EACN,SAAS;EACT,QAAQ;GACN,IAAI;GACJ,eAAe;GACf,4BAA4B;GAC5B,4BAA4B;GAC7B;EACD,QAAQ,EAEN,gBAAgB,UACjB;EAED,uBAAuB;EAEvB,OAAO;GACL,WAAW;GACX,WAAW;GACZ;EACF;CACF,CAAC;AASF,SAAS,IAAI,UAAwB,KAAK;CACxC,MAAM,EAAE,MAAM,SAAS;CAEvB,IAAI,EACF,QAAQ,WACR,YACA,SACA,mBACA,UACA,OAAO,UACP,MACA,GAAG,UACD;CAEJ,IAAI,OAAO;AAEX,KAAI,UAAU,WAAW;AACvB,UAAQ;AACR,SAAO;;AAGT,QACE,oBAAC;EACM;EACC;EACN,aAAW;EACX,SAAS,GAAG,MAAM,GAAG;EACf;EACN,SACE,aACE,oBAACA,MAAK;GACJ,cAAY,EAAE,aAAa,QAAQ;GACnC,QAAQ;IAAE,OAAO;IAAgB,GAAG;IAAmB;GACvD,MAAM,oBAAC,cAAY;GACnB,SAAS;IACT,GACA;EAEN,GAAI;EAEH;GACU;;AAIjB,MAAM,OAAO,WAAW,IAAI;AAE5B,KAAK,cAAc"}
@@ -39,7 +39,7 @@ declare const MinorText: react.ComponentType<{
39
39
  className?: string | undefined;
40
40
  role?: react.AriaRole | undefined;
41
41
  id?: string | undefined;
42
- children?: react.ReactNode;
42
+ children?: react.ReactNode | Iterable<react.ReactNode>;
43
43
  css?: string | undefined;
44
44
  as?: keyof HTMLElementTagNameMap | react.ComponentType<any> | undefined;
45
45
  color?: _tenphi_tasty0.StyleValue<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined> | _tenphi_tasty0.StyleValueStateMap<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined>;
@@ -448,7 +448,7 @@ declare const DangerText: react.ComponentType<{
448
448
  className?: string | undefined;
449
449
  role?: react.AriaRole | undefined;
450
450
  id?: string | undefined;
451
- children?: react.ReactNode;
451
+ children?: react.ReactNode | Iterable<react.ReactNode>;
452
452
  css?: string | undefined;
453
453
  as?: keyof HTMLElementTagNameMap | react.ComponentType<any> | undefined;
454
454
  color?: _tenphi_tasty0.StyleValue<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined> | _tenphi_tasty0.StyleValueStateMap<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined>;
@@ -857,7 +857,7 @@ declare const SuccessText: react.ComponentType<{
857
857
  className?: string | undefined;
858
858
  role?: react.AriaRole | undefined;
859
859
  id?: string | undefined;
860
- children?: react.ReactNode;
860
+ children?: react.ReactNode | Iterable<react.ReactNode>;
861
861
  css?: string | undefined;
862
862
  as?: keyof HTMLElementTagNameMap | react.ComponentType<any> | undefined;
863
863
  color?: _tenphi_tasty0.StyleValue<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined> | _tenphi_tasty0.StyleValueStateMap<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined>;
@@ -1266,7 +1266,7 @@ declare const StrongText: react.ComponentType<{
1266
1266
  className?: string | undefined;
1267
1267
  role?: react.AriaRole | undefined;
1268
1268
  id?: string | undefined;
1269
- children?: react.ReactNode;
1269
+ children?: react.ReactNode | Iterable<react.ReactNode>;
1270
1270
  css?: string | undefined;
1271
1271
  as?: keyof HTMLElementTagNameMap | react.ComponentType<any> | undefined;
1272
1272
  color?: _tenphi_tasty0.StyleValue<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined> | _tenphi_tasty0.StyleValueStateMap<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined>;
@@ -1675,7 +1675,7 @@ declare const EmphasisText: react.ComponentType<{
1675
1675
  className?: string | undefined;
1676
1676
  role?: react.AriaRole | undefined;
1677
1677
  id?: string | undefined;
1678
- children?: react.ReactNode;
1678
+ children?: react.ReactNode | Iterable<react.ReactNode>;
1679
1679
  css?: string | undefined;
1680
1680
  as?: keyof HTMLElementTagNameMap | react.ComponentType<any> | undefined;
1681
1681
  color?: _tenphi_tasty0.StyleValue<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined> | _tenphi_tasty0.StyleValueStateMap<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined>;
@@ -2084,7 +2084,7 @@ declare const PlaceholderText: react.ComponentType<{
2084
2084
  className?: string | undefined;
2085
2085
  role?: react.AriaRole | undefined;
2086
2086
  id?: string | undefined;
2087
- children?: react.ReactNode;
2087
+ children?: react.ReactNode | Iterable<react.ReactNode>;
2088
2088
  css?: string | undefined;
2089
2089
  as?: keyof HTMLElementTagNameMap | react.ComponentType<any> | undefined;
2090
2090
  color?: _tenphi_tasty0.StyleValue<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined> | _tenphi_tasty0.StyleValueStateMap<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined>;
@@ -2493,7 +2493,7 @@ declare const HighlightText: react.ComponentType<{
2493
2493
  className?: string | undefined;
2494
2494
  role?: react.AriaRole | undefined;
2495
2495
  id?: string | undefined;
2496
- children?: react.ReactNode;
2496
+ children?: react.ReactNode | Iterable<react.ReactNode>;
2497
2497
  css?: string | undefined;
2498
2498
  as?: keyof HTMLElementTagNameMap | react.ComponentType<any> | undefined;
2499
2499
  color?: _tenphi_tasty0.StyleValue<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined> | _tenphi_tasty0.StyleValueStateMap<boolean | ((string & {}) | `#${string}` | `#${string}.0` | `#${string}.3` | `#${string}.7` | `#${string}.4` | `#${string}.1` | `#${string}.2` | `#${string}.5` | `#${string}.6` | `#${string}.8` | `#${string}.9` | `#${string}.00` | `#${string}.03` | `#${string}.07` | `#${string}.04` | `#${string}.01` | `#${string}.02` | `#${string}.05` | `#${string}.06` | `#${string}.08` | `#${string}.09` | `#${string}.30` | `#${string}.33` | `#${string}.37` | `#${string}.34` | `#${string}.31` | `#${string}.32` | `#${string}.35` | `#${string}.36` | `#${string}.38` | `#${string}.39` | `#${string}.70` | `#${string}.73` | `#${string}.77` | `#${string}.74` | `#${string}.71` | `#${string}.72` | `#${string}.75` | `#${string}.76` | `#${string}.78` | `#${string}.79` | `#${string}.40` | `#${string}.43` | `#${string}.47` | `#${string}.44` | `#${string}.41` | `#${string}.42` | `#${string}.45` | `#${string}.46` | `#${string}.48` | `#${string}.49` | `#${string}.10` | `#${string}.13` | `#${string}.17` | `#${string}.14` | `#${string}.11` | `#${string}.12` | `#${string}.15` | `#${string}.16` | `#${string}.18` | `#${string}.19` | `#${string}.20` | `#${string}.23` | `#${string}.27` | `#${string}.24` | `#${string}.21` | `#${string}.22` | `#${string}.25` | `#${string}.26` | `#${string}.28` | `#${string}.29` | `#${string}.50` | `#${string}.53` | `#${string}.57` | `#${string}.54` | `#${string}.51` | `#${string}.52` | `#${string}.55` | `#${string}.56` | `#${string}.58` | `#${string}.59` | `#${string}.60` | `#${string}.63` | `#${string}.67` | `#${string}.64` | `#${string}.61` | `#${string}.62` | `#${string}.65` | `#${string}.66` | `#${string}.68` | `#${string}.69` | `#${string}.80` | `#${string}.83` | `#${string}.87` | `#${string}.84` | `#${string}.81` | `#${string}.82` | `#${string}.85` | `#${string}.86` | `#${string}.88` | `#${string}.89` | `#${string}.90` | `#${string}.93` | `#${string}.97` | `#${string}.94` | `#${string}.91` | `#${string}.92` | `#${string}.95` | `#${string}.96` | `#${string}.98` | `#${string}.99` | `#${string}.100` | `rgb(${string})` | `hsl(${string})` | `okhsl(${string})` | `oklch(${string})`) | undefined>;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { TEXT_PROP_MAP, _Text } from "../Text.js";
4
4
  import { highlightText } from "../highlightText.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { TEXT_PROP_MAP } from "./Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,9 +1,10 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
5
5
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
6
6
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
7
+ import { useI18n } from "../../../i18n/useI18n.js";
7
8
  import { DirectionIcon } from "../../../icons/DirectionIcon.js";
8
9
  import { MoreIcon } from "../../../icons/MoreIcon.js";
9
10
  import { _MenuTrigger } from "../../actions/Menu/MenuTrigger.js";
@@ -25,6 +26,7 @@ function isMenuEmpty(menu) {
25
26
  return Children.toArray(menu).length === 0;
26
27
  }
27
28
  function TreeNodeInner(props) {
29
+ const { t } = useI18n();
28
30
  const { node, data, state, isCheckable, isExpanded, isIndeterminate, isChecked, isLoading, onToggleChecked, size, itemProps, rowStyles, virtualStyle, virtualRef, virtualIndex, menu: treeMenu, contextMenu: treeContextMenu, onAction: treeOnAction, menuTriggerProps, menuProps } = props;
29
31
  const rowRef = useRef(null);
30
32
  const { rowProps, gridCellProps, expandButtonProps, isPressed } = useTreeItem({ node }, state, rowRef);
@@ -159,7 +161,7 @@ function TreeNodeInner(props) {
159
161
  children: [/* @__PURE__ */ jsx(ItemAction, {
160
162
  tabIndex: -1,
161
163
  icon: /* @__PURE__ */ jsx(MoreIcon, {}),
162
- "aria-label": "Actions",
164
+ "aria-label": t("tree.actions", "Actions"),
163
165
  ...menuTriggerProps
164
166
  }), /* @__PURE__ */ jsx(__Menu, {
165
167
  ...menuProps,
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.js","names":["Menu","mergeProps","Checkbox","MenuTrigger"],"sources":["../../../../src/components/content/Tree/TreeNode.tsx"],"sourcesContent":["import { Children, memo, useMemo, useRef, useState } from 'react';\nimport { useHover, useTreeItem } from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { DirectionIcon, LoadingIcon, MoreIcon } from '../../../icons';\nimport { mergeProps, mergeRefs } from '../../../utils/react';\nimport { CubeItemActionProps, ItemAction } from '../../actions/ItemAction';\nimport { CubeMenuProps, Menu, MenuTrigger } from '../../actions/Menu';\nimport { useContextMenu } from '../../actions/use-context-menu';\nimport { Checkbox } from '../../fields/Checkbox/Checkbox';\n\nimport {\n TreeNodeCheckboxWrapper,\n TreeNodeRow,\n TreeNodeToggle,\n TreeNodeTogglePlaceholder,\n TreeRowItem,\n} from './styled';\n\nimport type { Key, Node } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type {\n CSSProperties,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n SyntheticEvent,\n} from 'react';\nimport type { TreeState } from 'react-stately';\nimport type {\n CubeTreeNodeData,\n TreeContextMenu,\n TreeItemProps,\n TreeNodeState,\n} from './types';\n\nconst stopPropagation = (e: SyntheticEvent) => {\n e.stopPropagation();\n};\n\n/** Check whether a `menu` ReactNode actually contains anything. */\nfunction isMenuEmpty(menu: ReactNode): boolean {\n if (menu === null || menu === undefined || menu === false) return true;\n return Children.toArray(menu).length === 0;\n}\n\nexport interface TreeNodeProps {\n node: Node<CubeTreeNodeData>;\n /** The original `CubeTreeNodeData` for this row, looked up by key. */\n data: CubeTreeNodeData;\n state: TreeState<CubeTreeNodeData>;\n\n /** Whether the tree as a whole renders checkboxes. */\n isCheckable: boolean;\n /** Whether this row is currently expanded. */\n isExpanded: boolean;\n /** Whether the row is in an indeterminate (half-checked) state. */\n isIndeterminate: boolean;\n /** Whether the row is fully checked. */\n isChecked: boolean;\n /** Whether `loadData` is currently fetching this row's children. */\n isLoading: boolean;\n\n /** Toggle this row's checkbox (cascades). */\n onToggleChecked: (key: string) => void;\n\n /** Row size passed to the underlying Item. */\n size?: string;\n\n /** Per-node Item customization (static object or callback). */\n itemProps?:\n | TreeItemProps\n | ((data: CubeTreeNodeData, state: TreeNodeState) => TreeItemProps);\n\n /** Styles applied to the visible row (`TreeRowItem`). */\n rowStyles?: Styles;\n\n /** Inline style for virtualizer absolute positioning. */\n virtualStyle?: CSSProperties;\n /** Ref callback from `@tanstack/react-virtual` to measure row height. */\n virtualRef?: (element: HTMLElement | null) => void;\n /** Virtual index for `data-index` attribute. */\n virtualIndex?: number;\n\n /** Tree-wide menu default (resolved against `data.menu`). */\n menu?:\n | ReactNode\n | ((data: CubeTreeNodeData, state: TreeNodeState) => ReactNode | null);\n /** Tree-wide `contextMenu` default. */\n contextMenu?: TreeContextMenu;\n /** Tree-wide `onAction` callback. */\n onAction?: (action: string, key: Key) => void;\n /** Forwarded to every per-row `MenuTrigger`. */\n menuTriggerProps?: Partial<CubeItemActionProps>;\n /** Forwarded to every per-row `Menu`. */\n menuProps?: Partial<CubeMenuProps<object>>;\n}\n\nfunction TreeNodeInner(props: TreeNodeProps) {\n const {\n node,\n data,\n state,\n isCheckable,\n isExpanded,\n isIndeterminate,\n isChecked,\n isLoading,\n onToggleChecked,\n size,\n itemProps,\n rowStyles,\n virtualStyle,\n virtualRef,\n virtualIndex,\n menu: treeMenu,\n contextMenu: treeContextMenu,\n onAction: treeOnAction,\n menuTriggerProps,\n menuProps,\n } = props;\n\n const rowRef = useRef<HTMLDivElement>(null);\n\n const { rowProps, gridCellProps, expandButtonProps, isPressed } = useTreeItem(\n { node },\n state,\n rowRef,\n );\n\n const isDisabled = state.disabledKeys.has(node.key);\n const isSelected = state.selectionManager.isSelected(node.key);\n\n // `useTreeItem` doesn't track hover; we need it for the `hovered` mod.\n const { hoverProps, isHovered } = useHover({ isDisabled });\n // React Aria's treegrid uses roving tabindex, so no `data-focused`\n // attribute lands on the row — mirror it as a mod manually.\n const isFocused =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n // For lazy rows with no children yet, still render a toggle unless\n // explicitly marked as leaf.\n const isLeaf =\n data.isLeaf === true || (data.isLeaf !== false && !node.hasChildNodes);\n const isRowCheckable = isCheckable && data.isCheckable !== false;\n\n const nodeState: TreeNodeState = {\n isExpanded,\n isSelected,\n isChecked,\n isIndeterminate,\n isLeaf,\n };\n\n // ---- Menu resolution (per-node override > tree-level) --------------------\n\n const effectiveMenuChildren: ReactNode =\n data.menu === null\n ? null\n : data.menu !== undefined\n ? data.menu\n : typeof treeMenu === 'function'\n ? treeMenu(data, nodeState)\n : treeMenu ?? null;\n const hasMenu = !isMenuEmpty(effectiveMenuChildren);\n\n const effectiveContextMenu: TreeContextMenu =\n data.contextMenu ?? treeContextMenu ?? false;\n // The menu is exposed only when the consumer opts in via\n // `contextMenu`. When `contextMenu` is `false` (default) we render\n // nothing, even if `menu` is provided — this matches the plan and\n // keeps default rows visually clean.\n const menuExposed =\n hasMenu &&\n (effectiveContextMenu === true || effectiveContextMenu === 'context-only');\n const contextMenuOnly = effectiveContextMenu === 'context-only';\n\n // Controlled state for menu trigger (enables keyboard opening with Shift+F10)\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const handleMenuAction = useEvent((action: Key) => {\n // Strip the \".$\" prefix that React adds via Children.toArray/map.\n const actionStr = String(action);\n const normalizedAction = actionStr.startsWith('.$')\n ? actionStr.slice(2)\n : actionStr;\n data.onAction?.(normalizedAction);\n treeOnAction?.(normalizedAction, node.key);\n // Forward to the consumer-supplied `menuProps.onAction` so users\n // who pass extra `Menu` props through `menuProps` still receive\n // the action stream alongside the tree-level callback.\n menuProps?.onAction?.(normalizedAction);\n });\n\n const rowContextMenu = useContextMenu<HTMLDivElement, CubeMenuProps<object>>(\n Menu,\n { placement: 'bottom start' },\n {\n ...menuProps,\n onAction: handleMenuAction,\n children: effectiveMenuChildren,\n },\n );\n\n // ---- Checkbox ------------------------------------------------------------\n\n const handleCheckboxChange = useEvent(() => {\n onToggleChecked(String(node.key));\n });\n\n const handleWrapperClick = useEvent((e: MouseEvent<HTMLElement>) => {\n e.stopPropagation();\n if (isDisabled || data.isCheckboxDisabled) return;\n // The inner <Checkbox> label toggles on direct click; skip to avoid a double toggle.\n if ((e.target as HTMLElement).closest('[data-qa=\"CheckboxWrapper\"]'))\n return;\n onToggleChecked(String(node.key));\n });\n\n // ---- Keyboard ------------------------------------------------------------\n\n // Composed keydown handler. Runs BEFORE `rowProps.onKeyDown` from\n // `useTreeItem` so we can short-circuit the default react-aria\n // behavior for our own shortcuts (Shift+F10 menu open, Space\n // checkbox toggle). Returns `true` when the event was handled and\n // react-aria's keydown must NOT run; returns `false` to chain to\n // react-aria's handler.\n const handleKeyDown = useEvent((e: KeyboardEvent) => {\n // Space toggles the checkbox first when checkable. We DON'T claim\n // the event (return `false`) so react-aria's onKeyDown still runs\n // afterwards and the focused row also selects — matching the\n // pre-refactor behavior when handlers were chained via\n // `mergeProps`. `preventDefault` is kept to suppress page scroll.\n if (\n e.key === ' ' &&\n isRowCheckable &&\n !isDisabled &&\n !data.isCheckboxDisabled\n ) {\n e.preventDefault();\n onToggleChecked(String(node.key));\n return false;\n }\n\n // Shift+F10 opens the row menu (standard accessibility shortcut).\n if (e.key === 'F10' && e.shiftKey && menuExposed) {\n e.preventDefault();\n e.stopPropagation();\n if (contextMenuOnly) {\n rowContextMenu.open();\n } else {\n setIsMenuOpen(true);\n }\n return true;\n }\n\n return false;\n });\n\n // Wrapper that delegates to react-aria's default keydown only when\n // our handler did not claim the event. Replaces (rather than\n // chains with) `rowProps.onKeyDown` so the order of handlers is\n // strictly: our shortcuts → react-aria default.\n const composedKeyDown = useEvent((e: KeyboardEvent<HTMLDivElement>) => {\n if (handleKeyDown(e)) return;\n rowProps.onKeyDown?.(e as unknown as globalThis.KeyboardEvent);\n });\n\n // ---- Mods ----------------------------------------------------------------\n\n const sharedMods = useMemo(\n () => ({\n checked: isChecked,\n indeterminate: isIndeterminate,\n expanded: isExpanded,\n loading: isLoading,\n leaf: isLeaf,\n 'has-checkbox': isRowCheckable,\n 'has-menu': menuExposed,\n }),\n [\n isChecked,\n isIndeterminate,\n isExpanded,\n isLoading,\n isLeaf,\n isRowCheckable,\n menuExposed,\n ],\n );\n\n const rowMods = useMemo(\n () => ({ ...sharedMods, disabled: isDisabled }),\n [sharedMods, isDisabled],\n );\n\n const itemMods = useMemo(\n () => ({\n ...sharedMods,\n focused: isFocused,\n hovered: isHovered,\n pressed: isPressed,\n }),\n [sharedMods, isFocused, isHovered, isPressed],\n );\n\n const rowStyle = useMemo<CSSProperties>(\n () => ({\n ['--tree-level' as keyof CSSProperties]: String(node.level ?? 0),\n ...virtualStyle,\n }),\n [node.level, virtualStyle],\n );\n\n // Only emit `aria-checked` when the tree is in checkable mode.\n const ariaChecked: 'mixed' | 'true' | 'false' | undefined = isRowCheckable\n ? isIndeterminate\n ? 'mixed'\n : isChecked\n ? 'true'\n : 'false'\n : undefined;\n\n // ---- Compose row props ---------------------------------------------------\n\n // Merge react-aria + hover props but EXCLUDE `onKeyDown` from the\n // chain — `composedKeyDown` already wraps `rowProps.onKeyDown` and\n // must run first so our Shift+F10 / Space-checkbox shortcuts can\n // short-circuit the default react-aria behavior.\n const finalRowProps = {\n ...mergeProps(rowProps, hoverProps),\n 'aria-checked': ariaChecked,\n onKeyDown: composedKeyDown,\n };\n\n // ---- Toggle (chevron) and checkbox slots --------------------------------\n\n // Leaf rows get a placeholder so sibling indents align.\n const toggleNode = isLeaf ? (\n <TreeNodeTogglePlaceholder aria-hidden data-element=\"Toggle\" />\n ) : (\n <TreeNodeToggle {...expandButtonProps} tabIndex={-1} data-element=\"Toggle\">\n {isLoading ? (\n <LoadingIcon />\n ) : (\n <DirectionIcon to={isExpanded ? 'bottom' : 'right'} />\n )}\n </TreeNodeToggle>\n );\n\n const checkboxNode = isRowCheckable ? (\n <TreeNodeCheckboxWrapper\n data-element=\"Checkbox\"\n role=\"presentation\"\n onClick={handleWrapperClick}\n onKeyDown={stopPropagation}\n >\n <Checkbox\n isSelected={isChecked}\n isIndeterminate={isIndeterminate}\n isDisabled={isDisabled || data.isCheckboxDisabled}\n aria-label={\n typeof data.title === 'string' ? data.title : String(node.key)\n }\n // @ts-expect-error AriaCheckboxProps loses `onChange` where InputDOMProps overlaps (react-types).\n onChange={handleCheckboxChange}\n />\n </TreeNodeCheckboxWrapper>\n ) : null;\n\n // ---- Resolve user-supplied per-node Item props --------------------------\n\n const resolvedItemProps =\n typeof itemProps === 'function' ? itemProps(data, nodeState) : itemProps;\n const {\n prefix: userPrefix,\n actions: userActions,\n ...restUserProps\n } = resolvedItemProps ?? {};\n\n const composedPrefix =\n checkboxNode || userPrefix ? (\n <>\n {checkboxNode}\n {userPrefix}\n </>\n ) : null;\n\n // ---- Built-in overflow `⋮` action ---------------------------------------\n\n const menuAction =\n menuExposed && !contextMenuOnly ? (\n <MenuTrigger isOpen={isMenuOpen} onOpenChange={setIsMenuOpen}>\n <ItemAction\n tabIndex={-1}\n icon={<MoreIcon />}\n aria-label=\"Actions\"\n {...menuTriggerProps}\n />\n <Menu {...menuProps} onAction={handleMenuAction}>\n {effectiveMenuChildren}\n </Menu>\n </MenuTrigger>\n ) : null;\n\n // Compose with user-supplied actions (user actions render first).\n const composedActions =\n userActions || menuAction ? (\n <>\n {userActions}\n {menuAction}\n </>\n ) : undefined;\n\n // ---- Refs / context-menu wiring -----------------------------------------\n\n // When the context menu is enabled for this row, attach the hook's\n // `targetRef` to the row so right-clicks land on the correct anchor.\n const refs = useMemo(() => {\n const list: Ref<HTMLDivElement>[] = [rowRef];\n if (virtualRef) list.push(virtualRef);\n if (menuExposed) list.push(rowContextMenu.targetRef);\n return mergeRefs(...list);\n }, [virtualRef, menuExposed, rowContextMenu.targetRef]);\n\n return (\n <TreeNodeRow\n {...finalRowProps}\n ref={refs}\n mods={rowMods}\n style={rowStyle}\n data-element=\"Row\"\n data-qa-key={String(node.key)}\n data-index={virtualIndex}\n >\n <TreeRowItem\n {...gridCellProps}\n {...restUserProps}\n size={size}\n isSelected={isSelected}\n isDisabled={isDisabled}\n mods={itemMods}\n icon={toggleNode}\n prefix={composedPrefix}\n actions={composedActions}\n styles={rowStyles}\n >\n {data.title}\n </TreeRowItem>\n {menuExposed && rowContextMenu.rendered}\n </TreeNodeRow>\n );\n}\n\nexport const TreeNode = memo(TreeNodeInner);\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeNode.js","names":["Menu","mergeProps","Checkbox","MenuTrigger"],"sources":["../../../../src/components/content/Tree/TreeNode.tsx"],"sourcesContent":["import { Children, memo, useMemo, useRef, useState } from 'react';\nimport { useHover, useTreeItem } from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { DirectionIcon, LoadingIcon, MoreIcon } from '../../../icons';\nimport { mergeProps, mergeRefs } from '../../../utils/react';\nimport { CubeItemActionProps, ItemAction } from '../../actions/ItemAction';\nimport { CubeMenuProps, Menu, MenuTrigger } from '../../actions/Menu';\nimport { useContextMenu } from '../../actions/use-context-menu';\nimport { Checkbox } from '../../fields/Checkbox/Checkbox';\n\nimport {\n TreeNodeCheckboxWrapper,\n TreeNodeRow,\n TreeNodeToggle,\n TreeNodeTogglePlaceholder,\n TreeRowItem,\n} from './styled';\n\nimport type { Key, Node } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type {\n CSSProperties,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n SyntheticEvent,\n} from 'react';\nimport type { TreeState } from 'react-stately';\nimport type {\n CubeTreeNodeData,\n TreeContextMenu,\n TreeItemProps,\n TreeNodeState,\n} from './types';\n\nconst stopPropagation = (e: SyntheticEvent) => {\n e.stopPropagation();\n};\n\n/** Check whether a `menu` ReactNode actually contains anything. */\nfunction isMenuEmpty(menu: ReactNode): boolean {\n if (menu === null || menu === undefined || menu === false) return true;\n return Children.toArray(menu).length === 0;\n}\n\nexport interface TreeNodeProps {\n node: Node<CubeTreeNodeData>;\n /** The original `CubeTreeNodeData` for this row, looked up by key. */\n data: CubeTreeNodeData;\n state: TreeState<CubeTreeNodeData>;\n\n /** Whether the tree as a whole renders checkboxes. */\n isCheckable: boolean;\n /** Whether this row is currently expanded. */\n isExpanded: boolean;\n /** Whether the row is in an indeterminate (half-checked) state. */\n isIndeterminate: boolean;\n /** Whether the row is fully checked. */\n isChecked: boolean;\n /** Whether `loadData` is currently fetching this row's children. */\n isLoading: boolean;\n\n /** Toggle this row's checkbox (cascades). */\n onToggleChecked: (key: string) => void;\n\n /** Row size passed to the underlying Item. */\n size?: string;\n\n /** Per-node Item customization (static object or callback). */\n itemProps?:\n | TreeItemProps\n | ((data: CubeTreeNodeData, state: TreeNodeState) => TreeItemProps);\n\n /** Styles applied to the visible row (`TreeRowItem`). */\n rowStyles?: Styles;\n\n /** Inline style for virtualizer absolute positioning. */\n virtualStyle?: CSSProperties;\n /** Ref callback from `@tanstack/react-virtual` to measure row height. */\n virtualRef?: (element: HTMLElement | null) => void;\n /** Virtual index for `data-index` attribute. */\n virtualIndex?: number;\n\n /** Tree-wide menu default (resolved against `data.menu`). */\n menu?:\n | ReactNode\n | ((data: CubeTreeNodeData, state: TreeNodeState) => ReactNode | null);\n /** Tree-wide `contextMenu` default. */\n contextMenu?: TreeContextMenu;\n /** Tree-wide `onAction` callback. */\n onAction?: (action: string, key: Key) => void;\n /** Forwarded to every per-row `MenuTrigger`. */\n menuTriggerProps?: Partial<CubeItemActionProps>;\n /** Forwarded to every per-row `Menu`. */\n menuProps?: Partial<CubeMenuProps<object>>;\n}\n\nfunction TreeNodeInner(props: TreeNodeProps) {\n const { t } = useI18n();\n const {\n node,\n data,\n state,\n isCheckable,\n isExpanded,\n isIndeterminate,\n isChecked,\n isLoading,\n onToggleChecked,\n size,\n itemProps,\n rowStyles,\n virtualStyle,\n virtualRef,\n virtualIndex,\n menu: treeMenu,\n contextMenu: treeContextMenu,\n onAction: treeOnAction,\n menuTriggerProps,\n menuProps,\n } = props;\n\n const rowRef = useRef<HTMLDivElement>(null);\n\n const { rowProps, gridCellProps, expandButtonProps, isPressed } = useTreeItem(\n { node },\n state,\n rowRef,\n );\n\n const isDisabled = state.disabledKeys.has(node.key);\n const isSelected = state.selectionManager.isSelected(node.key);\n\n // `useTreeItem` doesn't track hover; we need it for the `hovered` mod.\n const { hoverProps, isHovered } = useHover({ isDisabled });\n // React Aria's treegrid uses roving tabindex, so no `data-focused`\n // attribute lands on the row — mirror it as a mod manually.\n const isFocused =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n // For lazy rows with no children yet, still render a toggle unless\n // explicitly marked as leaf.\n const isLeaf =\n data.isLeaf === true || (data.isLeaf !== false && !node.hasChildNodes);\n const isRowCheckable = isCheckable && data.isCheckable !== false;\n\n const nodeState: TreeNodeState = {\n isExpanded,\n isSelected,\n isChecked,\n isIndeterminate,\n isLeaf,\n };\n\n // ---- Menu resolution (per-node override > tree-level) --------------------\n\n const effectiveMenuChildren: ReactNode =\n data.menu === null\n ? null\n : data.menu !== undefined\n ? data.menu\n : typeof treeMenu === 'function'\n ? treeMenu(data, nodeState)\n : treeMenu ?? null;\n const hasMenu = !isMenuEmpty(effectiveMenuChildren);\n\n const effectiveContextMenu: TreeContextMenu =\n data.contextMenu ?? treeContextMenu ?? false;\n // The menu is exposed only when the consumer opts in via\n // `contextMenu`. When `contextMenu` is `false` (default) we render\n // nothing, even if `menu` is provided — this matches the plan and\n // keeps default rows visually clean.\n const menuExposed =\n hasMenu &&\n (effectiveContextMenu === true || effectiveContextMenu === 'context-only');\n const contextMenuOnly = effectiveContextMenu === 'context-only';\n\n // Controlled state for menu trigger (enables keyboard opening with Shift+F10)\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const handleMenuAction = useEvent((action: Key) => {\n // Strip the \".$\" prefix that React adds via Children.toArray/map.\n const actionStr = String(action);\n const normalizedAction = actionStr.startsWith('.$')\n ? actionStr.slice(2)\n : actionStr;\n data.onAction?.(normalizedAction);\n treeOnAction?.(normalizedAction, node.key);\n // Forward to the consumer-supplied `menuProps.onAction` so users\n // who pass extra `Menu` props through `menuProps` still receive\n // the action stream alongside the tree-level callback.\n menuProps?.onAction?.(normalizedAction);\n });\n\n const rowContextMenu = useContextMenu<HTMLDivElement, CubeMenuProps<object>>(\n Menu,\n { placement: 'bottom start' },\n {\n ...menuProps,\n onAction: handleMenuAction,\n children: effectiveMenuChildren,\n },\n );\n\n // ---- Checkbox ------------------------------------------------------------\n\n const handleCheckboxChange = useEvent(() => {\n onToggleChecked(String(node.key));\n });\n\n const handleWrapperClick = useEvent((e: MouseEvent<HTMLElement>) => {\n e.stopPropagation();\n if (isDisabled || data.isCheckboxDisabled) return;\n // The inner <Checkbox> label toggles on direct click; skip to avoid a double toggle.\n if ((e.target as HTMLElement).closest('[data-qa=\"CheckboxWrapper\"]'))\n return;\n onToggleChecked(String(node.key));\n });\n\n // ---- Keyboard ------------------------------------------------------------\n\n // Composed keydown handler. Runs BEFORE `rowProps.onKeyDown` from\n // `useTreeItem` so we can short-circuit the default react-aria\n // behavior for our own shortcuts (Shift+F10 menu open, Space\n // checkbox toggle). Returns `true` when the event was handled and\n // react-aria's keydown must NOT run; returns `false` to chain to\n // react-aria's handler.\n const handleKeyDown = useEvent((e: KeyboardEvent) => {\n // Space toggles the checkbox first when checkable. We DON'T claim\n // the event (return `false`) so react-aria's onKeyDown still runs\n // afterwards and the focused row also selects — matching the\n // pre-refactor behavior when handlers were chained via\n // `mergeProps`. `preventDefault` is kept to suppress page scroll.\n if (\n e.key === ' ' &&\n isRowCheckable &&\n !isDisabled &&\n !data.isCheckboxDisabled\n ) {\n e.preventDefault();\n onToggleChecked(String(node.key));\n return false;\n }\n\n // Shift+F10 opens the row menu (standard accessibility shortcut).\n if (e.key === 'F10' && e.shiftKey && menuExposed) {\n e.preventDefault();\n e.stopPropagation();\n if (contextMenuOnly) {\n rowContextMenu.open();\n } else {\n setIsMenuOpen(true);\n }\n return true;\n }\n\n return false;\n });\n\n // Wrapper that delegates to react-aria's default keydown only when\n // our handler did not claim the event. Replaces (rather than\n // chains with) `rowProps.onKeyDown` so the order of handlers is\n // strictly: our shortcuts → react-aria default.\n const composedKeyDown = useEvent((e: KeyboardEvent<HTMLDivElement>) => {\n if (handleKeyDown(e)) return;\n rowProps.onKeyDown?.(e as unknown as globalThis.KeyboardEvent);\n });\n\n // ---- Mods ----------------------------------------------------------------\n\n const sharedMods = useMemo(\n () => ({\n checked: isChecked,\n indeterminate: isIndeterminate,\n expanded: isExpanded,\n loading: isLoading,\n leaf: isLeaf,\n 'has-checkbox': isRowCheckable,\n 'has-menu': menuExposed,\n }),\n [\n isChecked,\n isIndeterminate,\n isExpanded,\n isLoading,\n isLeaf,\n isRowCheckable,\n menuExposed,\n ],\n );\n\n const rowMods = useMemo(\n () => ({ ...sharedMods, disabled: isDisabled }),\n [sharedMods, isDisabled],\n );\n\n const itemMods = useMemo(\n () => ({\n ...sharedMods,\n focused: isFocused,\n hovered: isHovered,\n pressed: isPressed,\n }),\n [sharedMods, isFocused, isHovered, isPressed],\n );\n\n const rowStyle = useMemo<CSSProperties>(\n () => ({\n ['--tree-level' as keyof CSSProperties]: String(node.level ?? 0),\n ...virtualStyle,\n }),\n [node.level, virtualStyle],\n );\n\n // Only emit `aria-checked` when the tree is in checkable mode.\n const ariaChecked: 'mixed' | 'true' | 'false' | undefined = isRowCheckable\n ? isIndeterminate\n ? 'mixed'\n : isChecked\n ? 'true'\n : 'false'\n : undefined;\n\n // ---- Compose row props ---------------------------------------------------\n\n // Merge react-aria + hover props but EXCLUDE `onKeyDown` from the\n // chain — `composedKeyDown` already wraps `rowProps.onKeyDown` and\n // must run first so our Shift+F10 / Space-checkbox shortcuts can\n // short-circuit the default react-aria behavior.\n const finalRowProps = {\n ...mergeProps(rowProps, hoverProps),\n 'aria-checked': ariaChecked,\n onKeyDown: composedKeyDown,\n };\n\n // ---- Toggle (chevron) and checkbox slots --------------------------------\n\n // Leaf rows get a placeholder so sibling indents align.\n const toggleNode = isLeaf ? (\n <TreeNodeTogglePlaceholder aria-hidden data-element=\"Toggle\" />\n ) : (\n <TreeNodeToggle {...expandButtonProps} tabIndex={-1} data-element=\"Toggle\">\n {isLoading ? (\n <LoadingIcon />\n ) : (\n <DirectionIcon to={isExpanded ? 'bottom' : 'right'} />\n )}\n </TreeNodeToggle>\n );\n\n const checkboxNode = isRowCheckable ? (\n <TreeNodeCheckboxWrapper\n data-element=\"Checkbox\"\n role=\"presentation\"\n onClick={handleWrapperClick}\n onKeyDown={stopPropagation}\n >\n <Checkbox\n isSelected={isChecked}\n isIndeterminate={isIndeterminate}\n isDisabled={isDisabled || data.isCheckboxDisabled}\n aria-label={\n typeof data.title === 'string' ? data.title : String(node.key)\n }\n // @ts-expect-error AriaCheckboxProps loses `onChange` where InputDOMProps overlaps (react-types).\n onChange={handleCheckboxChange}\n />\n </TreeNodeCheckboxWrapper>\n ) : null;\n\n // ---- Resolve user-supplied per-node Item props --------------------------\n\n const resolvedItemProps =\n typeof itemProps === 'function' ? itemProps(data, nodeState) : itemProps;\n const {\n prefix: userPrefix,\n actions: userActions,\n ...restUserProps\n } = resolvedItemProps ?? {};\n\n const composedPrefix =\n checkboxNode || userPrefix ? (\n <>\n {checkboxNode}\n {userPrefix}\n </>\n ) : null;\n\n // ---- Built-in overflow `⋮` action ---------------------------------------\n\n const menuAction =\n menuExposed && !contextMenuOnly ? (\n <MenuTrigger isOpen={isMenuOpen} onOpenChange={setIsMenuOpen}>\n <ItemAction\n tabIndex={-1}\n icon={<MoreIcon />}\n aria-label={t('tree.actions', 'Actions')}\n {...menuTriggerProps}\n />\n <Menu {...menuProps} onAction={handleMenuAction}>\n {effectiveMenuChildren}\n </Menu>\n </MenuTrigger>\n ) : null;\n\n // Compose with user-supplied actions (user actions render first).\n const composedActions =\n userActions || menuAction ? (\n <>\n {userActions}\n {menuAction}\n </>\n ) : undefined;\n\n // ---- Refs / context-menu wiring -----------------------------------------\n\n // When the context menu is enabled for this row, attach the hook's\n // `targetRef` to the row so right-clicks land on the correct anchor.\n const refs = useMemo(() => {\n const list: Ref<HTMLDivElement>[] = [rowRef];\n if (virtualRef) list.push(virtualRef);\n if (menuExposed) list.push(rowContextMenu.targetRef);\n return mergeRefs(...list);\n }, [virtualRef, menuExposed, rowContextMenu.targetRef]);\n\n return (\n <TreeNodeRow\n {...finalRowProps}\n ref={refs}\n mods={rowMods}\n style={rowStyle}\n data-element=\"Row\"\n data-qa-key={String(node.key)}\n data-index={virtualIndex}\n >\n <TreeRowItem\n {...gridCellProps}\n {...restUserProps}\n size={size}\n isSelected={isSelected}\n isDisabled={isDisabled}\n mods={itemMods}\n icon={toggleNode}\n prefix={composedPrefix}\n actions={composedActions}\n styles={rowStyles}\n >\n {data.title}\n </TreeRowItem>\n {menuExposed && rowContextMenu.rendered}\n </TreeNodeRow>\n );\n}\n\nexport const TreeNode = memo(TreeNodeInner);\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-3e118e9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-6be6cbe | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import { Action } from "../../actions/Action/Action.js";
4
4
  import { tasty } from "@tenphi/tasty";