@cube-dev/ui-kit 0.0.0-canary-76be278 → 0.0.0-canary-7e4ec9d

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 (646) 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 +1 -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 +2 -2
  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 -18
  441. package/es/stories/lists/baseProps.js +1 -1
  442. package/es/tasty/debug.js +7 -193
  443. package/es/tasty/index.js +4 -18
  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 +3 -5
  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 -14
  452. package/es/tasty/parser/tokenizer.js +1 -1
  453. package/es/tasty/parser/types.js +1 -2
  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 +20 -10
  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 +55 -75
  475. package/es/tasty/styles/outline.js +1 -1
  476. package/es/tasty/styles/padding.js +55 -75
  477. package/es/tasty/styles/place.js +1 -1
  478. package/es/tasty/styles/predefined.js +2 -3
  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 +117 -76
  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 +19 -252
  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 -827
  543. package/types/components/Root.d.ts +0 -1
  544. package/types/components/actions/Button/Button.d.ts +1645 -1647
  545. package/types/components/actions/CommandMenu/styled.d.ts +4130 -4135
  546. package/types/components/actions/Menu/styled.d.ts +4379 -4384
  547. package/types/components/actions/use-action.d.ts +1 -1
  548. package/types/components/content/List/SectionHeading.d.ts +83 -83
  549. package/types/components/content/Text.d.ts +311 -311
  550. package/types/components/fields/DatePicker/DatePickerElement.d.ts +83 -83
  551. package/types/components/fields/Select/Select.d.ts +826 -827
  552. package/types/components/fields/Slider/elements.d.ts +4956 -4962
  553. package/types/index.d.ts +0 -1
  554. package/types/provider.d.ts +2 -1
  555. package/types/stories/components/StyledButton.d.ts +1 -1
  556. package/types/tasty/debug.d.ts +0 -35
  557. package/types/tasty/index.d.ts +4 -14
  558. package/types/tasty/injector/index.d.ts +19 -30
  559. package/types/tasty/injector/injector.d.ts +13 -13
  560. package/types/tasty/injector/sheet-manager.d.ts +1 -25
  561. package/types/tasty/injector/types.d.ts +1 -20
  562. package/types/tasty/parser/parser.d.ts +0 -4
  563. package/types/tasty/parser/types.d.ts +0 -1
  564. package/types/tasty/providers/BreakpointsProvider.d.ts +8 -0
  565. package/types/tasty/styles/fill.d.ts +1 -11
  566. package/types/tasty/styles/margin.d.ts +1 -3
  567. package/types/tasty/styles/padding.d.ts +1 -3
  568. package/types/tasty/styles/types.d.ts +3 -13
  569. package/types/tasty/tasty.d.ts +840 -891
  570. package/types/tasty/utils/getModCombinations.d.ts +9 -0
  571. package/types/tasty/utils/renderStyles.d.ts +41 -0
  572. package/types/tasty/utils/responsive.d.ts +8 -0
  573. package/types/tasty/utils/styles.d.ts +6 -50
  574. package/types/tokens.d.ts +221 -0
  575. package/es/tasty/chunks/cacheKey.js +0 -98
  576. package/es/tasty/chunks/definitions.js +0 -280
  577. package/es/tasty/chunks/index.js +0 -12
  578. package/es/tasty/chunks/renderChunk.js +0 -97
  579. package/es/tasty/config.js +0 -244
  580. package/es/tasty/hooks/index.js +0 -12
  581. package/es/tasty/hooks/useGlobalStyles.js +0 -67
  582. package/es/tasty/hooks/useRawCSS.js +0 -40
  583. package/es/tasty/hooks/useStyles.js +0 -146
  584. package/es/tasty/pipeline/conditions.js +0 -469
  585. package/es/tasty/pipeline/exclusive.js +0 -193
  586. package/es/tasty/pipeline/index.js +0 -515
  587. package/es/tasty/pipeline/materialize.js +0 -1001
  588. package/es/tasty/pipeline/parseStateKey.js +0 -565
  589. package/es/tasty/pipeline/simplify.js +0 -786
  590. package/es/tasty/plugins/index.js +0 -26
  591. package/es/tasty/plugins/okhsl-plugin.js +0 -400
  592. package/es/tasty/plugins/types.js +0 -10
  593. package/es/tasty/states/index.js +0 -515
  594. package/es/tasty/static/index.js +0 -47
  595. package/es/tasty/static/tastyStatic.js +0 -55
  596. package/es/tasty/static/types.js +0 -34
  597. package/es/tasty/utils/typography.js +0 -67
  598. package/es/tasty/zero/babel.js +0 -401
  599. package/es/tasty/zero/css-writer.js +0 -94
  600. package/es/tasty/zero/extractor.js +0 -75
  601. package/es/tasty/zero/index.js +0 -28
  602. package/es/tasty/zero/next.js +0 -102
  603. package/es/tokens/base.js +0 -64
  604. package/es/tokens/colors.js +0 -68
  605. package/es/tokens/index.js +0 -63
  606. package/es/tokens/layout.js +0 -26
  607. package/es/tokens/shadows.js +0 -27
  608. package/es/tokens/sizes.js +0 -44
  609. package/es/tokens/spacing.js +0 -22
  610. package/es/tokens/typography.js +0 -237
  611. package/types/tasty/chunks/cacheKey.d.ts +0 -26
  612. package/types/tasty/chunks/definitions.d.ts +0 -75
  613. package/types/tasty/chunks/index.d.ts +0 -4
  614. package/types/tasty/chunks/renderChunk.d.ts +0 -25
  615. package/types/tasty/config.d.ts +0 -145
  616. package/types/tasty/hooks/index.d.ts +0 -4
  617. package/types/tasty/hooks/useGlobalStyles.d.ts +0 -22
  618. package/types/tasty/hooks/useRawCSS.d.ts +0 -50
  619. package/types/tasty/hooks/useStyles.d.ts +0 -38
  620. package/types/tasty/pipeline/conditions.d.ts +0 -248
  621. package/types/tasty/pipeline/exclusive.d.ts +0 -78
  622. package/types/tasty/pipeline/index.d.ts +0 -67
  623. package/types/tasty/pipeline/materialize.d.ts +0 -115
  624. package/types/tasty/pipeline/parseStateKey.d.ts +0 -20
  625. package/types/tasty/pipeline/simplify.d.ts +0 -28
  626. package/types/tasty/plugins/index.d.ts +0 -17
  627. package/types/tasty/plugins/okhsl-plugin.d.ts +0 -45
  628. package/types/tasty/plugins/types.d.ts +0 -34
  629. package/types/tasty/states/index.d.ts +0 -101
  630. package/types/tasty/static/index.d.ts +0 -39
  631. package/types/tasty/static/tastyStatic.d.ts +0 -41
  632. package/types/tasty/static/types.d.ts +0 -44
  633. package/types/tasty/utils/typography.d.ts +0 -32
  634. package/types/tasty/zero/babel.d.ts +0 -56
  635. package/types/tasty/zero/css-writer.d.ts +0 -41
  636. package/types/tasty/zero/extractor.d.ts +0 -19
  637. package/types/tasty/zero/index.d.ts +0 -18
  638. package/types/tasty/zero/next.d.ts +0 -57
  639. package/types/tokens/base.d.ts +0 -8
  640. package/types/tokens/colors.d.ts +0 -6
  641. package/types/tokens/index.d.ts +0 -41
  642. package/types/tokens/layout.d.ts +0 -7
  643. package/types/tokens/shadows.d.ts +0 -12
  644. package/types/tokens/sizes.d.ts +0 -27
  645. package/types/tokens/spacing.d.ts +0 -8
  646. package/types/tokens/typography.d.ts +0 -30
@@ -1,786 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-76be278
5
- * Released under the MIT license.
6
- */
7
-
8
- /**
9
- * Condition Simplification Engine
10
- *
11
- * Simplifies condition trees by applying boolean algebra rules,
12
- * detecting contradictions, merging ranges, and deduplicating terms.
13
- *
14
- * This is critical for:
15
- * 1. Detecting invalid combinations (A & !A → FALSE)
16
- * 2. Reducing CSS output size
17
- * 3. Producing cleaner selectors
18
- */
19
- import { Lru } from '../parser/lru';
20
- import { falseCondition, getConditionUniqueId, trueCondition, } from './conditions';
21
- // ============================================================================
22
- // Caching
23
- // ============================================================================
24
- const simplifyCache = new Lru(5000);
25
- // ============================================================================
26
- // Main Simplify Function
27
- // ============================================================================
28
- /**
29
- * Simplify a condition tree aggressively.
30
- *
31
- * This applies all possible simplification rules:
32
- * - Boolean algebra (identity, annihilator, idempotent, absorption)
33
- * - Contradiction detection (A & !A → FALSE)
34
- * - Tautology detection (A | !A → TRUE)
35
- * - Range intersection for numeric queries
36
- * - Attribute value conflict detection
37
- * - Deduplication and sorting
38
- */
39
- export function simplifyCondition(node) {
40
- // Check cache
41
- const key = getConditionUniqueId(node);
42
- const cached = simplifyCache.get(key);
43
- if (cached) {
44
- return cached;
45
- }
46
- const result = simplifyInner(node);
47
- // Cache result
48
- simplifyCache.set(key, result);
49
- return result;
50
- }
51
- /**
52
- * Clear the simplify cache (for testing)
53
- */
54
- export function clearSimplifyCache() {
55
- simplifyCache.clear();
56
- }
57
- // ============================================================================
58
- // Inner Simplification
59
- // ============================================================================
60
- function simplifyInner(node) {
61
- // Base cases
62
- if (node.kind === 'true' || node.kind === 'false') {
63
- return node;
64
- }
65
- // State conditions - return as-is (they're already leaf nodes)
66
- if (node.kind === 'state') {
67
- return node;
68
- }
69
- // Compound conditions - recursively simplify
70
- if (node.kind === 'compound') {
71
- // First, recursively simplify all children
72
- const simplifiedChildren = node.children.map((c) => simplifyInner(c));
73
- // Then apply compound-specific simplifications
74
- if (node.operator === 'AND') {
75
- return simplifyAnd(simplifiedChildren);
76
- }
77
- else {
78
- return simplifyOr(simplifiedChildren);
79
- }
80
- }
81
- return node;
82
- }
83
- // ============================================================================
84
- // AND Simplification
85
- // ============================================================================
86
- function simplifyAnd(children) {
87
- let terms = [];
88
- // Flatten nested ANDs and handle TRUE/FALSE
89
- for (const child of children) {
90
- if (child.kind === 'false') {
91
- // AND with FALSE → FALSE
92
- return falseCondition();
93
- }
94
- if (child.kind === 'true') {
95
- // AND with TRUE → skip (identity)
96
- continue;
97
- }
98
- if (child.kind === 'compound' && child.operator === 'AND') {
99
- // Flatten nested AND
100
- terms.push(...child.children);
101
- }
102
- else {
103
- terms.push(child);
104
- }
105
- }
106
- // Empty → TRUE
107
- if (terms.length === 0) {
108
- return trueCondition();
109
- }
110
- // Single term → return it
111
- if (terms.length === 1) {
112
- return terms[0];
113
- }
114
- // Check for contradictions
115
- if (hasContradiction(terms)) {
116
- return falseCondition();
117
- }
118
- // Check for range contradictions in media/container queries
119
- if (hasRangeContradiction(terms)) {
120
- return falseCondition();
121
- }
122
- // Check for attribute value conflicts
123
- if (hasAttributeConflict(terms)) {
124
- return falseCondition();
125
- }
126
- // Check for container style query conflicts
127
- if (hasContainerStyleConflict(terms)) {
128
- return falseCondition();
129
- }
130
- // Remove redundant negations implied by positive terms
131
- // e.g., style(--variant: danger) implies NOT style(--variant: success)
132
- // and style(--variant: danger) implies style(--variant) (existence)
133
- terms = removeImpliedNegations(terms);
134
- // Deduplicate (by uniqueId)
135
- terms = deduplicateTerms(terms);
136
- // Try to merge numeric ranges
137
- terms = mergeRanges(terms);
138
- // Sort for canonical form
139
- terms = sortTerms(terms);
140
- // Apply absorption: A & (A | B) → A
141
- terms = applyAbsorptionAnd(terms);
142
- if (terms.length === 0) {
143
- return trueCondition();
144
- }
145
- if (terms.length === 1) {
146
- return terms[0];
147
- }
148
- return {
149
- kind: 'compound',
150
- operator: 'AND',
151
- children: terms,
152
- };
153
- }
154
- // ============================================================================
155
- // OR Simplification
156
- // ============================================================================
157
- function simplifyOr(children) {
158
- let terms = [];
159
- // Flatten nested ORs and handle TRUE/FALSE
160
- for (const child of children) {
161
- if (child.kind === 'true') {
162
- // OR with TRUE → TRUE
163
- return trueCondition();
164
- }
165
- if (child.kind === 'false') {
166
- // OR with FALSE → skip (identity)
167
- continue;
168
- }
169
- if (child.kind === 'compound' && child.operator === 'OR') {
170
- // Flatten nested OR
171
- terms.push(...child.children);
172
- }
173
- else {
174
- terms.push(child);
175
- }
176
- }
177
- // Empty → FALSE
178
- if (terms.length === 0) {
179
- return falseCondition();
180
- }
181
- // Single term → return it
182
- if (terms.length === 1) {
183
- return terms[0];
184
- }
185
- // Check for tautologies (A | !A)
186
- if (hasTautology(terms)) {
187
- return trueCondition();
188
- }
189
- // Deduplicate
190
- terms = deduplicateTerms(terms);
191
- // Sort for canonical form
192
- terms = sortTerms(terms);
193
- // Apply absorption: A | (A & B) → A
194
- terms = applyAbsorptionOr(terms);
195
- if (terms.length === 0) {
196
- return falseCondition();
197
- }
198
- if (terms.length === 1) {
199
- return terms[0];
200
- }
201
- return {
202
- kind: 'compound',
203
- operator: 'OR',
204
- children: terms,
205
- };
206
- }
207
- // ============================================================================
208
- // Contradiction Detection
209
- // ============================================================================
210
- /**
211
- * Check if any term contradicts another (A & !A)
212
- */
213
- function hasContradiction(terms) {
214
- const uniqueIds = new Set();
215
- for (const term of terms) {
216
- if (term.kind !== 'state')
217
- continue;
218
- const id = term.uniqueId;
219
- // Check if negation exists
220
- const negatedId = term.negated ? id.slice(1) : `!${id}`;
221
- if (uniqueIds.has(negatedId)) {
222
- return true;
223
- }
224
- uniqueIds.add(id);
225
- }
226
- return false;
227
- }
228
- /**
229
- * Check for tautologies (A | !A)
230
- */
231
- function hasTautology(terms) {
232
- const uniqueIds = new Set();
233
- for (const term of terms) {
234
- if (term.kind !== 'state')
235
- continue;
236
- const id = term.uniqueId;
237
- const negatedId = term.negated ? id.slice(1) : `!${id}`;
238
- if (uniqueIds.has(negatedId)) {
239
- return true;
240
- }
241
- uniqueIds.add(id);
242
- }
243
- return false;
244
- }
245
- // ============================================================================
246
- // Range Contradiction Detection
247
- // ============================================================================
248
- /**
249
- * Check for range contradictions in media/container queries
250
- * e.g., @media(w < 400px) & @media(w > 800px) → FALSE
251
- */
252
- function hasRangeContradiction(terms) {
253
- // Group by dimension
254
- const mediaByDim = new Map();
255
- const containerByDim = new Map();
256
- for (const term of terms) {
257
- if (term.kind !== 'state')
258
- continue;
259
- if (term.type === 'media' &&
260
- term.subtype === 'dimension' &&
261
- !term.negated) {
262
- const key = term.dimension || 'width';
263
- if (!mediaByDim.has(key)) {
264
- mediaByDim.set(key, []);
265
- }
266
- mediaByDim.get(key).push(term);
267
- }
268
- if (term.type === 'container' &&
269
- term.subtype === 'dimension' &&
270
- !term.negated) {
271
- const key = `${term.containerName || '_'}:${term.dimension || 'width'}`;
272
- if (!containerByDim.has(key)) {
273
- containerByDim.set(key, []);
274
- }
275
- containerByDim.get(key).push(term);
276
- }
277
- }
278
- // Check each dimension group for impossible ranges
279
- for (const conditions of mediaByDim.values()) {
280
- if (rangesAreImpossible(conditions)) {
281
- return true;
282
- }
283
- }
284
- for (const conditions of containerByDim.values()) {
285
- if (rangesAreImpossible(conditions)) {
286
- return true;
287
- }
288
- }
289
- return false;
290
- }
291
- /**
292
- * Check if a set of range conditions are impossible to satisfy together
293
- */
294
- function rangesAreImpossible(conditions) {
295
- let lowerBound = null;
296
- let lowerInclusive = false;
297
- let upperBound = null;
298
- let upperInclusive = false;
299
- for (const cond of conditions) {
300
- if (cond.lowerBound?.valueNumeric != null) {
301
- const value = cond.lowerBound.valueNumeric;
302
- const inclusive = cond.lowerBound.inclusive;
303
- if (lowerBound === null || value > lowerBound) {
304
- lowerBound = value;
305
- lowerInclusive = inclusive;
306
- }
307
- else if (value === lowerBound && !inclusive) {
308
- lowerInclusive = false;
309
- }
310
- }
311
- if (cond.upperBound?.valueNumeric != null) {
312
- const value = cond.upperBound.valueNumeric;
313
- const inclusive = cond.upperBound.inclusive;
314
- if (upperBound === null || value < upperBound) {
315
- upperBound = value;
316
- upperInclusive = inclusive;
317
- }
318
- else if (value === upperBound && !inclusive) {
319
- upperInclusive = false;
320
- }
321
- }
322
- }
323
- // Check if ranges are impossible
324
- if (lowerBound !== null && upperBound !== null) {
325
- if (lowerBound > upperBound) {
326
- return true;
327
- }
328
- if (lowerBound === upperBound && (!lowerInclusive || !upperInclusive)) {
329
- return true;
330
- }
331
- }
332
- return false;
333
- }
334
- // ============================================================================
335
- // Attribute Conflict Detection
336
- // ============================================================================
337
- /**
338
- * Check for attribute value conflicts
339
- * e.g., [data-theme="dark"] & [data-theme="light"] → FALSE
340
- * e.g., [data-theme="dark"] & ![data-theme] → FALSE
341
- */
342
- function hasAttributeConflict(terms) {
343
- // Group modifiers by attribute
344
- const modifiersByAttr = new Map();
345
- for (const term of terms) {
346
- if (term.kind !== 'state' || term.type !== 'modifier')
347
- continue;
348
- const attr = term.attribute;
349
- if (!modifiersByAttr.has(attr)) {
350
- modifiersByAttr.set(attr, { positive: [], negated: [] });
351
- }
352
- const group = modifiersByAttr.get(attr);
353
- if (term.negated) {
354
- group.negated.push(term);
355
- }
356
- else {
357
- group.positive.push(term);
358
- }
359
- }
360
- // Check each attribute for conflicts
361
- for (const [attr, group] of modifiersByAttr) {
362
- // Multiple different values for same attribute in positive → conflict
363
- const positiveValues = group.positive
364
- .filter((m) => m.value !== undefined)
365
- .map((m) => m.value);
366
- const uniquePositiveValues = new Set(positiveValues);
367
- if (uniquePositiveValues.size > 1) {
368
- return true;
369
- }
370
- // Positive value + negated boolean for same attribute → conflict
371
- // e.g., [data-theme="dark"] & ![data-theme]
372
- const hasPositiveValue = group.positive.some((m) => m.value !== undefined);
373
- const hasNegatedBoolean = group.negated.some((m) => m.value === undefined);
374
- if (hasPositiveValue && hasNegatedBoolean) {
375
- return true;
376
- }
377
- // Positive boolean + negated value (same value) → tautology not conflict
378
- // But positive value + negated same value → conflict
379
- for (const pos of group.positive) {
380
- if (pos.value !== undefined) {
381
- for (const neg of group.negated) {
382
- if (neg.value === pos.value) {
383
- return true; // [data-x="y"] & ![data-x="y"]
384
- }
385
- }
386
- }
387
- }
388
- }
389
- return false;
390
- }
391
- // ============================================================================
392
- // Container Style Query Conflict Detection
393
- // ============================================================================
394
- /**
395
- * Check for container style query conflicts
396
- * e.g., style(--variant: danger) & style(--variant: success) → FALSE
397
- * e.g., style(--variant: danger) & not style(--variant) → FALSE
398
- */
399
- function hasContainerStyleConflict(terms) {
400
- // Group container style queries by property (and container name)
401
- const styleByProp = new Map();
402
- for (const term of terms) {
403
- if (term.kind !== 'state' ||
404
- term.type !== 'container' ||
405
- term.subtype !== 'style')
406
- continue;
407
- const key = `${term.containerName || '_'}:${term.property}`;
408
- if (!styleByProp.has(key)) {
409
- styleByProp.set(key, { positive: [], negated: [] });
410
- }
411
- const group = styleByProp.get(key);
412
- if (term.negated) {
413
- group.negated.push(term);
414
- }
415
- else {
416
- group.positive.push(term);
417
- }
418
- }
419
- // Check each property for conflicts
420
- for (const [, group] of styleByProp) {
421
- // Multiple different values for same property in positive → conflict
422
- // e.g., style(--variant: danger) & style(--variant: success)
423
- const positiveValues = group.positive
424
- .filter((c) => c.propertyValue !== undefined)
425
- .map((c) => c.propertyValue);
426
- const uniquePositiveValues = new Set(positiveValues);
427
- if (uniquePositiveValues.size > 1) {
428
- return true;
429
- }
430
- // Positive value + negated existence → conflict
431
- // e.g., style(--variant: danger) & not style(--variant)
432
- const hasPositiveValue = group.positive.some((c) => c.propertyValue !== undefined);
433
- const hasNegatedExistence = group.negated.some((c) => c.propertyValue === undefined);
434
- if (hasPositiveValue && hasNegatedExistence) {
435
- return true;
436
- }
437
- // Positive value + negated same value → conflict
438
- // e.g., style(--variant: danger) & not style(--variant: danger)
439
- for (const pos of group.positive) {
440
- if (pos.propertyValue !== undefined) {
441
- for (const neg of group.negated) {
442
- if (neg.propertyValue === pos.propertyValue) {
443
- return true;
444
- }
445
- }
446
- }
447
- }
448
- }
449
- return false;
450
- }
451
- // ============================================================================
452
- // Implied Negation Removal
453
- // ============================================================================
454
- /**
455
- * Remove negations that are implied by positive terms.
456
- *
457
- * Key optimizations:
458
- * 1. style(--variant: danger) implies NOT style(--variant: success)
459
- * → If we have style(--variant: danger) & not style(--variant: success),
460
- * the negation is redundant and can be removed.
461
- *
462
- * 2. [data-theme="dark"] implies NOT [data-theme="light"]
463
- * → Same logic for attribute selectors.
464
- *
465
- * This produces cleaner CSS:
466
- * Before: @container style(--variant: danger) and (not style(--variant: success))
467
- * After: @container style(--variant: danger)
468
- */
469
- function removeImpliedNegations(terms) {
470
- // Build sets of positive container style properties with specific values
471
- const positiveContainerStyles = new Map();
472
- // key: "containerName:property", value: propertyValue (or undefined for existence)
473
- // Build sets of positive modifier attributes with specific values
474
- const positiveModifiers = new Map();
475
- // key: "attribute", value: value (or undefined for boolean)
476
- for (const term of terms) {
477
- if (term.kind !== 'state' || term.negated)
478
- continue;
479
- if (term.type === 'container' && term.subtype === 'style') {
480
- const key = `${term.containerName || '_'}:${term.property}`;
481
- // Only track if we have a specific value (not just existence check)
482
- if (term.propertyValue !== undefined) {
483
- positiveContainerStyles.set(key, term.propertyValue);
484
- }
485
- }
486
- if (term.type === 'modifier' && term.value !== undefined) {
487
- positiveModifiers.set(term.attribute, term.value);
488
- }
489
- }
490
- // Filter out redundant negations
491
- return terms.filter((term) => {
492
- if (term.kind !== 'state' || !term.negated)
493
- return true;
494
- // Check container style negations
495
- if (term.type === 'container' && term.subtype === 'style') {
496
- const key = `${term.containerName || '_'}:${term.property}`;
497
- const positiveValue = positiveContainerStyles.get(key);
498
- if (positiveValue !== undefined) {
499
- // We have a positive style(--prop: X) for this property
500
- if (term.propertyValue === undefined) {
501
- // Negating existence: not style(--prop)
502
- // But we have style(--prop: X), which implies existence → contradiction
503
- // This should have been caught by hasContainerStyleConflict
504
- return true;
505
- }
506
- if (term.propertyValue !== positiveValue) {
507
- // Negating a different value: not style(--prop: Y)
508
- // We have style(--prop: X), which implies not style(--prop: Y)
509
- // → This negation is redundant!
510
- return false;
511
- }
512
- }
513
- }
514
- // Check modifier negations
515
- if (term.type === 'modifier') {
516
- const positiveValue = positiveModifiers.get(term.attribute);
517
- if (positiveValue !== undefined && term.value !== undefined) {
518
- // We have [attr="X"] and this is not [attr="Y"]
519
- if (term.value !== positiveValue) {
520
- // [attr="X"] implies not [attr="Y"] → redundant
521
- return false;
522
- }
523
- }
524
- }
525
- return true;
526
- });
527
- }
528
- // ============================================================================
529
- // Deduplication
530
- // ============================================================================
531
- function deduplicateTerms(terms) {
532
- const seen = new Set();
533
- const result = [];
534
- for (const term of terms) {
535
- const id = getConditionUniqueId(term);
536
- if (!seen.has(id)) {
537
- seen.add(id);
538
- result.push(term);
539
- }
540
- }
541
- return result;
542
- }
543
- // ============================================================================
544
- // Range Merging
545
- // ============================================================================
546
- /**
547
- * Merge compatible range conditions
548
- * e.g., @media(w >= 400px) & @media(w <= 800px) → @media(400px <= w <= 800px)
549
- */
550
- function mergeRanges(terms) {
551
- // Group media conditions by dimension
552
- const mediaByDim = new Map();
553
- const containerByDim = new Map();
554
- terms.forEach((term, index) => {
555
- if (term.kind !== 'state')
556
- return;
557
- if (term.type === 'media' &&
558
- term.subtype === 'dimension' &&
559
- !term.negated) {
560
- const key = term.dimension || 'width';
561
- if (!mediaByDim.has(key)) {
562
- mediaByDim.set(key, { conditions: [], indices: [] });
563
- }
564
- const group = mediaByDim.get(key);
565
- group.conditions.push(term);
566
- group.indices.push(index);
567
- }
568
- if (term.type === 'container' &&
569
- term.subtype === 'dimension' &&
570
- !term.negated) {
571
- const key = `${term.containerName || '_'}:${term.dimension || 'width'}`;
572
- if (!containerByDim.has(key)) {
573
- containerByDim.set(key, { conditions: [], indices: [] });
574
- }
575
- const group = containerByDim.get(key);
576
- group.conditions.push(term);
577
- group.indices.push(index);
578
- }
579
- });
580
- // Track indices to remove
581
- const indicesToRemove = new Set();
582
- const mergedTerms = [];
583
- // Merge media conditions
584
- for (const [dim, group] of mediaByDim) {
585
- if (group.conditions.length > 1) {
586
- const merged = mergeMediaRanges(group.conditions);
587
- if (merged) {
588
- group.indices.forEach((i) => indicesToRemove.add(i));
589
- mergedTerms.push(merged);
590
- }
591
- }
592
- }
593
- // Merge container conditions
594
- for (const [, group] of containerByDim) {
595
- if (group.conditions.length > 1) {
596
- const merged = mergeContainerRanges(group.conditions);
597
- if (merged) {
598
- group.indices.forEach((i) => indicesToRemove.add(i));
599
- mergedTerms.push(merged);
600
- }
601
- }
602
- }
603
- // Build result
604
- const result = [];
605
- terms.forEach((term, index) => {
606
- if (!indicesToRemove.has(index)) {
607
- result.push(term);
608
- }
609
- });
610
- result.push(...mergedTerms);
611
- return result;
612
- }
613
- function mergeMediaRanges(conditions) {
614
- if (conditions.length === 0)
615
- return null;
616
- let lowerBound;
617
- let upperBound;
618
- for (const cond of conditions) {
619
- if (cond.lowerBound) {
620
- if (!lowerBound ||
621
- (cond.lowerBound.valueNumeric ?? -Infinity) >
622
- (lowerBound.valueNumeric ?? -Infinity)) {
623
- lowerBound = cond.lowerBound;
624
- }
625
- }
626
- if (cond.upperBound) {
627
- if (!upperBound ||
628
- (cond.upperBound.valueNumeric ?? Infinity) <
629
- (upperBound.valueNumeric ?? Infinity)) {
630
- upperBound = cond.upperBound;
631
- }
632
- }
633
- }
634
- const base = conditions[0];
635
- // Build a merged condition
636
- const merged = {
637
- kind: 'state',
638
- type: 'media',
639
- subtype: 'dimension',
640
- negated: false,
641
- raw: buildMergedRaw(base.dimension || 'width', lowerBound, upperBound),
642
- uniqueId: '', // Will be recalculated
643
- dimension: base.dimension,
644
- lowerBound,
645
- upperBound,
646
- };
647
- // Recalculate uniqueId
648
- const parts = ['media', 'dim', merged.dimension];
649
- if (lowerBound) {
650
- parts.push(lowerBound.inclusive ? '>=' : '>');
651
- parts.push(lowerBound.value);
652
- }
653
- if (upperBound) {
654
- parts.push(upperBound.inclusive ? '<=' : '<');
655
- parts.push(upperBound.value);
656
- }
657
- merged.uniqueId = parts.join(':');
658
- return merged;
659
- }
660
- function mergeContainerRanges(conditions) {
661
- if (conditions.length === 0)
662
- return null;
663
- let lowerBound;
664
- let upperBound;
665
- for (const cond of conditions) {
666
- if (cond.lowerBound) {
667
- if (!lowerBound ||
668
- (cond.lowerBound.valueNumeric ?? -Infinity) >
669
- (lowerBound.valueNumeric ?? -Infinity)) {
670
- lowerBound = cond.lowerBound;
671
- }
672
- }
673
- if (cond.upperBound) {
674
- if (!upperBound ||
675
- (cond.upperBound.valueNumeric ?? Infinity) <
676
- (upperBound.valueNumeric ?? Infinity)) {
677
- upperBound = cond.upperBound;
678
- }
679
- }
680
- }
681
- const base = conditions[0];
682
- const merged = {
683
- kind: 'state',
684
- type: 'container',
685
- subtype: 'dimension',
686
- negated: false,
687
- raw: buildMergedRaw(base.dimension || 'width', lowerBound, upperBound),
688
- uniqueId: '', // Will be recalculated
689
- containerName: base.containerName,
690
- dimension: base.dimension,
691
- lowerBound,
692
- upperBound,
693
- };
694
- // Recalculate uniqueId
695
- const name = merged.containerName || '_';
696
- const parts = ['container', 'dim', name, merged.dimension];
697
- if (lowerBound) {
698
- parts.push(lowerBound.inclusive ? '>=' : '>');
699
- parts.push(lowerBound.value);
700
- }
701
- if (upperBound) {
702
- parts.push(upperBound.inclusive ? '<=' : '<');
703
- parts.push(upperBound.value);
704
- }
705
- merged.uniqueId = parts.join(':');
706
- return merged;
707
- }
708
- function buildMergedRaw(dimension, lowerBound, upperBound) {
709
- if (lowerBound && upperBound) {
710
- const lowerOp = lowerBound.inclusive ? '<=' : '<';
711
- const upperOp = upperBound.inclusive ? '<=' : '<';
712
- return `@media(${lowerBound.value} ${lowerOp} ${dimension} ${upperOp} ${upperBound.value})`;
713
- }
714
- else if (upperBound) {
715
- const op = upperBound.inclusive ? '<=' : '<';
716
- return `@media(${dimension} ${op} ${upperBound.value})`;
717
- }
718
- else if (lowerBound) {
719
- const op = lowerBound.inclusive ? '>=' : '>';
720
- return `@media(${dimension} ${op} ${lowerBound.value})`;
721
- }
722
- return '@media()';
723
- }
724
- // ============================================================================
725
- // Sorting
726
- // ============================================================================
727
- function sortTerms(terms) {
728
- return [...terms].sort((a, b) => {
729
- const idA = getConditionUniqueId(a);
730
- const idB = getConditionUniqueId(b);
731
- return idA.localeCompare(idB);
732
- });
733
- }
734
- // ============================================================================
735
- // Absorption
736
- // ============================================================================
737
- /**
738
- * Apply absorption law for AND: A & (A | B) → A
739
- */
740
- function applyAbsorptionAnd(terms) {
741
- // Collect all unique IDs of simple terms
742
- const simpleIds = new Set();
743
- for (const term of terms) {
744
- if (term.kind !== 'compound') {
745
- simpleIds.add(getConditionUniqueId(term));
746
- }
747
- }
748
- // Filter out OR terms that are absorbed
749
- return terms.filter((term) => {
750
- if (term.kind === 'compound' && term.operator === 'OR') {
751
- // If any child of this OR is in simpleIds, absorb the whole OR
752
- for (const child of term.children) {
753
- if (simpleIds.has(getConditionUniqueId(child))) {
754
- return false; // Absorb
755
- }
756
- }
757
- }
758
- return true;
759
- });
760
- }
761
- /**
762
- * Apply absorption law for OR: A | (A & B) → A
763
- */
764
- function applyAbsorptionOr(terms) {
765
- // Collect all unique IDs of simple terms
766
- const simpleIds = new Set();
767
- for (const term of terms) {
768
- if (term.kind !== 'compound') {
769
- simpleIds.add(getConditionUniqueId(term));
770
- }
771
- }
772
- // Filter out AND terms that are absorbed
773
- return terms.filter((term) => {
774
- if (term.kind === 'compound' && term.operator === 'AND') {
775
- // If any child of this AND is in simpleIds, absorb the whole AND
776
- for (const child of term.children) {
777
- if (simpleIds.has(getConditionUniqueId(child))) {
778
- return false; // Absorb
779
- }
780
- }
781
- }
782
- return true;
783
- });
784
- }
785
-
786
-