@cube-dev/ui-kit 0.0.0-canary-dcac388 → 0.0.0-canary-c0382e7

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 (421) hide show
  1. package/dist/CHANGELOG.md +8 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  56. package/dist/components/content/Item/Item.js +1 -1
  57. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  58. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  59. package/dist/components/content/Layout/GridLayout.js +1 -1
  60. package/dist/components/content/Layout/Layout.js +1 -1
  61. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  62. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  63. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  64. package/dist/components/content/Layout/LayoutContent.js +1 -1
  65. package/dist/components/content/Layout/LayoutContext.js +1 -1
  66. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  67. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  68. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  69. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  70. package/dist/components/content/Layout/LayoutPane.js +1 -1
  71. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  73. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  74. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  75. package/dist/components/content/Layout/index.js +1 -1
  76. package/dist/components/content/Layout/utils.js +1 -1
  77. package/dist/components/content/Paragraph.js +1 -1
  78. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  79. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  80. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  81. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  82. package/dist/components/content/Result/Result.js +1 -1
  83. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  84. package/dist/components/content/Tag/Tag.js +1 -1
  85. package/dist/components/content/Text.js +1 -1
  86. package/dist/components/content/TextItem/TextItem.js +1 -1
  87. package/dist/components/content/Title.js +1 -1
  88. package/dist/components/content/Tree/Tree.js +1 -1
  89. package/dist/components/content/Tree/TreeNode.js +1 -1
  90. package/dist/components/content/Tree/styled.js +1 -1
  91. package/dist/components/content/Tree/tree-index.js +1 -1
  92. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  93. package/dist/components/content/Tree/use-load-data.js +1 -1
  94. package/dist/components/content/highlightText.js +1 -1
  95. package/dist/components/content/use-auto-tooltip.js +1 -1
  96. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  97. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  98. package/dist/components/fields/Checkbox/context.js +1 -1
  99. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  100. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  101. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  102. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  103. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  104. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  105. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  106. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  107. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  108. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  109. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  110. package/dist/components/fields/DatePicker/intl.js +1 -1
  111. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  112. package/dist/components/fields/DatePicker/props.js +1 -1
  113. package/dist/components/fields/DatePicker/utils.js +1 -1
  114. package/dist/components/fields/FileInput/FileInput.js +1 -1
  115. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  116. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  117. package/dist/components/fields/Input/Input.js +1 -1
  118. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  119. package/dist/components/fields/ListBox/ListBox.js +1 -1
  120. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  121. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  122. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  123. package/dist/components/fields/Picker/Picker.js +1 -1
  124. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  125. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  126. package/dist/components/fields/RadioGroup/context.js +1 -1
  127. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  128. package/dist/components/fields/Select/Select.js +1 -1
  129. package/dist/components/fields/Slider/Gradation.js +1 -1
  130. package/dist/components/fields/Slider/HueSlider.js +1 -1
  131. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  132. package/dist/components/fields/Slider/Slider.js +1 -1
  133. package/dist/components/fields/Slider/SliderBase.js +1 -1
  134. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  135. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  136. package/dist/components/fields/Slider/elements.js +1 -1
  137. package/dist/components/fields/Slider/index.js +1 -1
  138. package/dist/components/fields/Switch/Switch.js +1 -1
  139. package/dist/components/fields/TextArea/TextArea.js +1 -1
  140. package/dist/components/fields/TextInput/TextInput.js +1 -1
  141. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  142. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  143. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  144. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  145. package/dist/components/form/Form/Field.js +1 -1
  146. package/dist/components/form/Form/Form.js +1 -1
  147. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  148. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  149. package/dist/components/form/Form/SubmitError.js +1 -1
  150. package/dist/components/form/Form/index.js +1 -1
  151. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  152. package/dist/components/form/Form/use-field/use-field.js +1 -1
  153. package/dist/components/form/Form/use-form.js +1 -1
  154. package/dist/components/form/Form/validation.js +1 -1
  155. package/dist/components/form/Label.js +1 -1
  156. package/dist/components/form/wrapper.js +1 -1
  157. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  158. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  159. package/dist/components/layout/Flex.js +1 -1
  160. package/dist/components/layout/Flow.js +1 -1
  161. package/dist/components/layout/Grid.js +1 -1
  162. package/dist/components/layout/Panel.js +1 -1
  163. package/dist/components/layout/Prefix.js +1 -1
  164. package/dist/components/layout/ResizablePanel.js +1 -1
  165. package/dist/components/layout/Space.js +1 -1
  166. package/dist/components/layout/Suffix.js +1 -1
  167. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  168. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  169. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  170. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  171. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  172. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  173. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  174. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  175. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  176. package/dist/components/navigation/Tabs/styled.js +1 -1
  177. package/dist/components/navigation/Tabs/types.js +1 -1
  178. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  179. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  180. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  181. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  182. package/dist/components/other/Calendar/Calendar.js +1 -1
  183. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  184. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  185. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  186. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  187. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  188. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  189. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  190. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  191. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  192. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  193. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  194. package/dist/components/overlays/Dialog/context.js +1 -1
  195. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  196. package/dist/components/overlays/Modal/Modal.js +1 -1
  197. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  198. package/dist/components/overlays/Modal/Overlay.js +1 -1
  199. package/dist/components/overlays/Modal/Popover.js +1 -1
  200. package/dist/components/overlays/Modal/Tray.js +1 -1
  201. package/dist/components/overlays/Modal/Underlay.js +1 -1
  202. package/dist/components/overlays/Notifications/Notification.js +1 -1
  203. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  204. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  205. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  206. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  207. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  208. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  209. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  210. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  211. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  212. package/dist/components/overlays/Notifications/index.js +1 -1
  213. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  214. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  215. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  216. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  217. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  218. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  219. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  220. package/dist/components/overlays/Toast/index.js +1 -1
  221. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  222. package/dist/components/overlays/Toast/useToast.js +1 -1
  223. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  224. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  225. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  226. package/dist/components/overlays/Tooltip/context.js +1 -1
  227. package/dist/components/portal/Portal.js +1 -1
  228. package/dist/components/portal/PortalProvider.js +1 -1
  229. package/dist/components/portal/usePortal.js +1 -1
  230. package/dist/components/shared/DraggableCollection.js +1 -1
  231. package/dist/components/shared/InvalidIcon.js +1 -1
  232. package/dist/components/shared/ValidIcon.js +1 -1
  233. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  234. package/dist/components/status/Spin/Cube.js +1 -1
  235. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  236. package/dist/components/status/Spin/Spin.js +1 -1
  237. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  238. package/dist/data/item-themes.js +1 -1
  239. package/dist/data/themes.js +1 -1
  240. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  241. package/dist/icons/AdjustmentsIcon.js +1 -1
  242. package/dist/icons/AiIcon.js +1 -1
  243. package/dist/icons/AreaChartIcon.js +1 -1
  244. package/dist/icons/BackwardIcon.js +1 -1
  245. package/dist/icons/BarChartIcon.js +1 -1
  246. package/dist/icons/BellFilledIcon.js +1 -1
  247. package/dist/icons/BellIcon.js +1 -1
  248. package/dist/icons/BooleanIcon.js +1 -1
  249. package/dist/icons/CalendarEditIcon.js +1 -1
  250. package/dist/icons/CalendarIcon.js +1 -1
  251. package/dist/icons/CaretDownIcon.js +1 -1
  252. package/dist/icons/CaretUpIcon.js +1 -1
  253. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  254. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  255. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  256. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  257. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  258. package/dist/icons/ChartBarLineIcon.js +1 -1
  259. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  260. package/dist/icons/ChartBarStackedIcon.js +1 -1
  261. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  262. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  263. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  264. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  265. package/dist/icons/ChartBubbleIcon.js +1 -1
  266. package/dist/icons/ChartDonut2Icon.js +1 -1
  267. package/dist/icons/ChartFunnelIcon.js +1 -1
  268. package/dist/icons/ChartHeatmapIcon.js +1 -1
  269. package/dist/icons/ChartKPIIcon.js +1 -1
  270. package/dist/icons/ChartPie2Icon.js +1 -1
  271. package/dist/icons/ChartScatterIcon.js +1 -1
  272. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  273. package/dist/icons/CheckCircleIcon.js +1 -1
  274. package/dist/icons/CheckIcon.js +1 -1
  275. package/dist/icons/CircleFilledIcon.js +1 -1
  276. package/dist/icons/ClearIcon.js +1 -1
  277. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  278. package/dist/icons/CloseCircleIcon.js +1 -1
  279. package/dist/icons/CloseIcon.js +1 -1
  280. package/dist/icons/CodeIcon.js +1 -1
  281. package/dist/icons/ColumnTotalIcon.js +1 -1
  282. package/dist/icons/CopyIcon.js +1 -1
  283. package/dist/icons/CountIcon.js +1 -1
  284. package/dist/icons/CubeIcon.js +1 -1
  285. package/dist/icons/CubePauseIcon.js +1 -1
  286. package/dist/icons/CubePlayIcon.js +1 -1
  287. package/dist/icons/CurrencyDollarIcon.js +1 -1
  288. package/dist/icons/DangerIcon.js +1 -1
  289. package/dist/icons/DashboardIcon.js +1 -1
  290. package/dist/icons/DatabaseIcon.js +1 -1
  291. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  292. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  293. package/dist/icons/DirectionIcon.js +1 -1
  294. package/dist/icons/DonutIcon.js +1 -1
  295. package/dist/icons/DownIcon.js +1 -1
  296. package/dist/icons/EditIcon.js +1 -1
  297. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  298. package/dist/icons/ExclamationCircleIcon.js +1 -1
  299. package/dist/icons/ExclamationIcon.js +1 -1
  300. package/dist/icons/EyeIcon.js +1 -1
  301. package/dist/icons/EyeInvisibleIcon.js +1 -1
  302. package/dist/icons/FilterIcon.js +1 -1
  303. package/dist/icons/FolderFilledIcon.js +1 -1
  304. package/dist/icons/FolderIcon.js +1 -1
  305. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  306. package/dist/icons/FolderOpenIcon.js +1 -1
  307. package/dist/icons/ForwardIcon.js +1 -1
  308. package/dist/icons/GripVerticalIcon.js +1 -1
  309. package/dist/icons/HierarchyIcon.js +1 -1
  310. package/dist/icons/HierarchyOpenIcon.js +1 -1
  311. package/dist/icons/Icon.js +1 -1
  312. package/dist/icons/InfoCircleIcon.js +1 -1
  313. package/dist/icons/InfoIcon.js +1 -1
  314. package/dist/icons/KeyIcon.js +1 -1
  315. package/dist/icons/LeftIcon.js +1 -1
  316. package/dist/icons/LineChartIcon.js +1 -1
  317. package/dist/icons/LoadingIcon.js +1 -1
  318. package/dist/icons/LockFilledIcon.js +1 -1
  319. package/dist/icons/LockIcon.js +1 -1
  320. package/dist/icons/MoreIcon.js +1 -1
  321. package/dist/icons/NotAllowedIcon.js +1 -1
  322. package/dist/icons/Number123Icon.js +1 -1
  323. package/dist/icons/NumberIcon.js +1 -1
  324. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  325. package/dist/icons/PauseCircleIcon.js +1 -1
  326. package/dist/icons/PauseIcon.js +1 -1
  327. package/dist/icons/PercentageIcon.js +1 -1
  328. package/dist/icons/PieChartIcon.js +1 -1
  329. package/dist/icons/PlayCircleIcon.js +1 -1
  330. package/dist/icons/PlayIcon.js +1 -1
  331. package/dist/icons/PlusIcon.js +1 -1
  332. package/dist/icons/ProgressBarIcon.js +1 -1
  333. package/dist/icons/ReloadIcon.js +1 -1
  334. package/dist/icons/ReportIcon.js +1 -1
  335. package/dist/icons/ReturnIcon.js +1 -1
  336. package/dist/icons/RightIcon.js +1 -1
  337. package/dist/icons/RowTotalsIcon.js +1 -1
  338. package/dist/icons/SchemeIcon.js +1 -1
  339. package/dist/icons/SearchIcon.js +1 -1
  340. package/dist/icons/SemanticQueryIcon.js +1 -1
  341. package/dist/icons/SettingsIcon.js +1 -1
  342. package/dist/icons/ShieldFilledIcon.js +1 -1
  343. package/dist/icons/ShieldIcon.js +1 -1
  344. package/dist/icons/SlashIcon.js +1 -1
  345. package/dist/icons/SparklesIcon.js +1 -1
  346. package/dist/icons/SqlIcon.js +1 -1
  347. package/dist/icons/StatsIcon.js +1 -1
  348. package/dist/icons/StopIcon.js +1 -1
  349. package/dist/icons/StringIcon.js +1 -1
  350. package/dist/icons/SubtotalsIcon.js +1 -1
  351. package/dist/icons/SwitchIcon.js +1 -1
  352. package/dist/icons/TableIcon.js +1 -1
  353. package/dist/icons/ThumbsDownIcon.js +1 -1
  354. package/dist/icons/ThumbsUpIcon.js +1 -1
  355. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  356. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  357. package/dist/icons/ThunderboltIcon.js +1 -1
  358. package/dist/icons/TimeIcon.js +1 -1
  359. package/dist/icons/TrashIcon.js +1 -1
  360. package/dist/icons/UnlockIcon.js +1 -1
  361. package/dist/icons/UpIcon.js +1 -1
  362. package/dist/icons/UserGroupIcon.js +1 -1
  363. package/dist/icons/UserIcon.js +1 -1
  364. package/dist/icons/UserLockIcon.js +1 -1
  365. package/dist/icons/ViewIcon.js +1 -1
  366. package/dist/icons/WarningFilledIcon.js +1 -1
  367. package/dist/icons/WarningIcon.js +1 -1
  368. package/dist/icons/wrap-icon.js +1 -1
  369. package/dist/index.js +1 -1
  370. package/dist/provider.js +1 -1
  371. package/dist/providers/TrackingProvider.js +1 -1
  372. package/dist/providers/navigationAdapter.default.js +1 -1
  373. package/dist/tokens/base.js +1 -1
  374. package/dist/tokens/colors.js +1 -1
  375. package/dist/tokens/index.js +1 -1
  376. package/dist/tokens/layout.js +1 -1
  377. package/dist/tokens/palette.js +1 -1
  378. package/dist/tokens/shadows.js +1 -1
  379. package/dist/tokens/sizes.js +1 -1
  380. package/dist/tokens/spacing.js +1 -1
  381. package/dist/tokens/typography.js +1 -1
  382. package/dist/utils/ResizeSensor.js +1 -1
  383. package/dist/utils/is-dev-env.js +1 -1
  384. package/dist/utils/modules.js +1 -1
  385. package/dist/utils/promise.js +1 -1
  386. package/dist/utils/raf.js +1 -1
  387. package/dist/utils/random.js +1 -1
  388. package/dist/utils/range.js +1 -1
  389. package/dist/utils/react/RenderCache.js +1 -1
  390. package/dist/utils/react/Slots.js +1 -1
  391. package/dist/utils/react/chain.js +1 -1
  392. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  393. package/dist/utils/react/index.js +1 -1
  394. package/dist/utils/react/interactions.js +1 -1
  395. package/dist/utils/react/isTextOnly.js +1 -1
  396. package/dist/utils/react/mapProps.js +1 -1
  397. package/dist/utils/react/mergeProps.js +1 -1
  398. package/dist/utils/react/nullableValue.js +1 -1
  399. package/dist/utils/react/resolveIcon.js +1 -1
  400. package/dist/utils/react/sharedStore.js +1 -1
  401. package/dist/utils/react/useCombinedRefs.js +1 -1
  402. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  403. package/dist/utils/react/useEventBus.js +1 -1
  404. package/dist/utils/react/useId.js +1 -1
  405. package/dist/utils/react/useIsDarwin.js +1 -1
  406. package/dist/utils/react/useKeySymbols.js +1 -1
  407. package/dist/utils/react/useLayoutEffect.js +1 -1
  408. package/dist/utils/react/useLocalStorage.js +1 -1
  409. package/dist/utils/react/useMergeStyles.js +1 -1
  410. package/dist/utils/react/usePopoverSync.js +1 -1
  411. package/dist/utils/react/useQaProps.js +1 -1
  412. package/dist/utils/react/useViewportSize.js +1 -1
  413. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  414. package/dist/utils/selection.js +1 -1
  415. package/dist/utils/styles.js +1 -1
  416. package/dist/utils/tree.js +1 -1
  417. package/dist/utils/warnings.js +1 -1
  418. package/dist/version.js +3 -3
  419. package/docs/tasty/dsl.md +65 -0
  420. package/docs/tasty/pipeline.md +38 -4
  421. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  //#region src/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useCombinedRefs.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { createSharedStore } from "./sharedStore.js";
3
3
  import { useEffect } from "react";
4
4
  import { useFocusVisible } from "react-aria";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useEventBus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { useSSRSafeId } from "@react-aria/ssr";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { EventBusContext, useEventBus } from "./useEventBus.js";
3
3
  import { useCallback, useContext, useEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  import { isValidElement } from "react";
3
3
  import { isFragment } from "react-is";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  //#region src/utils/selection.ts
3
3
  /**
4
4
  * Deduplicate/toggle keys in a selection: if a key appears twice it is
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  //#region src/utils/styles.ts
3
3
  /**
4
4
  * Split properties into style and non-style properties.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  //#region src/utils/warnings.ts
3
3
  const SUGGESTED_PROP_MAP = {
4
4
  disabled: "isDisabled",
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-dcac388 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c0382e7 | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.0.0-canary-dcac388";
4
- const TASTY_VERSION = "2.6.4";
3
+ const VERSION = "0.0.0-canary-c0382e7";
4
+ const TASTY_VERSION = "0.0.0-snapshot.93acf5b";
5
5
  if (typeof window !== "undefined") {
6
6
  const version = VERSION;
7
7
  const tastyVersion = TASTY_VERSION;
package/docs/tasty/dsl.md CHANGED
@@ -288,11 +288,21 @@ const SimpleButton = tasty(Button, {
288
288
  | `@parent` | Parent/ancestor element states | `@parent(hovered)` |
289
289
  | `@own` | Sub-element's own state | `@own(hovered)` |
290
290
  | `@starting` | Entry animation | `@starting` |
291
+ | `@fallback` | Negation opt-out (persistent floor) | `@fallback` |
291
292
  | `:is()` | CSS `:is()` structural pseudo-class | `:is(fieldset > label)` |
292
293
  | `:has()` | CSS `:has()` relational pseudo-class | `:has(> Icon)` |
293
294
  | `:not()` | CSS `:not()` negation (prefer `!:is()`) | `:not(:first-child)` |
294
295
  | `:where()` | CSS `:where()` (zero specificity) | `:where(Section)` |
295
296
 
297
+ > **Specificity.** All state selectors Tasty generates (modifiers, pseudo-classes,
298
+ > `:is()`/`:not()` groups, and `@root` / `@parent` context) are wrapped in
299
+ > `:where(...)` so they carry **zero specificity**. The only specificity anchors
300
+ > are the doubled component class (`.t0.t0`) and sub-element `[data-element]`
301
+ > attributes. This means overlapping rules (e.g. an `@fallback` floor and the
302
+ > states layered over it) resolve purely by **source order** — Tasty emits
303
+ > lower-priority states first and higher-priority states last so the cascade
304
+ > produces the intended winner.
305
+
296
306
  ### `@media(...)` — Media Queries
297
307
 
298
308
  Media queries support dimension shorthands and custom unit expansion:
@@ -374,6 +384,61 @@ display: {
374
384
  }
375
385
  ```
376
386
 
387
+ ### `@fallback` — Negation Opt-out
388
+
389
+ By default Tasty makes states **mutually exclusive**: a higher-priority state
390
+ turns the lower-priority ones off via negation, so exactly one branch applies.
391
+ This relies on `A | !A` always being true. CSS feature/container queries break
392
+ that assumption: `@supports(...)` and `@(...)` queries can be **unknown** (not
393
+ just true/false), and `not(unknown)` is also unknown — so a negated default
394
+ branch silently never applies. The classic case is `scroll-state`: a browser can
395
+ support `container-type: scroll-state` while a specific `scroll-state(...)` query
396
+ is unknown, leaving *no* branch active.
397
+
398
+ `@fallback` solves this. Mark an entry with `@fallback` (as a top-level `&` atom
399
+ on the key) and it **opts out of receiving negation** from higher-priority
400
+ states: it persists as a guaranteed floor, and higher-priority states simply
401
+ layer over it via the cascade.
402
+
403
+ ```jsx
404
+ inset: {
405
+ '@fallback': '0 top',
406
+ '@supports(container-type: scroll-state) & @(scroll-state(scrolled: block-end))':
407
+ '-80x top',
408
+ }
409
+ ```
410
+
411
+ ```css
412
+ .t0.t0 { inset: 0 ...; }
413
+ @container scroll-state(scrolled: block-end) {
414
+ @supports (container-type: scroll-state) {
415
+ .t0.t0 { inset: -80px ...; }
416
+ }
417
+ }
418
+ ```
419
+
420
+ The base is emitted as a bare rule (no negated `@supports` / container branches),
421
+ so it always applies. When the override matches it wins because it is emitted
422
+ later and all state selectors share the same specificity (see the note on
423
+ `:where()` below).
424
+
425
+ | Form | Meaning |
426
+ |------|---------|
427
+ | `'@fallback'` | Default floor (condition = always). Never negated by higher-priority states. |
428
+ | `'@fallback & hovered'` | Conditional fallback. Applies under `hovered`; not negated by higher-priority states, but still negates lower-priority ones. |
429
+
430
+ Notes:
431
+
432
+ - `@fallback` only changes whether the entry **receives** negation. It still
433
+ **negates lower-priority entries**, so the cascade below it stays mutually
434
+ exclusive.
435
+ - `@fallback` must be a top-level `&` atom. Using it inside an `|` (OR) or `^`
436
+ (XOR) group is ignored with a dev warning.
437
+ - `@fallback` is reserved and cannot be redefined via `configure({ states })`
438
+ or a local `@name` state.
439
+ - `@fallback(<state>)` (selective opt-out from one specific higher-priority
440
+ state) is reserved for future use and not implemented yet.
441
+
377
442
  ### `@root(...)` — Root Element States
378
443
 
379
444
  Root states generate selectors on the `:root` element. They are useful for theme modes, feature flags, and other page-level conditions:
@@ -76,7 +76,7 @@ Output: CSSRule[]
76
76
 
77
77
  **Simplification** (`simplifyCondition` in `simplify.ts`) is not a separate numbered stage. It runs inside OR expansion, exclusive building, `expandExclusiveOrs` branch cleanup, combination ANDs, merge-by-value ORs, and materialization. Every call is cached by condition unique-id, so the repetition is cheap.
78
78
 
79
- **Post-pass:** After `processStyles` collects rules from every handler, `runPipeline` (`index.ts:188`) filters duplicates using a key of `selector|declarations|atRules|rootPrefix|startingStyle` and then reorders rules so every `@starting-style` rule is emitted **after** all normal rules. This ordering is cascade-critical: `@starting-style` rules share specificity with their normal counterparts, and source order decides which value wins.
79
+ **Post-pass:** After `processStyles` collects rules from every handler, `runPipeline` (`index.ts`) filters duplicates using a key of `selector|declarations|atRules|rootPrefix|startingStyle`, then **stable-sorts rules by their cascade `order` hint (ascending source priority)** so lower-priority rules come first and higher-priority rules win, and finally emits every `@starting-style` rule **after** all normal rules. The `order` hint is the highest source priority among the entries that produced each rule (threaded `ComputedRule → CSSRule`). This ordering is cascade-critical because Stage 7 equalizes specificity with `:where()`: once every state selector carries zero specificity, source order alone decides which of two overlapping rules wins — most importantly the `@fallback` floor (low order, emitted first) versus the states layered over it, and `@starting-style` versus its normal counterpart. Mutually-exclusive rules are unaffected by ordering (they never both match), so reordering them is safe.
80
80
 
81
81
  ---
82
82
 
@@ -293,6 +293,23 @@ C: C & !A & !B (applies only when neither A nor B)
293
293
 
294
294
  Each exclusive condition is passed through `simplifyCondition`. Entries that simplify to `FALSE` (impossible) are filtered out. The default state (`''` → `TrueCondition`) is not added to the “prior” list for negation (see `buildExclusiveConditions`).
295
295
 
296
+ ### `@fallback` entries (negation opt-out)
297
+
298
+ An entry flagged `fallback: true` (from the `@fallback` state-key token) is the
299
+ one exception to the negation cascade above. A `fallback` entry **skips
300
+ receiving `!prior`** — its exclusive condition stays its own condition (`TRUE`
301
+ for the default `@fallback`) so it persists as a floor and a higher-priority
302
+ state cannot turn it off. It is **still pushed into the prior list** (subject to
303
+ the usual non-`TRUE` guard), so lower-priority entries are still negated by it
304
+ and the cascade below it stays mutually exclusive. `fallback` entries are never
305
+ merged with non-`fallback` entries in Stage 1 (they get their own value bucket).
306
+
307
+ This exists to fix the *unknown-query hole*: CSS three-valued logic makes
308
+ `not(unknown) = unknown`, so a negated `@supports(...)` / container-query default
309
+ branch silently never applies. A `@fallback` floor sidesteps negation entirely
310
+ and lets the positive override layer on top via the cascade (see Stage 7's
311
+ `:where()` equalization and the ascending-priority post-pass).
312
+
296
313
  ### Why
297
314
 
298
315
  This eliminates CSS specificity wars. Instead of relying on cascade order, each CSS rule matches in exactly one scenario. Benefits:
@@ -333,17 +350,24 @@ This is the companion to **Stage 2a** (user-OR expansion). The split exists beca
333
350
 
334
351
  1. Collect top-level OR branches of `exclusiveCondition`.
335
352
  2. If there is no OR (single branch), the entry is unchanged. Pure selector ORs with no at-rule context are also left alone (materialization handles them via `:is()` / variant merging).
336
- 3. Otherwise `sortOrBranchesForExpansion` reorders branches so at-rule-heavy branches come first. This is load-bearing for correctness (see below).
353
+ 3. Otherwise `sortOrBranchesForExpansion` reorders branches by a three-tier rank — `@supports` branches first, then other at-rule branches (media / container / starting), then pure-selector branches. This is load-bearing for correctness (see below).
337
354
  4. Each branch is made exclusive against prior branches: `branch & !prior[0] & !prior[1] & ...`, then simplified.
338
355
  5. Impossible branches are dropped; expanded entries get a synthetic `stateKey` suffix like `[or:0]`.
339
356
 
340
357
  ### Why the sort matters
341
358
 
342
- Consider `!A | !B` where A is an at-rule (e.g. `@supports(grid)`) and B is a modifier (e.g. `:has(foo)`):
359
+ **At-rules before selectors.** Consider `!A | !B` where A is an at-rule (e.g. `@supports(grid)`) and B is a modifier (e.g. `:has(foo)`):
343
360
 
344
361
  - **With at-rule-first sort** (`!A`, then `!B & A`): the first branch emits "outside `@supports`", the second emits "inside `@supports` with `:not(:has(foo))`". Full coverage.
345
362
  - **Without the sort** (`!B`, then `!A & B`): the first branch emits `:not(:has(foo))` as a bare selector with no at-rule context — leaking the rule outside `@supports`. The second is incomplete.
346
363
 
364
+ **`@supports` before other at-rules (Kleene logic).** A `@supports` feature query is special: anything ANDed with it can become *unknown* — not simply false — when the feature is unsupported. The canonical case is a feature guard over a dependent query, e.g. `@supports(container-type: scroll-state) & @(scroll-state(scrolled: block-end))` (`S & C`). The default's exclusive is `!(S & C) = !S | !C`, which `simplify` sorts alphabetically into `[!C, !S]`.
365
+
366
+ - **Expanding `!C` first** emits a bare `@container (not scroll-state(...))` rule. In a browser without `scroll-state` support that query is unknown (not false), so it matches nothing and the default `inset` is never applied — a coverage hole.
367
+ - **Expanding `!S` first** yields `!S | (S & !C)`: a bare `@supports (not (container-type: scroll-state))` fallback carrying the default, plus the dependent negation nested inside the supported scope. Full coverage, and the unsupported path never references the guarded query.
368
+
369
+ Because `!S | (S & !R) ≡ !S | !R` in two-valued logic, this reordering is a no-op for cases without an `@supports` guard. The same supports-first ordering is also applied in `makeOrBranchesExclusive` (`materialize.ts`) for ORs that survive nested inside an AND (e.g. `compact & (!S | !C)`).
370
+
347
371
  The pre-build Stage 2a pass doesn't need this because user-authored ORs aren't produced by negation and their branches are expected to apply in each branch's own scope.
348
372
 
349
373
  ### Example (conceptual)
@@ -470,7 +494,15 @@ Converts condition trees into actual CSS selectors and at-rules.
470
494
 
471
495
  3. **Contradiction detection**: During variant merging, impossible combinations are dropped (e.g. conflicting media, root, or modifier negations).
472
496
 
473
- 4. **`materializeComputedRule`**: Groups variants by sorted at-rules plus root-prefix key; within each group, `mergeVariantsIntoSelectorGroups` merges variants that differ only in flat modifier/pseudo parts; builds selector strings and emits one or more `CSSRule` objects.
497
+ 4. **`materializeComputedRule`**: Groups variants by sorted at-rules plus root-prefix key; within each group, `mergeVariantsIntoSelectorGroups` merges variants that differ only in flat modifier/pseudo parts; builds selector strings and emits one or more `CSSRule` objects. The rule's `order` hint (cascade priority) is propagated here for the post-pass sort.
498
+
499
+ 5. **`:where()` specificity equalization**: Every stateful part of the selector is wrapped in `:where(...)` so it contributes **zero specificity**:
500
+ - the flat root modifiers + pseudos and the root element's `:is()`/`:not()` groups are combined into one `:where(...)` (`buildSelectorFromVariant`);
501
+ - the sub-element (`@own`) groups are wrapped in a **separate** `:where(...)` so the sub-element's structural `[data-element="X"]` specificity is preserved while its states are zeroed;
502
+ - `@parent` ancestors (`parentGroupsToCSS`) become `:where(... *)` / `:where(:not(... *))`;
503
+ - the `@root` context prefix (`rootGroupsToCSS`) becomes `:where(:root...)` (zeroing the `:root` pseudo too).
504
+
505
+ The only specificity anchors that remain are the doubled component class (`.tXX.tXX`, added by the injector) and sub-element `[data-element]` attributes. Because Stage 2b already makes ordinary rules mutually exclusive, zeroing specificity never changes *which* rule matches — it only makes additive layering (`@fallback`, `@starting-style`) resolve deterministically by source order (see the post-pass). Canonical sorting/dedup/subsumption still run first; `:where()` is only the final wrapper, and both output paths (injector and direct-selector / SSR) consume the same wrapped fragments.
474
506
 
475
507
  ### Why
476
508
 
@@ -491,6 +523,8 @@ interface CSSRule {
491
523
  declarations: string; // CSS declarations (e.g. 'color: red;')
492
524
  atRules?: string[]; // Wrapping at-rules
493
525
  rootPrefix?: string; // Root state prefix
526
+ startingStyle?: boolean; // Wrap declarations in @starting-style
527
+ order?: number; // Internal cascade order hint (ascending source priority); stripped before injection
494
528
  }
495
529
  ```
496
530
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.0.0-canary-dcac388",
3
+ "version": "0.0.0-canary-c0382e7",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -80,7 +80,7 @@
80
80
  "@tabler/icons-react": "^3.31.0",
81
81
  "@tanstack/react-virtual": "^3.13.12",
82
82
  "@tenphi/glaze": "0.13.0",
83
- "@tenphi/tasty": "2.6.4",
83
+ "@tenphi/tasty": "0.0.0-snapshot.93acf5b",
84
84
  "clipboard-copy": "^4.0.1",
85
85
  "clsx": "^1.1.1",
86
86
  "diff": "^8.0.3",