@cube-dev/ui-kit 0.0.0-canary-1af1951 → 0.0.0-canary-710ce4b

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 (450) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +1 -1
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Button/Button.js +1 -1
  24. package/es/components/actions/Button/index.js +1 -1
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/es/components/actions/index.js +1 -1
  27. package/es/components/actions/use-action.js +1 -1
  28. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  29. package/es/components/content/Alert/Alert.js +1 -1
  30. package/es/components/content/Alert/index.js +1 -1
  31. package/es/components/content/Alert/types.js +1 -1
  32. package/es/components/content/Alert/use-alert.js +1 -1
  33. package/es/components/content/Avatar/Avatar.js +1 -1
  34. package/es/components/content/Badge/Badge.js +1 -1
  35. package/es/components/content/Card/Card.js +1 -1
  36. package/es/components/content/Content.js +1 -1
  37. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  38. package/es/components/content/CopyPasteBlock/index.js +1 -1
  39. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  40. package/es/components/content/CopySnippet/index.js +1 -1
  41. package/es/components/content/Divider.js +1 -1
  42. package/es/components/content/Footer.js +1 -1
  43. package/es/components/content/Header.js +1 -1
  44. package/es/components/content/Paragraph.js +1 -1
  45. package/es/components/content/Placeholder/Placeholder.js +1 -1
  46. package/es/components/content/PrismCode/PrismCode.js +1 -1
  47. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  48. package/es/components/content/Result/Result.js +1 -1
  49. package/es/components/content/Skeleton/Skeleton.js +1 -1
  50. package/es/components/content/Tag/Tag.js +1 -1
  51. package/es/components/content/Text.js +1 -1
  52. package/es/components/content/Title.js +1 -1
  53. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  54. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  55. package/es/components/fields/Checkbox/context.js +1 -1
  56. package/es/components/fields/Checkbox/index.js +1 -1
  57. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  58. package/es/components/fields/ComboBox/index.js +1 -1
  59. package/es/components/fields/DatePicker/DateInput.js +1 -1
  60. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  61. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  62. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  63. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  64. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  65. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  66. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  67. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  68. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  69. package/es/components/fields/DatePicker/index.js +1 -1
  70. package/es/components/fields/DatePicker/intl.js +1 -1
  71. package/es/components/fields/DatePicker/parseDate.js +1 -1
  72. package/es/components/fields/DatePicker/props.js +1 -1
  73. package/es/components/fields/DatePicker/types.js +1 -1
  74. package/es/components/fields/DatePicker/utils.js +1 -1
  75. package/es/components/fields/FileInput/FileInput.js +1 -1
  76. package/es/components/fields/Input/Input.js +1 -1
  77. package/es/components/fields/Input/index.js +1 -1
  78. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  79. package/es/components/fields/NumberInput/StepButton.js +1 -1
  80. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  81. package/es/components/fields/RadioGroup/Radio.js +1 -1
  82. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  83. package/es/components/fields/RadioGroup/context.js +1 -1
  84. package/es/components/fields/RadioGroup/index.js +1 -1
  85. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  86. package/es/components/fields/SearchInput/index.js +1 -1
  87. package/es/components/fields/Select/Select.js +1 -1
  88. package/es/components/fields/Select/index.js +1 -1
  89. package/es/components/fields/Slider/Gradation.js +1 -1
  90. package/es/components/fields/Slider/Header.js +1 -1
  91. package/es/components/fields/Slider/RangeSlider.js +1 -1
  92. package/es/components/fields/Slider/Slider.js +1 -1
  93. package/es/components/fields/Slider/SliderBase.js +1 -1
  94. package/es/components/fields/Slider/SliderInput.js +1 -1
  95. package/es/components/fields/Slider/SliderThumb.js +1 -1
  96. package/es/components/fields/Slider/SliderTrack.js +4 -2
  97. package/es/components/fields/Slider/elements.js +17 -9
  98. package/es/components/fields/Slider/index.js +1 -1
  99. package/es/components/fields/Slider/types.js +1 -1
  100. package/es/components/fields/Switch/Switch.js +1 -1
  101. package/es/components/fields/Switch/index.js +1 -1
  102. package/es/components/fields/TextArea/TextArea.js +1 -1
  103. package/es/components/fields/TextArea/index.js +1 -1
  104. package/es/components/fields/TextInput/TextInput.js +1 -1
  105. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  106. package/es/components/fields/TextInput/index.js +1 -1
  107. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  108. package/es/components/fields/TextInputMapper/index.js +1 -1
  109. package/es/components/fields/index.js +1 -1
  110. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  111. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  112. package/es/components/form/FieldWrapper/index.js +1 -1
  113. package/es/components/form/FieldWrapper/types.js +1 -1
  114. package/es/components/form/Form/Field.js +1 -1
  115. package/es/components/form/Form/Form.js +1 -1
  116. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  117. package/es/components/form/Form/ResetButton/index.js +1 -1
  118. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  119. package/es/components/form/Form/SubmitButton/index.js +1 -1
  120. package/es/components/form/Form/SubmitError.js +1 -1
  121. package/es/components/form/Form/index.js +1 -1
  122. package/es/components/form/Form/types.js +1 -1
  123. package/es/components/form/Form/use-field/index.js +1 -1
  124. package/es/components/form/Form/use-field/types.js +1 -1
  125. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  126. package/es/components/form/Form/use-field/use-field.js +1 -1
  127. package/es/components/form/Form/use-form.js +1 -1
  128. package/es/components/form/Form/validation.js +1 -1
  129. package/es/components/form/Label.js +1 -1
  130. package/es/components/form/index.js +1 -1
  131. package/es/components/form/wrapper.js +1 -1
  132. package/es/components/layout/Flex.js +1 -1
  133. package/es/components/layout/Flow.js +1 -1
  134. package/es/components/layout/Grid.js +1 -1
  135. package/es/components/layout/Panel.js +1 -1
  136. package/es/components/layout/Prefix.js +2 -2
  137. package/es/components/layout/ResizablePanel.js +1 -1
  138. package/es/components/layout/Space.js +1 -1
  139. package/es/components/layout/Suffix.js +2 -2
  140. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  141. package/es/components/navigation/Link/Link.js +1 -1
  142. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  143. package/es/components/organisms/Modal/Modal.js +1 -1
  144. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  145. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  146. package/es/components/other/Calendar/Calendar.js +1 -1
  147. package/es/components/other/Calendar/CalendarCell.js +1 -1
  148. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  149. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  150. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  151. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  152. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  153. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  154. package/es/components/overlays/AlertDialog/index.js +1 -1
  155. package/es/components/overlays/AlertDialog/types.js +1 -1
  156. package/es/components/overlays/Dialog/Dialog.js +1 -1
  157. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  158. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  159. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  160. package/es/components/overlays/Dialog/context.js +1 -1
  161. package/es/components/overlays/Dialog/dialog-container.js +1 -1
  162. package/es/components/overlays/Dialog/index.js +1 -1
  163. package/es/components/overlays/Modal/Modal.js +1 -1
  164. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  165. package/es/components/overlays/Modal/Overlay.js +1 -1
  166. package/es/components/overlays/Modal/Popover.js +1 -1
  167. package/es/components/overlays/Modal/Tray.js +1 -1
  168. package/es/components/overlays/Modal/Underlay.js +1 -1
  169. package/es/components/overlays/Modal/index.js +1 -1
  170. package/es/components/overlays/Modal/types.js +1 -1
  171. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  172. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  173. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  174. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  175. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  176. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  177. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  178. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  179. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  180. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  181. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  182. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  183. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  184. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  185. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  186. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  187. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  188. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  189. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  190. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  191. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  192. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  193. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  194. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  195. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  196. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  197. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  198. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  199. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  200. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  201. package/es/components/overlays/NewNotifications/index.js +1 -1
  202. package/es/components/overlays/NewNotifications/types.js +1 -1
  203. package/es/components/overlays/Notification/Notification.js +1 -1
  204. package/es/components/overlays/OverlayWrapper.js +1 -1
  205. package/es/components/overlays/Toasts/Toast.js +1 -1
  206. package/es/components/overlays/Toasts/index.js +1 -1
  207. package/es/components/overlays/Toasts/types.js +1 -1
  208. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  209. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  210. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  211. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  212. package/es/components/overlays/Tooltip/context.js +1 -1
  213. package/es/components/overlays/Tooltip/index.js +1 -1
  214. package/es/components/pickers/Menu/Menu.js +1 -1
  215. package/es/components/pickers/Menu/MenuButton.js +1 -1
  216. package/es/components/pickers/Menu/MenuItem.js +1 -1
  217. package/es/components/pickers/Menu/MenuSection.js +1 -1
  218. package/es/components/pickers/Menu/MenuTrigger.js +1 -1
  219. package/es/components/pickers/Menu/context.js +1 -1
  220. package/es/components/pickers/Menu/styled.js +1 -1
  221. package/es/components/portal/Portal.js +1 -1
  222. package/es/components/portal/PortalProvider.js +1 -1
  223. package/es/components/portal/index.js +1 -1
  224. package/es/components/portal/storybook/templates/CustomRoot.js +1 -1
  225. package/es/components/portal/storybook/templates/PortalOrder.js +1 -1
  226. package/es/components/portal/storybook/templates/basic.js +1 -1
  227. package/es/components/portal/storybook/templates/index.js +1 -1
  228. package/es/components/portal/types.js +1 -1
  229. package/es/components/portal/usePortal.js +1 -1
  230. package/es/components/shared/InvalidIcon.js +1 -1
  231. package/es/components/shared/ValidIcon.js +1 -1
  232. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  233. package/es/components/status/LoadingAnimation/index.js +1 -1
  234. package/es/components/status/Spin/Cube.js +1 -1
  235. package/es/components/status/Spin/InternalSpinner.js +1 -1
  236. package/es/components/status/Spin/Spin.js +1 -1
  237. package/es/components/status/Spin/SpinsContainer.js +1 -1
  238. package/es/components/status/Spin/index.js +1 -1
  239. package/es/components/status/Spin/types.js +1 -1
  240. package/es/components/status/index.js +1 -1
  241. package/es/data/themes.js +1 -1
  242. package/es/icons/AiIcon.js +1 -1
  243. package/es/icons/AreaChartIcon.js +1 -1
  244. package/es/icons/BackwardIcon.js +1 -1
  245. package/es/icons/BarChartIcon.js +1 -1
  246. package/es/icons/BellFilledIcon.js +1 -1
  247. package/es/icons/BellIcon.js +1 -1
  248. package/es/icons/BooleanIcon.js +1 -1
  249. package/es/icons/CalendarEditIcon.js +1 -1
  250. package/es/icons/CalendarIcon.js +1 -1
  251. package/es/icons/CaretDownIcon.js +1 -1
  252. package/es/icons/CaretUpIcon.js +1 -1
  253. package/es/icons/CheckCircleFilledIcon.js +1 -1
  254. package/es/icons/CheckCircleIcon.js +1 -1
  255. package/es/icons/CheckIcon.js +1 -1
  256. package/es/icons/CircleFilledIcon.js +1 -1
  257. package/es/icons/ClearIcon.js +1 -1
  258. package/es/icons/CloseCircleFilledIcon.js +1 -1
  259. package/es/icons/CloseCircleIcon.js +1 -1
  260. package/es/icons/CloseIcon.js +1 -1
  261. package/es/icons/CodeIcon.js +1 -1
  262. package/es/icons/CopyIcon.js +1 -1
  263. package/es/icons/CountIcon.js +1 -1
  264. package/es/icons/CubeIcon.js +1 -1
  265. package/es/icons/DangerIcon.js +1 -1
  266. package/es/icons/DashboardIcon.js +1 -1
  267. package/es/icons/DatabaseIcon.js +1 -1
  268. package/es/icons/DirectionIcon.js +1 -1
  269. package/es/icons/DonutIcon.js +1 -1
  270. package/es/icons/DownIcon.js +1 -1
  271. package/es/icons/EditIcon.js +1 -1
  272. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  273. package/es/icons/ExclamationCircleIcon.js +1 -1
  274. package/es/icons/ExclamationIcon.js +1 -1
  275. package/es/icons/EyeIcon.js +1 -1
  276. package/es/icons/EyeInvisibleIcon.js +1 -1
  277. package/es/icons/FilterIcon.js +1 -1
  278. package/es/icons/FolderFilledIcon.js +1 -1
  279. package/es/icons/FolderIcon.js +1 -1
  280. package/es/icons/FolderOpenFilledIcon.js +1 -1
  281. package/es/icons/FolderOpenIcon.js +1 -1
  282. package/es/icons/ForwardIcon.js +1 -1
  283. package/es/icons/HierarchyIcon.js +1 -1
  284. package/es/icons/Icon.js +1 -1
  285. package/es/icons/InfoCircleIcon.js +1 -1
  286. package/es/icons/InfoIcon.js +1 -1
  287. package/es/icons/KeyIcon.js +1 -1
  288. package/es/icons/LeftIcon.js +1 -1
  289. package/es/icons/LineChartIcon.js +1 -1
  290. package/es/icons/LoadingIcon.js +1 -1
  291. package/es/icons/LockFilledIcon.js +1 -1
  292. package/es/icons/LockIcon.js +1 -1
  293. package/es/icons/MoreIcon.js +1 -1
  294. package/es/icons/NotAllowedIcon.js +1 -1
  295. package/es/icons/NumberIcon.js +1 -1
  296. package/es/icons/PauseCircleFilledIcon.js +1 -1
  297. package/es/icons/PauseCircleIcon.js +1 -1
  298. package/es/icons/PauseIcon.js +1 -1
  299. package/es/icons/PieChartIcon.js +1 -1
  300. package/es/icons/PlayCircleIcon.js +1 -1
  301. package/es/icons/PlayIcon.js +1 -1
  302. package/es/icons/PlusIcon.js +1 -1
  303. package/es/icons/ReloadIcon.js +1 -1
  304. package/es/icons/ReportIcon.js +1 -1
  305. package/es/icons/ReturnIcon.js +1 -1
  306. package/es/icons/RightIcon.js +1 -1
  307. package/es/icons/SchemeIcon.js +1 -1
  308. package/es/icons/SearchIcon.js +1 -1
  309. package/es/icons/SettingsIcon.js +1 -1
  310. package/es/icons/ShieldFilledIcon.js +1 -1
  311. package/es/icons/ShieldIcon.js +1 -1
  312. package/es/icons/SlashIcon.js +1 -1
  313. package/es/icons/SparklesIcon.js +1 -1
  314. package/es/icons/SqlIcon.js +1 -1
  315. package/es/icons/StatsIcon.js +1 -1
  316. package/es/icons/StopIcon.js +1 -1
  317. package/es/icons/StringIcon.js +1 -1
  318. package/es/icons/SwitchIcon.js +1 -1
  319. package/es/icons/TableIcon.js +1 -1
  320. package/es/icons/ThumbsDownIcon.js +1 -1
  321. package/es/icons/ThumbsUpIcon.js +1 -1
  322. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  323. package/es/icons/ThunderboltFilledIcon.js +1 -1
  324. package/es/icons/ThunderboltIcon.js +1 -1
  325. package/es/icons/TimeIcon.js +1 -1
  326. package/es/icons/UnlockIcon.js +1 -1
  327. package/es/icons/UpIcon.js +1 -1
  328. package/es/icons/UserGroupIcon.js +1 -1
  329. package/es/icons/UserIcon.js +1 -1
  330. package/es/icons/UserLockIcon.js +1 -1
  331. package/es/icons/ViewIcon.js +1 -1
  332. package/es/icons/WarningFilledIcon.js +1 -1
  333. package/es/icons/WarningIcon.js +1 -1
  334. package/es/icons/add-new-icon.js +1 -1
  335. package/es/icons/index.js +1 -1
  336. package/es/icons/wrap-icon.js +1 -1
  337. package/es/index.js +1 -1
  338. package/es/parser/classify.js +151 -0
  339. package/es/parser/const.js +37 -0
  340. package/es/parser/lru.js +73 -0
  341. package/es/parser/parser.js +104 -0
  342. package/es/parser/tokenizer.js +73 -0
  343. package/es/parser/types.js +27 -0
  344. package/es/provider.js +1 -1
  345. package/es/providers/TrackingProvider.js +1 -1
  346. package/es/services/notification.js +1 -1
  347. package/es/shared/form.js +1 -1
  348. package/es/shared/index.js +1 -1
  349. package/es/stories/Form.stories.js +1 -1
  350. package/es/stories/FormFieldArgs.js +1 -1
  351. package/es/stories/Layout.stories.js +1 -1
  352. package/es/stories/Tasty.stories.js +1 -1
  353. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  354. package/es/stories/components/DialogFormApp.js +1 -1
  355. package/es/stories/components/StyledButton.js +1 -1
  356. package/es/stories/lists/baseProps.js +1 -1
  357. package/es/tasty/index.js +1 -1
  358. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  359. package/es/tasty/styles/align.js +1 -1
  360. package/es/tasty/styles/border.js +3 -2
  361. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  362. package/es/tasty/styles/color.js +1 -1
  363. package/es/tasty/styles/createStyle.js +3 -3
  364. package/es/tasty/styles/dimension.js +19 -28
  365. package/es/tasty/styles/display.js +1 -1
  366. package/es/tasty/styles/fade.js +3 -2
  367. package/es/tasty/styles/fill.js +3 -4
  368. package/es/tasty/styles/flow.js +1 -1
  369. package/es/tasty/styles/font.js +1 -1
  370. package/es/tasty/styles/fontStyle.js +1 -1
  371. package/es/tasty/styles/gap.js +3 -2
  372. package/es/tasty/styles/groupRadius.js +3 -2
  373. package/es/tasty/styles/height.js +1 -1
  374. package/es/tasty/styles/index.js +1 -1
  375. package/es/tasty/styles/inset.js +3 -2
  376. package/es/tasty/styles/justify.js +1 -1
  377. package/es/tasty/styles/list.js +1 -1
  378. package/es/tasty/styles/margin.js +3 -2
  379. package/es/tasty/styles/marginBlock.js +3 -2
  380. package/es/tasty/styles/marginInline.js +3 -2
  381. package/es/tasty/styles/outline.js +3 -2
  382. package/es/tasty/styles/padding.js +3 -2
  383. package/es/tasty/styles/paddingBlock.js +3 -2
  384. package/es/tasty/styles/paddingInline.js +3 -2
  385. package/es/tasty/styles/place.js +1 -1
  386. package/es/tasty/styles/predefined.js +1 -1
  387. package/es/tasty/styles/preset.js +3 -2
  388. package/es/tasty/styles/radius.js +3 -2
  389. package/es/tasty/styles/reset.js +3 -2
  390. package/es/tasty/styles/scrollbar.js +3 -2
  391. package/es/tasty/styles/shadow.js +3 -2
  392. package/es/tasty/styles/styledScrollbar.js +1 -1
  393. package/es/tasty/styles/transition.js +8 -2
  394. package/es/tasty/styles/types.js +1 -1
  395. package/es/tasty/styles/width.js +1 -1
  396. package/es/tasty/tasty.js +1 -1
  397. package/es/tasty/types.js +1 -1
  398. package/es/tasty/utils/cache-wrapper.js +1 -1
  399. package/es/tasty/utils/case-converter.js +1 -1
  400. package/es/tasty/utils/colors.js +1 -1
  401. package/es/tasty/utils/dotize.js +1 -1
  402. package/es/tasty/utils/filterBaseProps.js +1 -1
  403. package/es/tasty/utils/getDisplayName.js +1 -1
  404. package/es/tasty/utils/getModCombinations.js +1 -1
  405. package/es/tasty/utils/mergeStyles.js +1 -1
  406. package/es/tasty/utils/modAttrs.js +1 -1
  407. package/es/tasty/utils/renderStyles.js +1 -1
  408. package/es/tasty/utils/responsive.js +1 -1
  409. package/es/tasty/utils/string.js +1 -1
  410. package/es/tasty/utils/styles.js +68 -269
  411. package/es/tasty/utils/warnings.js +1 -1
  412. package/es/tokens.js +1 -1
  413. package/es/type-checks.js +1 -1
  414. package/es/utils/ResizeSensor.js +1 -1
  415. package/es/utils/modules.js +1 -1
  416. package/es/utils/promise.js +1 -1
  417. package/es/utils/random.js +1 -1
  418. package/es/utils/range.js +1 -1
  419. package/es/utils/react/Slots.js +1 -1
  420. package/es/utils/react/chain.js +1 -1
  421. package/es/utils/react/index.js +1 -1
  422. package/es/utils/react/interactions.js +1 -1
  423. package/es/utils/react/isTextOnly.js +1 -1
  424. package/es/utils/react/mapProps.js +1 -1
  425. package/es/utils/react/mergeProps.js +1 -1
  426. package/es/utils/react/nullableValue.js +1 -1
  427. package/es/utils/react/useCombinedRefs.js +1 -1
  428. package/es/utils/react/useId.js +1 -1
  429. package/es/utils/react/useLayoutEffect.js +1 -1
  430. package/es/utils/react/useQaProps.js +1 -1
  431. package/es/utils/react/useViewportSize.js +1 -1
  432. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  433. package/es/utils/transitions.js +1 -1
  434. package/es/utils/tree.js +1 -1
  435. package/es/utils/warnings.js +1 -1
  436. package/es/version.js +2 -2
  437. package/package.json +1 -1
  438. package/types/components/fields/DatePicker/DatePickerElement.d.ts +168 -168
  439. package/types/components/fields/RadioGroup/Radio.d.ts +8 -8
  440. package/types/components/pickers/Menu/styled.d.ts +336 -336
  441. package/types/parser/classify.d.ts +5 -0
  442. package/types/parser/const.d.ts +5 -0
  443. package/types/parser/lru.d.ts +12 -0
  444. package/types/parser/parser.d.ts +11 -0
  445. package/types/parser/tokenizer.d.ts +2 -0
  446. package/types/parser/types.d.ts +24 -0
  447. package/types/tasty/styles/dimension.d.ts +1 -4
  448. package/types/tasty/styles/height.d.ts +1 -4
  449. package/types/tasty/styles/width.d.ts +1 -4
  450. package/types/tasty/utils/styles.d.ts +11 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
package/es/icons/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
package/es/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-1af1951
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { COLOR_FUNCS, RE_HEX, RE_NUMBER, RE_UNIT_NUM, VALUE_KEYWORDS, } from './const';
9
+ import { StyleParser } from './parser';
10
+ import { Bucket } from './types';
11
+ export function classify(raw, opts, recurse) {
12
+ const token = raw.trim();
13
+ if (!token)
14
+ return { bucket: Bucket.Mod, processed: '' };
15
+ // 0. Direct var(--*-color) token
16
+ const varColorMatch = token.match(/^var\(--([a-z0-9-]+)-color\)$/);
17
+ if (varColorMatch) {
18
+ return { bucket: Bucket.Color, processed: token };
19
+ }
20
+ // 1. URL
21
+ if (token.startsWith('url(')) {
22
+ return { bucket: Bucket.Value, processed: token };
23
+ }
24
+ // 2. Custom property
25
+ if (token[0] === '@') {
26
+ const match = token.match(/^@\(([a-z0-9-_]+)\s*,\s*(.*)\)$/);
27
+ if (match) {
28
+ const [, name, fallback] = match;
29
+ const processedFallback = recurse(fallback).output;
30
+ return {
31
+ bucket: Bucket.Value,
32
+ processed: `var(--${name}, ${processedFallback})`,
33
+ };
34
+ }
35
+ const identMatch = token.match(/^@([a-z0-9-_]+)$/);
36
+ if (identMatch) {
37
+ const name = identMatch[1];
38
+ const processed = `var(--${name})`;
39
+ const bucketType = name.endsWith('-color') ? Bucket.Color : Bucket.Value;
40
+ return {
41
+ bucket: bucketType,
42
+ processed,
43
+ };
44
+ }
45
+ // invalid custom property → modifier
46
+ }
47
+ // 3. Hash colors (with optional alpha suffix e.g., #purple.5)
48
+ if (token[0] === '#' && token.length > 1) {
49
+ // alpha form: #name.alpha
50
+ const alphaMatch = token.match(/^#([a-z0-9-]+)\.([0-9]+)$/i);
51
+ if (alphaMatch) {
52
+ const [, base, rawAlpha] = alphaMatch;
53
+ let alpha;
54
+ if (rawAlpha === '0')
55
+ alpha = '0';
56
+ else
57
+ alpha = `.${rawAlpha}`;
58
+ return {
59
+ bucket: Bucket.Color,
60
+ processed: `rgb(var(--${base}-color-rgb) / ${alpha})`,
61
+ };
62
+ }
63
+ // hyphenated names like #dark-05 should keep full name
64
+ const name = token.slice(1);
65
+ // valid hex → treat as hex literal with fallback
66
+ if (RE_HEX.test(name)) {
67
+ return {
68
+ bucket: Bucket.Color,
69
+ processed: `var(--${name}-color, #${name})`,
70
+ };
71
+ }
72
+ // simple color name token → css variable lookup with rgb fallback
73
+ return { bucket: Bucket.Color, processed: `var(--${name}-color)` };
74
+ }
75
+ // 4 & 5. Functions
76
+ const openIdx = token.indexOf('(');
77
+ if (openIdx > 0 && token.endsWith(')')) {
78
+ const fname = token.slice(0, openIdx);
79
+ const inner = token.slice(openIdx + 1, -1); // without ()
80
+ if (COLOR_FUNCS.has(fname)) {
81
+ // Process inner to expand nested colors or units.
82
+ const argProcessed = recurse(inner).output.replace(/,\s+/g, ','); // color funcs expect no spaces after commas
83
+ return { bucket: Bucket.Color, processed: `${fname}(${argProcessed})` };
84
+ }
85
+ // user function (provided via opts)
86
+ if (opts.funcs && fname in opts.funcs) {
87
+ // split by top-level commas within inner
88
+ const tmp = new StyleParser(opts).process(inner); // fresh parser w/ same opts but no cache share issues
89
+ const argProcessed = opts.funcs[fname](tmp.groups);
90
+ return { bucket: Bucket.Value, processed: argProcessed };
91
+ }
92
+ // generic: process inner and rebuild
93
+ const argProcessed = recurse(inner).output;
94
+ return { bucket: Bucket.Value, processed: `${fname}(${argProcessed})` };
95
+ }
96
+ // 6. Auto-calc group
97
+ if (token[0] === '(' && token[token.length - 1] === ')') {
98
+ const inner = token.slice(1, -1);
99
+ const innerProcessed = recurse(inner).output;
100
+ return { bucket: Bucket.Value, processed: `calc(${innerProcessed})` };
101
+ }
102
+ // 7. Unit number
103
+ const um = token.match(RE_UNIT_NUM);
104
+ if (um) {
105
+ const unit = um[1];
106
+ const numericPart = parseFloat(token.slice(0, -unit.length));
107
+ const handler = opts.units && opts.units[unit];
108
+ if (handler) {
109
+ if (typeof handler === 'string') {
110
+ // Special-case the common `x` → gap mapping used by tests.
111
+ const base = unit === 'x' ? 'var(--gap)' : handler;
112
+ if (numericPart === 1) {
113
+ return { bucket: Bucket.Value, processed: base };
114
+ }
115
+ return {
116
+ bucket: Bucket.Value,
117
+ processed: `calc(${numericPart} * ${base})`,
118
+ };
119
+ }
120
+ else {
121
+ const inner = handler(numericPart);
122
+ // Avoid double wrapping if handler already returns a calc(...)
123
+ return {
124
+ bucket: Bucket.Value,
125
+ processed: inner.startsWith('calc(') ? inner : `calc(${inner})`,
126
+ };
127
+ }
128
+ }
129
+ }
130
+ // 7b. Unknown numeric+unit → treat as literal value (e.g., 1fr)
131
+ if (/^[+-]?(?:\d*\.\d+|\d+)[a-z%]+$/.test(token)) {
132
+ return { bucket: Bucket.Value, processed: token };
133
+ }
134
+ // 7c. Plain unit-less numbers should be treated as value tokens so that
135
+ // code such as `scrollbar={10}` resolves correctly.
136
+ if (RE_NUMBER.test(token)) {
137
+ return { bucket: Bucket.Value, processed: token };
138
+ }
139
+ // 8. Literal value keywords
140
+ if (VALUE_KEYWORDS.has(token)) {
141
+ return { bucket: Bucket.Value, processed: token };
142
+ }
143
+ // 8b. Special keyword colors
144
+ if (token === 'transparent' || token === 'currentcolor') {
145
+ return { bucket: Bucket.Color, processed: token };
146
+ }
147
+ // 9. Fallback modifier
148
+ return { bucket: Bucket.Mod, processed: token };
149
+ }
150
+
151
+
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ export const VALUE_KEYWORDS = new Set([
9
+ 'none',
10
+ 'auto',
11
+ 'max-content',
12
+ 'min-content',
13
+ 'fit-content',
14
+ 'stretch',
15
+ 'initial',
16
+ ]);
17
+ export const COLOR_FUNCS = new Set([
18
+ 'rgb',
19
+ 'rgba',
20
+ 'hsl',
21
+ 'hsla',
22
+ 'hwb',
23
+ 'lab',
24
+ 'lch',
25
+ 'oklab',
26
+ 'oklch',
27
+ 'color',
28
+ 'device-cmyk',
29
+ 'gray',
30
+ 'color-mix',
31
+ 'color-contrast',
32
+ ]);
33
+ export const RE_UNIT_NUM = /^[+-]?(?:\d*\.\d+|\d+)([a-z][a-z0-9]*)$/;
34
+ export const RE_NUMBER = /^[+-]?(?:\d*\.\d+|\d+)$/;
35
+ export const RE_HEX = /^(?:[0-9a-f]{3,4}|[0-9a-f]{6}(?:[0-9a-f]{2})?)$/;
36
+
37
+
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ export class Lru {
9
+ limit;
10
+ map = new Map();
11
+ head = null;
12
+ tail = null;
13
+ constructor(limit = 1000) {
14
+ this.limit = limit;
15
+ }
16
+ get(key) {
17
+ const node = this.map.get(key);
18
+ if (!node)
19
+ return undefined;
20
+ this.touch(key, node);
21
+ return node.value;
22
+ }
23
+ set(key, value) {
24
+ let node = this.map.get(key);
25
+ if (node) {
26
+ node.value = value;
27
+ this.touch(key, node);
28
+ return;
29
+ }
30
+ node = { prev: null, next: this.head, value };
31
+ if (this.head)
32
+ this.map.get(this.head).prev = key;
33
+ this.head = key;
34
+ if (!this.tail)
35
+ this.tail = key;
36
+ this.map.set(key, node);
37
+ if (this.map.size > this.limit)
38
+ this.evict();
39
+ }
40
+ touch(key, node) {
41
+ if (this.head === key)
42
+ return; // already MRU
43
+ // detach
44
+ if (node.prev)
45
+ this.map.get(node.prev).next = node.next;
46
+ if (node.next)
47
+ this.map.get(node.next).prev = node.prev;
48
+ if (this.tail === key)
49
+ this.tail = node.prev;
50
+ // move to head
51
+ node.prev = null;
52
+ node.next = this.head;
53
+ if (this.head)
54
+ this.map.get(this.head).prev = key;
55
+ this.head = key;
56
+ }
57
+ evict() {
58
+ const old = this.tail;
59
+ if (!old)
60
+ return;
61
+ const node = this.map.get(old);
62
+ if (node.prev)
63
+ this.map.get(node.prev).next = null;
64
+ this.tail = node.prev;
65
+ this.map.delete(old);
66
+ }
67
+ clear() {
68
+ this.map.clear();
69
+ this.head = this.tail = null;
70
+ }
71
+ }
72
+
73
+
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-710ce4b
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { classify } from './classify';
9
+ import { Lru } from './lru';
10
+ import { scan } from './tokenizer';
11
+ import { Bucket, finalizeGroup, makeEmptyDetails, } from './types';
12
+ export class StyleParser {
13
+ opts;
14
+ cache;
15
+ constructor(opts = {}) {
16
+ this.opts = opts;
17
+ this.cache = new Lru(this.opts.cacheSize ?? 1000);
18
+ }
19
+ /* ---------------- Public API ---------------- */
20
+ process(src) {
21
+ const key = String(src);
22
+ const hit = this.cache.get(key);
23
+ if (hit)
24
+ return hit;
25
+ // strip comments & lower-case once
26
+ const stripped = src
27
+ .replace(/\/\*[^*]*\*+(?:[^/*][^*]*\*+)*\//g, '')
28
+ .toLowerCase();
29
+ const groups = [];
30
+ let current = makeEmptyDetails();
31
+ const pushToken = (bucket, processed) => {
32
+ if (!processed)
33
+ return;
34
+ // If the previous token was a url(...) value, merge this token into it so that
35
+ // background layer segments like "url(img) no-repeat center/cover" are kept
36
+ // as a single value entry.
37
+ const mergeIntoPrevUrl = () => {
38
+ const lastIdx = current.values.length - 1;
39
+ current.values[lastIdx] += ` ${processed}`;
40
+ const lastAllIdx = current.all.length - 1;
41
+ current.all[lastAllIdx] += ` ${processed}`;
42
+ };
43
+ const prevIsUrlValue = current.values.length > 0 &&
44
+ current.values[current.values.length - 1].startsWith('url(');
45
+ if (prevIsUrlValue) {
46
+ // Extend the existing url(...) value regardless of current bucket.
47
+ mergeIntoPrevUrl();
48
+ // Additionally, for non-value buckets we need to remove their own storage.
49
+ // So early return.
50
+ return;
51
+ }
52
+ switch (bucket) {
53
+ case Bucket.Color:
54
+ current.colors.push(processed);
55
+ break;
56
+ case Bucket.Value:
57
+ current.values.push(processed);
58
+ break;
59
+ case Bucket.Mod:
60
+ current.mods.push(processed);
61
+ break;
62
+ }
63
+ current.all.push(processed);
64
+ };
65
+ const endGroup = () => {
66
+ finalizeGroup(current);
67
+ groups.push(current);
68
+ current = makeEmptyDetails();
69
+ };
70
+ scan(stripped, (tok, isComma, prevChar) => {
71
+ if (tok) {
72
+ const { bucket, processed } = classify(tok, this.opts, (sub) => this.process(sub));
73
+ pushToken(bucket, processed);
74
+ }
75
+ if (isComma)
76
+ endGroup();
77
+ });
78
+ // push final group if not already
79
+ if (current.all.length || !groups.length)
80
+ endGroup();
81
+ const output = groups.map((g) => g.output).join(', ');
82
+ const result = { output, groups };
83
+ Object.freeze(result);
84
+ this.cache.set(key, result);
85
+ return result;
86
+ }
87
+ setFuncs(funcs) {
88
+ this.opts.funcs = funcs;
89
+ this.cache.clear();
90
+ }
91
+ setUnits(units) {
92
+ this.opts.units = units;
93
+ this.cache.clear();
94
+ }
95
+ updateOptions(patch) {
96
+ Object.assign(this.opts, patch);
97
+ if (patch.cacheSize)
98
+ this.cache = new Lru(patch.cacheSize);
99
+ else
100
+ this.cache.clear();
101
+ }
102
+ }
103
+
104
+