@cube-dev/ui-kit 0.0.0-canary-acb9af5 → 0.0.0-canary-e9dc427

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 (635) hide show
  1. package/es/_internal/hooks/index.js +1 -1
  2. package/es/_internal/hooks/use-chained-callback.js +1 -1
  3. package/es/_internal/hooks/use-debounced-value.js +1 -1
  4. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/es/_internal/hooks/use-effect-once.js +1 -1
  6. package/es/_internal/hooks/use-event.js +1 -1
  7. package/es/_internal/hooks/use-is-first-render.js +1 -1
  8. package/es/_internal/hooks/use-sync-ref.js +1 -1
  9. package/es/_internal/hooks/use-timer/index.js +1 -1
  10. package/es/_internal/hooks/use-timer/timer.js +1 -1
  11. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/es/_internal/hooks/use-update-effect.js +1 -1
  13. package/es/_internal/hooks/use-warn.js +1 -1
  14. package/es/_internal/index.js +1 -1
  15. package/es/components/Block.js +1 -1
  16. package/es/components/CollectionItem.js +1 -1
  17. package/es/components/GlobalStyles.js +67 -61
  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 +52 -12
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Button/Button.js +2 -2
  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/CommandMenu/CommandMenu.js +1 -1
  27. package/es/components/actions/CommandMenu/index.js +1 -1
  28. package/es/components/actions/CommandMenu/styled.js +1 -1
  29. package/es/components/actions/ItemAction/ItemAction.js +1 -1
  30. package/es/components/actions/ItemAction/index.js +1 -1
  31. package/es/components/actions/ItemActionContext.js +1 -1
  32. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  33. package/es/components/actions/ItemButton/index.js +1 -1
  34. package/es/components/actions/Link/Link.js +1 -1
  35. package/es/components/actions/Menu/Menu.js +1 -1
  36. package/es/components/actions/Menu/MenuItem.js +1 -1
  37. package/es/components/actions/Menu/MenuSection.js +1 -1
  38. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  39. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  40. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/es/components/actions/Menu/context.js +1 -1
  42. package/es/components/actions/Menu/index.js +1 -1
  43. package/es/components/actions/Menu/styled.js +1 -1
  44. package/es/components/actions/index.js +1 -1
  45. package/es/components/actions/use-action.js +1 -1
  46. package/es/components/actions/use-anchored-menu.js +1 -1
  47. package/es/components/actions/use-context-menu.js +1 -1
  48. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  49. package/es/components/content/Alert/Alert.js +1 -1
  50. package/es/components/content/Alert/index.js +1 -1
  51. package/es/components/content/Alert/types.js +1 -1
  52. package/es/components/content/Alert/use-alert.js +1 -1
  53. package/es/components/content/Avatar/Avatar.js +1 -1
  54. package/es/components/content/Badge/Badge.js +1 -1
  55. package/es/components/content/Card/Card.js +1 -1
  56. package/es/components/content/Content.js +1 -1
  57. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -2
  58. package/es/components/content/CopyPasteBlock/index.js +1 -1
  59. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  60. package/es/components/content/CopySnippet/index.js +1 -1
  61. package/es/components/content/Disclosure/Disclosure.js +1 -1
  62. package/es/components/content/Disclosure/index.js +1 -1
  63. package/es/components/content/Divider.js +1 -1
  64. package/es/components/content/Footer.js +1 -1
  65. package/es/components/content/Header.js +1 -1
  66. package/es/components/content/HotKeys/HotKeys.js +1 -1
  67. package/es/components/content/HotKeys/index.js +1 -1
  68. package/es/components/content/Item/Item.js +2 -2
  69. package/es/components/content/Item/index.js +1 -1
  70. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  71. package/es/components/content/ItemBadge/index.js +1 -1
  72. package/es/components/content/Layout/GridLayout.js +1 -1
  73. package/es/components/content/Layout/Layout.js +1 -2
  74. package/es/components/content/Layout/LayoutBlock.js +1 -1
  75. package/es/components/content/Layout/LayoutCenter.js +1 -1
  76. package/es/components/content/Layout/LayoutContainer.js +1 -1
  77. package/es/components/content/Layout/LayoutContent.js +1 -2
  78. package/es/components/content/Layout/LayoutContext.js +1 -1
  79. package/es/components/content/Layout/LayoutFlex.js +1 -1
  80. package/es/components/content/Layout/LayoutFooter.js +1 -1
  81. package/es/components/content/Layout/LayoutGrid.js +1 -1
  82. package/es/components/content/Layout/LayoutHeader.js +1 -1
  83. package/es/components/content/Layout/LayoutPane.js +1 -2
  84. package/es/components/content/Layout/LayoutPanel.js +1 -2
  85. package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
  86. package/es/components/content/Layout/LayoutToolbar.js +1 -1
  87. package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  88. package/es/components/content/Layout/index.js +1 -1
  89. package/es/components/content/Layout/utils.js +1 -1
  90. package/es/components/content/List/SectionHeading.js +1 -1
  91. package/es/components/content/List/index.js +1 -1
  92. package/es/components/content/Paragraph.js +1 -1
  93. package/es/components/content/Placeholder/Placeholder.js +1 -1
  94. package/es/components/content/PrismCode/PrismCode.js +1 -1
  95. package/es/components/content/PrismCode/prismSetup.js +1 -1
  96. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  97. package/es/components/content/Result/Result.js +4 -1
  98. package/es/components/content/Skeleton/Skeleton.js +1 -1
  99. package/es/components/content/Tag/Tag.js +1 -1
  100. package/es/components/content/Text.js +1 -1
  101. package/es/components/content/TextItem/TextItem.js +1 -1
  102. package/es/components/content/TextItem/index.js +1 -1
  103. package/es/components/content/Title.js +1 -1
  104. package/es/components/content/highlightText.js +1 -1
  105. package/es/components/content/use-auto-tooltip.js +1 -1
  106. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  107. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  108. package/es/components/fields/Checkbox/context.js +1 -1
  109. package/es/components/fields/Checkbox/index.js +1 -1
  110. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  111. package/es/components/fields/ComboBox/index.js +1 -1
  112. package/es/components/fields/DatePicker/DateInput.js +1 -1
  113. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  114. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  115. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  116. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  119. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  120. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  121. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  122. package/es/components/fields/DatePicker/index.js +1 -1
  123. package/es/components/fields/DatePicker/intl.js +1 -1
  124. package/es/components/fields/DatePicker/parseDate.js +1 -1
  125. package/es/components/fields/DatePicker/props.js +1 -1
  126. package/es/components/fields/DatePicker/types.js +1 -1
  127. package/es/components/fields/DatePicker/utils.js +1 -1
  128. package/es/components/fields/FileInput/FileInput.js +1 -1
  129. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  130. package/es/components/fields/FilterListBox/index.js +1 -1
  131. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  132. package/es/components/fields/FilterPicker/index.js +1 -1
  133. package/es/components/fields/Input/Input.js +1 -1
  134. package/es/components/fields/Input/index.js +1 -1
  135. package/es/components/fields/ListBox/ListBox.js +1 -1
  136. package/es/components/fields/ListBox/index.js +1 -1
  137. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  138. package/es/components/fields/NumberInput/StepButton.js +1 -1
  139. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  140. package/es/components/fields/Picker/Picker.js +1 -1
  141. package/es/components/fields/Picker/index.js +1 -1
  142. package/es/components/fields/RadioGroup/Radio.js +1 -1
  143. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  144. package/es/components/fields/RadioGroup/context.js +1 -1
  145. package/es/components/fields/RadioGroup/index.js +1 -1
  146. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  147. package/es/components/fields/SearchInput/index.js +1 -1
  148. package/es/components/fields/Select/Select.js +1 -1
  149. package/es/components/fields/Select/index.js +1 -1
  150. package/es/components/fields/Slider/Gradation.js +1 -1
  151. package/es/components/fields/Slider/Header.js +1 -1
  152. package/es/components/fields/Slider/RangeSlider.js +1 -1
  153. package/es/components/fields/Slider/Slider.js +1 -1
  154. package/es/components/fields/Slider/SliderBase.js +1 -1
  155. package/es/components/fields/Slider/SliderInput.js +1 -1
  156. package/es/components/fields/Slider/SliderThumb.js +1 -1
  157. package/es/components/fields/Slider/SliderTrack.js +1 -1
  158. package/es/components/fields/Slider/elements.js +1 -1
  159. package/es/components/fields/Slider/index.js +1 -1
  160. package/es/components/fields/Slider/types.js +1 -1
  161. package/es/components/fields/Switch/Switch.js +1 -1
  162. package/es/components/fields/Switch/index.js +1 -1
  163. package/es/components/fields/TextArea/TextArea.js +1 -1
  164. package/es/components/fields/TextArea/index.js +1 -1
  165. package/es/components/fields/TextInput/TextInput.js +1 -1
  166. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  167. package/es/components/fields/TextInput/index.js +1 -1
  168. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  169. package/es/components/fields/TextInputMapper/index.js +1 -1
  170. package/es/components/fields/index.js +1 -1
  171. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  172. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  173. package/es/components/form/FieldWrapper/index.js +1 -1
  174. package/es/components/form/FieldWrapper/types.js +1 -1
  175. package/es/components/form/Form/Field.js +1 -1
  176. package/es/components/form/Form/Form.js +1 -1
  177. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  178. package/es/components/form/Form/ResetButton/index.js +1 -1
  179. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  180. package/es/components/form/Form/SubmitButton/index.js +1 -1
  181. package/es/components/form/Form/SubmitError.js +1 -1
  182. package/es/components/form/Form/index.js +1 -1
  183. package/es/components/form/Form/types.js +1 -1
  184. package/es/components/form/Form/use-field/index.js +1 -1
  185. package/es/components/form/Form/use-field/types.js +1 -1
  186. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  187. package/es/components/form/Form/use-field/use-field.js +1 -1
  188. package/es/components/form/Form/use-form.js +1 -1
  189. package/es/components/form/Form/validation.js +1 -1
  190. package/es/components/form/Label.js +1 -1
  191. package/es/components/form/index.js +1 -1
  192. package/es/components/form/wrapper.js +1 -1
  193. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  194. package/es/components/helpers/DisplayTransition/index.js +1 -1
  195. package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
  196. package/es/components/helpers/index.js +1 -1
  197. package/es/components/layout/Flex.js +1 -1
  198. package/es/components/layout/Flow.js +1 -1
  199. package/es/components/layout/Grid.js +1 -1
  200. package/es/components/layout/Panel.js +1 -1
  201. package/es/components/layout/Prefix.js +1 -1
  202. package/es/components/layout/ResizablePanel.js +1 -1
  203. package/es/components/layout/Space.js +1 -1
  204. package/es/components/layout/Suffix.js +1 -1
  205. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  206. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  207. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  208. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  209. package/es/components/other/Calendar/Calendar.js +1 -1
  210. package/es/components/other/Calendar/CalendarCell.js +1 -1
  211. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  212. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  213. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  214. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  215. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  216. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  217. package/es/components/overlays/AlertDialog/index.js +1 -1
  218. package/es/components/overlays/AlertDialog/types.js +1 -1
  219. package/es/components/overlays/Dialog/Dialog.js +1 -1
  220. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  221. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  222. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  223. package/es/components/overlays/Dialog/context.js +1 -1
  224. package/es/components/overlays/Dialog/index.js +1 -1
  225. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  226. package/es/components/overlays/Modal/Modal.js +1 -1
  227. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  228. package/es/components/overlays/Modal/Overlay.js +1 -1
  229. package/es/components/overlays/Modal/Popover.js +1 -1
  230. package/es/components/overlays/Modal/Tray.js +1 -1
  231. package/es/components/overlays/Modal/Underlay.js +1 -1
  232. package/es/components/overlays/Modal/index.js +1 -1
  233. package/es/components/overlays/Modal/types.js +1 -1
  234. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  235. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  236. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  237. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  238. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  239. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  240. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  241. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  242. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  243. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  249. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  250. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  253. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  254. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  255. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  256. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  257. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  258. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  259. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  260. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  261. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  263. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  265. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  266. package/es/components/overlays/NewNotifications/index.js +1 -1
  267. package/es/components/overlays/NewNotifications/types.js +1 -1
  268. package/es/components/overlays/Notification/Notification.js +1 -1
  269. package/es/components/overlays/OverlayWrapper.js +1 -1
  270. package/es/components/overlays/Toasts/Toast.js +1 -1
  271. package/es/components/overlays/Toasts/index.js +1 -1
  272. package/es/components/overlays/Toasts/types.js +1 -1
  273. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  274. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  275. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  276. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  277. package/es/components/overlays/Tooltip/context.js +1 -1
  278. package/es/components/overlays/Tooltip/index.js +1 -1
  279. package/es/components/portal/Portal.js +1 -1
  280. package/es/components/portal/PortalProvider.js +1 -1
  281. package/es/components/portal/index.js +1 -1
  282. package/es/components/portal/types.js +1 -1
  283. package/es/components/portal/usePortal.js +1 -1
  284. package/es/components/shared/InvalidIcon.js +1 -1
  285. package/es/components/shared/ValidIcon.js +1 -1
  286. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  287. package/es/components/status/LoadingAnimation/index.js +1 -1
  288. package/es/components/status/Spin/Cube.js +1 -1
  289. package/es/components/status/Spin/InternalSpinner.js +1 -1
  290. package/es/components/status/Spin/Spin.js +1 -1
  291. package/es/components/status/Spin/SpinsContainer.js +1 -1
  292. package/es/components/status/Spin/index.js +1 -1
  293. package/es/components/status/Spin/types.js +1 -1
  294. package/es/components/status/index.js +1 -1
  295. package/es/data/item-themes.js +1 -1
  296. package/es/data/themes.js +1 -1
  297. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  298. package/es/icons/AdjustmentsIcon.js +1 -1
  299. package/es/icons/AiIcon.js +1 -1
  300. package/es/icons/AreaChartIcon.js +1 -1
  301. package/es/icons/BackwardIcon.js +1 -1
  302. package/es/icons/BarChartIcon.js +1 -1
  303. package/es/icons/BellFilledIcon.js +1 -1
  304. package/es/icons/BellIcon.js +1 -1
  305. package/es/icons/BooleanIcon.js +1 -1
  306. package/es/icons/CalendarEditIcon.js +1 -1
  307. package/es/icons/CalendarIcon.js +1 -1
  308. package/es/icons/CaretDownIcon.js +1 -1
  309. package/es/icons/CaretUpIcon.js +1 -1
  310. package/es/icons/ChartAreaStackedIcon.js +1 -1
  311. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  312. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  313. package/es/icons/ChartBarGroupedIcon.js +1 -1
  314. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  315. package/es/icons/ChartBarLineIcon.js +1 -1
  316. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  317. package/es/icons/ChartBarStackedIcon.js +1 -1
  318. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  319. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  320. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  321. package/es/icons/ChartBoxPlotIcon.js +1 -1
  322. package/es/icons/ChartBubbleIcon.js +1 -1
  323. package/es/icons/ChartDonut2Icon.js +1 -1
  324. package/es/icons/ChartFunnelIcon.js +1 -1
  325. package/es/icons/ChartHeatmapIcon.js +1 -1
  326. package/es/icons/ChartKPIIcon.js +1 -1
  327. package/es/icons/ChartPie2Icon.js +1 -1
  328. package/es/icons/ChartScatterIcon.js +1 -1
  329. package/es/icons/CheckCircleFilledIcon.js +1 -1
  330. package/es/icons/CheckCircleIcon.js +1 -1
  331. package/es/icons/CheckIcon.js +1 -1
  332. package/es/icons/CircleFilledIcon.js +1 -1
  333. package/es/icons/ClearIcon.js +1 -1
  334. package/es/icons/CloseCircleFilledIcon.js +1 -1
  335. package/es/icons/CloseCircleIcon.js +1 -1
  336. package/es/icons/CloseIcon.js +1 -1
  337. package/es/icons/CodeIcon.js +1 -1
  338. package/es/icons/ColumnTotalIcon.js +1 -1
  339. package/es/icons/CopyIcon.js +1 -1
  340. package/es/icons/CountIcon.js +1 -1
  341. package/es/icons/CubeIcon.js +1 -1
  342. package/es/icons/CubePauseIcon.js +1 -1
  343. package/es/icons/CubePlayIcon.js +1 -1
  344. package/es/icons/CurrencyDollarIcon.js +1 -1
  345. package/es/icons/DangerIcon.js +1 -1
  346. package/es/icons/DashboardIcon.js +1 -1
  347. package/es/icons/DatabaseIcon.js +1 -1
  348. package/es/icons/DecimalDecreaseIcon.js +1 -1
  349. package/es/icons/DecimalIncreaseIcon.js +1 -1
  350. package/es/icons/DirectionIcon.js +1 -1
  351. package/es/icons/DonutIcon.js +1 -1
  352. package/es/icons/DownIcon.js +1 -1
  353. package/es/icons/EditIcon.js +1 -1
  354. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  355. package/es/icons/ExclamationCircleIcon.js +1 -1
  356. package/es/icons/ExclamationIcon.js +1 -1
  357. package/es/icons/EyeIcon.js +1 -1
  358. package/es/icons/EyeInvisibleIcon.js +1 -1
  359. package/es/icons/FilterIcon.js +1 -1
  360. package/es/icons/FolderFilledIcon.js +1 -1
  361. package/es/icons/FolderIcon.js +1 -1
  362. package/es/icons/FolderOpenFilledIcon.js +1 -1
  363. package/es/icons/FolderOpenIcon.js +1 -1
  364. package/es/icons/ForwardIcon.js +1 -1
  365. package/es/icons/HierarchyIcon.js +1 -1
  366. package/es/icons/HierarchyOpenIcon.js +1 -1
  367. package/es/icons/Icon.js +1 -1
  368. package/es/icons/InfoCircleIcon.js +1 -1
  369. package/es/icons/InfoIcon.js +1 -1
  370. package/es/icons/KeyIcon.js +1 -1
  371. package/es/icons/LeftIcon.js +1 -1
  372. package/es/icons/LineChartIcon.js +1 -1
  373. package/es/icons/LoadingIcon.js +1 -1
  374. package/es/icons/LockFilledIcon.js +1 -1
  375. package/es/icons/LockIcon.js +1 -1
  376. package/es/icons/MoreIcon.js +1 -1
  377. package/es/icons/NotAllowedIcon.js +1 -1
  378. package/es/icons/Number123Icon.js +1 -1
  379. package/es/icons/NumberIcon.js +1 -1
  380. package/es/icons/PauseCircleFilledIcon.js +1 -1
  381. package/es/icons/PauseCircleIcon.js +1 -1
  382. package/es/icons/PauseIcon.js +1 -1
  383. package/es/icons/PercentageIcon.js +1 -1
  384. package/es/icons/PieChartIcon.js +1 -1
  385. package/es/icons/PlayCircleIcon.js +1 -1
  386. package/es/icons/PlayIcon.js +1 -1
  387. package/es/icons/PlusIcon.js +1 -1
  388. package/es/icons/ProgressBarIcon.js +1 -1
  389. package/es/icons/ReloadIcon.js +1 -1
  390. package/es/icons/ReportIcon.js +1 -1
  391. package/es/icons/ReturnIcon.js +1 -1
  392. package/es/icons/RightIcon.js +1 -1
  393. package/es/icons/RowTotalsIcon.js +1 -1
  394. package/es/icons/SchemeIcon.js +1 -1
  395. package/es/icons/SearchIcon.js +1 -1
  396. package/es/icons/SettingsIcon.js +1 -1
  397. package/es/icons/ShieldFilledIcon.js +1 -1
  398. package/es/icons/ShieldIcon.js +1 -1
  399. package/es/icons/SlashIcon.js +1 -1
  400. package/es/icons/SparklesIcon.js +1 -1
  401. package/es/icons/SqlIcon.js +1 -1
  402. package/es/icons/StatsIcon.js +1 -1
  403. package/es/icons/StopIcon.js +1 -1
  404. package/es/icons/StringIcon.js +1 -1
  405. package/es/icons/SubtotalsIcon.js +1 -1
  406. package/es/icons/SwitchIcon.js +1 -1
  407. package/es/icons/TableIcon.js +1 -1
  408. package/es/icons/ThumbsDownIcon.js +1 -1
  409. package/es/icons/ThumbsUpIcon.js +1 -1
  410. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  411. package/es/icons/ThunderboltFilledIcon.js +1 -1
  412. package/es/icons/ThunderboltIcon.js +1 -1
  413. package/es/icons/TimeIcon.js +1 -1
  414. package/es/icons/TrashIcon.js +1 -1
  415. package/es/icons/UnlockIcon.js +1 -1
  416. package/es/icons/UpIcon.js +1 -1
  417. package/es/icons/UserGroupIcon.js +1 -1
  418. package/es/icons/UserIcon.js +1 -1
  419. package/es/icons/UserLockIcon.js +1 -1
  420. package/es/icons/ViewIcon.js +1 -1
  421. package/es/icons/WarningFilledIcon.js +1 -1
  422. package/es/icons/WarningIcon.js +1 -1
  423. package/es/icons/add-new-icon.js +1 -1
  424. package/es/icons/index.js +1 -1
  425. package/es/icons/wrap-icon.js +1 -1
  426. package/es/index.js +1 -2
  427. package/es/provider.js +8 -2
  428. package/es/providers/TrackingProvider.js +1 -1
  429. package/es/providers/navigation.types.js +1 -1
  430. package/es/providers/navigationAdapter.default.js +1 -1
  431. package/es/services/notification.js +1 -1
  432. package/es/shared/form.js +1 -1
  433. package/es/shared/index.js +1 -1
  434. package/es/stories/Form.legacy-stories.js +1 -1
  435. package/es/stories/FormFieldArgs.js +1 -1
  436. package/es/stories/SimpleLayout.stories.js +1 -1
  437. package/es/stories/Tasty.stories.js +1 -1
  438. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  439. package/es/stories/components/DialogFormApp.js +1 -1
  440. package/es/stories/components/StyledButton.js +14 -17
  441. package/es/stories/lists/baseProps.js +1 -1
  442. package/es/tasty/debug.js +7 -193
  443. package/es/tasty/index.js +4 -10
  444. package/es/tasty/injector/index.js +87 -31
  445. package/es/tasty/injector/injector.js +279 -30
  446. package/es/tasty/injector/sheet-manager.js +2 -126
  447. package/es/tasty/injector/types.js +1 -1
  448. package/es/tasty/parser/classify.js +1 -1
  449. package/es/tasty/parser/const.js +1 -1
  450. package/es/tasty/parser/lru.js +1 -1
  451. package/es/tasty/parser/parser.js +1 -7
  452. package/es/tasty/parser/tokenizer.js +1 -1
  453. package/es/tasty/parser/types.js +1 -1
  454. package/es/tasty/providers/BreakpointsProvider.js +16 -0
  455. package/es/tasty/styles/align.js +1 -1
  456. package/es/tasty/styles/border.js +1 -1
  457. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  458. package/es/tasty/styles/color.js +1 -1
  459. package/es/tasty/styles/createStyle.js +1 -1
  460. package/es/tasty/styles/dimension.js +1 -1
  461. package/es/tasty/styles/display.js +1 -1
  462. package/es/tasty/styles/fade.js +1 -1
  463. package/es/tasty/styles/fill.js +1 -1
  464. package/es/tasty/styles/flow.js +1 -1
  465. package/es/tasty/styles/font.js +1 -1
  466. package/es/tasty/styles/fontStyle.js +1 -1
  467. package/es/tasty/styles/gap.js +1 -1
  468. package/es/tasty/styles/groupRadius.js +1 -1
  469. package/es/tasty/styles/height.js +1 -1
  470. package/es/tasty/styles/index.js +1 -1
  471. package/es/tasty/styles/inset.js +1 -1
  472. package/es/tasty/styles/justify.js +1 -1
  473. package/es/tasty/styles/list.js +1 -1
  474. package/es/tasty/styles/margin.js +24 -56
  475. package/es/tasty/styles/outline.js +1 -1
  476. package/es/tasty/styles/padding.js +24 -56
  477. package/es/tasty/styles/place.js +1 -1
  478. package/es/tasty/styles/predefined.js +1 -1
  479. package/es/tasty/styles/preset.js +1 -1
  480. package/es/tasty/styles/radius.js +1 -1
  481. package/es/tasty/styles/reset.js +1 -1
  482. package/es/tasty/styles/scrollbar.js +1 -1
  483. package/es/tasty/styles/shadow.js +1 -1
  484. package/es/tasty/styles/styledScrollbar.js +1 -1
  485. package/es/tasty/styles/transition.js +1 -1
  486. package/es/tasty/styles/types.js +1 -1
  487. package/es/tasty/styles/width.js +1 -1
  488. package/es/tasty/tasty.js +119 -14
  489. package/es/tasty/types.js +1 -1
  490. package/es/tasty/utils/cache-wrapper.js +1 -1
  491. package/es/tasty/utils/case-converter.js +1 -1
  492. package/es/tasty/utils/colors.js +1 -1
  493. package/es/tasty/utils/dotize.js +1 -1
  494. package/es/tasty/utils/filterBaseProps.js +1 -1
  495. package/es/tasty/utils/getDisplayName.js +1 -1
  496. package/es/tasty/utils/getModCombinations.js +38 -0
  497. package/es/tasty/utils/isDevEnv.js +1 -1
  498. package/es/tasty/utils/mergeStyles.js +2 -2
  499. package/es/tasty/utils/modAttrs.js +1 -1
  500. package/es/tasty/utils/processTokens.js +1 -1
  501. package/es/tasty/utils/renderStyles.js +1050 -0
  502. package/es/tasty/utils/responsive.js +60 -0
  503. package/es/tasty/utils/string.js +1 -1
  504. package/es/tasty/utils/styles.js +15 -221
  505. package/es/tasty/utils/warnings.js +1 -1
  506. package/es/tokens.js +309 -0
  507. package/es/utils/ResizeSensor.js +1 -1
  508. package/es/utils/index.js +1 -1
  509. package/es/utils/modules.js +1 -1
  510. package/es/utils/promise.js +1 -1
  511. package/es/utils/raf.js +1 -1
  512. package/es/utils/random.js +1 -1
  513. package/es/utils/range.js +1 -1
  514. package/es/utils/react/RenderCache.js +1 -1
  515. package/es/utils/react/Slots.js +1 -1
  516. package/es/utils/react/chain.js +1 -1
  517. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  518. package/es/utils/react/index.js +1 -1
  519. package/es/utils/react/interactions.js +1 -1
  520. package/es/utils/react/isTextOnly.js +1 -1
  521. package/es/utils/react/mapProps.js +1 -1
  522. package/es/utils/react/mergeProps.js +1 -1
  523. package/es/utils/react/nullableValue.js +1 -1
  524. package/es/utils/react/resolveIcon.js +1 -1
  525. package/es/utils/react/sharedStore.js +1 -1
  526. package/es/utils/react/useCombinedRefs.js +1 -1
  527. package/es/utils/react/useControlledFocusVisible.js +1 -1
  528. package/es/utils/react/useEventBus.js +1 -1
  529. package/es/utils/react/useId.js +1 -1
  530. package/es/utils/react/useIsDarwin.js +1 -1
  531. package/es/utils/react/useKeySymbols.js +1 -1
  532. package/es/utils/react/useLayoutEffect.js +1 -1
  533. package/es/utils/react/useLocalStorage.js +1 -1
  534. package/es/utils/react/useQaProps.js +1 -1
  535. package/es/utils/react/useViewportSize.js +1 -1
  536. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  537. package/es/utils/tree.js +1 -1
  538. package/es/utils/warnings.js +1 -1
  539. package/es/version.js +2 -2
  540. package/package.json +1 -3
  541. package/types/components/GlobalStyles.d.ts +1 -2
  542. package/types/components/HiddenInput.d.ts +826 -826
  543. package/types/components/Root.d.ts +0 -1
  544. package/types/components/actions/Button/Button.d.ts +1645 -1645
  545. package/types/components/actions/CommandMenu/styled.d.ts +4130 -4130
  546. package/types/components/actions/Menu/styled.d.ts +4373 -4373
  547. package/types/components/content/List/SectionHeading.d.ts +81 -81
  548. package/types/components/content/Text.d.ts +297 -297
  549. package/types/components/fields/DatePicker/DatePickerElement.d.ts +81 -81
  550. package/types/components/fields/Select/Select.d.ts +826 -826
  551. package/types/components/fields/Slider/elements.d.ts +4956 -4956
  552. package/types/index.d.ts +0 -1
  553. package/types/provider.d.ts +2 -1
  554. package/types/stories/components/StyledButton.d.ts +1 -1
  555. package/types/tasty/debug.d.ts +0 -35
  556. package/types/tasty/index.d.ts +4 -12
  557. package/types/tasty/injector/index.d.ts +19 -30
  558. package/types/tasty/injector/injector.d.ts +13 -13
  559. package/types/tasty/injector/sheet-manager.d.ts +1 -25
  560. package/types/tasty/injector/types.d.ts +1 -20
  561. package/types/tasty/parser/parser.d.ts +0 -4
  562. package/types/tasty/providers/BreakpointsProvider.d.ts +8 -0
  563. package/types/tasty/styles/types.d.ts +3 -3
  564. package/types/tasty/tasty.d.ts +837 -845
  565. package/types/tasty/utils/getModCombinations.d.ts +9 -0
  566. package/types/tasty/utils/renderStyles.d.ts +41 -0
  567. package/types/tasty/utils/responsive.d.ts +8 -0
  568. package/types/tasty/utils/styles.d.ts +5 -38
  569. package/types/tokens.d.ts +221 -0
  570. package/es/tasty/chunks/cacheKey.js +0 -98
  571. package/es/tasty/chunks/definitions.js +0 -280
  572. package/es/tasty/chunks/index.js +0 -12
  573. package/es/tasty/chunks/renderChunk.js +0 -97
  574. package/es/tasty/config.js +0 -216
  575. package/es/tasty/hooks/index.js +0 -12
  576. package/es/tasty/hooks/useGlobalStyles.js +0 -67
  577. package/es/tasty/hooks/useRawCSS.js +0 -40
  578. package/es/tasty/hooks/useStyles.js +0 -146
  579. package/es/tasty/pipeline/conditions.js +0 -469
  580. package/es/tasty/pipeline/exclusive.js +0 -193
  581. package/es/tasty/pipeline/index.js +0 -515
  582. package/es/tasty/pipeline/materialize.js +0 -1001
  583. package/es/tasty/pipeline/parseStateKey.js +0 -565
  584. package/es/tasty/pipeline/simplify.js +0 -786
  585. package/es/tasty/states/index.js +0 -515
  586. package/es/tasty/static/index.js +0 -47
  587. package/es/tasty/static/tastyStatic.js +0 -55
  588. package/es/tasty/static/types.js +0 -34
  589. package/es/tasty/utils/typography.js +0 -67
  590. package/es/tasty/zero/babel.js +0 -401
  591. package/es/tasty/zero/css-writer.js +0 -94
  592. package/es/tasty/zero/extractor.js +0 -75
  593. package/es/tasty/zero/index.js +0 -28
  594. package/es/tasty/zero/next.js +0 -102
  595. package/es/tokens/base.js +0 -64
  596. package/es/tokens/colors.js +0 -68
  597. package/es/tokens/index.js +0 -63
  598. package/es/tokens/layout.js +0 -26
  599. package/es/tokens/shadows.js +0 -27
  600. package/es/tokens/sizes.js +0 -44
  601. package/es/tokens/spacing.js +0 -22
  602. package/es/tokens/typography.js +0 -237
  603. package/types/tasty/chunks/cacheKey.d.ts +0 -26
  604. package/types/tasty/chunks/definitions.d.ts +0 -75
  605. package/types/tasty/chunks/index.d.ts +0 -4
  606. package/types/tasty/chunks/renderChunk.d.ts +0 -25
  607. package/types/tasty/config.d.ts +0 -131
  608. package/types/tasty/hooks/index.d.ts +0 -4
  609. package/types/tasty/hooks/useGlobalStyles.d.ts +0 -22
  610. package/types/tasty/hooks/useRawCSS.d.ts +0 -50
  611. package/types/tasty/hooks/useStyles.d.ts +0 -38
  612. package/types/tasty/pipeline/conditions.d.ts +0 -248
  613. package/types/tasty/pipeline/exclusive.d.ts +0 -78
  614. package/types/tasty/pipeline/index.d.ts +0 -67
  615. package/types/tasty/pipeline/materialize.d.ts +0 -115
  616. package/types/tasty/pipeline/parseStateKey.d.ts +0 -20
  617. package/types/tasty/pipeline/simplify.d.ts +0 -28
  618. package/types/tasty/states/index.d.ts +0 -101
  619. package/types/tasty/static/index.d.ts +0 -39
  620. package/types/tasty/static/tastyStatic.d.ts +0 -41
  621. package/types/tasty/static/types.d.ts +0 -44
  622. package/types/tasty/utils/typography.d.ts +0 -32
  623. package/types/tasty/zero/babel.d.ts +0 -56
  624. package/types/tasty/zero/css-writer.d.ts +0 -41
  625. package/types/tasty/zero/extractor.d.ts +0 -19
  626. package/types/tasty/zero/index.d.ts +0 -18
  627. package/types/tasty/zero/next.d.ts +0 -57
  628. package/types/tokens/base.d.ts +0 -8
  629. package/types/tokens/colors.d.ts +0 -6
  630. package/types/tokens/index.d.ts +0 -41
  631. package/types/tokens/layout.d.ts +0 -7
  632. package/types/tokens/shadows.d.ts +0 -12
  633. package/types/tokens/sizes.d.ts +0 -27
  634. package/types/tokens/spacing.d.ts +0 -8
  635. package/types/tokens/typography.d.ts +0 -30
@@ -1,40 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-acb9af5
5
- * Released under the MIT license.
6
- */
7
-
8
- import { useInsertionEffect, useMemo, useRef } from 'react';
9
- import { injectRawCSS } from '../injector';
10
- // Implementation
11
- export function useRawCSS(cssOrFactory, depsOrOptions, options) {
12
- // Detect which overload is being used
13
- const isFactory = typeof cssOrFactory === 'function';
14
- // Parse arguments based on overload
15
- const deps = isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : undefined;
16
- const opts = isFactory
17
- ? options
18
- : depsOrOptions;
19
- // Memoize CSS - for factory functions, use provided deps; for strings, use the string itself
20
- const css = useMemo(() => isFactory ? cssOrFactory() : cssOrFactory, isFactory ? deps ?? [] : [cssOrFactory]);
21
- const disposeRef = useRef(null);
22
- useInsertionEffect(() => {
23
- // Dispose previous injection if any
24
- disposeRef.current?.();
25
- if (!css.trim()) {
26
- disposeRef.current = null;
27
- return;
28
- }
29
- // Inject new CSS
30
- const { dispose } = injectRawCSS(css, opts);
31
- disposeRef.current = dispose;
32
- // Cleanup on unmount or when css changes
33
- return () => {
34
- disposeRef.current?.();
35
- disposeRef.current = null;
36
- };
37
- }, [css, opts?.root]);
38
- }
39
-
40
-
@@ -1,146 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-acb9af5
5
- * Released under the MIT license.
6
- */
7
-
8
- import { useInsertionEffect, useMemo, useRef } from 'react';
9
- import { categorizeStyleKeys, CHUNK_NAMES, generateChunkCacheKey, renderStylesForChunk, } from '../chunks';
10
- import { allocateClassName, inject } from '../injector';
11
- import { renderStyles } from '../pipeline';
12
- import { stringifyStyles } from '../utils/styles';
13
- /**
14
- * Check if styles contain @starting-style rules.
15
- *
16
- * @starting-style CSS cannot be applied via multiple class names because
17
- * of cascade - later rules override earlier ones. When @starting is detected,
18
- * we disable chunking and use a single class name for all styles.
19
- */
20
- function containsStartingStyle(styleKey) {
21
- return styleKey.includes('@starting');
22
- }
23
- /**
24
- * Hook to generate CSS classes from Tasty styles.
25
- * Handles style rendering, className allocation, and CSS injection.
26
- *
27
- * Uses chunking to split styles into logical groups for better caching
28
- * and CSS reuse across components.
29
- *
30
- * @example
31
- * ```tsx
32
- * function MyComponent() {
33
- * const { className } = useStyles({
34
- * styles: {
35
- * padding: '2x',
36
- * fill: '#purple',
37
- * radius: '1r',
38
- * }
39
- * });
40
- *
41
- * return <div className={className}>Styled content</div>;
42
- * }
43
- * ```
44
- */
45
- export function useStyles({ styles }) {
46
- // Array of dispose functions for each chunk
47
- const disposeRef = useRef([]);
48
- // Store styles by their stringified key to avoid recomputing when only reference changes
49
- const stylesRef = useRef({
50
- key: '',
51
- styles: undefined,
52
- });
53
- // Compute style key - this is a primitive string that captures style content
54
- const styleKey = useMemo(() => {
55
- if (!styles || Object.keys(styles).length === 0) {
56
- return '';
57
- }
58
- return stringifyStyles(styles);
59
- }, [styles]);
60
- // Update ref when styleKey changes (content actually changed)
61
- if (stylesRef.current.key !== styleKey) {
62
- stylesRef.current = { key: styleKey, styles };
63
- }
64
- // Process chunks: categorize, generate cache keys, render, and allocate classNames
65
- // Only depends on styleKey (primitive), not styles object reference
66
- const processedChunks = useMemo(() => {
67
- const currentStyles = stylesRef.current.styles;
68
- if (!styleKey || !currentStyles) {
69
- return [];
70
- }
71
- // Disable chunking for styles containing @starting-style rules.
72
- // @starting-style CSS cannot work with multiple class names due to cascade -
73
- // the rules would override each other instead of combining properly.
74
- if (containsStartingStyle(styleKey)) {
75
- const renderResult = renderStyles(currentStyles);
76
- if (renderResult.rules.length === 0) {
77
- return [];
78
- }
79
- const { className } = allocateClassName(styleKey);
80
- return [
81
- {
82
- name: CHUNK_NAMES.COMBINED,
83
- styleKeys: Object.keys(currentStyles),
84
- cacheKey: styleKey,
85
- renderResult,
86
- className,
87
- },
88
- ];
89
- }
90
- // Categorize style keys into chunks
91
- const chunkMap = categorizeStyleKeys(currentStyles);
92
- const chunks = [];
93
- for (const [chunkName, chunkStyleKeys] of chunkMap) {
94
- // Skip empty chunks
95
- if (chunkStyleKeys.length === 0) {
96
- continue;
97
- }
98
- // Generate cache key for this chunk
99
- const cacheKey = generateChunkCacheKey(currentStyles, chunkName, chunkStyleKeys);
100
- // Render styles for this chunk
101
- const renderResult = renderStylesForChunk(currentStyles, chunkName, chunkStyleKeys);
102
- // Skip chunks with no rules
103
- if (renderResult.rules.length === 0) {
104
- continue;
105
- }
106
- // Allocate className for this chunk (safe in render phase)
107
- const { className } = allocateClassName(cacheKey);
108
- chunks.push({
109
- name: chunkName,
110
- styleKeys: chunkStyleKeys,
111
- cacheKey,
112
- renderResult,
113
- className,
114
- });
115
- }
116
- return chunks;
117
- }, [styleKey]);
118
- // Inject styles in insertion effect (avoids render phase side effects)
119
- useInsertionEffect(() => {
120
- // Cleanup all previous chunk disposals
121
- disposeRef.current.forEach((dispose) => dispose?.());
122
- disposeRef.current = [];
123
- // Inject each chunk and collect dispose functions
124
- for (const chunk of processedChunks) {
125
- if (chunk.renderResult.rules.length > 0) {
126
- const { dispose } = inject(chunk.renderResult.rules, {
127
- cacheKey: chunk.cacheKey,
128
- });
129
- disposeRef.current.push(dispose);
130
- }
131
- }
132
- return () => {
133
- disposeRef.current.forEach((dispose) => dispose?.());
134
- disposeRef.current = [];
135
- };
136
- }, [processedChunks]);
137
- // Combine all chunk classNames
138
- const className = useMemo(() => {
139
- return processedChunks.map((chunk) => chunk.className).join(' ');
140
- }, [processedChunks]);
141
- return {
142
- className,
143
- };
144
- }
145
-
146
-
@@ -1,469 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-acb9af5
5
- * Released under the MIT license.
6
- */
7
-
8
- /**
9
- * ConditionNode Types and Helpers
10
- *
11
- * Core data structures for representing style conditions as an abstract syntax tree.
12
- * Used throughout the pipeline for parsing, simplification, and CSS generation.
13
- */
14
- // ============================================================================
15
- // Constructor Functions
16
- // ============================================================================
17
- /**
18
- * Create a TRUE condition (matches everything)
19
- */
20
- export function trueCondition() {
21
- return { kind: 'true' };
22
- }
23
- /**
24
- * Create a FALSE condition (matches nothing)
25
- */
26
- export function falseCondition() {
27
- return { kind: 'false' };
28
- }
29
- /**
30
- * Create an AND compound condition
31
- */
32
- export function and(...children) {
33
- const filtered = [];
34
- for (const child of children) {
35
- // Short-circuit on FALSE
36
- if (child.kind === 'false') {
37
- return falseCondition();
38
- }
39
- // Skip TRUE (identity for AND)
40
- if (child.kind === 'true') {
41
- continue;
42
- }
43
- // Flatten nested ANDs
44
- if (child.kind === 'compound' && child.operator === 'AND') {
45
- filtered.push(...child.children);
46
- }
47
- else {
48
- filtered.push(child);
49
- }
50
- }
51
- if (filtered.length === 0) {
52
- return trueCondition();
53
- }
54
- if (filtered.length === 1) {
55
- return filtered[0];
56
- }
57
- return {
58
- kind: 'compound',
59
- operator: 'AND',
60
- children: filtered,
61
- };
62
- }
63
- /**
64
- * Create an OR compound condition
65
- */
66
- export function or(...children) {
67
- const filtered = [];
68
- for (const child of children) {
69
- // Short-circuit on TRUE
70
- if (child.kind === 'true') {
71
- return trueCondition();
72
- }
73
- // Skip FALSE (identity for OR)
74
- if (child.kind === 'false') {
75
- continue;
76
- }
77
- // Flatten nested ORs
78
- if (child.kind === 'compound' && child.operator === 'OR') {
79
- filtered.push(...child.children);
80
- }
81
- else {
82
- filtered.push(child);
83
- }
84
- }
85
- if (filtered.length === 0) {
86
- return falseCondition();
87
- }
88
- if (filtered.length === 1) {
89
- return filtered[0];
90
- }
91
- return {
92
- kind: 'compound',
93
- operator: 'OR',
94
- children: filtered,
95
- };
96
- }
97
- /**
98
- * Negate a condition
99
- */
100
- export function not(node) {
101
- // NOT(TRUE) = FALSE
102
- if (node.kind === 'true') {
103
- return falseCondition();
104
- }
105
- // NOT(FALSE) = TRUE
106
- if (node.kind === 'false') {
107
- return trueCondition();
108
- }
109
- // NOT(state) = toggle negated flag
110
- if (node.kind === 'state') {
111
- return {
112
- ...node,
113
- negated: !node.negated,
114
- uniqueId: node.negated
115
- ? node.uniqueId.replace(/^!/, '')
116
- : `!${node.uniqueId}`,
117
- };
118
- }
119
- // NOT(AND(a, b, ...)) = OR(NOT(a), NOT(b), ...) - De Morgan's law
120
- if (node.kind === 'compound' && node.operator === 'AND') {
121
- return or(...node.children.map((c) => not(c)));
122
- }
123
- // NOT(OR(a, b, ...)) = AND(NOT(a), NOT(b), ...) - De Morgan's law
124
- if (node.kind === 'compound' && node.operator === 'OR') {
125
- return and(...node.children.map((c) => not(c)));
126
- }
127
- // Fallback - should not reach here
128
- return node;
129
- }
130
- // ============================================================================
131
- // Condition Type Checking
132
- // ============================================================================
133
- /**
134
- * Check if a condition is a state condition
135
- */
136
- export function isStateCondition(node) {
137
- return node.kind === 'state';
138
- }
139
- /**
140
- * Check if a condition is a compound condition
141
- */
142
- export function isCompoundCondition(node) {
143
- return node.kind === 'compound';
144
- }
145
- /**
146
- * Check if a condition is TRUE
147
- */
148
- export function isTrueCondition(node) {
149
- return node.kind === 'true';
150
- }
151
- /**
152
- * Check if a condition is FALSE
153
- */
154
- export function isFalseCondition(node) {
155
- return node.kind === 'false';
156
- }
157
- // ============================================================================
158
- // UniqueId Generation
159
- // ============================================================================
160
- /**
161
- * Generate a normalized unique ID for a modifier condition
162
- */
163
- export function modifierUniqueId(attribute, value, operator = '=', negated = false) {
164
- const base = value
165
- ? `mod:${attribute}${operator}${value}`
166
- : `mod:${attribute}`;
167
- return negated ? `!${base}` : base;
168
- }
169
- /**
170
- * Generate a normalized unique ID for a pseudo condition
171
- */
172
- export function pseudoUniqueId(pseudo, negated = false) {
173
- const base = `pseudo:${pseudo}`;
174
- return negated ? `!${base}` : base;
175
- }
176
- /**
177
- * Generate a normalized unique ID for a media condition
178
- */
179
- export function mediaUniqueId(subtype, props, negated = false) {
180
- let base;
181
- if (subtype === 'dimension') {
182
- const parts = ['media', 'dim', props.dimension];
183
- if (props.lowerBound) {
184
- parts.push(props.lowerBound.inclusive ? '>=' : '>');
185
- parts.push(props.lowerBound.value);
186
- }
187
- if (props.upperBound) {
188
- parts.push(props.upperBound.inclusive ? '<=' : '<');
189
- parts.push(props.upperBound.value);
190
- }
191
- base = parts.join(':');
192
- }
193
- else if (subtype === 'feature') {
194
- base = props.featureValue
195
- ? `media:feat:${props.feature}:${props.featureValue}`
196
- : `media:feat:${props.feature}`;
197
- }
198
- else {
199
- base = `media:type:${props.mediaType}`;
200
- }
201
- return negated ? `!${base}` : base;
202
- }
203
- /**
204
- * Generate a normalized unique ID for a container condition
205
- */
206
- export function containerUniqueId(subtype, props, negated = false) {
207
- let base;
208
- const name = props.containerName || '_';
209
- if (subtype === 'dimension') {
210
- const parts = ['container', 'dim', name, props.dimension];
211
- if (props.lowerBound) {
212
- parts.push(props.lowerBound.inclusive ? '>=' : '>');
213
- parts.push(props.lowerBound.value);
214
- }
215
- if (props.upperBound) {
216
- parts.push(props.upperBound.inclusive ? '<=' : '<');
217
- parts.push(props.upperBound.value);
218
- }
219
- base = parts.join(':');
220
- }
221
- else {
222
- base = props.propertyValue
223
- ? `container:style:${name}:--${props.property}:${props.propertyValue}`
224
- : `container:style:${name}:--${props.property}`;
225
- }
226
- return negated ? `!${base}` : base;
227
- }
228
- /**
229
- * Generate a normalized unique ID for a root condition
230
- */
231
- export function rootUniqueId(selector, negated = false) {
232
- const base = `root:${selector}`;
233
- return negated ? `!${base}` : base;
234
- }
235
- /**
236
- * Generate a normalized unique ID for an own condition
237
- */
238
- export function ownUniqueId(innerUniqueId, negated = false) {
239
- const base = `own:${innerUniqueId}`;
240
- return negated ? `!${base}` : base;
241
- }
242
- /**
243
- * Generate a normalized unique ID for a starting condition
244
- */
245
- export function startingUniqueId(negated = false) {
246
- return negated ? '!starting' : 'starting';
247
- }
248
- // ============================================================================
249
- // Condition Creation Helpers
250
- // ============================================================================
251
- /**
252
- * Create a modifier condition
253
- */
254
- export function createModifierCondition(attribute, value, operator = '=', negated = false, raw) {
255
- return {
256
- kind: 'state',
257
- type: 'modifier',
258
- negated,
259
- raw: raw || (value ? `${attribute}${operator}${value}` : attribute),
260
- uniqueId: modifierUniqueId(attribute, value, operator, negated),
261
- attribute,
262
- value,
263
- operator: value ? operator : undefined,
264
- };
265
- }
266
- /**
267
- * Create a pseudo condition
268
- */
269
- export function createPseudoCondition(pseudo, negated = false, raw) {
270
- return {
271
- kind: 'state',
272
- type: 'pseudo',
273
- negated,
274
- raw: raw || pseudo,
275
- uniqueId: pseudoUniqueId(pseudo, negated),
276
- pseudo,
277
- };
278
- }
279
- /**
280
- * Create a media dimension condition
281
- */
282
- export function createMediaDimensionCondition(dimension, lowerBound, upperBound, negated = false, raw) {
283
- return {
284
- kind: 'state',
285
- type: 'media',
286
- subtype: 'dimension',
287
- negated,
288
- raw: raw || `@media(${dimension})`,
289
- uniqueId: mediaUniqueId('dimension', { dimension, lowerBound, upperBound }, negated),
290
- dimension,
291
- lowerBound,
292
- upperBound,
293
- };
294
- }
295
- /**
296
- * Create a media feature condition
297
- */
298
- export function createMediaFeatureCondition(feature, featureValue, negated = false, raw) {
299
- return {
300
- kind: 'state',
301
- type: 'media',
302
- subtype: 'feature',
303
- negated,
304
- raw: raw || `@media(${feature}${featureValue ? `: ${featureValue}` : ''})`,
305
- uniqueId: mediaUniqueId('feature', { feature, featureValue }, negated),
306
- feature,
307
- featureValue,
308
- };
309
- }
310
- /**
311
- * Create a media type condition
312
- */
313
- export function createMediaTypeCondition(mediaType, negated = false, raw) {
314
- return {
315
- kind: 'state',
316
- type: 'media',
317
- subtype: 'type',
318
- negated,
319
- raw: raw || `@media:${mediaType}`,
320
- uniqueId: mediaUniqueId('type', { mediaType }, negated),
321
- mediaType,
322
- };
323
- }
324
- /**
325
- * Create a container dimension condition
326
- */
327
- export function createContainerDimensionCondition(dimension, lowerBound, upperBound, containerName, negated = false, raw) {
328
- return {
329
- kind: 'state',
330
- type: 'container',
331
- subtype: 'dimension',
332
- negated,
333
- raw: raw || `@(${containerName ? containerName + ', ' : ''}${dimension})`,
334
- uniqueId: containerUniqueId('dimension', { containerName, dimension, lowerBound, upperBound }, negated),
335
- containerName,
336
- dimension,
337
- lowerBound,
338
- upperBound,
339
- };
340
- }
341
- /**
342
- * Create a container style condition
343
- */
344
- export function createContainerStyleCondition(property, propertyValue, containerName, negated = false, raw) {
345
- return {
346
- kind: 'state',
347
- type: 'container',
348
- subtype: 'style',
349
- negated,
350
- raw: raw ||
351
- `@(${containerName ? containerName + ', ' : ''}$${property}${propertyValue ? '=' + propertyValue : ''})`,
352
- uniqueId: containerUniqueId('style', { containerName, property, propertyValue }, negated),
353
- containerName,
354
- property,
355
- propertyValue,
356
- };
357
- }
358
- /**
359
- * Create a root condition
360
- */
361
- export function createRootCondition(selector, negated = false, raw) {
362
- return {
363
- kind: 'state',
364
- type: 'root',
365
- negated,
366
- raw: raw || `@root(${selector})`,
367
- uniqueId: rootUniqueId(selector, negated),
368
- selector,
369
- };
370
- }
371
- /**
372
- * Create an own condition
373
- */
374
- export function createOwnCondition(innerCondition, negated = false, raw) {
375
- const innerUniqueId = getConditionUniqueId(innerCondition);
376
- return {
377
- kind: 'state',
378
- type: 'own',
379
- negated,
380
- raw: raw || `@own(...)`,
381
- uniqueId: ownUniqueId(innerUniqueId, negated),
382
- innerCondition,
383
- };
384
- }
385
- /**
386
- * Create a starting condition
387
- */
388
- export function createStartingCondition(negated = false, raw) {
389
- return {
390
- kind: 'state',
391
- type: 'starting',
392
- negated,
393
- raw: raw || '@starting',
394
- uniqueId: startingUniqueId(negated),
395
- };
396
- }
397
- // ============================================================================
398
- // Utility Functions
399
- // ============================================================================
400
- /**
401
- * Get the unique ID for any condition node
402
- */
403
- export function getConditionUniqueId(node) {
404
- if (node.kind === 'true') {
405
- return 'TRUE';
406
- }
407
- if (node.kind === 'false') {
408
- return 'FALSE';
409
- }
410
- if (node.kind === 'state') {
411
- return node.uniqueId;
412
- }
413
- if (node.kind === 'compound') {
414
- const childIds = node.children.map(getConditionUniqueId).sort();
415
- return `${node.operator}(${childIds.join(',')})`;
416
- }
417
- return 'UNKNOWN';
418
- }
419
- /**
420
- * Check if two conditions are equal based on their unique IDs
421
- */
422
- export function conditionsEqual(a, b) {
423
- return getConditionUniqueId(a) === getConditionUniqueId(b);
424
- }
425
- /**
426
- * Get all state conditions from a condition tree (flattened)
427
- */
428
- export function getAllStateConditions(node) {
429
- if (node.kind === 'true' || node.kind === 'false') {
430
- return [];
431
- }
432
- if (node.kind === 'state') {
433
- return [node];
434
- }
435
- if (node.kind === 'compound') {
436
- const result = [];
437
- for (const child of node.children) {
438
- result.push(...getAllStateConditions(child));
439
- }
440
- return result;
441
- }
442
- return [];
443
- }
444
- /**
445
- * Clone a condition node (deep copy)
446
- */
447
- export function cloneCondition(node) {
448
- if (node.kind === 'true' || node.kind === 'false') {
449
- return { ...node };
450
- }
451
- if (node.kind === 'state') {
452
- if (node.type === 'own') {
453
- return {
454
- ...node,
455
- innerCondition: cloneCondition(node.innerCondition),
456
- };
457
- }
458
- return { ...node };
459
- }
460
- if (node.kind === 'compound') {
461
- return {
462
- ...node,
463
- children: node.children.map(cloneCondition),
464
- };
465
- }
466
- return node;
467
- }
468
-
469
-