@cube-dev/ui-kit 0.116.1 → 0.116.2

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 (577) hide show
  1. package/dist/CHANGELOG.md +12 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/_virtual/_rolldown/runtime.js +1 -1
  12. package/dist/chunks/cacheKey.js +1 -1
  13. package/dist/chunks/definitions.js +1 -1
  14. package/dist/chunks/renderChunk.js +1 -1
  15. package/dist/components/Block.js +1 -1
  16. package/dist/components/CollectionItem.js +1 -1
  17. package/dist/components/GlobalStyles.js +1 -1
  18. package/dist/components/GridProvider.js +1 -1
  19. package/dist/components/HiddenInput.js +1 -1
  20. package/dist/components/Root.js +1 -1
  21. package/dist/components/actions/Action/Action.js +1 -1
  22. package/dist/components/actions/Banner/Banner.js +10 -6
  23. package/dist/components/actions/Banner/Banner.js.map +1 -1
  24. package/dist/components/actions/Button/Button.d.ts +5 -4
  25. package/dist/components/actions/Button/Button.js +1 -1
  26. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/index.js +1 -1
  42. package/dist/components/actions/use-action.js +1 -1
  43. package/dist/components/actions/use-anchored-menu.js +1 -1
  44. package/dist/components/actions/use-context-menu.js +1 -1
  45. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/dist/components/content/Alert/Alert.js +1 -1
  47. package/dist/components/content/Alert/use-alert.js +1 -1
  48. package/dist/components/content/Avatar/Avatar.js +1 -1
  49. package/dist/components/content/Badge/Badge.js +1 -1
  50. package/dist/components/content/Card/Card.js +1 -1
  51. package/dist/components/content/Content.js +1 -1
  52. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  53. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  54. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  55. package/dist/components/content/Divider.js +1 -1
  56. package/dist/components/content/Footer.js +1 -1
  57. package/dist/components/content/Header.js +1 -1
  58. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  59. package/dist/components/content/Item/Item.js +1 -1
  60. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  61. package/dist/components/content/Layout/GridLayout.js +1 -1
  62. package/dist/components/content/Layout/Layout.js +1 -1
  63. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  64. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  65. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  66. package/dist/components/content/Layout/LayoutContent.js +1 -1
  67. package/dist/components/content/Layout/LayoutContext.js +1 -1
  68. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  69. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  70. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  71. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutPane.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  76. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  77. package/dist/components/content/Layout/index.js +1 -1
  78. package/dist/components/content/Layout/utils.js +1 -1
  79. package/dist/components/content/Paragraph.js +1 -1
  80. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  81. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  82. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  83. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  84. package/dist/components/content/Result/Result.js +1 -1
  85. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  86. package/dist/components/content/Tag/Tag.js +1 -1
  87. package/dist/components/content/Text.d.ts +28 -28
  88. package/dist/components/content/Text.js +1 -1
  89. package/dist/components/content/TextItem/TextItem.js +1 -1
  90. package/dist/components/content/Title.js +1 -1
  91. package/dist/components/content/highlightText.js +1 -1
  92. package/dist/components/content/use-auto-tooltip.js +1 -1
  93. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  94. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  95. package/dist/components/fields/Checkbox/context.js +1 -1
  96. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  97. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  98. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  99. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  100. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  101. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  102. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  103. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  104. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  105. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  106. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  107. package/dist/components/fields/DatePicker/intl.js +1 -1
  108. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  109. package/dist/components/fields/DatePicker/props.js +1 -1
  110. package/dist/components/fields/DatePicker/utils.js +1 -1
  111. package/dist/components/fields/FileInput/FileInput.js +1 -1
  112. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  113. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  114. package/dist/components/fields/Input/Input.js +1 -1
  115. package/dist/components/fields/ListBox/ListBox.js +1 -1
  116. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  117. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  118. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  119. package/dist/components/fields/Picker/Picker.js +1 -1
  120. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  121. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  122. package/dist/components/fields/RadioGroup/context.js +1 -1
  123. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  124. package/dist/components/fields/Select/Select.d.ts +2 -2
  125. package/dist/components/fields/Select/Select.js +1 -1
  126. package/dist/components/fields/Slider/Gradation.js +1 -1
  127. package/dist/components/fields/Slider/HueSlider.js +1 -1
  128. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  129. package/dist/components/fields/Slider/Slider.js +1 -1
  130. package/dist/components/fields/Slider/SliderBase.js +1 -1
  131. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  132. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  133. package/dist/components/fields/Slider/elements.js +1 -1
  134. package/dist/components/fields/Slider/index.js +1 -1
  135. package/dist/components/fields/Switch/Switch.js +1 -1
  136. package/dist/components/fields/TextArea/TextArea.js +1 -1
  137. package/dist/components/fields/TextInput/TextInput.js +1 -1
  138. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  139. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  140. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  141. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  142. package/dist/components/form/Form/Field.js +1 -1
  143. package/dist/components/form/Form/Form.js +1 -1
  144. package/dist/components/form/Form/ResetButton/ResetButton.d.ts +0 -1
  145. package/dist/components/form/Form/ResetButton/ResetButton.js +2 -2
  146. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  147. package/dist/components/form/Form/SubmitButton/SubmitButton.d.ts +0 -1
  148. package/dist/components/form/Form/SubmitButton/SubmitButton.js +2 -2
  149. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  150. package/dist/components/form/Form/SubmitError.js +1 -1
  151. package/dist/components/form/Form/index.js +1 -1
  152. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  153. package/dist/components/form/Form/use-field/use-field.js +1 -1
  154. package/dist/components/form/Form/use-form.js +1 -1
  155. package/dist/components/form/Form/validation.js +1 -1
  156. package/dist/components/form/Label.js +1 -1
  157. package/dist/components/form/wrapper.js +1 -1
  158. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  159. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  160. package/dist/components/layout/Flex.js +1 -1
  161. package/dist/components/layout/Flow.js +1 -1
  162. package/dist/components/layout/Grid.js +1 -1
  163. package/dist/components/layout/Panel.js +1 -1
  164. package/dist/components/layout/Prefix.js +1 -1
  165. package/dist/components/layout/ResizablePanel.js +1 -1
  166. package/dist/components/layout/Space.js +1 -1
  167. package/dist/components/layout/Suffix.js +1 -1
  168. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  169. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  170. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  171. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  172. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  173. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  174. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  175. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  176. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  177. package/dist/components/navigation/Tabs/styled.js +1 -1
  178. package/dist/components/navigation/Tabs/types.js +1 -1
  179. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  180. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  181. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  182. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  183. package/dist/components/other/Calendar/Calendar.js +1 -1
  184. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  185. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  186. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  187. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  188. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  189. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  190. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  191. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  192. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  193. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  194. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  195. package/dist/components/overlays/Dialog/context.js +1 -1
  196. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  197. package/dist/components/overlays/Modal/Modal.d.ts +2 -1
  198. package/dist/components/overlays/Modal/Modal.js +1 -1
  199. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  200. package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
  201. package/dist/components/overlays/Modal/Overlay.js +1 -1
  202. package/dist/components/overlays/Modal/Popover.js +1 -1
  203. package/dist/components/overlays/Modal/Tray.js +1 -1
  204. package/dist/components/overlays/Modal/Underlay.js +1 -1
  205. package/dist/components/overlays/Notifications/Notification.js +1 -1
  206. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  207. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  208. package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
  209. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  210. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  211. package/dist/components/overlays/Notifications/OverlayContainer.js +6 -3
  212. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  213. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  214. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  215. package/dist/components/overlays/Notifications/dismissed-storage.js +43 -0
  216. package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -0
  217. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  218. package/dist/components/overlays/Notifications/index.js +1 -1
  219. package/dist/components/overlays/Notifications/use-notification-state.js +5 -2
  220. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  221. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  222. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  223. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  224. package/dist/components/overlays/Notifications/use-persistent-state.js +14 -7
  225. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  226. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  227. package/dist/components/overlays/Toast/ToastItem.js +6 -2
  228. package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
  229. package/dist/components/overlays/Toast/index.js +1 -1
  230. package/dist/components/overlays/Toast/types.d.ts +2 -0
  231. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  232. package/dist/components/overlays/Toast/useToast.js +1 -1
  233. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  234. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  235. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  236. package/dist/components/overlays/Tooltip/context.js +1 -1
  237. package/dist/components/portal/Portal.js +1 -1
  238. package/dist/components/portal/PortalProvider.d.ts +2 -0
  239. package/dist/components/portal/PortalProvider.js +1 -1
  240. package/dist/components/portal/index.d.ts +1 -0
  241. package/dist/components/portal/usePortal.js +1 -1
  242. package/dist/components/shared/InvalidIcon.js +1 -1
  243. package/dist/components/shared/ValidIcon.js +1 -1
  244. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  245. package/dist/components/status/Spin/Cube.js +1 -1
  246. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  247. package/dist/components/status/Spin/Spin.js +1 -1
  248. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  249. package/dist/config.js +1 -1
  250. package/dist/css-writer.js +1 -1
  251. package/dist/data/item-themes.js +1 -1
  252. package/dist/data/themes.js +1 -1
  253. package/dist/extractor.js +1 -1
  254. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  255. package/dist/icons/AdjustmentsIcon.js +1 -1
  256. package/dist/icons/AiIcon.js +1 -1
  257. package/dist/icons/AreaChartIcon.js +1 -1
  258. package/dist/icons/BackwardIcon.js +1 -1
  259. package/dist/icons/BarChartIcon.js +1 -1
  260. package/dist/icons/BellFilledIcon.js +1 -1
  261. package/dist/icons/BellIcon.js +1 -1
  262. package/dist/icons/BooleanIcon.js +1 -1
  263. package/dist/icons/CalendarEditIcon.js +1 -1
  264. package/dist/icons/CalendarIcon.js +1 -1
  265. package/dist/icons/CaretDownIcon.js +1 -1
  266. package/dist/icons/CaretUpIcon.js +1 -1
  267. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  268. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  269. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  270. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  271. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  272. package/dist/icons/ChartBarLineIcon.js +1 -1
  273. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  274. package/dist/icons/ChartBarStackedIcon.js +1 -1
  275. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  276. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  277. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  278. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  279. package/dist/icons/ChartBubbleIcon.js +1 -1
  280. package/dist/icons/ChartDonut2Icon.js +1 -1
  281. package/dist/icons/ChartFunnelIcon.js +1 -1
  282. package/dist/icons/ChartHeatmapIcon.js +1 -1
  283. package/dist/icons/ChartKPIIcon.js +1 -1
  284. package/dist/icons/ChartPie2Icon.js +1 -1
  285. package/dist/icons/ChartScatterIcon.js +1 -1
  286. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  287. package/dist/icons/CheckCircleIcon.js +1 -1
  288. package/dist/icons/CheckIcon.js +1 -1
  289. package/dist/icons/CircleFilledIcon.js +1 -1
  290. package/dist/icons/ClearIcon.js +1 -1
  291. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  292. package/dist/icons/CloseCircleIcon.js +1 -1
  293. package/dist/icons/CloseIcon.js +1 -1
  294. package/dist/icons/CodeIcon.js +1 -1
  295. package/dist/icons/ColumnTotalIcon.js +1 -1
  296. package/dist/icons/CopyIcon.js +1 -1
  297. package/dist/icons/CountIcon.js +1 -1
  298. package/dist/icons/CubeIcon.js +1 -1
  299. package/dist/icons/CubePauseIcon.js +1 -1
  300. package/dist/icons/CubePlayIcon.js +1 -1
  301. package/dist/icons/CurrencyDollarIcon.js +1 -1
  302. package/dist/icons/DangerIcon.js +1 -1
  303. package/dist/icons/DashboardIcon.js +1 -1
  304. package/dist/icons/DatabaseIcon.js +1 -1
  305. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  306. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  307. package/dist/icons/DirectionIcon.js +1 -1
  308. package/dist/icons/DonutIcon.js +1 -1
  309. package/dist/icons/DownIcon.js +1 -1
  310. package/dist/icons/EditIcon.js +1 -1
  311. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  312. package/dist/icons/ExclamationCircleIcon.js +1 -1
  313. package/dist/icons/ExclamationIcon.js +1 -1
  314. package/dist/icons/EyeIcon.js +1 -1
  315. package/dist/icons/EyeInvisibleIcon.js +1 -1
  316. package/dist/icons/FilterIcon.js +1 -1
  317. package/dist/icons/FolderFilledIcon.js +1 -1
  318. package/dist/icons/FolderIcon.js +1 -1
  319. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  320. package/dist/icons/FolderOpenIcon.js +1 -1
  321. package/dist/icons/ForwardIcon.js +1 -1
  322. package/dist/icons/HierarchyIcon.js +1 -1
  323. package/dist/icons/HierarchyOpenIcon.js +1 -1
  324. package/dist/icons/Icon.js +1 -1
  325. package/dist/icons/InfoCircleIcon.js +1 -1
  326. package/dist/icons/InfoIcon.js +1 -1
  327. package/dist/icons/KeyIcon.js +1 -1
  328. package/dist/icons/LeftIcon.js +1 -1
  329. package/dist/icons/LineChartIcon.js +1 -1
  330. package/dist/icons/LoadingIcon.js +1 -1
  331. package/dist/icons/LockFilledIcon.js +1 -1
  332. package/dist/icons/LockIcon.js +1 -1
  333. package/dist/icons/MoreIcon.js +1 -1
  334. package/dist/icons/NotAllowedIcon.js +1 -1
  335. package/dist/icons/Number123Icon.js +1 -1
  336. package/dist/icons/NumberIcon.js +1 -1
  337. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  338. package/dist/icons/PauseCircleIcon.js +1 -1
  339. package/dist/icons/PauseIcon.js +1 -1
  340. package/dist/icons/PercentageIcon.js +1 -1
  341. package/dist/icons/PieChartIcon.js +1 -1
  342. package/dist/icons/PlayCircleIcon.js +1 -1
  343. package/dist/icons/PlayIcon.js +1 -1
  344. package/dist/icons/PlusIcon.js +1 -1
  345. package/dist/icons/ProgressBarIcon.js +1 -1
  346. package/dist/icons/ReloadIcon.js +1 -1
  347. package/dist/icons/ReportIcon.js +1 -1
  348. package/dist/icons/ReturnIcon.js +1 -1
  349. package/dist/icons/RightIcon.js +1 -1
  350. package/dist/icons/RowTotalsIcon.js +1 -1
  351. package/dist/icons/SchemeIcon.js +1 -1
  352. package/dist/icons/SearchIcon.js +1 -1
  353. package/dist/icons/SemanticQueryIcon.js +1 -1
  354. package/dist/icons/SettingsIcon.js +1 -1
  355. package/dist/icons/ShieldFilledIcon.js +1 -1
  356. package/dist/icons/ShieldIcon.js +1 -1
  357. package/dist/icons/SlashIcon.js +1 -1
  358. package/dist/icons/SparklesIcon.js +1 -1
  359. package/dist/icons/SqlIcon.js +1 -1
  360. package/dist/icons/StatsIcon.js +1 -1
  361. package/dist/icons/StopIcon.js +1 -1
  362. package/dist/icons/StringIcon.js +1 -1
  363. package/dist/icons/SubtotalsIcon.js +1 -1
  364. package/dist/icons/SwitchIcon.js +1 -1
  365. package/dist/icons/TableIcon.js +1 -1
  366. package/dist/icons/ThumbsDownIcon.js +1 -1
  367. package/dist/icons/ThumbsUpIcon.js +1 -1
  368. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  369. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  370. package/dist/icons/ThunderboltIcon.js +1 -1
  371. package/dist/icons/TimeIcon.js +1 -1
  372. package/dist/icons/TrashIcon.js +1 -1
  373. package/dist/icons/UnlockIcon.js +1 -1
  374. package/dist/icons/UpIcon.js +1 -1
  375. package/dist/icons/UserGroupIcon.js +1 -1
  376. package/dist/icons/UserIcon.js +1 -1
  377. package/dist/icons/UserLockIcon.js +1 -1
  378. package/dist/icons/ViewIcon.js +1 -1
  379. package/dist/icons/WarningFilledIcon.js +1 -1
  380. package/dist/icons/WarningIcon.js +1 -1
  381. package/dist/icons/wrap-icon.js +1 -1
  382. package/dist/index.d.ts +2 -2
  383. package/dist/index.js +2 -2
  384. package/dist/index.js.map +1 -1
  385. package/dist/injector/injector.js +1 -1
  386. package/dist/injector/sheet-manager.js +1 -1
  387. package/dist/keyframes/index.js +1 -1
  388. package/dist/parser/classify.js +4 -9
  389. package/dist/parser/classify.js.map +1 -1
  390. package/dist/parser/const.js +1 -1
  391. package/dist/parser/lru.js +1 -1
  392. package/dist/parser/parser.js +1 -1
  393. package/dist/parser/tokenizer.js +1 -1
  394. package/dist/parser/types.js +1 -1
  395. package/dist/pipeline/conditions.js +1 -1
  396. package/dist/pipeline/exclusive.js +1 -1
  397. package/dist/pipeline/index.js +1 -1
  398. package/dist/pipeline/materialize.js +1 -1
  399. package/dist/pipeline/parseStateKey.js +1 -1
  400. package/dist/pipeline/simplify.js +1 -1
  401. package/dist/plugins/okhsl-plugin.js +6 -4
  402. package/dist/plugins/okhsl-plugin.js.map +1 -1
  403. package/dist/properties/index.js +1 -1
  404. package/dist/provider.js +1 -1
  405. package/dist/providers/TrackingProvider.js +1 -1
  406. package/dist/providers/navigationAdapter.default.js +1 -1
  407. package/dist/states/index.js +1 -1
  408. package/dist/styles/align.js +1 -1
  409. package/dist/styles/border.js +1 -1
  410. package/dist/styles/color.js +1 -1
  411. package/dist/styles/createStyle.js +1 -1
  412. package/dist/styles/dimension.js +1 -1
  413. package/dist/styles/display.js +1 -1
  414. package/dist/styles/fade.js +1 -1
  415. package/dist/styles/fill.js +1 -1
  416. package/dist/styles/flow.js +1 -1
  417. package/dist/styles/gap.js +1 -1
  418. package/dist/styles/height.js +1 -1
  419. package/dist/styles/index.js +1 -1
  420. package/dist/styles/inset.js +1 -1
  421. package/dist/styles/justify.js +1 -1
  422. package/dist/styles/margin.js +1 -1
  423. package/dist/styles/outline.js +1 -1
  424. package/dist/styles/padding.js +1 -1
  425. package/dist/styles/predefined.js +1 -1
  426. package/dist/styles/preset.js +1 -1
  427. package/dist/styles/radius.js +1 -1
  428. package/dist/styles/scrollbar.js +1 -1
  429. package/dist/styles/shadow.js +1 -1
  430. package/dist/styles/styledScrollbar.js +1 -1
  431. package/dist/styles/transition.js +1 -1
  432. package/dist/styles/width.js +1 -1
  433. package/dist/tasty/chunks/cacheKey.d.ts +2 -0
  434. package/dist/tasty/chunks/cacheKey.js +1 -1
  435. package/dist/tasty/chunks/definitions.js +1 -1
  436. package/dist/tasty/chunks/index.d.ts +4 -0
  437. package/dist/tasty/chunks/renderChunk.d.ts +3 -0
  438. package/dist/tasty/chunks/renderChunk.js +1 -1
  439. package/dist/tasty/config.js +1 -1
  440. package/dist/tasty/debug.js +1 -1
  441. package/dist/tasty/hooks/index.d.ts +6 -0
  442. package/dist/tasty/hooks/useGlobalStyles.js +1 -1
  443. package/dist/tasty/hooks/useKeyframes.js +1 -1
  444. package/dist/tasty/hooks/useProperty.js +1 -1
  445. package/dist/tasty/hooks/useRawCSS.js +1 -1
  446. package/dist/tasty/hooks/useStyles.js +1 -1
  447. package/dist/tasty/index.d.ts +3 -0
  448. package/dist/tasty/injector/index.js +1 -1
  449. package/dist/tasty/injector/injector.js +1 -1
  450. package/dist/tasty/injector/sheet-manager.js +1 -1
  451. package/dist/tasty/keyframes/index.js +1 -1
  452. package/dist/tasty/parser/classify.js +4 -9
  453. package/dist/tasty/parser/classify.js.map +1 -1
  454. package/dist/tasty/parser/const.js +1 -1
  455. package/dist/tasty/parser/lru.js +1 -1
  456. package/dist/tasty/parser/parser.js +1 -1
  457. package/dist/tasty/parser/tokenizer.js +1 -1
  458. package/dist/tasty/parser/types.js +1 -1
  459. package/dist/tasty/pipeline/conditions.js +1 -1
  460. package/dist/tasty/pipeline/exclusive.d.ts +2 -0
  461. package/dist/tasty/pipeline/exclusive.js +1 -1
  462. package/dist/tasty/pipeline/index.d.ts +2 -0
  463. package/dist/tasty/pipeline/index.js +1 -1
  464. package/dist/tasty/pipeline/materialize.js +1 -1
  465. package/dist/tasty/pipeline/parseStateKey.d.ts +2 -0
  466. package/dist/tasty/pipeline/parseStateKey.js +1 -1
  467. package/dist/tasty/pipeline/simplify.js +1 -1
  468. package/dist/tasty/plugins/index.d.ts +3 -0
  469. package/dist/tasty/plugins/okhsl-plugin.js +6 -4
  470. package/dist/tasty/plugins/okhsl-plugin.js.map +1 -1
  471. package/dist/tasty/properties/index.js +1 -1
  472. package/dist/tasty/states/index.d.ts +2 -0
  473. package/dist/tasty/states/index.js +1 -1
  474. package/dist/tasty/static/index.js +1 -1
  475. package/dist/tasty/static/tastyStatic.js +1 -1
  476. package/dist/tasty/static/types.js +1 -1
  477. package/dist/tasty/styles/align.js +1 -1
  478. package/dist/tasty/styles/border.js +1 -1
  479. package/dist/tasty/styles/color.js +1 -1
  480. package/dist/tasty/styles/createStyle.js +1 -1
  481. package/dist/tasty/styles/dimension.js +1 -1
  482. package/dist/tasty/styles/display.js +1 -1
  483. package/dist/tasty/styles/fade.js +1 -1
  484. package/dist/tasty/styles/fill.js +1 -1
  485. package/dist/tasty/styles/flow.js +1 -1
  486. package/dist/tasty/styles/gap.js +1 -1
  487. package/dist/tasty/styles/height.js +1 -1
  488. package/dist/tasty/styles/index.js +1 -1
  489. package/dist/tasty/styles/inset.js +1 -1
  490. package/dist/tasty/styles/justify.js +1 -1
  491. package/dist/tasty/styles/list.js +1 -1
  492. package/dist/tasty/styles/margin.js +1 -1
  493. package/dist/tasty/styles/outline.js +1 -1
  494. package/dist/tasty/styles/padding.js +1 -1
  495. package/dist/tasty/styles/predefined.d.ts +1 -0
  496. package/dist/tasty/styles/predefined.js +1 -1
  497. package/dist/tasty/styles/preset.js +1 -1
  498. package/dist/tasty/styles/radius.js +1 -1
  499. package/dist/tasty/styles/scrollbar.js +1 -1
  500. package/dist/tasty/styles/shadow.js +1 -1
  501. package/dist/tasty/styles/styledScrollbar.js +1 -1
  502. package/dist/tasty/styles/transition.js +1 -1
  503. package/dist/tasty/styles/width.js +1 -1
  504. package/dist/tasty/tasty.d.ts +3 -2
  505. package/dist/tasty/tasty.js +1 -1
  506. package/dist/tasty/utils/cache-wrapper.js +1 -1
  507. package/dist/tasty/utils/case-converter.js +1 -1
  508. package/dist/tasty/utils/colors.js +1 -1
  509. package/dist/tasty/utils/dotize.js +1 -1
  510. package/dist/tasty/utils/filter-base-props.js +1 -1
  511. package/dist/tasty/utils/get-display-name.js +1 -1
  512. package/dist/tasty/utils/hsl-to-rgb.js +1 -1
  513. package/dist/tasty/utils/is-dev-env.js +1 -1
  514. package/dist/tasty/utils/merge-styles.js +1 -1
  515. package/dist/tasty/utils/mod-attrs.js +1 -1
  516. package/dist/tasty/utils/okhsl-to-rgb.js +1 -1
  517. package/dist/tasty/utils/process-tokens.js +1 -1
  518. package/dist/tasty/utils/resolve-recipes.js +1 -1
  519. package/dist/tasty/utils/string.js +1 -1
  520. package/dist/tasty/utils/styles.js +1 -1
  521. package/dist/tasty/utils/typography.js +1 -1
  522. package/dist/tasty/utils/warnings.js +1 -1
  523. package/dist/tasty/zero/babel.js +1 -1
  524. package/dist/tasty/zero/index.js +1 -1
  525. package/dist/tasty/zero/next.js +1 -1
  526. package/dist/tokens/base.js +1 -1
  527. package/dist/tokens/colors.js +1 -1
  528. package/dist/tokens/index.js +1 -1
  529. package/dist/tokens/layout.js +1 -1
  530. package/dist/tokens/shadows.js +1 -1
  531. package/dist/tokens/sizes.js +1 -1
  532. package/dist/tokens/spacing.js +1 -1
  533. package/dist/tokens/typography.js +1 -1
  534. package/dist/utils/ResizeSensor.js +1 -1
  535. package/dist/utils/cache-wrapper.js +1 -1
  536. package/dist/utils/case-converter.js +1 -1
  537. package/dist/utils/hsl-to-rgb.js +1 -1
  538. package/dist/utils/is-dev-env.js +1 -1
  539. package/dist/utils/merge-styles.js +1 -1
  540. package/dist/utils/modules.js +1 -1
  541. package/dist/utils/okhsl-to-rgb.js +1 -1
  542. package/dist/utils/process-tokens.js +1 -1
  543. package/dist/utils/promise.js +1 -1
  544. package/dist/utils/raf.js +1 -1
  545. package/dist/utils/random.js +1 -1
  546. package/dist/utils/range.js +1 -1
  547. package/dist/utils/react/RenderCache.js +1 -1
  548. package/dist/utils/react/Slots.js +1 -1
  549. package/dist/utils/react/chain.js +1 -1
  550. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  551. package/dist/utils/react/interactions.js +1 -1
  552. package/dist/utils/react/isTextOnly.js +1 -1
  553. package/dist/utils/react/mapProps.js +1 -1
  554. package/dist/utils/react/mapProps.js.map +1 -1
  555. package/dist/utils/react/mergeProps.js +1 -1
  556. package/dist/utils/react/nullableValue.js +1 -1
  557. package/dist/utils/react/resolveIcon.js +1 -1
  558. package/dist/utils/react/sharedStore.js +1 -1
  559. package/dist/utils/react/useCombinedRefs.js +1 -1
  560. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  561. package/dist/utils/react/useEventBus.js +1 -1
  562. package/dist/utils/react/useId.js +1 -1
  563. package/dist/utils/react/useIsDarwin.js +1 -1
  564. package/dist/utils/react/useKeySymbols.js +1 -1
  565. package/dist/utils/react/useLayoutEffect.js +1 -1
  566. package/dist/utils/react/useLocalStorage.js +1 -1
  567. package/dist/utils/react/useMergeStyles.js +1 -1
  568. package/dist/utils/react/useQaProps.js +1 -1
  569. package/dist/utils/react/useViewportSize.js +1 -1
  570. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  571. package/dist/utils/resolve-recipes.js +1 -1
  572. package/dist/utils/string.js +1 -1
  573. package/dist/utils/styles.js +1 -1
  574. package/dist/utils/tree.js +1 -1
  575. package/dist/utils/warnings.js +1 -1
  576. package/dist/version.js +2 -2
  577. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { Icon } from "./Icon.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
package/dist/index.d.ts CHANGED
@@ -369,7 +369,7 @@ import { LAYOUT_TOKENS } from "./tokens/layout.js";
369
369
  import { BASE_TOKENS } from "./tokens/base.js";
370
370
  import { TOKENS } from "./tokens/index.js";
371
371
  import * as react from "react";
372
- import { Section } from "react-stately";
372
+ import { MenuTriggerState, Section } from "react-stately";
373
373
  import copy from "clipboard-copy";
374
374
  export * from "@react-aria/ssr";
375
375
  export * from "@internationalized/date";
@@ -384,5 +384,5 @@ declare const Typography: {
384
384
  Paragraph: react.ForwardRefExoticComponent<CubeParagraphProps & react.RefAttributes<HTMLElement>>;
385
385
  };
386
386
  //#endregion
387
- export { Action, _ActiveZone as ActiveZone, AdjustmentsHorizontalIcon, AdjustmentsIcon, AiIcon, Alert, _AlertDialog as AlertDialog, type AllBaseProps, AllBasePropsWithMods, AreaChartIcon, AriaCheckboxProps, AriaMenuTriggerProps, AriaNumberFieldProps, AriaRadioProps, AriaSelectProps, AriaSliderProps, AriaSwitchProps, AriaTextFieldProps, AtRuleContext, Avatar, Axis, BASE_STYLES, BASE_TOKENS, BLOCK_INNER_STYLES, BLOCK_OUTER_STYLES, BLOCK_STYLES, BackwardIcon, _Badge as Badge, Banner, BannerAction, BannerActionProps, BannerLink, BannerLinkProps, BannerProps, BannerTheme, BarChartIcon, type BaseProps, type BasePropsWithoutChildren, type BaseStyleProps, BellFilledIcon, BellIcon, Block, BlockInnerStyleProps, BlockOuterStyleProps, type BlockStyleProps, BooleanIcon, Button, ButtonGroup, ButtonMods, ButtonVariant, CHUNK_NAMES, COLOR_STYLES, COLOR_TOKENS, COMPUTE_FUNC_MAP, CONTAINER_STYLES, CSSMap, CUSTOM_UNITS, CacheMetrics, CalendarEditIcon, CalendarIcon, Card, CaretDownIcon, CaretUpIcon, ChartAreaStackedIcon, ChartAreaStackedPercentageIcon, ChartBarGroupedHorizontalIcon, ChartBarGroupedIcon, ChartBarHorizontalIcon, ChartBarLineIcon, ChartBarStackedHorizontalIcon, ChartBarStackedIcon, ChartBarStackedPercentageHorizontalIcon, ChartBarStackedPercentageIcon, ChartBoxPlot2Icon, ChartBoxPlotIcon, ChartBubbleIcon, ChartDonut2Icon, ChartFunnelIcon, ChartHeatmapIcon, ChartKPIIcon, ChartPie2Icon, ChartScatterIcon, CheckCircleFilledIcon, CheckCircleIcon, CheckIcon, __Checkbox as Checkbox, _CheckboxGroup as CheckboxGroup, ChunkInfo, ChunkName, CircleFilledIcon, ClearIcon, ClearSlots, CloseCircleFilledIcon, CloseCircleIcon, CloseIcon, _CloudLogo as CloudLogo, CodeIcon, _CollectionItem as CollectionItem, type ColorStyleProps, ColumnTotalIcon, ComboBox, __CommandMenu as CommandMenu, type CommandMenuItem, ComputeModel, type ContainerStyleProps, Content, CopyIcon, _CopyPasteBlock as CopyPasteBlock, _CopySnippet as CopySnippet, CountIcon, CubeActionProps, type CubeActiveZoneProps, type CubeAlertDialogProps, CubeAlertProps, type CubeAvatarProps, type CubeBadgeProps, type CubeBlockProps, CubeButtonProps, type CubeCardProps, CubeCheckboxGroupProps, CubeCheckboxProps, CubeComboBoxProps, type CubeCommandMenuProps, type CubeContentProps, CubeCopyPasteBlockProps, CubeCopySnippetProps, CubeDateInputProps, CubeDatePickerProps, CubeDateRangePickerProps, CubeDateRangeSeparatedPickerProps, type CubeDialogContainerProps, type CubeDialogFormProps, type CubeDialogFormRef, type CubeDialogProps, type CubeDialogTriggerProps, type CubeDisclosureContentProps, type CubeDisclosureGroupProps, type CubeDisclosureItemProps, type CubeDisclosureProps, type CubeDisclosureTriggerProps, type CubeDividerProps, CubeFieldWrapperProps, CubeFileInputProps, type CubeFileTabProps, CubeFilterListBoxProps, CubeFilterPickerProps, type CubeFlexProps, type CubeFlowProps, type CubeFooterProps, CubeFormInstance, CubeFormProps, type CubeGridLayoutProps, type CubeGridProps, type CubeGridProviderProps, type CubeHeaderProps, CubeHotKeysProps, CubeHueSliderProps, CubeIcon, CubeIconProps, CubeItemActionProps, type CubeItemBadgeProps, type CubeItemProps as CubeItemBaseProps, CubeItemButtonProps, CubeItemButtonProps as ItemButtonProps, type CubeItemProps, CubeLabelProps, type CubeLayoutContentProps, type CubeLayoutFooterProps, type CubeLayoutHeaderProps, type CubeLayoutPaneProps, type CubeLayoutPanelHeaderProps, type CubeLayoutPanelProps, type CubeLayoutProps, type CubeLayoutToolbarProps, type CubeListBoxProps, CubeLoadingAnimationProps, type CubeMenuProps, CubeMenuSectionProps, type CubeMenuTriggerProps, CubeNumberInputProps, type CubePanelProps, type CubeParagraphProps, CubePasswordInputProps, CubePauseIcon, CubePickerProps, type CubePlaceholderProps, CubePlayIcon, type CubePrefixProps, type CubePrismCodeProps, type CubePrismDiffCodeProps, CubeRadioGroupProps, CubeRadioProps, CubeRangeSliderProps, CubeResetButtonProps, type CubeResizablePanelProps, type CubeResultProps, type CubeResultStatus, type CubeRootProps, type CubeSearchInputProps, type CubeSelectBaseProps, type CubeSelectProps, type CubeSkeletonProps, CubeSliderBaseProps, CubeSliderProps, type CubeSpaceProps, CubeSpinProps, type CubeStatsCard, CubeSubMenuTriggerProps, CubeSubmitButtonProps, CubeAlertProps as CubeSubmitErrorProps, type CubeSuffixProps, CubeSwitchProps, CubeTabListProps, CubeTabPanelProps, CubeTabProps, CubeTabsActionProps, CubeTabsProps, type CubeTagProps, CubeTextAreaProps, CubeTextInputBaseProps, CubeTextInputMapperInputProps, CubeTextInputMapperProps, CubeTextInputProps, type CubeTextItemProps, type CubeTextProps, CubeTimeInputProps, type CubeTitleProps, type CubeTooltipProps, type CubeTooltipProviderProps, type CubeTooltipTriggerProps, CubeUseActionProps, CurrencyDollarIcon, DEFAULT_BUTTON_STYLES, DEFAULT_INPUT_STYLES, DIMENSION_STYLES, DIRECTIONS, DangerIcon, DashboardIcon, DatabaseIcon, DateFieldBase, _DateInput as DateInput, _DatePicker as DatePicker, _DateRangePicker as DateRangePicker, _DateRangeSeparatedPicker as DateRangeSeparatedPicker, DecimalDecreaseIcon, DecimalIncreaseIcon, Dialog, DialogContainer, DialogForm, DialogTrigger, type DimensionStyleProps, DirectionIcon, DirectionIconProps, _Disclosure as Disclosure, type DisclosureStateContext, DismissReason, DisplayTransition, type DisplayTransitionProps, DisposeFunction, Divider, DonutIcon, DownIcon, DynamicIcon, EditIcon, Element, ElementsDefinition, EventBusContextValue, EventBusListener, EventBusProvider, ExclamationCircleFilledIcon, ExclamationCircleIcon, ExclamationIcon, EyeIcon, EyeInvisibleIcon, FLOW_STYLES, Field, FieldBaseProps, FieldCoreProps, FieldReturnValue, FieldTypes, FieldWrapper, Fields, _FileInput as FileInput, FileTabs, FilterIcon, FilterListBox, FilterPicker, Flex, Flow, type FlowStyleProps, FolderFilledIcon, FolderIcon, FolderOpenFilledIcon, FolderOpenIcon, Footer, Form, FormBaseProps, FormContext, ForwardIcon, GlobalStyledProps, Granularity, Grid, GridLayout, GridProvider, Header, HierarchyIcon, HierarchyOpenIcon, _HotKeys as HotKeys, __HueSlider as HueSlider, INLINE_LABEL_STYLES, INNER_STYLES, INPUT_WRAPPER_STYLES, Icon, IconRenderFn, InfoCircleIcon, InfoIcon, InjectResult, Input, _Item as Item, ItemAction, CubeItemActionProps as ItemActionProps, ItemActionProvider, ItemActionProviderProps, ItemBadge, _Item as ItemBase, _ItemButton as ItemButton, KeyIcon, KeyframesCacheEntry, KeyframesInfo, KeyframesResult, KeyframesSteps, LABEL_STYLES, LAYOUT_TOKENS, _Label as Label, LabelPosition, Layout, LeftIcon, LineChartIcon, Link, ListBox, ListBoxElement, ListBoxPopup, LoadingAnimation, LoadingIcon, LockFilledIcon, LockIcon, __Menu as Menu, MenuContext, MenuContextValue, MenuItem, MenuItemProps, MenuSection, MenuSelectionType, _MenuTrigger as MenuTrigger, ModValue, Mods, MoreIcon, type NavigateArg, type NavigateLike, type NavigateOptions, type NavigationAdapter, NecessityIndicator, NoType, NotAllowedIcon, NotSelector, Notification, NotificationAction, NotificationActionProps, NotificationBaseOptions, NotificationCard, NotificationCardProps, NotificationComponent, NotificationHandle, NotificationItem, NotificationItemProps, NotificationOptions, NotificationProps, NotificationType, NotificationsApi, Number123Icon, NumberIcon, _NumberInput as NumberInput, OUTER_STYLES, type OuterStyleProps, OverlayNotificationOptions, OverlayProvider, OverlayProviderProps, POSITION_STYLES, _Panel as Panel, Paragraph, ParsedAdvancedState, ParsedColor, _PasswordInput as PasswordInput, type Path, PauseCircleFilledIcon, PauseCircleIcon, PauseIcon, PercentageIcon, PersistentNotificationItem, PersistentNotificationsList, PersistentNotificationsListProps, Picker, PieChartIcon, Placeholder, PlacementAxis, PlayCircleIcon, PlayIcon, PlusIcon, Portal, type PortalProps, type PositionStyleProps, Prefix, _PrismCode as PrismCode, PrismDiffCode, ProgressBarIcon, ProgressToastEmpty, ProgressToastOptions, PropertyDefinition, PropertyOptions, type Props, Provider, type ProviderProps, __Radio as Radio, _RadioGroup as RadioGroup, __RangeSlider as RangeSlider, RangeValue, RawCSSResult, RawStyleHandler, RecipeStyles, type RelativeRoutingType, ReloadIcon, RenderCache, RenderCacheProps, RenderResult, ReportIcon, _ResetButton as ResetButton, _ResizablePanel as ResizablePanel, ResizeSensor, ResolvedIcon, _Result as Result, ReturnIcon, RightIcon, Root, RootRegistry, RowTotalsIcon, RuleInfo, SHADOW_TOKENS, SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS, SPACE_TOKENS, STATE_OPERATORS, STATE_OPERATOR_LIST, STYLE_TO_CHUNK, SchemeIcon, type ScrollbarType, SearchFieldProps, SearchIcon, SearchInput, Section, __Select as Select, Selector, SemanticQueryIcon, SettingsIcon, SheetInfo, SheetManager, ShieldFilledIcon, ShieldIcon, type ShortGridStyles, SizeKey, SizeName, Skeleton, SlashIcon, __Slider as Slider, SliderState, SlotProvider, Space, SparklesIcon, Spin, SqlIcon, StateParserContext, StatsCard, StatsIcon, StopIcon, StoredNotificationOptions, StringIcon, StyleHandler, StyleHandlerDefinition, StyleHandlerResult, StyleInjector, StyleInjectorConfig, StyleMap, StylePropValue, StyleResult, StyleRule, StyleStateData, StyleStateDataList, StyleStateDataListMap, StyleStateMap, StyleValue, StyleValueStateMap, Styles, StylesInterface, StylesWithoutSelectors, SubElementDefinition, SubElementProps, SubMenuTrigger, _SubmitButton as SubmitButton, _SubmitError as SubmitError, SubtotalsIcon, Suffix, SuffixForSelector, _Switch as Switch, SwitchIcon, TEXT_STYLES, TOKENS, TYPOGRAPHY_PRESETS, Tab, TabSize, TabType, TableIcon, Tabs, TabsAction, TabsActionPosition, _Tag as Tag, type TagName, TastyConfig, TastyElementOptions, TastyElementProps, TastyExtensionConfig, TastyNamedColors, TastyPlugin, TastyPluginFactory, TastyPresetNames, TastyProps, TastyThemeNames, _Text as Text, _TextArea as TextArea, TextInput, TextInputBase, _TextInputMapper as TextInputMapper, TextItem, type TextStyleProps, ThumbsDownIcon, ThumbsUpIcon, ThunderboltCrossedIcon, ThunderboltFilledIcon, ThunderboltIcon, TimeIcon, _TimeInput as TimeInput, _Title as Title, type To, Toast, ToastApi, ToastComponent, ToastData, ToastItem, ToastItemProps, ToastProgressProps, ToastProps, ToastType, TokenValue, Tokens, _Tooltip as Tooltip, TooltipProvider, TooltipTrigger, TrashIcon, Typography, TypographyPreset, UnlockIcon, UpIcon, UseAnchoredMenuReturn, UseContextMenuReturn, UseControlledFocusVisibleResult, UseFieldParams, UseFieldProps, UseFieldPropsParams, UsePropertyOptions, UseStylesOptions, UseStylesResult, UserGroupIcon, UserIcon, UserLockIcon, ValidateTrigger, ValidationResult, ValidationRule, ValidationRuleBase, ValidationState, ViewIcon, WarningFilledIcon, WarningIcon, allocateClassName, buildAtRuleContext, categorizeStyleKeys, chain, chainRaf, cleanup, color, computeState, configure, copy, createInjector, customFunc, defaultNavigationAdapter, deprecationWarning, destroy, dotize, extendStyles, extractFieldWrapperProps, extractModule, extractStyles, filterBaseProps, filterMods, formatRelativeTime, forwardRefWithGenerics, generateRandomId, generateTypographyTokens, getConfig, getCssText, getCssTextForNode, getDisplayName, getGlobalFuncs, getGlobalKeyframes, getGlobalParser, getGlobalPredefinedStates, getGlobalPredefinedTokens, getGlobalRecipes, getIsTestEnvironment, getModSelector, getRawCSSText, getRgbValuesFromRgbaString, getThemeIcon, hasGlobalKeyframes, hasGlobalRecipes, hasStylesGenerated, hexToRgb, hslToRgbValues, inject, injectGlobal, injectRawCSS, injector, isAdvancedStateToken, isConfigLocked, isPropertyDefined, isSelector, isTestEnvironment, isTextOnly, keyframes, mergeProps, mergeRefs, mergeStyles, _modAttrs as modAttrs, normalizeColorTokenValue, okhslFunc, okhslPlugin, openLink, parseAbsoluteDate, parseColor, parseStateNotation, parseStyle, parseTo, performClickHandler, processTokens, propDeprecationWarning, property, random, range, renderStyles, resetConfig, resetGlobalPredefinedTokens, resolveIcon, resolveRecipes, setGlobalPredefinedStates, setGlobalPredefinedTokens, strToRgb, stringifyStyles, stringifyTokens, styleHandlers, styleStateMapToStyleStateDataList, tasty, tastyDebug, timeout, toFlatTree, useAction, useAlertDialogAPI, useAnchoredMenu, useCheckbox, useCombinedRefs, useContextMenu, useControlledFocusVisible, useDialogContainer, useEventBus, useEventListener, useField, useFieldProps, useForm, useFormProps, useGlobalStyles, useItemActionContext, useKeyframes, useLayoutEffect, useLocalStorage, useMenuContext, useMergeStyles, useNotifications, useNotificationsCount, usePersistentNotifications, useProgressToast, useProperty, useProviderProps, useQaProps, useRadio, useRawCSS, useSearchField, useSearchFieldState, useSelectState, useSliderState, useSlotProps, useStyles, useSwitch, useTextField, useToast, useToastContext, useViewportSize, warn, wrapIcon, wrapNodeIfPlain, wrapWithField };
387
+ export { Action, _ActiveZone as ActiveZone, AdjustmentsHorizontalIcon, AdjustmentsIcon, AiIcon, Alert, _AlertDialog as AlertDialog, type AllBaseProps, AllBasePropsWithMods, AreaChartIcon, AriaCheckboxProps, AriaMenuTriggerProps, AriaNumberFieldProps, AriaRadioProps, AriaSelectProps, AriaSliderProps, AriaSwitchProps, AriaTextFieldProps, AtRuleContext, Avatar, Axis, BASE_STYLES, BASE_TOKENS, BLOCK_INNER_STYLES, BLOCK_OUTER_STYLES, BLOCK_STYLES, BackwardIcon, _Badge as Badge, Banner, BannerAction, BannerActionProps, BannerLink, BannerLinkProps, BannerProps, BannerTheme, BarChartIcon, type BaseProps, type BasePropsWithoutChildren, type BaseStyleProps, BellFilledIcon, BellIcon, Block, BlockInnerStyleProps, BlockOuterStyleProps, type BlockStyleProps, BooleanIcon, Button, ButtonGroup, ButtonMods, ButtonVariant, CHUNK_NAMES, COLOR_STYLES, COLOR_TOKENS, COMPUTE_FUNC_MAP, CONTAINER_STYLES, CSSMap, CUSTOM_UNITS, CacheMetrics, CalendarEditIcon, CalendarIcon, Card, CaretDownIcon, CaretUpIcon, ChartAreaStackedIcon, ChartAreaStackedPercentageIcon, ChartBarGroupedHorizontalIcon, ChartBarGroupedIcon, ChartBarHorizontalIcon, ChartBarLineIcon, ChartBarStackedHorizontalIcon, ChartBarStackedIcon, ChartBarStackedPercentageHorizontalIcon, ChartBarStackedPercentageIcon, ChartBoxPlot2Icon, ChartBoxPlotIcon, ChartBubbleIcon, ChartDonut2Icon, ChartFunnelIcon, ChartHeatmapIcon, ChartKPIIcon, ChartPie2Icon, ChartScatterIcon, CheckCircleFilledIcon, CheckCircleIcon, CheckIcon, __Checkbox as Checkbox, _CheckboxGroup as CheckboxGroup, ChunkInfo, ChunkName, CircleFilledIcon, ClearIcon, ClearSlots, CloseCircleFilledIcon, CloseCircleIcon, CloseIcon, _CloudLogo as CloudLogo, CodeIcon, _CollectionItem as CollectionItem, type ColorStyleProps, ColumnTotalIcon, ComboBox, __CommandMenu as CommandMenu, type CommandMenuItem, ComputeModel, type ContainerStyleProps, Content, CopyIcon, _CopyPasteBlock as CopyPasteBlock, _CopySnippet as CopySnippet, CountIcon, CubeActionProps, type CubeActiveZoneProps, type CubeAlertDialogProps, CubeAlertProps, type CubeAvatarProps, type CubeBadgeProps, type CubeBlockProps, CubeButtonProps, type CubeCardProps, CubeCheckboxGroupProps, CubeCheckboxProps, CubeComboBoxProps, type CubeCommandMenuProps, type CubeContentProps, CubeCopyPasteBlockProps, CubeCopySnippetProps, CubeDateInputProps, CubeDatePickerProps, CubeDateRangePickerProps, CubeDateRangeSeparatedPickerProps, type CubeDialogContainerProps, type CubeDialogFormProps, type CubeDialogFormRef, type CubeDialogProps, type CubeDialogTriggerProps, type CubeDisclosureContentProps, type CubeDisclosureGroupProps, type CubeDisclosureItemProps, type CubeDisclosureProps, type CubeDisclosureTriggerProps, type CubeDividerProps, CubeFieldWrapperProps, CubeFileInputProps, type CubeFileTabProps, CubeFilterListBoxProps, CubeFilterPickerProps, type CubeFlexProps, type CubeFlowProps, type CubeFooterProps, CubeFormInstance, CubeFormProps, type CubeGridLayoutProps, type CubeGridProps, type CubeGridProviderProps, type CubeHeaderProps, CubeHotKeysProps, CubeHueSliderProps, CubeIcon, CubeIconProps, CubeItemActionProps, type CubeItemBadgeProps, type CubeItemProps as CubeItemBaseProps, CubeItemButtonProps, CubeItemButtonProps as ItemButtonProps, type CubeItemProps, CubeLabelProps, type CubeLayoutContentProps, type CubeLayoutFooterProps, type CubeLayoutHeaderProps, type CubeLayoutPaneProps, type CubeLayoutPanelHeaderProps, type CubeLayoutPanelProps, type CubeLayoutProps, type CubeLayoutToolbarProps, type CubeListBoxProps, CubeLoadingAnimationProps, type CubeMenuProps, CubeMenuSectionProps, type CubeMenuTriggerProps, CubeNumberInputProps, type CubePanelProps, type CubeParagraphProps, CubePasswordInputProps, CubePauseIcon, CubePickerProps, type CubePlaceholderProps, CubePlayIcon, type CubePrefixProps, type CubePrismCodeProps, type CubePrismDiffCodeProps, CubeRadioGroupProps, CubeRadioProps, CubeRangeSliderProps, CubeResetButtonProps, type CubeResizablePanelProps, type CubeResultProps, type CubeResultStatus, type CubeRootProps, type CubeSearchInputProps, type CubeSelectBaseProps, type CubeSelectProps, type CubeSkeletonProps, CubeSliderBaseProps, CubeSliderProps, type CubeSpaceProps, CubeSpinProps, type CubeStatsCard, CubeSubMenuTriggerProps, CubeSubmitButtonProps, CubeAlertProps as CubeSubmitErrorProps, type CubeSuffixProps, CubeSwitchProps, CubeTabListProps, CubeTabPanelProps, CubeTabProps, CubeTabsActionProps, CubeTabsProps, type CubeTagProps, CubeTextAreaProps, CubeTextInputBaseProps, CubeTextInputMapperInputProps, CubeTextInputMapperProps, CubeTextInputProps, type CubeTextItemProps, type CubeTextProps, CubeTimeInputProps, type CubeTitleProps, type CubeTooltipProps, type CubeTooltipProviderProps, type CubeTooltipTriggerProps, CubeUseActionProps, CurrencyDollarIcon, DEFAULT_BUTTON_STYLES, DEFAULT_INPUT_STYLES, DIMENSION_STYLES, DIRECTIONS, DangerIcon, DashboardIcon, DatabaseIcon, DateFieldBase, _DateInput as DateInput, _DatePicker as DatePicker, _DateRangePicker as DateRangePicker, _DateRangeSeparatedPicker as DateRangeSeparatedPicker, DecimalDecreaseIcon, DecimalIncreaseIcon, Dialog, DialogContainer, DialogForm, DialogTrigger, type DimensionStyleProps, DirectionIcon, DirectionIconProps, _Disclosure as Disclosure, type DisclosureStateContext, DismissReason, DisplayTransition, type DisplayTransitionProps, DisposeFunction, Divider, DonutIcon, DownIcon, DynamicIcon, EditIcon, Element, ElementsDefinition, EventBusContextValue, EventBusListener, EventBusProvider, ExclamationCircleFilledIcon, ExclamationCircleIcon, ExclamationIcon, EyeIcon, EyeInvisibleIcon, FLOW_STYLES, Field, FieldBaseProps, FieldCoreProps, FieldReturnValue, FieldTypes, FieldWrapper, Fields, _FileInput as FileInput, FileTabs, FilterIcon, FilterListBox, FilterPicker, Flex, Flow, type FlowStyleProps, FolderFilledIcon, FolderIcon, FolderOpenFilledIcon, FolderOpenIcon, Footer, Form, FormBaseProps, FormContext, ForwardIcon, GlobalStyledProps, Granularity, Grid, GridLayout, GridProvider, Header, HierarchyIcon, HierarchyOpenIcon, _HotKeys as HotKeys, __HueSlider as HueSlider, INLINE_LABEL_STYLES, INNER_STYLES, INPUT_WRAPPER_STYLES, Icon, IconRenderFn, InfoCircleIcon, InfoIcon, InjectResult, Input, _Item as Item, ItemAction, CubeItemActionProps as ItemActionProps, ItemActionProvider, ItemActionProviderProps, ItemBadge, _Item as ItemBase, _ItemButton as ItemButton, KeyIcon, KeyframesCacheEntry, KeyframesInfo, KeyframesResult, KeyframesSteps, LABEL_STYLES, LAYOUT_TOKENS, _Label as Label, LabelPosition, Layout, LeftIcon, LineChartIcon, Link, ListBox, ListBoxElement, ListBoxPopup, LoadingAnimation, LoadingIcon, LockFilledIcon, LockIcon, __Menu as Menu, MenuContext, MenuContextValue, MenuItem, MenuItemProps, MenuSection, MenuSelectionType, _MenuTrigger as MenuTrigger, type MenuTriggerState, ModValue, Mods, MoreIcon, type NavigateArg, type NavigateLike, type NavigateOptions, type NavigationAdapter, NecessityIndicator, NoType, NotAllowedIcon, NotSelector, Notification, NotificationAction, NotificationActionProps, NotificationBaseOptions, NotificationCard, NotificationCardProps, NotificationComponent, NotificationHandle, NotificationItem, NotificationItemProps, NotificationOptions, NotificationProps, NotificationType, NotificationsApi, Number123Icon, NumberIcon, _NumberInput as NumberInput, OUTER_STYLES, type OuterStyleProps, OverlayNotificationOptions, OverlayProvider, OverlayProviderProps, POSITION_STYLES, _Panel as Panel, Paragraph, ParsedAdvancedState, ParsedColor, _PasswordInput as PasswordInput, type Path, PauseCircleFilledIcon, PauseCircleIcon, PauseIcon, PercentageIcon, PersistentNotificationItem, PersistentNotificationsList, PersistentNotificationsListProps, Picker, PieChartIcon, Placeholder, PlacementAxis, PlayCircleIcon, PlayIcon, PlusIcon, Portal, type PortalProps, type PositionStyleProps, Prefix, _PrismCode as PrismCode, PrismDiffCode, ProgressBarIcon, ProgressToastEmpty, ProgressToastOptions, PropertyDefinition, PropertyOptions, type Props, Provider, type ProviderProps, __Radio as Radio, _RadioGroup as RadioGroup, __RangeSlider as RangeSlider, RangeValue, RawCSSResult, RawStyleHandler, RecipeStyles, type RelativeRoutingType, ReloadIcon, RenderCache, RenderCacheProps, RenderResult, ReportIcon, _ResetButton as ResetButton, _ResizablePanel as ResizablePanel, ResizeSensor, ResolvedIcon, _Result as Result, ReturnIcon, RightIcon, Root, RootRegistry, RowTotalsIcon, RuleInfo, SHADOW_TOKENS, SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS, SPACE_TOKENS, STATE_OPERATORS, STATE_OPERATOR_LIST, STYLE_TO_CHUNK, SchemeIcon, type ScrollbarType, SearchFieldProps, SearchIcon, SearchInput, Section, __Select as Select, Selector, SemanticQueryIcon, SettingsIcon, SheetInfo, SheetManager, ShieldFilledIcon, ShieldIcon, type ShortGridStyles, SizeKey, SizeName, Skeleton, SlashIcon, __Slider as Slider, SliderState, SlotProvider, Space, SparklesIcon, Spin, SqlIcon, StateParserContext, StatsCard, StatsIcon, StopIcon, StoredNotificationOptions, StringIcon, StyleHandler, StyleHandlerDefinition, StyleHandlerResult, StyleInjector, StyleInjectorConfig, StyleMap, StylePropValue, StyleResult, StyleRule, StyleStateData, StyleStateDataList, StyleStateDataListMap, StyleStateMap, StyleValue, StyleValueStateMap, Styles, StylesInterface, StylesWithoutSelectors, SubElementDefinition, SubElementProps, SubMenuTrigger, _SubmitButton as SubmitButton, _SubmitError as SubmitError, SubtotalsIcon, Suffix, SuffixForSelector, _Switch as Switch, SwitchIcon, TEXT_STYLES, TOKENS, TYPOGRAPHY_PRESETS, Tab, TabSize, TabType, TableIcon, Tabs, TabsAction, TabsActionPosition, _Tag as Tag, type TagName, TastyConfig, TastyElementOptions, TastyElementProps, TastyExtensionConfig, TastyNamedColors, TastyPlugin, TastyPluginFactory, TastyPresetNames, TastyProps, TastyThemeNames, _Text as Text, _TextArea as TextArea, TextInput, TextInputBase, _TextInputMapper as TextInputMapper, TextItem, type TextStyleProps, ThumbsDownIcon, ThumbsUpIcon, ThunderboltCrossedIcon, ThunderboltFilledIcon, ThunderboltIcon, TimeIcon, _TimeInput as TimeInput, _Title as Title, type To, Toast, ToastApi, ToastComponent, ToastData, ToastItem, ToastItemProps, ToastProgressProps, ToastProps, ToastType, TokenValue, Tokens, _Tooltip as Tooltip, TooltipProvider, TooltipTrigger, TrashIcon, Typography, TypographyPreset, UnlockIcon, UpIcon, UseAnchoredMenuReturn, UseContextMenuReturn, UseControlledFocusVisibleResult, UseFieldParams, UseFieldProps, UseFieldPropsParams, UsePropertyOptions, UseStylesOptions, UseStylesResult, UserGroupIcon, UserIcon, UserLockIcon, ValidateTrigger, ValidationResult, ValidationRule, ValidationRuleBase, ValidationState, ViewIcon, WarningFilledIcon, WarningIcon, allocateClassName, buildAtRuleContext, categorizeStyleKeys, chain, chainRaf, cleanup, color, computeState, configure, copy, createInjector, customFunc, defaultNavigationAdapter, deprecationWarning, destroy, dotize, extendStyles, extractFieldWrapperProps, extractModule, extractStyles, filterBaseProps, filterMods, formatRelativeTime, forwardRefWithGenerics, generateRandomId, generateTypographyTokens, getConfig, getCssText, getCssTextForNode, getDisplayName, getGlobalFuncs, getGlobalKeyframes, getGlobalParser, getGlobalPredefinedStates, getGlobalPredefinedTokens, getGlobalRecipes, getIsTestEnvironment, getModSelector, getRawCSSText, getRgbValuesFromRgbaString, getThemeIcon, hasGlobalKeyframes, hasGlobalRecipes, hasStylesGenerated, hexToRgb, hslToRgbValues, inject, injectGlobal, injectRawCSS, injector, isAdvancedStateToken, isConfigLocked, isPropertyDefined, isSelector, isTestEnvironment, isTextOnly, keyframes, mergeProps, mergeRefs, mergeStyles, _modAttrs as modAttrs, normalizeColorTokenValue, okhslFunc, okhslPlugin, openLink, parseAbsoluteDate, parseColor, parseStateNotation, parseStyle, parseTo, performClickHandler, processTokens, propDeprecationWarning, property, random, range, renderStyles, resetConfig, resetGlobalPredefinedTokens, resolveIcon, resolveRecipes, setGlobalPredefinedStates, setGlobalPredefinedTokens, strToRgb, stringifyStyles, stringifyTokens, styleHandlers, styleStateMapToStyleStateDataList, tasty, tastyDebug, timeout, toFlatTree, useAction, useAlertDialogAPI, useAnchoredMenu, useCheckbox, useCombinedRefs, useContextMenu, useControlledFocusVisible, useDialogContainer, useEventBus, useEventListener, useField, useFieldProps, useForm, useFormProps, useGlobalStyles, useItemActionContext, useKeyframes, useLayoutEffect, useLocalStorage, useMenuContext, useMergeStyles, useNotifications, useNotificationsCount, usePersistentNotifications, useProgressToast, useProperty, useProviderProps, useQaProps, useRadio, useRawCSS, useSearchField, useSearchFieldState, useSelectState, useSliderState, useSlotProps, useStyles, useSwitch, useTextField, useToast, useToastContext, useViewportSize, warn, wrapIcon, wrapNodeIfPlain, wrapWithField };
388
388
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { okhslFunc, okhslPlugin } from "./tasty/plugins/okhsl-plugin.js";
3
3
  import { hslToRgbValues, processTokens, stringifyTokens } from "./tasty/utils/process-tokens.js";
4
4
  import { COMPUTE_FUNC_MAP, CUSTOM_UNITS, DIRECTIONS, STATE_OPERATORS, STATE_OPERATOR_LIST, buildAtRuleContext, computeState, customFunc, extendStyles, extractStyles, filterMods, getGlobalFuncs, getGlobalParser, getGlobalPredefinedTokens, getModSelector, getRgbValuesFromRgbaString, hexToRgb, isAdvancedStateToken, normalizeColorTokenValue, parseColor, parseStateNotation, parseStyle, resetGlobalPredefinedTokens, setGlobalPredefinedTokens, strToRgb, stringifyStyles, styleStateMapToStyleStateDataList } from "./tasty/utils/styles.js";
@@ -196,7 +196,6 @@ import { WarningFilledIcon } from "./icons/WarningFilledIcon.js";
196
196
  import { WarningIcon } from "./icons/WarningIcon.js";
197
197
  import { DEFAULT_BUTTON_STYLES } from "./components/actions/Button/Button.js";
198
198
  import { ButtonGroup } from "./components/actions/ButtonGroup/ButtonGroup.js";
199
- import { Link } from "./components/actions/Link/Link.js";
200
199
  import { Banner, BannerAction, BannerLink } from "./components/actions/Banner/Banner.js";
201
200
  import { Action } from "./components/actions/Action/Action.js";
202
201
  import { _ItemButton } from "./components/actions/ItemButton/ItemButton.js";
@@ -222,6 +221,7 @@ import { _CopySnippet } from "./components/content/CopySnippet/CopySnippet.js";
222
221
  import { _CopyPasteBlock } from "./components/content/CopyPasteBlock/CopyPasteBlock.js";
223
222
  import { Grid } from "./components/layout/Grid.js";
224
223
  import { Flex } from "./components/layout/Flex.js";
224
+ import { Link } from "./components/actions/Link/Link.js";
225
225
  import { Flow } from "./components/layout/Flow.js";
226
226
  import { _Panel } from "./components/layout/Panel.js";
227
227
  import { _ResizablePanel } from "./components/layout/ResizablePanel.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Text"],"sources":["../src/index.ts"],"sourcesContent":["import { CubeParagraphProps, Paragraph } from './components/content/Paragraph';\nimport { CubeTextProps, Text } from './components/content/Text';\nimport { CubeTextItemProps, TextItem } from './components/content/TextItem';\nimport { CubeTitleProps, Title } from './components/content/Title';\n\nimport './version';\n\nexport { Section } from 'react-stately';\n\nexport * from '@internationalized/date';\n\n// generic components\nexport { CollectionItem } from './components/CollectionItem';\nexport { Block } from './components/Block';\nexport type { CubeBlockProps } from './components/Block';\nexport { Item } from './components/content/Item/Item';\nexport type { CubeItemProps } from './components/content/Item/Item';\n// @deprecated Use `Item` instead\nexport { ItemBase } from './components/content/Item/Item';\n// @deprecated Use `CubeItemProps` instead\nexport type { CubeItemBaseProps } from './components/content/Item/Item';\nexport { ItemBadge } from './components/content/ItemBadge/ItemBadge';\nexport type { CubeItemBadgeProps } from './components/content/ItemBadge/ItemBadge';\nexport { ActiveZone } from './components/content/ActiveZone/ActiveZone';\nexport type { CubeActiveZoneProps } from './components/content/ActiveZone/ActiveZone';\nexport * from './components/content/CopySnippet';\nexport * from './components/content/CopyPasteBlock';\nexport { Grid } from './components/layout/Grid';\nexport type { CubeGridProps } from './components/layout/Grid';\nexport { Flex } from './components/layout/Flex';\nexport type { CubeFlexProps } from './components/layout/Flex';\nexport { Link } from './components/actions/Link/Link';\nexport { Space } from './components/layout/Space';\nexport type { CubeSpaceProps } from './components/layout/Space';\nexport { Flow } from './components/layout/Flow';\nexport type { CubeFlowProps } from './components/layout/Flow';\nexport { Panel } from './components/layout/Panel';\nexport type { CubePanelProps } from './components/layout/Panel';\nexport { ResizablePanel } from './components/layout/ResizablePanel';\nexport type { CubeResizablePanelProps } from './components/layout/ResizablePanel';\nexport { Root } from './components/Root';\nexport type { CubeRootProps } from './components/Root';\nexport { DisplayTransition } from './components/helpers/DisplayTransition/DisplayTransition';\nexport type { DisplayTransitionProps } from './components/helpers/DisplayTransition/DisplayTransition';\n\n// Navigation types and helpers\nexport type {\n NavigationAdapter,\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from './providers/navigation.types';\nexport { defaultNavigationAdapter } from './providers/navigationAdapter.default';\nexport { PrismCode } from './components/content/PrismCode/PrismCode';\nexport type { CubePrismCodeProps } from './components/content/PrismCode/PrismCode';\nexport { PrismDiffCode } from './components/content/PrismDiffCode/PrismDiffCode';\nexport type { CubePrismDiffCodeProps } from './components/content/PrismDiffCode/PrismDiffCode';\nexport { Prefix } from './components/layout/Prefix';\nexport type { CubePrefixProps } from './components/layout/Prefix';\nexport { Suffix } from './components/layout/Suffix';\nexport type { CubeSuffixProps } from './components/layout/Suffix';\nexport { Divider } from './components/content/Divider';\nexport type { CubeDividerProps } from './components/content/Divider';\nexport { Disclosure } from './components/content/Disclosure';\nexport type {\n CubeDisclosureProps,\n CubeDisclosureTriggerProps,\n CubeDisclosureContentProps,\n CubeDisclosureGroupProps,\n CubeDisclosureItemProps,\n DisclosureStateContext,\n} from './components/content/Disclosure';\nexport { GridProvider } from './components/GridProvider';\nexport type { CubeGridProviderProps } from './components/GridProvider';\nexport { Content } from './components/content/Content';\nexport type { CubeContentProps } from './components/content/Content';\nexport { Header } from './components/content/Header';\nexport type { CubeHeaderProps } from './components/content/Header';\nexport { Footer } from './components/content/Footer';\nexport type { CubeFooterProps } from './components/content/Footer';\nexport { Result } from './components/content/Result/Result';\nexport type {\n CubeResultProps,\n CubeResultStatus,\n} from './components/content/Result/Result';\nexport { Layout, GridLayout } from './components/content/Layout';\nexport type {\n CubeLayoutProps,\n CubeGridLayoutProps,\n CubeLayoutToolbarProps,\n CubeLayoutHeaderProps,\n CubeLayoutFooterProps,\n CubeLayoutContentProps,\n CubeLayoutPaneProps,\n CubeLayoutPanelProps,\n CubeLayoutPanelHeaderProps,\n ScrollbarType,\n} from './components/content/Layout';\n\n// atoms\nexport * from './components/status';\nexport { Card } from './components/content/Card/Card';\nexport type { CubeCardProps } from './components/content/Card/Card';\nexport * from './components/actions';\nexport { Placeholder } from './components/content/Placeholder/Placeholder';\nexport type { CubePlaceholderProps } from './components/content/Placeholder/Placeholder';\nexport { Skeleton } from './components/content/Skeleton/Skeleton';\nexport type { CubeSkeletonProps } from './components/content/Skeleton/Skeleton';\nexport { CloudLogo } from './components/other/CloudLogo/CloudLogo';\nexport { Badge } from './components/content/Badge/Badge';\nexport type { CubeBadgeProps } from './components/content/Badge/Badge';\nexport { Tag } from './components/content/Tag/Tag';\nexport type { CubeTagProps } from './components/content/Tag/Tag';\nexport * from './components/content/HotKeys';\nexport type { CubeSearchInputProps } from './components/fields/SearchInput/SearchInput';\nexport type { CubeListBoxProps } from './components/fields/ListBox';\nexport { ListBox } from './components/fields/ListBox';\nexport { Menu } from './components/actions/Menu/Menu';\nexport type { CubeMenuProps } from './components/actions/Menu/Menu';\nexport { MenuTrigger } from './components/actions/Menu/MenuTrigger';\nexport { SubMenuTrigger } from './components/actions/Menu/SubMenuTrigger';\nexport type { CubeMenuTriggerProps } from './components/actions/Menu/MenuTrigger';\nexport { CommandMenu } from './components/actions/CommandMenu';\nexport type {\n CubeCommandMenuProps,\n CommandMenuItem,\n} from './components/actions/CommandMenu';\nexport { Select, ListBoxPopup } from './components/fields/Select/Select';\nexport type {\n CubeSelectProps,\n CubeSelectBaseProps,\n} from './components/fields/Select/Select';\n\nexport { Avatar } from './components/content/Avatar/Avatar';\nexport type { CubeAvatarProps } from './components/content/Avatar/Avatar';\nexport {\n Dialog,\n DialogTrigger,\n DialogContainer,\n DialogForm,\n useDialogContainer,\n} from './components/overlays/Dialog';\nexport type {\n CubeDialogTriggerProps,\n CubeDialogContainerProps,\n CubeDialogProps,\n CubeDialogFormRef,\n CubeDialogFormProps,\n} from './components/overlays/Dialog';\nexport { Tooltip } from './components/overlays/Tooltip/Tooltip';\nexport type { CubeTooltipProps } from './components/overlays/Tooltip/Tooltip';\nexport { TooltipTrigger } from './components/overlays/Tooltip/TooltipTrigger';\nexport type { CubeTooltipTriggerProps } from './components/overlays/Tooltip/TooltipTrigger';\nexport { TooltipProvider } from './components/overlays/Tooltip/TooltipProvider';\nexport type { CubeTooltipProviderProps } from './components/overlays/Tooltip/TooltipProvider';\n\nexport * from './components/content/Alert';\n\n// navigation\nexport * from './components/navigation';\n\n// molecules\nexport { FileTabs } from './components/organisms/FileTabs/FileTabs';\nexport type { CubeFileTabProps } from './components/organisms/FileTabs/FileTabs';\nexport { StatsCard } from './components/organisms/StatsCard/StatsCard';\nexport type { CubeStatsCard } from './components/organisms/StatsCard/StatsCard';\nexport {\n AlertDialog,\n useAlertDialogAPI,\n} from './components/overlays/AlertDialog';\nexport type { CubeAlertDialogProps } from './components/overlays/AlertDialog';\n\nexport * from './tasty';\n\nexport const Typography = {\n Text: Text,\n Title,\n Paragraph,\n};\n\nexport { Text, TextItem, Title, Paragraph };\nexport type {\n CubeTextProps,\n CubeTextItemProps,\n CubeTitleProps,\n CubeParagraphProps,\n};\n\nexport { Provider, useProviderProps } from './provider';\nexport type { ProviderProps } from './provider';\nexport { Portal } from './components/portal';\nexport type { PortalProps } from './components/portal';\nexport * from './components/fields';\n\nexport type {\n TagName,\n AllBaseProps,\n BaseProps,\n BaseStyleProps,\n DimensionStyleProps,\n ColorStyleProps,\n OuterStyleProps,\n PositionStyleProps,\n TextStyleProps,\n BlockStyleProps,\n ContainerStyleProps,\n BasePropsWithoutChildren,\n Props,\n FlowStyleProps,\n ShortGridStyles,\n} from './tasty';\n\nexport * from './utils';\nexport * from './tasty';\nexport { default as copy } from 'clipboard-copy';\nexport * from '@react-aria/ssr';\nexport * from './components/overlays/Toast';\nexport * from './components/overlays/Notifications';\nexport * from './shared';\nexport * from './icons';\nexport * from './components/form';\nexport * from './tokens';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiLA,MAAa,aAAa;CACxB,MAAMA;CACN;CACA;CACD"}
1
+ {"version":3,"file":"index.js","names":["Text"],"sources":["../src/index.ts"],"sourcesContent":["import { CubeParagraphProps, Paragraph } from './components/content/Paragraph';\nimport { CubeTextProps, Text } from './components/content/Text';\nimport { CubeTextItemProps, TextItem } from './components/content/TextItem';\nimport { CubeTitleProps, Title } from './components/content/Title';\n\nimport './version';\n\nexport { Section } from 'react-stately';\nexport type { MenuTriggerState } from 'react-stately';\n\nexport * from '@internationalized/date';\n\n// generic components\nexport { CollectionItem } from './components/CollectionItem';\nexport { Block } from './components/Block';\nexport type { CubeBlockProps } from './components/Block';\nexport { Item } from './components/content/Item/Item';\nexport type { CubeItemProps } from './components/content/Item/Item';\n// @deprecated Use `Item` instead\nexport { ItemBase } from './components/content/Item/Item';\n// @deprecated Use `CubeItemProps` instead\nexport type { CubeItemBaseProps } from './components/content/Item/Item';\nexport { ItemBadge } from './components/content/ItemBadge/ItemBadge';\nexport type { CubeItemBadgeProps } from './components/content/ItemBadge/ItemBadge';\nexport { ActiveZone } from './components/content/ActiveZone/ActiveZone';\nexport type { CubeActiveZoneProps } from './components/content/ActiveZone/ActiveZone';\nexport * from './components/content/CopySnippet';\nexport * from './components/content/CopyPasteBlock';\nexport { Grid } from './components/layout/Grid';\nexport type { CubeGridProps } from './components/layout/Grid';\nexport { Flex } from './components/layout/Flex';\nexport type { CubeFlexProps } from './components/layout/Flex';\nexport { Link } from './components/actions/Link/Link';\nexport { Space } from './components/layout/Space';\nexport type { CubeSpaceProps } from './components/layout/Space';\nexport { Flow } from './components/layout/Flow';\nexport type { CubeFlowProps } from './components/layout/Flow';\nexport { Panel } from './components/layout/Panel';\nexport type { CubePanelProps } from './components/layout/Panel';\nexport { ResizablePanel } from './components/layout/ResizablePanel';\nexport type { CubeResizablePanelProps } from './components/layout/ResizablePanel';\nexport { Root } from './components/Root';\nexport type { CubeRootProps } from './components/Root';\nexport { DisplayTransition } from './components/helpers/DisplayTransition/DisplayTransition';\nexport type { DisplayTransitionProps } from './components/helpers/DisplayTransition/DisplayTransition';\n\n// Navigation types and helpers\nexport type {\n NavigationAdapter,\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from './providers/navigation.types';\nexport { defaultNavigationAdapter } from './providers/navigationAdapter.default';\nexport { PrismCode } from './components/content/PrismCode/PrismCode';\nexport type { CubePrismCodeProps } from './components/content/PrismCode/PrismCode';\nexport { PrismDiffCode } from './components/content/PrismDiffCode/PrismDiffCode';\nexport type { CubePrismDiffCodeProps } from './components/content/PrismDiffCode/PrismDiffCode';\nexport { Prefix } from './components/layout/Prefix';\nexport type { CubePrefixProps } from './components/layout/Prefix';\nexport { Suffix } from './components/layout/Suffix';\nexport type { CubeSuffixProps } from './components/layout/Suffix';\nexport { Divider } from './components/content/Divider';\nexport type { CubeDividerProps } from './components/content/Divider';\nexport { Disclosure } from './components/content/Disclosure';\nexport type {\n CubeDisclosureProps,\n CubeDisclosureTriggerProps,\n CubeDisclosureContentProps,\n CubeDisclosureGroupProps,\n CubeDisclosureItemProps,\n DisclosureStateContext,\n} from './components/content/Disclosure';\nexport { GridProvider } from './components/GridProvider';\nexport type { CubeGridProviderProps } from './components/GridProvider';\nexport { Content } from './components/content/Content';\nexport type { CubeContentProps } from './components/content/Content';\nexport { Header } from './components/content/Header';\nexport type { CubeHeaderProps } from './components/content/Header';\nexport { Footer } from './components/content/Footer';\nexport type { CubeFooterProps } from './components/content/Footer';\nexport { Result } from './components/content/Result/Result';\nexport type {\n CubeResultProps,\n CubeResultStatus,\n} from './components/content/Result/Result';\nexport { Layout, GridLayout } from './components/content/Layout';\nexport type {\n CubeLayoutProps,\n CubeGridLayoutProps,\n CubeLayoutToolbarProps,\n CubeLayoutHeaderProps,\n CubeLayoutFooterProps,\n CubeLayoutContentProps,\n CubeLayoutPaneProps,\n CubeLayoutPanelProps,\n CubeLayoutPanelHeaderProps,\n ScrollbarType,\n} from './components/content/Layout';\n\n// atoms\nexport * from './components/status';\nexport { Card } from './components/content/Card/Card';\nexport type { CubeCardProps } from './components/content/Card/Card';\nexport * from './components/actions';\nexport { Placeholder } from './components/content/Placeholder/Placeholder';\nexport type { CubePlaceholderProps } from './components/content/Placeholder/Placeholder';\nexport { Skeleton } from './components/content/Skeleton/Skeleton';\nexport type { CubeSkeletonProps } from './components/content/Skeleton/Skeleton';\nexport { CloudLogo } from './components/other/CloudLogo/CloudLogo';\nexport { Badge } from './components/content/Badge/Badge';\nexport type { CubeBadgeProps } from './components/content/Badge/Badge';\nexport { Tag } from './components/content/Tag/Tag';\nexport type { CubeTagProps } from './components/content/Tag/Tag';\nexport * from './components/content/HotKeys';\nexport type { CubeSearchInputProps } from './components/fields/SearchInput/SearchInput';\nexport type { CubeListBoxProps } from './components/fields/ListBox';\nexport { ListBox } from './components/fields/ListBox';\nexport { Menu } from './components/actions/Menu/Menu';\nexport type { CubeMenuProps } from './components/actions/Menu/Menu';\nexport { MenuTrigger } from './components/actions/Menu/MenuTrigger';\nexport { SubMenuTrigger } from './components/actions/Menu/SubMenuTrigger';\nexport type { CubeMenuTriggerProps } from './components/actions/Menu/MenuTrigger';\nexport { CommandMenu } from './components/actions/CommandMenu';\nexport type {\n CubeCommandMenuProps,\n CommandMenuItem,\n} from './components/actions/CommandMenu';\nexport { Select, ListBoxPopup } from './components/fields/Select/Select';\nexport type {\n CubeSelectProps,\n CubeSelectBaseProps,\n} from './components/fields/Select/Select';\n\nexport { Avatar } from './components/content/Avatar/Avatar';\nexport type { CubeAvatarProps } from './components/content/Avatar/Avatar';\nexport {\n Dialog,\n DialogTrigger,\n DialogContainer,\n DialogForm,\n useDialogContainer,\n} from './components/overlays/Dialog';\nexport type {\n CubeDialogTriggerProps,\n CubeDialogContainerProps,\n CubeDialogProps,\n CubeDialogFormRef,\n CubeDialogFormProps,\n} from './components/overlays/Dialog';\nexport { Tooltip } from './components/overlays/Tooltip/Tooltip';\nexport type { CubeTooltipProps } from './components/overlays/Tooltip/Tooltip';\nexport { TooltipTrigger } from './components/overlays/Tooltip/TooltipTrigger';\nexport type { CubeTooltipTriggerProps } from './components/overlays/Tooltip/TooltipTrigger';\nexport { TooltipProvider } from './components/overlays/Tooltip/TooltipProvider';\nexport type { CubeTooltipProviderProps } from './components/overlays/Tooltip/TooltipProvider';\n\nexport * from './components/content/Alert';\n\n// navigation\nexport * from './components/navigation';\n\n// molecules\nexport { FileTabs } from './components/organisms/FileTabs/FileTabs';\nexport type { CubeFileTabProps } from './components/organisms/FileTabs/FileTabs';\nexport { StatsCard } from './components/organisms/StatsCard/StatsCard';\nexport type { CubeStatsCard } from './components/organisms/StatsCard/StatsCard';\nexport {\n AlertDialog,\n useAlertDialogAPI,\n} from './components/overlays/AlertDialog';\nexport type { CubeAlertDialogProps } from './components/overlays/AlertDialog';\n\nexport * from './tasty';\n\nexport const Typography = {\n Text: Text,\n Title,\n Paragraph,\n};\n\nexport { Text, TextItem, Title, Paragraph };\nexport type {\n CubeTextProps,\n CubeTextItemProps,\n CubeTitleProps,\n CubeParagraphProps,\n};\n\nexport { Provider, useProviderProps } from './provider';\nexport type { ProviderProps } from './provider';\nexport { Portal } from './components/portal';\nexport type { PortalProps } from './components/portal';\nexport * from './components/fields';\n\nexport type {\n TagName,\n AllBaseProps,\n BaseProps,\n BaseStyleProps,\n DimensionStyleProps,\n ColorStyleProps,\n OuterStyleProps,\n PositionStyleProps,\n TextStyleProps,\n BlockStyleProps,\n ContainerStyleProps,\n BasePropsWithoutChildren,\n Props,\n FlowStyleProps,\n ShortGridStyles,\n} from './tasty';\n\nexport * from './utils';\nexport * from './tasty';\nexport { default as copy } from 'clipboard-copy';\nexport * from '@react-aria/ssr';\nexport * from './components/overlays/Toast';\nexport * from './components/overlays/Notifications';\nexport * from './shared';\nexport * from './icons';\nexport * from './components/form';\nexport * from './tokens';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkLA,MAAa,aAAa;CACxB,MAAMA;CACN;CACA;CACD"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { parseStyle } from "../utils/styles.js";
3
3
  import { colorInitialValueToRgb, getEffectiveDefinition, normalizePropertyDefinition } from "../properties/index.js";
4
4
  import { isDevEnv } from "../utils/is-dev-env.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { createStyle } from "../styles/createStyle.js";
3
3
  import { STYLE_HANDLER_MAP } from "../styles/index.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  //#region src/tasty/keyframes/index.ts
3
3
  const KEYFRAMES_KEY = "@keyframes";
4
4
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { COLOR_FUNCS, RE_HEX, RE_NUMBER, RE_RAW_UNIT, RE_UNIT_NUM, VALUE_KEYWORDS } from "./const.js";
3
3
  import { Bucket } from "./types.js";
4
4
  import { StyleParser } from "./parser.js";
@@ -153,16 +153,11 @@ function classify(raw, opts, recurse) {
153
153
  }
154
154
  }
155
155
  const hasLegacyAlpha = !hasModernAlpha && /a$/i.test(funcName) && topLevelCommaCount === 3;
156
- if (hasModernAlpha || hasLegacyAlpha) {
157
- const withoutAlpha = hasModernAlpha ? args.slice(0, slashIdx).trim() : args.slice(0, lastTopLevelComma).trim();
158
- return {
159
- bucket: Bucket.Color,
160
- processed: `${normalizedFunc}(${normalizeArgs(withoutAlpha)} / ${alpha})`
161
- };
162
- }
156
+ const constructed = `${normalizedFunc}(${hasModernAlpha || hasLegacyAlpha ? normalizeArgs(hasModernAlpha ? args.slice(0, slashIdx).trim() : args.slice(0, lastTopLevelComma).trim()) : normalizeArgs(args)} / ${alpha})`;
157
+ if (!COLOR_FUNCS.has(normalizedFunc) && opts.funcs && normalizedFunc in opts.funcs) return classify(constructed, opts, recurse);
163
158
  return {
164
159
  bucket: Bucket.Color,
165
- processed: `${normalizedFunc}(${normalizeArgs(args)} / ${alpha})`
160
+ processed: constructed
166
161
  };
167
162
  }
168
163
  return classify(`${resolvedValue}.${rawAlpha}`, opts, recurse);
@@ -1 +1 @@
1
- {"version":3,"file":"classify.js","names":[],"sources":["../../src/tasty/parser/classify.ts"],"sourcesContent":["import { getGlobalPredefinedTokens } from '../utils/styles';\n\nimport {\n COLOR_FUNCS,\n RE_HEX,\n RE_NUMBER,\n RE_RAW_UNIT,\n RE_UNIT_NUM,\n VALUE_KEYWORDS,\n} from './const';\nimport { StyleParser } from './parser';\nimport { Bucket, ParserOptions, ProcessedStyle } from './types';\n\n/**\n * Re-parses a value through the parser until it stabilizes (no changes)\n * or max iterations reached. This allows units to reference other units.\n * Example: { x: '8px', y: '2x' } -> '1y' resolves to '16px'\n */\nfunction resolveUntilStable(\n value: string,\n opts: ParserOptions,\n recurse: (str: string) => ProcessedStyle,\n maxIterations = 10,\n): string {\n let current = value;\n for (let i = 0; i < maxIterations; i++) {\n // Check if the current value contains a custom unit that needs resolution\n const unitMatch = current.match(RE_UNIT_NUM);\n if (!unitMatch) break; // Not a unit number, no resolution needed\n\n const unitName = unitMatch[1];\n // Only recurse if the unit is a custom unit we know about\n // Any unit not in opts.units is assumed to be a native CSS unit\n if (!opts.units || !(unitName in opts.units)) break;\n\n const result = recurse(current);\n if (result.output === current) break; // Stable\n current = result.output;\n }\n return current;\n}\n\nexport function classify(\n raw: string,\n opts: ParserOptions,\n recurse: (str: string) => ProcessedStyle,\n): { bucket: Bucket; processed: string } {\n const token = raw.trim();\n if (!token) return { bucket: Bucket.Mod, processed: '' };\n\n // Early-out: if the token contains unmatched parentheses treat it as invalid\n // and skip it. This avoids cases like `drop-shadow(` that are missing a\n // closing parenthesis (e.g., a user-typo in CSS). We count paren depth while\n // ignoring everything inside string literals to avoid false positives.\n {\n let depth = 0;\n let inQuote: string | 0 = 0;\n for (let i = 0; i < token.length; i++) {\n const ch = token[i];\n\n // track quote context so parentheses inside quotes are ignored\n if (inQuote) {\n if (ch === inQuote && token[i - 1] !== '\\\\') inQuote = 0;\n continue;\n }\n if (ch === '\"' || ch === \"'\") {\n inQuote = ch;\n continue;\n }\n\n if (ch === '(') depth++;\n else if (ch === ')') depth = Math.max(0, depth - 1);\n }\n\n if (depth !== 0) {\n // Unbalanced parens → treat as invalid token (skipped).\n console.warn(\n 'tasty: skipped invalid function token with unmatched parentheses:',\n token,\n );\n return { bucket: Bucket.Mod, processed: '' };\n }\n }\n\n // Quoted string literals should be treated as value tokens (e.g., \"\" for content)\n if (\n (token.startsWith('\"') && token.endsWith('\"')) ||\n (token.startsWith(\"'\") && token.endsWith(\"'\"))\n ) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 0. Double prefix for literal CSS property names ($$name -> --name, ##name -> --name-color)\n // Used in transitions and animations to reference the property name itself, not its value\n if (token.startsWith('$$')) {\n const name = token.slice(2);\n if (/^[a-z_][a-z0-9-_]*$/i.test(name)) {\n return { bucket: Bucket.Value, processed: `--${name}` };\n }\n }\n if (token.startsWith('##')) {\n const name = token.slice(2);\n if (/^[a-z_][a-z0-9-_]*$/i.test(name)) {\n return { bucket: Bucket.Value, processed: `--${name}-color` };\n }\n }\n\n // 0b. Special handling for #current (reserved keyword, cannot be overridden by predefined tokens)\n // #current maps to CSS currentcolor keyword\n if (token === '#current') {\n return { bucket: Bucket.Color, processed: 'currentcolor' };\n }\n\n // #current with opacity: #current.5 or #current.$opacity\n // Uses color-mix since currentcolor doesn't support rgb() alpha syntax\n const currentAlphaMatch = token.match(\n /^#current\\.(\\$[a-z_][a-z0-9-_]*|[0-9]+)$/i,\n );\n if (currentAlphaMatch) {\n const rawAlpha = currentAlphaMatch[1];\n let percentage: string;\n if (rawAlpha.startsWith('$')) {\n // Custom property: $disabled -> calc(var(--disabled) * 100%)\n const propName = rawAlpha.slice(1);\n percentage = `calc(var(--${propName}) * 100%)`;\n } else if (rawAlpha === '0') {\n percentage = '0%';\n } else {\n // Convert .5 -> 50%, .05 -> 5%\n percentage = `${parseFloat('.' + rawAlpha) * 100}%`;\n }\n return {\n bucket: Bucket.Color,\n processed: `color-mix(in oklab, currentcolor ${percentage}, transparent)`,\n };\n }\n\n // 0c. Check for predefined tokens (configured via configure({ tokens: {...} }))\n // Must happen before default $ and # handling to allow overriding\n if (token[0] === '$' || token[0] === '#') {\n const predefinedTokens = getGlobalPredefinedTokens();\n if (predefinedTokens) {\n // Exact match\n if (token in predefinedTokens) {\n const tokenValue = predefinedTokens[token];\n // Lowercase the token value to match parser behavior (parser lowercases input)\n return classify(tokenValue.toLowerCase(), opts, recurse);\n }\n // Check for color token with alpha suffix: #token.alpha or #token.$prop\n if (token[0] === '#') {\n const alphaMatch = token.match(\n /^(#[a-z0-9-]+)\\.(\\$[a-z_][a-z0-9-_]*|[0-9]+)$/i,\n );\n if (alphaMatch) {\n const [, baseToken, rawAlpha] = alphaMatch;\n if (baseToken in predefinedTokens) {\n const resolvedValue = predefinedTokens[baseToken];\n\n // If resolved value starts with # (color token), use standard alpha syntax\n if (resolvedValue.startsWith('#')) {\n // Lowercase to match parser behavior\n return classify(\n `${resolvedValue.toLowerCase()}.${rawAlpha}`,\n opts,\n recurse,\n );\n }\n\n // For color functions like rgb(), rgba(), hsl(), hwb(), etc., inject alpha\n // Includes all standard CSS color functions plus okhsl (plugin)\n const funcMatch = resolvedValue.match(\n /^(rgba?|hsla?|hwb|oklab|oklch|lab|lch|color|okhsl|device-cmyk|gray|color-mix|color-contrast)\\((.+)\\)$/i,\n );\n if (funcMatch) {\n const [, funcName, args] = funcMatch;\n // Handle $prop syntax for custom property alpha\n let alpha: string;\n if (rawAlpha.startsWith('$')) {\n const propName = rawAlpha.slice(1);\n alpha = `var(--${propName})`;\n } else {\n alpha = rawAlpha === '0' ? '0' : `.${rawAlpha}`;\n }\n // Normalize function name: rgba->rgb, hsla->hsl (modern syntax doesn't need 'a' suffix)\n const normalizedFunc = funcName.replace(/a$/i, '').toLowerCase();\n // Normalize to modern syntax: replace top-level commas with spaces\n // Preserves commas inside nested functions like min(), max(), clamp()\n const normalizeArgs = (a: string) => {\n let result = '';\n let depth = 0;\n for (let i = 0; i < a.length; i++) {\n const c = a[i];\n if (c === '(') {\n depth++;\n result += c;\n } else if (c === ')') {\n depth = Math.max(0, depth - 1);\n result += c;\n } else if (c === ',' && depth === 0) {\n // Skip comma and any following whitespace at top level\n while (i + 1 < a.length && /\\s/.test(a[i + 1])) i++;\n result += ' ';\n } else {\n result += c;\n }\n }\n return result;\n };\n // Helper: find last top-level occurrence of a character (ignores parentheses)\n const findLastTopLevel = (str: string, ch: string) => {\n let depth = 0;\n for (let i = str.length - 1; i >= 0; i--) {\n const c = str[i];\n if (c === ')') depth++;\n else if (c === '(') depth = Math.max(0, depth - 1);\n else if (c === ch && depth === 0) return i;\n }\n return -1;\n };\n\n // Check if already has alpha:\n // - Modern syntax: has `/` separator at top level (works with dynamic alpha like var()/calc())\n // - Legacy syntax: function ends with 'a' (rgba, hsla) and has exactly 4 top-level comma-separated values\n const slashIdx = findLastTopLevel(args, '/');\n const hasModernAlpha = slashIdx !== -1;\n\n // Count top-level commas to avoid commas inside nested functions\n let topLevelCommaCount = 0;\n let lastTopLevelComma = -1;\n {\n let depth = 0;\n for (let i = 0; i < args.length; i++) {\n const c = args[i];\n if (c === '(') depth++;\n else if (c === ')') depth = Math.max(0, depth - 1);\n else if (c === ',' && depth === 0) {\n topLevelCommaCount++;\n lastTopLevelComma = i;\n }\n }\n }\n\n const hasLegacyAlpha =\n !hasModernAlpha &&\n /a$/i.test(funcName) &&\n topLevelCommaCount === 3;\n\n if (hasModernAlpha || hasLegacyAlpha) {\n // Strip existing alpha (numeric or dynamic) before applying suffix\n const withoutAlpha = hasModernAlpha\n ? args.slice(0, slashIdx).trim()\n : args.slice(0, lastTopLevelComma).trim();\n return {\n bucket: Bucket.Color,\n processed: `${normalizedFunc}(${normalizeArgs(withoutAlpha)} / ${alpha})`,\n };\n }\n // Add alpha using modern syntax\n return {\n bucket: Bucket.Color,\n processed: `${normalizedFunc}(${normalizeArgs(args)} / ${alpha})`,\n };\n }\n\n // Fallback: try appending .alpha (may not work for all cases)\n return classify(`${resolvedValue}.${rawAlpha}`, opts, recurse);\n }\n }\n }\n }\n }\n\n // 0. Direct var(--*-color) token\n const varColorMatch = token.match(/^var\\(--([a-z0-9-]+)-color\\)$/);\n if (varColorMatch) {\n return { bucket: Bucket.Color, processed: token };\n }\n\n // 1. URL\n if (token.startsWith('url(')) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 2. Custom property\n if (token[0] === '$') {\n const identMatch = token.match(/^\\$([a-z_][a-z0-9-_]*)$/);\n if (identMatch) {\n const name = identMatch[1];\n const processed = `var(--${name})`;\n const bucketType = name.endsWith('-color') ? Bucket.Color : Bucket.Value;\n return {\n bucket: bucketType,\n processed,\n };\n }\n // invalid custom property → modifier\n }\n\n // 3. Hash colors (with optional alpha suffix e.g., #purple.5 or #purple.$disabled)\n if (token[0] === '#' && token.length > 1) {\n // alpha form: #name.alpha or #name.$prop\n const alphaMatch = token.match(\n /^#([a-z0-9-]+)\\.(\\$[a-z_][a-z0-9-_]*|[0-9]+)$/i,\n );\n if (alphaMatch) {\n const [, base, rawAlpha] = alphaMatch;\n let alpha: string;\n if (rawAlpha.startsWith('$')) {\n // Custom property: $disabled -> var(--disabled)\n const propName = rawAlpha.slice(1);\n alpha = `var(--${propName})`;\n } else if (rawAlpha === '0') {\n alpha = '0';\n } else {\n alpha = `.${rawAlpha}`;\n }\n return {\n bucket: Bucket.Color,\n processed: `rgb(var(--${base}-color-rgb) / ${alpha})`,\n };\n }\n\n // hyphenated names like #dark-05 should keep full name\n\n const name = token.slice(1);\n // valid hex → treat as hex literal with fallback\n if (RE_HEX.test(name)) {\n return {\n bucket: Bucket.Color,\n processed: `var(--${name}-color, #${name})`,\n };\n }\n // simple color name token → css variable lookup with rgb fallback\n return { bucket: Bucket.Color, processed: `var(--${name}-color)` };\n }\n\n // 4 & 5. Functions\n const openIdx = token.indexOf('(');\n if (openIdx > 0 && token.endsWith(')')) {\n const fname = token.slice(0, openIdx);\n const inner = token.slice(openIdx + 1, -1); // without ()\n\n if (COLOR_FUNCS.has(fname)) {\n // Process inner to expand nested colors or units.\n const argProcessed = recurse(inner).output.replace(/,\\s+/g, ','); // color funcs expect no spaces after commas\n return { bucket: Bucket.Color, processed: `${fname}(${argProcessed})` };\n }\n\n // user function (provided via opts)\n if (opts.funcs && fname in opts.funcs) {\n // split by top-level commas within inner\n const tmp = new StyleParser(opts).process(inner); // fresh parser w/ same opts but no cache share issues\n const funcResult = opts.funcs[fname](tmp.groups);\n // Re-classify the result to determine proper bucket (e.g., if it returns a color)\n // Pass funcs: undefined to prevent infinite recursion if result matches a function pattern\n return classify(funcResult, { ...opts, funcs: undefined }, recurse);\n }\n\n // generic: process inner and rebuild\n const argProcessed = recurse(inner).output;\n return { bucket: Bucket.Value, processed: `${fname}(${argProcessed})` };\n }\n\n // 6. Color fallback syntax: (#name, fallback)\n if (token.startsWith('(') && token.endsWith(')')) {\n const inner = token.slice(1, -1);\n const colorMatch = inner.match(/^#([a-z0-9-]+)\\s*,\\s*(.*)$/i);\n if (colorMatch) {\n const [, name, fallback] = colorMatch;\n const processedFallback = recurse(fallback).output;\n return {\n bucket: Bucket.Color,\n processed: `var(--${name}-color, ${processedFallback})`,\n };\n }\n }\n\n // 7. Custom property with fallback syntax: ($prop, fallback)\n if (token.startsWith('(') && token.endsWith(')')) {\n const inner = token.slice(1, -1);\n const match = inner.match(/^\\$([a-z_][a-z0-9-_]*)\\s*,\\s*(.*)$/);\n if (match) {\n const [, name, fallback] = match;\n const processedFallback = recurse(fallback).output;\n const bucketType = name.endsWith('-color') ? Bucket.Color : Bucket.Value;\n return {\n bucket: bucketType,\n processed: `var(--${name}, ${processedFallback})`,\n };\n }\n }\n\n // 8. Auto-calc group\n if (token[0] === '(' && token[token.length - 1] === ')') {\n const inner = token.slice(1, -1);\n const innerProcessed = recurse(inner).output;\n return { bucket: Bucket.Value, processed: `calc(${innerProcessed})` };\n }\n\n // 9. Unit number\n const um = token.match(RE_UNIT_NUM);\n if (um) {\n const unit = um[1];\n const numericPart = parseFloat(token.slice(0, -unit.length));\n const handler = opts.units && opts.units[unit];\n if (handler) {\n if (typeof handler === 'string') {\n // Check if this is a raw CSS unit (e.g., \"8px\", \"1rem\")\n const rawMatch = handler.match(RE_RAW_UNIT);\n if (rawMatch) {\n // Raw unit: calculate directly instead of using calc()\n const [, baseNum, cssUnit] = rawMatch;\n const result = numericPart * parseFloat(baseNum);\n const processed = `${result}${cssUnit}`;\n // Re-parse to resolve any nested units (e.g., units referencing other units)\n const resolved = resolveUntilStable(processed, opts, recurse);\n return { bucket: Bucket.Value, processed: resolved };\n }\n\n // Non-raw handler (e.g., \"var(--gap)\", \"calc(...)\"): use calc() wrapping\n const base = handler;\n if (numericPart === 1) {\n return { bucket: Bucket.Value, processed: base };\n }\n return {\n bucket: Bucket.Value,\n processed: `calc(${numericPart} * ${base})`,\n };\n } else {\n // Function units return complete CSS expressions, no wrapping needed\n const inner = handler(numericPart);\n return {\n bucket: Bucket.Value,\n processed: inner,\n };\n }\n }\n }\n\n // 9b. Unknown numeric+unit → treat as literal value (e.g., 1fr)\n if (/^[+-]?(?:\\d*\\.\\d+|\\d+)[a-z%]+$/.test(token)) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 9c. Plain unit-less numbers should be treated as value tokens so that\n // code such as `scrollbar={10}` resolves correctly.\n if (RE_NUMBER.test(token)) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 10. Literal value keywords\n if (VALUE_KEYWORDS.has(token)) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 10b. Special keyword colors\n if (token === 'transparent' || token === 'currentcolor') {\n return { bucket: Bucket.Color, processed: token };\n }\n\n // 11. Fallback modifier\n return { bucket: Bucket.Mod, processed: token };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"classify.js","names":[],"sources":["../../src/tasty/parser/classify.ts"],"sourcesContent":["import { getGlobalPredefinedTokens } from '../utils/styles';\n\nimport {\n COLOR_FUNCS,\n RE_HEX,\n RE_NUMBER,\n RE_RAW_UNIT,\n RE_UNIT_NUM,\n VALUE_KEYWORDS,\n} from './const';\nimport { StyleParser } from './parser';\nimport { Bucket, ParserOptions, ProcessedStyle } from './types';\n\n/**\n * Re-parses a value through the parser until it stabilizes (no changes)\n * or max iterations reached. This allows units to reference other units.\n * Example: { x: '8px', y: '2x' } -> '1y' resolves to '16px'\n */\nfunction resolveUntilStable(\n value: string,\n opts: ParserOptions,\n recurse: (str: string) => ProcessedStyle,\n maxIterations = 10,\n): string {\n let current = value;\n for (let i = 0; i < maxIterations; i++) {\n // Check if the current value contains a custom unit that needs resolution\n const unitMatch = current.match(RE_UNIT_NUM);\n if (!unitMatch) break; // Not a unit number, no resolution needed\n\n const unitName = unitMatch[1];\n // Only recurse if the unit is a custom unit we know about\n // Any unit not in opts.units is assumed to be a native CSS unit\n if (!opts.units || !(unitName in opts.units)) break;\n\n const result = recurse(current);\n if (result.output === current) break; // Stable\n current = result.output;\n }\n return current;\n}\n\nexport function classify(\n raw: string,\n opts: ParserOptions,\n recurse: (str: string) => ProcessedStyle,\n): { bucket: Bucket; processed: string } {\n const token = raw.trim();\n if (!token) return { bucket: Bucket.Mod, processed: '' };\n\n // Early-out: if the token contains unmatched parentheses treat it as invalid\n // and skip it. This avoids cases like `drop-shadow(` that are missing a\n // closing parenthesis (e.g., a user-typo in CSS). We count paren depth while\n // ignoring everything inside string literals to avoid false positives.\n {\n let depth = 0;\n let inQuote: string | 0 = 0;\n for (let i = 0; i < token.length; i++) {\n const ch = token[i];\n\n // track quote context so parentheses inside quotes are ignored\n if (inQuote) {\n if (ch === inQuote && token[i - 1] !== '\\\\') inQuote = 0;\n continue;\n }\n if (ch === '\"' || ch === \"'\") {\n inQuote = ch;\n continue;\n }\n\n if (ch === '(') depth++;\n else if (ch === ')') depth = Math.max(0, depth - 1);\n }\n\n if (depth !== 0) {\n // Unbalanced parens → treat as invalid token (skipped).\n console.warn(\n 'tasty: skipped invalid function token with unmatched parentheses:',\n token,\n );\n return { bucket: Bucket.Mod, processed: '' };\n }\n }\n\n // Quoted string literals should be treated as value tokens (e.g., \"\" for content)\n if (\n (token.startsWith('\"') && token.endsWith('\"')) ||\n (token.startsWith(\"'\") && token.endsWith(\"'\"))\n ) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 0. Double prefix for literal CSS property names ($$name -> --name, ##name -> --name-color)\n // Used in transitions and animations to reference the property name itself, not its value\n if (token.startsWith('$$')) {\n const name = token.slice(2);\n if (/^[a-z_][a-z0-9-_]*$/i.test(name)) {\n return { bucket: Bucket.Value, processed: `--${name}` };\n }\n }\n if (token.startsWith('##')) {\n const name = token.slice(2);\n if (/^[a-z_][a-z0-9-_]*$/i.test(name)) {\n return { bucket: Bucket.Value, processed: `--${name}-color` };\n }\n }\n\n // 0b. Special handling for #current (reserved keyword, cannot be overridden by predefined tokens)\n // #current maps to CSS currentcolor keyword\n if (token === '#current') {\n return { bucket: Bucket.Color, processed: 'currentcolor' };\n }\n\n // #current with opacity: #current.5 or #current.$opacity\n // Uses color-mix since currentcolor doesn't support rgb() alpha syntax\n const currentAlphaMatch = token.match(\n /^#current\\.(\\$[a-z_][a-z0-9-_]*|[0-9]+)$/i,\n );\n if (currentAlphaMatch) {\n const rawAlpha = currentAlphaMatch[1];\n let percentage: string;\n if (rawAlpha.startsWith('$')) {\n // Custom property: $disabled -> calc(var(--disabled) * 100%)\n const propName = rawAlpha.slice(1);\n percentage = `calc(var(--${propName}) * 100%)`;\n } else if (rawAlpha === '0') {\n percentage = '0%';\n } else {\n // Convert .5 -> 50%, .05 -> 5%\n percentage = `${parseFloat('.' + rawAlpha) * 100}%`;\n }\n return {\n bucket: Bucket.Color,\n processed: `color-mix(in oklab, currentcolor ${percentage}, transparent)`,\n };\n }\n\n // 0c. Check for predefined tokens (configured via configure({ tokens: {...} }))\n // Must happen before default $ and # handling to allow overriding\n if (token[0] === '$' || token[0] === '#') {\n const predefinedTokens = getGlobalPredefinedTokens();\n if (predefinedTokens) {\n // Exact match\n if (token in predefinedTokens) {\n const tokenValue = predefinedTokens[token];\n // Lowercase the token value to match parser behavior (parser lowercases input)\n return classify(tokenValue.toLowerCase(), opts, recurse);\n }\n // Check for color token with alpha suffix: #token.alpha or #token.$prop\n if (token[0] === '#') {\n const alphaMatch = token.match(\n /^(#[a-z0-9-]+)\\.(\\$[a-z_][a-z0-9-_]*|[0-9]+)$/i,\n );\n if (alphaMatch) {\n const [, baseToken, rawAlpha] = alphaMatch;\n if (baseToken in predefinedTokens) {\n const resolvedValue = predefinedTokens[baseToken];\n\n // If resolved value starts with # (color token), use standard alpha syntax\n if (resolvedValue.startsWith('#')) {\n // Lowercase to match parser behavior\n return classify(\n `${resolvedValue.toLowerCase()}.${rawAlpha}`,\n opts,\n recurse,\n );\n }\n\n // For color functions like rgb(), rgba(), hsl(), hwb(), etc., inject alpha\n // Includes all standard CSS color functions plus okhsl (plugin)\n const funcMatch = resolvedValue.match(\n /^(rgba?|hsla?|hwb|oklab|oklch|lab|lch|color|okhsl|device-cmyk|gray|color-mix|color-contrast)\\((.+)\\)$/i,\n );\n if (funcMatch) {\n const [, funcName, args] = funcMatch;\n // Handle $prop syntax for custom property alpha\n let alpha: string;\n if (rawAlpha.startsWith('$')) {\n const propName = rawAlpha.slice(1);\n alpha = `var(--${propName})`;\n } else {\n alpha = rawAlpha === '0' ? '0' : `.${rawAlpha}`;\n }\n // Normalize function name: rgba->rgb, hsla->hsl (modern syntax doesn't need 'a' suffix)\n const normalizedFunc = funcName.replace(/a$/i, '').toLowerCase();\n // Normalize to modern syntax: replace top-level commas with spaces\n // Preserves commas inside nested functions like min(), max(), clamp()\n const normalizeArgs = (a: string) => {\n let result = '';\n let depth = 0;\n for (let i = 0; i < a.length; i++) {\n const c = a[i];\n if (c === '(') {\n depth++;\n result += c;\n } else if (c === ')') {\n depth = Math.max(0, depth - 1);\n result += c;\n } else if (c === ',' && depth === 0) {\n // Skip comma and any following whitespace at top level\n while (i + 1 < a.length && /\\s/.test(a[i + 1])) i++;\n result += ' ';\n } else {\n result += c;\n }\n }\n return result;\n };\n // Helper: find last top-level occurrence of a character (ignores parentheses)\n const findLastTopLevel = (str: string, ch: string) => {\n let depth = 0;\n for (let i = str.length - 1; i >= 0; i--) {\n const c = str[i];\n if (c === ')') depth++;\n else if (c === '(') depth = Math.max(0, depth - 1);\n else if (c === ch && depth === 0) return i;\n }\n return -1;\n };\n\n // Check if already has alpha:\n // - Modern syntax: has `/` separator at top level (works with dynamic alpha like var()/calc())\n // - Legacy syntax: function ends with 'a' (rgba, hsla) and has exactly 4 top-level comma-separated values\n const slashIdx = findLastTopLevel(args, '/');\n const hasModernAlpha = slashIdx !== -1;\n\n // Count top-level commas to avoid commas inside nested functions\n let topLevelCommaCount = 0;\n let lastTopLevelComma = -1;\n {\n let depth = 0;\n for (let i = 0; i < args.length; i++) {\n const c = args[i];\n if (c === '(') depth++;\n else if (c === ')') depth = Math.max(0, depth - 1);\n else if (c === ',' && depth === 0) {\n topLevelCommaCount++;\n lastTopLevelComma = i;\n }\n }\n }\n\n const hasLegacyAlpha =\n !hasModernAlpha &&\n /a$/i.test(funcName) &&\n topLevelCommaCount === 3;\n\n const colorArgs =\n hasModernAlpha || hasLegacyAlpha\n ? normalizeArgs(\n hasModernAlpha\n ? args.slice(0, slashIdx).trim()\n : args.slice(0, lastTopLevelComma).trim(),\n )\n : normalizeArgs(args);\n\n const constructed = `${normalizedFunc}(${colorArgs} / ${alpha})`;\n\n // Custom functions (not native CSS) must be re-classified\n // so the function handler can convert them to valid CSS\n if (\n !COLOR_FUNCS.has(normalizedFunc) &&\n opts.funcs &&\n normalizedFunc in opts.funcs\n ) {\n return classify(constructed, opts, recurse);\n }\n\n return { bucket: Bucket.Color, processed: constructed };\n }\n\n // Fallback: try appending .alpha (may not work for all cases)\n return classify(`${resolvedValue}.${rawAlpha}`, opts, recurse);\n }\n }\n }\n }\n }\n\n // 0. Direct var(--*-color) token\n const varColorMatch = token.match(/^var\\(--([a-z0-9-]+)-color\\)$/);\n if (varColorMatch) {\n return { bucket: Bucket.Color, processed: token };\n }\n\n // 1. URL\n if (token.startsWith('url(')) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 2. Custom property\n if (token[0] === '$') {\n const identMatch = token.match(/^\\$([a-z_][a-z0-9-_]*)$/);\n if (identMatch) {\n const name = identMatch[1];\n const processed = `var(--${name})`;\n const bucketType = name.endsWith('-color') ? Bucket.Color : Bucket.Value;\n return {\n bucket: bucketType,\n processed,\n };\n }\n // invalid custom property → modifier\n }\n\n // 3. Hash colors (with optional alpha suffix e.g., #purple.5 or #purple.$disabled)\n if (token[0] === '#' && token.length > 1) {\n // alpha form: #name.alpha or #name.$prop\n const alphaMatch = token.match(\n /^#([a-z0-9-]+)\\.(\\$[a-z_][a-z0-9-_]*|[0-9]+)$/i,\n );\n if (alphaMatch) {\n const [, base, rawAlpha] = alphaMatch;\n let alpha: string;\n if (rawAlpha.startsWith('$')) {\n // Custom property: $disabled -> var(--disabled)\n const propName = rawAlpha.slice(1);\n alpha = `var(--${propName})`;\n } else if (rawAlpha === '0') {\n alpha = '0';\n } else {\n alpha = `.${rawAlpha}`;\n }\n return {\n bucket: Bucket.Color,\n processed: `rgb(var(--${base}-color-rgb) / ${alpha})`,\n };\n }\n\n // hyphenated names like #dark-05 should keep full name\n\n const name = token.slice(1);\n // valid hex → treat as hex literal with fallback\n if (RE_HEX.test(name)) {\n return {\n bucket: Bucket.Color,\n processed: `var(--${name}-color, #${name})`,\n };\n }\n // simple color name token → css variable lookup with rgb fallback\n return { bucket: Bucket.Color, processed: `var(--${name}-color)` };\n }\n\n // 4 & 5. Functions\n const openIdx = token.indexOf('(');\n if (openIdx > 0 && token.endsWith(')')) {\n const fname = token.slice(0, openIdx);\n const inner = token.slice(openIdx + 1, -1); // without ()\n\n if (COLOR_FUNCS.has(fname)) {\n // Process inner to expand nested colors or units.\n const argProcessed = recurse(inner).output.replace(/,\\s+/g, ','); // color funcs expect no spaces after commas\n return { bucket: Bucket.Color, processed: `${fname}(${argProcessed})` };\n }\n\n // user function (provided via opts)\n if (opts.funcs && fname in opts.funcs) {\n // split by top-level commas within inner\n const tmp = new StyleParser(opts).process(inner); // fresh parser w/ same opts but no cache share issues\n const funcResult = opts.funcs[fname](tmp.groups);\n // Re-classify the result to determine proper bucket (e.g., if it returns a color)\n // Pass funcs: undefined to prevent infinite recursion if result matches a function pattern\n return classify(funcResult, { ...opts, funcs: undefined }, recurse);\n }\n\n // generic: process inner and rebuild\n const argProcessed = recurse(inner).output;\n return { bucket: Bucket.Value, processed: `${fname}(${argProcessed})` };\n }\n\n // 6. Color fallback syntax: (#name, fallback)\n if (token.startsWith('(') && token.endsWith(')')) {\n const inner = token.slice(1, -1);\n const colorMatch = inner.match(/^#([a-z0-9-]+)\\s*,\\s*(.*)$/i);\n if (colorMatch) {\n const [, name, fallback] = colorMatch;\n const processedFallback = recurse(fallback).output;\n return {\n bucket: Bucket.Color,\n processed: `var(--${name}-color, ${processedFallback})`,\n };\n }\n }\n\n // 7. Custom property with fallback syntax: ($prop, fallback)\n if (token.startsWith('(') && token.endsWith(')')) {\n const inner = token.slice(1, -1);\n const match = inner.match(/^\\$([a-z_][a-z0-9-_]*)\\s*,\\s*(.*)$/);\n if (match) {\n const [, name, fallback] = match;\n const processedFallback = recurse(fallback).output;\n const bucketType = name.endsWith('-color') ? Bucket.Color : Bucket.Value;\n return {\n bucket: bucketType,\n processed: `var(--${name}, ${processedFallback})`,\n };\n }\n }\n\n // 8. Auto-calc group\n if (token[0] === '(' && token[token.length - 1] === ')') {\n const inner = token.slice(1, -1);\n const innerProcessed = recurse(inner).output;\n return { bucket: Bucket.Value, processed: `calc(${innerProcessed})` };\n }\n\n // 9. Unit number\n const um = token.match(RE_UNIT_NUM);\n if (um) {\n const unit = um[1];\n const numericPart = parseFloat(token.slice(0, -unit.length));\n const handler = opts.units && opts.units[unit];\n if (handler) {\n if (typeof handler === 'string') {\n // Check if this is a raw CSS unit (e.g., \"8px\", \"1rem\")\n const rawMatch = handler.match(RE_RAW_UNIT);\n if (rawMatch) {\n // Raw unit: calculate directly instead of using calc()\n const [, baseNum, cssUnit] = rawMatch;\n const result = numericPart * parseFloat(baseNum);\n const processed = `${result}${cssUnit}`;\n // Re-parse to resolve any nested units (e.g., units referencing other units)\n const resolved = resolveUntilStable(processed, opts, recurse);\n return { bucket: Bucket.Value, processed: resolved };\n }\n\n // Non-raw handler (e.g., \"var(--gap)\", \"calc(...)\"): use calc() wrapping\n const base = handler;\n if (numericPart === 1) {\n return { bucket: Bucket.Value, processed: base };\n }\n return {\n bucket: Bucket.Value,\n processed: `calc(${numericPart} * ${base})`,\n };\n } else {\n // Function units return complete CSS expressions, no wrapping needed\n const inner = handler(numericPart);\n return {\n bucket: Bucket.Value,\n processed: inner,\n };\n }\n }\n }\n\n // 9b. Unknown numeric+unit → treat as literal value (e.g., 1fr)\n if (/^[+-]?(?:\\d*\\.\\d+|\\d+)[a-z%]+$/.test(token)) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 9c. Plain unit-less numbers should be treated as value tokens so that\n // code such as `scrollbar={10}` resolves correctly.\n if (RE_NUMBER.test(token)) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 10. Literal value keywords\n if (VALUE_KEYWORDS.has(token)) {\n return { bucket: Bucket.Value, processed: token };\n }\n\n // 10b. Special keyword colors\n if (token === 'transparent' || token === 'currentcolor') {\n return { bucket: Bucket.Color, processed: token };\n }\n\n // 11. Fallback modifier\n return { bucket: Bucket.Mod, processed: token };\n}\n"],"mappings":";;;;;;;;;;;;AAkBA,SAAS,mBACP,OACA,MACA,SACA,gBAAgB,IACR;CACR,IAAI,UAAU;AACd,MAAK,IAAI,IAAI,GAAG,IAAI,eAAe,KAAK;EAEtC,MAAM,YAAY,QAAQ,MAAM,YAAY;AAC5C,MAAI,CAAC,UAAW;EAEhB,MAAM,WAAW,UAAU;AAG3B,MAAI,CAAC,KAAK,SAAS,EAAE,YAAY,KAAK,OAAQ;EAE9C,MAAM,SAAS,QAAQ,QAAQ;AAC/B,MAAI,OAAO,WAAW,QAAS;AAC/B,YAAU,OAAO;;AAEnB,QAAO;;AAGT,SAAgB,SACd,KACA,MACA,SACuC;CACvC,MAAM,QAAQ,IAAI,MAAM;AACxB,KAAI,CAAC,MAAO,QAAO;EAAE,QAAQ,OAAO;EAAK,WAAW;EAAI;CAMxD;EACE,IAAI,QAAQ;EACZ,IAAI,UAAsB;AAC1B,OAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,KAAK,MAAM;AAGjB,OAAI,SAAS;AACX,QAAI,OAAO,WAAW,MAAM,IAAI,OAAO,KAAM,WAAU;AACvD;;AAEF,OAAI,OAAO,QAAO,OAAO,KAAK;AAC5B,cAAU;AACV;;AAGF,OAAI,OAAO,IAAK;YACP,OAAO,IAAK,SAAQ,KAAK,IAAI,GAAG,QAAQ,EAAE;;AAGrD,MAAI,UAAU,GAAG;AAEf,WAAQ,KACN,qEACA,MACD;AACD,UAAO;IAAE,QAAQ,OAAO;IAAK,WAAW;IAAI;;;AAKhD,KACG,MAAM,WAAW,KAAI,IAAI,MAAM,SAAS,KAAI,IAC5C,MAAM,WAAW,IAAI,IAAI,MAAM,SAAS,IAAI,CAE7C,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAO;AAKnD,KAAI,MAAM,WAAW,KAAK,EAAE;EAC1B,MAAM,OAAO,MAAM,MAAM,EAAE;AAC3B,MAAI,uBAAuB,KAAK,KAAK,CACnC,QAAO;GAAE,QAAQ,OAAO;GAAO,WAAW,KAAK;GAAQ;;AAG3D,KAAI,MAAM,WAAW,KAAK,EAAE;EAC1B,MAAM,OAAO,MAAM,MAAM,EAAE;AAC3B,MAAI,uBAAuB,KAAK,KAAK,CACnC,QAAO;GAAE,QAAQ,OAAO;GAAO,WAAW,KAAK,KAAK;GAAS;;AAMjE,KAAI,UAAU,WACZ,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAgB;CAK5D,MAAM,oBAAoB,MAAM,MAC9B,4CACD;AACD,KAAI,mBAAmB;EACrB,MAAM,WAAW,kBAAkB;EACnC,IAAI;AACJ,MAAI,SAAS,WAAW,IAAI,CAG1B,cAAa,cADI,SAAS,MAAM,EAAE,CACE;WAC3B,aAAa,IACtB,cAAa;MAGb,cAAa,GAAG,WAAW,MAAM,SAAS,GAAG,IAAI;AAEnD,SAAO;GACL,QAAQ,OAAO;GACf,WAAW,oCAAoC,WAAW;GAC3D;;AAKH,KAAI,MAAM,OAAO,OAAO,MAAM,OAAO,KAAK;EACxC,MAAM,mBAAmB,2BAA2B;AACpD,MAAI,kBAAkB;AAEpB,OAAI,SAAS,kBAAkB;IAC7B,MAAM,aAAa,iBAAiB;AAEpC,WAAO,SAAS,WAAW,aAAa,EAAE,MAAM,QAAQ;;AAG1D,OAAI,MAAM,OAAO,KAAK;IACpB,MAAM,aAAa,MAAM,MACvB,iDACD;AACD,QAAI,YAAY;KACd,MAAM,GAAG,WAAW,YAAY;AAChC,SAAI,aAAa,kBAAkB;MACjC,MAAM,gBAAgB,iBAAiB;AAGvC,UAAI,cAAc,WAAW,IAAI,CAE/B,QAAO,SACL,GAAG,cAAc,aAAa,CAAC,GAAG,YAClC,MACA,QACD;MAKH,MAAM,YAAY,cAAc,MAC9B,yGACD;AACD,UAAI,WAAW;OACb,MAAM,GAAG,UAAU,QAAQ;OAE3B,IAAI;AACJ,WAAI,SAAS,WAAW,IAAI,CAE1B,SAAQ,SADS,SAAS,MAAM,EAAE,CACR;WAE1B,SAAQ,aAAa,MAAM,MAAM,IAAI;OAGvC,MAAM,iBAAiB,SAAS,QAAQ,OAAO,GAAG,CAAC,aAAa;OAGhE,MAAM,iBAAiB,MAAc;QACnC,IAAI,SAAS;QACb,IAAI,QAAQ;AACZ,aAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;SACjC,MAAM,IAAI,EAAE;AACZ,aAAI,MAAM,KAAK;AACb;AACA,oBAAU;oBACD,MAAM,KAAK;AACpB,kBAAQ,KAAK,IAAI,GAAG,QAAQ,EAAE;AAC9B,oBAAU;oBACD,MAAM,OAAO,UAAU,GAAG;AAEnC,iBAAO,IAAI,IAAI,EAAE,UAAU,KAAK,KAAK,EAAE,IAAI,GAAG,CAAE;AAChD,oBAAU;eAEV,WAAU;;AAGd,eAAO;;OAGT,MAAM,oBAAoB,KAAa,OAAe;QACpD,IAAI,QAAQ;AACZ,aAAK,IAAI,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,KAAK;SACxC,MAAM,IAAI,IAAI;AACd,aAAI,MAAM,IAAK;kBACN,MAAM,IAAK,SAAQ,KAAK,IAAI,GAAG,QAAQ,EAAE;kBACzC,MAAM,MAAM,UAAU,EAAG,QAAO;;AAE3C,eAAO;;OAMT,MAAM,WAAW,iBAAiB,MAAM,IAAI;OAC5C,MAAM,iBAAiB,aAAa;OAGpC,IAAI,qBAAqB;OACzB,IAAI,oBAAoB;OACxB;QACE,IAAI,QAAQ;AACZ,aAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;SACpC,MAAM,IAAI,KAAK;AACf,aAAI,MAAM,IAAK;kBACN,MAAM,IAAK,SAAQ,KAAK,IAAI,GAAG,QAAQ,EAAE;kBACzC,MAAM,OAAO,UAAU,GAAG;AACjC;AACA,8BAAoB;;;;OAK1B,MAAM,iBACJ,CAAC,kBACD,MAAM,KAAK,SAAS,IACpB,uBAAuB;OAWzB,MAAM,cAAc,GAAG,eAAe,GARpC,kBAAkB,iBACd,cACE,iBACI,KAAK,MAAM,GAAG,SAAS,CAAC,MAAM,GAC9B,KAAK,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAC5C,GACD,cAAc,KAAK,CAE0B,KAAK,MAAM;AAI9D,WACE,CAAC,YAAY,IAAI,eAAe,IAChC,KAAK,SACL,kBAAkB,KAAK,MAEvB,QAAO,SAAS,aAAa,MAAM,QAAQ;AAG7C,cAAO;QAAE,QAAQ,OAAO;QAAO,WAAW;QAAa;;AAIzD,aAAO,SAAS,GAAG,cAAc,GAAG,YAAY,MAAM,QAAQ;;;;;;AASxE,KADsB,MAAM,MAAM,gCAAgC,CAEhE,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAO;AAInD,KAAI,MAAM,WAAW,OAAO,CAC1B,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAO;AAInD,KAAI,MAAM,OAAO,KAAK;EACpB,MAAM,aAAa,MAAM,MAAM,0BAA0B;AACzD,MAAI,YAAY;GACd,MAAM,OAAO,WAAW;GACxB,MAAM,YAAY,SAAS,KAAK;AAEhC,UAAO;IACL,QAFiB,KAAK,SAAS,SAAS,GAAG,OAAO,QAAQ,OAAO;IAGjE;IACD;;;AAML,KAAI,MAAM,OAAO,OAAO,MAAM,SAAS,GAAG;EAExC,MAAM,aAAa,MAAM,MACvB,iDACD;AACD,MAAI,YAAY;GACd,MAAM,GAAG,MAAM,YAAY;GAC3B,IAAI;AACJ,OAAI,SAAS,WAAW,IAAI,CAG1B,SAAQ,SADS,SAAS,MAAM,EAAE,CACR;YACjB,aAAa,IACtB,SAAQ;OAER,SAAQ,IAAI;AAEd,UAAO;IACL,QAAQ,OAAO;IACf,WAAW,aAAa,KAAK,gBAAgB,MAAM;IACpD;;EAKH,MAAM,OAAO,MAAM,MAAM,EAAE;AAE3B,MAAI,OAAO,KAAK,KAAK,CACnB,QAAO;GACL,QAAQ,OAAO;GACf,WAAW,SAAS,KAAK,WAAW,KAAK;GAC1C;AAGH,SAAO;GAAE,QAAQ,OAAO;GAAO,WAAW,SAAS,KAAK;GAAU;;CAIpE,MAAM,UAAU,MAAM,QAAQ,IAAI;AAClC,KAAI,UAAU,KAAK,MAAM,SAAS,IAAI,EAAE;EACtC,MAAM,QAAQ,MAAM,MAAM,GAAG,QAAQ;EACrC,MAAM,QAAQ,MAAM,MAAM,UAAU,GAAG,GAAG;AAE1C,MAAI,YAAY,IAAI,MAAM,EAAE;GAE1B,MAAM,eAAe,QAAQ,MAAM,CAAC,OAAO,QAAQ,SAAS,IAAI;AAChE,UAAO;IAAE,QAAQ,OAAO;IAAO,WAAW,GAAG,MAAM,GAAG,aAAa;IAAI;;AAIzE,MAAI,KAAK,SAAS,SAAS,KAAK,OAAO;GAErC,MAAM,MAAM,IAAI,YAAY,KAAK,CAAC,QAAQ,MAAM;AAIhD,UAAO,SAHY,KAAK,MAAM,OAAO,IAAI,OAAO,EAGpB;IAAE,GAAG;IAAM,OAAO;IAAW,EAAE,QAAQ;;EAIrE,MAAM,eAAe,QAAQ,MAAM,CAAC;AACpC,SAAO;GAAE,QAAQ,OAAO;GAAO,WAAW,GAAG,MAAM,GAAG,aAAa;GAAI;;AAIzE,KAAI,MAAM,WAAW,IAAI,IAAI,MAAM,SAAS,IAAI,EAAE;EAEhD,MAAM,aADQ,MAAM,MAAM,GAAG,GAAG,CACP,MAAM,8BAA8B;AAC7D,MAAI,YAAY;GACd,MAAM,GAAG,MAAM,YAAY;GAC3B,MAAM,oBAAoB,QAAQ,SAAS,CAAC;AAC5C,UAAO;IACL,QAAQ,OAAO;IACf,WAAW,SAAS,KAAK,UAAU,kBAAkB;IACtD;;;AAKL,KAAI,MAAM,WAAW,IAAI,IAAI,MAAM,SAAS,IAAI,EAAE;EAEhD,MAAM,QADQ,MAAM,MAAM,GAAG,GAAG,CACZ,MAAM,qCAAqC;AAC/D,MAAI,OAAO;GACT,MAAM,GAAG,MAAM,YAAY;GAC3B,MAAM,oBAAoB,QAAQ,SAAS,CAAC;AAE5C,UAAO;IACL,QAFiB,KAAK,SAAS,SAAS,GAAG,OAAO,QAAQ,OAAO;IAGjE,WAAW,SAAS,KAAK,IAAI,kBAAkB;IAChD;;;AAKL,KAAI,MAAM,OAAO,OAAO,MAAM,MAAM,SAAS,OAAO,KAAK;EAEvD,MAAM,iBAAiB,QADT,MAAM,MAAM,GAAG,GAAG,CACK,CAAC;AACtC,SAAO;GAAE,QAAQ,OAAO;GAAO,WAAW,QAAQ,eAAe;GAAI;;CAIvE,MAAM,KAAK,MAAM,MAAM,YAAY;AACnC,KAAI,IAAI;EACN,MAAM,OAAO,GAAG;EAChB,MAAM,cAAc,WAAW,MAAM,MAAM,GAAG,CAAC,KAAK,OAAO,CAAC;EAC5D,MAAM,UAAU,KAAK,SAAS,KAAK,MAAM;AACzC,MAAI,QACF,KAAI,OAAO,YAAY,UAAU;GAE/B,MAAM,WAAW,QAAQ,MAAM,YAAY;AAC3C,OAAI,UAAU;IAEZ,MAAM,GAAG,SAAS,WAAW;IAI7B,MAAM,WAAW,mBAFC,GADH,cAAc,WAAW,QAAQ,GAClB,WAEiB,MAAM,QAAQ;AAC7D,WAAO;KAAE,QAAQ,OAAO;KAAO,WAAW;KAAU;;GAItD,MAAM,OAAO;AACb,OAAI,gBAAgB,EAClB,QAAO;IAAE,QAAQ,OAAO;IAAO,WAAW;IAAM;AAElD,UAAO;IACL,QAAQ,OAAO;IACf,WAAW,QAAQ,YAAY,KAAK,KAAK;IAC1C;SACI;GAEL,MAAM,QAAQ,QAAQ,YAAY;AAClC,UAAO;IACL,QAAQ,OAAO;IACf,WAAW;IACZ;;;AAMP,KAAI,iCAAiC,KAAK,MAAM,CAC9C,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAO;AAKnD,KAAI,UAAU,KAAK,MAAM,CACvB,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAO;AAInD,KAAI,eAAe,IAAI,MAAM,CAC3B,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAO;AAInD,KAAI,UAAU,iBAAiB,UAAU,eACvC,QAAO;EAAE,QAAQ,OAAO;EAAO,WAAW;EAAO;AAInD,QAAO;EAAE,QAAQ,OAAO;EAAK,WAAW;EAAO"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  //#region src/tasty/parser/const.ts
3
3
  const VALUE_KEYWORDS = new Set([
4
4
  "auto",
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  //#region src/tasty/parser/lru.ts
3
3
  var Lru = class {
4
4
  map = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { Lru } from "./lru.js";
3
3
  import { Bucket, finalizeGroup, finalizePart, makeEmptyDetails, makeEmptyPart } from "./types.js";
4
4
  import { classify } from "./classify.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  //#region src/tasty/parser/tokenizer.ts
3
3
  const isWhitespace = (ch) => ch === " " || ch === "\n" || ch === " " || ch === "\r" || ch === "\f";
4
4
  function scan(src, cb) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  //#region src/tasty/parser/types.ts
3
3
  let Bucket = /* @__PURE__ */ function(Bucket) {
4
4
  Bucket[Bucket["Color"] = 0] = "Color";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  //#region src/tasty/pipeline/conditions.ts
3
3
  /**
4
4
  * Create a TRUE condition (matches everything)
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { and, isCompoundCondition, not, trueCondition } from "./conditions.js";
3
3
  import { simplifyCondition } from "./simplify.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { Lru } from "../parser/lru.js";
3
3
  import { stringifyStyles } from "../utils/styles.js";
4
4
  import { createStyle } from "../styles/createStyle.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { Lru } from "../parser/lru.js";
3
3
 
4
4
  //#region src/tasty/pipeline/materialize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { Lru } from "../parser/lru.js";
3
3
  import { camelToKebab } from "../utils/case-converter.js";
4
4
  import { expandDimensionShorthands, expandTastyUnits, findTopLevelComma, resolvePredefinedState } from "../states/index.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { Lru } from "../parser/lru.js";
3
3
  import { falseCondition, getConditionUniqueId, trueCondition } from "./conditions.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { Lru } from "../parser/lru.js";
3
3
 
4
4
  //#region src/tasty/plugins/okhsl-plugin.ts
@@ -322,8 +322,10 @@ const okhslFunc = (groups) => {
322
322
  console.warn("[okhsl] Expected 3 values (H S L), got:", groups);
323
323
  return "rgb(0% 0% 0%)";
324
324
  }
325
- const tokens = groups[0].all;
326
- const cacheKey = tokens.slice(0, 3).join(" ");
325
+ const group = groups[0];
326
+ const tokens = group.all;
327
+ const alpha = group.parts.length > 1 && group.parts[1].all.length > 0 ? group.parts[1].output : void 0;
328
+ const cacheKey = tokens.slice(0, 3).join(" ") + (alpha ? ` / ${alpha}` : "");
327
329
  const cached = conversionCache.get(cacheKey);
328
330
  if (cached) return cached;
329
331
  const h = parseAngle(tokens[0]);
@@ -334,7 +336,7 @@ const okhslFunc = (groups) => {
334
336
  const pct = n * 100;
335
337
  return parseFloat(pct.toFixed(1)).toString() + "%";
336
338
  };
337
- const result = `rgb(${format(r)} ${format(g)} ${format(b)})`;
339
+ const result = alpha ? `rgb(${format(r)} ${format(g)} ${format(b)} / ${alpha})` : `rgb(${format(r)} ${format(g)} ${format(b)})`;
338
340
  conversionCache.set(cacheKey, result);
339
341
  return result;
340
342
  };
@@ -1 +1 @@
1
- {"version":3,"file":"okhsl-plugin.js","names":[],"sources":["../../src/tasty/plugins/okhsl-plugin.ts"],"sourcesContent":["/**\n * OKHSL Plugin for Tasty\n *\n * Converts OKHSL color syntax to RGB notation.\n * Supports angle units: deg, turn, rad, or unitless (degrees).\n *\n * Examples:\n * okhsl(240.5 50% 50%)\n * okhsl(240.5deg 50% 50%)\n * okhsl(0.25turn 50% 50%)\n * okhsl(1.57rad 50% 50%)\n *\n * Conversion math inlined from @texel/color to avoid external dependencies.\n */\n\nimport { Lru } from '../parser/lru';\n\nimport type { StyleDetails } from '../parser/types';\nimport type { TastyPlugin, TastyPluginFactory } from './types';\n\n// Cache for OKHSL to RGB conversions\nconst conversionCache = new Lru<string, string>(500);\n\n// ============================================================================\n// Conversion Matrices (from texel-color)\n// ============================================================================\n\nconst OKLab_to_LMS_M: [number, number, number][] = [\n [1.0, 0.3963377773761749, 0.2158037573099136],\n [1.0, -0.1055613458156586, -0.0638541728258133],\n [1.0, -0.0894841775298119, -1.2914855480194092],\n];\n\nconst LMS_to_linear_sRGB_M: [number, number, number][] = [\n [4.076741636075959, -3.307711539258062, 0.2309699031821041],\n [-1.2684379732850313, 2.6097573492876878, -0.3413193760026569],\n [-0.004196076138675526, -0.703418617935936, 1.7076146940746113],\n];\n\nconst OKLab_to_linear_sRGB_coefficients: [\n [[number, number], number[]],\n [[number, number], number[]],\n [[number, number], number[]],\n] = [\n [\n [-1.8817030993265873, -0.8093650129914302],\n [1.19086277, 1.76576728, 0.59662641, 0.75515197, 0.56771245],\n ],\n [\n [1.8144407988010998, -1.194452667805235],\n [0.73956515, -0.45954404, 0.08285427, 0.12541073, -0.14503204],\n ],\n [\n [0.13110757611180954, 1.813339709266608],\n [1.35733652, -0.00915799, -1.1513021, -0.50559606, 0.00692167],\n ],\n];\n\n// ============================================================================\n// Math Utilities\n// ============================================================================\n\nconst TAU = 2 * Math.PI;\n\nconst clamp = (value: number, min: number, max: number): number =>\n Math.max(Math.min(value, max), min);\n\nconst constrainAngle = (angle: number): number => ((angle % 360) + 360) % 360;\n\nconst copySign = (to: number, from: number): number =>\n Math.sign(to) === Math.sign(from) ? to : -to;\n\nconst spow = (base: number, exp: number): number =>\n copySign(Math.abs(base) ** exp, base);\n\n// ============================================================================\n// sRGB Gamma Conversion\n// ============================================================================\n\nconst sRGBLinearToGamma = (val: number): number => {\n const sign = val < 0 ? -1 : 1;\n const abs = Math.abs(val);\n return abs > 0.0031308\n ? sign * (1.055 * Math.pow(abs, 1 / 2.4) - 0.055)\n : 12.92 * val;\n};\n\n// ============================================================================\n// Matrix Operations\n// ============================================================================\n\ntype Vec3 = [number, number, number];\n\nconst dot3 = (a: Vec3, b: Vec3): number =>\n a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n\nconst transform = (input: Vec3, matrix: Vec3[]): Vec3 => [\n dot3(input, matrix[0]),\n dot3(input, matrix[1]),\n dot3(input, matrix[2]),\n];\n\nconst cubed3 = (lms: Vec3): Vec3 => [\n lms[0] * lms[0] * lms[0],\n lms[1] * lms[1] * lms[1],\n lms[2] * lms[2] * lms[2],\n];\n\n// ============================================================================\n// OKLab Conversion\n// ============================================================================\n\nconst OKLabToLinearSRGB = (lab: Vec3): Vec3 => {\n const lms = transform(lab, OKLab_to_LMS_M);\n const cubedLms = cubed3(lms);\n return transform(cubedLms, LMS_to_linear_sRGB_M);\n};\n\n// ============================================================================\n// OKHSL to OKLab Conversion (from texel-color)\n// ============================================================================\n\nconst K1 = 0.206;\nconst K2 = 0.03;\nconst K3 = (1.0 + K1) / (1.0 + K2);\n\nconst toe = (x: number): number =>\n 0.5 *\n (K3 * x - K1 + Math.sqrt((K3 * x - K1) * (K3 * x - K1) + 4 * K2 * K3 * x));\n\nconst toeInv = (x: number): number => (x ** 2 + K1 * x) / (K3 * (x + K2));\n\nconst dotXY = (a: [number, number], b: [number, number]): number =>\n a[0] * b[0] + a[1] * b[1];\n\nconst computeMaxSaturationOKLC = (a: number, b: number): number => {\n const okCoeff = OKLab_to_linear_sRGB_coefficients;\n const lmsToRgb = LMS_to_linear_sRGB_M;\n const tmp2: [number, number] = [a, b];\n const tmp3: Vec3 = [0, a, b];\n\n let chnlCoeff: number[];\n let chnlLMS: Vec3;\n\n if (dotXY(okCoeff[0][0], tmp2) > 1) {\n chnlCoeff = okCoeff[0][1];\n chnlLMS = lmsToRgb[0];\n } else if (dotXY(okCoeff[1][0], tmp2) > 1) {\n chnlCoeff = okCoeff[1][1];\n chnlLMS = lmsToRgb[1];\n } else {\n chnlCoeff = okCoeff[2][1];\n chnlLMS = lmsToRgb[2];\n }\n\n const [k0, k1, k2, k3, k4] = chnlCoeff;\n const [wl, wm, ws] = chnlLMS;\n\n let sat = k0 + k1 * a + k2 * b + k3 * (a * a) + k4 * a * b;\n\n const dotYZ = (mat: Vec3, vec: Vec3): number =>\n mat[1] * vec[1] + mat[2] * vec[2];\n\n const kl = dotYZ(OKLab_to_LMS_M[0], tmp3);\n const km = dotYZ(OKLab_to_LMS_M[1], tmp3);\n const ks = dotYZ(OKLab_to_LMS_M[2], tmp3);\n\n let l_ = 1.0 + sat * kl;\n let m_ = 1.0 + sat * km;\n let s_ = 1.0 + sat * ks;\n\n const l = l_ * l_ * l_;\n const m = m_ * m_ * m_;\n const s = s_ * s_ * s_;\n\n const lds = 3.0 * kl * (l_ * l_);\n const mds = 3.0 * km * (m_ * m_);\n const sds = 3.0 * ks * (s_ * s_);\n\n const lds2 = 6.0 * (kl * kl) * l_;\n const mds2 = 6.0 * (km * km) * m_;\n const sds2 = 6.0 * (ks * ks) * s_;\n\n const f = wl * l + wm * m + ws * s;\n const f1 = wl * lds + wm * mds + ws * sds;\n const f2 = wl * lds2 + wm * mds2 + ws * sds2;\n\n sat = sat - (f * f1) / (f1 * f1 - 0.5 * f * f2);\n\n return sat;\n};\n\nconst findCuspOKLCH = (a: number, b: number): [number, number] => {\n const lmsToRgb = LMS_to_linear_sRGB_M;\n const S_cusp = computeMaxSaturationOKLC(a, b);\n\n const lab: Vec3 = [1, S_cusp * a, S_cusp * b];\n const rgb_at_max = OKLabToLinearSRGB(lab);\n\n const L_cusp = Math.cbrt(\n 1 /\n Math.max(\n Math.max(rgb_at_max[0], rgb_at_max[1]),\n Math.max(rgb_at_max[2], 0.0),\n ),\n );\n const C_cusp = L_cusp * S_cusp;\n\n return [L_cusp, C_cusp];\n};\n\nconst findGamutIntersectionOKLCH = (\n a: number,\n b: number,\n l1: number,\n c1: number,\n l0: number,\n cusp: [number, number],\n): number => {\n const lmsToRgb = LMS_to_linear_sRGB_M;\n const tmp3: Vec3 = [0, a, b];\n const floatMax = Number.MAX_VALUE;\n\n let t: number;\n\n const dotYZ = (mat: Vec3, vec: Vec3): number =>\n mat[1] * vec[1] + mat[2] * vec[2];\n const dotXYZ = (vec: Vec3, x: number, y: number, z: number): number =>\n vec[0] * x + vec[1] * y + vec[2] * z;\n\n if ((l1 - l0) * cusp[1] - (cusp[0] - l0) * c1 <= 0.0) {\n const denom = c1 * cusp[0] + cusp[1] * (l0 - l1);\n t = denom === 0 ? 0 : (cusp[1] * l0) / denom;\n } else {\n const denom = c1 * (cusp[0] - 1.0) + cusp[1] * (l0 - l1);\n t = denom === 0 ? 0 : (cusp[1] * (l0 - 1.0)) / denom;\n\n const dl = l1 - l0;\n const dc = c1;\n\n const kl = dotYZ(OKLab_to_LMS_M[0], tmp3);\n const km = dotYZ(OKLab_to_LMS_M[1], tmp3);\n const ks = dotYZ(OKLab_to_LMS_M[2], tmp3);\n\n const ldt_ = dl + dc * kl;\n const mdt_ = dl + dc * km;\n const sdt_ = dl + dc * ks;\n\n const L = l0 * (1.0 - t) + t * l1;\n const C = t * c1;\n\n const l_ = L + C * kl;\n const m_ = L + C * km;\n const s_ = L + C * ks;\n\n const l = l_ * l_ * l_;\n const m = m_ * m_ * m_;\n const s = s_ * s_ * s_;\n\n const ldt = 3 * ldt_ * l_ * l_;\n const mdt = 3 * mdt_ * m_ * m_;\n const sdt = 3 * sdt_ * s_ * s_;\n\n const ldt2 = 6 * ldt_ * ldt_ * l_;\n const mdt2 = 6 * mdt_ * mdt_ * m_;\n const sdt2 = 6 * sdt_ * sdt_ * s_;\n\n const r_ = dotXYZ(lmsToRgb[0], l, m, s) - 1;\n const r1 = dotXYZ(lmsToRgb[0], ldt, mdt, sdt);\n const r2 = dotXYZ(lmsToRgb[0], ldt2, mdt2, sdt2);\n\n const ur = r1 / (r1 * r1 - 0.5 * r_ * r2);\n let tr = -r_ * ur;\n\n const g_ = dotXYZ(lmsToRgb[1], l, m, s) - 1;\n const g1 = dotXYZ(lmsToRgb[1], ldt, mdt, sdt);\n const g2 = dotXYZ(lmsToRgb[1], ldt2, mdt2, sdt2);\n\n const ug = g1 / (g1 * g1 - 0.5 * g_ * g2);\n let tg = -g_ * ug;\n\n const b_ = dotXYZ(lmsToRgb[2], l, m, s) - 1;\n const b1 = dotXYZ(lmsToRgb[2], ldt, mdt, sdt);\n const b2 = dotXYZ(lmsToRgb[2], ldt2, mdt2, sdt2);\n\n const ub = b1 / (b1 * b1 - 0.5 * b_ * b2);\n let tb = -b_ * ub;\n\n tr = ur >= 0.0 ? tr : floatMax;\n tg = ug >= 0.0 ? tg : floatMax;\n tb = ub >= 0.0 ? tb : floatMax;\n\n t += Math.min(tr, Math.min(tg, tb));\n }\n\n return t;\n};\n\nconst computeSt = (cusp: [number, number]): [number, number] => {\n const l = cusp[0];\n const c = cusp[1];\n return [c / l, c / (1 - l)];\n};\n\nconst computeStMid = (a: number, b: number): [number, number] => {\n const s =\n 0.11516993 +\n 1.0 /\n (7.4477897 +\n 4.1590124 * b +\n a *\n (-2.19557347 +\n 1.75198401 * b +\n a *\n (-2.13704948 -\n 10.02301043 * b +\n a * (-4.24894561 + 5.38770819 * b + 4.69891013 * a))));\n\n const t =\n 0.11239642 +\n 1.0 /\n (1.6132032 -\n 0.68124379 * b +\n a *\n (0.40370612 +\n 0.90148123 * b +\n a *\n (-0.27087943 +\n 0.6122399 * b +\n a * (0.00299215 - 0.45399568 * b - 0.14661872 * a))));\n\n return [s, t];\n};\n\nconst getCs = (\n L: number,\n a: number,\n b: number,\n cusp: [number, number],\n): [number, number, number] => {\n const cMax = findGamutIntersectionOKLCH(a, b, L, 1, L, cusp);\n const stMax = computeSt(cusp);\n\n const k = cMax / Math.min(L * stMax[0], (1 - L) * stMax[1]);\n\n const stMid = computeStMid(a, b);\n\n let ca = L * stMid[0];\n let cb = (1.0 - L) * stMid[1];\n const cMid =\n 0.9 * k * Math.sqrt(Math.sqrt(1.0 / (1.0 / ca ** 4 + 1.0 / cb ** 4)));\n\n ca = L * 0.4;\n cb = (1.0 - L) * 0.8;\n const c0 = Math.sqrt(1.0 / (1.0 / ca ** 2 + 1.0 / cb ** 2));\n\n return [c0, cMid, cMax];\n};\n\nconst OKHSLToOKLab = (hsl: Vec3): Vec3 => {\n let h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n\n let L = toeInv(l);\n let a = 0;\n let b = 0;\n\n h = constrainAngle(h) / 360.0;\n\n if (L !== 0.0 && L !== 1.0 && s !== 0) {\n const a_ = Math.cos(TAU * h);\n const b_ = Math.sin(TAU * h);\n\n const cusp = findCuspOKLCH(a_, b_);\n const Cs = getCs(L, a_, b_, cusp);\n const [c0, cMid, cMax] = Cs;\n\n const mid = 0.8;\n const midInv = 1.25;\n let t: number, k0: number, k1: number, k2: number;\n\n if (s < mid) {\n t = midInv * s;\n k0 = 0.0;\n k1 = mid * c0;\n k2 = 1.0 - k1 / cMid;\n } else {\n t = 5 * (s - 0.8);\n k0 = cMid;\n k1 = (0.2 * cMid ** 2 * 1.25 ** 2) / c0;\n k2 = 1.0 - k1 / (cMax - cMid);\n }\n\n const c = k0 + (t * k1) / (1.0 - k2 * t);\n\n a = c * a_;\n b = c * b_;\n }\n\n return [L, a, b];\n};\n\n// ============================================================================\n// OKHSL to sRGB Conversion\n// ============================================================================\n\nconst okhslToSRGB = (h: number, s: number, l: number): Vec3 => {\n // h: 0-360, s: 0-1, l: 0-1\n const oklab = OKHSLToOKLab([h, s, l]);\n const linearRGB = OKLabToLinearSRGB(oklab);\n\n // Apply gamma correction and clamp\n return [\n clamp(sRGBLinearToGamma(linearRGB[0]), 0, 1),\n clamp(sRGBLinearToGamma(linearRGB[1]), 0, 1),\n clamp(sRGBLinearToGamma(linearRGB[2]), 0, 1),\n ];\n};\n\n// ============================================================================\n// Parsing Utilities\n// ============================================================================\n\n/**\n * Parse an angle value with optional unit.\n * Supports: deg, turn, rad, or unitless (treated as degrees).\n */\nconst parseAngle = (value: string): number => {\n const match = value.match(/^([+-]?\\d*\\.?\\d+)(deg|turn|rad)?$/);\n if (!match) return 0;\n\n const num = parseFloat(match[1]);\n const unit = match[2];\n\n switch (unit) {\n case 'turn':\n return num * 360;\n case 'rad':\n return (num * 180) / Math.PI;\n case 'deg':\n default:\n return num;\n }\n};\n\n/**\n * Parse a percentage value (e.g., \"50%\") to a 0-1 range.\n */\nconst parsePercentage = (value: string): number => {\n const match = value.match(/^([+-]?\\d*\\.?\\d+)%?$/);\n if (!match) return 0;\n\n const num = parseFloat(match[1]);\n // If the value includes %, divide by 100, otherwise assume 0-1 range\n return value.includes('%') ? num / 100 : num;\n};\n\n// ============================================================================\n// Plugin Implementation\n// ============================================================================\n\n/**\n * The okhsl function handler for tasty parser.\n * Receives parsed style groups and returns an RGB color string.\n */\nconst okhslFunc = (groups: StyleDetails[]): string => {\n // We expect a single group with 3 values: H, S, L\n if (groups.length === 0 || groups[0].all.length < 3) {\n console.warn('[okhsl] Expected 3 values (H S L), got:', groups);\n return 'rgb(0% 0% 0%)';\n }\n\n const tokens = groups[0].all;\n\n // Create cache key from input tokens\n const cacheKey = tokens.slice(0, 3).join(' ');\n const cached = conversionCache.get(cacheKey);\n if (cached) return cached;\n\n const h = parseAngle(tokens[0]);\n const s = parsePercentage(tokens[1]);\n const l = parsePercentage(tokens[2]);\n\n const [r, g, b] = okhslToSRGB(h, clamp(s, 0, 1), clamp(l, 0, 1));\n\n // Return as rgb() with percentage syntax for best compatibility\n const format = (n: number): string => {\n const pct = n * 100;\n return parseFloat(pct.toFixed(1)).toString() + '%';\n };\n const result = `rgb(${format(r)} ${format(g)} ${format(b)})`;\n\n conversionCache.set(cacheKey, result);\n return result;\n};\n\n/**\n * OKHSL Plugin for Tasty.\n *\n * Adds support for the `okhsl()` color function in tasty styles.\n *\n * @example\n * ```ts\n * import { configure } from '@cube-dev/ui-kit';\n * import { okhslPlugin } from '@cube-dev/ui-kit/tasty/plugins';\n *\n * configure({\n * plugins: [okhslPlugin()],\n * });\n *\n * // Now you can use okhsl in styles:\n * const Box = tasty({\n * styles: {\n * fill: 'okhsl(240 50% 50%)',\n * },\n * });\n * ```\n */\nexport const okhslPlugin: TastyPluginFactory = (): TastyPlugin => ({\n name: 'okhsl',\n funcs: {\n okhsl: okhslFunc,\n },\n});\n\n// Export the raw function for direct use if needed\nexport { okhslFunc };\n"],"mappings":"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"}
1
+ {"version":3,"file":"okhsl-plugin.js","names":[],"sources":["../../src/tasty/plugins/okhsl-plugin.ts"],"sourcesContent":["/**\n * OKHSL Plugin for Tasty\n *\n * Converts OKHSL color syntax to RGB notation.\n * Supports angle units: deg, turn, rad, or unitless (degrees).\n *\n * Examples:\n * okhsl(240.5 50% 50%)\n * okhsl(240.5deg 50% 50%)\n * okhsl(0.25turn 50% 50%)\n * okhsl(1.57rad 50% 50%)\n *\n * Conversion math inlined from @texel/color to avoid external dependencies.\n */\n\nimport { Lru } from '../parser/lru';\n\nimport type { StyleDetails } from '../parser/types';\nimport type { TastyPlugin, TastyPluginFactory } from './types';\n\n// Cache for OKHSL to RGB conversions\nconst conversionCache = new Lru<string, string>(500);\n\n// ============================================================================\n// Conversion Matrices (from texel-color)\n// ============================================================================\n\nconst OKLab_to_LMS_M: [number, number, number][] = [\n [1.0, 0.3963377773761749, 0.2158037573099136],\n [1.0, -0.1055613458156586, -0.0638541728258133],\n [1.0, -0.0894841775298119, -1.2914855480194092],\n];\n\nconst LMS_to_linear_sRGB_M: [number, number, number][] = [\n [4.076741636075959, -3.307711539258062, 0.2309699031821041],\n [-1.2684379732850313, 2.6097573492876878, -0.3413193760026569],\n [-0.004196076138675526, -0.703418617935936, 1.7076146940746113],\n];\n\nconst OKLab_to_linear_sRGB_coefficients: [\n [[number, number], number[]],\n [[number, number], number[]],\n [[number, number], number[]],\n] = [\n [\n [-1.8817030993265873, -0.8093650129914302],\n [1.19086277, 1.76576728, 0.59662641, 0.75515197, 0.56771245],\n ],\n [\n [1.8144407988010998, -1.194452667805235],\n [0.73956515, -0.45954404, 0.08285427, 0.12541073, -0.14503204],\n ],\n [\n [0.13110757611180954, 1.813339709266608],\n [1.35733652, -0.00915799, -1.1513021, -0.50559606, 0.00692167],\n ],\n];\n\n// ============================================================================\n// Math Utilities\n// ============================================================================\n\nconst TAU = 2 * Math.PI;\n\nconst clamp = (value: number, min: number, max: number): number =>\n Math.max(Math.min(value, max), min);\n\nconst constrainAngle = (angle: number): number => ((angle % 360) + 360) % 360;\n\nconst copySign = (to: number, from: number): number =>\n Math.sign(to) === Math.sign(from) ? to : -to;\n\nconst spow = (base: number, exp: number): number =>\n copySign(Math.abs(base) ** exp, base);\n\n// ============================================================================\n// sRGB Gamma Conversion\n// ============================================================================\n\nconst sRGBLinearToGamma = (val: number): number => {\n const sign = val < 0 ? -1 : 1;\n const abs = Math.abs(val);\n return abs > 0.0031308\n ? sign * (1.055 * Math.pow(abs, 1 / 2.4) - 0.055)\n : 12.92 * val;\n};\n\n// ============================================================================\n// Matrix Operations\n// ============================================================================\n\ntype Vec3 = [number, number, number];\n\nconst dot3 = (a: Vec3, b: Vec3): number =>\n a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n\nconst transform = (input: Vec3, matrix: Vec3[]): Vec3 => [\n dot3(input, matrix[0]),\n dot3(input, matrix[1]),\n dot3(input, matrix[2]),\n];\n\nconst cubed3 = (lms: Vec3): Vec3 => [\n lms[0] * lms[0] * lms[0],\n lms[1] * lms[1] * lms[1],\n lms[2] * lms[2] * lms[2],\n];\n\n// ============================================================================\n// OKLab Conversion\n// ============================================================================\n\nconst OKLabToLinearSRGB = (lab: Vec3): Vec3 => {\n const lms = transform(lab, OKLab_to_LMS_M);\n const cubedLms = cubed3(lms);\n return transform(cubedLms, LMS_to_linear_sRGB_M);\n};\n\n// ============================================================================\n// OKHSL to OKLab Conversion (from texel-color)\n// ============================================================================\n\nconst K1 = 0.206;\nconst K2 = 0.03;\nconst K3 = (1.0 + K1) / (1.0 + K2);\n\nconst toe = (x: number): number =>\n 0.5 *\n (K3 * x - K1 + Math.sqrt((K3 * x - K1) * (K3 * x - K1) + 4 * K2 * K3 * x));\n\nconst toeInv = (x: number): number => (x ** 2 + K1 * x) / (K3 * (x + K2));\n\nconst dotXY = (a: [number, number], b: [number, number]): number =>\n a[0] * b[0] + a[1] * b[1];\n\nconst computeMaxSaturationOKLC = (a: number, b: number): number => {\n const okCoeff = OKLab_to_linear_sRGB_coefficients;\n const lmsToRgb = LMS_to_linear_sRGB_M;\n const tmp2: [number, number] = [a, b];\n const tmp3: Vec3 = [0, a, b];\n\n let chnlCoeff: number[];\n let chnlLMS: Vec3;\n\n if (dotXY(okCoeff[0][0], tmp2) > 1) {\n chnlCoeff = okCoeff[0][1];\n chnlLMS = lmsToRgb[0];\n } else if (dotXY(okCoeff[1][0], tmp2) > 1) {\n chnlCoeff = okCoeff[1][1];\n chnlLMS = lmsToRgb[1];\n } else {\n chnlCoeff = okCoeff[2][1];\n chnlLMS = lmsToRgb[2];\n }\n\n const [k0, k1, k2, k3, k4] = chnlCoeff;\n const [wl, wm, ws] = chnlLMS;\n\n let sat = k0 + k1 * a + k2 * b + k3 * (a * a) + k4 * a * b;\n\n const dotYZ = (mat: Vec3, vec: Vec3): number =>\n mat[1] * vec[1] + mat[2] * vec[2];\n\n const kl = dotYZ(OKLab_to_LMS_M[0], tmp3);\n const km = dotYZ(OKLab_to_LMS_M[1], tmp3);\n const ks = dotYZ(OKLab_to_LMS_M[2], tmp3);\n\n let l_ = 1.0 + sat * kl;\n let m_ = 1.0 + sat * km;\n let s_ = 1.0 + sat * ks;\n\n const l = l_ * l_ * l_;\n const m = m_ * m_ * m_;\n const s = s_ * s_ * s_;\n\n const lds = 3.0 * kl * (l_ * l_);\n const mds = 3.0 * km * (m_ * m_);\n const sds = 3.0 * ks * (s_ * s_);\n\n const lds2 = 6.0 * (kl * kl) * l_;\n const mds2 = 6.0 * (km * km) * m_;\n const sds2 = 6.0 * (ks * ks) * s_;\n\n const f = wl * l + wm * m + ws * s;\n const f1 = wl * lds + wm * mds + ws * sds;\n const f2 = wl * lds2 + wm * mds2 + ws * sds2;\n\n sat = sat - (f * f1) / (f1 * f1 - 0.5 * f * f2);\n\n return sat;\n};\n\nconst findCuspOKLCH = (a: number, b: number): [number, number] => {\n const lmsToRgb = LMS_to_linear_sRGB_M;\n const S_cusp = computeMaxSaturationOKLC(a, b);\n\n const lab: Vec3 = [1, S_cusp * a, S_cusp * b];\n const rgb_at_max = OKLabToLinearSRGB(lab);\n\n const L_cusp = Math.cbrt(\n 1 /\n Math.max(\n Math.max(rgb_at_max[0], rgb_at_max[1]),\n Math.max(rgb_at_max[2], 0.0),\n ),\n );\n const C_cusp = L_cusp * S_cusp;\n\n return [L_cusp, C_cusp];\n};\n\nconst findGamutIntersectionOKLCH = (\n a: number,\n b: number,\n l1: number,\n c1: number,\n l0: number,\n cusp: [number, number],\n): number => {\n const lmsToRgb = LMS_to_linear_sRGB_M;\n const tmp3: Vec3 = [0, a, b];\n const floatMax = Number.MAX_VALUE;\n\n let t: number;\n\n const dotYZ = (mat: Vec3, vec: Vec3): number =>\n mat[1] * vec[1] + mat[2] * vec[2];\n const dotXYZ = (vec: Vec3, x: number, y: number, z: number): number =>\n vec[0] * x + vec[1] * y + vec[2] * z;\n\n if ((l1 - l0) * cusp[1] - (cusp[0] - l0) * c1 <= 0.0) {\n const denom = c1 * cusp[0] + cusp[1] * (l0 - l1);\n t = denom === 0 ? 0 : (cusp[1] * l0) / denom;\n } else {\n const denom = c1 * (cusp[0] - 1.0) + cusp[1] * (l0 - l1);\n t = denom === 0 ? 0 : (cusp[1] * (l0 - 1.0)) / denom;\n\n const dl = l1 - l0;\n const dc = c1;\n\n const kl = dotYZ(OKLab_to_LMS_M[0], tmp3);\n const km = dotYZ(OKLab_to_LMS_M[1], tmp3);\n const ks = dotYZ(OKLab_to_LMS_M[2], tmp3);\n\n const ldt_ = dl + dc * kl;\n const mdt_ = dl + dc * km;\n const sdt_ = dl + dc * ks;\n\n const L = l0 * (1.0 - t) + t * l1;\n const C = t * c1;\n\n const l_ = L + C * kl;\n const m_ = L + C * km;\n const s_ = L + C * ks;\n\n const l = l_ * l_ * l_;\n const m = m_ * m_ * m_;\n const s = s_ * s_ * s_;\n\n const ldt = 3 * ldt_ * l_ * l_;\n const mdt = 3 * mdt_ * m_ * m_;\n const sdt = 3 * sdt_ * s_ * s_;\n\n const ldt2 = 6 * ldt_ * ldt_ * l_;\n const mdt2 = 6 * mdt_ * mdt_ * m_;\n const sdt2 = 6 * sdt_ * sdt_ * s_;\n\n const r_ = dotXYZ(lmsToRgb[0], l, m, s) - 1;\n const r1 = dotXYZ(lmsToRgb[0], ldt, mdt, sdt);\n const r2 = dotXYZ(lmsToRgb[0], ldt2, mdt2, sdt2);\n\n const ur = r1 / (r1 * r1 - 0.5 * r_ * r2);\n let tr = -r_ * ur;\n\n const g_ = dotXYZ(lmsToRgb[1], l, m, s) - 1;\n const g1 = dotXYZ(lmsToRgb[1], ldt, mdt, sdt);\n const g2 = dotXYZ(lmsToRgb[1], ldt2, mdt2, sdt2);\n\n const ug = g1 / (g1 * g1 - 0.5 * g_ * g2);\n let tg = -g_ * ug;\n\n const b_ = dotXYZ(lmsToRgb[2], l, m, s) - 1;\n const b1 = dotXYZ(lmsToRgb[2], ldt, mdt, sdt);\n const b2 = dotXYZ(lmsToRgb[2], ldt2, mdt2, sdt2);\n\n const ub = b1 / (b1 * b1 - 0.5 * b_ * b2);\n let tb = -b_ * ub;\n\n tr = ur >= 0.0 ? tr : floatMax;\n tg = ug >= 0.0 ? tg : floatMax;\n tb = ub >= 0.0 ? tb : floatMax;\n\n t += Math.min(tr, Math.min(tg, tb));\n }\n\n return t;\n};\n\nconst computeSt = (cusp: [number, number]): [number, number] => {\n const l = cusp[0];\n const c = cusp[1];\n return [c / l, c / (1 - l)];\n};\n\nconst computeStMid = (a: number, b: number): [number, number] => {\n const s =\n 0.11516993 +\n 1.0 /\n (7.4477897 +\n 4.1590124 * b +\n a *\n (-2.19557347 +\n 1.75198401 * b +\n a *\n (-2.13704948 -\n 10.02301043 * b +\n a * (-4.24894561 + 5.38770819 * b + 4.69891013 * a))));\n\n const t =\n 0.11239642 +\n 1.0 /\n (1.6132032 -\n 0.68124379 * b +\n a *\n (0.40370612 +\n 0.90148123 * b +\n a *\n (-0.27087943 +\n 0.6122399 * b +\n a * (0.00299215 - 0.45399568 * b - 0.14661872 * a))));\n\n return [s, t];\n};\n\nconst getCs = (\n L: number,\n a: number,\n b: number,\n cusp: [number, number],\n): [number, number, number] => {\n const cMax = findGamutIntersectionOKLCH(a, b, L, 1, L, cusp);\n const stMax = computeSt(cusp);\n\n const k = cMax / Math.min(L * stMax[0], (1 - L) * stMax[1]);\n\n const stMid = computeStMid(a, b);\n\n let ca = L * stMid[0];\n let cb = (1.0 - L) * stMid[1];\n const cMid =\n 0.9 * k * Math.sqrt(Math.sqrt(1.0 / (1.0 / ca ** 4 + 1.0 / cb ** 4)));\n\n ca = L * 0.4;\n cb = (1.0 - L) * 0.8;\n const c0 = Math.sqrt(1.0 / (1.0 / ca ** 2 + 1.0 / cb ** 2));\n\n return [c0, cMid, cMax];\n};\n\nconst OKHSLToOKLab = (hsl: Vec3): Vec3 => {\n let h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n\n let L = toeInv(l);\n let a = 0;\n let b = 0;\n\n h = constrainAngle(h) / 360.0;\n\n if (L !== 0.0 && L !== 1.0 && s !== 0) {\n const a_ = Math.cos(TAU * h);\n const b_ = Math.sin(TAU * h);\n\n const cusp = findCuspOKLCH(a_, b_);\n const Cs = getCs(L, a_, b_, cusp);\n const [c0, cMid, cMax] = Cs;\n\n const mid = 0.8;\n const midInv = 1.25;\n let t: number, k0: number, k1: number, k2: number;\n\n if (s < mid) {\n t = midInv * s;\n k0 = 0.0;\n k1 = mid * c0;\n k2 = 1.0 - k1 / cMid;\n } else {\n t = 5 * (s - 0.8);\n k0 = cMid;\n k1 = (0.2 * cMid ** 2 * 1.25 ** 2) / c0;\n k2 = 1.0 - k1 / (cMax - cMid);\n }\n\n const c = k0 + (t * k1) / (1.0 - k2 * t);\n\n a = c * a_;\n b = c * b_;\n }\n\n return [L, a, b];\n};\n\n// ============================================================================\n// OKHSL to sRGB Conversion\n// ============================================================================\n\nconst okhslToSRGB = (h: number, s: number, l: number): Vec3 => {\n // h: 0-360, s: 0-1, l: 0-1\n const oklab = OKHSLToOKLab([h, s, l]);\n const linearRGB = OKLabToLinearSRGB(oklab);\n\n // Apply gamma correction and clamp\n return [\n clamp(sRGBLinearToGamma(linearRGB[0]), 0, 1),\n clamp(sRGBLinearToGamma(linearRGB[1]), 0, 1),\n clamp(sRGBLinearToGamma(linearRGB[2]), 0, 1),\n ];\n};\n\n// ============================================================================\n// Parsing Utilities\n// ============================================================================\n\n/**\n * Parse an angle value with optional unit.\n * Supports: deg, turn, rad, or unitless (treated as degrees).\n */\nconst parseAngle = (value: string): number => {\n const match = value.match(/^([+-]?\\d*\\.?\\d+)(deg|turn|rad)?$/);\n if (!match) return 0;\n\n const num = parseFloat(match[1]);\n const unit = match[2];\n\n switch (unit) {\n case 'turn':\n return num * 360;\n case 'rad':\n return (num * 180) / Math.PI;\n case 'deg':\n default:\n return num;\n }\n};\n\n/**\n * Parse a percentage value (e.g., \"50%\") to a 0-1 range.\n */\nconst parsePercentage = (value: string): number => {\n const match = value.match(/^([+-]?\\d*\\.?\\d+)%?$/);\n if (!match) return 0;\n\n const num = parseFloat(match[1]);\n // If the value includes %, divide by 100, otherwise assume 0-1 range\n return value.includes('%') ? num / 100 : num;\n};\n\n// ============================================================================\n// Plugin Implementation\n// ============================================================================\n\n/**\n * The okhsl function handler for tasty parser.\n * Receives parsed style groups and returns an RGB color string.\n */\nconst okhslFunc = (groups: StyleDetails[]): string => {\n // We expect a single group with 3 values: H, S, L\n // and an optional slash-separated alpha part\n if (groups.length === 0 || groups[0].all.length < 3) {\n console.warn('[okhsl] Expected 3 values (H S L), got:', groups);\n return 'rgb(0% 0% 0%)';\n }\n\n const group = groups[0];\n const tokens = group.all;\n\n // Alpha is in the second slash-separated part (e.g., okhsl(240 50% 50% / .5))\n const alpha =\n group.parts.length > 1 && group.parts[1].all.length > 0\n ? group.parts[1].output\n : undefined;\n\n // Create cache key from input tokens\n const cacheKey = tokens.slice(0, 3).join(' ') + (alpha ? ` / ${alpha}` : '');\n const cached = conversionCache.get(cacheKey);\n if (cached) return cached;\n\n const h = parseAngle(tokens[0]);\n const s = parsePercentage(tokens[1]);\n const l = parsePercentage(tokens[2]);\n\n const [r, g, b] = okhslToSRGB(h, clamp(s, 0, 1), clamp(l, 0, 1));\n\n const format = (n: number): string => {\n const pct = n * 100;\n return parseFloat(pct.toFixed(1)).toString() + '%';\n };\n\n const result = alpha\n ? `rgb(${format(r)} ${format(g)} ${format(b)} / ${alpha})`\n : `rgb(${format(r)} ${format(g)} ${format(b)})`;\n\n conversionCache.set(cacheKey, result);\n return result;\n};\n\n/**\n * OKHSL Plugin for Tasty.\n *\n * Adds support for the `okhsl()` color function in tasty styles.\n *\n * @example\n * ```ts\n * import { configure } from '@cube-dev/ui-kit';\n * import { okhslPlugin } from '@cube-dev/ui-kit/tasty/plugins';\n *\n * configure({\n * plugins: [okhslPlugin()],\n * });\n *\n * // Now you can use okhsl in styles:\n * const Box = tasty({\n * styles: {\n * fill: 'okhsl(240 50% 50%)',\n * },\n * });\n * ```\n */\nexport const okhslPlugin: TastyPluginFactory = (): TastyPlugin => ({\n name: 'okhsl',\n funcs: {\n okhsl: okhslFunc,\n },\n});\n\n// Export the raw function for direct use if needed\nexport { okhslFunc };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { getRgbValuesFromRgbaString, strToRgb } from "../utils/styles.js";
3
3
 
4
4
  //#region src/tasty/properties/index.ts
package/dist/provider.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { EventBusProvider } from "./utils/react/useEventBus.js";
3
3
  import { defaultNavigationAdapter } from "./providers/navigationAdapter.default.js";
4
4
  import { createContext, useContext, useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { createContext, useContext, useMemo } from "react";
3
3
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  //#region src/providers/navigationAdapter.default.ts
3
3
  /**
4
4
  * Converts a Path object to a string URL
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.116.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.116.2 | Cube Dev Team */
2
2
  import { isDevEnv } from "../utils/is-dev-env.js";
3
3
  import { hasStylesGenerated } from "../config.js";
4
4