@cube-dev/ui-kit 0.98.9 → 0.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (672) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/es/_internal/hooks/index.js +10 -10
  3. package/es/_internal/hooks/use-chained-callback.js +2 -2
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +2 -2
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +2 -2
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +2 -2
  10. package/es/_internal/hooks/use-timer/index.js +3 -3
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +3 -3
  13. package/es/_internal/hooks/use-update-effect.js +2 -2
  14. package/es/_internal/hooks/use-warn.js +3 -3
  15. package/es/_internal/index.js +2 -2
  16. package/es/components/Block.js +2 -2
  17. package/es/components/CollectionItem.js +3 -3
  18. package/es/components/GlobalStyles.js +56 -65
  19. package/es/components/GridProvider.js +4 -4
  20. package/es/components/HiddenInput.js +2 -2
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +22 -64
  23. package/es/components/actions/Action/Action.js +3 -3
  24. package/es/components/actions/Button/Button.js +12 -12
  25. package/es/components/actions/Button/index.js +2 -2
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +4 -4
  27. package/es/components/actions/CommandMenu/CommandMenu.js +11 -11
  28. package/es/components/actions/CommandMenu/index.js +2 -2
  29. package/es/components/actions/CommandMenu/styled.js +2 -2
  30. package/es/components/actions/ItemAction/ItemAction.js +9 -9
  31. package/es/components/actions/ItemAction/index.js +2 -2
  32. package/es/components/actions/ItemActionContext.js +1 -1
  33. package/es/components/actions/ItemButton/ItemButton.js +9 -9
  34. package/es/components/actions/ItemButton/index.js +2 -2
  35. package/es/components/actions/Link/Link.js +2 -2
  36. package/es/components/actions/Menu/Menu.js +10 -10
  37. package/es/components/actions/Menu/MenuItem.js +7 -7
  38. package/es/components/actions/Menu/MenuSection.js +4 -4
  39. package/es/components/actions/Menu/MenuTrigger.js +6 -6
  40. package/es/components/actions/Menu/SubMenuTrigger.js +6 -6
  41. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/es/components/actions/Menu/context.js +1 -1
  43. package/es/components/actions/Menu/index.js +10 -10
  44. package/es/components/actions/Menu/styled.js +5 -5
  45. package/es/components/actions/index.js +13 -13
  46. package/es/components/actions/use-action.js +7 -7
  47. package/es/components/actions/use-anchored-menu.js +6 -6
  48. package/es/components/actions/use-context-menu.js +6 -6
  49. package/es/components/content/ActiveZone/ActiveZone.js +4 -4
  50. package/es/components/content/Alert/Alert.js +4 -4
  51. package/es/components/content/Alert/index.js +2 -2
  52. package/es/components/content/Alert/types.js +1 -1
  53. package/es/components/content/Alert/use-alert.js +3 -3
  54. package/es/components/content/Avatar/Avatar.js +2 -2
  55. package/es/components/content/Badge/Badge.js +4 -4
  56. package/es/components/content/Card/Card.js +2 -2
  57. package/es/components/content/Content.js +3 -3
  58. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +8 -8
  59. package/es/components/content/CopyPasteBlock/index.js +2 -2
  60. package/es/components/content/CopySnippet/CopySnippet.js +9 -9
  61. package/es/components/content/CopySnippet/index.js +2 -2
  62. package/es/components/content/Disclosure/Disclosure.js +6 -6
  63. package/es/components/content/Disclosure/index.js +2 -2
  64. package/es/components/content/Divider.js +3 -3
  65. package/es/components/content/Footer.js +3 -3
  66. package/es/components/content/Header.js +3 -3
  67. package/es/components/content/HotKeys/HotKeys.js +5 -5
  68. package/es/components/content/HotKeys/index.js +2 -2
  69. package/es/components/content/Item/Item.js +15 -15
  70. package/es/components/content/Item/index.js +3 -3
  71. package/es/components/content/ItemBadge/ItemBadge.js +8 -8
  72. package/es/components/content/ItemBadge/index.js +2 -2
  73. package/es/components/content/Layout/GridLayout.js +13 -13
  74. package/es/components/content/Layout/Layout.js +7 -6
  75. package/es/components/content/Layout/LayoutBlock.js +4 -3
  76. package/es/components/content/Layout/LayoutCenter.js +3 -3
  77. package/es/components/content/Layout/LayoutContainer.js +4 -4
  78. package/es/components/content/Layout/LayoutContent.js +6 -5
  79. package/es/components/content/Layout/LayoutContext.js +1 -1
  80. package/es/components/content/Layout/LayoutFlex.js +4 -3
  81. package/es/components/content/Layout/LayoutFooter.js +4 -3
  82. package/es/components/content/Layout/LayoutGrid.js +4 -3
  83. package/es/components/content/Layout/LayoutHeader.js +8 -7
  84. package/es/components/content/Layout/LayoutPane.js +8 -7
  85. package/es/components/content/Layout/LayoutPanel.js +10 -9
  86. package/es/components/content/Layout/LayoutPanelHeader.js +7 -7
  87. package/es/components/content/Layout/LayoutToolbar.js +4 -3
  88. package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  89. package/es/components/content/Layout/index.js +16 -16
  90. package/es/components/content/Layout/utils.js +1 -1
  91. package/es/components/content/List/SectionHeading.js +3 -3
  92. package/es/components/content/List/index.js +2 -2
  93. package/es/components/content/Paragraph.js +3 -3
  94. package/es/components/content/Placeholder/Placeholder.js +2 -2
  95. package/es/components/content/PrismCode/PrismCode.js +7 -7
  96. package/es/components/content/PrismCode/prismSetup.js +1 -1
  97. package/es/components/content/PrismDiffCode/PrismDiffCode.js +2 -2
  98. package/es/components/content/Result/Result.js +4 -4
  99. package/es/components/content/Skeleton/Skeleton.js +5 -5
  100. package/es/components/content/Tag/Tag.js +4 -4
  101. package/es/components/content/Text.js +3 -3
  102. package/es/components/content/TextItem/TextItem.js +5 -5
  103. package/es/components/content/TextItem/index.js +2 -2
  104. package/es/components/content/Title.js +4 -4
  105. package/es/components/content/highlightText.js +2 -2
  106. package/es/components/content/use-auto-tooltip.js +2 -2
  107. package/es/components/fields/Checkbox/Checkbox.js +12 -12
  108. package/es/components/fields/Checkbox/CheckboxGroup.js +7 -7
  109. package/es/components/fields/Checkbox/context.js +1 -1
  110. package/es/components/fields/Checkbox/index.js +3 -3
  111. package/es/components/fields/ComboBox/ComboBox.js +18 -18
  112. package/es/components/fields/ComboBox/index.js +2 -2
  113. package/es/components/fields/DatePicker/DateInput.js +10 -10
  114. package/es/components/fields/DatePicker/DateInputBase.js +6 -6
  115. package/es/components/fields/DatePicker/DatePicker.js +14 -14
  116. package/es/components/fields/DatePicker/DatePickerButton.js +4 -4
  117. package/es/components/fields/DatePicker/DatePickerElement.js +3 -3
  118. package/es/components/fields/DatePicker/DatePickerInput.js +5 -5
  119. package/es/components/fields/DatePicker/DatePickerSegment.js +2 -2
  120. package/es/components/fields/DatePicker/DateRangePicker.js +15 -15
  121. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +15 -15
  122. package/es/components/fields/DatePicker/TimeInput.js +9 -9
  123. package/es/components/fields/DatePicker/index.js +8 -8
  124. package/es/components/fields/DatePicker/intl.js +1 -1
  125. package/es/components/fields/DatePicker/parseDate.js +1 -1
  126. package/es/components/fields/DatePicker/props.js +1 -1
  127. package/es/components/fields/DatePicker/types.js +1 -1
  128. package/es/components/fields/DatePicker/utils.js +1 -1
  129. package/es/components/fields/FileInput/FileInput.js +6 -6
  130. package/es/components/fields/FilterListBox/FilterListBox.js +10 -10
  131. package/es/components/fields/FilterListBox/index.js +2 -2
  132. package/es/components/fields/FilterPicker/FilterPicker.js +14 -14
  133. package/es/components/fields/FilterPicker/index.js +2 -2
  134. package/es/components/fields/Input/Input.js +6 -6
  135. package/es/components/fields/Input/index.js +2 -2
  136. package/es/components/fields/ListBox/ListBox.js +14 -14
  137. package/es/components/fields/ListBox/index.js +2 -2
  138. package/es/components/fields/NumberInput/NumberInput.js +8 -8
  139. package/es/components/fields/NumberInput/StepButton.js +4 -4
  140. package/es/components/fields/PasswordInput/PasswordInput.js +8 -8
  141. package/es/components/fields/Picker/Picker.js +13 -13
  142. package/es/components/fields/Picker/index.js +2 -2
  143. package/es/components/fields/RadioGroup/Radio.js +10 -10
  144. package/es/components/fields/RadioGroup/RadioGroup.js +7 -7
  145. package/es/components/fields/RadioGroup/context.js +1 -1
  146. package/es/components/fields/RadioGroup/index.js +3 -3
  147. package/es/components/fields/SearchInput/SearchInput.js +8 -8
  148. package/es/components/fields/SearchInput/index.js +2 -2
  149. package/es/components/fields/Select/Select.js +20 -20
  150. package/es/components/fields/Select/index.js +2 -2
  151. package/es/components/fields/Slider/Gradation.js +2 -2
  152. package/es/components/fields/Slider/Header.js +1 -1
  153. package/es/components/fields/Slider/RangeSlider.js +5 -5
  154. package/es/components/fields/Slider/Slider.js +7 -7
  155. package/es/components/fields/Slider/SliderBase.js +6 -6
  156. package/es/components/fields/Slider/SliderInput.js +2 -2
  157. package/es/components/fields/Slider/SliderThumb.js +3 -3
  158. package/es/components/fields/Slider/SliderTrack.js +2 -2
  159. package/es/components/fields/Slider/elements.js +2 -2
  160. package/es/components/fields/Slider/index.js +4 -4
  161. package/es/components/fields/Slider/types.js +1 -1
  162. package/es/components/fields/Switch/Switch.js +11 -11
  163. package/es/components/fields/Switch/index.js +2 -2
  164. package/es/components/fields/TextArea/TextArea.js +7 -7
  165. package/es/components/fields/TextArea/index.js +2 -2
  166. package/es/components/fields/TextInput/TextInput.js +6 -6
  167. package/es/components/fields/TextInput/TextInputBase.js +9 -9
  168. package/es/components/fields/TextInput/index.js +3 -3
  169. package/es/components/fields/TextInputMapper/TextInputMapper.js +14 -14
  170. package/es/components/fields/TextInputMapper/index.js +2 -2
  171. package/es/components/fields/index.js +20 -20
  172. package/es/components/form/FieldWrapper/FieldWrapper.js +9 -9
  173. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  174. package/es/components/form/FieldWrapper/index.js +4 -4
  175. package/es/components/form/FieldWrapper/types.js +1 -1
  176. package/es/components/form/Form/Field.js +6 -6
  177. package/es/components/form/Form/Form.js +6 -6
  178. package/es/components/form/Form/ResetButton/ResetButton.js +6 -6
  179. package/es/components/form/Form/ResetButton/index.js +2 -2
  180. package/es/components/form/Form/SubmitButton/SubmitButton.js +4 -4
  181. package/es/components/form/Form/SubmitButton/index.js +2 -2
  182. package/es/components/form/Form/SubmitError.js +3 -3
  183. package/es/components/form/Form/index.js +11 -11
  184. package/es/components/form/Form/types.js +1 -1
  185. package/es/components/form/Form/use-field/index.js +4 -4
  186. package/es/components/form/Form/use-field/types.js +1 -1
  187. package/es/components/form/Form/use-field/use-field-props.js +6 -6
  188. package/es/components/form/Form/use-field/use-field.js +4 -4
  189. package/es/components/form/Form/use-form.js +3 -3
  190. package/es/components/form/Form/validation.js +1 -1
  191. package/es/components/form/Label.js +3 -3
  192. package/es/components/form/index.js +5 -5
  193. package/es/components/form/wrapper.js +3 -3
  194. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  195. package/es/components/helpers/DisplayTransition/index.js +2 -2
  196. package/es/components/helpers/IconSwitch/IconSwitch.js +3 -3
  197. package/es/components/helpers/index.js +3 -3
  198. package/es/components/layout/Flex.js +2 -2
  199. package/es/components/layout/Flow.js +2 -2
  200. package/es/components/layout/Grid.js +2 -2
  201. package/es/components/layout/Panel.js +2 -2
  202. package/es/components/layout/Prefix.js +3 -3
  203. package/es/components/layout/ResizablePanel.js +5 -5
  204. package/es/components/layout/Space.js +2 -2
  205. package/es/components/layout/Suffix.js +3 -3
  206. package/es/components/organisms/FileTabs/FileTabs.js +8 -8
  207. package/es/components/organisms/StatsCard/StatsCard.js +4 -4
  208. package/es/components/other/Calendar/Calendar.js +8 -8
  209. package/es/components/other/Calendar/CalendarCell.js +2 -2
  210. package/es/components/other/Calendar/CalendarGrid.js +3 -3
  211. package/es/components/other/Calendar/RangeCalendar.js +8 -8
  212. package/es/components/other/CloudLogo/CloudLogo.js +3 -3
  213. package/es/components/overlays/AlertDialog/AlertDialog.js +11 -11
  214. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +2 -2
  215. package/es/components/overlays/AlertDialog/AlertDialogZone.js +4 -4
  216. package/es/components/overlays/AlertDialog/index.js +4 -4
  217. package/es/components/overlays/AlertDialog/types.js +1 -1
  218. package/es/components/overlays/Dialog/Dialog.js +7 -7
  219. package/es/components/overlays/Dialog/DialogContainer.js +3 -3
  220. package/es/components/overlays/Dialog/DialogForm.js +8 -8
  221. package/es/components/overlays/Dialog/DialogTrigger.js +4 -4
  222. package/es/components/overlays/Dialog/context.js +1 -1
  223. package/es/components/overlays/Dialog/index.js +6 -6
  224. package/es/components/overlays/Dialog/use-dialog-container.js +4 -4
  225. package/es/components/overlays/Modal/Modal.js +5 -5
  226. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  227. package/es/components/overlays/Modal/Overlay.js +3 -3
  228. package/es/components/overlays/Modal/Popover.js +4 -4
  229. package/es/components/overlays/Modal/Tray.js +6 -6
  230. package/es/components/overlays/Modal/Underlay.js +2 -2
  231. package/es/components/overlays/Modal/index.js +7 -7
  232. package/es/components/overlays/Modal/types.js +1 -1
  233. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +5 -5
  234. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +7 -7
  235. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +36 -34
  236. package/es/components/overlays/NewNotifications/Bar/index.js +2 -2
  237. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  238. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +8 -8
  239. package/es/components/overlays/NewNotifications/Dialog/index.js +2 -2
  240. package/es/components/overlays/NewNotifications/Notification.js +4 -4
  241. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +5 -5
  242. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +4 -4
  243. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +4 -4
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +3 -3
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +3 -3
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +4 -4
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +12 -12
  249. package/es/components/overlays/NewNotifications/NotificationView/index.js +3 -3
  250. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +5 -5
  253. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +3 -3
  254. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +2 -2
  255. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +4 -4
  256. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +5 -5
  257. package/es/components/overlays/NewNotifications/NotificationsList/index.js +2 -2
  258. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  259. package/es/components/overlays/NewNotifications/hooks/index.js +6 -6
  260. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  261. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +2 -2
  263. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +3 -3
  265. package/es/components/overlays/NewNotifications/index.js +7 -7
  266. package/es/components/overlays/NewNotifications/types.js +1 -1
  267. package/es/components/overlays/Notification/Notification.js +7 -7
  268. package/es/components/overlays/OverlayWrapper.js +2 -2
  269. package/es/components/overlays/Toasts/Toast.js +4 -4
  270. package/es/components/overlays/Toasts/index.js +3 -3
  271. package/es/components/overlays/Toasts/types.js +1 -1
  272. package/es/components/overlays/Toasts/use-toasts-api.js +2 -2
  273. package/es/components/overlays/Tooltip/Tooltip.js +4 -4
  274. package/es/components/overlays/Tooltip/TooltipProvider.js +3 -3
  275. package/es/components/overlays/Tooltip/TooltipTrigger.js +6 -6
  276. package/es/components/overlays/Tooltip/context.js +1 -1
  277. package/es/components/overlays/Tooltip/index.js +4 -4
  278. package/es/components/portal/Portal.js +2 -2
  279. package/es/components/portal/PortalProvider.js +1 -1
  280. package/es/components/portal/index.js +3 -3
  281. package/es/components/portal/types.js +1 -1
  282. package/es/components/portal/usePortal.js +2 -2
  283. package/es/components/shared/InvalidIcon.js +2 -2
  284. package/es/components/shared/ValidIcon.js +2 -2
  285. package/es/components/status/LoadingAnimation/LoadingAnimation.js +58 -114
  286. package/es/components/status/LoadingAnimation/index.js +2 -2
  287. package/es/components/status/Spin/Cube.js +95 -179
  288. package/es/components/status/Spin/InternalSpinner.js +5 -5
  289. package/es/components/status/Spin/Spin.js +4 -4
  290. package/es/components/status/Spin/SpinsContainer.js +28 -30
  291. package/es/components/status/Spin/index.js +2 -2
  292. package/es/components/status/Spin/types.js +1 -1
  293. package/es/components/status/index.js +3 -3
  294. package/es/data/item-themes.js +1 -1
  295. package/es/data/themes.js +1 -1
  296. package/es/icons/AdjustmentsHorizontalIcon.js +2 -2
  297. package/es/icons/AdjustmentsIcon.js +2 -2
  298. package/es/icons/AiIcon.js +2 -2
  299. package/es/icons/AreaChartIcon.js +2 -2
  300. package/es/icons/BackwardIcon.js +2 -2
  301. package/es/icons/BarChartIcon.js +2 -2
  302. package/es/icons/BellFilledIcon.js +2 -2
  303. package/es/icons/BellIcon.js +2 -2
  304. package/es/icons/BooleanIcon.js +2 -2
  305. package/es/icons/CalendarEditIcon.js +2 -2
  306. package/es/icons/CalendarIcon.js +2 -2
  307. package/es/icons/CaretDownIcon.js +2 -2
  308. package/es/icons/CaretUpIcon.js +2 -2
  309. package/es/icons/ChartAreaStackedIcon.js +2 -2
  310. package/es/icons/ChartAreaStackedPercentageIcon.js +2 -2
  311. package/es/icons/ChartBarGroupedHorizontalIcon.js +2 -2
  312. package/es/icons/ChartBarGroupedIcon.js +2 -2
  313. package/es/icons/ChartBarHorizontalIcon.js +2 -2
  314. package/es/icons/ChartBarLineIcon.js +2 -2
  315. package/es/icons/ChartBarStackedHorizontalIcon.js +2 -2
  316. package/es/icons/ChartBarStackedIcon.js +2 -2
  317. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +2 -2
  318. package/es/icons/ChartBarStackedPercentageIcon.js +2 -2
  319. package/es/icons/ChartBoxPlot2Icon.js +2 -2
  320. package/es/icons/ChartBoxPlotIcon.js +2 -2
  321. package/es/icons/ChartBubbleIcon.js +2 -2
  322. package/es/icons/ChartDonut2Icon.js +2 -2
  323. package/es/icons/ChartFunnelIcon.js +2 -2
  324. package/es/icons/ChartHeatmapIcon.js +2 -2
  325. package/es/icons/ChartKPIIcon.js +2 -2
  326. package/es/icons/ChartPie2Icon.js +2 -2
  327. package/es/icons/ChartScatterIcon.js +2 -2
  328. package/es/icons/CheckCircleFilledIcon.js +2 -2
  329. package/es/icons/CheckCircleIcon.js +2 -2
  330. package/es/icons/CheckIcon.js +2 -2
  331. package/es/icons/CircleFilledIcon.js +2 -2
  332. package/es/icons/ClearIcon.js +2 -2
  333. package/es/icons/CloseCircleFilledIcon.js +2 -2
  334. package/es/icons/CloseCircleIcon.js +2 -2
  335. package/es/icons/CloseIcon.js +2 -2
  336. package/es/icons/CodeIcon.js +2 -2
  337. package/es/icons/ColumnTotalIcon.js +2 -2
  338. package/es/icons/CopyIcon.js +2 -2
  339. package/es/icons/CountIcon.js +2 -2
  340. package/es/icons/CubeIcon.js +2 -2
  341. package/es/icons/CubePauseIcon.js +2 -2
  342. package/es/icons/CubePlayIcon.js +2 -2
  343. package/es/icons/CurrencyDollarIcon.js +2 -2
  344. package/es/icons/DangerIcon.js +2 -2
  345. package/es/icons/DashboardIcon.js +2 -2
  346. package/es/icons/DatabaseIcon.js +2 -2
  347. package/es/icons/DecimalDecreaseIcon.js +2 -2
  348. package/es/icons/DecimalIncreaseIcon.js +2 -2
  349. package/es/icons/DirectionIcon.js +3 -3
  350. package/es/icons/DonutIcon.js +2 -2
  351. package/es/icons/DownIcon.js +2 -2
  352. package/es/icons/EditIcon.js +2 -2
  353. package/es/icons/ExclamationCircleFilledIcon.js +2 -2
  354. package/es/icons/ExclamationCircleIcon.js +2 -2
  355. package/es/icons/ExclamationIcon.js +2 -2
  356. package/es/icons/EyeIcon.js +2 -2
  357. package/es/icons/EyeInvisibleIcon.js +2 -2
  358. package/es/icons/FilterIcon.js +2 -2
  359. package/es/icons/FolderFilledIcon.js +2 -2
  360. package/es/icons/FolderIcon.js +2 -2
  361. package/es/icons/FolderOpenFilledIcon.js +2 -2
  362. package/es/icons/FolderOpenIcon.js +2 -2
  363. package/es/icons/ForwardIcon.js +2 -2
  364. package/es/icons/HierarchyIcon.js +2 -2
  365. package/es/icons/HierarchyOpenIcon.js +2 -2
  366. package/es/icons/Icon.js +2 -2
  367. package/es/icons/InfoCircleIcon.js +2 -2
  368. package/es/icons/InfoIcon.js +2 -2
  369. package/es/icons/KeyIcon.js +2 -2
  370. package/es/icons/LeftIcon.js +2 -2
  371. package/es/icons/LineChartIcon.js +2 -2
  372. package/es/icons/LoadingIcon.js +2 -2
  373. package/es/icons/LockFilledIcon.js +2 -2
  374. package/es/icons/LockIcon.js +2 -2
  375. package/es/icons/MoreIcon.js +2 -2
  376. package/es/icons/NotAllowedIcon.js +2 -2
  377. package/es/icons/Number123Icon.js +2 -2
  378. package/es/icons/NumberIcon.js +2 -2
  379. package/es/icons/PauseCircleFilledIcon.js +2 -2
  380. package/es/icons/PauseCircleIcon.js +2 -2
  381. package/es/icons/PauseIcon.js +2 -2
  382. package/es/icons/PercentageIcon.js +2 -2
  383. package/es/icons/PieChartIcon.js +2 -2
  384. package/es/icons/PlayCircleIcon.js +2 -2
  385. package/es/icons/PlayIcon.js +2 -2
  386. package/es/icons/PlusIcon.js +2 -2
  387. package/es/icons/ProgressBarIcon.js +2 -2
  388. package/es/icons/ReloadIcon.js +2 -2
  389. package/es/icons/ReportIcon.js +2 -2
  390. package/es/icons/ReturnIcon.js +2 -2
  391. package/es/icons/RightIcon.js +2 -2
  392. package/es/icons/RowTotalsIcon.js +2 -2
  393. package/es/icons/SchemeIcon.js +2 -2
  394. package/es/icons/SearchIcon.js +2 -2
  395. package/es/icons/SemanticQueryIcon.js +2 -2
  396. package/es/icons/SettingsIcon.js +2 -2
  397. package/es/icons/ShieldFilledIcon.js +2 -2
  398. package/es/icons/ShieldIcon.js +2 -2
  399. package/es/icons/SlashIcon.js +2 -2
  400. package/es/icons/SparklesIcon.js +2 -2
  401. package/es/icons/SqlIcon.js +2 -2
  402. package/es/icons/StatsIcon.js +2 -2
  403. package/es/icons/StopIcon.js +2 -2
  404. package/es/icons/StringIcon.js +2 -2
  405. package/es/icons/SubtotalsIcon.js +2 -2
  406. package/es/icons/SwitchIcon.js +2 -2
  407. package/es/icons/TableIcon.js +2 -2
  408. package/es/icons/ThumbsDownIcon.js +2 -2
  409. package/es/icons/ThumbsUpIcon.js +2 -2
  410. package/es/icons/ThunderboltCrossedIcon.js +2 -2
  411. package/es/icons/ThunderboltFilledIcon.js +2 -2
  412. package/es/icons/ThunderboltIcon.js +2 -2
  413. package/es/icons/TimeIcon.js +2 -2
  414. package/es/icons/TrashIcon.js +2 -2
  415. package/es/icons/UnlockIcon.js +2 -2
  416. package/es/icons/UpIcon.js +2 -2
  417. package/es/icons/UserGroupIcon.js +2 -2
  418. package/es/icons/UserIcon.js +2 -2
  419. package/es/icons/UserLockIcon.js +2 -2
  420. package/es/icons/ViewIcon.js +2 -2
  421. package/es/icons/WarningFilledIcon.js +2 -2
  422. package/es/icons/WarningIcon.js +2 -2
  423. package/es/icons/index.js +129 -129
  424. package/es/icons/wrap-icon.js +2 -2
  425. package/es/index.js +73 -74
  426. package/es/provider.js +4 -10
  427. package/es/providers/TrackingProvider.js +1 -1
  428. package/es/providers/navigation.types.js +1 -1
  429. package/es/providers/navigationAdapter.default.js +1 -1
  430. package/es/services/notification.js +2 -2
  431. package/es/shared/form.js +1 -1
  432. package/es/shared/index.js +2 -2
  433. package/es/stories/Form.legacy-stories.js +4 -4
  434. package/es/stories/FormFieldArgs.js +2 -2
  435. package/es/stories/SimpleLayout.stories.js +2 -2
  436. package/es/stories/Tasty.stories.js +2 -2
  437. package/es/stories/components/ConfirmDeletionDialogForm.js +2 -2
  438. package/es/stories/components/DialogFormApp.js +3 -3
  439. package/es/stories/components/StyledButton.js +19 -15
  440. package/es/stories/lists/baseProps.js +2 -2
  441. package/es/stories/playground/PlaygroundEditor.js +89 -0
  442. package/es/stories/playground/PlaygroundLayout.js +16 -0
  443. package/es/stories/playground/PlaygroundOutput.js +92 -0
  444. package/es/stories/playground/PlaygroundPreview.js +91 -0
  445. package/es/stories/playground/components/Button.js +45 -0
  446. package/es/stories/playground/components/Card.js +20 -0
  447. package/es/stories/playground/components/ScrollProgress.js +17 -0
  448. package/es/stories/playground/examples.js +158 -0
  449. package/es/tasty/chunks/cacheKey.js +98 -0
  450. package/es/tasty/chunks/definitions.js +281 -0
  451. package/es/tasty/chunks/index.js +12 -0
  452. package/es/tasty/chunks/renderChunk.js +97 -0
  453. package/es/tasty/config.js +280 -0
  454. package/es/tasty/debug.js +195 -9
  455. package/es/tasty/hooks/index.js +12 -0
  456. package/es/tasty/hooks/useGlobalStyles.js +67 -0
  457. package/es/tasty/hooks/useRawCSS.js +40 -0
  458. package/es/tasty/hooks/useStyles.js +206 -0
  459. package/es/tasty/index.js +31 -17
  460. package/es/tasty/injector/index.js +34 -90
  461. package/es/tasty/injector/injector.js +81 -299
  462. package/es/tasty/injector/sheet-manager.js +138 -3
  463. package/es/tasty/injector/types.js +1 -1
  464. package/es/tasty/keyframes/index.js +301 -0
  465. package/es/tasty/parser/classify.js +8 -6
  466. package/es/tasty/parser/const.js +1 -1
  467. package/es/tasty/parser/lru.js +1 -1
  468. package/es/tasty/parser/parser.js +18 -5
  469. package/es/tasty/parser/tokenizer.js +1 -1
  470. package/es/tasty/parser/types.js +2 -1
  471. package/es/tasty/pipeline/conditions.js +426 -0
  472. package/es/tasty/pipeline/exclusive.js +311 -0
  473. package/es/tasty/pipeline/index.js +543 -0
  474. package/es/tasty/pipeline/materialize.js +1260 -0
  475. package/es/tasty/pipeline/parseStateKey.js +592 -0
  476. package/es/tasty/pipeline/simplify.js +898 -0
  477. package/es/tasty/plugins/index.js +26 -0
  478. package/es/tasty/plugins/okhsl-plugin.js +400 -0
  479. package/es/tasty/plugins/types.js +10 -0
  480. package/es/tasty/states/index.js +523 -0
  481. package/es/tasty/static/index.js +47 -0
  482. package/es/tasty/static/tastyStatic.js +55 -0
  483. package/es/tasty/static/types.js +34 -0
  484. package/es/tasty/styles/align.js +1 -1
  485. package/es/tasty/styles/border.js +2 -2
  486. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  487. package/es/tasty/styles/color.js +3 -3
  488. package/es/tasty/styles/createStyle.js +3 -3
  489. package/es/tasty/styles/dimension.js +2 -2
  490. package/es/tasty/styles/display.js +1 -1
  491. package/es/tasty/styles/fade.js +2 -2
  492. package/es/tasty/styles/fill.js +11 -21
  493. package/es/tasty/styles/flow.js +1 -1
  494. package/es/tasty/styles/font.js +1 -1
  495. package/es/tasty/styles/fontStyle.js +1 -1
  496. package/es/tasty/styles/gap.js +2 -2
  497. package/es/tasty/styles/groupRadius.js +2 -2
  498. package/es/tasty/styles/height.js +2 -2
  499. package/es/tasty/styles/index.js +3 -3
  500. package/es/tasty/styles/inset.js +2 -2
  501. package/es/tasty/styles/justify.js +1 -1
  502. package/es/tasty/styles/list.js +1 -1
  503. package/es/tasty/styles/margin.js +76 -56
  504. package/es/tasty/styles/outline.js +2 -2
  505. package/es/tasty/styles/padding.js +76 -56
  506. package/es/tasty/styles/place.js +1 -1
  507. package/es/tasty/styles/predefined.js +28 -27
  508. package/es/tasty/styles/preset.js +2 -2
  509. package/es/tasty/styles/radius.js +5 -12
  510. package/es/tasty/styles/reset.js +3 -7
  511. package/es/tasty/styles/scrollbar.js +2 -2
  512. package/es/tasty/styles/shadow.js +2 -2
  513. package/es/tasty/styles/styledScrollbar.js +1 -1
  514. package/es/tasty/styles/transition.js +10 -3
  515. package/es/tasty/styles/types.js +1 -1
  516. package/es/tasty/styles/width.js +2 -2
  517. package/es/tasty/tasty.js +81 -122
  518. package/es/tasty/types.js +1 -1
  519. package/es/tasty/utils/cache-wrapper.js +1 -1
  520. package/es/tasty/utils/case-converter.js +1 -1
  521. package/es/tasty/utils/colors.js +1 -1
  522. package/es/tasty/utils/dotize.js +1 -1
  523. package/es/tasty/utils/filterBaseProps.js +1 -1
  524. package/es/tasty/utils/getDisplayName.js +1 -1
  525. package/es/tasty/utils/isDevEnv.js +1 -1
  526. package/es/tasty/utils/mergeStyles.js +2 -2
  527. package/es/tasty/utils/modAttrs.js +3 -3
  528. package/es/tasty/utils/processTokens.js +88 -2
  529. package/es/tasty/utils/string.js +1 -1
  530. package/es/tasty/utils/styles.js +255 -22
  531. package/es/tasty/utils/typography.js +67 -0
  532. package/es/tasty/utils/warnings.js +1 -1
  533. package/es/tasty/zero/babel.js +453 -0
  534. package/es/tasty/zero/css-writer.js +94 -0
  535. package/es/tasty/zero/extractor.js +222 -0
  536. package/es/tasty/zero/index.js +28 -0
  537. package/es/tasty/zero/next.js +102 -0
  538. package/es/tokens/base.js +64 -0
  539. package/es/tokens/colors.js +68 -0
  540. package/es/tokens/index.js +63 -0
  541. package/es/tokens/layout.js +26 -0
  542. package/es/tokens/shadows.js +27 -0
  543. package/es/tokens/sizes.js +42 -0
  544. package/es/tokens/spacing.js +22 -0
  545. package/es/tokens/typography.js +237 -0
  546. package/es/utils/ResizeSensor.js +1 -1
  547. package/es/utils/index.js +10 -10
  548. package/es/utils/modules.js +1 -1
  549. package/es/utils/promise.js +1 -1
  550. package/es/utils/raf.js +1 -1
  551. package/es/utils/random.js +1 -1
  552. package/es/utils/range.js +1 -1
  553. package/es/utils/react/RenderCache.js +1 -1
  554. package/es/utils/react/Slots.js +2 -2
  555. package/es/utils/react/chain.js +1 -1
  556. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  557. package/es/utils/react/index.js +17 -17
  558. package/es/utils/react/interactions.js +1 -1
  559. package/es/utils/react/isTextOnly.js +1 -1
  560. package/es/utils/react/mapProps.js +1 -1
  561. package/es/utils/react/mergeProps.js +4 -4
  562. package/es/utils/react/nullableValue.js +1 -1
  563. package/es/utils/react/resolveIcon.js +1 -1
  564. package/es/utils/react/sharedStore.js +2 -2
  565. package/es/utils/react/useCombinedRefs.js +1 -1
  566. package/es/utils/react/useControlledFocusVisible.js +2 -2
  567. package/es/utils/react/useEventBus.js +1 -1
  568. package/es/utils/react/useId.js +2 -2
  569. package/es/utils/react/useIsDarwin.js +1 -1
  570. package/es/utils/react/useKeySymbols.js +2 -2
  571. package/es/utils/react/useLayoutEffect.js +1 -1
  572. package/es/utils/react/useLocalStorage.js +2 -2
  573. package/es/utils/react/useQaProps.js +1 -1
  574. package/es/utils/react/useViewportSize.js +1 -1
  575. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  576. package/es/utils/tree.js +1 -1
  577. package/es/utils/warnings.js +1 -1
  578. package/es/version.js +2 -2
  579. package/package.json +14 -4
  580. package/types/components/GlobalStyles.d.ts +2 -1
  581. package/types/components/HiddenInput.d.ts +828 -826
  582. package/types/components/Root.d.ts +1 -0
  583. package/types/components/actions/Button/Button.d.ts +1649 -1645
  584. package/types/components/actions/CommandMenu/styled.d.ts +4140 -4130
  585. package/types/components/actions/Menu/styled.d.ts +4893 -4883
  586. package/types/components/actions/use-action.d.ts +1 -1
  587. package/types/components/content/List/SectionHeading.d.ts +251 -251
  588. package/types/components/content/Text.d.ts +1487 -1487
  589. package/types/components/fields/DatePicker/DatePickerElement.d.ts +251 -251
  590. package/types/components/fields/Select/Select.d.ts +828 -826
  591. package/types/components/fields/Slider/elements.d.ts +4968 -4956
  592. package/types/components/status/Spin/Cube.d.ts +1 -1
  593. package/types/components/status/Spin/SpinsContainer.d.ts +6 -3
  594. package/types/index.d.ts +1 -4
  595. package/types/provider.d.ts +1 -2
  596. package/types/stories/components/StyledButton.d.ts +1 -1
  597. package/types/stories/playground/PlaygroundEditor.d.ts +6 -0
  598. package/types/stories/playground/PlaygroundLayout.d.ts +8 -0
  599. package/types/stories/playground/PlaygroundOutput.d.ts +5 -0
  600. package/types/stories/playground/PlaygroundPreview.d.ts +6 -0
  601. package/types/stories/playground/components/Button.d.ts +11 -0
  602. package/types/stories/playground/components/Card.d.ts +7 -0
  603. package/types/stories/playground/components/ScrollProgress.d.ts +5 -0
  604. package/types/stories/playground/examples.d.ts +7 -0
  605. package/types/tasty/chunks/cacheKey.d.ts +26 -0
  606. package/types/tasty/chunks/definitions.d.ts +75 -0
  607. package/types/tasty/chunks/index.d.ts +4 -0
  608. package/types/tasty/chunks/renderChunk.d.ts +25 -0
  609. package/types/tasty/config.d.ts +171 -0
  610. package/types/tasty/debug.d.ts +35 -0
  611. package/types/tasty/hooks/index.d.ts +4 -0
  612. package/types/tasty/hooks/useGlobalStyles.d.ts +22 -0
  613. package/types/tasty/hooks/useRawCSS.d.ts +50 -0
  614. package/types/tasty/hooks/useStyles.d.ts +35 -0
  615. package/types/tasty/index.d.ts +14 -4
  616. package/types/tasty/injector/index.d.ts +30 -19
  617. package/types/tasty/injector/injector.d.ts +19 -13
  618. package/types/tasty/injector/sheet-manager.d.ts +25 -1
  619. package/types/tasty/injector/types.d.ts +23 -2
  620. package/types/tasty/keyframes/index.d.ts +49 -0
  621. package/types/tasty/parser/parser.d.ts +4 -0
  622. package/types/tasty/parser/types.d.ts +1 -0
  623. package/types/tasty/pipeline/conditions.d.ts +243 -0
  624. package/types/tasty/pipeline/exclusive.d.ts +103 -0
  625. package/types/tasty/pipeline/index.d.ts +67 -0
  626. package/types/tasty/pipeline/materialize.d.ts +162 -0
  627. package/types/tasty/pipeline/parseStateKey.d.ts +20 -0
  628. package/types/tasty/pipeline/simplify.d.ts +28 -0
  629. package/types/tasty/plugins/index.d.ts +17 -0
  630. package/types/tasty/plugins/okhsl-plugin.d.ts +45 -0
  631. package/types/tasty/plugins/types.d.ts +34 -0
  632. package/types/tasty/states/index.d.ts +101 -0
  633. package/types/tasty/static/index.d.ts +39 -0
  634. package/types/tasty/static/tastyStatic.d.ts +41 -0
  635. package/types/tasty/static/types.d.ts +44 -0
  636. package/types/tasty/styles/fill.d.ts +11 -1
  637. package/types/tasty/styles/margin.d.ts +3 -1
  638. package/types/tasty/styles/padding.d.ts +3 -1
  639. package/types/tasty/styles/radius.d.ts +2 -10
  640. package/types/tasty/styles/types.d.ts +24 -3
  641. package/types/tasty/tasty.d.ts +892 -840
  642. package/types/tasty/utils/styles.d.ts +50 -6
  643. package/types/tasty/utils/typography.d.ts +32 -0
  644. package/types/tasty/zero/babel.d.ts +63 -0
  645. package/types/tasty/zero/css-writer.d.ts +41 -0
  646. package/types/tasty/zero/extractor.d.ts +40 -0
  647. package/types/tasty/zero/index.d.ts +18 -0
  648. package/types/tasty/zero/next.d.ts +57 -0
  649. package/types/tokens/base.d.ts +8 -0
  650. package/types/tokens/colors.d.ts +6 -0
  651. package/types/tokens/index.d.ts +41 -0
  652. package/types/tokens/layout.d.ts +7 -0
  653. package/types/tokens/shadows.d.ts +12 -0
  654. package/types/tokens/sizes.d.ts +25 -0
  655. package/types/tokens/spacing.d.ts +8 -0
  656. package/types/tokens/typography.d.ts +30 -0
  657. package/es/components/navigation/LegacyTabs/LegacyTabs.js +0 -275
  658. package/es/components/other/Base64Upload/Base64Upload.js +0 -103
  659. package/es/icons/add-new-icon.js +0 -129
  660. package/es/tasty/providers/BreakpointsProvider.js +0 -16
  661. package/es/tasty/utils/getModCombinations.js +0 -38
  662. package/es/tasty/utils/renderStyles.js +0 -1050
  663. package/es/tasty/utils/responsive.js +0 -60
  664. package/es/tokens.js +0 -309
  665. package/types/components/navigation/LegacyTabs/LegacyTabs.d.ts +0 -43
  666. package/types/components/other/Base64Upload/Base64Upload.d.ts +0 -5
  667. package/types/icons/add-new-icon.d.ts +0 -2
  668. package/types/tasty/providers/BreakpointsProvider.d.ts +0 -8
  669. package/types/tasty/utils/getModCombinations.d.ts +0 -9
  670. package/types/tasty/utils/renderStyles.d.ts +0 -41
  671. package/types/tasty/utils/responsive.d.ts +0 -8
  672. package/types/tokens.d.ts +0 -221
@@ -1,12 +1,86 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.9
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles';
8
+ import { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles.js';
9
9
  const devMode = process.env.NODE_ENV !== 'production';
10
+ /**
11
+ * Parse HSL values from an hsl()/hsla() string.
12
+ * Supports both comma-separated (legacy) and space-separated (modern) syntax:
13
+ * hsl(200, 40%, 50%)
14
+ * hsl(200 40% 50%)
15
+ * hsl(200 40% 50% / 0.5)
16
+ *
17
+ * Returns [h, s, l] where h is 0-360, s and l are 0-1, or null if parsing fails.
18
+ */
19
+ function parseHslValues(str) {
20
+ const match = str.match(/hsla?\(([^)]+)\)/i);
21
+ if (!match)
22
+ return null;
23
+ const inner = match[1].trim();
24
+ // Split by slash first (for alpha), then handle color components
25
+ const [colorPart] = inner.split('/');
26
+ // Split by comma or whitespace
27
+ const parts = colorPart
28
+ .trim()
29
+ .split(/[,\s]+/)
30
+ .filter(Boolean);
31
+ if (parts.length < 3)
32
+ return null;
33
+ // Parse hue (can be unitless degrees, deg, turn, rad, or grad)
34
+ let h = parseFloat(parts[0]);
35
+ const hueStr = parts[0].toLowerCase();
36
+ if (hueStr.endsWith('turn')) {
37
+ h = parseFloat(hueStr) * 360;
38
+ }
39
+ else if (hueStr.endsWith('rad')) {
40
+ h = (parseFloat(hueStr) * 180) / Math.PI;
41
+ }
42
+ else if (hueStr.endsWith('grad')) {
43
+ h = parseFloat(hueStr) * 0.9; // 400 grad = 360 deg
44
+ }
45
+ // deg or unitless are already in degrees
46
+ // Normalize hue to 0-360 range
47
+ h = h % 360;
48
+ if (h < 0)
49
+ h += 360;
50
+ // Parse saturation and lightness (percentages)
51
+ const parsePercent = (val) => {
52
+ const num = parseFloat(val);
53
+ return val.includes('%') ? num / 100 : num;
54
+ };
55
+ const s = Math.max(0, Math.min(1, parsePercent(parts[1])));
56
+ const l = Math.max(0, Math.min(1, parsePercent(parts[2])));
57
+ return [h, s, l];
58
+ }
59
+ /**
60
+ * Convert HSL to RGB (sRGB).
61
+ * Algorithm from: https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative
62
+ * Same as used in CSS Color 4 spec.
63
+ *
64
+ * @param h - Hue in degrees (0-360)
65
+ * @param s - Saturation (0-1)
66
+ * @param l - Lightness (0-1)
67
+ * @returns RGB values in 0-255 range (may have fractional values)
68
+ */
69
+ function hslToRgb(h, s, l) {
70
+ const a = s * Math.min(l, 1 - l);
71
+ const f = (n) => {
72
+ const k = (n + h / 30) % 12;
73
+ return l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));
74
+ };
75
+ // Convert 0-1 range to 0-255
76
+ return [f(0) * 255, f(8) * 255, f(4) * 255];
77
+ }
78
+ /**
79
+ * Format a number to a string with up to 1 decimal place, removing trailing zeros.
80
+ */
81
+ function formatRgbComponent(n) {
82
+ return parseFloat(n.toFixed(1)).toString();
83
+ }
10
84
  /**
11
85
  * Extract RGB triplet from a color value.
12
86
  * Returns the RGB values as a space-separated string (e.g., "255 128 0")
@@ -25,6 +99,18 @@ function extractRgbValue(colorValue, parsedOutput) {
25
99
  return rgbValues.join(' ');
26
100
  }
27
101
  }
102
+ // For hsl(...) values, convert to RGB triplet
103
+ if (parsedOutput.startsWith('hsl(') ||
104
+ parsedOutput.startsWith('hsla(') ||
105
+ colorValue.startsWith('hsl(') ||
106
+ colorValue.startsWith('hsla(')) {
107
+ // Try parsedOutput first, then original colorValue
108
+ const hslValues = parseHslValues(parsedOutput) || parseHslValues(colorValue);
109
+ if (hslValues) {
110
+ const [r, g, b] = hslToRgb(hslValues[0], hslValues[1], hslValues[2]);
111
+ return `${formatRgbComponent(r)} ${formatRgbComponent(g)} ${formatRgbComponent(b)}`;
112
+ }
113
+ }
28
114
  // For hex values, convert to RGB triplet
29
115
  if (colorValue.startsWith('#') && /^#[0-9a-fA-F]{3,8}$/.test(colorValue)) {
30
116
  const rgbResult = hexToRgb(colorValue);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.9
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.9
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { StyleParser } from '../parser/parser';
9
- import { cacheWrapper } from './cache-wrapper';
10
- import { camelToKebab } from './case-converter';
8
+ import { StyleParser } from '../parser/parser.js';
9
+ import { createStateParserContext, parseAdvancedState } from '../states/index.js';
10
+ import { cacheWrapper } from './cache-wrapper.js';
11
+ import { camelToKebab } from './case-converter.js';
11
12
  const devMode = process.env.NODE_ENV !== 'production';
12
13
  // Precompiled regex patterns for parseColor optimization
13
14
  // Match var(--name-color...) and extract the name, regardless of fallbacks
@@ -27,9 +28,6 @@ const SIMPLE_COLOR_PATTERNS = [
27
28
  // Rate limiting for dev warnings to avoid spam
28
29
  let colorWarningCount = 0;
29
30
  const MAX_COLOR_WARNINGS = 10;
30
- const IS_DVH_SUPPORTED = typeof CSS !== 'undefined' && typeof CSS?.supports === 'function'
31
- ? CSS.supports('height: 100dvh')
32
- : false;
33
31
  export const CUSTOM_UNITS = {
34
32
  r: 'var(--radius)',
35
33
  cr: 'var(--card-radius)',
@@ -43,12 +41,6 @@ export const CUSTOM_UNITS = {
43
41
  sf: function sf(num) {
44
42
  return `minmax(0, ${num}fr)`;
45
43
  },
46
- // global setting
47
- dvh: function dvh(num) {
48
- return IS_DVH_SUPPORTED
49
- ? `${num}dvh`
50
- : `calc(var(--cube-dynamic-viewport-height, 100dvh) / 100 * ${num})`;
51
- },
52
44
  // span unit for GridProvider
53
45
  sp: function spanWidth(num) {
54
46
  return `((${num} * var(--column-width)) + (${num - 1} * var(--column-gap)))`;
@@ -117,6 +109,20 @@ export function customFunc(name, fn) {
117
109
  __tastyFuncs[name] = fn;
118
110
  __tastyParser.setFuncs(__tastyFuncs);
119
111
  }
112
+ /**
113
+ * Get the global StyleParser instance.
114
+ * Used by configure() to apply parser configuration.
115
+ */
116
+ export function getGlobalParser() {
117
+ return __tastyParser;
118
+ }
119
+ /**
120
+ * Get the current custom functions registry.
121
+ * Used by configure() to merge with new functions.
122
+ */
123
+ export function getGlobalFuncs() {
124
+ return __tastyFuncs;
125
+ }
120
126
  /**
121
127
  *
122
128
  * @param {String} value
@@ -208,11 +214,38 @@ export function strToRgb(color, ignoreAlpha = false) {
208
214
  return hexToRgb(color);
209
215
  return null;
210
216
  }
217
+ /**
218
+ * Extract RGB values from an rgb()/rgba() string.
219
+ * Supports all modern CSS syntax variations:
220
+ * - Comma-separated: rgb(255, 128, 0)
221
+ * - Space-separated: rgb(255 128 0)
222
+ * - Fractional: rgb(128.5, 64.3, 32.1)
223
+ * - Percentages: rgb(50%, 25%, 75%)
224
+ * - Slash alpha notation: rgb(255 128 0 / 0.5)
225
+ *
226
+ * Returns array of RGB values (0-255 range), converting percentages as needed.
227
+ */
211
228
  export function getRgbValuesFromRgbaString(str) {
212
- return str
213
- .match(/\d+/g)
214
- .map((s) => parseInt(s))
215
- .slice(0, 3);
229
+ // Extract content inside rgb()/rgba()
230
+ const match = str.match(/rgba?\(([^)]+)\)/i);
231
+ if (!match)
232
+ return [];
233
+ const inner = match[1].trim();
234
+ // Split by slash first (for alpha), then handle color components
235
+ const [colorPart] = inner.split('/');
236
+ // Split by comma or whitespace
237
+ const parts = colorPart
238
+ .trim()
239
+ .split(/[,\s]+/)
240
+ .filter(Boolean);
241
+ return parts.slice(0, 3).map((part) => {
242
+ part = part.trim();
243
+ if (part.endsWith('%')) {
244
+ // Convert percentage to 0-255 range
245
+ return (parseFloat(part) / 100) * 255;
246
+ }
247
+ return parseFloat(part);
248
+ });
216
249
  }
217
250
  export function hexToRgb(hex) {
218
251
  const rgba = hex
@@ -275,7 +308,16 @@ export function extractStyles(props, styleList = [], defaultStyles, propMap, ign
275
308
  }, {});
276
309
  return styles;
277
310
  }
278
- const STATES_REGEXP = /([&|!^])|([()])|([a-z][a-z0-9-]+=(?:"[^"]*"|'[^']*'|[^\s&|!^()]+))|([a-z][a-z0-9-]+)|(:[a-z][a-z0-9-]+\([^)]+\)|:[a-z][a-z0-9-]+)|(\.[a-z][a-z0-9-]+)|(\[[^\]]+])/gi;
311
+ // Enhanced regex that includes advanced state patterns
312
+ // Matches: operators, parentheses, @media(...), @(...), @root(...), @own(...), @starting, @predefined,
313
+ // value mods, boolean mods, pseudo-classes, classes, attribute selectors
314
+ const STATES_REGEXP = /([&|!^])|([()])|(@media:[a-z]+)|(@media\([^)]+\))|(@root\([^)]+\))|(@own\([^)]+\))|(@\([^)]+\))|(@starting)|(@[A-Za-z][A-Za-z0-9-]*)|([a-z][a-z0-9-]+=(?:"[^"]*"|'[^']*'|[^\s&|!^()]+))|([a-z][a-z0-9-]+)|(:[a-z][a-z0-9-]+\([^)]+\)|:[a-z][a-z0-9-]+)|(\.[a-z][a-z0-9-]+)|(\[[^\]]+])/gi;
315
+ /**
316
+ * Check if a token is an advanced state (starts with @)
317
+ */
318
+ export function isAdvancedStateToken(token) {
319
+ return token.startsWith('@') || token.startsWith('!@');
320
+ }
279
321
  export const STATE_OPERATORS = {
280
322
  NOT: '!',
281
323
  AND: '&',
@@ -317,11 +359,38 @@ function convertTokensToComputeUnits(tokens) {
317
359
  });
318
360
  return tokens.length === 1 ? tokens[0] : tokens;
319
361
  }
362
+ /**
363
+ * Replace commas with | only outside of parentheses.
364
+ * This preserves commas in advanced states like @(card, w < 600px)
365
+ */
366
+ function replaceCommasOutsideParens(str) {
367
+ let result = '';
368
+ let depth = 0;
369
+ for (let i = 0; i < str.length; i++) {
370
+ const char = str[i];
371
+ if (char === '(') {
372
+ depth++;
373
+ result += char;
374
+ }
375
+ else if (char === ')') {
376
+ depth--;
377
+ result += char;
378
+ }
379
+ else if (char === ',' && depth === 0) {
380
+ // Only replace commas at the top level (outside parentheses)
381
+ result += '|';
382
+ }
383
+ else {
384
+ result += char;
385
+ }
386
+ }
387
+ return result;
388
+ }
320
389
  /**
321
390
  * Parse state notation and return tokens, modifiers and compute model.
322
391
  */
323
392
  function parseStateNotationInner(notation, value) {
324
- const tokens = notation.replace(/,/g, '|').match(STATES_REGEXP);
393
+ const tokens = replaceCommasOutsideParens(notation).match(STATES_REGEXP);
325
394
  if (!tokens || !tokens.length) {
326
395
  return {
327
396
  model: undefined,
@@ -380,10 +449,115 @@ function parseStateNotationInner(notation, value) {
380
449
  };
381
450
  }
382
451
  export const parseStateNotation = cacheWrapper(parseStateNotationInner);
452
+ /**
453
+ * Build an AtRuleContext from parsed advanced states
454
+ */
455
+ export function buildAtRuleContext(advancedStates, negatedStates) {
456
+ if (advancedStates.length === 0)
457
+ return undefined;
458
+ const ctx = {};
459
+ for (const state of advancedStates) {
460
+ const isNegated = negatedStates.has(state.raw);
461
+ switch (state.type) {
462
+ case 'media': {
463
+ if (!ctx.media)
464
+ ctx.media = [];
465
+ let mediaCondition = '';
466
+ if (state.mediaType) {
467
+ // @media:print, @media:screen, etc.
468
+ mediaCondition = state.mediaType;
469
+ }
470
+ else if (state.condition) {
471
+ // @media(width < 920px)
472
+ mediaCondition = `(${state.condition})`;
473
+ }
474
+ if (mediaCondition) {
475
+ if (isNegated) {
476
+ ctx.media.push(`not ${mediaCondition}`);
477
+ }
478
+ else {
479
+ ctx.media.push(mediaCondition);
480
+ }
481
+ }
482
+ break;
483
+ }
484
+ case 'container': {
485
+ if (!ctx.container)
486
+ ctx.container = [];
487
+ let condition = state.condition;
488
+ if (isNegated) {
489
+ condition = `not (${condition})`;
490
+ }
491
+ ctx.container.push({
492
+ name: state.containerName,
493
+ condition,
494
+ });
495
+ break;
496
+ }
497
+ case 'root': {
498
+ if (!ctx.rootStates)
499
+ ctx.rootStates = [];
500
+ // Parse the condition to generate the proper selector
501
+ const rootSelector = buildRootSelector(state.condition, isNegated);
502
+ ctx.rootStates.push(rootSelector);
503
+ break;
504
+ }
505
+ case 'starting': {
506
+ if (!isNegated) {
507
+ ctx.startingStyle = true;
508
+ }
509
+ break;
510
+ }
511
+ // 'own' and 'predefined' are handled differently (selector-based, not at-rule)
512
+ // 'modifier' is a regular state
513
+ }
514
+ }
515
+ // Return undefined if no at-rules were added
516
+ if (!ctx.media?.length &&
517
+ !ctx.container?.length &&
518
+ !ctx.rootStates?.length &&
519
+ !ctx.startingStyle) {
520
+ return undefined;
521
+ }
522
+ return ctx;
523
+ }
524
+ /**
525
+ * Build a root state selector from a condition
526
+ */
527
+ function buildRootSelector(condition, isNegated) {
528
+ // Handle different condition formats:
529
+ // - theme=dark -> [data-theme="dark"]
530
+ // - .className -> .className
531
+ // - [attr] -> [attr]
532
+ // - booleanMod -> [data-boolean-mod]
533
+ let selector;
534
+ if (condition.startsWith('.')) {
535
+ // Class selector
536
+ selector = condition;
537
+ }
538
+ else if (condition.startsWith('[')) {
539
+ // Attribute selector
540
+ selector = condition;
541
+ }
542
+ else if (condition.includes('=')) {
543
+ // Value mod: theme=dark -> [data-theme="dark"]
544
+ const [key, value] = condition.split('=');
545
+ selector = `[data-${camelToKebab(key.trim())}="${value.trim()}"]`;
546
+ }
547
+ else {
548
+ // Boolean mod: camelCase -> [data-camel-case]
549
+ selector = `[data-${camelToKebab(condition)}]`;
550
+ }
551
+ if (isNegated) {
552
+ return `:not(${selector})`;
553
+ }
554
+ return selector;
555
+ }
383
556
  /**
384
557
  * Parse state notation and return tokens, modifiers and compute model.
558
+ * Enhanced to detect and extract advanced states.
385
559
  */
386
- export function styleStateMapToStyleStateDataList(styleStateMap) {
560
+ export function styleStateMapToStyleStateDataList(styleStateMap, parserContext) {
387
561
  if (typeof styleStateMap !== 'object' || !styleStateMap) {
388
562
  return {
389
563
  states: [
@@ -395,17 +569,76 @@ export function styleStateMapToStyleStateDataList(styleStateMap) {
395
569
  },
396
570
  ],
397
571
  mods: [],
572
+ hasAdvancedStates: false,
398
573
  };
399
574
  }
400
575
  const stateDataList = [];
576
+ let hasAdvancedStates = false;
401
577
  Object.keys(styleStateMap).forEach((stateNotation) => {
402
578
  const state = parseStateNotation(stateNotation, styleStateMap[stateNotation]);
579
+ // Check if this state contains any advanced states
580
+ const advancedStates = [];
581
+ const negatedAdvancedStates = new Set();
582
+ const regularMods = [];
583
+ const ownMods = [];
584
+ const negatedOwnMods = [];
585
+ // Scan tokens for advanced states
586
+ if (state.tokens) {
587
+ let isNegated = false;
588
+ for (const token of state.tokens) {
589
+ if (token === '!') {
590
+ isNegated = true;
591
+ continue;
592
+ }
593
+ if (isAdvancedStateToken(token)) {
594
+ hasAdvancedStates = true;
595
+ const ctx = parserContext || createStateParserContext(undefined);
596
+ const parsed = parseAdvancedState(token, ctx);
597
+ advancedStates.push(parsed);
598
+ // Handle @own states specially - extract condition as ownMod
599
+ if (parsed.type === 'own' && parsed.condition) {
600
+ if (isNegated) {
601
+ negatedOwnMods.push(parsed.condition);
602
+ }
603
+ else {
604
+ ownMods.push(parsed.condition);
605
+ }
606
+ }
607
+ else if (isNegated) {
608
+ negatedAdvancedStates.add(token);
609
+ }
610
+ isNegated = false;
611
+ }
612
+ else if (token.length > 1 &&
613
+ !['&', '|', '^', '(', ')'].includes(token)) {
614
+ regularMods.push(token);
615
+ isNegated = false;
616
+ }
617
+ else {
618
+ isNegated = false;
619
+ }
620
+ }
621
+ }
622
+ // If there are advanced states, build the atRuleContext
623
+ if (advancedStates.length > 0) {
624
+ state.advancedStates = advancedStates;
625
+ state.atRuleContext = buildAtRuleContext(advancedStates, negatedAdvancedStates);
626
+ // Filter mods to only include regular mods (not advanced states)
627
+ state.mods = regularMods;
628
+ }
629
+ // Store own mods for sub-element selector generation
630
+ if (ownMods.length > 0) {
631
+ state.ownMods = ownMods;
632
+ }
633
+ if (negatedOwnMods.length > 0) {
634
+ state.negatedOwnMods = negatedOwnMods;
635
+ }
403
636
  stateDataList.push(state);
404
637
  });
405
638
  stateDataList.reverse();
406
639
  let initialState;
407
640
  const allMods = stateDataList.reduce((all, state) => {
408
- if (!state.mods.length) {
641
+ if (!state.mods.length && !state.advancedStates?.length) {
409
642
  initialState = state;
410
643
  }
411
644
  else {
@@ -424,7 +657,7 @@ export function styleStateMapToStyleStateDataList(styleStateMap) {
424
657
  value: true,
425
658
  });
426
659
  }
427
- return { states: stateDataList, mods: allMods };
660
+ return { states: stateDataList, mods: allMods, hasAdvancedStates };
428
661
  }
429
662
  export const COMPUTE_FUNC_MAP = {
430
663
  '!': (a) => !a, // NOT - boolean negation
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.99.0
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { TYPOGRAPHY_PRESETS } from '../../tokens/typography.js';
9
+ /**
10
+ * Generate typography tokens with $ prefix for CSS custom properties.
11
+ *
12
+ * Each preset generates the following CSS custom properties:
13
+ * - `${name}-font-size`
14
+ * - `${name}-line-height`
15
+ * - `${name}-letter-spacing`
16
+ * - `${name}-font-weight`
17
+ * - `${name}-bold-font-weight` (if defined)
18
+ * - `${name}-icon-size` (if defined)
19
+ * - `${name}-text-transform` (if defined)
20
+ * - `${name}-font-family` (if defined)
21
+ * - `${name}-font-style` (if defined)
22
+ *
23
+ * @param presets - Typography presets object (defaults to TYPOGRAPHY_PRESETS)
24
+ * @returns Styles object with $ prefixed keys
25
+ *
26
+ * @example
27
+ * // Using default presets
28
+ * const tokens = generateTypographyTokens();
29
+ * // tokens['$h1-font-size'] === '36px'
30
+ *
31
+ * @example
32
+ * // Using custom presets
33
+ * const customTokens = generateTypographyTokens({
34
+ * myHeading: { fontSize: '24px', lineHeight: '32px', fontWeight: '700' }
35
+ * });
36
+ */
37
+ export function generateTypographyTokens(presets = TYPOGRAPHY_PRESETS) {
38
+ const tokens = {};
39
+ for (const [name, preset] of Object.entries(presets)) {
40
+ tokens[`$${name}-font-size`] = preset.fontSize;
41
+ tokens[`$${name}-line-height`] = preset.lineHeight;
42
+ tokens[`$${name}-letter-spacing`] = preset.letterSpacing ?? '0';
43
+ tokens[`$${name}-font-weight`] = preset.fontWeight;
44
+ if (preset.boldFontWeight !== undefined) {
45
+ // Handle different property naming for c1 (uses font-bold-weight instead of bold-font-weight)
46
+ const boldKey = name === 'c1'
47
+ ? `$${name}-font-bold-weight`
48
+ : `$${name}-bold-font-weight`;
49
+ tokens[boldKey] = preset.boldFontWeight;
50
+ }
51
+ if (preset.iconSize !== undefined) {
52
+ tokens[`$${name}-icon-size`] = preset.iconSize;
53
+ }
54
+ if (preset.textTransform !== undefined) {
55
+ tokens[`$${name}-text-transform`] = preset.textTransform;
56
+ }
57
+ if (preset.fontFamily !== undefined) {
58
+ tokens[`$${name}-font-family`] = preset.fontFamily;
59
+ }
60
+ if (preset.fontStyle !== undefined) {
61
+ tokens[`$${name}-font-style`] = preset.fontStyle;
62
+ }
63
+ }
64
+ return tokens;
65
+ }
66
+
67
+
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.9
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7