@cube-dev/ui-kit 0.99.3 → 0.100.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 (640) hide show
  1. package/CHANGELOG.md +129 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/CollectionItem.js +1 -1
  18. package/es/components/GlobalStyles.js +1 -1
  19. package/es/components/GridProvider.js +1 -1
  20. package/es/components/HiddenInput.js +1 -1
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +1 -1
  23. package/es/components/actions/Action/Action.js +1 -1
  24. package/es/components/actions/Button/Button.js +1 -1
  25. package/es/components/actions/Button/index.js +1 -1
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/es/components/actions/CommandMenu/index.js +1 -1
  29. package/es/components/actions/CommandMenu/styled.js +1 -1
  30. package/es/components/actions/ItemAction/ItemAction.js +1 -1
  31. package/es/components/actions/ItemAction/index.js +1 -1
  32. package/es/components/actions/ItemActionContext.js +1 -1
  33. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/es/components/actions/ItemButton/index.js +1 -1
  35. package/es/components/actions/Link/Link.js +1 -1
  36. package/es/components/actions/Menu/Menu.js +1 -1
  37. package/es/components/actions/Menu/MenuItem.js +1 -1
  38. package/es/components/actions/Menu/MenuSection.js +1 -1
  39. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  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 +1 -1
  44. package/es/components/actions/Menu/styled.js +1 -1
  45. package/es/components/actions/index.js +1 -1
  46. package/es/components/actions/use-action.js +1 -1
  47. package/es/components/actions/use-anchored-menu.js +1 -1
  48. package/es/components/actions/use-context-menu.js +1 -1
  49. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/es/components/content/Alert/Alert.js +1 -1
  51. package/es/components/content/Alert/index.js +1 -1
  52. package/es/components/content/Alert/types.js +1 -1
  53. package/es/components/content/Alert/use-alert.js +1 -1
  54. package/es/components/content/Avatar/Avatar.js +1 -1
  55. package/es/components/content/Badge/Badge.js +1 -1
  56. package/es/components/content/Card/Card.js +1 -1
  57. package/es/components/content/Content.js +1 -1
  58. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  59. package/es/components/content/CopyPasteBlock/index.js +1 -1
  60. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  61. package/es/components/content/CopySnippet/index.js +1 -1
  62. package/es/components/content/Disclosure/Disclosure.js +1 -1
  63. package/es/components/content/Disclosure/index.js +1 -1
  64. package/es/components/content/Divider.js +1 -1
  65. package/es/components/content/Footer.js +1 -1
  66. package/es/components/content/Header.js +1 -1
  67. package/es/components/content/HotKeys/HotKeys.js +1 -1
  68. package/es/components/content/HotKeys/index.js +1 -1
  69. package/es/components/content/Item/Item.js +11 -7
  70. package/es/components/content/Item/index.js +1 -1
  71. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  72. package/es/components/content/ItemBadge/index.js +1 -1
  73. package/es/components/content/Layout/GridLayout.js +1 -1
  74. package/es/components/content/Layout/Layout.js +1 -1
  75. package/es/components/content/Layout/LayoutBlock.js +1 -1
  76. package/es/components/content/Layout/LayoutCenter.js +1 -1
  77. package/es/components/content/Layout/LayoutContainer.js +1 -1
  78. package/es/components/content/Layout/LayoutContent.js +1 -1
  79. package/es/components/content/Layout/LayoutContext.js +1 -1
  80. package/es/components/content/Layout/LayoutFlex.js +1 -1
  81. package/es/components/content/Layout/LayoutFooter.js +1 -1
  82. package/es/components/content/Layout/LayoutGrid.js +1 -1
  83. package/es/components/content/Layout/LayoutHeader.js +1 -1
  84. package/es/components/content/Layout/LayoutPane.js +1 -1
  85. package/es/components/content/Layout/LayoutPanel.js +1 -1
  86. package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
  87. package/es/components/content/Layout/LayoutToolbar.js +1 -1
  88. package/es/components/content/Layout/hooks/useTinyScrollbar.js +13 -1
  89. package/es/components/content/Layout/index.js +1 -1
  90. package/es/components/content/Layout/utils.js +1 -1
  91. package/es/components/content/List/SectionHeading.js +1 -1
  92. package/es/components/content/List/index.js +1 -1
  93. package/es/components/content/Paragraph.js +1 -1
  94. package/es/components/content/Placeholder/Placeholder.js +1 -1
  95. package/es/components/content/PrismCode/PrismCode.js +1 -1
  96. package/es/components/content/PrismCode/prismSetup.js +1 -1
  97. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  98. package/es/components/content/Result/Result.js +1 -1
  99. package/es/components/content/Skeleton/Skeleton.js +1 -1
  100. package/es/components/content/Tag/Tag.js +1 -1
  101. package/es/components/content/Text.js +1 -1
  102. package/es/components/content/TextItem/TextItem.js +1 -1
  103. package/es/components/content/TextItem/index.js +1 -1
  104. package/es/components/content/Title.js +1 -1
  105. package/es/components/content/highlightText.js +1 -1
  106. package/es/components/content/use-auto-tooltip.js +1 -1
  107. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  108. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  109. package/es/components/fields/Checkbox/context.js +1 -1
  110. package/es/components/fields/Checkbox/index.js +1 -1
  111. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  112. package/es/components/fields/ComboBox/index.js +1 -1
  113. package/es/components/fields/DatePicker/DateInput.js +1 -1
  114. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  115. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  116. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  119. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  120. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  121. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  122. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  123. package/es/components/fields/DatePicker/index.js +1 -1
  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 +1 -1
  130. package/es/components/fields/FilterListBox/FilterListBox.js +49 -2
  131. package/es/components/fields/FilterListBox/index.js +1 -1
  132. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  133. package/es/components/fields/FilterPicker/index.js +1 -1
  134. package/es/components/fields/Input/Input.js +1 -1
  135. package/es/components/fields/Input/index.js +1 -1
  136. package/es/components/fields/ListBox/ListBox.js +11 -4
  137. package/es/components/fields/ListBox/index.js +1 -1
  138. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  139. package/es/components/fields/NumberInput/StepButton.js +1 -1
  140. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  141. package/es/components/fields/Picker/Picker.js +1 -1
  142. package/es/components/fields/Picker/index.js +1 -1
  143. package/es/components/fields/RadioGroup/Radio.js +1 -1
  144. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  145. package/es/components/fields/RadioGroup/context.js +1 -1
  146. package/es/components/fields/RadioGroup/index.js +1 -1
  147. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  148. package/es/components/fields/SearchInput/index.js +1 -1
  149. package/es/components/fields/Select/Select.js +1 -1
  150. package/es/components/fields/Select/index.js +1 -1
  151. package/es/components/fields/Slider/Gradation.js +1 -1
  152. package/es/components/fields/Slider/Header.js +1 -1
  153. package/es/components/fields/Slider/RangeSlider.js +1 -1
  154. package/es/components/fields/Slider/Slider.js +1 -1
  155. package/es/components/fields/Slider/SliderBase.js +1 -1
  156. package/es/components/fields/Slider/SliderInput.js +1 -1
  157. package/es/components/fields/Slider/SliderThumb.js +1 -1
  158. package/es/components/fields/Slider/SliderTrack.js +1 -1
  159. package/es/components/fields/Slider/elements.js +1 -1
  160. package/es/components/fields/Slider/index.js +1 -1
  161. package/es/components/fields/Slider/types.js +1 -1
  162. package/es/components/fields/Switch/Switch.js +1 -1
  163. package/es/components/fields/Switch/index.js +1 -1
  164. package/es/components/fields/TextArea/TextArea.js +1 -1
  165. package/es/components/fields/TextArea/index.js +1 -1
  166. package/es/components/fields/TextInput/TextInput.js +1 -1
  167. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  168. package/es/components/fields/TextInput/index.js +1 -1
  169. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  170. package/es/components/fields/TextInputMapper/index.js +1 -1
  171. package/es/components/fields/index.js +1 -1
  172. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  173. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  174. package/es/components/form/FieldWrapper/index.js +1 -1
  175. package/es/components/form/FieldWrapper/types.js +1 -1
  176. package/es/components/form/Form/Field.js +1 -1
  177. package/es/components/form/Form/Form.js +1 -1
  178. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  179. package/es/components/form/Form/ResetButton/index.js +1 -1
  180. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  181. package/es/components/form/Form/SubmitButton/index.js +1 -1
  182. package/es/components/form/Form/SubmitError.js +1 -1
  183. package/es/components/form/Form/index.js +1 -1
  184. package/es/components/form/Form/types.js +1 -1
  185. package/es/components/form/Form/use-field/index.js +1 -1
  186. package/es/components/form/Form/use-field/types.js +1 -1
  187. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  188. package/es/components/form/Form/use-field/use-field.js +1 -1
  189. package/es/components/form/Form/use-form.js +1 -1
  190. package/es/components/form/Form/validation.js +1 -1
  191. package/es/components/form/Label.js +1 -1
  192. package/es/components/form/index.js +1 -1
  193. package/es/components/form/wrapper.js +1 -1
  194. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  195. package/es/components/helpers/DisplayTransition/index.js +1 -1
  196. package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
  197. package/es/components/helpers/index.js +1 -1
  198. package/es/components/layout/Flex.js +1 -1
  199. package/es/components/layout/Flow.js +1 -1
  200. package/es/components/layout/Grid.js +1 -1
  201. package/es/components/layout/Panel.js +1 -1
  202. package/es/components/layout/Prefix.js +1 -1
  203. package/es/components/layout/ResizablePanel.js +1 -1
  204. package/es/components/layout/Space.js +1 -1
  205. package/es/components/layout/Suffix.js +1 -1
  206. package/es/components/navigation/Tabs/Tabs.js +920 -0
  207. package/es/components/navigation/Tabs/index.js +10 -0
  208. package/es/components/navigation/index.js +10 -0
  209. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  210. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  211. package/es/components/other/Calendar/Calendar.js +1 -1
  212. package/es/components/other/Calendar/CalendarCell.js +1 -1
  213. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  214. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  215. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  216. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  217. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  218. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  219. package/es/components/overlays/AlertDialog/index.js +1 -1
  220. package/es/components/overlays/AlertDialog/types.js +1 -1
  221. package/es/components/overlays/Dialog/Dialog.js +1 -1
  222. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  223. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  224. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  225. package/es/components/overlays/Dialog/context.js +1 -1
  226. package/es/components/overlays/Dialog/index.js +1 -1
  227. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  228. package/es/components/overlays/Modal/Modal.js +1 -1
  229. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  230. package/es/components/overlays/Modal/Overlay.js +1 -1
  231. package/es/components/overlays/Modal/Popover.js +1 -1
  232. package/es/components/overlays/Modal/Tray.js +1 -1
  233. package/es/components/overlays/Modal/Underlay.js +1 -1
  234. package/es/components/overlays/Modal/index.js +1 -1
  235. package/es/components/overlays/Modal/types.js +1 -1
  236. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  237. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  238. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  239. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  240. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  241. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  242. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  243. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  249. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  250. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  253. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  254. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  255. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  256. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  257. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  258. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  259. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  260. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  261. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  263. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  265. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  266. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  267. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  268. package/es/components/overlays/NewNotifications/index.js +1 -1
  269. package/es/components/overlays/NewNotifications/types.js +1 -1
  270. package/es/components/overlays/Notification/Notification.js +1 -1
  271. package/es/components/overlays/OverlayWrapper.js +1 -1
  272. package/es/components/overlays/Toasts/Toast.js +1 -1
  273. package/es/components/overlays/Toasts/index.js +1 -1
  274. package/es/components/overlays/Toasts/types.js +1 -1
  275. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  276. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  277. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  278. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  279. package/es/components/overlays/Tooltip/context.js +1 -1
  280. package/es/components/overlays/Tooltip/index.js +1 -1
  281. package/es/components/portal/Portal.js +1 -1
  282. package/es/components/portal/PortalProvider.js +1 -1
  283. package/es/components/portal/index.js +1 -1
  284. package/es/components/portal/types.js +1 -1
  285. package/es/components/portal/usePortal.js +1 -1
  286. package/es/components/shared/InvalidIcon.js +1 -1
  287. package/es/components/shared/ValidIcon.js +1 -1
  288. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  289. package/es/components/status/LoadingAnimation/index.js +1 -1
  290. package/es/components/status/Spin/Cube.js +1 -1
  291. package/es/components/status/Spin/InternalSpinner.js +1 -1
  292. package/es/components/status/Spin/Spin.js +1 -1
  293. package/es/components/status/Spin/SpinsContainer.js +1 -1
  294. package/es/components/status/Spin/index.js +1 -1
  295. package/es/components/status/Spin/types.js +1 -1
  296. package/es/components/status/index.js +1 -1
  297. package/es/data/item-themes.js +1 -1
  298. package/es/data/themes.js +1 -1
  299. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  300. package/es/icons/AdjustmentsIcon.js +1 -1
  301. package/es/icons/AiIcon.js +1 -1
  302. package/es/icons/AreaChartIcon.js +1 -1
  303. package/es/icons/BackwardIcon.js +1 -1
  304. package/es/icons/BarChartIcon.js +1 -1
  305. package/es/icons/BellFilledIcon.js +1 -1
  306. package/es/icons/BellIcon.js +1 -1
  307. package/es/icons/BooleanIcon.js +1 -1
  308. package/es/icons/CalendarEditIcon.js +1 -1
  309. package/es/icons/CalendarIcon.js +1 -1
  310. package/es/icons/CaretDownIcon.js +1 -1
  311. package/es/icons/CaretUpIcon.js +1 -1
  312. package/es/icons/ChartAreaStackedIcon.js +1 -1
  313. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  314. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  315. package/es/icons/ChartBarGroupedIcon.js +1 -1
  316. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  317. package/es/icons/ChartBarLineIcon.js +1 -1
  318. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  319. package/es/icons/ChartBarStackedIcon.js +1 -1
  320. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  321. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  322. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  323. package/es/icons/ChartBoxPlotIcon.js +1 -1
  324. package/es/icons/ChartBubbleIcon.js +1 -1
  325. package/es/icons/ChartDonut2Icon.js +1 -1
  326. package/es/icons/ChartFunnelIcon.js +1 -1
  327. package/es/icons/ChartHeatmapIcon.js +1 -1
  328. package/es/icons/ChartKPIIcon.js +1 -1
  329. package/es/icons/ChartPie2Icon.js +1 -1
  330. package/es/icons/ChartScatterIcon.js +1 -1
  331. package/es/icons/CheckCircleFilledIcon.js +1 -1
  332. package/es/icons/CheckCircleIcon.js +1 -1
  333. package/es/icons/CheckIcon.js +1 -1
  334. package/es/icons/CircleFilledIcon.js +1 -1
  335. package/es/icons/ClearIcon.js +1 -1
  336. package/es/icons/CloseCircleFilledIcon.js +1 -1
  337. package/es/icons/CloseCircleIcon.js +1 -1
  338. package/es/icons/CloseIcon.js +1 -1
  339. package/es/icons/CodeIcon.js +1 -1
  340. package/es/icons/ColumnTotalIcon.js +1 -1
  341. package/es/icons/CopyIcon.js +1 -1
  342. package/es/icons/CountIcon.js +1 -1
  343. package/es/icons/CubeIcon.js +1 -1
  344. package/es/icons/CubePauseIcon.js +1 -1
  345. package/es/icons/CubePlayIcon.js +1 -1
  346. package/es/icons/CurrencyDollarIcon.js +1 -1
  347. package/es/icons/DangerIcon.js +1 -1
  348. package/es/icons/DashboardIcon.js +1 -1
  349. package/es/icons/DatabaseIcon.js +1 -1
  350. package/es/icons/DecimalDecreaseIcon.js +1 -1
  351. package/es/icons/DecimalIncreaseIcon.js +1 -1
  352. package/es/icons/DirectionIcon.js +1 -1
  353. package/es/icons/DonutIcon.js +1 -1
  354. package/es/icons/DownIcon.js +1 -1
  355. package/es/icons/EditIcon.js +1 -1
  356. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  357. package/es/icons/ExclamationCircleIcon.js +1 -1
  358. package/es/icons/ExclamationIcon.js +1 -1
  359. package/es/icons/EyeIcon.js +1 -1
  360. package/es/icons/EyeInvisibleIcon.js +1 -1
  361. package/es/icons/FilterIcon.js +1 -1
  362. package/es/icons/FolderFilledIcon.js +1 -1
  363. package/es/icons/FolderIcon.js +1 -1
  364. package/es/icons/FolderOpenFilledIcon.js +1 -1
  365. package/es/icons/FolderOpenIcon.js +1 -1
  366. package/es/icons/ForwardIcon.js +1 -1
  367. package/es/icons/HierarchyIcon.js +1 -1
  368. package/es/icons/HierarchyOpenIcon.js +1 -1
  369. package/es/icons/Icon.js +1 -1
  370. package/es/icons/InfoCircleIcon.js +1 -1
  371. package/es/icons/InfoIcon.js +1 -1
  372. package/es/icons/KeyIcon.js +1 -1
  373. package/es/icons/LeftIcon.js +1 -1
  374. package/es/icons/LineChartIcon.js +1 -1
  375. package/es/icons/LoadingIcon.js +1 -1
  376. package/es/icons/LockFilledIcon.js +1 -1
  377. package/es/icons/LockIcon.js +1 -1
  378. package/es/icons/MoreIcon.js +1 -1
  379. package/es/icons/NotAllowedIcon.js +1 -1
  380. package/es/icons/Number123Icon.js +1 -1
  381. package/es/icons/NumberIcon.js +1 -1
  382. package/es/icons/PauseCircleFilledIcon.js +1 -1
  383. package/es/icons/PauseCircleIcon.js +1 -1
  384. package/es/icons/PauseIcon.js +1 -1
  385. package/es/icons/PercentageIcon.js +1 -1
  386. package/es/icons/PieChartIcon.js +1 -1
  387. package/es/icons/PlayCircleIcon.js +1 -1
  388. package/es/icons/PlayIcon.js +1 -1
  389. package/es/icons/PlusIcon.js +1 -1
  390. package/es/icons/ProgressBarIcon.js +1 -1
  391. package/es/icons/ReloadIcon.js +1 -1
  392. package/es/icons/ReportIcon.js +1 -1
  393. package/es/icons/ReturnIcon.js +1 -1
  394. package/es/icons/RightIcon.js +1 -1
  395. package/es/icons/RowTotalsIcon.js +1 -1
  396. package/es/icons/SchemeIcon.js +1 -1
  397. package/es/icons/SearchIcon.js +1 -1
  398. package/es/icons/SemanticQueryIcon.js +1 -1
  399. package/es/icons/SettingsIcon.js +1 -1
  400. package/es/icons/ShieldFilledIcon.js +1 -1
  401. package/es/icons/ShieldIcon.js +1 -1
  402. package/es/icons/SlashIcon.js +1 -1
  403. package/es/icons/SparklesIcon.js +1 -1
  404. package/es/icons/SqlIcon.js +1 -1
  405. package/es/icons/StatsIcon.js +1 -1
  406. package/es/icons/StopIcon.js +1 -1
  407. package/es/icons/StringIcon.js +1 -1
  408. package/es/icons/SubtotalsIcon.js +1 -1
  409. package/es/icons/SwitchIcon.js +1 -1
  410. package/es/icons/TableIcon.js +1 -1
  411. package/es/icons/ThumbsDownIcon.js +1 -1
  412. package/es/icons/ThumbsUpIcon.js +1 -1
  413. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  414. package/es/icons/ThunderboltFilledIcon.js +1 -1
  415. package/es/icons/ThunderboltIcon.js +1 -1
  416. package/es/icons/TimeIcon.js +1 -1
  417. package/es/icons/TrashIcon.js +1 -1
  418. package/es/icons/UnlockIcon.js +1 -1
  419. package/es/icons/UpIcon.js +1 -1
  420. package/es/icons/UserGroupIcon.js +1 -1
  421. package/es/icons/UserIcon.js +1 -1
  422. package/es/icons/UserLockIcon.js +1 -1
  423. package/es/icons/ViewIcon.js +1 -1
  424. package/es/icons/WarningFilledIcon.js +1 -1
  425. package/es/icons/WarningIcon.js +1 -1
  426. package/es/icons/index.js +1 -1
  427. package/es/icons/wrap-icon.js +1 -1
  428. package/es/index.js +15 -1
  429. package/es/provider.js +1 -1
  430. package/es/providers/TrackingProvider.js +1 -1
  431. package/es/providers/navigation.types.js +1 -1
  432. package/es/providers/navigationAdapter.default.js +1 -1
  433. package/es/services/notification.js +1 -1
  434. package/es/shared/form.js +1 -1
  435. package/es/shared/index.js +1 -1
  436. package/es/stories/Form.legacy-stories.js +1 -1
  437. package/es/stories/FormFieldArgs.js +1 -1
  438. package/es/stories/SimpleLayout.stories.js +1 -1
  439. package/es/stories/Tasty.stories.js +1 -1
  440. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  441. package/es/stories/components/DialogFormApp.js +1 -1
  442. package/es/stories/components/StyledButton.js +1 -1
  443. package/es/stories/lists/baseProps.js +1 -1
  444. package/es/stories/playground/PlaygroundEditor.js +1 -1
  445. package/es/stories/playground/PlaygroundLayout.js +1 -1
  446. package/es/stories/playground/PlaygroundOutput.js +1 -1
  447. package/es/stories/playground/PlaygroundPreview.js +1 -1
  448. package/es/stories/playground/components/Button.js +1 -1
  449. package/es/stories/playground/components/Card.js +1 -1
  450. package/es/stories/playground/components/ScrollProgress.js +1 -1
  451. package/es/stories/playground/examples.js +1 -1
  452. package/es/tasty/chunks/cacheKey.js +1 -1
  453. package/es/tasty/chunks/definitions.js +97 -45
  454. package/es/tasty/chunks/index.js +2 -2
  455. package/es/tasty/chunks/renderChunk.js +1 -1
  456. package/es/tasty/config.js +88 -4
  457. package/es/tasty/debug.js +5 -5
  458. package/es/tasty/hooks/index.js +3 -1
  459. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  460. package/es/tasty/hooks/useKeyframes.js +82 -0
  461. package/es/tasty/hooks/useProperty.js +100 -0
  462. package/es/tasty/hooks/useRawCSS.js +1 -1
  463. package/es/tasty/hooks/useStyles.js +16 -2
  464. package/es/tasty/index.js +3 -3
  465. package/es/tasty/injector/index.js +39 -1
  466. package/es/tasty/injector/injector.js +67 -16
  467. package/es/tasty/injector/sheet-manager.js +2 -2
  468. package/es/tasty/injector/types.js +1 -1
  469. package/es/tasty/keyframes/index.js +1 -1
  470. package/es/tasty/parser/classify.js +174 -4
  471. package/es/tasty/parser/const.js +3 -1
  472. package/es/tasty/parser/lru.js +1 -1
  473. package/es/tasty/parser/parser.js +51 -22
  474. package/es/tasty/parser/tokenizer.js +31 -12
  475. package/es/tasty/parser/types.js +29 -4
  476. package/es/tasty/pipeline/conditions.js +1 -1
  477. package/es/tasty/pipeline/exclusive.js +1 -1
  478. package/es/tasty/pipeline/index.js +1 -1
  479. package/es/tasty/pipeline/materialize.js +1 -1
  480. package/es/tasty/pipeline/parseStateKey.js +1 -1
  481. package/es/tasty/pipeline/simplify.js +1 -1
  482. package/es/tasty/plugins/index.js +1 -1
  483. package/es/tasty/plugins/okhsl-plugin.js +1 -1
  484. package/es/tasty/plugins/types.js +1 -1
  485. package/es/tasty/properties/index.js +211 -0
  486. package/es/tasty/states/index.js +8 -2
  487. package/es/tasty/static/index.js +1 -1
  488. package/es/tasty/static/tastyStatic.js +1 -1
  489. package/es/tasty/static/types.js +1 -1
  490. package/es/tasty/styles/align.js +1 -1
  491. package/es/tasty/styles/border.js +114 -20
  492. package/es/tasty/styles/boxShadow.combinator.js +2 -2
  493. package/es/tasty/styles/color.js +2 -2
  494. package/es/tasty/styles/createStyle.js +1 -1
  495. package/es/tasty/styles/dimension.js +100 -53
  496. package/es/tasty/styles/display.js +84 -4
  497. package/es/tasty/styles/fade.js +46 -13
  498. package/es/tasty/styles/fill.js +58 -9
  499. package/es/tasty/styles/flow.js +1 -1
  500. package/es/tasty/styles/gap.js +1 -1
  501. package/es/tasty/styles/height.js +4 -4
  502. package/es/tasty/styles/index.js +4 -3
  503. package/es/tasty/styles/inset.js +173 -23
  504. package/es/tasty/styles/justify.js +1 -1
  505. package/es/tasty/styles/list.js +2 -2
  506. package/es/tasty/styles/margin.js +1 -1
  507. package/es/tasty/styles/outline.js +48 -21
  508. package/es/tasty/styles/padding.js +1 -1
  509. package/es/tasty/styles/place.js +1 -1
  510. package/es/tasty/styles/predefined.js +245 -37
  511. package/es/tasty/styles/preset.js +140 -40
  512. package/es/tasty/styles/radius.js +2 -2
  513. package/es/tasty/styles/reset.js +1 -1
  514. package/es/tasty/styles/scrollbar.js +1 -1
  515. package/es/tasty/styles/shadow.js +2 -2
  516. package/es/tasty/styles/styledScrollbar.js +1 -1
  517. package/es/tasty/styles/transition.js +20 -2
  518. package/es/tasty/styles/types.js +1 -1
  519. package/es/tasty/styles/width.js +4 -4
  520. package/es/tasty/tasty.js +94 -113
  521. package/es/tasty/types.js +1 -1
  522. package/es/tasty/utils/cache-wrapper.js +1 -1
  523. package/es/tasty/utils/case-converter.js +1 -1
  524. package/es/tasty/utils/colors.js +1 -1
  525. package/es/tasty/utils/dotize.js +1 -1
  526. package/es/tasty/utils/filterBaseProps.js +1 -1
  527. package/es/tasty/utils/getDisplayName.js +1 -1
  528. package/es/tasty/utils/isDevEnv.js +1 -1
  529. package/es/tasty/utils/mergeStyles.js +1 -1
  530. package/es/tasty/utils/modAttrs.js +1 -1
  531. package/es/tasty/utils/processTokens.js +1 -1
  532. package/es/tasty/utils/string.js +1 -1
  533. package/es/tasty/utils/styles.js +51 -12
  534. package/es/tasty/utils/typography.js +1 -1
  535. package/es/tasty/utils/warnings.js +1 -1
  536. package/es/tasty/zero/babel.js +5 -22
  537. package/es/tasty/zero/css-writer.js +1 -1
  538. package/es/tasty/zero/extractor.js +1 -1
  539. package/es/tasty/zero/index.js +1 -1
  540. package/es/tasty/zero/next.js +1 -1
  541. package/es/tokens/base.js +5 -1
  542. package/es/tokens/colors.js +1 -1
  543. package/es/tokens/index.js +1 -1
  544. package/es/tokens/layout.js +1 -1
  545. package/es/tokens/shadows.js +1 -1
  546. package/es/tokens/sizes.js +1 -1
  547. package/es/tokens/spacing.js +1 -1
  548. package/es/tokens/typography.js +1 -1
  549. package/es/utils/ResizeSensor.js +1 -1
  550. package/es/utils/index.js +1 -1
  551. package/es/utils/modules.js +1 -1
  552. package/es/utils/promise.js +1 -1
  553. package/es/utils/raf.js +1 -1
  554. package/es/utils/random.js +1 -1
  555. package/es/utils/range.js +1 -1
  556. package/es/utils/react/RenderCache.js +1 -1
  557. package/es/utils/react/Slots.js +1 -1
  558. package/es/utils/react/chain.js +1 -1
  559. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  560. package/es/utils/react/index.js +1 -1
  561. package/es/utils/react/interactions.js +1 -1
  562. package/es/utils/react/isTextOnly.js +1 -1
  563. package/es/utils/react/mapProps.js +1 -1
  564. package/es/utils/react/mergeProps.js +1 -1
  565. package/es/utils/react/nullableValue.js +1 -1
  566. package/es/utils/react/resolveIcon.js +1 -1
  567. package/es/utils/react/sharedStore.js +1 -1
  568. package/es/utils/react/useCombinedRefs.js +1 -1
  569. package/es/utils/react/useControlledFocusVisible.js +1 -1
  570. package/es/utils/react/useEventBus.js +1 -1
  571. package/es/utils/react/useId.js +1 -1
  572. package/es/utils/react/useIsDarwin.js +1 -1
  573. package/es/utils/react/useKeySymbols.js +1 -1
  574. package/es/utils/react/useLayoutEffect.js +1 -1
  575. package/es/utils/react/useLocalStorage.js +1 -1
  576. package/es/utils/react/useQaProps.js +1 -1
  577. package/es/utils/react/useViewportSize.js +1 -1
  578. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  579. package/es/utils/tree.js +1 -1
  580. package/es/utils/warnings.js +1 -1
  581. package/es/version.js +2 -2
  582. package/package.json +1 -1
  583. package/types/components/HiddenInput.d.ts +6 -5
  584. package/types/components/actions/Button/Button.d.ts +18 -16
  585. package/types/components/actions/CommandMenu/styled.d.ts +30 -25
  586. package/types/components/actions/Menu/styled.d.ts +549 -541
  587. package/types/components/content/Item/Item.d.ts +7 -0
  588. package/types/components/content/Layout/hooks/useTinyScrollbar.d.ts +6 -0
  589. package/types/components/content/List/SectionHeading.d.ts +173 -172
  590. package/types/components/content/Text.d.ts +1197 -1190
  591. package/types/components/fields/DatePicker/DatePickerElement.d.ts +173 -172
  592. package/types/components/fields/Select/Select.d.ts +6 -5
  593. package/types/components/fields/Slider/elements.d.ts +36 -30
  594. package/types/components/navigation/Tabs/Tabs.d.ts +236 -0
  595. package/types/components/navigation/Tabs/index.d.ts +2 -0
  596. package/types/components/navigation/index.d.ts +2 -0
  597. package/types/index.d.ts +1 -0
  598. package/types/tasty/chunks/definitions.d.ts +63 -18
  599. package/types/tasty/chunks/index.d.ts +1 -1
  600. package/types/tasty/config.d.ts +97 -1
  601. package/types/tasty/hooks/index.d.ts +3 -0
  602. package/types/tasty/hooks/useKeyframes.d.ts +52 -0
  603. package/types/tasty/hooks/useProperty.d.ts +75 -0
  604. package/types/tasty/index.d.ts +3 -2
  605. package/types/tasty/injector/index.d.ts +57 -1
  606. package/types/tasty/injector/injector.d.ts +19 -7
  607. package/types/tasty/injector/types.d.ts +14 -2
  608. package/types/tasty/parser/const.d.ts +1 -0
  609. package/types/tasty/parser/parser.d.ts +6 -0
  610. package/types/tasty/parser/tokenizer.d.ts +1 -1
  611. package/types/tasty/parser/types.d.ts +31 -1
  612. package/types/tasty/plugins/types.d.ts +20 -1
  613. package/types/tasty/properties/index.d.ts +90 -0
  614. package/types/tasty/styles/border.d.ts +11 -3
  615. package/types/tasty/styles/boxShadow.combinator.d.ts +2 -2
  616. package/types/tasty/styles/color.d.ts +2 -2
  617. package/types/tasty/styles/dimension.d.ts +16 -1
  618. package/types/tasty/styles/display.d.ts +24 -6
  619. package/types/tasty/styles/fade.d.ts +3 -3
  620. package/types/tasty/styles/fill.d.ts +16 -6
  621. package/types/tasty/styles/height.d.ts +7 -3
  622. package/types/tasty/styles/index.d.ts +3 -1
  623. package/types/tasty/styles/inset.d.ts +35 -3
  624. package/types/tasty/styles/list.d.ts +3 -3
  625. package/types/tasty/styles/outline.d.ts +17 -11
  626. package/types/tasty/styles/predefined.d.ts +98 -1
  627. package/types/tasty/styles/preset.d.ts +23 -4
  628. package/types/tasty/styles/radius.d.ts +2 -2
  629. package/types/tasty/styles/shadow.d.ts +2 -2
  630. package/types/tasty/styles/types.d.ts +74 -22
  631. package/types/tasty/styles/width.d.ts +7 -3
  632. package/types/tasty/tasty.d.ts +6 -5
  633. package/types/tasty/utils/styles.d.ts +27 -4
  634. package/types/tasty/zero/babel.d.ts +47 -0
  635. package/es/tasty/styles/font.js +0 -23
  636. package/es/tasty/styles/fontStyle.js +0 -19
  637. package/es/tasty/styles/groupRadius.js +0 -61
  638. package/types/tasty/styles/font.d.ts +0 -9
  639. package/types/tasty/styles/fontStyle.d.ts +0 -8
  640. package/types/tasty/styles/groupRadius.d.ts +0 -11
@@ -1,23 +1,32 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
+ const isWhitespace = (ch) => ch === ' ' || ch === '\n' || ch === '\t' || ch === '\r' || ch === '\f';
8
9
  export function scan(src, cb) {
9
10
  let depth = 0;
10
11
  let inUrl = false;
11
12
  let inQuote = 0;
12
13
  let start = 0;
13
14
  let i = 0;
14
- const flush = (isComma) => {
15
+ // Track if we just saw a standalone slash separator (whitespace before, whitespace after)
16
+ let pendingSlash = false;
17
+ const flush = (isComma, isSlash) => {
18
+ // If we have a pending slash, emit the part break
19
+ const actualSlash = isSlash || pendingSlash;
20
+ pendingSlash = false;
15
21
  if (start < i) {
16
22
  const prevChar = start > 0 ? src[start - 1] : null;
17
- cb(src.slice(start, i), isComma, prevChar);
23
+ cb(src.slice(start, i), isComma, actualSlash, prevChar);
18
24
  }
19
25
  else if (isComma) {
20
- cb('', true, null); // empty token followed by comma => group break.
26
+ cb('', true, false, null); // empty token followed by comma => group break.
27
+ }
28
+ else if (actualSlash) {
29
+ cb('', false, true, null); // empty token followed by slash => part break.
21
30
  }
22
31
  start = i + 1;
23
32
  };
@@ -54,20 +63,30 @@ export function scan(src, cb) {
54
63
  continue; // inside url(...) treat everything as part of token
55
64
  if (!depth) {
56
65
  if (ch === ',') {
57
- flush(true);
66
+ flush(true, false);
67
+ continue;
68
+ }
69
+ // Slash is only a separator when surrounded by whitespace (e.g., "a / b")
70
+ // This preserves CSS patterns like "center/cover" as single tokens
71
+ if (ch === '/') {
72
+ const prevIsWhitespace = isWhitespace(src[i - 1]);
73
+ const nextIsWhitespace = isWhitespace(src[i + 1]);
74
+ if (prevIsWhitespace && nextIsWhitespace) {
75
+ // Already flushed by whitespace before, mark pending slash
76
+ pendingSlash = true;
77
+ start = i + 1; // skip the slash character
78
+ continue;
79
+ }
80
+ // Not surrounded by whitespace - treat as part of token
58
81
  continue;
59
82
  }
60
- if (ch === ' ' ||
61
- ch === '\n' ||
62
- ch === '\t' ||
63
- ch === '\r' ||
64
- ch === '\f') {
65
- flush(false);
83
+ if (isWhitespace(ch)) {
84
+ flush(false, false);
66
85
  continue;
67
86
  }
68
87
  }
69
88
  }
70
- flush(false); // tail
89
+ flush(false, false); // tail
71
90
  }
72
91
 
73
92
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -11,6 +11,13 @@ export var Bucket;
11
11
  Bucket[Bucket["Value"] = 1] = "Value";
12
12
  Bucket[Bucket["Mod"] = 2] = "Mod";
13
13
  })(Bucket || (Bucket = {}));
14
+ export const makeEmptyPart = () => ({
15
+ mods: [],
16
+ values: [],
17
+ colors: [],
18
+ all: [],
19
+ output: '',
20
+ });
14
21
  export const makeEmptyDetails = () => ({
15
22
  input: '',
16
23
  output: '',
@@ -18,10 +25,28 @@ export const makeEmptyDetails = () => ({
18
25
  values: [],
19
26
  colors: [],
20
27
  all: [],
28
+ parts: [],
21
29
  });
22
- export const finalizeGroup = (d) => {
23
- // Join processed pieces already stored in `all` with single spaces.
24
- d.output = d.all.join(' ');
30
+ export const finalizePart = (p) => {
31
+ p.output = p.all.join(' ');
32
+ return p;
33
+ };
34
+ /**
35
+ * Aggregate parts into a StyleDetails group.
36
+ * Combines all parts' arrays into group-level arrays for backward compatibility.
37
+ */
38
+ export const finalizeGroup = (d, parts) => {
39
+ // Store parts
40
+ d.parts = parts;
41
+ // Aggregate all parts into group-level arrays
42
+ for (const part of parts) {
43
+ d.mods.push(...part.mods);
44
+ d.values.push(...part.values);
45
+ d.colors.push(...part.colors);
46
+ d.all.push(...part.all);
47
+ }
48
+ // Join parts' outputs with ' / ' for the group output
49
+ d.output = parts.map((p) => p.output).join(' / ');
25
50
  return d;
26
51
  };
27
52
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -0,0 +1,211 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.100.0
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ /**
9
+ * Properties Utilities
10
+ *
11
+ * Utilities for extracting and processing CSS @property definitions in styles.
12
+ * Unlike keyframes, properties are permanent once registered and don't need cleanup.
13
+ *
14
+ * Property names use tasty token syntax:
15
+ * - `$name` for regular properties → `--name`
16
+ * - `#name` for color properties → `--name-color` (auto-sets syntax: '<color>')
17
+ */
18
+ // ============================================================================
19
+ // Constants
20
+ // ============================================================================
21
+ const PROPERTIES_KEY = '@properties';
22
+ /**
23
+ * Valid CSS custom property name pattern (after the -- prefix).
24
+ * Must start with a letter or underscore, followed by letters, digits, hyphens, or underscores.
25
+ */
26
+ const VALID_PROPERTY_NAME_PATTERN = /^[a-z_][a-z0-9-_]*$/i;
27
+ // ============================================================================
28
+ // Validation Functions
29
+ // ============================================================================
30
+ /**
31
+ * Validate a CSS custom property name (the part after --).
32
+ * Returns true if the name is valid for use as a CSS custom property.
33
+ */
34
+ export function isValidPropertyName(name) {
35
+ return VALID_PROPERTY_NAME_PATTERN.test(name);
36
+ }
37
+ // ============================================================================
38
+ // Extraction Functions
39
+ // ============================================================================
40
+ /**
41
+ * Check if styles object has local @properties definition.
42
+ * Fast path: single property lookup.
43
+ */
44
+ export function hasLocalProperties(styles) {
45
+ return PROPERTIES_KEY in styles;
46
+ }
47
+ /**
48
+ * Extract local @properties from styles object.
49
+ * Returns null if no local properties (fast path).
50
+ */
51
+ export function extractLocalProperties(styles) {
52
+ const properties = styles[PROPERTIES_KEY];
53
+ if (!properties || typeof properties !== 'object') {
54
+ return null;
55
+ }
56
+ return properties;
57
+ }
58
+ // ============================================================================
59
+ // Token Parsing Functions
60
+ // ============================================================================
61
+ /**
62
+ * Parse a property token name and return the CSS property name and whether it's a color.
63
+ * Supports tasty token syntax and validates the property name.
64
+ *
65
+ * Token formats:
66
+ * - `$name` → { cssName: '--name', isColor: false }
67
+ * - `#name` → { cssName: '--name-color', isColor: true }
68
+ * - `--name` → { cssName: '--name', isColor: false } (legacy, auto-detect color by suffix)
69
+ * - `name` → { cssName: '--name', isColor: false } (legacy)
70
+ *
71
+ * @param token - The property token to parse
72
+ * @returns Parsed result with cssName, isColor, isValid, and optional error
73
+ */
74
+ export function parsePropertyToken(token) {
75
+ if (!token || typeof token !== 'string') {
76
+ return {
77
+ cssName: '',
78
+ isColor: false,
79
+ isValid: false,
80
+ error: 'Property token must be a non-empty string',
81
+ };
82
+ }
83
+ let name;
84
+ let isColor;
85
+ if (token.startsWith('$')) {
86
+ // Regular property token: $name → --name
87
+ name = token.slice(1);
88
+ isColor = false;
89
+ }
90
+ else if (token.startsWith('#')) {
91
+ // Color property token: #name → --name-color
92
+ name = token.slice(1);
93
+ isColor = true;
94
+ }
95
+ else if (token.startsWith('--')) {
96
+ // Legacy format with -- prefix
97
+ name = token.slice(2);
98
+ isColor = token.endsWith('-color');
99
+ }
100
+ else {
101
+ // Legacy format without prefix
102
+ name = token;
103
+ isColor = token.endsWith('-color');
104
+ }
105
+ // Validate the name
106
+ if (!name) {
107
+ return {
108
+ cssName: '',
109
+ isColor,
110
+ isValid: false,
111
+ error: 'Property name cannot be empty',
112
+ };
113
+ }
114
+ if (!isValidPropertyName(name)) {
115
+ return {
116
+ cssName: '',
117
+ isColor,
118
+ isValid: false,
119
+ error: `Invalid property name "${name}". Must start with a letter or underscore, followed by letters, digits, hyphens, or underscores.`,
120
+ };
121
+ }
122
+ // Build the CSS custom property name
123
+ // For #name tokens, we add -color suffix
124
+ // For legacy formats (--name-color or name-color), the name already includes -color
125
+ let cssName;
126
+ if (token.startsWith('#')) {
127
+ // Color token: #name → --name-color
128
+ cssName = `--${name}-color`;
129
+ }
130
+ else {
131
+ // All other formats: just add -- prefix
132
+ cssName = `--${name}`;
133
+ }
134
+ return {
135
+ cssName,
136
+ isColor,
137
+ isValid: true,
138
+ };
139
+ }
140
+ // ============================================================================
141
+ // Normalization Functions
142
+ // ============================================================================
143
+ /**
144
+ * Normalize a property name to the CSS custom property format.
145
+ *
146
+ * @deprecated Use parsePropertyToken instead for proper token handling
147
+ */
148
+ export function normalizePropertyName(name) {
149
+ const result = parsePropertyToken(name);
150
+ return result.isValid ? result.cssName : `--${name}`;
151
+ }
152
+ /**
153
+ * Normalize a property definition to a consistent string representation.
154
+ * Used for comparing definitions to detect changes/conflicts.
155
+ *
156
+ * Keys are sorted alphabetically to ensure consistent comparison:
157
+ * { inherits: true, syntax: '<color>' } === { syntax: '<color>', inherits: true }
158
+ */
159
+ export function normalizePropertyDefinition(def) {
160
+ const normalized = {};
161
+ // Add properties in alphabetical order
162
+ if (def.inherits !== undefined) {
163
+ normalized.inherits = def.inherits;
164
+ }
165
+ if (def.initialValue !== undefined) {
166
+ normalized.initialValue = String(def.initialValue);
167
+ }
168
+ if (def.syntax !== undefined) {
169
+ normalized.syntax = def.syntax;
170
+ }
171
+ return JSON.stringify(normalized);
172
+ }
173
+ /**
174
+ * Get the effective property definition for a token.
175
+ * For color tokens (#name), auto-sets syntax to '<color>' and defaults initialValue to 'transparent'.
176
+ *
177
+ * @param token - Property token ($name, #name, --name, or plain name)
178
+ * @param userDefinition - User-provided definition options
179
+ * @returns Effective definition with cssName, definition, isValid, and optional error
180
+ */
181
+ export function getEffectiveDefinition(token, userDefinition) {
182
+ const parsed = parsePropertyToken(token);
183
+ if (!parsed.isValid) {
184
+ return {
185
+ cssName: '',
186
+ definition: userDefinition,
187
+ isValid: false,
188
+ error: parsed.error,
189
+ };
190
+ }
191
+ if (parsed.isColor) {
192
+ // Color properties have fixed syntax and default initialValue
193
+ return {
194
+ cssName: parsed.cssName,
195
+ definition: {
196
+ syntax: '<color>', // Always '<color>' for color tokens, cannot be overridden
197
+ inherits: userDefinition.inherits, // Allow inherits to be customized
198
+ initialValue: userDefinition.initialValue ?? 'transparent', // Default to transparent
199
+ },
200
+ isValid: true,
201
+ };
202
+ }
203
+ // Regular properties use the definition as-is
204
+ return {
205
+ cssName: parsed.cssName,
206
+ definition: userDefinition,
207
+ isValid: true,
208
+ };
209
+ }
210
+
211
+
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -14,7 +14,12 @@
14
14
  import { hasStylesGenerated } from '../config.js';
15
15
  import { isDevEnv } from '../utils/isDevEnv.js';
16
16
  // Built-in state names that cannot be overridden
17
- const BUILTIN_STATES = new Set(['@starting', '@keyframes', '@supports']);
17
+ const BUILTIN_STATES = new Set([
18
+ '@starting',
19
+ '@keyframes',
20
+ '@properties',
21
+ '@supports',
22
+ ]);
18
23
  // Reserved prefixes that are built-in
19
24
  const RESERVED_PREFIXES = [
20
25
  '@media',
@@ -23,6 +28,7 @@ const RESERVED_PREFIXES = [
23
28
  '@(',
24
29
  '@starting',
25
30
  '@keyframes',
31
+ '@properties',
26
32
  '@supports',
27
33
  ];
28
34
  // Global predefined states storage
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -19,9 +19,39 @@ const BORDER_STYLES = [
19
19
  'outset',
20
20
  ];
21
21
  /**
22
+ * Process a single group and return border values for its directions.
23
+ * @returns Object with directions as keys and border values, or null for "all directions"
24
+ */
25
+ function processGroup(group) {
26
+ const { values, mods, colors } = group;
27
+ const directions = filterMods(mods, DIRECTIONS);
28
+ const typeMods = filterMods(mods, BORDER_STYLES);
29
+ const width = values[0] || 'var(--border-width)';
30
+ const style = typeMods[0] || 'solid';
31
+ const color = colors?.[0] || 'var(--border-color)';
32
+ return {
33
+ directions,
34
+ borderValue: { width, style, color },
35
+ };
36
+ }
37
+ /**
38
+ * Format a border value to CSS string.
39
+ */
40
+ function formatBorderValue(value) {
41
+ return `${value.width} ${value.style} ${value.color}`;
42
+ }
43
+ /**
44
+ * Border style handler with multi-group support.
45
+ *
46
+ * Single group (backward compatible):
47
+ * - `border="1bw solid #red"` - all sides
48
+ * - `border="1bw solid #red top left"` - only top and left
49
+ *
50
+ * Multi-group (new):
51
+ * - `border="1bw #red, 2bw #blue top"` - all sides red 1bw, then top overridden to blue 2bw
52
+ * - `border="1bw, dashed top bottom, #purple left right"` - base 1bw, dashed on top/bottom, purple on left/right
22
53
  *
23
- * @param border
24
- * @return {{border: string}|*}
54
+ * Later groups override earlier groups for conflicting directions.
25
55
  */
26
56
  export function borderStyle({ border }) {
27
57
  if (!border && border !== 0)
@@ -29,27 +59,91 @@ export function borderStyle({ border }) {
29
59
  if (border === true)
30
60
  border = '1bw';
31
61
  const processed = parseStyle(String(border));
32
- const { values, mods, colors } = processed.groups[0] ??
33
- { values: [], mods: [], colors: [] };
34
- const directions = filterMods(mods, DIRECTIONS);
35
- const typeMods = filterMods(mods, BORDER_STYLES);
36
- const value = values[0] || 'var(--border-width)';
37
- const type = typeMods[0] || 'solid';
38
- const borderColor = (colors && colors[0]) || 'var(--border-color)';
39
- const styleValue = [value, type, borderColor].join(' ');
40
- if (!directions.length) {
41
- return { border: styleValue };
62
+ const groups = processed.groups ?? [];
63
+ if (!groups.length)
64
+ return;
65
+ // Single group - use original logic for backward compatibility
66
+ if (groups.length === 1) {
67
+ const { directions, borderValue } = processGroup({
68
+ values: groups[0].values ?? [],
69
+ mods: groups[0].mods ?? [],
70
+ colors: groups[0].colors ?? [],
71
+ });
72
+ const styleValue = formatBorderValue(borderValue);
73
+ if (!directions.length) {
74
+ return { border: styleValue };
75
+ }
76
+ const zeroValue = `0 ${borderValue.style} ${borderValue.color}`;
77
+ return DIRECTIONS.reduce((styles, dir) => {
78
+ if (directions.includes(dir)) {
79
+ styles[`border-${dir}`] = styleValue;
80
+ }
81
+ else {
82
+ styles[`border-${dir}`] = zeroValue;
83
+ }
84
+ return styles;
85
+ }, {});
86
+ }
87
+ // Multi-group - process groups in order, later groups override earlier
88
+ // Track whether any group specifies directions
89
+ let hasAnyDirections = false;
90
+ // Build a map of direction -> border value
91
+ // Start with undefined (no border set)
92
+ const directionMap = {
93
+ top: null,
94
+ right: null,
95
+ bottom: null,
96
+ left: null,
97
+ };
98
+ // Track the last "all directions" value for fallback
99
+ let allDirectionsValue = null;
100
+ // Process groups in order (first to last)
101
+ for (const group of groups) {
102
+ const { directions, borderValue } = processGroup({
103
+ values: group.values ?? [],
104
+ mods: group.mods ?? [],
105
+ colors: group.colors ?? [],
106
+ });
107
+ if (directions.length === 0) {
108
+ // No specific directions - applies to all
109
+ allDirectionsValue = borderValue;
110
+ // Set all directions
111
+ for (const dir of DIRECTIONS) {
112
+ directionMap[dir] = borderValue;
113
+ }
114
+ }
115
+ else {
116
+ // Specific directions - override only those
117
+ hasAnyDirections = true;
118
+ for (const dir of directions) {
119
+ directionMap[dir] = borderValue;
120
+ }
121
+ }
42
122
  }
43
- const zeroValue = [0, type, borderColor].join(' ');
44
- return DIRECTIONS.reduce((styles, dir) => {
45
- if (mods.includes(dir)) {
46
- styles[`border-${dir}`] = styleValue;
123
+ // If no group specified any directions and we have an all-directions value,
124
+ // return the simple `border` shorthand
125
+ if (!hasAnyDirections && allDirectionsValue) {
126
+ return { border: formatBorderValue(allDirectionsValue) };
127
+ }
128
+ // Otherwise, output individual border-* properties
129
+ const result = {};
130
+ for (const dir of DIRECTIONS) {
131
+ const value = directionMap[dir];
132
+ if (value) {
133
+ result[`border-${dir}`] = formatBorderValue(value);
47
134
  }
48
135
  else {
49
- styles[`border-${dir}`] = zeroValue;
136
+ // No border for this direction - set to 0
137
+ // Use the last all-directions value for style/color consistency, or defaults
138
+ const fallback = allDirectionsValue || {
139
+ width: '0',
140
+ style: 'solid',
141
+ color: 'var(--border-color)',
142
+ };
143
+ result[`border-${dir}`] = `0 ${fallback.style} ${fallback.color}`;
50
144
  }
51
- return styles;
52
- }, {});
145
+ }
146
+ return result;
53
147
  }
54
148
  borderStyle.__lookupStyles = ['border'];
55
149
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.100.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -15,7 +15,7 @@ export function boxShadowCombinator(styles) {
15
15
  return list;
16
16
  }, []);
17
17
  if (!values.length)
18
- return '';
18
+ return;
19
19
  return { 'box-shadow': values.join(', ') };
20
20
  }
21
21
  boxShadowCombinator.__lookupStyles = ['outline', 'shadow'];