@cube-dev/ui-kit 0.0.0-canary-00718fb → 0.0.0-canary-837dfc4

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 (611) hide show
  1. package/es/_internal/hooks/index.js +1 -1
  2. package/es/_internal/hooks/use-chained-callback.js +1 -1
  3. package/es/_internal/hooks/use-debounced-value.js +1 -1
  4. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/es/_internal/hooks/use-effect-once.js +1 -1
  6. package/es/_internal/hooks/use-event.js +1 -1
  7. package/es/_internal/hooks/use-is-first-render.js +1 -1
  8. package/es/_internal/hooks/use-sync-ref.js +1 -1
  9. package/es/_internal/hooks/use-timer/index.js +1 -1
  10. package/es/_internal/hooks/use-timer/timer.js +1 -1
  11. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/es/_internal/hooks/use-update-effect.js +1 -1
  13. package/es/_internal/hooks/use-warn.js +1 -1
  14. package/es/_internal/index.js +1 -1
  15. package/es/components/Block.js +1 -1
  16. package/es/components/CollectionItem.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +1 -1
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Button/Button.js +1 -1
  24. package/es/components/actions/Button/index.js +1 -1
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  27. package/es/components/actions/CommandMenu/index.js +1 -1
  28. package/es/components/actions/CommandMenu/styled.js +1 -1
  29. package/es/components/actions/ItemAction/ItemAction.js +1 -1
  30. package/es/components/actions/ItemAction/index.js +1 -1
  31. package/es/components/actions/ItemActionContext.js +1 -1
  32. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  33. package/es/components/actions/ItemButton/index.js +1 -1
  34. package/es/components/actions/Link/Link.js +1 -1
  35. package/es/components/actions/Menu/Menu.js +1 -1
  36. package/es/components/actions/Menu/MenuItem.js +1 -1
  37. package/es/components/actions/Menu/MenuSection.js +1 -1
  38. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  39. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  40. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/es/components/actions/Menu/context.js +1 -1
  42. package/es/components/actions/Menu/index.js +1 -1
  43. package/es/components/actions/Menu/styled.js +1 -1
  44. package/es/components/actions/index.js +1 -1
  45. package/es/components/actions/use-action.js +1 -1
  46. package/es/components/actions/use-anchored-menu.js +1 -1
  47. package/es/components/actions/use-context-menu.js +1 -1
  48. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  49. package/es/components/content/Alert/Alert.js +1 -1
  50. package/es/components/content/Alert/index.js +1 -1
  51. package/es/components/content/Alert/types.js +1 -1
  52. package/es/components/content/Alert/use-alert.js +1 -1
  53. package/es/components/content/Avatar/Avatar.js +1 -1
  54. package/es/components/content/Badge/Badge.js +1 -1
  55. package/es/components/content/Card/Card.js +1 -1
  56. package/es/components/content/Content.js +1 -1
  57. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  58. package/es/components/content/CopyPasteBlock/index.js +1 -1
  59. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  60. package/es/components/content/CopySnippet/index.js +1 -1
  61. package/es/components/content/Disclosure/Disclosure.js +1 -1
  62. package/es/components/content/Disclosure/index.js +1 -1
  63. package/es/components/content/Divider.js +1 -1
  64. package/es/components/content/Footer.js +1 -1
  65. package/es/components/content/Header.js +1 -1
  66. package/es/components/content/HotKeys/HotKeys.js +1 -1
  67. package/es/components/content/HotKeys/index.js +1 -1
  68. package/es/components/content/Item/Item.js +11 -7
  69. package/es/components/content/Item/index.js +1 -1
  70. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  71. package/es/components/content/ItemBadge/index.js +1 -1
  72. package/es/components/content/Layout/GridLayout.js +1 -1
  73. package/es/components/content/Layout/Layout.js +1 -1
  74. package/es/components/content/Layout/LayoutBlock.js +1 -1
  75. package/es/components/content/Layout/LayoutCenter.js +1 -1
  76. package/es/components/content/Layout/LayoutContainer.js +1 -1
  77. package/es/components/content/Layout/LayoutContent.js +1 -1
  78. package/es/components/content/Layout/LayoutContext.js +1 -1
  79. package/es/components/content/Layout/LayoutFlex.js +1 -1
  80. package/es/components/content/Layout/LayoutFooter.js +1 -1
  81. package/es/components/content/Layout/LayoutGrid.js +1 -1
  82. package/es/components/content/Layout/LayoutHeader.js +1 -1
  83. package/es/components/content/Layout/LayoutPane.js +1 -1
  84. package/es/components/content/Layout/LayoutPanel.js +1 -1
  85. package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
  86. package/es/components/content/Layout/LayoutToolbar.js +1 -1
  87. package/es/components/content/Layout/hooks/useTinyScrollbar.js +13 -1
  88. package/es/components/content/Layout/index.js +1 -1
  89. package/es/components/content/Layout/utils.js +1 -1
  90. package/es/components/content/List/SectionHeading.js +1 -1
  91. package/es/components/content/List/index.js +1 -1
  92. package/es/components/content/Paragraph.js +1 -1
  93. package/es/components/content/Placeholder/Placeholder.js +1 -1
  94. package/es/components/content/PrismCode/PrismCode.js +1 -1
  95. package/es/components/content/PrismCode/prismSetup.js +1 -1
  96. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  97. package/es/components/content/Result/Result.js +1 -1
  98. package/es/components/content/Skeleton/Skeleton.js +1 -1
  99. package/es/components/content/Tag/Tag.js +1 -1
  100. package/es/components/content/Text.js +1 -1
  101. package/es/components/content/TextItem/TextItem.js +1 -1
  102. package/es/components/content/TextItem/index.js +1 -1
  103. package/es/components/content/Title.js +1 -1
  104. package/es/components/content/highlightText.js +1 -1
  105. package/es/components/content/use-auto-tooltip.js +1 -1
  106. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  107. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  108. package/es/components/fields/Checkbox/context.js +1 -1
  109. package/es/components/fields/Checkbox/index.js +1 -1
  110. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  111. package/es/components/fields/ComboBox/index.js +1 -1
  112. package/es/components/fields/DatePicker/DateInput.js +1 -1
  113. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  114. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  115. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  116. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  119. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  120. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  121. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  122. package/es/components/fields/DatePicker/index.js +1 -1
  123. package/es/components/fields/DatePicker/intl.js +1 -1
  124. package/es/components/fields/DatePicker/parseDate.js +1 -1
  125. package/es/components/fields/DatePicker/props.js +1 -1
  126. package/es/components/fields/DatePicker/types.js +1 -1
  127. package/es/components/fields/DatePicker/utils.js +1 -1
  128. package/es/components/fields/FileInput/FileInput.js +1 -1
  129. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  130. package/es/components/fields/FilterListBox/index.js +1 -1
  131. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  132. package/es/components/fields/FilterPicker/index.js +1 -1
  133. package/es/components/fields/Input/Input.js +1 -1
  134. package/es/components/fields/Input/index.js +1 -1
  135. package/es/components/fields/ListBox/ListBox.js +1 -1
  136. package/es/components/fields/ListBox/index.js +1 -1
  137. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  138. package/es/components/fields/NumberInput/StepButton.js +1 -1
  139. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  140. package/es/components/fields/Picker/Picker.js +1 -1
  141. package/es/components/fields/Picker/index.js +1 -1
  142. package/es/components/fields/RadioGroup/Radio.js +1 -1
  143. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  144. package/es/components/fields/RadioGroup/context.js +1 -1
  145. package/es/components/fields/RadioGroup/index.js +1 -1
  146. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  147. package/es/components/fields/SearchInput/index.js +1 -1
  148. package/es/components/fields/Select/Select.js +1 -1
  149. package/es/components/fields/Select/index.js +1 -1
  150. package/es/components/fields/Slider/Gradation.js +1 -1
  151. package/es/components/fields/Slider/Header.js +1 -1
  152. package/es/components/fields/Slider/RangeSlider.js +1 -1
  153. package/es/components/fields/Slider/Slider.js +1 -1
  154. package/es/components/fields/Slider/SliderBase.js +1 -1
  155. package/es/components/fields/Slider/SliderInput.js +1 -1
  156. package/es/components/fields/Slider/SliderThumb.js +1 -1
  157. package/es/components/fields/Slider/SliderTrack.js +1 -1
  158. package/es/components/fields/Slider/elements.js +1 -1
  159. package/es/components/fields/Slider/index.js +1 -1
  160. package/es/components/fields/Slider/types.js +1 -1
  161. package/es/components/fields/Switch/Switch.js +1 -1
  162. package/es/components/fields/Switch/index.js +1 -1
  163. package/es/components/fields/TextArea/TextArea.js +1 -1
  164. package/es/components/fields/TextArea/index.js +1 -1
  165. package/es/components/fields/TextInput/TextInput.js +1 -1
  166. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  167. package/es/components/fields/TextInput/index.js +1 -1
  168. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  169. package/es/components/fields/TextInputMapper/index.js +1 -1
  170. package/es/components/fields/index.js +1 -1
  171. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  172. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  173. package/es/components/form/FieldWrapper/index.js +1 -1
  174. package/es/components/form/FieldWrapper/types.js +1 -1
  175. package/es/components/form/Form/Field.js +1 -1
  176. package/es/components/form/Form/Form.js +1 -1
  177. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  178. package/es/components/form/Form/ResetButton/index.js +1 -1
  179. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  180. package/es/components/form/Form/SubmitButton/index.js +1 -1
  181. package/es/components/form/Form/SubmitError.js +1 -1
  182. package/es/components/form/Form/index.js +1 -1
  183. package/es/components/form/Form/types.js +1 -1
  184. package/es/components/form/Form/use-field/index.js +1 -1
  185. package/es/components/form/Form/use-field/types.js +1 -1
  186. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  187. package/es/components/form/Form/use-field/use-field.js +1 -1
  188. package/es/components/form/Form/use-form.js +1 -1
  189. package/es/components/form/Form/validation.js +1 -1
  190. package/es/components/form/Label.js +1 -1
  191. package/es/components/form/index.js +1 -1
  192. package/es/components/form/wrapper.js +1 -1
  193. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  194. package/es/components/helpers/DisplayTransition/index.js +1 -1
  195. package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
  196. package/es/components/helpers/index.js +1 -1
  197. package/es/components/layout/Flex.js +1 -1
  198. package/es/components/layout/Flow.js +1 -1
  199. package/es/components/layout/Grid.js +1 -1
  200. package/es/components/layout/Panel.js +1 -1
  201. package/es/components/layout/Prefix.js +1 -1
  202. package/es/components/layout/ResizablePanel.js +1 -1
  203. package/es/components/layout/Space.js +1 -1
  204. package/es/components/layout/Suffix.js +1 -1
  205. package/es/components/navigation/Tabs/Tabs.js +894 -0
  206. package/es/components/navigation/Tabs/index.js +10 -0
  207. package/es/components/navigation/index.js +10 -0
  208. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  209. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  210. package/es/components/other/Calendar/Calendar.js +1 -1
  211. package/es/components/other/Calendar/CalendarCell.js +1 -1
  212. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  213. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  214. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  215. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  216. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  217. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  218. package/es/components/overlays/AlertDialog/index.js +1 -1
  219. package/es/components/overlays/AlertDialog/types.js +1 -1
  220. package/es/components/overlays/Dialog/Dialog.js +1 -1
  221. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  222. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  223. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  224. package/es/components/overlays/Dialog/context.js +1 -1
  225. package/es/components/overlays/Dialog/index.js +1 -1
  226. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  227. package/es/components/overlays/Modal/Modal.js +1 -1
  228. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  229. package/es/components/overlays/Modal/Overlay.js +1 -1
  230. package/es/components/overlays/Modal/Popover.js +1 -1
  231. package/es/components/overlays/Modal/Tray.js +1 -1
  232. package/es/components/overlays/Modal/Underlay.js +1 -1
  233. package/es/components/overlays/Modal/index.js +1 -1
  234. package/es/components/overlays/Modal/types.js +1 -1
  235. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  236. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  237. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  238. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  239. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  240. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  241. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  242. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  243. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  249. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  250. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  253. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  254. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  255. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  256. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  257. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  258. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  259. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  260. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  261. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  263. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  265. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  266. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  267. package/es/components/overlays/NewNotifications/index.js +1 -1
  268. package/es/components/overlays/NewNotifications/types.js +1 -1
  269. package/es/components/overlays/Notification/Notification.js +1 -1
  270. package/es/components/overlays/OverlayWrapper.js +1 -1
  271. package/es/components/overlays/Toasts/Toast.js +1 -1
  272. package/es/components/overlays/Toasts/index.js +1 -1
  273. package/es/components/overlays/Toasts/types.js +1 -1
  274. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  275. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  276. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  277. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  278. package/es/components/overlays/Tooltip/context.js +1 -1
  279. package/es/components/overlays/Tooltip/index.js +1 -1
  280. package/es/components/portal/Portal.js +1 -1
  281. package/es/components/portal/PortalProvider.js +1 -1
  282. package/es/components/portal/index.js +1 -1
  283. package/es/components/portal/types.js +1 -1
  284. package/es/components/portal/usePortal.js +1 -1
  285. package/es/components/shared/InvalidIcon.js +1 -1
  286. package/es/components/shared/ValidIcon.js +1 -1
  287. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  288. package/es/components/status/LoadingAnimation/index.js +1 -1
  289. package/es/components/status/Spin/Cube.js +1 -1
  290. package/es/components/status/Spin/InternalSpinner.js +1 -1
  291. package/es/components/status/Spin/Spin.js +1 -1
  292. package/es/components/status/Spin/SpinsContainer.js +1 -1
  293. package/es/components/status/Spin/index.js +1 -1
  294. package/es/components/status/Spin/types.js +1 -1
  295. package/es/components/status/index.js +1 -1
  296. package/es/data/item-themes.js +1 -1
  297. package/es/data/themes.js +1 -1
  298. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  299. package/es/icons/AdjustmentsIcon.js +1 -1
  300. package/es/icons/AiIcon.js +1 -1
  301. package/es/icons/AreaChartIcon.js +1 -1
  302. package/es/icons/BackwardIcon.js +1 -1
  303. package/es/icons/BarChartIcon.js +1 -1
  304. package/es/icons/BellFilledIcon.js +1 -1
  305. package/es/icons/BellIcon.js +1 -1
  306. package/es/icons/BooleanIcon.js +1 -1
  307. package/es/icons/CalendarEditIcon.js +1 -1
  308. package/es/icons/CalendarIcon.js +1 -1
  309. package/es/icons/CaretDownIcon.js +1 -1
  310. package/es/icons/CaretUpIcon.js +1 -1
  311. package/es/icons/ChartAreaStackedIcon.js +1 -1
  312. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  313. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  314. package/es/icons/ChartBarGroupedIcon.js +1 -1
  315. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  316. package/es/icons/ChartBarLineIcon.js +1 -1
  317. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  318. package/es/icons/ChartBarStackedIcon.js +1 -1
  319. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  320. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  321. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  322. package/es/icons/ChartBoxPlotIcon.js +1 -1
  323. package/es/icons/ChartBubbleIcon.js +1 -1
  324. package/es/icons/ChartDonut2Icon.js +1 -1
  325. package/es/icons/ChartFunnelIcon.js +1 -1
  326. package/es/icons/ChartHeatmapIcon.js +1 -1
  327. package/es/icons/ChartKPIIcon.js +1 -1
  328. package/es/icons/ChartPie2Icon.js +1 -1
  329. package/es/icons/ChartScatterIcon.js +1 -1
  330. package/es/icons/CheckCircleFilledIcon.js +1 -1
  331. package/es/icons/CheckCircleIcon.js +1 -1
  332. package/es/icons/CheckIcon.js +1 -1
  333. package/es/icons/CircleFilledIcon.js +1 -1
  334. package/es/icons/ClearIcon.js +1 -1
  335. package/es/icons/CloseCircleFilledIcon.js +1 -1
  336. package/es/icons/CloseCircleIcon.js +1 -1
  337. package/es/icons/CloseIcon.js +1 -1
  338. package/es/icons/CodeIcon.js +1 -1
  339. package/es/icons/ColumnTotalIcon.js +1 -1
  340. package/es/icons/CopyIcon.js +1 -1
  341. package/es/icons/CountIcon.js +1 -1
  342. package/es/icons/CubeIcon.js +1 -1
  343. package/es/icons/CubePauseIcon.js +1 -1
  344. package/es/icons/CubePlayIcon.js +1 -1
  345. package/es/icons/CurrencyDollarIcon.js +1 -1
  346. package/es/icons/DangerIcon.js +1 -1
  347. package/es/icons/DashboardIcon.js +1 -1
  348. package/es/icons/DatabaseIcon.js +1 -1
  349. package/es/icons/DecimalDecreaseIcon.js +1 -1
  350. package/es/icons/DecimalIncreaseIcon.js +1 -1
  351. package/es/icons/DirectionIcon.js +1 -1
  352. package/es/icons/DonutIcon.js +1 -1
  353. package/es/icons/DownIcon.js +1 -1
  354. package/es/icons/EditIcon.js +1 -1
  355. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  356. package/es/icons/ExclamationCircleIcon.js +1 -1
  357. package/es/icons/ExclamationIcon.js +1 -1
  358. package/es/icons/EyeIcon.js +1 -1
  359. package/es/icons/EyeInvisibleIcon.js +1 -1
  360. package/es/icons/FilterIcon.js +1 -1
  361. package/es/icons/FolderFilledIcon.js +1 -1
  362. package/es/icons/FolderIcon.js +1 -1
  363. package/es/icons/FolderOpenFilledIcon.js +1 -1
  364. package/es/icons/FolderOpenIcon.js +1 -1
  365. package/es/icons/ForwardIcon.js +1 -1
  366. package/es/icons/HierarchyIcon.js +1 -1
  367. package/es/icons/HierarchyOpenIcon.js +1 -1
  368. package/es/icons/Icon.js +1 -1
  369. package/es/icons/InfoCircleIcon.js +1 -1
  370. package/es/icons/InfoIcon.js +1 -1
  371. package/es/icons/KeyIcon.js +1 -1
  372. package/es/icons/LeftIcon.js +1 -1
  373. package/es/icons/LineChartIcon.js +1 -1
  374. package/es/icons/LoadingIcon.js +1 -1
  375. package/es/icons/LockFilledIcon.js +1 -1
  376. package/es/icons/LockIcon.js +1 -1
  377. package/es/icons/MoreIcon.js +1 -1
  378. package/es/icons/NotAllowedIcon.js +1 -1
  379. package/es/icons/Number123Icon.js +1 -1
  380. package/es/icons/NumberIcon.js +1 -1
  381. package/es/icons/PauseCircleFilledIcon.js +1 -1
  382. package/es/icons/PauseCircleIcon.js +1 -1
  383. package/es/icons/PauseIcon.js +1 -1
  384. package/es/icons/PercentageIcon.js +1 -1
  385. package/es/icons/PieChartIcon.js +1 -1
  386. package/es/icons/PlayCircleIcon.js +1 -1
  387. package/es/icons/PlayIcon.js +1 -1
  388. package/es/icons/PlusIcon.js +1 -1
  389. package/es/icons/ProgressBarIcon.js +1 -1
  390. package/es/icons/ReloadIcon.js +1 -1
  391. package/es/icons/ReportIcon.js +1 -1
  392. package/es/icons/ReturnIcon.js +1 -1
  393. package/es/icons/RightIcon.js +1 -1
  394. package/es/icons/RowTotalsIcon.js +1 -1
  395. package/es/icons/SchemeIcon.js +1 -1
  396. package/es/icons/SearchIcon.js +1 -1
  397. package/es/icons/SemanticQueryIcon.js +1 -1
  398. package/es/icons/SettingsIcon.js +1 -1
  399. package/es/icons/ShieldFilledIcon.js +1 -1
  400. package/es/icons/ShieldIcon.js +1 -1
  401. package/es/icons/SlashIcon.js +1 -1
  402. package/es/icons/SparklesIcon.js +1 -1
  403. package/es/icons/SqlIcon.js +1 -1
  404. package/es/icons/StatsIcon.js +1 -1
  405. package/es/icons/StopIcon.js +1 -1
  406. package/es/icons/StringIcon.js +1 -1
  407. package/es/icons/SubtotalsIcon.js +1 -1
  408. package/es/icons/SwitchIcon.js +1 -1
  409. package/es/icons/TableIcon.js +1 -1
  410. package/es/icons/ThumbsDownIcon.js +1 -1
  411. package/es/icons/ThumbsUpIcon.js +1 -1
  412. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  413. package/es/icons/ThunderboltFilledIcon.js +1 -1
  414. package/es/icons/ThunderboltIcon.js +1 -1
  415. package/es/icons/TimeIcon.js +1 -1
  416. package/es/icons/TrashIcon.js +1 -1
  417. package/es/icons/UnlockIcon.js +1 -1
  418. package/es/icons/UpIcon.js +1 -1
  419. package/es/icons/UserGroupIcon.js +1 -1
  420. package/es/icons/UserIcon.js +1 -1
  421. package/es/icons/UserLockIcon.js +1 -1
  422. package/es/icons/ViewIcon.js +1 -1
  423. package/es/icons/WarningFilledIcon.js +1 -1
  424. package/es/icons/WarningIcon.js +1 -1
  425. package/es/icons/index.js +1 -1
  426. package/es/icons/wrap-icon.js +1 -1
  427. package/es/index.js +3 -1
  428. package/es/provider.js +1 -1
  429. package/es/providers/TrackingProvider.js +1 -1
  430. package/es/providers/navigation.types.js +1 -1
  431. package/es/providers/navigationAdapter.default.js +1 -1
  432. package/es/services/notification.js +1 -1
  433. package/es/shared/form.js +1 -1
  434. package/es/shared/index.js +1 -1
  435. package/es/stories/Form.legacy-stories.js +1 -1
  436. package/es/stories/FormFieldArgs.js +1 -1
  437. package/es/stories/SimpleLayout.stories.js +1 -1
  438. package/es/stories/Tasty.stories.js +1 -1
  439. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  440. package/es/stories/components/DialogFormApp.js +1 -1
  441. package/es/stories/components/StyledButton.js +1 -1
  442. package/es/stories/lists/baseProps.js +1 -1
  443. package/es/stories/playground/PlaygroundEditor.js +1 -1
  444. package/es/stories/playground/PlaygroundLayout.js +1 -1
  445. package/es/stories/playground/PlaygroundOutput.js +1 -1
  446. package/es/stories/playground/PlaygroundPreview.js +1 -1
  447. package/es/stories/playground/components/Button.js +1 -1
  448. package/es/stories/playground/components/Card.js +1 -1
  449. package/es/stories/playground/components/ScrollProgress.js +1 -1
  450. package/es/stories/playground/examples.js +1 -1
  451. package/es/tasty/chunks/cacheKey.js +1 -1
  452. package/es/tasty/chunks/definitions.js +3 -3
  453. package/es/tasty/chunks/index.js +1 -1
  454. package/es/tasty/chunks/renderChunk.js +1 -1
  455. package/es/tasty/config.js +1 -1
  456. package/es/tasty/debug.js +1 -1
  457. package/es/tasty/hooks/index.js +3 -1
  458. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  459. package/es/tasty/hooks/useKeyframes.js +82 -0
  460. package/es/tasty/hooks/useProperty.js +100 -0
  461. package/es/tasty/hooks/useRawCSS.js +1 -1
  462. package/es/tasty/hooks/useStyles.js +15 -2
  463. package/es/tasty/index.js +2 -2
  464. package/es/tasty/injector/index.js +39 -1
  465. package/es/tasty/injector/injector.js +67 -16
  466. package/es/tasty/injector/sheet-manager.js +2 -2
  467. package/es/tasty/injector/types.js +1 -1
  468. package/es/tasty/keyframes/index.js +1 -1
  469. package/es/tasty/parser/classify.js +15 -1
  470. package/es/tasty/parser/const.js +1 -1
  471. package/es/tasty/parser/lru.js +1 -1
  472. package/es/tasty/parser/parser.js +1 -1
  473. package/es/tasty/parser/tokenizer.js +1 -1
  474. package/es/tasty/parser/types.js +1 -1
  475. package/es/tasty/pipeline/conditions.js +1 -1
  476. package/es/tasty/pipeline/exclusive.js +1 -1
  477. package/es/tasty/pipeline/index.js +1 -1
  478. package/es/tasty/pipeline/materialize.js +1 -1
  479. package/es/tasty/pipeline/parseStateKey.js +1 -1
  480. package/es/tasty/pipeline/simplify.js +1 -1
  481. package/es/tasty/plugins/index.js +1 -1
  482. package/es/tasty/plugins/okhsl-plugin.js +1 -1
  483. package/es/tasty/plugins/types.js +1 -1
  484. package/es/tasty/properties/index.js +211 -0
  485. package/es/tasty/states/index.js +8 -2
  486. package/es/tasty/static/index.js +1 -1
  487. package/es/tasty/static/tastyStatic.js +1 -1
  488. package/es/tasty/static/types.js +1 -1
  489. package/es/tasty/styles/align.js +1 -1
  490. package/es/tasty/styles/border.js +114 -20
  491. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  492. package/es/tasty/styles/color.js +1 -1
  493. package/es/tasty/styles/createStyle.js +1 -1
  494. package/es/tasty/styles/dimension.js +1 -1
  495. package/es/tasty/styles/display.js +1 -1
  496. package/es/tasty/styles/fade.js +46 -13
  497. package/es/tasty/styles/fill.js +1 -1
  498. package/es/tasty/styles/flow.js +1 -1
  499. package/es/tasty/styles/font.js +1 -1
  500. package/es/tasty/styles/fontStyle.js +1 -1
  501. package/es/tasty/styles/gap.js +1 -1
  502. package/es/tasty/styles/groupRadius.js +1 -1
  503. package/es/tasty/styles/height.js +1 -1
  504. package/es/tasty/styles/index.js +1 -1
  505. package/es/tasty/styles/inset.js +1 -1
  506. package/es/tasty/styles/justify.js +1 -1
  507. package/es/tasty/styles/list.js +1 -1
  508. package/es/tasty/styles/margin.js +1 -1
  509. package/es/tasty/styles/outline.js +1 -1
  510. package/es/tasty/styles/padding.js +1 -1
  511. package/es/tasty/styles/place.js +1 -1
  512. package/es/tasty/styles/predefined.js +1 -1
  513. package/es/tasty/styles/preset.js +1 -1
  514. package/es/tasty/styles/radius.js +1 -1
  515. package/es/tasty/styles/reset.js +1 -1
  516. package/es/tasty/styles/scrollbar.js +1 -1
  517. package/es/tasty/styles/shadow.js +1 -1
  518. package/es/tasty/styles/styledScrollbar.js +1 -1
  519. package/es/tasty/styles/transition.js +1 -1
  520. package/es/tasty/styles/types.js +1 -1
  521. package/es/tasty/styles/width.js +1 -1
  522. package/es/tasty/tasty.js +94 -113
  523. package/es/tasty/types.js +1 -1
  524. package/es/tasty/utils/cache-wrapper.js +1 -1
  525. package/es/tasty/utils/case-converter.js +1 -1
  526. package/es/tasty/utils/colors.js +1 -1
  527. package/es/tasty/utils/dotize.js +1 -1
  528. package/es/tasty/utils/filterBaseProps.js +1 -1
  529. package/es/tasty/utils/getDisplayName.js +1 -1
  530. package/es/tasty/utils/isDevEnv.js +1 -1
  531. package/es/tasty/utils/mergeStyles.js +1 -1
  532. package/es/tasty/utils/modAttrs.js +1 -1
  533. package/es/tasty/utils/processTokens.js +1 -1
  534. package/es/tasty/utils/string.js +1 -1
  535. package/es/tasty/utils/styles.js +1 -1
  536. package/es/tasty/utils/typography.js +1 -1
  537. package/es/tasty/utils/warnings.js +1 -1
  538. package/es/tasty/zero/babel.js +1 -1
  539. package/es/tasty/zero/css-writer.js +1 -1
  540. package/es/tasty/zero/extractor.js +1 -1
  541. package/es/tasty/zero/index.js +1 -1
  542. package/es/tasty/zero/next.js +1 -1
  543. package/es/tokens/base.js +5 -1
  544. package/es/tokens/colors.js +1 -1
  545. package/es/tokens/index.js +1 -1
  546. package/es/tokens/layout.js +1 -1
  547. package/es/tokens/shadows.js +1 -1
  548. package/es/tokens/sizes.js +1 -1
  549. package/es/tokens/spacing.js +1 -1
  550. package/es/tokens/typography.js +1 -1
  551. package/es/utils/ResizeSensor.js +1 -1
  552. package/es/utils/index.js +1 -1
  553. package/es/utils/modules.js +1 -1
  554. package/es/utils/promise.js +1 -1
  555. package/es/utils/raf.js +1 -1
  556. package/es/utils/random.js +1 -1
  557. package/es/utils/range.js +1 -1
  558. package/es/utils/react/RenderCache.js +1 -1
  559. package/es/utils/react/Slots.js +1 -1
  560. package/es/utils/react/chain.js +1 -1
  561. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  562. package/es/utils/react/index.js +1 -1
  563. package/es/utils/react/interactions.js +1 -1
  564. package/es/utils/react/isTextOnly.js +1 -1
  565. package/es/utils/react/mapProps.js +1 -1
  566. package/es/utils/react/mergeProps.js +1 -1
  567. package/es/utils/react/nullableValue.js +1 -1
  568. package/es/utils/react/resolveIcon.js +1 -1
  569. package/es/utils/react/sharedStore.js +1 -1
  570. package/es/utils/react/useCombinedRefs.js +1 -1
  571. package/es/utils/react/useControlledFocusVisible.js +1 -1
  572. package/es/utils/react/useEventBus.js +1 -1
  573. package/es/utils/react/useId.js +1 -1
  574. package/es/utils/react/useIsDarwin.js +1 -1
  575. package/es/utils/react/useKeySymbols.js +1 -1
  576. package/es/utils/react/useLayoutEffect.js +1 -1
  577. package/es/utils/react/useLocalStorage.js +1 -1
  578. package/es/utils/react/useQaProps.js +1 -1
  579. package/es/utils/react/useViewportSize.js +1 -1
  580. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  581. package/es/utils/tree.js +1 -1
  582. package/es/utils/warnings.js +1 -1
  583. package/es/version.js +2 -2
  584. package/package.json +1 -1
  585. package/types/components/HiddenInput.d.ts +2 -1
  586. package/types/components/actions/Button/Button.d.ts +4 -2
  587. package/types/components/actions/CommandMenu/styled.d.ts +10 -5
  588. package/types/components/actions/Menu/styled.d.ts +514 -509
  589. package/types/components/content/Item/Item.d.ts +7 -0
  590. package/types/components/content/Layout/hooks/useTinyScrollbar.d.ts +6 -0
  591. package/types/components/content/List/SectionHeading.d.ts +168 -168
  592. package/types/components/content/Text.d.ts +1176 -1176
  593. package/types/components/fields/DatePicker/DatePickerElement.d.ts +168 -168
  594. package/types/components/fields/Select/Select.d.ts +2 -1
  595. package/types/components/fields/Slider/elements.d.ts +12 -6
  596. package/types/components/navigation/Tabs/Tabs.d.ts +236 -0
  597. package/types/components/navigation/Tabs/index.d.ts +2 -0
  598. package/types/components/navigation/index.d.ts +2 -0
  599. package/types/index.d.ts +1 -0
  600. package/types/tasty/hooks/index.d.ts +3 -0
  601. package/types/tasty/hooks/useKeyframes.d.ts +52 -0
  602. package/types/tasty/hooks/useProperty.d.ts +75 -0
  603. package/types/tasty/index.d.ts +2 -2
  604. package/types/tasty/injector/index.d.ts +57 -1
  605. package/types/tasty/injector/injector.d.ts +19 -7
  606. package/types/tasty/injector/types.d.ts +14 -2
  607. package/types/tasty/properties/index.d.ts +90 -0
  608. package/types/tasty/styles/border.d.ts +11 -3
  609. package/types/tasty/styles/fade.d.ts +1 -1
  610. package/types/tasty/styles/types.d.ts +42 -6
  611. package/types/tasty/tasty.d.ts +2 -1
@@ -0,0 +1,236 @@
1
+ import { Key } from '@react-types/shared';
2
+ import { ReactElement, ReactNode } from 'react';
3
+ import { BaseProps, Styles } from '../../../tasty';
4
+ import { CubeItemProps } from '../../content/Item';
5
+ /** Visual appearance type for tabs */
6
+ export type TabType = 'default' | 'file' | 'panel' | 'radio';
7
+ /** Tab size options */
8
+ export type TabSize = 'medium' | 'large';
9
+ /** Common props for panel rendering behavior */
10
+ interface PanelBehaviorProps {
11
+ /** If true, panel is rendered but hidden when not active. */
12
+ prerender?: boolean;
13
+ /** If true, once visited the panel stays in DOM. */
14
+ keepMounted?: boolean;
15
+ }
16
+ /** Common props for QA attributes */
17
+ interface QAProps {
18
+ /** QA selector attribute. */
19
+ qa?: string;
20
+ /** Additional QA value attribute. */
21
+ qaVal?: string;
22
+ }
23
+ /** Props from CubeItemProps that don't apply to Tab */
24
+ type OmittedItemProps = 'id' | 'type' | 'size' | 'theme' | 'shape' | 'icon' | 'rightIcon' | 'prefix' | 'suffix' | 'description' | 'descriptionPlacement' | 'descriptionProps' | 'tooltip' | 'defaultTooltipPlacement' | 'hotkeys' | 'keyboardShortcutProps' | 'loadingSlot' | 'isLoading' | 'labelProps' | 'labelRef' | 'level' | 'highlight' | 'highlightCaseSensitive' | 'highlightStyles' | 'variant' | 'htmlType' | 'isSelected' | 'preserveActionsSpace' | 'disableActionsFocus' | 'actions' | 'showActionsOnHover';
25
+ /** Common styling props for tabs - inherits style props from CubeItemProps */
26
+ interface TabStyleProps extends Omit<CubeItemProps, OmittedItemProps> {
27
+ /** Tab size. Large uses `t2m` preset, medium uses `t3m`. */
28
+ size?: TabSize;
29
+ /** Visual appearance type. */
30
+ type?: TabType;
31
+ /** Whether to show actions only on hover. */
32
+ showActionsOnHover?: boolean;
33
+ }
34
+ export interface CubeTabsProps extends BaseProps, PanelBehaviorProps {
35
+ /** Controlled active tab key. When provided, component is controlled. */
36
+ activeKey?: Key;
37
+ /** Initial active tab key for uncontrolled mode. */
38
+ defaultActiveKey?: Key;
39
+ /**
40
+ * Visual appearance type for tabs.
41
+ * - `default` - Standard tabs with selection indicator below (default)
42
+ * - `file` - File-style tabs with fill highlight on selection, delimiter between tabs
43
+ * - `panel` - Panel-style tabs with border bottom highlight on selection, delimiter between tabs
44
+ * - `radio` - Radio button style for tab selection
45
+ * @default 'default'
46
+ */
47
+ type?: TabType;
48
+ /** Tab size. Large uses `t2m` preset, medium uses `t3m`. */
49
+ size?: TabSize;
50
+ /** Accessible label for the tab list. */
51
+ label?: string;
52
+ /** Content rendered before the tab list. */
53
+ prefix?: ReactNode;
54
+ /** Content rendered after the tab list. */
55
+ suffix?: ReactNode;
56
+ /** Callback when active tab changes. */
57
+ onChange?: (key: Key) => void;
58
+ /** Callback when tab delete button is clicked. Presence enables delete buttons. */
59
+ onDelete?: (key: Key) => void;
60
+ /** Callback when a tab title is changed. Enables title editing on tabs with isEditable. */
61
+ onTitleChange?: (key: Key, newTitle: string) => void;
62
+ /** Whether to show tab actions only on hover. Can be overridden per-tab. */
63
+ showActionsOnHover?: boolean;
64
+ /** Custom tasty styles for the tab bar container. */
65
+ styles?: Styles;
66
+ /** QA selector attribute. */
67
+ qa?: string;
68
+ /** Tab components or Tabs.List with Tabs.Panel. */
69
+ children?: ReactNode;
70
+ /**
71
+ * Functional content renderer for optimized lazy evaluation.
72
+ * When provided, panel content is only evaluated for the active tab,
73
+ * while inactive tabs use cached content. This prevents expensive
74
+ * re-renders of tab content on every parent render.
75
+ *
76
+ * Use with tabs that have no children for maximum optimization.
77
+ *
78
+ * @param key - The key of the tab to render content for
79
+ * @returns Panel content for the given tab
80
+ *
81
+ * @example
82
+ * ```tsx
83
+ * <Tabs
84
+ * renderPanel={(key) => {
85
+ * switch (key) {
86
+ * case 'tab1': return <ExpensiveComponent />;
87
+ * case 'tab2': return <AnotherExpensive />;
88
+ * default: return null;
89
+ * }
90
+ * }}
91
+ * >
92
+ * <Tab key="tab1" title="Tab 1" />
93
+ * <Tab key="tab2" title="Tab 2" />
94
+ * </Tabs>
95
+ * ```
96
+ */
97
+ renderPanel?: (key: Key) => ReactNode;
98
+ /**
99
+ * Cache keys for individual panels. Enables caching for specified panels.
100
+ *
101
+ * By default (without cache keys), panels re-render on every Tabs render.
102
+ * When a panel has a non-undefined cache key defined, its content is cached
103
+ * and reused until the cache key changes.
104
+ *
105
+ * **Important:**
106
+ * - Cache keys must be primitive values (string, number, boolean, null).
107
+ * - Objects/arrays will cause cache misses on every render (reference comparison).
108
+ * - Symbol tab keys are not supported for caching (use string keys instead).
109
+ * - Setting a key to `undefined` is the same as not having it (no caching).
110
+ *
111
+ * @example
112
+ * ```tsx
113
+ * // Enable caching for specific panels with their dependencies as cache keys
114
+ * <Tabs
115
+ * renderPanel={(key) => <Panel data={data[key]} />}
116
+ * panelCacheKeys={{
117
+ * tab1: data.tab1.version, // Cached, invalidates when version changes
118
+ * tab2: data.tab2.version, // Cached, invalidates when version changes
119
+ * // tab3 has no cache key - re-renders on every Tabs render
120
+ * }}
121
+ * />
122
+ * ```
123
+ */
124
+ panelCacheKeys?: Record<string | number, string | number | boolean | null | undefined>;
125
+ }
126
+ export interface CubeTabProps extends TabStyleProps, PanelBehaviorProps {
127
+ /**
128
+ * Unique identifier for the tab. Used for activeKey matching.
129
+ * Auto-injected from the React `key` prop (converted to string).
130
+ * Note: All keys are internally converted to strings for React Aria compatibility.
131
+ */
132
+ id?: string;
133
+ /** Content displayed in the tab button. */
134
+ title: ReactNode;
135
+ /** Panel content rendered when tab is active. */
136
+ children?: ReactNode;
137
+ /** Disables the tab (cannot be selected). */
138
+ isDisabled?: boolean;
139
+ /** Actions to render in the tab (e.g., icons, buttons). Rendered before delete action if tab is deletable. */
140
+ actions?: ReactNode;
141
+ /** Whether the tab title can be edited. Requires onTitleChange on Tabs or Tab. */
142
+ isEditable?: boolean;
143
+ /** Callback when this tab's title is changed. Overrides parent's onTitleChange. */
144
+ onTitleChange?: (newTitle: string) => void;
145
+ }
146
+ export interface CubeTabPanelProps extends PanelBehaviorProps, QAProps {
147
+ /**
148
+ * Panel identifier. Must match a Tab's id.
149
+ * Auto-injected from the React `key` prop (converted to string).
150
+ */
151
+ id?: string;
152
+ /** Panel content. */
153
+ children?: ReactNode;
154
+ /** Custom tasty styles for the panel container. */
155
+ styles?: Styles;
156
+ }
157
+ export interface CubeTabListProps {
158
+ /** Tab components. */
159
+ children?: ReactNode;
160
+ }
161
+ /** Ref API for programmatic control of Tabs component */
162
+ export interface CubeTabsRef {
163
+ /** The root DOM element of the Tabs component */
164
+ element: HTMLDivElement | null;
165
+ /** Start editing a tab's title by its key */
166
+ startEditing: (key: Key) => void;
167
+ /** Cancel the current editing session */
168
+ cancelEditing: () => void;
169
+ }
170
+ declare function Tab(_props: CubeTabProps): ReactElement | null;
171
+ declare namespace Tab {
172
+ var displayName: string;
173
+ }
174
+ declare function TabPanel(_props: CubeTabPanelProps): ReactElement | null;
175
+ declare namespace TabPanel {
176
+ var displayName: string;
177
+ }
178
+ declare function TabList(_props: CubeTabListProps): ReactElement | null;
179
+ declare namespace TabList {
180
+ var displayName: string;
181
+ }
182
+ /**
183
+ * Tabs component for organizing content into multiple panels.
184
+ * Built with React Aria for full accessibility support.
185
+ *
186
+ * **Note:** Tab keys are internally converted to strings for React Aria compatibility.
187
+ * When using `activeKey`, `onChange`, etc., be aware that numeric keys will be
188
+ * converted to their string equivalents.
189
+ *
190
+ * @example
191
+ * // Simple usage
192
+ * <Tabs defaultActiveKey="tab1">
193
+ * <Tab key="tab1" title="Tab 1">Content 1</Tab>
194
+ * <Tab key="tab2" title="Tab 2">Content 2</Tab>
195
+ * </Tabs>
196
+ *
197
+ * @example
198
+ * // Tabs-only (no panels)
199
+ * <Tabs activeKey={activeTab} onChange={setActiveTab}>
200
+ * <Tab key="overview" title="Overview" />
201
+ * <Tab key="settings" title="Settings" />
202
+ * </Tabs>
203
+ *
204
+ * @example
205
+ * // Explicit panels
206
+ * <Tabs defaultActiveKey="tab1">
207
+ * <Tabs.List>
208
+ * <Tab key="tab1" title="Tab 1" />
209
+ * <Tab key="tab2" title="Tab 2" />
210
+ * </Tabs.List>
211
+ * <Tabs.Panel key="tab1">Content 1</Tabs.Panel>
212
+ * <Tabs.Panel key="tab2">Content 2</Tabs.Panel>
213
+ * </Tabs>
214
+ *
215
+ * @example
216
+ * // Optimized lazy rendering with renderPanel
217
+ * <Tabs
218
+ * defaultActiveKey="tab1"
219
+ * renderPanel={(key) => {
220
+ * switch (key) {
221
+ * case 'tab1': return <ExpensiveComponent />;
222
+ * case 'tab2': return <AnotherExpensive />;
223
+ * default: return null;
224
+ * }
225
+ * }}
226
+ * >
227
+ * <Tab key="tab1" title="Tab 1" />
228
+ * <Tab key="tab2" title="Tab 2" />
229
+ * </Tabs>
230
+ */
231
+ export declare const Tabs: import("react").ForwardRefExoticComponent<CubeTabsProps & import("react").RefAttributes<CubeTabsRef>> & {
232
+ Tab: typeof Tab;
233
+ List: typeof TabList;
234
+ Panel: typeof TabPanel;
235
+ };
236
+ export { Tab, TabList, TabPanel };
@@ -0,0 +1,2 @@
1
+ export { Tabs, Tab } from './Tabs';
2
+ export type { CubeTabsProps, CubeTabsRef, CubeTabProps, CubeTabPanelProps, CubeTabListProps, } from './Tabs';
@@ -0,0 +1,2 @@
1
+ export * from './Tabs';
2
+ export type { CubeTabsProps, CubeTabProps, CubeTabPanelProps, CubeTabListProps, } from './Tabs';
package/types/index.d.ts CHANGED
@@ -98,6 +98,7 @@ export type { CubeTooltipTriggerProps } from './components/overlays/Tooltip/Tool
98
98
  export { TooltipProvider } from './components/overlays/Tooltip/TooltipProvider';
99
99
  export type { CubeTooltipProviderProps } from './components/overlays/Tooltip/TooltipProvider';
100
100
  export * from './components/content/Alert';
101
+ export * from './components/navigation';
101
102
  export { FileTabs } from './components/organisms/FileTabs/FileTabs';
102
103
  export type { CubeFileTabProps } from './components/organisms/FileTabs/FileTabs';
103
104
  export { StatsCard } from './components/organisms/StatsCard/StatsCard';
@@ -2,3 +2,6 @@ export { useStyles } from './useStyles';
2
2
  export type { UseStylesOptions, UseStylesResult } from './useStyles';
3
3
  export { useGlobalStyles } from './useGlobalStyles';
4
4
  export { useRawCSS } from './useRawCSS';
5
+ export { useKeyframes } from './useKeyframes';
6
+ export { useProperty } from './useProperty';
7
+ export type { UsePropertyOptions } from './useProperty';
@@ -0,0 +1,52 @@
1
+ import { KeyframesSteps } from '../injector/types';
2
+ type UseKeyframesOptions = {
3
+ name?: string;
4
+ root?: Document | ShadowRoot;
5
+ };
6
+ /**
7
+ * Hook to inject CSS @keyframes and return the generated animation name.
8
+ * Handles keyframes injection with proper cleanup on unmount or dependency changes.
9
+ *
10
+ * @example Basic usage - steps object is the dependency
11
+ * ```tsx
12
+ * function MyComponent() {
13
+ * const bounce = useKeyframes({
14
+ * '0%': { transform: 'scale(1)' },
15
+ * '50%': { transform: 'scale(1.1)' },
16
+ * '100%': { transform: 'scale(1)' },
17
+ * });
18
+ *
19
+ * return <div style={{ animation: `${bounce} 1s infinite` }}>Bouncing</div>;
20
+ * }
21
+ * ```
22
+ *
23
+ * @example With custom name
24
+ * ```tsx
25
+ * function MyComponent() {
26
+ * const fadeIn = useKeyframes(
27
+ * { from: { opacity: 0 }, to: { opacity: 1 } },
28
+ * { name: 'fadeIn' }
29
+ * );
30
+ *
31
+ * return <div style={{ animation: `${fadeIn} 0.3s ease-out` }}>Fading in</div>;
32
+ * }
33
+ * ```
34
+ *
35
+ * @example Factory function with dependencies
36
+ * ```tsx
37
+ * function MyComponent({ scale }: { scale: number }) {
38
+ * const pulse = useKeyframes(
39
+ * () => ({
40
+ * '0%': { transform: 'scale(1)' },
41
+ * '100%': { transform: `scale(${scale})` },
42
+ * }),
43
+ * [scale]
44
+ * );
45
+ *
46
+ * return <div style={{ animation: `${pulse} 1s infinite` }}>Pulsing</div>;
47
+ * }
48
+ * ```
49
+ */
50
+ export declare function useKeyframes(steps: KeyframesSteps, options?: UseKeyframesOptions): string;
51
+ export declare function useKeyframes(factory: () => KeyframesSteps, deps: readonly unknown[], options?: UseKeyframesOptions): string;
52
+ export {};
@@ -0,0 +1,75 @@
1
+ export interface UsePropertyOptions {
2
+ /**
3
+ * CSS syntax string for the property (e.g., '<color>', '<length>', '<angle>').
4
+ * For color tokens (#name), this is auto-set to '<color>' and cannot be overridden.
5
+ * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax
6
+ */
7
+ syntax?: string;
8
+ /**
9
+ * Whether the property inherits from parent elements
10
+ * @default true
11
+ */
12
+ inherits?: boolean;
13
+ /**
14
+ * Initial value for the property.
15
+ * For color tokens (#name), this defaults to 'transparent' if not specified.
16
+ */
17
+ initialValue?: string | number;
18
+ /**
19
+ * Shadow root or document to inject into
20
+ */
21
+ root?: Document | ShadowRoot;
22
+ }
23
+ /**
24
+ * Hook to register a CSS @property custom property.
25
+ * This enables advanced features like animating custom properties.
26
+ *
27
+ * Note: @property rules are global and persistent once defined.
28
+ * The hook ensures the property is only registered once per root.
29
+ *
30
+ * Accepts tasty token syntax for the property name:
31
+ * - `$name` → defines `--name`
32
+ * - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
33
+ * - `--name` → defines `--name` (legacy format)
34
+ *
35
+ * @param name - The property token ($name, #name) or CSS property name (--name)
36
+ * @param options - Property configuration
37
+ *
38
+ * @example Basic property with token syntax
39
+ * ```tsx
40
+ * function Spinner() {
41
+ * useProperty('$rotation', {
42
+ * syntax: '<angle>',
43
+ * inherits: false,
44
+ * initialValue: '0deg',
45
+ * });
46
+ *
47
+ * return <div className="spinner" />;
48
+ * }
49
+ * ```
50
+ *
51
+ * @example Color property with token syntax (auto-sets syntax)
52
+ * ```tsx
53
+ * function MyComponent() {
54
+ * useProperty('#theme', {
55
+ * initialValue: 'red', // syntax: '<color>' is auto-set
56
+ * });
57
+ *
58
+ * // Now --theme-color can be animated with CSS transitions
59
+ * return <div style={{ '--theme-color': 'blue' } as React.CSSProperties}>Colored</div>;
60
+ * }
61
+ * ```
62
+ *
63
+ * @example Legacy format (still supported)
64
+ * ```tsx
65
+ * function ResizableBox() {
66
+ * useProperty('--box-size', {
67
+ * syntax: '<length>',
68
+ * initialValue: '100px',
69
+ * });
70
+ *
71
+ * return <div style={{ width: 'var(--box-size)' }} />;
72
+ * }
73
+ * ```
74
+ */
75
+ export declare function useProperty(name: string, options?: UsePropertyOptions): void;
@@ -1,6 +1,6 @@
1
1
  export { tasty, Element } from './tasty';
2
- export { useStyles, useGlobalStyles, useRawCSS } from './hooks';
3
- export type { UseStylesOptions, UseStylesResult } from './hooks';
2
+ export { useStyles, useGlobalStyles, useRawCSS, useProperty, useKeyframes, } from './hooks';
3
+ export type { UseStylesOptions, UseStylesResult, UsePropertyOptions, } from './hooks';
4
4
  export { configure, getConfig, isConfigLocked, hasStylesGenerated, resetConfig, isTestEnvironment, hasGlobalKeyframes, getGlobalKeyframes, } from './config';
5
5
  export type { TastyConfig } from './config';
6
6
  export { okhslPlugin, okhslFunc } from './plugins';
@@ -58,6 +58,62 @@ export declare function keyframes(steps: import('./types').KeyframesSteps, nameO
58
58
  root?: Document | ShadowRoot;
59
59
  name?: string;
60
60
  }): import('./types').KeyframesResult;
61
+ export interface PropertyOptions {
62
+ /**
63
+ * CSS syntax string for the property (e.g., '<color>', '<length>', '<angle>')
64
+ * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@property/syntax
65
+ */
66
+ syntax?: string;
67
+ /**
68
+ * Whether the property inherits from parent elements
69
+ * @default true
70
+ */
71
+ inherits?: boolean;
72
+ /**
73
+ * Initial value for the property
74
+ */
75
+ initialValue?: string | number;
76
+ /**
77
+ * Shadow root or document to inject into
78
+ */
79
+ root?: Document | ShadowRoot;
80
+ }
81
+ /**
82
+ * Define a CSS @property custom property.
83
+ * This enables advanced features like animating custom properties.
84
+ *
85
+ * Note: @property rules are global and persistent once defined.
86
+ * Re-registering the same property name is a no-op.
87
+ *
88
+ * @param name - The custom property name (must start with --)
89
+ * @param options - Property configuration
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * // Define a color property that can be animated
94
+ * property('--my-color', {
95
+ * syntax: '<color>',
96
+ * initialValue: 'red',
97
+ * });
98
+ *
99
+ * // Define an angle property
100
+ * property('--rotation', {
101
+ * syntax: '<angle>',
102
+ * inherits: false,
103
+ * initialValue: '0deg',
104
+ * });
105
+ * ```
106
+ */
107
+ export declare function property(name: string, options?: PropertyOptions): void;
108
+ /**
109
+ * Check if a CSS @property has already been defined
110
+ *
111
+ * @param name - The custom property name to check
112
+ * @param options - Options including root
113
+ */
114
+ export declare function isPropertyDefined(name: string, options?: {
115
+ root?: Document | ShadowRoot;
116
+ }): boolean;
61
117
  /**
62
118
  * Get CSS text from all sheets (for SSR)
63
119
  */
@@ -93,6 +149,6 @@ export declare function destroy(root?: Document | ShadowRoot): void;
93
149
  * Create a new isolated injector instance
94
150
  */
95
151
  export declare function createInjector(config?: Partial<StyleInjectorConfig>): StyleInjector;
96
- export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, CacheMetrics, RawCSSResult, } from './types';
152
+ export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, CacheMetrics, RawCSSResult, PropertyDefinition, } from './types';
97
153
  export { StyleInjector } from './injector';
98
154
  export { SheetManager } from './sheet-manager';
@@ -3,7 +3,7 @@
3
3
  * Eliminates CSS string parsing for better performance
4
4
  */
5
5
  import { StyleResult } from '../pipeline';
6
- import { GlobalInjectResult, InjectResult, KeyframesResult, KeyframesSteps, RawCSSResult, StyleInjectorConfig } from './types';
6
+ import { GlobalInjectResult, InjectResult, KeyframesResult, KeyframesSteps, PropertyDefinition, RawCSSResult, StyleInjectorConfig } from './types';
7
7
  export declare class StyleInjector {
8
8
  private sheetManager;
9
9
  private config;
@@ -82,19 +82,31 @@ export declare class StyleInjector {
82
82
  root?: Document | ShadowRoot;
83
83
  }): void;
84
84
  /**
85
- * Define a CSS @property custom property
85
+ * Define a CSS @property custom property.
86
+ *
87
+ * Accepts tasty token syntax for the property name:
88
+ * - `$name` → defines `--name`
89
+ * - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
90
+ * - `--name` → defines `--name` (legacy format)
91
+ *
86
92
  * Example:
87
93
  * @property --rotation { syntax: "<angle>"; inherits: false; initial-value: 45deg; }
94
+ *
88
95
  * Note: No caching or dispose — this defines a global property.
96
+ *
97
+ * If the same property is registered with different options, a warning is emitted
98
+ * but the original definition is preserved (CSS @property cannot be redefined).
89
99
  */
90
- property(name: string, options?: {
91
- syntax?: string;
92
- inherits?: boolean;
93
- initialValue?: string | number;
100
+ property(name: string, options?: PropertyDefinition & {
94
101
  root?: Document | ShadowRoot;
95
102
  }): void;
96
103
  /**
97
- * Check whether a given @property name was already injected by this injector
104
+ * Check whether a given @property name was already injected by this injector.
105
+ *
106
+ * Accepts tasty token syntax:
107
+ * - `$name` → checks `--name`
108
+ * - `#name` → checks `--name-color`
109
+ * - `--name` → checks `--name` (legacy format)
98
110
  */
99
111
  isPropertyDefined(name: string, options?: {
100
112
  root?: Document | ShadowRoot;
@@ -88,8 +88,8 @@ export interface RootRegistry {
88
88
  keyframesNameToContent: Map<string, string>;
89
89
  /** Counter for generating keyframes names like k0, k1, k2... */
90
90
  keyframesCounter: number;
91
- /** Set of injected @property names for tracking */
92
- injectedProperties: Set<string>;
91
+ /** Map of injected @property names to their normalized declarations for tracking */
92
+ injectedProperties: Map<string, string>;
93
93
  /** Global rules tracking for index adjustment */
94
94
  globalRules: Map<string, RuleInfo>;
95
95
  }
@@ -112,6 +112,18 @@ export interface KeyframesCacheEntry {
112
112
  refCount: number;
113
113
  info: KeyframesInfo;
114
114
  }
115
+ /**
116
+ * Definition for a CSS @property at-rule.
117
+ * Used to define custom property syntax, inheritance, and initial value.
118
+ */
119
+ export interface PropertyDefinition {
120
+ /** CSS syntax string (e.g., '<color>', '<angle>', '<number>') */
121
+ syntax?: string;
122
+ /** Whether the property inherits (default: true) */
123
+ inherits?: boolean;
124
+ /** Initial value for the property */
125
+ initialValue?: string | number;
126
+ }
115
127
  export interface RawCSSInfo {
116
128
  /** Unique identifier for this raw CSS block */
117
129
  id: string;
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Properties Utilities
3
+ *
4
+ * Utilities for extracting and processing CSS @property definitions in styles.
5
+ * Unlike keyframes, properties are permanent once registered and don't need cleanup.
6
+ *
7
+ * Property names use tasty token syntax:
8
+ * - `$name` for regular properties → `--name`
9
+ * - `#name` for color properties → `--name-color` (auto-sets syntax: '<color>')
10
+ */
11
+ import { PropertyDefinition } from '../injector/types';
12
+ import { Styles } from '../styles/types';
13
+ /**
14
+ * Validate a CSS custom property name (the part after --).
15
+ * Returns true if the name is valid for use as a CSS custom property.
16
+ */
17
+ export declare function isValidPropertyName(name: string): boolean;
18
+ /**
19
+ * Result of parsing a property token.
20
+ */
21
+ export interface ParsedPropertyToken {
22
+ /** The CSS custom property name (e.g., '--my-prop') */
23
+ cssName: string;
24
+ /** Whether this is a color property */
25
+ isColor: boolean;
26
+ /** Whether the token was valid */
27
+ isValid: boolean;
28
+ /** Error message if invalid */
29
+ error?: string;
30
+ }
31
+ /**
32
+ * Check if styles object has local @properties definition.
33
+ * Fast path: single property lookup.
34
+ */
35
+ export declare function hasLocalProperties(styles: Styles): boolean;
36
+ /**
37
+ * Extract local @properties from styles object.
38
+ * Returns null if no local properties (fast path).
39
+ */
40
+ export declare function extractLocalProperties(styles: Styles): Record<string, PropertyDefinition> | null;
41
+ /**
42
+ * Parse a property token name and return the CSS property name and whether it's a color.
43
+ * Supports tasty token syntax and validates the property name.
44
+ *
45
+ * Token formats:
46
+ * - `$name` → { cssName: '--name', isColor: false }
47
+ * - `#name` → { cssName: '--name-color', isColor: true }
48
+ * - `--name` → { cssName: '--name', isColor: false } (legacy, auto-detect color by suffix)
49
+ * - `name` → { cssName: '--name', isColor: false } (legacy)
50
+ *
51
+ * @param token - The property token to parse
52
+ * @returns Parsed result with cssName, isColor, isValid, and optional error
53
+ */
54
+ export declare function parsePropertyToken(token: string): ParsedPropertyToken;
55
+ /**
56
+ * Normalize a property name to the CSS custom property format.
57
+ *
58
+ * @deprecated Use parsePropertyToken instead for proper token handling
59
+ */
60
+ export declare function normalizePropertyName(name: string): string;
61
+ /**
62
+ * Normalize a property definition to a consistent string representation.
63
+ * Used for comparing definitions to detect changes/conflicts.
64
+ *
65
+ * Keys are sorted alphabetically to ensure consistent comparison:
66
+ * { inherits: true, syntax: '<color>' } === { syntax: '<color>', inherits: true }
67
+ */
68
+ export declare function normalizePropertyDefinition(def: PropertyDefinition): string;
69
+ /**
70
+ * Result of getEffectiveDefinition.
71
+ */
72
+ export interface EffectiveDefinitionResult {
73
+ /** The CSS custom property name */
74
+ cssName: string;
75
+ /** The effective property definition */
76
+ definition: PropertyDefinition;
77
+ /** Whether the token was valid */
78
+ isValid: boolean;
79
+ /** Error message if invalid */
80
+ error?: string;
81
+ }
82
+ /**
83
+ * Get the effective property definition for a token.
84
+ * For color tokens (#name), auto-sets syntax to '<color>' and defaults initialValue to 'transparent'.
85
+ *
86
+ * @param token - Property token ($name, #name, --name, or plain name)
87
+ * @param userDefinition - User-provided definition options
88
+ * @returns Effective definition with cssName, definition, isValid, and optional error
89
+ */
90
+ export declare function getEffectiveDefinition(token: string, userDefinition: PropertyDefinition): EffectiveDefinitionResult;
@@ -1,11 +1,19 @@
1
1
  /**
2
+ * Border style handler with multi-group support.
2
3
  *
3
- * @param border
4
- * @return {{border: string}|*}
4
+ * Single group (backward compatible):
5
+ * - `border="1bw solid #red"` - all sides
6
+ * - `border="1bw solid #red top left"` - only top and left
7
+ *
8
+ * Multi-group (new):
9
+ * - `border="1bw #red, 2bw #blue top"` - all sides red 1bw, then top overridden to blue 2bw
10
+ * - `border="1bw, dashed top bottom, #purple left right"` - base 1bw, dashed on top/bottom, purple on left/right
11
+ *
12
+ * Later groups override earlier groups for conflicting directions.
5
13
  */
6
14
  export declare function borderStyle({ border }: {
7
15
  border: any;
8
- }): {} | undefined;
16
+ }): Record<string, string> | undefined;
9
17
  export declare namespace borderStyle {
10
18
  var __lookupStyles: string[];
11
19
  }
@@ -1,7 +1,7 @@
1
1
  export declare function fadeStyle({ fade }: {
2
2
  fade: any;
3
3
  }): {
4
- mask: any;
4
+ mask: string;
5
5
  'mask-composite': string;
6
6
  } | undefined;
7
7
  export declare namespace fadeStyle {