@cube-dev/ui-kit 0.0.0-canary-9ec284f → 0.0.0-canary-949985c

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 (589) 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 +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +1 -1
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Button/Button.js +1 -1
  24. package/es/components/actions/Button/index.js +1 -1
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/es/components/actions/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 +1 -1
  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 +1 -1
  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 -1
  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 -1
  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 -1
  84. package/es/components/content/Layout/LayoutPanel.js +1 -1
  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 +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 -1
  427. package/es/provider.js +1 -1
  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 +1 -1
  441. package/es/stories/lists/baseProps.js +1 -1
  442. package/es/tasty/chunks/cacheKey.js +1 -1
  443. package/es/tasty/chunks/definitions.js +1 -1
  444. package/es/tasty/chunks/index.js +1 -1
  445. package/es/tasty/chunks/renderChunk.js +1 -1
  446. package/es/tasty/config.js +1 -1
  447. package/es/tasty/debug.js +1 -1
  448. package/es/tasty/hooks/index.js +1 -1
  449. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  450. package/es/tasty/hooks/useRawCSS.js +1 -1
  451. package/es/tasty/hooks/useStyles.js +1 -1
  452. package/es/tasty/index.js +1 -1
  453. package/es/tasty/injector/index.js +1 -1
  454. package/es/tasty/injector/injector.js +1 -1
  455. package/es/tasty/injector/sheet-manager.js +1 -1
  456. package/es/tasty/injector/types.js +1 -1
  457. package/es/tasty/parser/classify.js +1 -1
  458. package/es/tasty/parser/const.js +1 -1
  459. package/es/tasty/parser/lru.js +1 -1
  460. package/es/tasty/parser/parser.js +1 -1
  461. package/es/tasty/parser/tokenizer.js +1 -1
  462. package/es/tasty/parser/types.js +1 -1
  463. package/es/tasty/pipeline/conditions.js +1 -68
  464. package/es/tasty/pipeline/exclusive.js +119 -1
  465. package/es/tasty/pipeline/index.js +35 -8
  466. package/es/tasty/pipeline/materialize.js +367 -144
  467. package/es/tasty/pipeline/parseStateKey.js +1 -1
  468. package/es/tasty/pipeline/simplify.js +1 -1
  469. package/es/tasty/playground/PlaygroundEditor.js +97 -0
  470. package/es/tasty/playground/PlaygroundLayout.js +14 -0
  471. package/es/tasty/playground/PlaygroundOutput.js +92 -0
  472. package/es/tasty/playground/PlaygroundPreview.js +109 -0
  473. package/es/tasty/playground/components/Button.js +45 -0
  474. package/es/tasty/playground/components/Card.js +20 -0
  475. package/es/tasty/playground/examples.js +89 -0
  476. package/es/tasty/plugins/index.js +1 -1
  477. package/es/tasty/plugins/okhsl-plugin.js +1 -1
  478. package/es/tasty/plugins/types.js +1 -1
  479. package/es/tasty/states/index.js +1 -1
  480. package/es/tasty/static/index.js +1 -1
  481. package/es/tasty/static/tastyStatic.js +1 -1
  482. package/es/tasty/static/types.js +1 -1
  483. package/es/tasty/styles/align.js +1 -1
  484. package/es/tasty/styles/border.js +1 -1
  485. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  486. package/es/tasty/styles/color.js +1 -1
  487. package/es/tasty/styles/createStyle.js +1 -1
  488. package/es/tasty/styles/dimension.js +1 -1
  489. package/es/tasty/styles/display.js +1 -1
  490. package/es/tasty/styles/fade.js +1 -1
  491. package/es/tasty/styles/fill.js +1 -1
  492. package/es/tasty/styles/flow.js +1 -1
  493. package/es/tasty/styles/font.js +1 -1
  494. package/es/tasty/styles/fontStyle.js +1 -1
  495. package/es/tasty/styles/gap.js +1 -1
  496. package/es/tasty/styles/groupRadius.js +1 -1
  497. package/es/tasty/styles/height.js +1 -1
  498. package/es/tasty/styles/index.js +1 -1
  499. package/es/tasty/styles/inset.js +1 -1
  500. package/es/tasty/styles/justify.js +1 -1
  501. package/es/tasty/styles/list.js +1 -1
  502. package/es/tasty/styles/margin.js +1 -1
  503. package/es/tasty/styles/outline.js +1 -1
  504. package/es/tasty/styles/padding.js +1 -1
  505. package/es/tasty/styles/place.js +1 -1
  506. package/es/tasty/styles/predefined.js +1 -1
  507. package/es/tasty/styles/preset.js +1 -1
  508. package/es/tasty/styles/radius.js +4 -11
  509. package/es/tasty/styles/reset.js +1 -1
  510. package/es/tasty/styles/scrollbar.js +1 -1
  511. package/es/tasty/styles/shadow.js +1 -1
  512. package/es/tasty/styles/styledScrollbar.js +1 -1
  513. package/es/tasty/styles/transition.js +1 -1
  514. package/es/tasty/styles/types.js +1 -1
  515. package/es/tasty/styles/width.js +1 -1
  516. package/es/tasty/tasty.js +1 -1
  517. package/es/tasty/types.js +1 -1
  518. package/es/tasty/utils/cache-wrapper.js +1 -1
  519. package/es/tasty/utils/case-converter.js +1 -1
  520. package/es/tasty/utils/colors.js +1 -1
  521. package/es/tasty/utils/dotize.js +1 -1
  522. package/es/tasty/utils/filterBaseProps.js +1 -1
  523. package/es/tasty/utils/getDisplayName.js +1 -1
  524. package/es/tasty/utils/isDevEnv.js +1 -1
  525. package/es/tasty/utils/mergeStyles.js +1 -1
  526. package/es/tasty/utils/modAttrs.js +1 -1
  527. package/es/tasty/utils/processTokens.js +1 -1
  528. package/es/tasty/utils/string.js +1 -1
  529. package/es/tasty/utils/styles.js +1 -1
  530. package/es/tasty/utils/typography.js +1 -1
  531. package/es/tasty/utils/warnings.js +1 -1
  532. package/es/tasty/zero/babel.js +1 -1
  533. package/es/tasty/zero/css-writer.js +1 -1
  534. package/es/tasty/zero/extractor.js +26 -12
  535. package/es/tasty/zero/index.js +1 -1
  536. package/es/tasty/zero/next.js +1 -1
  537. package/es/tokens/base.js +1 -1
  538. package/es/tokens/colors.js +1 -1
  539. package/es/tokens/index.js +1 -1
  540. package/es/tokens/layout.js +1 -1
  541. package/es/tokens/shadows.js +1 -1
  542. package/es/tokens/sizes.js +1 -1
  543. package/es/tokens/spacing.js +1 -1
  544. package/es/tokens/typography.js +1 -1
  545. package/es/utils/ResizeSensor.js +1 -1
  546. package/es/utils/index.js +1 -1
  547. package/es/utils/modules.js +1 -1
  548. package/es/utils/promise.js +1 -1
  549. package/es/utils/raf.js +1 -1
  550. package/es/utils/random.js +1 -1
  551. package/es/utils/range.js +1 -1
  552. package/es/utils/react/RenderCache.js +1 -1
  553. package/es/utils/react/Slots.js +1 -1
  554. package/es/utils/react/chain.js +1 -1
  555. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  556. package/es/utils/react/index.js +1 -1
  557. package/es/utils/react/interactions.js +1 -1
  558. package/es/utils/react/isTextOnly.js +1 -1
  559. package/es/utils/react/mapProps.js +1 -1
  560. package/es/utils/react/mergeProps.js +1 -1
  561. package/es/utils/react/nullableValue.js +1 -1
  562. package/es/utils/react/resolveIcon.js +1 -1
  563. package/es/utils/react/sharedStore.js +1 -1
  564. package/es/utils/react/useCombinedRefs.js +1 -1
  565. package/es/utils/react/useControlledFocusVisible.js +1 -1
  566. package/es/utils/react/useEventBus.js +1 -1
  567. package/es/utils/react/useId.js +1 -1
  568. package/es/utils/react/useIsDarwin.js +1 -1
  569. package/es/utils/react/useKeySymbols.js +1 -1
  570. package/es/utils/react/useLayoutEffect.js +1 -1
  571. package/es/utils/react/useLocalStorage.js +1 -1
  572. package/es/utils/react/useQaProps.js +1 -1
  573. package/es/utils/react/useViewportSize.js +1 -1
  574. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  575. package/es/utils/tree.js +1 -1
  576. package/es/utils/warnings.js +1 -1
  577. package/es/version.js +2 -2
  578. package/package.json +1 -1
  579. package/types/tasty/pipeline/conditions.d.ts +0 -24
  580. package/types/tasty/pipeline/exclusive.d.ts +25 -0
  581. package/types/tasty/pipeline/materialize.d.ts +49 -15
  582. package/types/tasty/playground/PlaygroundEditor.d.ts +6 -0
  583. package/types/tasty/playground/PlaygroundLayout.d.ts +8 -0
  584. package/types/tasty/playground/PlaygroundOutput.d.ts +5 -0
  585. package/types/tasty/playground/PlaygroundPreview.d.ts +6 -0
  586. package/types/tasty/playground/components/Button.d.ts +11 -0
  587. package/types/tasty/playground/components/Card.d.ts +7 -0
  588. package/types/tasty/playground/examples.d.ts +7 -0
  589. package/types/tasty/styles/radius.d.ts +2 -10
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9ec284f
4
+ * @cube-dev/ui-kit v0.0.0-canary-949985c
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -48,11 +48,13 @@ export function clearConditionCache() {
48
48
  */
49
49
  function emptyVariant() {
50
50
  return {
51
- modifierSelectors: [],
52
- ownSelectors: [],
51
+ modifierConditions: [],
52
+ pseudoConditions: [],
53
+ ownConditions: [],
53
54
  mediaConditions: [],
54
55
  containerConditions: [],
55
56
  supportsConditions: [],
57
+ rootConditions: [],
56
58
  startingStyle: false,
57
59
  };
58
60
  }
@@ -109,10 +111,10 @@ function stateToCSS(state) {
109
111
  const variant = emptyVariant();
110
112
  switch (state.type) {
111
113
  case 'modifier':
112
- variant.modifierSelectors.push(modifierToCSS(state));
114
+ variant.modifierConditions.push(modifierToParsed(state));
113
115
  break;
114
116
  case 'pseudo':
115
- variant.modifierSelectors.push(pseudoToCSS(state));
117
+ variant.pseudoConditions.push(pseudoToParsed(state));
116
118
  break;
117
119
  case 'container':
118
120
  variant.containerConditions.push(containerToParsed(state));
@@ -121,10 +123,10 @@ function stateToCSS(state) {
121
123
  variant.supportsConditions.push(supportsToParsed(state));
122
124
  break;
123
125
  case 'root':
124
- variant.rootPrefix = rootToCSS(state);
126
+ variant.rootConditions.push(rootToParsed(state));
125
127
  break;
126
128
  case 'own':
127
- variant.ownSelectors.push(...ownToCSS(state));
129
+ variant.ownConditions.push(...ownToParsed(state));
128
130
  break;
129
131
  case 'starting':
130
132
  variant.startingStyle = !state.negated;
@@ -138,37 +140,57 @@ function stateToCSS(state) {
138
140
  }
139
141
  }
140
142
  /**
141
- * Convert modifier condition to CSS selector
143
+ * Convert modifier condition to parsed structure
142
144
  */
143
- function modifierToCSS(state) {
145
+ function modifierToParsed(state) {
146
+ return {
147
+ attribute: state.attribute,
148
+ value: state.value,
149
+ operator: state.operator,
150
+ negated: state.negated ?? false,
151
+ };
152
+ }
153
+ /**
154
+ * Convert parsed modifier to CSS selector string (for final output)
155
+ */
156
+ export function modifierToCSS(mod) {
144
157
  let selector;
145
- if (state.value !== undefined) {
158
+ if (mod.value !== undefined) {
146
159
  // Value attribute: [data-attr="value"]
147
- const op = state.operator || '=';
148
- selector = `[${state.attribute}${op}"${state.value}"]`;
160
+ const op = mod.operator || '=';
161
+ selector = `[${mod.attribute}${op}"${mod.value}"]`;
149
162
  }
150
163
  else {
151
164
  // Boolean attribute: [data-attr]
152
- selector = `[${state.attribute}]`;
165
+ selector = `[${mod.attribute}]`;
153
166
  }
154
- if (state.negated) {
167
+ if (mod.negated) {
155
168
  return `:not(${selector})`;
156
169
  }
157
170
  return selector;
158
171
  }
159
172
  /**
160
- * Convert pseudo condition to CSS selector
173
+ * Convert pseudo condition to parsed structure
161
174
  */
162
- function pseudoToCSS(state) {
163
- if (state.negated) {
175
+ function pseudoToParsed(state) {
176
+ return {
177
+ pseudo: state.pseudo,
178
+ negated: state.negated ?? false,
179
+ };
180
+ }
181
+ /**
182
+ * Convert parsed pseudo to CSS selector string (for final output)
183
+ */
184
+ export function pseudoToCSS(pseudo) {
185
+ if (pseudo.negated) {
164
186
  // Wrap in :not() if not already
165
- if (state.pseudo.startsWith(':not(')) {
187
+ if (pseudo.pseudo.startsWith(':not(')) {
166
188
  // Double negation - remove :not()
167
- return state.pseudo.slice(5, -1);
189
+ return pseudo.pseudo.slice(5, -1);
168
190
  }
169
- return `:not(${state.pseudo})`;
191
+ return `:not(${pseudo.pseudo})`;
170
192
  }
171
- return state.pseudo;
193
+ return pseudo.pseudo;
172
194
  }
173
195
  /**
174
196
  * Convert media condition to parsed structure(s)
@@ -306,49 +328,208 @@ function supportsToParsed(state) {
306
328
  };
307
329
  }
308
330
  /**
309
- * Convert root condition to CSS selector prefix
331
+ * Convert root condition to parsed structure
332
+ */
333
+ function rootToParsed(state) {
334
+ return {
335
+ selector: state.selector,
336
+ negated: state.negated ?? false,
337
+ };
338
+ }
339
+ /**
340
+ * Convert parsed root conditions to CSS selector prefix (for final output)
310
341
  */
311
- function rootToCSS(state) {
312
- if (state.negated) {
313
- return `:root:not(${state.selector})`;
342
+ export function rootConditionsToCSS(roots) {
343
+ if (roots.length === 0)
344
+ return undefined;
345
+ // Combine all root conditions into a single :root prefix
346
+ // e.g., :root[data-theme="dark"]:not([data-mode="light"])
347
+ let prefix = ':root';
348
+ for (const root of roots) {
349
+ if (root.negated) {
350
+ prefix += `:not(${root.selector})`;
351
+ }
352
+ else {
353
+ prefix += root.selector;
354
+ }
314
355
  }
315
- return `:root${state.selector}`;
356
+ return prefix;
316
357
  }
317
358
  /**
318
- * Convert own condition to CSS selectors for sub-element
359
+ * Convert own condition to parsed structures for sub-element
319
360
  */
320
- function ownToCSS(state) {
361
+ function ownToParsed(state) {
321
362
  const innerCSS = conditionToCSS(state.innerCondition);
322
363
  if (innerCSS.isImpossible || innerCSS.variants.length === 0) {
323
364
  return [];
324
365
  }
325
- // Collect all modifier selectors from all variants
326
- // (For @own, we typically expect simple conditions, so usually just one variant)
327
- const allSelectors = [];
366
+ // Collect all modifier/pseudo conditions from all variants
367
+ const allConditions = [];
328
368
  for (const variant of innerCSS.variants) {
329
- allSelectors.push(...variant.modifierSelectors);
330
- }
331
- if (state.negated) {
332
- // Negate all selectors
333
- return allSelectors.map((s) => {
334
- if (s.startsWith(':not(')) {
335
- // Double negation - remove :not()
336
- return s.slice(5, -1);
337
- }
338
- return `:not(${s})`;
339
- });
369
+ for (const mod of variant.modifierConditions) {
370
+ // Apply outer negation
371
+ allConditions.push({
372
+ ...mod,
373
+ negated: state.negated ? !mod.negated : mod.negated,
374
+ });
375
+ }
376
+ for (const pseudo of variant.pseudoConditions) {
377
+ // Apply outer negation
378
+ allConditions.push({
379
+ ...pseudo,
380
+ negated: state.negated ? !pseudo.negated : pseudo.negated,
381
+ });
382
+ }
383
+ }
384
+ return allConditions;
385
+ }
386
+ /**
387
+ * Get unique key for a modifier condition
388
+ */
389
+ function getModifierKey(mod) {
390
+ const base = mod.value
391
+ ? `${mod.attribute}${mod.operator || '='}${mod.value}`
392
+ : mod.attribute;
393
+ return mod.negated ? `!${base}` : base;
394
+ }
395
+ /**
396
+ * Get unique key for a pseudo condition
397
+ */
398
+ function getPseudoKey(pseudo) {
399
+ return pseudo.negated ? `!${pseudo.pseudo}` : pseudo.pseudo;
400
+ }
401
+ /**
402
+ * Get unique key for a root condition
403
+ */
404
+ function getRootKey(root) {
405
+ return root.negated ? `!${root.selector}` : root.selector;
406
+ }
407
+ /**
408
+ * Deduplicate modifier conditions
409
+ */
410
+ function dedupeModifierConditions(conditions) {
411
+ const seen = new Set();
412
+ const result = [];
413
+ for (const c of conditions) {
414
+ const key = getModifierKey(c);
415
+ if (!seen.has(key)) {
416
+ seen.add(key);
417
+ result.push(c);
418
+ }
419
+ }
420
+ return result;
421
+ }
422
+ /**
423
+ * Deduplicate pseudo conditions
424
+ */
425
+ function dedupePseudoConditions(conditions) {
426
+ const seen = new Set();
427
+ const result = [];
428
+ for (const c of conditions) {
429
+ const key = getPseudoKey(c);
430
+ if (!seen.has(key)) {
431
+ seen.add(key);
432
+ result.push(c);
433
+ }
434
+ }
435
+ return result;
436
+ }
437
+ /**
438
+ * Deduplicate root conditions
439
+ */
440
+ function dedupeRootConditions(conditions) {
441
+ const seen = new Set();
442
+ const result = [];
443
+ for (const c of conditions) {
444
+ const key = getRootKey(c);
445
+ if (!seen.has(key)) {
446
+ seen.add(key);
447
+ result.push(c);
448
+ }
449
+ }
450
+ return result;
451
+ }
452
+ /**
453
+ * Deduplicate own conditions (modifiers or pseudos)
454
+ */
455
+ function dedupeOwnConditions(conditions) {
456
+ const seen = new Set();
457
+ const result = [];
458
+ for (const c of conditions) {
459
+ const key = 'attribute' in c
460
+ ? `mod:${getModifierKey(c)}`
461
+ : `pseudo:${getPseudoKey(c)}`;
462
+ if (!seen.has(key)) {
463
+ seen.add(key);
464
+ result.push(c);
465
+ }
340
466
  }
341
- return allSelectors;
467
+ return result;
342
468
  }
343
469
  /**
344
- * Deduplicate an array while preserving order
470
+ * Check for modifier contradiction: same attribute with opposite negation
345
471
  */
346
- function dedupeArray(arr) {
347
- return [...new Set(arr)];
472
+ function hasModifierContradiction(conditions) {
473
+ const byKey = new Map(); // base key -> isPositive
474
+ for (const mod of conditions) {
475
+ const baseKey = mod.value
476
+ ? `${mod.attribute}${mod.operator || '='}${mod.value}`
477
+ : mod.attribute;
478
+ const existing = byKey.get(baseKey);
479
+ if (existing !== undefined && existing !== !mod.negated) {
480
+ return true; // Same attribute with opposite negation
481
+ }
482
+ byKey.set(baseKey, !mod.negated);
483
+ }
484
+ return false;
485
+ }
486
+ /**
487
+ * Check for pseudo contradiction: same pseudo with opposite negation
488
+ */
489
+ function hasPseudoContradiction(conditions) {
490
+ const byKey = new Map(); // pseudo -> isPositive
491
+ for (const pseudo of conditions) {
492
+ const existing = byKey.get(pseudo.pseudo);
493
+ if (existing !== undefined && existing !== !pseudo.negated) {
494
+ return true; // Same pseudo with opposite negation
495
+ }
496
+ byKey.set(pseudo.pseudo, !pseudo.negated);
497
+ }
498
+ return false;
499
+ }
500
+ /**
501
+ * Check for root condition contradiction: same selector with opposite negation
502
+ */
503
+ function hasRootContradiction(conditions) {
504
+ const byKey = new Map(); // selector -> isPositive
505
+ for (const root of conditions) {
506
+ const existing = byKey.get(root.selector);
507
+ if (existing !== undefined && existing !== !root.negated) {
508
+ return true; // Same selector with opposite negation
509
+ }
510
+ byKey.set(root.selector, !root.negated);
511
+ }
512
+ return false;
513
+ }
514
+ /**
515
+ * Check for own condition contradiction
516
+ */
517
+ function hasOwnConditionContradiction(conditions) {
518
+ const modifiers = [];
519
+ const pseudos = [];
520
+ for (const c of conditions) {
521
+ if ('attribute' in c) {
522
+ modifiers.push(c);
523
+ }
524
+ else {
525
+ pseudos.push(c);
526
+ }
527
+ }
528
+ return hasModifierContradiction(modifiers) || hasPseudoContradiction(pseudos);
348
529
  }
349
530
  /**
350
531
  * Merge two selector variants (AND operation)
351
- * Deduplicates selectors to avoid `.foo:not([x]):not([x])` repetition
532
+ * Deduplicates conditions and checks for contradictions
352
533
  */
353
534
  function mergeVariants(a, b) {
354
535
  // Merge media conditions and check for contradictions
@@ -359,19 +540,38 @@ function mergeVariants(a, b) {
359
540
  if (hasMediaContradiction(mergedMedia)) {
360
541
  return null; // Impossible variant
361
542
  }
362
- // Combine root prefixes and check for contradictions
363
- const combinedRoot = combineRootPrefixes(a.rootPrefix, b.rootPrefix);
364
- if (combinedRoot && hasRootPrefixContradiction(combinedRoot)) {
543
+ // Merge root conditions and check for contradictions
544
+ const mergedRoots = dedupeRootConditions([
545
+ ...a.rootConditions,
546
+ ...b.rootConditions,
547
+ ]);
548
+ if (hasRootContradiction(mergedRoots)) {
365
549
  return null; // Impossible variant
366
550
  }
367
- // Merge modifier selectors and check for contradictions
368
- const mergedModifiers = dedupeArray([
369
- ...a.modifierSelectors,
370
- ...b.modifierSelectors,
551
+ // Merge modifier conditions and check for contradictions
552
+ const mergedModifiers = dedupeModifierConditions([
553
+ ...a.modifierConditions,
554
+ ...b.modifierConditions,
371
555
  ]);
372
556
  if (hasModifierContradiction(mergedModifiers)) {
373
557
  return null; // Impossible variant
374
558
  }
559
+ // Merge pseudo conditions and check for contradictions
560
+ const mergedPseudos = dedupePseudoConditions([
561
+ ...a.pseudoConditions,
562
+ ...b.pseudoConditions,
563
+ ]);
564
+ if (hasPseudoContradiction(mergedPseudos)) {
565
+ return null; // Impossible variant
566
+ }
567
+ // Merge own conditions and check for contradictions
568
+ const mergedOwn = dedupeOwnConditions([
569
+ ...a.ownConditions,
570
+ ...b.ownConditions,
571
+ ]);
572
+ if (hasOwnConditionContradiction(mergedOwn)) {
573
+ return null; // Impossible variant
574
+ }
375
575
  // Merge container conditions and check for contradictions
376
576
  const mergedContainers = dedupeContainerConditions([
377
577
  ...a.containerConditions,
@@ -389,12 +589,13 @@ function mergeVariants(a, b) {
389
589
  return null; // Impossible variant
390
590
  }
391
591
  return {
392
- modifierSelectors: mergedModifiers,
393
- ownSelectors: dedupeArray([...a.ownSelectors, ...b.ownSelectors]),
592
+ modifierConditions: mergedModifiers,
593
+ pseudoConditions: mergedPseudos,
594
+ ownConditions: mergedOwn,
394
595
  mediaConditions: mergedMedia,
395
596
  containerConditions: mergedContainers,
396
597
  supportsConditions: mergedSupports,
397
- rootPrefix: combinedRoot,
598
+ rootConditions: mergedRoots,
398
599
  startingStyle: a.startingStyle || b.startingStyle,
399
600
  };
400
601
  }
@@ -533,48 +734,6 @@ function hasMediaContradiction(conditions) {
533
734
  }
534
735
  return false;
535
736
  }
536
- /**
537
- * Check if a root prefix contains contradictions
538
- * e.g., ":root:not([data-x="y"])[data-x="y"]" is a contradiction
539
- */
540
- function hasRootPrefixContradiction(rootPrefix) {
541
- return hasSelectorStringContradiction(rootPrefix);
542
- }
543
- /**
544
- * Check if modifier selectors contain contradictions
545
- * e.g., "[data-selected]" and ":not([data-selected])" together
546
- */
547
- function hasModifierContradiction(modifiers) {
548
- const combined = modifiers.join('');
549
- return hasSelectorStringContradiction(combined);
550
- }
551
- /**
552
- * Check if a selector string contains contradictions
553
- * e.g., "[data-x]:not([data-x])" or "[data-x="y"]:not([data-x="y"])"
554
- */
555
- function hasSelectorStringContradiction(selector) {
556
- const positiveAttrs = [];
557
- const negativeAttrs = [];
558
- // Match :not([attr]) or :not([attr="value"])
559
- const notPattern = /:not\(\[([^\]]+)\]\)/g;
560
- let match;
561
- while ((match = notPattern.exec(selector)) !== null) {
562
- negativeAttrs.push(match[1]);
563
- }
564
- // Match [attr] or [attr="value"] (not inside :not())
565
- // The lookbehind (?<!...) ensures we don't match attributes inside :not()
566
- const attrPattern = /(?<!:not\()\[([^\]]+)\]/g;
567
- while ((match = attrPattern.exec(selector)) !== null) {
568
- positiveAttrs.push(match[1]);
569
- }
570
- // Check for contradictions
571
- for (const neg of negativeAttrs) {
572
- if (positiveAttrs.includes(neg)) {
573
- return true;
574
- }
575
- }
576
- return false;
577
- }
578
737
  /**
579
738
  * Check if container conditions contain contradictions in style queries
580
739
  * e.g., style(--variant: danger) and style(--variant: success) together
@@ -639,21 +798,18 @@ function hasContainerStyleContradiction(conditions) {
639
798
  }
640
799
  return false;
641
800
  }
642
- /**
643
- * Combine two root prefixes
644
- */
645
- function combineRootPrefixes(a, b) {
646
- if (!a)
647
- return b;
648
- if (!b)
649
- return a;
650
- // Combine: :root[x] + :root[y] → :root[x][y]
651
- return `${a}${b.replace(':root', '')}`;
652
- }
653
801
  /**
654
802
  * Get a unique key for a variant (for deduplication)
655
803
  */
656
804
  function getVariantKey(v) {
805
+ const modifierKey = v.modifierConditions.map(getModifierKey).sort().join('|');
806
+ const pseudoKey = v.pseudoConditions.map(getPseudoKey).sort().join('|');
807
+ const ownKey = v.ownConditions
808
+ .map((c) => 'attribute' in c
809
+ ? `mod:${getModifierKey(c)}`
810
+ : `pseudo:${getPseudoKey(c)}`)
811
+ .sort()
812
+ .join('|');
657
813
  const containerKey = v.containerConditions
658
814
  .map((c) => `${c.name ?? ''}:${c.negated ? '!' : ''}${c.condition}`)
659
815
  .sort()
@@ -666,13 +822,15 @@ function getVariantKey(v) {
666
822
  .map((c) => `${c.subtype}:${c.negated ? '!' : ''}${c.condition}`)
667
823
  .sort()
668
824
  .join('|');
825
+ const rootKey = v.rootConditions.map(getRootKey).sort().join('|');
669
826
  return [
670
- v.modifierSelectors.slice().sort().join('|'),
671
- v.ownSelectors.slice().sort().join('|'),
827
+ modifierKey,
828
+ pseudoKey,
829
+ ownKey,
672
830
  mediaKey,
673
831
  containerKey,
674
832
  supportsKey,
675
- v.rootPrefix || '',
833
+ rootKey,
676
834
  v.startingStyle ? '1' : '0',
677
835
  ].join('###');
678
836
  }
@@ -688,11 +846,12 @@ function getVariantKey(v) {
688
846
  * A is a superset of B, so A is redundant when B exists.
689
847
  */
690
848
  function isVariantSuperset(a, b) {
691
- // Must have same context (root prefix, at-rules, etc.)
692
- if (a.rootPrefix !== b.rootPrefix)
693
- return false;
849
+ // Must have same context
694
850
  if (a.startingStyle !== b.startingStyle)
695
851
  return false;
852
+ // Check if a.rootConditions is superset of b.rootConditions
853
+ if (!isRootConditionsSuperset(a.rootConditions, b.rootConditions))
854
+ return false;
696
855
  // Check if a.mediaConditions is superset of b.mediaConditions
697
856
  if (!isMediaConditionsSuperset(a.mediaConditions, b.mediaConditions))
698
857
  return false;
@@ -702,24 +861,31 @@ function isVariantSuperset(a, b) {
702
861
  // Check if a.supportsConditions is superset of b.supportsConditions
703
862
  if (!isSupportsConditionsSuperset(a.supportsConditions, b.supportsConditions))
704
863
  return false;
705
- // Check if a.modifierSelectors is superset of b.modifierSelectors
706
- if (!isArraySuperset(a.modifierSelectors, b.modifierSelectors))
864
+ // Check if a.modifierConditions is superset of b.modifierConditions
865
+ if (!isModifierConditionsSuperset(a.modifierConditions, b.modifierConditions))
707
866
  return false;
708
- // Check if a.ownSelectors is superset of b.ownSelectors
709
- if (!isArraySuperset(a.ownSelectors, b.ownSelectors))
867
+ // Check if a.pseudoConditions is superset of b.pseudoConditions
868
+ if (!isPseudoConditionsSuperset(a.pseudoConditions, b.pseudoConditions))
869
+ return false;
870
+ // Check if a.ownConditions is superset of b.ownConditions
871
+ if (!isOwnConditionsSuperset(a.ownConditions, b.ownConditions))
710
872
  return false;
711
873
  // A is a superset if it has all of B's items (possibly more)
712
874
  // and at least one category has strictly more items
713
875
  const aTotal = a.mediaConditions.length +
714
876
  a.containerConditions.length +
715
877
  a.supportsConditions.length +
716
- a.modifierSelectors.length +
717
- a.ownSelectors.length;
878
+ a.modifierConditions.length +
879
+ a.pseudoConditions.length +
880
+ a.rootConditions.length +
881
+ a.ownConditions.length;
718
882
  const bTotal = b.mediaConditions.length +
719
883
  b.containerConditions.length +
720
884
  b.supportsConditions.length +
721
- b.modifierSelectors.length +
722
- b.ownSelectors.length;
885
+ b.modifierConditions.length +
886
+ b.pseudoConditions.length +
887
+ b.rootConditions.length +
888
+ b.ownConditions.length;
723
889
  return aTotal > bTotal;
724
890
  }
725
891
  /**
@@ -759,12 +925,50 @@ function isSupportsConditionsSuperset(a, b) {
759
925
  return true;
760
926
  }
761
927
  /**
762
- * Check if array A contains all elements of array B (superset)
928
+ * Check if modifier conditions A is a superset of B
929
+ */
930
+ function isModifierConditionsSuperset(a, b) {
931
+ const aKeys = new Set(a.map(getModifierKey));
932
+ for (const c of b) {
933
+ if (!aKeys.has(getModifierKey(c)))
934
+ return false;
935
+ }
936
+ return true;
937
+ }
938
+ /**
939
+ * Check if pseudo conditions A is a superset of B
763
940
  */
764
- function isArraySuperset(a, b) {
765
- const setA = new Set(a);
766
- for (const item of b) {
767
- if (!setA.has(item))
941
+ function isPseudoConditionsSuperset(a, b) {
942
+ const aKeys = new Set(a.map(getPseudoKey));
943
+ for (const c of b) {
944
+ if (!aKeys.has(getPseudoKey(c)))
945
+ return false;
946
+ }
947
+ return true;
948
+ }
949
+ /**
950
+ * Check if root conditions A is a superset of B
951
+ */
952
+ function isRootConditionsSuperset(a, b) {
953
+ const aKeys = new Set(a.map(getRootKey));
954
+ for (const c of b) {
955
+ if (!aKeys.has(getRootKey(c)))
956
+ return false;
957
+ }
958
+ return true;
959
+ }
960
+ /**
961
+ * Check if own conditions A is a superset of B
962
+ */
963
+ function isOwnConditionsSuperset(a, b) {
964
+ const aKeys = new Set(a.map((c) => 'attribute' in c
965
+ ? `mod:${getModifierKey(c)}`
966
+ : `pseudo:${getPseudoKey(c)}`));
967
+ for (const c of b) {
968
+ const key = 'attribute' in c
969
+ ? `mod:${getModifierKey(c)}`
970
+ : `pseudo:${getPseudoKey(c)}`;
971
+ if (!aKeys.has(key))
768
972
  return false;
769
973
  }
770
974
  return true;
@@ -788,18 +992,22 @@ function dedupeVariants(variants) {
788
992
  }
789
993
  }
790
994
  // Second pass: remove supersets (more restrictive variants)
791
- // Sort by total selector count (fewer selectors = less restrictive = keep)
995
+ // Sort by total condition count (fewer conditions = less restrictive = keep)
792
996
  result.sort((a, b) => {
793
- const aCount = a.modifierSelectors.length +
794
- a.ownSelectors.length +
997
+ const aCount = a.modifierConditions.length +
998
+ a.pseudoConditions.length +
999
+ a.ownConditions.length +
795
1000
  a.mediaConditions.length +
796
1001
  a.containerConditions.length +
797
- a.supportsConditions.length;
798
- const bCount = b.modifierSelectors.length +
799
- b.ownSelectors.length +
1002
+ a.supportsConditions.length +
1003
+ a.rootConditions.length;
1004
+ const bCount = b.modifierConditions.length +
1005
+ b.pseudoConditions.length +
1006
+ b.ownConditions.length +
800
1007
  b.mediaConditions.length +
801
1008
  b.containerConditions.length +
802
- b.supportsConditions.length;
1009
+ b.supportsConditions.length +
1010
+ b.rootConditions.length;
803
1011
  return aCount - bCount;
804
1012
  });
805
1013
  // Remove variants that are supersets of earlier (less restrictive) variants
@@ -907,18 +1115,32 @@ function getConditionKey(node) {
907
1115
  /**
908
1116
  * Build a complete CSS selector from a single variant
909
1117
  */
910
- export function buildCSSSelectorFromVariant(className, variant, selectorSuffix = '') {
1118
+ function buildCSSSelectorFromVariant(className, variant, selectorSuffix = '') {
911
1119
  // Start with base class (doubled for specificity)
912
1120
  let selector = `.${className}.${className}`;
913
1121
  // Add modifier selectors
914
- selector += variant.modifierSelectors.join('');
1122
+ for (const mod of variant.modifierConditions) {
1123
+ selector += modifierToCSS(mod);
1124
+ }
1125
+ // Add pseudo selectors
1126
+ for (const pseudo of variant.pseudoConditions) {
1127
+ selector += pseudoToCSS(pseudo);
1128
+ }
915
1129
  // Add selector suffix (e.g., ' [data-element="Label"]')
916
1130
  selector += selectorSuffix;
917
1131
  // Add own selectors (after sub-element)
918
- selector += variant.ownSelectors.join('');
1132
+ for (const own of variant.ownConditions) {
1133
+ if ('attribute' in own) {
1134
+ selector += modifierToCSS(own);
1135
+ }
1136
+ else {
1137
+ selector += pseudoToCSS(own);
1138
+ }
1139
+ }
919
1140
  // Add root prefix if present
920
- if (variant.rootPrefix) {
921
- selector = `${variant.rootPrefix} ${selector}`;
1141
+ const rootPrefix = rootConditionsToCSS(variant.rootConditions);
1142
+ if (rootPrefix) {
1143
+ selector = `${rootPrefix} ${selector}`;
922
1144
  }
923
1145
  return selector;
924
1146
  }
@@ -996,7 +1218,7 @@ function getAtRulesKey(variant) {
996
1218
  * Returns an array of CSSRules because OR conditions may require multiple rules
997
1219
  * (when different branches have different at-rules)
998
1220
  */
999
- export function materializeRule(condition, declarations, selectorSuffix, className) {
1221
+ function materializeRule(condition, declarations, selectorSuffix, className) {
1000
1222
  const components = conditionToCSS(condition);
1001
1223
  if (components.isImpossible || components.variants.length === 0) {
1002
1224
  return [];
@@ -1026,8 +1248,9 @@ export function materializeRule(condition, declarations, selectorSuffix, classNa
1026
1248
  if (atRules.length > 0) {
1027
1249
  rule.atRules = atRules;
1028
1250
  }
1029
- if (variants[0].rootPrefix) {
1030
- rule.rootPrefix = variants[0].rootPrefix;
1251
+ const rootPrefix = rootConditionsToCSS(variants[0].rootConditions);
1252
+ if (rootPrefix) {
1253
+ rule.rootPrefix = rootPrefix;
1031
1254
  }
1032
1255
  rules.push(rule);
1033
1256
  }