@cube-dev/ui-kit 0.0.0-canary-9b9355c → 0.0.0-canary-186a28f

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 (552) 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 +3 -1
  444. package/es/tasty/chunks/index.js +1 -1
  445. package/es/tasty/chunks/renderChunk.js +1 -1
  446. package/es/tasty/debug.js +1 -1
  447. package/es/tasty/hooks/index.js +1 -1
  448. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  449. package/es/tasty/hooks/useStyles.js +1 -1
  450. package/es/tasty/index.js +2 -2
  451. package/es/tasty/injector/index.js +1 -1
  452. package/es/tasty/injector/injector.js +1 -1
  453. package/es/tasty/injector/sheet-manager.js +1 -1
  454. package/es/tasty/injector/types.js +1 -1
  455. package/es/tasty/parser/classify.js +1 -1
  456. package/es/tasty/parser/const.js +1 -1
  457. package/es/tasty/parser/lru.js +1 -1
  458. package/es/tasty/parser/parser.js +1 -1
  459. package/es/tasty/parser/tokenizer.js +1 -1
  460. package/es/tasty/parser/types.js +1 -1
  461. package/es/tasty/pipeline/conditions.js +1 -1
  462. package/es/tasty/pipeline/exclusive.js +1 -1
  463. package/es/tasty/pipeline/index.js +1 -1
  464. package/es/tasty/pipeline/materialize.js +358 -61
  465. package/es/tasty/pipeline/parseStateKey.js +1 -1
  466. package/es/tasty/pipeline/simplify.js +1 -1
  467. package/es/tasty/states/index.js +1 -1
  468. package/es/tasty/styles/align.js +1 -1
  469. package/es/tasty/styles/border.js +1 -1
  470. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  471. package/es/tasty/styles/color.js +1 -1
  472. package/es/tasty/styles/createStyle.js +1 -1
  473. package/es/tasty/styles/dimension.js +1 -1
  474. package/es/tasty/styles/display.js +1 -1
  475. package/es/tasty/styles/fade.js +1 -1
  476. package/es/tasty/styles/fill.js +1 -1
  477. package/es/tasty/styles/flow.js +1 -1
  478. package/es/tasty/styles/font.js +1 -1
  479. package/es/tasty/styles/fontStyle.js +1 -1
  480. package/es/tasty/styles/gap.js +1 -1
  481. package/es/tasty/styles/groupRadius.js +1 -1
  482. package/es/tasty/styles/height.js +1 -1
  483. package/es/tasty/styles/index.js +1 -1
  484. package/es/tasty/styles/inset.js +1 -1
  485. package/es/tasty/styles/justify.js +1 -1
  486. package/es/tasty/styles/list.js +1 -1
  487. package/es/tasty/styles/margin.js +1 -1
  488. package/es/tasty/styles/outline.js +1 -1
  489. package/es/tasty/styles/padding.js +1 -1
  490. package/es/tasty/styles/place.js +1 -1
  491. package/es/tasty/styles/predefined.js +1 -1
  492. package/es/tasty/styles/preset.js +1 -1
  493. package/es/tasty/styles/radius.js +1 -1
  494. package/es/tasty/styles/reset.js +1 -1
  495. package/es/tasty/styles/scrollbar.js +1 -1
  496. package/es/tasty/styles/shadow.js +1 -1
  497. package/es/tasty/styles/styledScrollbar.js +1 -1
  498. package/es/tasty/styles/transition.js +1 -1
  499. package/es/tasty/styles/types.js +1 -1
  500. package/es/tasty/styles/width.js +1 -1
  501. package/es/tasty/tasty.js +1 -1
  502. package/es/tasty/types.js +1 -1
  503. package/es/tasty/utils/cache-wrapper.js +1 -1
  504. package/es/tasty/utils/case-converter.js +1 -1
  505. package/es/tasty/utils/colors.js +1 -1
  506. package/es/tasty/utils/dotize.js +1 -1
  507. package/es/tasty/utils/filterBaseProps.js +1 -1
  508. package/es/tasty/utils/getDisplayName.js +1 -1
  509. package/es/tasty/utils/isDevEnv.js +1 -1
  510. package/es/tasty/utils/mergeStyles.js +1 -1
  511. package/es/tasty/utils/modAttrs.js +1 -1
  512. package/es/tasty/utils/processTokens.js +1 -1
  513. package/es/tasty/utils/string.js +1 -1
  514. package/es/tasty/utils/styles.js +1 -1
  515. package/es/tasty/utils/warnings.js +1 -1
  516. package/es/tokens.js +1 -1
  517. package/es/utils/ResizeSensor.js +1 -1
  518. package/es/utils/index.js +1 -1
  519. package/es/utils/modules.js +1 -1
  520. package/es/utils/promise.js +1 -1
  521. package/es/utils/raf.js +1 -1
  522. package/es/utils/random.js +1 -1
  523. package/es/utils/range.js +1 -1
  524. package/es/utils/react/RenderCache.js +1 -1
  525. package/es/utils/react/Slots.js +1 -1
  526. package/es/utils/react/chain.js +1 -1
  527. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  528. package/es/utils/react/index.js +1 -1
  529. package/es/utils/react/interactions.js +1 -1
  530. package/es/utils/react/isTextOnly.js +1 -1
  531. package/es/utils/react/mapProps.js +1 -1
  532. package/es/utils/react/mergeProps.js +1 -1
  533. package/es/utils/react/nullableValue.js +1 -1
  534. package/es/utils/react/resolveIcon.js +1 -1
  535. package/es/utils/react/sharedStore.js +1 -1
  536. package/es/utils/react/useCombinedRefs.js +1 -1
  537. package/es/utils/react/useControlledFocusVisible.js +1 -1
  538. package/es/utils/react/useEventBus.js +1 -1
  539. package/es/utils/react/useId.js +1 -1
  540. package/es/utils/react/useIsDarwin.js +1 -1
  541. package/es/utils/react/useKeySymbols.js +1 -1
  542. package/es/utils/react/useLayoutEffect.js +1 -1
  543. package/es/utils/react/useLocalStorage.js +1 -1
  544. package/es/utils/react/useQaProps.js +1 -1
  545. package/es/utils/react/useViewportSize.js +1 -1
  546. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  547. package/es/utils/tree.js +1 -1
  548. package/es/utils/warnings.js +1 -1
  549. package/es/version.js +2 -2
  550. package/package.json +1 -1
  551. package/types/tasty/chunks/definitions.d.ts +1 -1
  552. package/types/tasty/index.d.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -93,34 +93,45 @@ function conditionToCSSInner(node) {
93
93
  * Convert a state condition to CSS
94
94
  */
95
95
  function stateToCSS(state) {
96
- const variant = emptyVariant();
97
96
  switch (state.type) {
98
- case 'modifier':
99
- variant.modifierSelectors.push(modifierToCSS(state));
100
- break;
101
- case 'pseudo':
102
- variant.modifierSelectors.push(pseudoToCSS(state));
103
- break;
104
- case 'media':
105
- variant.mediaRules.push(mediaToCSS(state));
106
- break;
107
- case 'container':
108
- variant.containerRules.push(containerToCSS(state));
109
- break;
110
- case 'root':
111
- variant.rootPrefix = rootToCSS(state);
112
- break;
113
- case 'own':
114
- variant.ownSelectors.push(...ownToCSS(state));
115
- break;
116
- case 'starting':
117
- variant.startingStyle = !state.negated;
118
- break;
97
+ case 'media': {
98
+ // Media rules can return multiple variants for negated ranges (OR branches)
99
+ const mediaResults = mediaToCSS(state);
100
+ const variants = mediaResults.map((mediaRule) => {
101
+ const v = emptyVariant();
102
+ v.mediaRules.push(mediaRule);
103
+ return v;
104
+ });
105
+ return { variants, isImpossible: false };
106
+ }
107
+ default: {
108
+ const variant = emptyVariant();
109
+ switch (state.type) {
110
+ case 'modifier':
111
+ variant.modifierSelectors.push(modifierToCSS(state));
112
+ break;
113
+ case 'pseudo':
114
+ variant.modifierSelectors.push(pseudoToCSS(state));
115
+ break;
116
+ case 'container':
117
+ variant.containerRules.push(containerToCSS(state));
118
+ break;
119
+ case 'root':
120
+ variant.rootPrefix = rootToCSS(state);
121
+ break;
122
+ case 'own':
123
+ variant.ownSelectors.push(...ownToCSS(state));
124
+ break;
125
+ case 'starting':
126
+ variant.startingStyle = !state.negated;
127
+ break;
128
+ }
129
+ return {
130
+ variants: [variant],
131
+ isImpossible: false,
132
+ };
133
+ }
119
134
  }
120
- return {
121
- variants: [variant],
122
- isImpossible: false,
123
- };
124
135
  }
125
136
  /**
126
137
  * Convert modifier condition to CSS selector
@@ -156,34 +167,44 @@ function pseudoToCSS(state) {
156
167
  return state.pseudo;
157
168
  }
158
169
  /**
159
- * Convert media condition to CSS at-rule
170
+ * Convert media condition to CSS at-rule(s)
171
+ * Returns an array because negated ranges produce OR branches (two separate rules)
160
172
  */
161
173
  function mediaToCSS(state) {
162
- let condition;
163
174
  if (state.subtype === 'type') {
164
- // @media:print → @media print
165
- condition = state.mediaType || 'all';
175
+ // @media:print → @media print (or @media not print)
176
+ const mediaType = state.mediaType || 'all';
177
+ if (state.negated) {
178
+ return [`@media not ${mediaType}`];
179
+ }
180
+ return [`@media ${mediaType}`];
166
181
  }
167
182
  else if (state.subtype === 'feature') {
168
183
  // @media(prefers-contrast: high) → @media (prefers-contrast: high)
184
+ let condition;
169
185
  if (state.featureValue) {
170
186
  condition = `(${state.feature}: ${state.featureValue})`;
171
187
  }
172
188
  else {
173
189
  condition = `(${state.feature})`;
174
190
  }
191
+ // "not (condition)" is valid for feature queries like prefers-color-scheme
192
+ if (state.negated) {
193
+ return [`@media not ${condition}`];
194
+ }
195
+ return [`@media ${condition}`];
175
196
  }
176
197
  else {
177
- // Dimension query
178
- condition = dimensionToMediaCondition(state.dimension || 'width', state.lowerBound, state.upperBound);
198
+ // Dimension query - negation is handled by inverting the condition
199
+ // because "not (width < x)" doesn't work reliably in browsers
200
+ const conditions = dimensionToMediaCondition(state.dimension || 'width', state.lowerBound, state.upperBound, state.negated);
201
+ // dimensionToMediaCondition returns array for negated ranges (OR branches)
202
+ return conditions.map((c) => `@media ${c}`);
179
203
  }
180
- if (state.negated) {
181
- return `@media not ${condition}`;
182
- }
183
- return `@media ${condition}`;
184
204
  }
185
205
  /**
186
206
  * Convert container condition to CSS at-rule
207
+ * Container queries support "not (condition)" syntax, so we can use it directly
187
208
  */
188
209
  function containerToCSS(state) {
189
210
  const name = state.containerName ? `${state.containerName} ` : '';
@@ -198,8 +219,8 @@ function containerToCSS(state) {
198
219
  }
199
220
  }
200
221
  else {
201
- // Dimension query
202
- condition = dimensionToMediaCondition(state.dimension || 'width', state.lowerBound, state.upperBound);
222
+ // Dimension query - container queries support "not (condition)"
223
+ condition = dimensionToContainerCondition(state.dimension || 'width', state.lowerBound, state.upperBound);
203
224
  }
204
225
  if (state.negated) {
205
226
  return `@container ${name}not ${condition}`;
@@ -207,9 +228,10 @@ function containerToCSS(state) {
207
228
  return `@container ${name}${condition}`;
208
229
  }
209
230
  /**
210
- * Convert dimension bounds to a media/container condition string
231
+ * Convert dimension bounds to container query condition (single string)
232
+ * Container queries support "not (condition)", so no need to invert manually
211
233
  */
212
- function dimensionToMediaCondition(dimension, lowerBound, upperBound) {
234
+ function dimensionToContainerCondition(dimension, lowerBound, upperBound) {
213
235
  if (lowerBound && upperBound) {
214
236
  const lowerOp = lowerBound.inclusive ? '<=' : '<';
215
237
  const upperOp = upperBound.inclusive ? '<=' : '<';
@@ -225,6 +247,58 @@ function dimensionToMediaCondition(dimension, lowerBound, upperBound) {
225
247
  }
226
248
  return '(width)'; // Fallback
227
249
  }
250
+ /**
251
+ * Convert dimension bounds to media condition(s)
252
+ * Returns an array because negated ranges produce OR branches (two separate conditions)
253
+ */
254
+ function dimensionToMediaCondition(dimension, lowerBound, upperBound, negated) {
255
+ if (negated) {
256
+ // Invert the condition manually since "not (width < x)" doesn't work in browsers
257
+ // Single bounds: flip the operator → returns single condition
258
+ // Range: NOT (a <= x < b) = (x < a) OR (x >= b) → returns two conditions (OR branches)
259
+ if (lowerBound && upperBound) {
260
+ // Range query: (lower <= dim < upper) negated is (dim < lower) OR (dim >= upper)
261
+ // Return two separate conditions - these become separate variants
262
+ const lowerOp = lowerBound.inclusive ? '<' : '<=';
263
+ const upperOp = upperBound.inclusive ? '>' : '>=';
264
+ return [
265
+ `(${dimension} ${lowerOp} ${lowerBound.value})`,
266
+ `(${dimension} ${upperOp} ${upperBound.value})`,
267
+ ];
268
+ }
269
+ else if (upperBound) {
270
+ // (dim < upper) negated is (dim >= upper)
271
+ // (dim <= upper) negated is (dim > upper)
272
+ const op = upperBound.inclusive ? '>' : '>=';
273
+ return [`(${dimension} ${op} ${upperBound.value})`];
274
+ }
275
+ else if (lowerBound) {
276
+ // (dim >= lower) negated is (dim < lower)
277
+ // (dim > lower) negated is (dim <= lower)
278
+ const op = lowerBound.inclusive ? '<' : '<=';
279
+ return [`(${dimension} ${op} ${lowerBound.value})`];
280
+ }
281
+ // Fallback - should not happen
282
+ return ['(width < 0px)'];
283
+ }
284
+ // Positive condition - always returns single condition
285
+ if (lowerBound && upperBound) {
286
+ const lowerOp = lowerBound.inclusive ? '<=' : '<';
287
+ const upperOp = upperBound.inclusive ? '<=' : '<';
288
+ return [
289
+ `(${lowerBound.value} ${lowerOp} ${dimension} ${upperOp} ${upperBound.value})`,
290
+ ];
291
+ }
292
+ else if (upperBound) {
293
+ const op = upperBound.inclusive ? '<=' : '<';
294
+ return [`(${dimension} ${op} ${upperBound.value})`];
295
+ }
296
+ else if (lowerBound) {
297
+ const op = lowerBound.inclusive ? '>=' : '>';
298
+ return [`(${dimension} ${op} ${lowerBound.value})`];
299
+ }
300
+ return ['(width)']; // Fallback
301
+ }
228
302
  /**
229
303
  * Convert root condition to CSS selector prefix
230
304
  */
@@ -298,32 +372,164 @@ function mergeVariants(a, b) {
298
372
  startingStyle: a.startingStyle || b.startingStyle,
299
373
  };
300
374
  }
375
+ function parseValue(str) {
376
+ const match = str.match(/^(\d+(?:\.\d+)?)(px|em|rem|vh|vw|%)$/i);
377
+ if (match) {
378
+ return { value: parseFloat(match[1]), unit: match[2].toLowerCase() };
379
+ }
380
+ return null;
381
+ }
382
+ function parseDimensionCondition(condition) {
383
+ // Try range syntax first: (600px <= width < 900px)
384
+ const rangeMatch = condition.match(/\(\s*(\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%))\s*(<=?)\s*(width|height)\s*(<=?)\s*(\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%))\s*\)/i);
385
+ if (rangeMatch) {
386
+ const lowerVal = parseValue(rangeMatch[1]);
387
+ const upperVal = parseValue(rangeMatch[5]);
388
+ if (lowerVal && upperVal && lowerVal.unit === upperVal.unit) {
389
+ return {
390
+ dimension: rangeMatch[3].toLowerCase(),
391
+ lowerBound: {
392
+ value: lowerVal.value,
393
+ unit: lowerVal.unit,
394
+ inclusive: rangeMatch[2] === '<=',
395
+ },
396
+ upperBound: {
397
+ value: upperVal.value,
398
+ unit: upperVal.unit,
399
+ inclusive: rangeMatch[4] === '<=',
400
+ },
401
+ };
402
+ }
403
+ }
404
+ // Try single bound: (width < 600px) or (width >= 900px)
405
+ const singleMatch = condition.match(/\(\s*(width|height)\s*(<=?|>=?)\s*(\d+(?:\.\d+)?(?:px|em|rem|vh|vw|%))\s*\)/i);
406
+ if (singleMatch) {
407
+ const val = parseValue(singleMatch[3]);
408
+ if (val) {
409
+ const op = singleMatch[2];
410
+ if (op === '<' || op === '<=') {
411
+ return {
412
+ dimension: singleMatch[1].toLowerCase(),
413
+ upperBound: {
414
+ value: val.value,
415
+ unit: val.unit,
416
+ inclusive: op === '<=',
417
+ },
418
+ };
419
+ }
420
+ else {
421
+ return {
422
+ dimension: singleMatch[1].toLowerCase(),
423
+ lowerBound: {
424
+ value: val.value,
425
+ unit: val.unit,
426
+ inclusive: op === '>=',
427
+ },
428
+ };
429
+ }
430
+ }
431
+ }
432
+ return null;
433
+ }
434
+ /**
435
+ * Check if two dimension conditions are contradictory
436
+ * e.g., "width >= 900px" and "width < 900px" are contradictory
437
+ * Also handles ranges: "(600px <= width < 900px)" and "(width < 600px)" are contradictory
438
+ */
439
+ function areDimensionContradictions(a, b) {
440
+ if (a.dimension !== b.dimension)
441
+ return false;
442
+ // Get effective bounds - considering both single-bound and ranges
443
+ const aLower = a.lowerBound;
444
+ const aUpper = a.upperBound;
445
+ const bLower = b.lowerBound;
446
+ const bUpper = b.upperBound;
447
+ // Check if units are compatible (only compare if same unit)
448
+ const getUnit = (bound) => bound?.unit;
449
+ const units = [aLower, aUpper, bLower, bUpper]
450
+ .filter(Boolean)
451
+ .map((b) => b.unit);
452
+ if (units.length > 0 && !units.every((u) => u === units[0])) {
453
+ return false; // Different units, can't determine
454
+ }
455
+ // Two conditions contradict if their valid ranges don't overlap
456
+ // A range is [aLowerVal, aUpperVal) or similar
457
+ // Default: -Infinity to +Infinity
458
+ const aLowerVal = aLower?.value ?? -Infinity;
459
+ const aUpperVal = aUpper?.value ?? Infinity;
460
+ const bLowerVal = bLower?.value ?? -Infinity;
461
+ const bUpperVal = bUpper?.value ?? Infinity;
462
+ // For non-inclusive bounds, adjust slightly for comparison
463
+ // But for simplicity, we'll use strict non-overlap check
464
+ // Two ranges [aL, aU) and [bL, bU) don't overlap if:
465
+ // aU <= bL or bU <= aL (considering inclusivity)
466
+ // Check if a's upper bound is at or below b's lower bound
467
+ if (aUpper && bLower && aUpper.value === bLower.value) {
468
+ // Same value - check inclusivity
469
+ // If a.upper is exclusive (<) and b.lower is inclusive (>=), they don't overlap at this point
470
+ // If a.upper is inclusive (<=) and b.lower is exclusive (>), they don't overlap
471
+ if (!aUpper.inclusive && bLower.inclusive) {
472
+ return true; // a < X and X <= b → no overlap at X
473
+ }
474
+ if (aUpper.inclusive && !bLower.inclusive) {
475
+ return true; // a <= X and X > b → no overlap at X
476
+ }
477
+ }
478
+ if (aUpperVal < bLowerVal)
479
+ return true;
480
+ // Check if b's upper bound is at or below a's lower bound
481
+ if (bUpper && aLower && bUpper.value === aLower.value) {
482
+ if (!bUpper.inclusive && aLower.inclusive) {
483
+ return true;
484
+ }
485
+ if (bUpper.inclusive && !aLower.inclusive) {
486
+ return true;
487
+ }
488
+ }
489
+ if (bUpperVal < aLowerVal)
490
+ return true;
491
+ return false;
492
+ }
301
493
  /**
302
494
  * Check if a set of media rules contains contradictions
303
495
  * e.g., "@media (prefers-color-scheme: light)" and "@media not (prefers-color-scheme: light)"
496
+ * or "@media (width >= 900px)" and "@media (width < 900px)"
304
497
  */
305
498
  function hasMediaContradiction(mediaRules) {
306
- const features = new Map();
499
+ const conditions = new Map();
500
+ const dimensionConditions = [];
307
501
  for (const rule of mediaRules) {
308
- // Parse the rule to extract the feature condition
309
- // Format: "@media (feature: value)" or "@media not (feature: value)"
310
- const notMatch = rule.match(/@media\s+not\s+\(([^:]+):\s*([^)]+)\)/i);
311
- const posMatch = rule.match(/@media\s+\(([^:]+):\s*([^)]+)\)/i);
502
+ // Check for negated media rule: @media not (...)
503
+ const notMatch = rule.match(/@media\s+not\s+(\([^)]+\))/i);
504
+ // Check for positive media rule: @media (...)
505
+ const posMatch = rule.match(/@media\s+(\([^)]+\))/i);
312
506
  if (notMatch) {
313
- const key = `${notMatch[1].trim()}:${notMatch[2].trim()}`;
314
- const existing = features.get(key);
507
+ // Normalize the condition (remove extra whitespace)
508
+ const key = notMatch[1].replace(/\s+/g, ' ').trim();
509
+ const existing = conditions.get(key);
315
510
  if (existing && existing.positive) {
316
- return true; // Found: (feature: value) AND not (feature: value)
511
+ return true; // Found: (condition) AND not (condition)
317
512
  }
318
- features.set(key, { positive: false, rule });
513
+ conditions.set(key, { positive: false, rule });
319
514
  }
320
515
  else if (posMatch) {
321
- const key = `${posMatch[1].trim()}:${posMatch[2].trim()}`;
322
- const existing = features.get(key);
516
+ // Normalize the condition (remove extra whitespace)
517
+ const key = posMatch[1].replace(/\s+/g, ' ').trim();
518
+ const existing = conditions.get(key);
323
519
  if (existing && !existing.positive) {
324
- return true; // Found: not (feature: value) AND (feature: value)
520
+ return true; // Found: not (condition) AND (condition)
521
+ }
522
+ conditions.set(key, { positive: true, rule });
523
+ // Also check for dimension contradictions
524
+ const dimCond = parseDimensionCondition(posMatch[1]);
525
+ if (dimCond) {
526
+ for (const existing of dimensionConditions) {
527
+ if (areDimensionContradictions(dimCond, existing)) {
528
+ return true;
529
+ }
530
+ }
531
+ dimensionConditions.push(dimCond);
325
532
  }
326
- features.set(key, { positive: true, rule });
327
533
  }
328
534
  }
329
535
  return false;
@@ -394,12 +600,69 @@ function getVariantKey(v) {
394
600
  v.startingStyle ? '1' : '0',
395
601
  ].join('###');
396
602
  }
603
+ /**
604
+ * Check if variant A is a superset of variant B (A is more restrictive)
605
+ *
606
+ * If A has all of B's conditions plus more, then A is redundant
607
+ * because B already covers the same cases (and more).
608
+ *
609
+ * Example:
610
+ * A: :not([size=large]):not([size=medium]):not([size=small])
611
+ * B: :not([size=large])
612
+ * A is a superset of B, so A is redundant when B exists.
613
+ */
614
+ function isVariantSuperset(a, b) {
615
+ // Must have same context (root prefix, at-rules, etc.)
616
+ if (a.rootPrefix !== b.rootPrefix)
617
+ return false;
618
+ if (a.startingStyle !== b.startingStyle)
619
+ return false;
620
+ // Check if a.mediaRules is superset of b.mediaRules
621
+ if (!isArraySuperset(a.mediaRules, b.mediaRules))
622
+ return false;
623
+ // Check if a.containerRules is superset of b.containerRules
624
+ if (!isArraySuperset(a.containerRules, b.containerRules))
625
+ return false;
626
+ // Check if a.modifierSelectors is superset of b.modifierSelectors
627
+ if (!isArraySuperset(a.modifierSelectors, b.modifierSelectors))
628
+ return false;
629
+ // Check if a.ownSelectors is superset of b.ownSelectors
630
+ if (!isArraySuperset(a.ownSelectors, b.ownSelectors))
631
+ return false;
632
+ // A is a superset if it has all of B's items (possibly more)
633
+ // and at least one category has strictly more items
634
+ const aTotal = a.mediaRules.length +
635
+ a.containerRules.length +
636
+ a.modifierSelectors.length +
637
+ a.ownSelectors.length;
638
+ const bTotal = b.mediaRules.length +
639
+ b.containerRules.length +
640
+ b.modifierSelectors.length +
641
+ b.ownSelectors.length;
642
+ return aTotal > bTotal;
643
+ }
644
+ /**
645
+ * Check if array A contains all elements of array B (superset)
646
+ */
647
+ function isArraySuperset(a, b) {
648
+ const setA = new Set(a);
649
+ for (const item of b) {
650
+ if (!setA.has(item))
651
+ return false;
652
+ }
653
+ return true;
654
+ }
397
655
  /**
398
656
  * Deduplicate variants
657
+ *
658
+ * Removes:
659
+ * 1. Exact duplicates (same key)
660
+ * 2. Superset variants (more restrictive selectors that are redundant)
399
661
  */
400
662
  function dedupeVariants(variants) {
663
+ // First pass: exact deduplication
401
664
  const seen = new Set();
402
- const result = [];
665
+ let result = [];
403
666
  for (const v of variants) {
404
667
  const key = getVariantKey(v);
405
668
  if (!seen.has(key)) {
@@ -407,7 +670,34 @@ function dedupeVariants(variants) {
407
670
  result.push(v);
408
671
  }
409
672
  }
410
- return result;
673
+ // Second pass: remove supersets (more restrictive variants)
674
+ // Sort by total selector count (fewer selectors = less restrictive = keep)
675
+ result.sort((a, b) => {
676
+ const aCount = a.modifierSelectors.length +
677
+ a.ownSelectors.length +
678
+ a.mediaRules.length +
679
+ a.containerRules.length;
680
+ const bCount = b.modifierSelectors.length +
681
+ b.ownSelectors.length +
682
+ b.mediaRules.length +
683
+ b.containerRules.length;
684
+ return aCount - bCount;
685
+ });
686
+ // Remove variants that are supersets of earlier (less restrictive) variants
687
+ const filtered = [];
688
+ for (const candidate of result) {
689
+ let isRedundant = false;
690
+ for (const kept of filtered) {
691
+ if (isVariantSuperset(candidate, kept)) {
692
+ isRedundant = true;
693
+ break;
694
+ }
695
+ }
696
+ if (!isRedundant) {
697
+ filtered.push(candidate);
698
+ }
699
+ }
700
+ return filtered;
411
701
  }
412
702
  /**
413
703
  * Combine AND conditions into CSS
@@ -520,11 +810,18 @@ export function buildAtRulesFromVariant(variant) {
520
810
  const atRules = [];
521
811
  // Add media rules
522
812
  if (variant.mediaRules.length > 0) {
523
- // Combine media rules with 'and'
524
- const conditions = variant.mediaRules
525
- .map((r) => r.replace(/^@media\s*/, ''))
526
- .join(' and ');
527
- atRules.push(`@media ${conditions}`);
813
+ // Each rule is either:
814
+ // - "@media (condition)" for positive conditions
815
+ // - "@media not (condition)" for negated conditions
816
+ // - "@media not print" for negated media types
817
+ // - "@media (inverted-condition)" for negated dimension queries (already inverted)
818
+ //
819
+ // We strip "@media " and join with " and "
820
+ // This produces valid CSS like:
821
+ // @media not (prefers-color-scheme: dark) and (width > 800px)
822
+ // which means: NOT(dark) AND (width > 800px)
823
+ const conditions = variant.mediaRules.map((r) => r.replace(/^@media\s*/, ''));
824
+ atRules.push(`@media ${conditions.join(' and ')}`);
528
825
  }
529
826
  // Add container rules
530
827
  atRules.push(...variant.containerRules);
@@ -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-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9b9355c
4
+ * @cube-dev/ui-kit v0.0.0-canary-186a28f
5
5
  * Released under the MIT license.
6
6
  */
7
7