@cube-dev/ui-kit 0.0.0-canary-215df3c → 0.0.0-canary-8302b62

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