@cube-dev/ui-kit 0.117.0 → 0.119.0

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 (1026) hide show
  1. package/dist/CHANGELOG.md +32 -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.d.ts +1 -2
  12. package/dist/components/Block.js +2 -5
  13. package/dist/components/Block.js.map +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +2 -57
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.d.ts +1 -2
  18. package/dist/components/GridProvider.js +2 -3
  19. package/dist/components/GridProvider.js.map +1 -1
  20. package/dist/components/HiddenInput.js +2 -2
  21. package/dist/components/HiddenInput.js.map +1 -1
  22. package/dist/components/Root.d.ts +1 -2
  23. package/dist/components/Root.js +2 -6
  24. package/dist/components/Root.js.map +1 -1
  25. package/dist/components/actions/Action/Action.d.ts +1 -2
  26. package/dist/components/actions/Action/Action.js +2 -4
  27. package/dist/components/actions/Action/Action.js.map +1 -1
  28. package/dist/components/actions/Banner/Banner.d.ts +1 -1
  29. package/dist/components/actions/Banner/Banner.js +5 -5
  30. package/dist/components/actions/Banner/Banner.js.map +1 -1
  31. package/dist/components/actions/Button/Button.d.ts +2 -1769
  32. package/dist/components/actions/Button/Button.js +2 -4
  33. package/dist/components/actions/Button/Button.js.map +1 -1
  34. package/dist/components/actions/ButtonGroup/ButtonGroup.js +2 -2
  35. package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
  36. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +1 -3
  37. package/dist/components/actions/CommandMenu/CommandMenu.js +2 -4
  38. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  39. package/dist/components/actions/CommandMenu/styled.js +3 -3
  40. package/dist/components/actions/CommandMenu/styled.js.map +1 -1
  41. package/dist/components/actions/ItemAction/ItemAction.d.ts +1 -3
  42. package/dist/components/actions/ItemAction/ItemAction.js +2 -2
  43. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  44. package/dist/components/actions/ItemActionContext.js +1 -1
  45. package/dist/components/actions/ItemButton/ItemButton.d.ts +1 -2
  46. package/dist/components/actions/ItemButton/ItemButton.js +2 -2
  47. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  48. package/dist/components/actions/Link/Link.js +1 -1
  49. package/dist/components/actions/Menu/Menu.d.ts +1 -3
  50. package/dist/components/actions/Menu/Menu.js +2 -4
  51. package/dist/components/actions/Menu/Menu.js.map +1 -1
  52. package/dist/components/actions/Menu/MenuItem.d.ts +1 -2
  53. package/dist/components/actions/Menu/MenuItem.js +1 -1
  54. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  55. package/dist/components/actions/Menu/MenuSection.d.ts +1 -2
  56. package/dist/components/actions/Menu/MenuSection.js +1 -1
  57. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  58. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  59. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  60. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  61. package/dist/components/actions/Menu/context.js +1 -1
  62. package/dist/components/actions/Menu/styled.js +2 -2
  63. package/dist/components/actions/Menu/styled.js.map +1 -1
  64. package/dist/components/actions/index.js +1 -1
  65. package/dist/components/actions/use-action.d.ts +1 -2
  66. package/dist/components/actions/use-action.js +2 -2
  67. package/dist/components/actions/use-action.js.map +1 -1
  68. package/dist/components/actions/use-anchored-menu.js +1 -1
  69. package/dist/components/actions/use-context-menu.js +1 -1
  70. package/dist/components/content/ActiveZone/ActiveZone.d.ts +1 -2
  71. package/dist/components/content/ActiveZone/ActiveZone.js +2 -5
  72. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  73. package/dist/components/content/Alert/Alert.js +2 -2
  74. package/dist/components/content/Alert/Alert.js.map +1 -1
  75. package/dist/components/content/Alert/types.d.ts +1 -2
  76. package/dist/components/content/Alert/use-alert.js +2 -4
  77. package/dist/components/content/Alert/use-alert.js.map +1 -1
  78. package/dist/components/content/Avatar/Avatar.d.ts +1 -3
  79. package/dist/components/content/Avatar/Avatar.js +2 -5
  80. package/dist/components/content/Avatar/Avatar.js.map +1 -1
  81. package/dist/components/content/Badge/Badge.js +2 -2
  82. package/dist/components/content/Badge/Badge.js.map +1 -1
  83. package/dist/components/content/Card/Card.d.ts +1 -2
  84. package/dist/components/content/Card/Card.js +2 -5
  85. package/dist/components/content/Card/Card.js.map +1 -1
  86. package/dist/components/content/Content.d.ts +1 -2
  87. package/dist/components/content/Content.js +2 -5
  88. package/dist/components/content/Content.js.map +1 -1
  89. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.d.ts +1 -3
  90. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -4
  91. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  92. package/dist/components/content/CopySnippet/CopySnippet.js +2 -2
  93. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  94. package/dist/components/content/Disclosure/Disclosure.d.ts +1 -3
  95. package/dist/components/content/Disclosure/Disclosure.js +2 -4
  96. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  97. package/dist/components/content/Divider.d.ts +1 -2
  98. package/dist/components/content/Divider.js +2 -4
  99. package/dist/components/content/Divider.js.map +1 -1
  100. package/dist/components/content/Footer.d.ts +1 -2
  101. package/dist/components/content/Footer.js +2 -5
  102. package/dist/components/content/Footer.js.map +1 -1
  103. package/dist/components/content/Header.d.ts +1 -2
  104. package/dist/components/content/Header.js +2 -5
  105. package/dist/components/content/Header.js.map +1 -1
  106. package/dist/components/content/HotKeys/HotKeys.d.ts +1 -2
  107. package/dist/components/content/HotKeys/HotKeys.js +2 -5
  108. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  109. package/dist/components/content/Item/Item.d.ts +1 -3
  110. package/dist/components/content/Item/Item.js +2 -3
  111. package/dist/components/content/Item/Item.js.map +1 -1
  112. package/dist/components/content/ItemBadge/ItemBadge.d.ts +1 -2
  113. package/dist/components/content/ItemBadge/ItemBadge.js +2 -2
  114. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  115. package/dist/components/content/Layout/GridLayout.d.ts +1 -2
  116. package/dist/components/content/Layout/GridLayout.js +2 -2
  117. package/dist/components/content/Layout/GridLayout.js.map +1 -1
  118. package/dist/components/content/Layout/Layout.d.ts +1 -3
  119. package/dist/components/content/Layout/Layout.js +3 -7
  120. package/dist/components/content/Layout/Layout.js.map +1 -1
  121. package/dist/components/content/Layout/LayoutBlock.js +2 -2
  122. package/dist/components/content/Layout/LayoutBlock.js.map +1 -1
  123. package/dist/components/content/Layout/LayoutCenter.js +2 -2
  124. package/dist/components/content/Layout/LayoutCenter.js.map +1 -1
  125. package/dist/components/content/Layout/LayoutContainer.d.ts +1 -3
  126. package/dist/components/content/Layout/LayoutContainer.js +2 -6
  127. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  128. package/dist/components/content/Layout/LayoutContent.d.ts +1 -2
  129. package/dist/components/content/Layout/LayoutContent.js +2 -6
  130. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  131. package/dist/components/content/Layout/LayoutContext.js +1 -1
  132. package/dist/components/content/Layout/LayoutFlex.js +2 -2
  133. package/dist/components/content/Layout/LayoutFlex.js.map +1 -1
  134. package/dist/components/content/Layout/LayoutFooter.js +2 -2
  135. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  136. package/dist/components/content/Layout/LayoutGrid.d.ts +1 -2
  137. package/dist/components/content/Layout/LayoutGrid.js +2 -2
  138. package/dist/components/content/Layout/LayoutGrid.js.map +1 -1
  139. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  140. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  141. package/dist/components/content/Layout/LayoutPane.d.ts +1 -3
  142. package/dist/components/content/Layout/LayoutPane.js +2 -6
  143. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  144. package/dist/components/content/Layout/LayoutPanel.d.ts +1 -3
  145. package/dist/components/content/Layout/LayoutPanel.js +2 -6
  146. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  147. package/dist/components/content/Layout/LayoutPanelHeader.d.ts +1 -2
  148. package/dist/components/content/Layout/LayoutPanelHeader.js +2 -4
  149. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  150. package/dist/components/content/Layout/LayoutToolbar.js +2 -2
  151. package/dist/components/content/Layout/LayoutToolbar.js.map +1 -1
  152. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  153. package/dist/components/content/Layout/index.js +1 -1
  154. package/dist/components/content/Layout/utils.js +1 -1
  155. package/dist/components/content/Paragraph.d.ts +1 -2
  156. package/dist/components/content/Paragraph.js +2 -3
  157. package/dist/components/content/Paragraph.js.map +1 -1
  158. package/dist/components/content/Placeholder/Placeholder.d.ts +1 -3
  159. package/dist/components/content/Placeholder/Placeholder.js +2 -6
  160. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  161. package/dist/components/content/PrismCode/PrismCode.d.ts +1 -3
  162. package/dist/components/content/PrismCode/PrismCode.js +2 -3
  163. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  164. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  165. package/dist/components/content/PrismDiffCode/PrismDiffCode.d.ts +1 -3
  166. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  167. package/dist/components/content/PrismDiffCode/PrismDiffCode.js.map +1 -1
  168. package/dist/components/content/Result/Result.d.ts +1 -2
  169. package/dist/components/content/Result/Result.js +2 -5
  170. package/dist/components/content/Result/Result.js.map +1 -1
  171. package/dist/components/content/Skeleton/Skeleton.d.ts +1 -2
  172. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  173. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  174. package/dist/components/content/Tag/Tag.d.ts +1 -2
  175. package/dist/components/content/Tag/Tag.js +2 -2
  176. package/dist/components/content/Tag/Tag.js.map +1 -1
  177. package/dist/components/content/Text.d.ts +128 -159
  178. package/dist/components/content/Text.js +2 -5
  179. package/dist/components/content/Text.js.map +1 -1
  180. package/dist/components/content/TextItem/TextItem.d.ts +1 -2
  181. package/dist/components/content/TextItem/TextItem.js +2 -5
  182. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  183. package/dist/components/content/Title.d.ts +1 -2
  184. package/dist/components/content/Title.js +2 -5
  185. package/dist/components/content/Title.js.map +1 -1
  186. package/dist/components/content/highlightText.js +1 -1
  187. package/dist/components/content/highlightText.js.map +1 -1
  188. package/dist/components/content/use-auto-tooltip.d.ts +1 -1
  189. package/dist/components/content/use-auto-tooltip.js +1 -1
  190. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  191. package/dist/components/fields/Checkbox/Checkbox.d.ts +1 -3
  192. package/dist/components/fields/Checkbox/Checkbox.js +2 -5
  193. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  194. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +1 -3
  195. package/dist/components/fields/Checkbox/CheckboxGroup.js +2 -4
  196. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  197. package/dist/components/fields/Checkbox/context.js +1 -1
  198. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -3
  199. package/dist/components/fields/ComboBox/ComboBox.js +2 -4
  200. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  201. package/dist/components/fields/DatePicker/DateInput.d.ts +1 -3
  202. package/dist/components/fields/DatePicker/DateInput.js +2 -3
  203. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  204. package/dist/components/fields/DatePicker/DateInputBase.js +2 -4
  205. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  206. package/dist/components/fields/DatePicker/DatePicker.d.ts +1 -3
  207. package/dist/components/fields/DatePicker/DatePicker.js +2 -3
  208. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  209. package/dist/components/fields/DatePicker/DatePickerButton.js +2 -2
  210. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  211. package/dist/components/fields/DatePicker/DatePickerElement.js +2 -2
  212. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  213. package/dist/components/fields/DatePicker/DatePickerInput.js +2 -2
  214. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  215. package/dist/components/fields/DatePicker/DatePickerSegment.js +2 -2
  216. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  217. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +1 -3
  218. package/dist/components/fields/DatePicker/DateRangePicker.js +2 -4
  219. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  220. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +1 -3
  221. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +2 -4
  222. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  223. package/dist/components/fields/DatePicker/TimeInput.d.ts +1 -3
  224. package/dist/components/fields/DatePicker/TimeInput.js +2 -3
  225. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  226. package/dist/components/fields/DatePicker/intl.js +1 -1
  227. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  228. package/dist/components/fields/DatePicker/props.js +1 -1
  229. package/dist/components/fields/DatePicker/utils.js +1 -1
  230. package/dist/components/fields/FileInput/FileInput.d.ts +1 -3
  231. package/dist/components/fields/FileInput/FileInput.js +2 -4
  232. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  233. package/dist/components/fields/FilterListBox/FilterListBox.d.ts +1 -2
  234. package/dist/components/fields/FilterListBox/FilterListBox.js +5 -7
  235. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  236. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +1 -3
  237. package/dist/components/fields/FilterPicker/FilterPicker.js +2 -5
  238. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  239. package/dist/components/fields/Input/Input.js +1 -1
  240. package/dist/components/fields/ListBox/ListBox.d.ts +1 -3
  241. package/dist/components/fields/ListBox/ListBox.js +2 -5
  242. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  243. package/dist/components/fields/NumberInput/NumberInput.js +2 -2
  244. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  245. package/dist/components/fields/NumberInput/StepButton.js +2 -2
  246. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  247. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  248. package/dist/components/fields/Picker/Picker.d.ts +1 -3
  249. package/dist/components/fields/Picker/Picker.js +2 -5
  250. package/dist/components/fields/Picker/Picker.js.map +1 -1
  251. package/dist/components/fields/RadioGroup/Radio.d.ts +1 -2
  252. package/dist/components/fields/RadioGroup/Radio.js +2 -5
  253. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  254. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +1 -3
  255. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -4
  256. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  257. package/dist/components/fields/RadioGroup/context.js +1 -1
  258. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  259. package/dist/components/fields/Select/Select.d.ts +834 -836
  260. package/dist/components/fields/Select/Select.js +2 -4
  261. package/dist/components/fields/Select/Select.js.map +1 -1
  262. package/dist/components/fields/Slider/Gradation.js +1 -1
  263. package/dist/components/fields/Slider/HueSlider.js +1 -1
  264. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  265. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  266. package/dist/components/fields/Slider/Slider.d.ts +1 -3
  267. package/dist/components/fields/Slider/Slider.js +2 -3
  268. package/dist/components/fields/Slider/Slider.js.map +1 -1
  269. package/dist/components/fields/Slider/SliderBase.js +2 -4
  270. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  271. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  272. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  273. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  274. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  275. package/dist/components/fields/Slider/elements.js +2 -2
  276. package/dist/components/fields/Slider/elements.js.map +1 -1
  277. package/dist/components/fields/Slider/index.js +1 -1
  278. package/dist/components/fields/Slider/types.d.ts +1 -3
  279. package/dist/components/fields/Switch/Switch.d.ts +1 -3
  280. package/dist/components/fields/Switch/Switch.js +2 -4
  281. package/dist/components/fields/Switch/Switch.js.map +1 -1
  282. package/dist/components/fields/TextArea/TextArea.js +1 -1
  283. package/dist/components/fields/TextInput/TextInput.js +1 -1
  284. package/dist/components/fields/TextInput/TextInputBase.d.ts +1 -3
  285. package/dist/components/fields/TextInput/TextInputBase.js +3 -5
  286. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  287. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  288. package/dist/components/form/FieldWrapper/FieldWrapper.js +2 -2
  289. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  290. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  291. package/dist/components/form/FieldWrapper/types.d.ts +1 -3
  292. package/dist/components/form/Form/Field.d.ts +1 -2
  293. package/dist/components/form/Form/Field.js +1 -1
  294. package/dist/components/form/Form/Field.js.map +1 -1
  295. package/dist/components/form/Form/Form.d.ts +1 -3
  296. package/dist/components/form/Form/Form.js +2 -5
  297. package/dist/components/form/Form/Form.js.map +1 -1
  298. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  299. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  300. package/dist/components/form/Form/SubmitError.js +1 -1
  301. package/dist/components/form/Form/index.js +1 -1
  302. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  303. package/dist/components/form/Form/use-field/use-field.js +1 -1
  304. package/dist/components/form/Form/use-form.js +2 -2
  305. package/dist/components/form/Form/use-form.js.map +1 -1
  306. package/dist/components/form/Form/validation.js +1 -1
  307. package/dist/components/form/Label.d.ts +1 -3
  308. package/dist/components/form/Label.js +2 -5
  309. package/dist/components/form/Label.js.map +1 -1
  310. package/dist/components/form/wrapper.d.ts +1 -2
  311. package/dist/components/form/wrapper.js +1 -1
  312. package/dist/components/form/wrapper.js.map +1 -1
  313. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  314. package/dist/components/helpers/IconSwitch/IconSwitch.js +2 -2
  315. package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
  316. package/dist/components/layout/Flex.d.ts +1 -2
  317. package/dist/components/layout/Flex.js +2 -5
  318. package/dist/components/layout/Flex.js.map +1 -1
  319. package/dist/components/layout/Flow.d.ts +1 -2
  320. package/dist/components/layout/Flow.js +2 -5
  321. package/dist/components/layout/Flow.js.map +1 -1
  322. package/dist/components/layout/Grid.d.ts +1 -2
  323. package/dist/components/layout/Grid.js +2 -5
  324. package/dist/components/layout/Grid.js.map +1 -1
  325. package/dist/components/layout/Panel.d.ts +1 -3
  326. package/dist/components/layout/Panel.js +2 -3
  327. package/dist/components/layout/Panel.js.map +1 -1
  328. package/dist/components/layout/Prefix.d.ts +1 -2
  329. package/dist/components/layout/Prefix.js +2 -5
  330. package/dist/components/layout/Prefix.js.map +1 -1
  331. package/dist/components/layout/ResizablePanel.d.ts +1 -2
  332. package/dist/components/layout/ResizablePanel.js +2 -2
  333. package/dist/components/layout/ResizablePanel.js.map +1 -1
  334. package/dist/components/layout/Space.d.ts +1 -2
  335. package/dist/components/layout/Space.js +2 -5
  336. package/dist/components/layout/Space.js.map +1 -1
  337. package/dist/components/layout/Suffix.d.ts +1 -2
  338. package/dist/components/layout/Suffix.js +2 -5
  339. package/dist/components/layout/Suffix.js.map +1 -1
  340. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  341. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  342. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  343. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  344. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  345. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  346. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  347. package/dist/components/navigation/Tabs/Tabs.js +2 -4
  348. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  349. package/dist/components/navigation/Tabs/TabsAction.js +2 -2
  350. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  351. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  352. package/dist/components/navigation/Tabs/styled.js +2 -2
  353. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  354. package/dist/components/navigation/Tabs/types.d.ts +1 -3
  355. package/dist/components/navigation/Tabs/types.js +1 -1
  356. package/dist/components/navigation/Tabs/types.js.map +1 -1
  357. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  358. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  359. package/dist/components/organisms/FileTabs/FileTabs.d.ts +1 -2
  360. package/dist/components/organisms/FileTabs/FileTabs.js +2 -2
  361. package/dist/components/organisms/FileTabs/FileTabs.js.map +1 -1
  362. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  363. package/dist/components/other/Calendar/Calendar.js +2 -2
  364. package/dist/components/other/Calendar/Calendar.js.map +1 -1
  365. package/dist/components/other/Calendar/CalendarCell.js +2 -2
  366. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  367. package/dist/components/other/Calendar/CalendarGrid.js +2 -2
  368. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  369. package/dist/components/other/Calendar/RangeCalendar.js +2 -2
  370. package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
  371. package/dist/components/other/CloudLogo/CloudLogo.js +2 -2
  372. package/dist/components/other/CloudLogo/CloudLogo.js.map +1 -1
  373. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  374. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  375. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  376. package/dist/components/overlays/AlertDialog/types.d.ts +1 -1
  377. package/dist/components/overlays/Dialog/Dialog.d.ts +1 -3
  378. package/dist/components/overlays/Dialog/Dialog.js +2 -4
  379. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  380. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  381. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  382. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +1 -2
  383. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  384. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  385. package/dist/components/overlays/Dialog/context.js +1 -1
  386. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  387. package/dist/components/overlays/Modal/Modal.d.ts +1 -1
  388. package/dist/components/overlays/Modal/Modal.js +2 -2
  389. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  390. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  391. package/dist/components/overlays/Modal/Overlay.js +1 -1
  392. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  393. package/dist/components/overlays/Modal/Popover.d.ts +1 -1
  394. package/dist/components/overlays/Modal/Popover.js +2 -2
  395. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  396. package/dist/components/overlays/Modal/Tray.d.ts +1 -1
  397. package/dist/components/overlays/Modal/Tray.js +2 -2
  398. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  399. package/dist/components/overlays/Modal/Underlay.js +2 -2
  400. package/dist/components/overlays/Modal/Underlay.js.map +1 -1
  401. package/dist/components/overlays/Notifications/Notification.js +2 -2
  402. package/dist/components/overlays/Notifications/Notification.js.map +1 -1
  403. package/dist/components/overlays/Notifications/NotificationAction.js +10 -4
  404. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  405. package/dist/components/overlays/Notifications/NotificationCard.d.ts +5 -2
  406. package/dist/components/overlays/Notifications/NotificationCard.js +9 -7
  407. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  408. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  409. package/dist/components/overlays/Notifications/NotificationItem.d.ts +3 -1
  410. package/dist/components/overlays/Notifications/NotificationItem.js +8 -7
  411. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  412. package/dist/components/overlays/Notifications/OverlayContainer.js +6 -5
  413. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  414. package/dist/components/overlays/Notifications/OverlayProvider.js +2 -1
  415. package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
  416. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +3 -3
  417. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  418. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  419. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  420. package/dist/components/overlays/Notifications/index.js +1 -1
  421. package/dist/components/overlays/Notifications/types.d.ts +4 -2
  422. package/dist/components/overlays/Notifications/use-notification-state.js +48 -2
  423. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  424. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  425. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  426. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  427. package/dist/components/overlays/Notifications/use-persistent-state.js +8 -1
  428. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  429. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  430. package/dist/components/overlays/Toast/ToastItem.js +2 -2
  431. package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
  432. package/dist/components/overlays/Toast/index.js +1 -1
  433. package/dist/components/overlays/Toast/types.d.ts +2 -0
  434. package/dist/components/overlays/Toast/useProgressToast.js +49 -21
  435. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  436. package/dist/components/overlays/Toast/useToast.js +2 -2
  437. package/dist/components/overlays/Tooltip/Tooltip.d.ts +1 -3
  438. package/dist/components/overlays/Tooltip/Tooltip.js +2 -4
  439. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  440. package/dist/components/overlays/Tooltip/TooltipProvider.d.ts +1 -2
  441. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  442. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  443. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  444. package/dist/components/overlays/Tooltip/context.js +1 -1
  445. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  446. package/dist/components/portal/Portal.js +1 -1
  447. package/dist/components/portal/PortalProvider.js +1 -1
  448. package/dist/components/portal/usePortal.js +1 -1
  449. package/dist/components/shared/InvalidIcon.js +1 -1
  450. package/dist/components/shared/ValidIcon.js +1 -1
  451. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +2 -2
  452. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  453. package/dist/components/status/Spin/Cube.js +2 -2
  454. package/dist/components/status/Spin/Cube.js.map +1 -1
  455. package/dist/components/status/Spin/InternalSpinner.js +2 -2
  456. package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
  457. package/dist/components/status/Spin/Spin.js +2 -2
  458. package/dist/components/status/Spin/Spin.js.map +1 -1
  459. package/dist/components/status/Spin/SpinsContainer.js +2 -2
  460. package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
  461. package/dist/components/status/Spin/types.d.ts +1 -2
  462. package/dist/data/item-themes.d.ts +1 -1
  463. package/dist/data/item-themes.js +1 -1
  464. package/dist/data/item-themes.js.map +1 -1
  465. package/dist/data/themes.js +1 -1
  466. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  467. package/dist/icons/AdjustmentsIcon.js +1 -1
  468. package/dist/icons/AiIcon.js +1 -1
  469. package/dist/icons/AreaChartIcon.js +1 -1
  470. package/dist/icons/BackwardIcon.js +1 -1
  471. package/dist/icons/BarChartIcon.js +1 -1
  472. package/dist/icons/BellFilledIcon.js +1 -1
  473. package/dist/icons/BellIcon.js +1 -1
  474. package/dist/icons/BooleanIcon.js +1 -1
  475. package/dist/icons/CalendarEditIcon.js +1 -1
  476. package/dist/icons/CalendarIcon.js +1 -1
  477. package/dist/icons/CaretDownIcon.js +1 -1
  478. package/dist/icons/CaretUpIcon.js +1 -1
  479. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  480. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  481. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  482. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  483. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  484. package/dist/icons/ChartBarLineIcon.js +1 -1
  485. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  486. package/dist/icons/ChartBarStackedIcon.js +1 -1
  487. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  488. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  489. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  490. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  491. package/dist/icons/ChartBubbleIcon.js +1 -1
  492. package/dist/icons/ChartDonut2Icon.js +1 -1
  493. package/dist/icons/ChartFunnelIcon.js +1 -1
  494. package/dist/icons/ChartHeatmapIcon.js +1 -1
  495. package/dist/icons/ChartKPIIcon.js +1 -1
  496. package/dist/icons/ChartPie2Icon.js +1 -1
  497. package/dist/icons/ChartScatterIcon.js +1 -1
  498. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  499. package/dist/icons/CheckCircleIcon.js +1 -1
  500. package/dist/icons/CheckIcon.js +1 -1
  501. package/dist/icons/CircleFilledIcon.js +1 -1
  502. package/dist/icons/ClearIcon.js +1 -1
  503. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  504. package/dist/icons/CloseCircleIcon.js +1 -1
  505. package/dist/icons/CloseIcon.js +1 -1
  506. package/dist/icons/CodeIcon.js +1 -1
  507. package/dist/icons/ColumnTotalIcon.js +1 -1
  508. package/dist/icons/CopyIcon.js +1 -1
  509. package/dist/icons/CountIcon.js +1 -1
  510. package/dist/icons/CubeIcon.js +1 -1
  511. package/dist/icons/CubePauseIcon.js +1 -1
  512. package/dist/icons/CubePlayIcon.js +1 -1
  513. package/dist/icons/CurrencyDollarIcon.js +1 -1
  514. package/dist/icons/DangerIcon.js +1 -1
  515. package/dist/icons/DashboardIcon.js +1 -1
  516. package/dist/icons/DatabaseIcon.js +1 -1
  517. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  518. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  519. package/dist/icons/DirectionIcon.js +2 -2
  520. package/dist/icons/DirectionIcon.js.map +1 -1
  521. package/dist/icons/DonutIcon.js +1 -1
  522. package/dist/icons/DownIcon.js +1 -1
  523. package/dist/icons/EditIcon.js +1 -1
  524. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  525. package/dist/icons/ExclamationCircleIcon.js +1 -1
  526. package/dist/icons/ExclamationIcon.js +1 -1
  527. package/dist/icons/EyeIcon.js +1 -1
  528. package/dist/icons/EyeInvisibleIcon.js +1 -1
  529. package/dist/icons/FilterIcon.js +1 -1
  530. package/dist/icons/FolderFilledIcon.js +1 -1
  531. package/dist/icons/FolderIcon.js +1 -1
  532. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  533. package/dist/icons/FolderOpenIcon.js +1 -1
  534. package/dist/icons/ForwardIcon.js +1 -1
  535. package/dist/icons/HierarchyIcon.js +1 -1
  536. package/dist/icons/HierarchyOpenIcon.js +1 -1
  537. package/dist/icons/Icon.d.ts +1 -3
  538. package/dist/icons/Icon.js +2 -3
  539. package/dist/icons/Icon.js.map +1 -1
  540. package/dist/icons/InfoCircleIcon.js +1 -1
  541. package/dist/icons/InfoIcon.js +1 -1
  542. package/dist/icons/KeyIcon.js +1 -1
  543. package/dist/icons/LeftIcon.js +1 -1
  544. package/dist/icons/LineChartIcon.js +1 -1
  545. package/dist/icons/LoadingIcon.js +1 -1
  546. package/dist/icons/LockFilledIcon.js +1 -1
  547. package/dist/icons/LockIcon.js +1 -1
  548. package/dist/icons/MoreIcon.js +1 -1
  549. package/dist/icons/NotAllowedIcon.js +1 -1
  550. package/dist/icons/Number123Icon.js +1 -1
  551. package/dist/icons/NumberIcon.js +1 -1
  552. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  553. package/dist/icons/PauseCircleIcon.js +1 -1
  554. package/dist/icons/PauseIcon.js +1 -1
  555. package/dist/icons/PercentageIcon.js +1 -1
  556. package/dist/icons/PieChartIcon.js +1 -1
  557. package/dist/icons/PlayCircleIcon.js +1 -1
  558. package/dist/icons/PlayIcon.js +1 -1
  559. package/dist/icons/PlusIcon.js +1 -1
  560. package/dist/icons/ProgressBarIcon.js +1 -1
  561. package/dist/icons/ReloadIcon.js +1 -1
  562. package/dist/icons/ReportIcon.js +1 -1
  563. package/dist/icons/ReturnIcon.js +1 -1
  564. package/dist/icons/RightIcon.js +1 -1
  565. package/dist/icons/RowTotalsIcon.js +1 -1
  566. package/dist/icons/SchemeIcon.js +1 -1
  567. package/dist/icons/SearchIcon.js +1 -1
  568. package/dist/icons/SemanticQueryIcon.js +1 -1
  569. package/dist/icons/SettingsIcon.js +1 -1
  570. package/dist/icons/ShieldFilledIcon.js +1 -1
  571. package/dist/icons/ShieldIcon.js +1 -1
  572. package/dist/icons/SlashIcon.js +1 -1
  573. package/dist/icons/SparklesIcon.js +1 -1
  574. package/dist/icons/SqlIcon.js +1 -1
  575. package/dist/icons/StatsIcon.js +1 -1
  576. package/dist/icons/StopIcon.js +1 -1
  577. package/dist/icons/StringIcon.js +1 -1
  578. package/dist/icons/SubtotalsIcon.js +1 -1
  579. package/dist/icons/SwitchIcon.js +1 -1
  580. package/dist/icons/TableIcon.js +1 -1
  581. package/dist/icons/ThumbsDownIcon.js +1 -1
  582. package/dist/icons/ThumbsUpIcon.js +1 -1
  583. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  584. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  585. package/dist/icons/ThunderboltIcon.js +1 -1
  586. package/dist/icons/TimeIcon.js +1 -1
  587. package/dist/icons/TrashIcon.js +1 -1
  588. package/dist/icons/UnlockIcon.js +1 -1
  589. package/dist/icons/UpIcon.js +1 -1
  590. package/dist/icons/UserGroupIcon.js +1 -1
  591. package/dist/icons/UserIcon.js +1 -1
  592. package/dist/icons/UserLockIcon.js +1 -1
  593. package/dist/icons/ViewIcon.js +1 -1
  594. package/dist/icons/WarningFilledIcon.js +1 -1
  595. package/dist/icons/WarningIcon.js +1 -1
  596. package/dist/icons/wrap-icon.js +1 -1
  597. package/dist/index.d.ts +4 -35
  598. package/dist/index.js +5 -31
  599. package/dist/index.js.map +1 -1
  600. package/dist/provider.d.ts +1 -2
  601. package/dist/provider.js +1 -1
  602. package/dist/provider.js.map +1 -1
  603. package/dist/providers/TrackingProvider.js +1 -1
  604. package/dist/providers/navigationAdapter.default.js +1 -1
  605. package/dist/shared/form.d.ts +1 -3
  606. package/dist/tokens/base.d.ts +1 -1
  607. package/dist/tokens/base.js +1 -1
  608. package/dist/tokens/base.js.map +1 -1
  609. package/dist/tokens/colors.d.ts +1 -1
  610. package/dist/tokens/colors.js +1 -1
  611. package/dist/tokens/colors.js.map +1 -1
  612. package/dist/tokens/index.d.ts +1 -2
  613. package/dist/tokens/index.js +2 -3
  614. package/dist/tokens/index.js.map +1 -1
  615. package/dist/tokens/layout.d.ts +1 -1
  616. package/dist/tokens/layout.js +1 -1
  617. package/dist/tokens/layout.js.map +1 -1
  618. package/dist/tokens/shadows.d.ts +1 -1
  619. package/dist/tokens/shadows.js +1 -1
  620. package/dist/tokens/shadows.js.map +1 -1
  621. package/dist/tokens/sizes.d.ts +1 -1
  622. package/dist/tokens/sizes.js +1 -1
  623. package/dist/tokens/sizes.js.map +1 -1
  624. package/dist/tokens/spacing.d.ts +1 -1
  625. package/dist/tokens/spacing.js +1 -1
  626. package/dist/tokens/spacing.js.map +1 -1
  627. package/dist/utils/ResizeSensor.js +1 -1
  628. package/dist/utils/index.d.ts +1 -2
  629. package/dist/utils/is-dev-env.js +5 -10
  630. package/dist/utils/is-dev-env.js.map +1 -1
  631. package/dist/utils/modules.js +1 -1
  632. package/dist/utils/promise.js +1 -1
  633. package/dist/utils/raf.js +1 -1
  634. package/dist/utils/random.js +1 -1
  635. package/dist/utils/range.js +1 -1
  636. package/dist/utils/react/RenderCache.js +1 -1
  637. package/dist/utils/react/Slots.js +1 -1
  638. package/dist/utils/react/chain.js +1 -1
  639. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  640. package/dist/utils/react/index.d.ts +3 -3
  641. package/dist/utils/react/index.js +20 -0
  642. package/dist/utils/react/interactions.js +1 -1
  643. package/dist/utils/react/isTextOnly.js +1 -1
  644. package/dist/utils/react/mapProps.js +1 -1
  645. package/dist/utils/react/mergeProps.d.ts +1 -2
  646. package/dist/utils/react/mergeProps.js +2 -2
  647. package/dist/utils/react/mergeProps.js.map +1 -1
  648. package/dist/utils/react/nullableValue.d.ts +1 -2
  649. package/dist/utils/react/nullableValue.js +1 -1
  650. package/dist/utils/react/nullableValue.js.map +1 -1
  651. package/dist/utils/react/resolveIcon.d.ts +1 -2
  652. package/dist/utils/react/resolveIcon.js +1 -1
  653. package/dist/utils/react/resolveIcon.js.map +1 -1
  654. package/dist/utils/react/sharedStore.js +1 -1
  655. package/dist/utils/react/useCombinedRefs.js +1 -1
  656. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  657. package/dist/utils/react/useEventBus.js +1 -1
  658. package/dist/utils/react/useId.js +1 -1
  659. package/dist/utils/react/useIsDarwin.js +1 -1
  660. package/dist/utils/react/useKeySymbols.js +1 -1
  661. package/dist/utils/react/useLayoutEffect.js +1 -1
  662. package/dist/utils/react/useLocalStorage.js +1 -1
  663. package/dist/utils/react/useMergeStyles.d.ts +1 -2
  664. package/dist/utils/react/useMergeStyles.js +2 -2
  665. package/dist/utils/react/useMergeStyles.js.map +1 -1
  666. package/dist/utils/react/useQaProps.js +1 -1
  667. package/dist/utils/react/useViewportSize.js +1 -1
  668. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  669. package/dist/utils/tree.js +1 -1
  670. package/dist/utils/warnings.js +1 -1
  671. package/dist/version.js +2 -2
  672. package/package.json +4 -21
  673. package/dist/_virtual/_rolldown/runtime.js +0 -8
  674. package/dist/chunks/cacheKey.js +0 -71
  675. package/dist/chunks/cacheKey.js.map +0 -1
  676. package/dist/chunks/definitions.js +0 -261
  677. package/dist/chunks/definitions.js.map +0 -1
  678. package/dist/chunks/renderChunk.js +0 -68
  679. package/dist/chunks/renderChunk.js.map +0 -1
  680. package/dist/config.js +0 -232
  681. package/dist/config.js.map +0 -1
  682. package/dist/css-writer.d.ts +0 -46
  683. package/dist/css-writer.js +0 -75
  684. package/dist/css-writer.js.map +0 -1
  685. package/dist/extractor.d.ts +0 -25
  686. package/dist/extractor.js +0 -151
  687. package/dist/extractor.js.map +0 -1
  688. package/dist/injector/injector.js +0 -401
  689. package/dist/injector/injector.js.map +0 -1
  690. package/dist/injector/sheet-manager.js +0 -715
  691. package/dist/injector/sheet-manager.js.map +0 -1
  692. package/dist/injector/types.d.ts +0 -19
  693. package/dist/keyframes/index.js +0 -157
  694. package/dist/keyframes/index.js.map +0 -1
  695. package/dist/parser/classify.js +0 -320
  696. package/dist/parser/classify.js.map +0 -1
  697. package/dist/parser/const.js +0 -34
  698. package/dist/parser/const.js.map +0 -1
  699. package/dist/parser/lru.js +0 -110
  700. package/dist/parser/lru.js.map +0 -1
  701. package/dist/parser/parser.js +0 -117
  702. package/dist/parser/parser.js.map +0 -1
  703. package/dist/parser/tokenizer.js +0 -70
  704. package/dist/parser/tokenizer.js.map +0 -1
  705. package/dist/parser/types.d.ts +0 -38
  706. package/dist/parser/types.js +0 -47
  707. package/dist/parser/types.js.map +0 -1
  708. package/dist/pipeline/conditions.js +0 -378
  709. package/dist/pipeline/conditions.js.map +0 -1
  710. package/dist/pipeline/exclusive.js +0 -232
  711. package/dist/pipeline/exclusive.js.map +0 -1
  712. package/dist/pipeline/index.js +0 -633
  713. package/dist/pipeline/index.js.map +0 -1
  714. package/dist/pipeline/materialize.js +0 -822
  715. package/dist/pipeline/materialize.js.map +0 -1
  716. package/dist/pipeline/parseStateKey.js +0 -422
  717. package/dist/pipeline/parseStateKey.js.map +0 -1
  718. package/dist/pipeline/simplify.js +0 -558
  719. package/dist/pipeline/simplify.js.map +0 -1
  720. package/dist/plugins/okhsl-plugin.js +0 -346
  721. package/dist/plugins/okhsl-plugin.js.map +0 -1
  722. package/dist/plugins/types.d.ts +0 -52
  723. package/dist/properties/index.js +0 -142
  724. package/dist/properties/index.js.map +0 -1
  725. package/dist/states/index.js +0 -162
  726. package/dist/states/index.js.map +0 -1
  727. package/dist/styles/align.js +0 -15
  728. package/dist/styles/align.js.map +0 -1
  729. package/dist/styles/border.js +0 -115
  730. package/dist/styles/border.js.map +0 -1
  731. package/dist/styles/color.js +0 -24
  732. package/dist/styles/color.js.map +0 -1
  733. package/dist/styles/createStyle.js +0 -78
  734. package/dist/styles/createStyle.js.map +0 -1
  735. package/dist/styles/dimension.js +0 -100
  736. package/dist/styles/dimension.js.map +0 -1
  737. package/dist/styles/display.js +0 -68
  738. package/dist/styles/display.js.map +0 -1
  739. package/dist/styles/fade.js +0 -58
  740. package/dist/styles/fade.js.map +0 -1
  741. package/dist/styles/fill.js +0 -52
  742. package/dist/styles/fill.js.map +0 -1
  743. package/dist/styles/flow.js +0 -13
  744. package/dist/styles/flow.js.map +0 -1
  745. package/dist/styles/gap.js +0 -37
  746. package/dist/styles/gap.js.map +0 -1
  747. package/dist/styles/height.js +0 -21
  748. package/dist/styles/height.js.map +0 -1
  749. package/dist/styles/index.js +0 -10
  750. package/dist/styles/index.js.map +0 -1
  751. package/dist/styles/inset.js +0 -143
  752. package/dist/styles/inset.js.map +0 -1
  753. package/dist/styles/justify.js +0 -15
  754. package/dist/styles/justify.js.map +0 -1
  755. package/dist/styles/margin.js +0 -97
  756. package/dist/styles/margin.js.map +0 -1
  757. package/dist/styles/outline.js +0 -66
  758. package/dist/styles/outline.js.map +0 -1
  759. package/dist/styles/padding.js +0 -97
  760. package/dist/styles/padding.js.map +0 -1
  761. package/dist/styles/predefined.js +0 -233
  762. package/dist/styles/predefined.js.map +0 -1
  763. package/dist/styles/preset.js +0 -126
  764. package/dist/styles/preset.js.map +0 -1
  765. package/dist/styles/radius.js +0 -52
  766. package/dist/styles/radius.js.map +0 -1
  767. package/dist/styles/scrollbar.js +0 -109
  768. package/dist/styles/scrollbar.js.map +0 -1
  769. package/dist/styles/shadow.js +0 -28
  770. package/dist/styles/shadow.js.map +0 -1
  771. package/dist/styles/styledScrollbar.js +0 -39
  772. package/dist/styles/styledScrollbar.js.map +0 -1
  773. package/dist/styles/transition.js +0 -139
  774. package/dist/styles/transition.js.map +0 -1
  775. package/dist/styles/types.d.ts +0 -495
  776. package/dist/styles/width.js +0 -21
  777. package/dist/styles/width.js.map +0 -1
  778. package/dist/tasty/chunks/cacheKey.d.ts +0 -2
  779. package/dist/tasty/chunks/cacheKey.js +0 -71
  780. package/dist/tasty/chunks/cacheKey.js.map +0 -1
  781. package/dist/tasty/chunks/definitions.d.ts +0 -38
  782. package/dist/tasty/chunks/definitions.js +0 -261
  783. package/dist/tasty/chunks/definitions.js.map +0 -1
  784. package/dist/tasty/chunks/index.d.ts +0 -4
  785. package/dist/tasty/chunks/renderChunk.d.ts +0 -3
  786. package/dist/tasty/chunks/renderChunk.js +0 -68
  787. package/dist/tasty/chunks/renderChunk.js.map +0 -1
  788. package/dist/tasty/config.d.ts +0 -283
  789. package/dist/tasty/config.js +0 -401
  790. package/dist/tasty/config.js.map +0 -1
  791. package/dist/tasty/debug.d.ts +0 -200
  792. package/dist/tasty/debug.js +0 -734
  793. package/dist/tasty/debug.js.map +0 -1
  794. package/dist/tasty/hooks/index.d.ts +0 -6
  795. package/dist/tasty/hooks/useGlobalStyles.d.ts +0 -28
  796. package/dist/tasty/hooks/useGlobalStyles.js +0 -57
  797. package/dist/tasty/hooks/useGlobalStyles.js.map +0 -1
  798. package/dist/tasty/hooks/useKeyframes.d.ts +0 -57
  799. package/dist/tasty/hooks/useKeyframes.js +0 -55
  800. package/dist/tasty/hooks/useKeyframes.js.map +0 -1
  801. package/dist/tasty/hooks/useProperty.d.ts +0 -80
  802. package/dist/tasty/hooks/useProperty.js +0 -92
  803. package/dist/tasty/hooks/useProperty.js.map +0 -1
  804. package/dist/tasty/hooks/useRawCSS.d.ts +0 -54
  805. package/dist/tasty/hooks/useRawCSS.js +0 -29
  806. package/dist/tasty/hooks/useRawCSS.js.map +0 -1
  807. package/dist/tasty/hooks/useStyles.d.ts +0 -41
  808. package/dist/tasty/hooks/useStyles.js +0 -170
  809. package/dist/tasty/hooks/useStyles.js.map +0 -1
  810. package/dist/tasty/index.d.ts +0 -38
  811. package/dist/tasty/injector/index.d.ts +0 -158
  812. package/dist/tasty/injector/index.js +0 -155
  813. package/dist/tasty/injector/index.js.map +0 -1
  814. package/dist/tasty/injector/injector.d.ts +0 -137
  815. package/dist/tasty/injector/injector.js +0 -401
  816. package/dist/tasty/injector/injector.js.map +0 -1
  817. package/dist/tasty/injector/sheet-manager.d.ts +0 -128
  818. package/dist/tasty/injector/sheet-manager.js +0 -715
  819. package/dist/tasty/injector/sheet-manager.js.map +0 -1
  820. package/dist/tasty/injector/types.d.ts +0 -136
  821. package/dist/tasty/keyframes/index.js +0 -207
  822. package/dist/tasty/keyframes/index.js.map +0 -1
  823. package/dist/tasty/parser/classify.js +0 -320
  824. package/dist/tasty/parser/classify.js.map +0 -1
  825. package/dist/tasty/parser/const.js +0 -34
  826. package/dist/tasty/parser/const.js.map +0 -1
  827. package/dist/tasty/parser/lru.js +0 -110
  828. package/dist/tasty/parser/lru.js.map +0 -1
  829. package/dist/tasty/parser/parser.d.ts +0 -26
  830. package/dist/tasty/parser/parser.js +0 -117
  831. package/dist/tasty/parser/parser.js.map +0 -1
  832. package/dist/tasty/parser/tokenizer.js +0 -70
  833. package/dist/tasty/parser/tokenizer.js.map +0 -1
  834. package/dist/tasty/parser/types.d.ts +0 -47
  835. package/dist/tasty/parser/types.js +0 -47
  836. package/dist/tasty/parser/types.js.map +0 -1
  837. package/dist/tasty/pipeline/conditions.js +0 -378
  838. package/dist/tasty/pipeline/conditions.js.map +0 -1
  839. package/dist/tasty/pipeline/exclusive.d.ts +0 -2
  840. package/dist/tasty/pipeline/exclusive.js +0 -232
  841. package/dist/tasty/pipeline/exclusive.js.map +0 -1
  842. package/dist/tasty/pipeline/index.d.ts +0 -54
  843. package/dist/tasty/pipeline/index.js +0 -639
  844. package/dist/tasty/pipeline/index.js.map +0 -1
  845. package/dist/tasty/pipeline/materialize.js +0 -822
  846. package/dist/tasty/pipeline/materialize.js.map +0 -1
  847. package/dist/tasty/pipeline/parseStateKey.d.ts +0 -2
  848. package/dist/tasty/pipeline/parseStateKey.js +0 -422
  849. package/dist/tasty/pipeline/parseStateKey.js.map +0 -1
  850. package/dist/tasty/pipeline/simplify.js +0 -558
  851. package/dist/tasty/pipeline/simplify.js.map +0 -1
  852. package/dist/tasty/plugins/index.d.ts +0 -3
  853. package/dist/tasty/plugins/okhsl-plugin.d.ts +0 -36
  854. package/dist/tasty/plugins/okhsl-plugin.js +0 -372
  855. package/dist/tasty/plugins/okhsl-plugin.js.map +0 -1
  856. package/dist/tasty/plugins/types.d.ts +0 -72
  857. package/dist/tasty/properties/index.js +0 -159
  858. package/dist/tasty/properties/index.js.map +0 -1
  859. package/dist/tasty/states/index.d.ts +0 -46
  860. package/dist/tasty/states/index.js +0 -390
  861. package/dist/tasty/states/index.js.map +0 -1
  862. package/dist/tasty/static/index.d.ts +0 -6
  863. package/dist/tasty/static/index.js +0 -6
  864. package/dist/tasty/static/tastyStatic.d.ts +0 -47
  865. package/dist/tasty/static/tastyStatic.js +0 -32
  866. package/dist/tasty/static/tastyStatic.js.map +0 -1
  867. package/dist/tasty/static/types.d.ts +0 -50
  868. package/dist/tasty/static/types.js +0 -25
  869. package/dist/tasty/static/types.js.map +0 -1
  870. package/dist/tasty/styles/align.d.ts +0 -16
  871. package/dist/tasty/styles/align.js +0 -15
  872. package/dist/tasty/styles/align.js.map +0 -1
  873. package/dist/tasty/styles/border.d.ts +0 -26
  874. package/dist/tasty/styles/border.js +0 -115
  875. package/dist/tasty/styles/border.js.map +0 -1
  876. package/dist/tasty/styles/color.d.ts +0 -15
  877. package/dist/tasty/styles/color.js +0 -24
  878. package/dist/tasty/styles/color.js.map +0 -1
  879. package/dist/tasty/styles/createStyle.js +0 -78
  880. package/dist/tasty/styles/createStyle.js.map +0 -1
  881. package/dist/tasty/styles/dimension.js +0 -100
  882. package/dist/tasty/styles/dimension.js.map +0 -1
  883. package/dist/tasty/styles/display.d.ts +0 -38
  884. package/dist/tasty/styles/display.js +0 -68
  885. package/dist/tasty/styles/display.js.map +0 -1
  886. package/dist/tasty/styles/fade.d.ts +0 -16
  887. package/dist/tasty/styles/fade.js +0 -58
  888. package/dist/tasty/styles/fade.js.map +0 -1
  889. package/dist/tasty/styles/fill.d.ts +0 -45
  890. package/dist/tasty/styles/fill.js +0 -52
  891. package/dist/tasty/styles/fill.js.map +0 -1
  892. package/dist/tasty/styles/flow.d.ts +0 -17
  893. package/dist/tasty/styles/flow.js +0 -13
  894. package/dist/tasty/styles/flow.js.map +0 -1
  895. package/dist/tasty/styles/gap.d.ts +0 -32
  896. package/dist/tasty/styles/gap.js +0 -37
  897. package/dist/tasty/styles/gap.js.map +0 -1
  898. package/dist/tasty/styles/height.d.ts +0 -18
  899. package/dist/tasty/styles/height.js +0 -21
  900. package/dist/tasty/styles/height.js.map +0 -1
  901. package/dist/tasty/styles/index.d.ts +0 -3
  902. package/dist/tasty/styles/index.js +0 -10
  903. package/dist/tasty/styles/index.js.map +0 -1
  904. package/dist/tasty/styles/inset.d.ts +0 -51
  905. package/dist/tasty/styles/inset.js +0 -143
  906. package/dist/tasty/styles/inset.js.map +0 -1
  907. package/dist/tasty/styles/justify.d.ts +0 -16
  908. package/dist/tasty/styles/justify.js +0 -15
  909. package/dist/tasty/styles/justify.js.map +0 -1
  910. package/dist/tasty/styles/list.d.ts +0 -17
  911. package/dist/tasty/styles/list.js +0 -99
  912. package/dist/tasty/styles/list.js.map +0 -1
  913. package/dist/tasty/styles/margin.d.ts +0 -29
  914. package/dist/tasty/styles/margin.js +0 -97
  915. package/dist/tasty/styles/margin.js.map +0 -1
  916. package/dist/tasty/styles/outline.d.ts +0 -30
  917. package/dist/tasty/styles/outline.js +0 -66
  918. package/dist/tasty/styles/outline.js.map +0 -1
  919. package/dist/tasty/styles/padding.d.ts +0 -29
  920. package/dist/tasty/styles/padding.js +0 -97
  921. package/dist/tasty/styles/padding.js.map +0 -1
  922. package/dist/tasty/styles/predefined.d.ts +0 -75
  923. package/dist/tasty/styles/predefined.js +0 -242
  924. package/dist/tasty/styles/predefined.js.map +0 -1
  925. package/dist/tasty/styles/preset.d.ts +0 -48
  926. package/dist/tasty/styles/preset.js +0 -126
  927. package/dist/tasty/styles/preset.js.map +0 -1
  928. package/dist/tasty/styles/radius.d.ts +0 -15
  929. package/dist/tasty/styles/radius.js +0 -52
  930. package/dist/tasty/styles/radius.js.map +0 -1
  931. package/dist/tasty/styles/scrollbar.d.ts +0 -22
  932. package/dist/tasty/styles/scrollbar.js +0 -109
  933. package/dist/tasty/styles/scrollbar.js.map +0 -1
  934. package/dist/tasty/styles/shadow.d.ts +0 -15
  935. package/dist/tasty/styles/shadow.js +0 -28
  936. package/dist/tasty/styles/shadow.js.map +0 -1
  937. package/dist/tasty/styles/styledScrollbar.d.ts +0 -48
  938. package/dist/tasty/styles/styledScrollbar.js +0 -39
  939. package/dist/tasty/styles/styledScrollbar.js.map +0 -1
  940. package/dist/tasty/styles/transition.d.ts +0 -15
  941. package/dist/tasty/styles/transition.js +0 -139
  942. package/dist/tasty/styles/transition.js.map +0 -1
  943. package/dist/tasty/styles/types.d.ts +0 -499
  944. package/dist/tasty/styles/width.d.ts +0 -18
  945. package/dist/tasty/styles/width.js +0 -21
  946. package/dist/tasty/styles/width.js.map +0 -1
  947. package/dist/tasty/tasty.d.ts +0 -937
  948. package/dist/tasty/tasty.js +0 -191
  949. package/dist/tasty/tasty.js.map +0 -1
  950. package/dist/tasty/types.d.ts +0 -192
  951. package/dist/tasty/utils/cache-wrapper.js +0 -25
  952. package/dist/tasty/utils/cache-wrapper.js.map +0 -1
  953. package/dist/tasty/utils/case-converter.js +0 -9
  954. package/dist/tasty/utils/case-converter.js.map +0 -1
  955. package/dist/tasty/utils/colors.d.ts +0 -6
  956. package/dist/tasty/utils/colors.js +0 -10
  957. package/dist/tasty/utils/colors.js.map +0 -1
  958. package/dist/tasty/utils/dotize.d.ts +0 -27
  959. package/dist/tasty/utils/dotize.js +0 -123
  960. package/dist/tasty/utils/dotize.js.map +0 -1
  961. package/dist/tasty/utils/filter-base-props.d.ts +0 -16
  962. package/dist/tasty/utils/filter-base-props.js +0 -46
  963. package/dist/tasty/utils/filter-base-props.js.map +0 -1
  964. package/dist/tasty/utils/get-display-name.d.ts +0 -8
  965. package/dist/tasty/utils/get-display-name.js +0 -11
  966. package/dist/tasty/utils/get-display-name.js.map +0 -1
  967. package/dist/tasty/utils/hsl-to-rgb.js +0 -39
  968. package/dist/tasty/utils/hsl-to-rgb.js.map +0 -1
  969. package/dist/tasty/utils/is-dev-env.js +0 -20
  970. package/dist/tasty/utils/is-dev-env.js.map +0 -1
  971. package/dist/tasty/utils/merge-styles.d.ts +0 -8
  972. package/dist/tasty/utils/merge-styles.js +0 -147
  973. package/dist/tasty/utils/merge-styles.js.map +0 -1
  974. package/dist/tasty/utils/mod-attrs.d.ts +0 -9
  975. package/dist/tasty/utils/mod-attrs.js +0 -22
  976. package/dist/tasty/utils/mod-attrs.js.map +0 -1
  977. package/dist/tasty/utils/okhsl-to-rgb.js +0 -297
  978. package/dist/tasty/utils/okhsl-to-rgb.js.map +0 -1
  979. package/dist/tasty/utils/process-tokens.d.ts +0 -32
  980. package/dist/tasty/utils/process-tokens.js +0 -172
  981. package/dist/tasty/utils/process-tokens.js.map +0 -1
  982. package/dist/tasty/utils/resolve-recipes.d.ts +0 -18
  983. package/dist/tasty/utils/resolve-recipes.js +0 -144
  984. package/dist/tasty/utils/resolve-recipes.js.map +0 -1
  985. package/dist/tasty/utils/string.js +0 -9
  986. package/dist/tasty/utils/string.js.map +0 -1
  987. package/dist/tasty/utils/styles.d.ts +0 -204
  988. package/dist/tasty/utils/styles.js +0 -577
  989. package/dist/tasty/utils/styles.js.map +0 -1
  990. package/dist/tasty/utils/typography.d.ts +0 -37
  991. package/dist/tasty/utils/typography.js +0 -54
  992. package/dist/tasty/utils/typography.js.map +0 -1
  993. package/dist/tasty/utils/warnings.d.ts +0 -17
  994. package/dist/tasty/utils/warnings.js +0 -17
  995. package/dist/tasty/utils/warnings.js.map +0 -1
  996. package/dist/tasty/zero/babel.d.ts +0 -111
  997. package/dist/tasty/zero/babel.js +0 -283
  998. package/dist/tasty/zero/babel.js.map +0 -1
  999. package/dist/tasty/zero/index.d.ts +0 -4
  1000. package/dist/tasty/zero/index.js +0 -5
  1001. package/dist/tasty/zero/next.d.ts +0 -61
  1002. package/dist/tasty/zero/next.js +0 -79
  1003. package/dist/tasty/zero/next.js.map +0 -1
  1004. package/dist/tasty.config.ts +0 -311
  1005. package/dist/tokens/typography.d.ts +0 -35
  1006. package/dist/tokens/typography.js +0 -238
  1007. package/dist/tokens/typography.js.map +0 -1
  1008. package/dist/utils/cache-wrapper.js +0 -25
  1009. package/dist/utils/cache-wrapper.js.map +0 -1
  1010. package/dist/utils/case-converter.js +0 -9
  1011. package/dist/utils/case-converter.js.map +0 -1
  1012. package/dist/utils/hsl-to-rgb.js +0 -39
  1013. package/dist/utils/hsl-to-rgb.js.map +0 -1
  1014. package/dist/utils/merge-styles.js +0 -147
  1015. package/dist/utils/merge-styles.js.map +0 -1
  1016. package/dist/utils/okhsl-to-rgb.js +0 -297
  1017. package/dist/utils/okhsl-to-rgb.js.map +0 -1
  1018. package/dist/utils/process-tokens.js +0 -29
  1019. package/dist/utils/process-tokens.js.map +0 -1
  1020. package/dist/utils/resolve-recipes.js +0 -144
  1021. package/dist/utils/resolve-recipes.js.map +0 -1
  1022. package/dist/utils/string.js +0 -9
  1023. package/dist/utils/string.js.map +0 -1
  1024. package/dist/utils/styles.d.ts +0 -23
  1025. package/dist/utils/styles.js +0 -338
  1026. package/dist/utils/styles.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseStateKey.js","names":[],"sources":["../../../src/tasty/pipeline/parseStateKey.ts"],"sourcesContent":["/**\n * State Key Parser\n *\n * Parses state notation strings (like 'hovered & !disabled', '@media(w < 768px)')\n * into ConditionNode trees for processing in the pipeline.\n */\n\nimport { Lru } from '../parser/lru';\nimport {\n expandDimensionShorthands,\n expandTastyUnits,\n findTopLevelComma,\n resolvePredefinedState,\n StateParserContext,\n} from '../states';\nimport { camelToKebab } from '../utils/case-converter';\n\nimport {\n and,\n ConditionNode,\n createContainerDimensionCondition,\n createContainerRawCondition,\n createContainerStyleCondition,\n createMediaDimensionCondition,\n createMediaFeatureCondition,\n createMediaTypeCondition,\n createModifierCondition,\n createOwnCondition,\n createPseudoCondition,\n createRootCondition,\n createStartingCondition,\n createSupportsCondition,\n not,\n NumericBound,\n or,\n trueCondition,\n} from './conditions';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ParseStateKeyOptions {\n context?: StateParserContext;\n isSubElement?: boolean;\n}\n\n// ============================================================================\n// Caching\n// ============================================================================\n\n// Cache for parsed state keys (key -> ConditionNode)\nconst parseCache = new Lru<string, ConditionNode>(5000);\n\n// ============================================================================\n// Tokenizer Patterns\n// ============================================================================\n\n/**\n * Pattern for tokenizing state notation.\n * Matches: operators, parentheses, @-prefixed states, value mods, boolean mods,\n * pseudo-classes, class selectors, and attribute selectors.\n *\n * Note: For @supports and @(...) container queries we need to handle nested parentheses\n * like @supports($, :has(*)) or @(scroll-state(stuck: top)).\n * We use a pattern that allows one level of nesting: [^()]*(?:\\([^)]*\\))?[^)]*\n */\nconst STATE_TOKEN_PATTERN =\n /([&|!^])|([()])|(@media:[a-z]+)|(@media\\([^)]+\\))|(@supports\\([^()]*(?:\\([^)]*\\))?[^)]*\\))|(@root\\([^)]+\\))|(@own\\([^)]+\\))|(@\\([^()]*(?:\\([^)]*\\))?[^)]*\\))|(@starting)|(@[A-Za-z][A-Za-z0-9-]*)|([a-z][a-z0-9-]*(?:\\^=|\\$=|\\*=|=)(?:\"[^\"]*\"|'[^']*'|[^\\s&|!^()]+))|([a-z][a-z0-9-]+)|(:[-a-z][a-z0-9-]*(?:\\([^)]+\\))?)|(\\.[a-z][a-z0-9-]+)|(\\[[^\\]]+\\])/gi;\n\n// ============================================================================\n// Token Types\n// ============================================================================\n\ntype TokenType = 'AND' | 'OR' | 'NOT' | 'XOR' | 'LPAREN' | 'RPAREN' | 'STATE';\n\ninterface Token {\n type: TokenType;\n value: string;\n raw: string;\n}\n\n// ============================================================================\n// Tokenizer\n// ============================================================================\n\n/**\n * Tokenize a state notation string\n */\nfunction tokenize(stateKey: string): Token[] {\n const tokens: Token[] = [];\n let match: RegExpExecArray | null;\n\n // Replace commas with | outside of parentheses (for compatibility)\n const normalized = replaceCommasOutsideParens(stateKey);\n\n STATE_TOKEN_PATTERN.lastIndex = 0;\n while ((match = STATE_TOKEN_PATTERN.exec(normalized)) !== null) {\n const fullMatch = match[0];\n\n if (match[1]) {\n // Operator: &, |, !, ^\n switch (fullMatch) {\n case '&':\n tokens.push({ type: 'AND', value: '&', raw: fullMatch });\n break;\n case '|':\n tokens.push({ type: 'OR', value: '|', raw: fullMatch });\n break;\n case '!':\n tokens.push({ type: 'NOT', value: '!', raw: fullMatch });\n break;\n case '^':\n tokens.push({ type: 'XOR', value: '^', raw: fullMatch });\n break;\n }\n } else if (match[2]) {\n // Parenthesis\n if (fullMatch === '(') {\n tokens.push({ type: 'LPAREN', value: '(', raw: fullMatch });\n } else {\n tokens.push({ type: 'RPAREN', value: ')', raw: fullMatch });\n }\n } else {\n // State token (all other capture groups)\n tokens.push({ type: 'STATE', value: fullMatch, raw: fullMatch });\n }\n }\n\n return tokens;\n}\n\n/**\n * Replace commas with | only outside of parentheses\n */\nfunction replaceCommasOutsideParens(str: string): string {\n let result = '';\n let depth = 0;\n\n for (let i = 0; i < str.length; i++) {\n const char = str[i];\n if (char === '(') {\n depth++;\n result += char;\n } else if (char === ')') {\n depth--;\n result += char;\n } else if (char === ',' && depth === 0) {\n result += '|';\n } else {\n result += char;\n }\n }\n\n return result;\n}\n\n// ============================================================================\n// Recursive Descent Parser\n// ============================================================================\n\n/**\n * Parser state\n */\nclass Parser {\n private tokens: Token[];\n private pos = 0;\n private options: ParseStateKeyOptions;\n\n constructor(tokens: Token[], options: ParseStateKeyOptions) {\n this.tokens = tokens;\n this.options = options;\n }\n\n parse(): ConditionNode {\n if (this.tokens.length === 0) {\n return trueCondition();\n }\n const result = this.parseExpression();\n return result;\n }\n\n private current(): Token | undefined {\n return this.tokens[this.pos];\n }\n\n private advance(): Token | undefined {\n return this.tokens[this.pos++];\n }\n\n private match(type: TokenType): boolean {\n if (this.current()?.type === type) {\n this.advance();\n return true;\n }\n return false;\n }\n\n /**\n * Parse expression with operator precedence:\n * ! (NOT) > ^ (XOR) > | (OR) > & (AND)\n */\n private parseExpression(): ConditionNode {\n return this.parseAnd();\n }\n\n private parseAnd(): ConditionNode {\n let left = this.parseOr();\n\n while (this.current()?.type === 'AND') {\n this.advance();\n const right = this.parseOr();\n left = and(left, right);\n }\n\n return left;\n }\n\n private parseOr(): ConditionNode {\n let left = this.parseXor();\n\n while (this.current()?.type === 'OR') {\n this.advance();\n const right = this.parseXor();\n left = or(left, right);\n }\n\n return left;\n }\n\n private parseXor(): ConditionNode {\n let left = this.parseUnary();\n\n while (this.current()?.type === 'XOR') {\n this.advance();\n const right = this.parseUnary();\n // XOR: (A & !B) | (!A & B)\n left = or(and(left, not(right)), and(not(left), right));\n }\n\n return left;\n }\n\n private parseUnary(): ConditionNode {\n if (this.match('NOT')) {\n const operand = this.parseUnary();\n return not(operand);\n }\n return this.parsePrimary();\n }\n\n private parsePrimary(): ConditionNode {\n // Handle parentheses\n if (this.match('LPAREN')) {\n const expr = this.parseExpression();\n this.match('RPAREN'); // Consume closing paren (lenient if missing)\n return expr;\n }\n\n // Handle state tokens\n const token = this.current();\n if (token?.type === 'STATE') {\n this.advance();\n return this.parseStateToken(token.value);\n }\n\n // Fallback for empty/invalid - return TRUE\n return trueCondition();\n }\n\n /**\n * Parse a state token into a ConditionNode\n */\n private parseStateToken(value: string): ConditionNode {\n // @starting\n if (value === '@starting') {\n return createStartingCondition(false, value);\n }\n\n // @media:type (e.g., @media:print)\n if (value.startsWith('@media:')) {\n const mediaType = value.slice(7) as 'print' | 'screen' | 'all' | 'speech';\n return createMediaTypeCondition(mediaType, false, value);\n }\n\n // @media(...) - media query\n if (value.startsWith('@media(')) {\n return this.parseMediaQuery(value);\n }\n\n // @supports(...) - feature/selector support query\n if (value.startsWith('@supports(')) {\n return this.parseSupportsQuery(value);\n }\n\n // @root(...) - root state\n if (value.startsWith('@root(')) {\n return this.parseRootState(value);\n }\n\n // @own(...) - own state (sub-element)\n if (value.startsWith('@own(')) {\n return this.parseOwnState(value);\n }\n\n // @(...) - container query\n if (value.startsWith('@(')) {\n return this.parseContainerQuery(value);\n }\n\n // @name - predefined state\n if (value.startsWith('@') && /^@[A-Za-z][A-Za-z0-9-]*$/.test(value)) {\n return this.parsePredefinedState(value);\n }\n\n // Pseudo-class (e.g., :hover, :focus-visible, :nth-child(2n))\n if (value.startsWith(':')) {\n return createPseudoCondition(value, false, value);\n }\n\n // Class selector (e.g., .active)\n if (value.startsWith('.')) {\n return createPseudoCondition(value, false, value);\n }\n\n // Attribute selector (e.g., [disabled], [data-state=\"active\"])\n if (value.startsWith('[')) {\n return createPseudoCondition(value, false, value);\n }\n\n // Value modifier (e.g., theme=danger, size=large)\n if (value.includes('=')) {\n return this.parseValueModifier(value);\n }\n\n // Boolean modifier (e.g., hovered, disabled)\n return this.parseBooleanModifier(value);\n }\n\n /**\n * Parse @media(...) query\n */\n private parseMediaQuery(raw: string): ConditionNode {\n const content = raw.slice(7, -1); // Remove '@media(' and ')'\n if (!content.trim()) {\n return trueCondition();\n }\n\n // Expand shorthands and units\n let condition = expandDimensionShorthands(content);\n condition = expandTastyUnits(condition);\n\n // Check for feature queries (contains ':' but not dimension comparison)\n if (\n condition.includes(':') &&\n !condition.includes('<') &&\n !condition.includes('>') &&\n !condition.includes('=')\n ) {\n // Feature query: @media(prefers-contrast: high)\n const colonIdx = condition.indexOf(':');\n const feature = condition.slice(0, colonIdx).trim();\n const featureValue = condition.slice(colonIdx + 1).trim();\n return createMediaFeatureCondition(feature, featureValue, false, raw);\n }\n\n // Boolean feature query: @media(prefers-reduced-motion)\n if (\n !condition.includes('<') &&\n !condition.includes('>') &&\n !condition.includes('=')\n ) {\n return createMediaFeatureCondition(\n condition.trim(),\n undefined,\n false,\n raw,\n );\n }\n\n // Dimension query - parse bounds\n const { dimension, lowerBound, upperBound } =\n this.parseDimensionCondition(condition);\n\n if (!dimension) {\n // Fallback for unparseable - treat as pseudo\n return createPseudoCondition(raw, false, raw);\n }\n\n return createMediaDimensionCondition(\n dimension as 'width' | 'height',\n lowerBound,\n upperBound,\n false,\n raw,\n );\n }\n\n /**\n * Parse dimension condition string (e.g., \"width < 768px\", \"600px <= width < 1200px\")\n */\n private parseDimensionCondition(condition: string): {\n dimension?: string;\n lowerBound?: NumericBound;\n upperBound?: NumericBound;\n } {\n // Range syntax: \"600px <= width < 1200px\"\n const rangeMatch = condition.match(\n /^(.+?)\\s*(<=|<)\\s*(width|height|inline-size|block-size)\\s*(<=|<)\\s*(.+)$/,\n );\n if (rangeMatch) {\n const [, lowerValue, lowerOp, dimension, upperOp, upperValue] =\n rangeMatch;\n return {\n dimension,\n lowerBound: {\n value: lowerValue.trim(),\n valueNumeric: parseNumericValue(lowerValue.trim()),\n inclusive: lowerOp === '<=',\n },\n upperBound: {\n value: upperValue.trim(),\n valueNumeric: parseNumericValue(upperValue.trim()),\n inclusive: upperOp === '<=',\n },\n };\n }\n\n // Simple comparison: \"width < 768px\"\n const simpleMatch = condition.match(\n /^(width|height|inline-size|block-size)\\s*(<=|>=|<|>|=)\\s*(.+)$/,\n );\n if (simpleMatch) {\n const [, dimension, operator, value] = simpleMatch;\n const numeric = parseNumericValue(value.trim());\n\n if (operator === '<' || operator === '<=') {\n return {\n dimension,\n upperBound: {\n value: value.trim(),\n valueNumeric: numeric,\n inclusive: operator === '<=',\n },\n };\n } else if (operator === '>' || operator === '>=') {\n return {\n dimension,\n lowerBound: {\n value: value.trim(),\n valueNumeric: numeric,\n inclusive: operator === '>=',\n },\n };\n } else if (operator === '=') {\n // Exact match: both bounds are the same and inclusive\n return {\n dimension,\n lowerBound: {\n value: value.trim(),\n valueNumeric: numeric,\n inclusive: true,\n },\n upperBound: {\n value: value.trim(),\n valueNumeric: numeric,\n inclusive: true,\n },\n };\n }\n }\n\n // Reversed: \"768px > width\"\n const reversedMatch = condition.match(\n /^(.+?)\\s*(<=|>=|<|>|=)\\s*(width|height|inline-size|block-size)$/,\n );\n if (reversedMatch) {\n const [, value, operator, dimension] = reversedMatch;\n const numeric = parseNumericValue(value.trim());\n\n // Reverse the operator\n if (operator === '<' || operator === '<=') {\n return {\n dimension,\n lowerBound: {\n value: value.trim(),\n valueNumeric: numeric,\n inclusive: operator === '<=',\n },\n };\n } else if (operator === '>' || operator === '>=') {\n return {\n dimension,\n upperBound: {\n value: value.trim(),\n valueNumeric: numeric,\n inclusive: operator === '>=',\n },\n };\n }\n }\n\n return {};\n }\n\n /**\n * Parse @root(...) state\n */\n private parseRootState(raw: string): ConditionNode {\n const content = raw.slice(6, -1); // Remove '@root(' and ')'\n if (!content.trim()) {\n return trueCondition();\n }\n\n // Build selector from condition\n const selector = buildRootSelector(content);\n return createRootCondition(selector, false, raw);\n }\n\n /**\n * Parse @supports(...) query\n *\n * Syntax:\n * @supports(display: grid) → @supports (display: grid)\n * @supports($, :has(*)) → @supports selector(:has(*))\n */\n private parseSupportsQuery(raw: string): ConditionNode {\n const content = raw.slice(10, -1); // Remove '@supports(' and ')'\n if (!content.trim()) {\n return trueCondition();\n }\n\n // Check for selector syntax: @supports($, :has(*))\n if (content.startsWith('$,')) {\n const selector = content.slice(2).trim(); // Remove '$,' prefix\n return createSupportsCondition('selector', selector, false, raw);\n }\n\n // Feature syntax: @supports(display: grid)\n return createSupportsCondition('feature', content, false, raw);\n }\n\n /**\n * Parse @own(...) state\n */\n private parseOwnState(raw: string): ConditionNode {\n const content = raw.slice(5, -1); // Remove '@own(' and ')'\n if (!content.trim()) {\n return trueCondition();\n }\n\n // Parse the inner condition recursively\n const innerCondition = parseStateKey(content, this.options);\n return createOwnCondition(innerCondition, false, raw);\n }\n\n /**\n * Parse @(...) container query\n */\n private parseContainerQuery(raw: string): ConditionNode {\n const content = raw.slice(2, -1); // Remove '@(' and ')'\n if (!content.trim()) {\n return trueCondition();\n }\n\n // Check for named container: @(layout, w < 600px)\n // Use parentheses-aware comma search so inner commas (e.g., scroll-state(a, b)) are skipped\n const commaIdx = findTopLevelComma(content);\n let containerName: string | undefined;\n let condition: string;\n\n if (commaIdx !== -1) {\n containerName = content.slice(0, commaIdx).trim();\n condition = content.slice(commaIdx + 1).trim();\n } else {\n condition = content.trim();\n }\n\n // Check for style query shorthand: @($variant=primary)\n if (condition.startsWith('$')) {\n const styleQuery = condition.slice(1); // Remove '$'\n const eqIdx = styleQuery.indexOf('=');\n\n if (eqIdx === -1) {\n // Existence check: @($variant)\n return createContainerStyleCondition(\n styleQuery,\n undefined,\n containerName,\n false,\n raw,\n );\n }\n\n const property = styleQuery.slice(0, eqIdx).trim();\n let propertyValue = styleQuery.slice(eqIdx + 1).trim();\n\n // Remove quotes if present\n if (\n (propertyValue.startsWith('\"') && propertyValue.endsWith('\"')) ||\n (propertyValue.startsWith(\"'\") && propertyValue.endsWith(\"'\"))\n ) {\n propertyValue = propertyValue.slice(1, -1);\n }\n\n return createContainerStyleCondition(\n property,\n propertyValue,\n containerName,\n false,\n raw,\n );\n }\n\n // Check for function-like syntax: scroll-state(...), style(...), etc.\n // Passes the condition through to CSS verbatim.\n if (/^[a-zA-Z][\\w-]*\\s*\\(/.test(condition)) {\n return createContainerRawCondition(condition, containerName, false, raw);\n }\n\n // Dimension query\n let expandedCondition = expandDimensionShorthands(condition);\n expandedCondition = expandTastyUnits(expandedCondition);\n\n const { dimension, lowerBound, upperBound } =\n this.parseDimensionCondition(expandedCondition);\n\n if (!dimension) {\n // Fallback\n return createPseudoCondition(raw, false, raw);\n }\n\n return createContainerDimensionCondition(\n dimension as 'width' | 'height',\n lowerBound,\n upperBound,\n containerName,\n false,\n raw,\n );\n }\n\n /**\n * Parse predefined state (@mobile, @dark, etc.)\n */\n private parsePredefinedState(raw: string): ConditionNode {\n const ctx = this.options.context;\n if (!ctx) {\n // No context - can't resolve predefined states\n return createPseudoCondition(raw, false, raw);\n }\n\n const resolved = resolvePredefinedState(raw, ctx);\n if (!resolved) {\n // Undefined predefined state - treat as modifier\n return createModifierCondition(\n `data-${camelToKebab(raw.slice(1))}`,\n undefined,\n '=',\n false,\n raw,\n );\n }\n\n // Parse the resolved value recursively\n return parseStateKey(resolved, this.options);\n }\n\n /**\n * Parse value modifier (e.g., theme=danger, size^=sm)\n */\n private parseValueModifier(raw: string): ConditionNode {\n // Match operators: =, ^=, $=, *=\n const opMatch = raw.match(/^([a-z][a-z0-9-]*)(\\^=|\\$=|\\*=|=)(.+)$/i);\n if (!opMatch) {\n return createModifierCondition(\n `data-${camelToKebab(raw)}`,\n undefined,\n '=',\n false,\n raw,\n );\n }\n\n const [, key, operator, value] = opMatch;\n let cleanValue = value;\n\n // Remove quotes if present\n if (\n (cleanValue.startsWith('\"') && cleanValue.endsWith('\"')) ||\n (cleanValue.startsWith(\"'\") && cleanValue.endsWith(\"'\"))\n ) {\n cleanValue = cleanValue.slice(1, -1);\n }\n\n return createModifierCondition(\n `data-${camelToKebab(key)}`,\n cleanValue,\n operator as '=' | '^=' | '$=' | '*=',\n false,\n raw,\n );\n }\n\n /**\n * Parse boolean modifier (e.g., hovered, disabled)\n */\n private parseBooleanModifier(raw: string): ConditionNode {\n return createModifierCondition(\n `data-${camelToKebab(raw)}`,\n undefined,\n '=',\n false,\n raw,\n );\n }\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Parse a numeric value from a CSS value string\n */\nfunction parseNumericValue(value: string): number | null {\n const match = value.match(/^(\\d+(?:\\.\\d+)?)(px|em|rem|vh|vw|%)?$/);\n if (match) {\n return parseFloat(match[1]);\n }\n return null;\n}\n\n/**\n * Build a root state selector from a condition string\n */\nfunction buildRootSelector(condition: string): string {\n // Handle class selector: .className\n if (condition.startsWith('.')) {\n return condition;\n }\n\n // Handle attribute selector: [attr]\n if (condition.startsWith('[')) {\n return condition;\n }\n\n // Handle value mod: theme=dark\n if (condition.includes('=')) {\n const [key, value] = condition.split('=');\n return `[data-${camelToKebab(key.trim())}=\"${value.trim()}\"]`;\n }\n\n // Boolean mod: camelCase -> [data-camel-case]\n return `[data-${camelToKebab(condition)}]`;\n}\n\n// ============================================================================\n// Main Export\n// ============================================================================\n\n/**\n * Parse a state key string into a ConditionNode\n */\nexport function parseStateKey(\n stateKey: string,\n options: ParseStateKeyOptions = {},\n): ConditionNode {\n // Handle empty/default state\n if (!stateKey || !stateKey.trim()) {\n return trueCondition();\n }\n\n const trimmed = stateKey.trim();\n\n // Build cache key including local predefined states (they affect parsing)\n // Global predefined states are set once at initialization and don't change\n const ctx = options.context;\n const localStatesKey =\n ctx && Object.keys(ctx.localPredefinedStates).length > 0\n ? JSON.stringify(ctx.localPredefinedStates)\n : '';\n const cacheKey = JSON.stringify([\n trimmed,\n options.isSubElement,\n localStatesKey,\n ]);\n\n // Check cache\n const cached = parseCache.get(cacheKey);\n if (cached) {\n return cached;\n }\n\n // Tokenize and parse\n const tokens = tokenize(trimmed);\n const parser = new Parser(tokens, options);\n const result = parser.parse();\n\n // Cache result\n parseCache.set(cacheKey, result);\n\n return result;\n}\n\n/**\n * Clear the parse cache (for testing)\n */\nexport function clearParseCache(): void {\n parseCache.clear();\n}\n"],"mappings":";;;;;;;;;;;;;AAoDA,MAAM,aAAa,IAAI,IAA2B,IAAK;;;;;;;;;;AAevD,MAAM,sBACJ;;;;AAqBF,SAAS,SAAS,UAA2B;CAC3C,MAAM,SAAkB,EAAE;CAC1B,IAAI;CAGJ,MAAM,aAAa,2BAA2B,SAAS;AAEvD,qBAAoB,YAAY;AAChC,SAAQ,QAAQ,oBAAoB,KAAK,WAAW,MAAM,MAAM;EAC9D,MAAM,YAAY,MAAM;AAExB,MAAI,MAAM,GAER,SAAQ,WAAR;GACE,KAAK;AACH,WAAO,KAAK;KAAE,MAAM;KAAO,OAAO;KAAK,KAAK;KAAW,CAAC;AACxD;GACF,KAAK;AACH,WAAO,KAAK;KAAE,MAAM;KAAM,OAAO;KAAK,KAAK;KAAW,CAAC;AACvD;GACF,KAAK;AACH,WAAO,KAAK;KAAE,MAAM;KAAO,OAAO;KAAK,KAAK;KAAW,CAAC;AACxD;GACF,KAAK;AACH,WAAO,KAAK;KAAE,MAAM;KAAO,OAAO;KAAK,KAAK;KAAW,CAAC;AACxD;;WAEK,MAAM,GAEf,KAAI,cAAc,IAChB,QAAO,KAAK;GAAE,MAAM;GAAU,OAAO;GAAK,KAAK;GAAW,CAAC;MAE3D,QAAO,KAAK;GAAE,MAAM;GAAU,OAAO;GAAK,KAAK;GAAW,CAAC;MAI7D,QAAO,KAAK;GAAE,MAAM;GAAS,OAAO;GAAW,KAAK;GAAW,CAAC;;AAIpE,QAAO;;;;;AAMT,SAAS,2BAA2B,KAAqB;CACvD,IAAI,SAAS;CACb,IAAI,QAAQ;AAEZ,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;EACnC,MAAM,OAAO,IAAI;AACjB,MAAI,SAAS,KAAK;AAChB;AACA,aAAU;aACD,SAAS,KAAK;AACvB;AACA,aAAU;aACD,SAAS,OAAO,UAAU,EACnC,WAAU;MAEV,WAAU;;AAId,QAAO;;;;;AAUT,IAAM,SAAN,MAAa;CACX,AAAQ;CACR,AAAQ,MAAM;CACd,AAAQ;CAER,YAAY,QAAiB,SAA+B;AAC1D,OAAK,SAAS;AACd,OAAK,UAAU;;CAGjB,QAAuB;AACrB,MAAI,KAAK,OAAO,WAAW,EACzB,QAAO,eAAe;AAGxB,SADe,KAAK,iBAAiB;;CAIvC,AAAQ,UAA6B;AACnC,SAAO,KAAK,OAAO,KAAK;;CAG1B,AAAQ,UAA6B;AACnC,SAAO,KAAK,OAAO,KAAK;;CAG1B,AAAQ,MAAM,MAA0B;AACtC,MAAI,KAAK,SAAS,EAAE,SAAS,MAAM;AACjC,QAAK,SAAS;AACd,UAAO;;AAET,SAAO;;;;;;CAOT,AAAQ,kBAAiC;AACvC,SAAO,KAAK,UAAU;;CAGxB,AAAQ,WAA0B;EAChC,IAAI,OAAO,KAAK,SAAS;AAEzB,SAAO,KAAK,SAAS,EAAE,SAAS,OAAO;AACrC,QAAK,SAAS;GACd,MAAM,QAAQ,KAAK,SAAS;AAC5B,UAAO,IAAI,MAAM,MAAM;;AAGzB,SAAO;;CAGT,AAAQ,UAAyB;EAC/B,IAAI,OAAO,KAAK,UAAU;AAE1B,SAAO,KAAK,SAAS,EAAE,SAAS,MAAM;AACpC,QAAK,SAAS;GACd,MAAM,QAAQ,KAAK,UAAU;AAC7B,UAAO,GAAG,MAAM,MAAM;;AAGxB,SAAO;;CAGT,AAAQ,WAA0B;EAChC,IAAI,OAAO,KAAK,YAAY;AAE5B,SAAO,KAAK,SAAS,EAAE,SAAS,OAAO;AACrC,QAAK,SAAS;GACd,MAAM,QAAQ,KAAK,YAAY;AAE/B,UAAO,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,CAAC;;AAGzD,SAAO;;CAGT,AAAQ,aAA4B;AAClC,MAAI,KAAK,MAAM,MAAM,CAEnB,QAAO,IADS,KAAK,YAAY,CACd;AAErB,SAAO,KAAK,cAAc;;CAG5B,AAAQ,eAA8B;AAEpC,MAAI,KAAK,MAAM,SAAS,EAAE;GACxB,MAAM,OAAO,KAAK,iBAAiB;AACnC,QAAK,MAAM,SAAS;AACpB,UAAO;;EAIT,MAAM,QAAQ,KAAK,SAAS;AAC5B,MAAI,OAAO,SAAS,SAAS;AAC3B,QAAK,SAAS;AACd,UAAO,KAAK,gBAAgB,MAAM,MAAM;;AAI1C,SAAO,eAAe;;;;;CAMxB,AAAQ,gBAAgB,OAA8B;AAEpD,MAAI,UAAU,YACZ,QAAO,wBAAwB,OAAO,MAAM;AAI9C,MAAI,MAAM,WAAW,UAAU,CAE7B,QAAO,yBADW,MAAM,MAAM,EAAE,EACW,OAAO,MAAM;AAI1D,MAAI,MAAM,WAAW,UAAU,CAC7B,QAAO,KAAK,gBAAgB,MAAM;AAIpC,MAAI,MAAM,WAAW,aAAa,CAChC,QAAO,KAAK,mBAAmB,MAAM;AAIvC,MAAI,MAAM,WAAW,SAAS,CAC5B,QAAO,KAAK,eAAe,MAAM;AAInC,MAAI,MAAM,WAAW,QAAQ,CAC3B,QAAO,KAAK,cAAc,MAAM;AAIlC,MAAI,MAAM,WAAW,KAAK,CACxB,QAAO,KAAK,oBAAoB,MAAM;AAIxC,MAAI,MAAM,WAAW,IAAI,IAAI,2BAA2B,KAAK,MAAM,CACjE,QAAO,KAAK,qBAAqB,MAAM;AAIzC,MAAI,MAAM,WAAW,IAAI,CACvB,QAAO,sBAAsB,OAAO,OAAO,MAAM;AAInD,MAAI,MAAM,WAAW,IAAI,CACvB,QAAO,sBAAsB,OAAO,OAAO,MAAM;AAInD,MAAI,MAAM,WAAW,IAAI,CACvB,QAAO,sBAAsB,OAAO,OAAO,MAAM;AAInD,MAAI,MAAM,SAAS,IAAI,CACrB,QAAO,KAAK,mBAAmB,MAAM;AAIvC,SAAO,KAAK,qBAAqB,MAAM;;;;;CAMzC,AAAQ,gBAAgB,KAA4B;EAClD,MAAM,UAAU,IAAI,MAAM,GAAG,GAAG;AAChC,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,eAAe;EAIxB,IAAI,YAAY,0BAA0B,QAAQ;AAClD,cAAY,iBAAiB,UAAU;AAGvC,MACE,UAAU,SAAS,IAAI,IACvB,CAAC,UAAU,SAAS,IAAI,IACxB,CAAC,UAAU,SAAS,IAAI,IACxB,CAAC,UAAU,SAAS,IAAI,EACxB;GAEA,MAAM,WAAW,UAAU,QAAQ,IAAI;AAGvC,UAAO,4BAFS,UAAU,MAAM,GAAG,SAAS,CAAC,MAAM,EAC9B,UAAU,MAAM,WAAW,EAAE,CAAC,MAAM,EACC,OAAO,IAAI;;AAIvE,MACE,CAAC,UAAU,SAAS,IAAI,IACxB,CAAC,UAAU,SAAS,IAAI,IACxB,CAAC,UAAU,SAAS,IAAI,CAExB,QAAO,4BACL,UAAU,MAAM,EAChB,QACA,OACA,IACD;EAIH,MAAM,EAAE,WAAW,YAAY,eAC7B,KAAK,wBAAwB,UAAU;AAEzC,MAAI,CAAC,UAEH,QAAO,sBAAsB,KAAK,OAAO,IAAI;AAG/C,SAAO,8BACL,WACA,YACA,YACA,OACA,IACD;;;;;CAMH,AAAQ,wBAAwB,WAI9B;EAEA,MAAM,aAAa,UAAU,MAC3B,2EACD;AACD,MAAI,YAAY;GACd,MAAM,GAAG,YAAY,SAAS,WAAW,SAAS,cAChD;AACF,UAAO;IACL;IACA,YAAY;KACV,OAAO,WAAW,MAAM;KACxB,cAAc,kBAAkB,WAAW,MAAM,CAAC;KAClD,WAAW,YAAY;KACxB;IACD,YAAY;KACV,OAAO,WAAW,MAAM;KACxB,cAAc,kBAAkB,WAAW,MAAM,CAAC;KAClD,WAAW,YAAY;KACxB;IACF;;EAIH,MAAM,cAAc,UAAU,MAC5B,iEACD;AACD,MAAI,aAAa;GACf,MAAM,GAAG,WAAW,UAAU,SAAS;GACvC,MAAM,UAAU,kBAAkB,MAAM,MAAM,CAAC;AAE/C,OAAI,aAAa,OAAO,aAAa,KACnC,QAAO;IACL;IACA,YAAY;KACV,OAAO,MAAM,MAAM;KACnB,cAAc;KACd,WAAW,aAAa;KACzB;IACF;YACQ,aAAa,OAAO,aAAa,KAC1C,QAAO;IACL;IACA,YAAY;KACV,OAAO,MAAM,MAAM;KACnB,cAAc;KACd,WAAW,aAAa;KACzB;IACF;YACQ,aAAa,IAEtB,QAAO;IACL;IACA,YAAY;KACV,OAAO,MAAM,MAAM;KACnB,cAAc;KACd,WAAW;KACZ;IACD,YAAY;KACV,OAAO,MAAM,MAAM;KACnB,cAAc;KACd,WAAW;KACZ;IACF;;EAKL,MAAM,gBAAgB,UAAU,MAC9B,kEACD;AACD,MAAI,eAAe;GACjB,MAAM,GAAG,OAAO,UAAU,aAAa;GACvC,MAAM,UAAU,kBAAkB,MAAM,MAAM,CAAC;AAG/C,OAAI,aAAa,OAAO,aAAa,KACnC,QAAO;IACL;IACA,YAAY;KACV,OAAO,MAAM,MAAM;KACnB,cAAc;KACd,WAAW,aAAa;KACzB;IACF;YACQ,aAAa,OAAO,aAAa,KAC1C,QAAO;IACL;IACA,YAAY;KACV,OAAO,MAAM,MAAM;KACnB,cAAc;KACd,WAAW,aAAa;KACzB;IACF;;AAIL,SAAO,EAAE;;;;;CAMX,AAAQ,eAAe,KAA4B;EACjD,MAAM,UAAU,IAAI,MAAM,GAAG,GAAG;AAChC,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,eAAe;AAKxB,SAAO,oBADU,kBAAkB,QAAQ,EACN,OAAO,IAAI;;;;;;;;;CAUlD,AAAQ,mBAAmB,KAA4B;EACrD,MAAM,UAAU,IAAI,MAAM,IAAI,GAAG;AACjC,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,eAAe;AAIxB,MAAI,QAAQ,WAAW,KAAK,CAE1B,QAAO,wBAAwB,YADd,QAAQ,MAAM,EAAE,CAAC,MAAM,EACa,OAAO,IAAI;AAIlE,SAAO,wBAAwB,WAAW,SAAS,OAAO,IAAI;;;;;CAMhE,AAAQ,cAAc,KAA4B;EAChD,MAAM,UAAU,IAAI,MAAM,GAAG,GAAG;AAChC,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,eAAe;AAKxB,SAAO,mBADgB,cAAc,SAAS,KAAK,QAAQ,EACjB,OAAO,IAAI;;;;;CAMvD,AAAQ,oBAAoB,KAA4B;EACtD,MAAM,UAAU,IAAI,MAAM,GAAG,GAAG;AAChC,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,eAAe;EAKxB,MAAM,WAAW,kBAAkB,QAAQ;EAC3C,IAAI;EACJ,IAAI;AAEJ,MAAI,aAAa,IAAI;AACnB,mBAAgB,QAAQ,MAAM,GAAG,SAAS,CAAC,MAAM;AACjD,eAAY,QAAQ,MAAM,WAAW,EAAE,CAAC,MAAM;QAE9C,aAAY,QAAQ,MAAM;AAI5B,MAAI,UAAU,WAAW,IAAI,EAAE;GAC7B,MAAM,aAAa,UAAU,MAAM,EAAE;GACrC,MAAM,QAAQ,WAAW,QAAQ,IAAI;AAErC,OAAI,UAAU,GAEZ,QAAO,8BACL,YACA,QACA,eACA,OACA,IACD;GAGH,MAAM,WAAW,WAAW,MAAM,GAAG,MAAM,CAAC,MAAM;GAClD,IAAI,gBAAgB,WAAW,MAAM,QAAQ,EAAE,CAAC,MAAM;AAGtD,OACG,cAAc,WAAW,KAAI,IAAI,cAAc,SAAS,KAAI,IAC5D,cAAc,WAAW,IAAI,IAAI,cAAc,SAAS,IAAI,CAE7D,iBAAgB,cAAc,MAAM,GAAG,GAAG;AAG5C,UAAO,8BACL,UACA,eACA,eACA,OACA,IACD;;AAKH,MAAI,uBAAuB,KAAK,UAAU,CACxC,QAAO,4BAA4B,WAAW,eAAe,OAAO,IAAI;EAI1E,IAAI,oBAAoB,0BAA0B,UAAU;AAC5D,sBAAoB,iBAAiB,kBAAkB;EAEvD,MAAM,EAAE,WAAW,YAAY,eAC7B,KAAK,wBAAwB,kBAAkB;AAEjD,MAAI,CAAC,UAEH,QAAO,sBAAsB,KAAK,OAAO,IAAI;AAG/C,SAAO,kCACL,WACA,YACA,YACA,eACA,OACA,IACD;;;;;CAMH,AAAQ,qBAAqB,KAA4B;EACvD,MAAM,MAAM,KAAK,QAAQ;AACzB,MAAI,CAAC,IAEH,QAAO,sBAAsB,KAAK,OAAO,IAAI;EAG/C,MAAM,WAAW,uBAAuB,KAAK,IAAI;AACjD,MAAI,CAAC,SAEH,QAAO,wBACL,QAAQ,aAAa,IAAI,MAAM,EAAE,CAAC,IAClC,QACA,KACA,OACA,IACD;AAIH,SAAO,cAAc,UAAU,KAAK,QAAQ;;;;;CAM9C,AAAQ,mBAAmB,KAA4B;EAErD,MAAM,UAAU,IAAI,MAAM,0CAA0C;AACpE,MAAI,CAAC,QACH,QAAO,wBACL,QAAQ,aAAa,IAAI,IACzB,QACA,KACA,OACA,IACD;EAGH,MAAM,GAAG,KAAK,UAAU,SAAS;EACjC,IAAI,aAAa;AAGjB,MACG,WAAW,WAAW,KAAI,IAAI,WAAW,SAAS,KAAI,IACtD,WAAW,WAAW,IAAI,IAAI,WAAW,SAAS,IAAI,CAEvD,cAAa,WAAW,MAAM,GAAG,GAAG;AAGtC,SAAO,wBACL,QAAQ,aAAa,IAAI,IACzB,YACA,UACA,OACA,IACD;;;;;CAMH,AAAQ,qBAAqB,KAA4B;AACvD,SAAO,wBACL,QAAQ,aAAa,IAAI,IACzB,QACA,KACA,OACA,IACD;;;;;;AAWL,SAAS,kBAAkB,OAA8B;CACvD,MAAM,QAAQ,MAAM,MAAM,wCAAwC;AAClE,KAAI,MACF,QAAO,WAAW,MAAM,GAAG;AAE7B,QAAO;;;;;AAMT,SAAS,kBAAkB,WAA2B;AAEpD,KAAI,UAAU,WAAW,IAAI,CAC3B,QAAO;AAIT,KAAI,UAAU,WAAW,IAAI,CAC3B,QAAO;AAIT,KAAI,UAAU,SAAS,IAAI,EAAE;EAC3B,MAAM,CAAC,KAAK,SAAS,UAAU,MAAM,IAAI;AACzC,SAAO,SAAS,aAAa,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,MAAM,CAAC;;AAI5D,QAAO,SAAS,aAAa,UAAU,CAAC;;;;;AAU1C,SAAgB,cACd,UACA,UAAgC,EAAE,EACnB;AAEf,KAAI,CAAC,YAAY,CAAC,SAAS,MAAM,CAC/B,QAAO,eAAe;CAGxB,MAAM,UAAU,SAAS,MAAM;CAI/B,MAAM,MAAM,QAAQ;CACpB,MAAM,iBACJ,OAAO,OAAO,KAAK,IAAI,sBAAsB,CAAC,SAAS,IACnD,KAAK,UAAU,IAAI,sBAAsB,GACzC;CACN,MAAM,WAAW,KAAK,UAAU;EAC9B;EACA,QAAQ;EACR;EACD,CAAC;CAGF,MAAM,SAAS,WAAW,IAAI,SAAS;AACvC,KAAI,OACF,QAAO;CAMT,MAAM,SADS,IAAI,OADJ,SAAS,QAAQ,EACE,QAAQ,CACpB,OAAO;AAG7B,YAAW,IAAI,UAAU,OAAO;AAEhC,QAAO"}
@@ -1,558 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.117.0 | Cube Dev Team */
2
- import { Lru } from "../parser/lru.js";
3
- import { falseCondition, getConditionUniqueId, trueCondition } from "./conditions.js";
4
-
5
- //#region src/tasty/pipeline/simplify.ts
6
- /**
7
- * Condition Simplification Engine
8
- *
9
- * Simplifies condition trees by applying boolean algebra rules,
10
- * detecting contradictions, merging ranges, and deduplicating terms.
11
- *
12
- * This is critical for:
13
- * 1. Detecting invalid combinations (A & !A → FALSE)
14
- * 2. Reducing CSS output size
15
- * 3. Producing cleaner selectors
16
- */
17
- const simplifyCache = new Lru(5e3);
18
- /**
19
- * Simplify a condition tree aggressively.
20
- *
21
- * This applies all possible simplification rules:
22
- * - Boolean algebra (identity, annihilator, idempotent, absorption)
23
- * - Contradiction detection (A & !A → FALSE)
24
- * - Tautology detection (A | !A → TRUE)
25
- * - Range intersection for numeric queries
26
- * - Attribute value conflict detection
27
- * - Deduplication and sorting
28
- */
29
- function simplifyCondition(node) {
30
- const key = getConditionUniqueId(node);
31
- const cached = simplifyCache.get(key);
32
- if (cached) return cached;
33
- const result = simplifyInner(node);
34
- simplifyCache.set(key, result);
35
- return result;
36
- }
37
- function simplifyInner(node) {
38
- if (node.kind === "true" || node.kind === "false") return node;
39
- if (node.kind === "state") return node;
40
- if (node.kind === "compound") {
41
- const simplifiedChildren = node.children.map((c) => simplifyInner(c));
42
- if (node.operator === "AND") return simplifyAnd(simplifiedChildren);
43
- else return simplifyOr(simplifiedChildren);
44
- }
45
- return node;
46
- }
47
- function simplifyAnd(children) {
48
- let terms = [];
49
- for (const child of children) {
50
- if (child.kind === "false") return falseCondition();
51
- if (child.kind === "true") continue;
52
- if (child.kind === "compound" && child.operator === "AND") terms.push(...child.children);
53
- else terms.push(child);
54
- }
55
- if (terms.length === 0) return trueCondition();
56
- if (terms.length === 1) return terms[0];
57
- if (hasContradiction(terms)) return falseCondition();
58
- if (hasRangeContradiction(terms)) return falseCondition();
59
- if (hasAttributeConflict(terms)) return falseCondition();
60
- if (hasContainerStyleConflict(terms)) return falseCondition();
61
- terms = removeImpliedNegations(terms);
62
- terms = deduplicateTerms(terms);
63
- terms = mergeRanges(terms);
64
- terms = sortTerms(terms);
65
- terms = applyAbsorptionAnd(terms);
66
- if (terms.length === 0) return trueCondition();
67
- if (terms.length === 1) return terms[0];
68
- return {
69
- kind: "compound",
70
- operator: "AND",
71
- children: terms
72
- };
73
- }
74
- function simplifyOr(children) {
75
- let terms = [];
76
- for (const child of children) {
77
- if (child.kind === "true") return trueCondition();
78
- if (child.kind === "false") continue;
79
- if (child.kind === "compound" && child.operator === "OR") terms.push(...child.children);
80
- else terms.push(child);
81
- }
82
- if (terms.length === 0) return falseCondition();
83
- if (terms.length === 1) return terms[0];
84
- if (hasTautology(terms)) return trueCondition();
85
- terms = deduplicateTerms(terms);
86
- terms = sortTerms(terms);
87
- terms = applyAbsorptionOr(terms);
88
- if (terms.length === 0) return falseCondition();
89
- if (terms.length === 1) return terms[0];
90
- return {
91
- kind: "compound",
92
- operator: "OR",
93
- children: terms
94
- };
95
- }
96
- /**
97
- * Check if any term contradicts another (A & !A)
98
- */
99
- function hasContradiction(terms) {
100
- const uniqueIds = /* @__PURE__ */ new Set();
101
- for (const term of terms) {
102
- if (term.kind !== "state") continue;
103
- const id = term.uniqueId;
104
- const negatedId = term.negated ? id.slice(1) : `!${id}`;
105
- if (uniqueIds.has(negatedId)) return true;
106
- uniqueIds.add(id);
107
- }
108
- return false;
109
- }
110
- /**
111
- * Check for tautologies (A | !A)
112
- */
113
- function hasTautology(terms) {
114
- const uniqueIds = /* @__PURE__ */ new Set();
115
- for (const term of terms) {
116
- if (term.kind !== "state") continue;
117
- const id = term.uniqueId;
118
- const negatedId = term.negated ? id.slice(1) : `!${id}`;
119
- if (uniqueIds.has(negatedId)) return true;
120
- uniqueIds.add(id);
121
- }
122
- return false;
123
- }
124
- /**
125
- * Check for range contradictions in media/container queries
126
- * e.g., @media(w < 400px) & @media(w > 800px) → FALSE
127
- *
128
- * Also handles negated conditions:
129
- * - Single-bound negations are inverted (not (w < 600px) → w >= 600px)
130
- * - Range negations create excluded ranges that are checked against positive bounds
131
- */
132
- function hasRangeContradiction(terms) {
133
- const mediaByDim = /* @__PURE__ */ new Map();
134
- const containerByDim = /* @__PURE__ */ new Map();
135
- for (const term of terms) {
136
- if (term.kind !== "state") continue;
137
- if (term.type === "media" && term.subtype === "dimension") {
138
- const key = term.dimension || "width";
139
- if (!mediaByDim.has(key)) mediaByDim.set(key, {
140
- positive: [],
141
- negated: []
142
- });
143
- const group = mediaByDim.get(key);
144
- if (term.negated) group.negated.push(term);
145
- else group.positive.push(term);
146
- }
147
- if (term.type === "container" && term.subtype === "dimension") {
148
- const key = `${term.containerName || "_"}:${term.dimension || "width"}`;
149
- if (!containerByDim.has(key)) containerByDim.set(key, {
150
- positive: [],
151
- negated: []
152
- });
153
- const group = containerByDim.get(key);
154
- if (term.negated) group.negated.push(term);
155
- else group.positive.push(term);
156
- }
157
- }
158
- for (const group of mediaByDim.values()) if (rangesAreImpossibleWithNegations(group.positive, group.negated)) return true;
159
- for (const group of containerByDim.values()) if (rangesAreImpossibleWithNegations(group.positive, group.negated)) return true;
160
- return false;
161
- }
162
- /**
163
- * Check if conditions are impossible, including negated conditions.
164
- *
165
- * For negated single-bound conditions:
166
- * not (w < 600px) → w >= 600px (inverted to lower bound)
167
- * not (w >= 800px) → w < 800px (inverted to upper bound)
168
- *
169
- * For negated range conditions:
170
- * not (400px <= w < 800px) → excludes [400, 800)
171
- * If the effective bounds fall entirely within an excluded range, it's impossible.
172
- */
173
- function rangesAreImpossibleWithNegations(positive, negated) {
174
- const bounds = computeEffectiveBounds(positive);
175
- const excludedRanges = [];
176
- for (const cond of negated) {
177
- const hasLower = cond.lowerBound?.valueNumeric != null;
178
- const hasUpper = cond.upperBound?.valueNumeric != null;
179
- if (hasLower && hasUpper) excludedRanges.push({
180
- lower: cond.lowerBound.valueNumeric,
181
- lowerInclusive: cond.lowerBound.inclusive,
182
- upper: cond.upperBound.valueNumeric,
183
- upperInclusive: cond.upperBound.inclusive
184
- });
185
- else if (hasUpper) {
186
- const value = cond.upperBound.valueNumeric;
187
- const inclusive = !cond.upperBound.inclusive;
188
- if (bounds.lowerBound === null || value > bounds.lowerBound) {
189
- bounds.lowerBound = value;
190
- bounds.lowerInclusive = inclusive;
191
- } else if (value === bounds.lowerBound && !inclusive) bounds.lowerInclusive = false;
192
- } else if (hasLower) {
193
- const value = cond.lowerBound.valueNumeric;
194
- const inclusive = !cond.lowerBound.inclusive;
195
- if (bounds.upperBound === null || value < bounds.upperBound) {
196
- bounds.upperBound = value;
197
- bounds.upperInclusive = inclusive;
198
- } else if (value === bounds.upperBound && !inclusive) bounds.upperInclusive = false;
199
- }
200
- }
201
- if (bounds.lowerBound !== null && bounds.upperBound !== null) {
202
- if (bounds.lowerBound > bounds.upperBound) return true;
203
- if (bounds.lowerBound === bounds.upperBound && (!bounds.lowerInclusive || !bounds.upperInclusive)) return true;
204
- }
205
- if (bounds.lowerBound !== null && bounds.upperBound !== null && excludedRanges.length > 0) {
206
- for (const excluded of excludedRanges) if (boundsWithinExcludedRange(bounds, excluded)) return true;
207
- }
208
- return false;
209
- }
210
- /**
211
- * Compute effective bounds from positive (non-negated) conditions
212
- */
213
- function computeEffectiveBounds(conditions) {
214
- let lowerBound = null;
215
- let lowerInclusive = false;
216
- let upperBound = null;
217
- let upperInclusive = false;
218
- for (const cond of conditions) {
219
- if (cond.lowerBound?.valueNumeric != null) {
220
- const value = cond.lowerBound.valueNumeric;
221
- const inclusive = cond.lowerBound.inclusive;
222
- if (lowerBound === null || value > lowerBound) {
223
- lowerBound = value;
224
- lowerInclusive = inclusive;
225
- } else if (value === lowerBound && !inclusive) lowerInclusive = false;
226
- }
227
- if (cond.upperBound?.valueNumeric != null) {
228
- const value = cond.upperBound.valueNumeric;
229
- const inclusive = cond.upperBound.inclusive;
230
- if (upperBound === null || value < upperBound) {
231
- upperBound = value;
232
- upperInclusive = inclusive;
233
- } else if (value === upperBound && !inclusive) upperInclusive = false;
234
- }
235
- }
236
- return {
237
- lowerBound,
238
- lowerInclusive,
239
- upperBound,
240
- upperInclusive
241
- };
242
- }
243
- /**
244
- * Check if effective bounds fall entirely within an excluded range.
245
- *
246
- * For example:
247
- * Effective: [400, 800)
248
- * Excluded: [400, 800)
249
- * → bounds fall entirely within excluded range → impossible
250
- */
251
- function boundsWithinExcludedRange(bounds, excluded) {
252
- if (bounds.lowerBound === null || bounds.upperBound === null) return false;
253
- let lowerOk = false;
254
- if (bounds.lowerBound > excluded.lower) lowerOk = true;
255
- else if (bounds.lowerBound === excluded.lower) lowerOk = excluded.lowerInclusive || !bounds.lowerInclusive;
256
- let upperOk = false;
257
- if (bounds.upperBound < excluded.upper) upperOk = true;
258
- else if (bounds.upperBound === excluded.upper) upperOk = excluded.upperInclusive || !bounds.upperInclusive;
259
- return lowerOk && upperOk;
260
- }
261
- /**
262
- * Check for attribute value conflicts
263
- * e.g., [data-theme="dark"] & [data-theme="light"] → FALSE
264
- * e.g., [data-theme="dark"] & ![data-theme] → FALSE
265
- */
266
- function hasAttributeConflict(terms) {
267
- const modifiersByAttr = /* @__PURE__ */ new Map();
268
- for (const term of terms) {
269
- if (term.kind !== "state" || term.type !== "modifier") continue;
270
- const attr = term.attribute;
271
- if (!modifiersByAttr.has(attr)) modifiersByAttr.set(attr, {
272
- positive: [],
273
- negated: []
274
- });
275
- const group = modifiersByAttr.get(attr);
276
- if (term.negated) group.negated.push(term);
277
- else group.positive.push(term);
278
- }
279
- for (const [attr, group] of modifiersByAttr) {
280
- const positiveValues = group.positive.filter((m) => m.value !== void 0).map((m) => m.value);
281
- if (new Set(positiveValues).size > 1) return true;
282
- const hasPositiveValue = group.positive.some((m) => m.value !== void 0);
283
- const hasNegatedBoolean = group.negated.some((m) => m.value === void 0);
284
- if (hasPositiveValue && hasNegatedBoolean) return true;
285
- for (const pos of group.positive) if (pos.value !== void 0) {
286
- for (const neg of group.negated) if (neg.value === pos.value) return true;
287
- }
288
- }
289
- return false;
290
- }
291
- /**
292
- * Check for container style query conflicts
293
- * e.g., style(--variant: danger) & style(--variant: success) → FALSE
294
- * e.g., style(--variant: danger) & not style(--variant) → FALSE
295
- */
296
- function hasContainerStyleConflict(terms) {
297
- const styleByProp = /* @__PURE__ */ new Map();
298
- for (const term of terms) {
299
- if (term.kind !== "state" || term.type !== "container" || term.subtype !== "style") continue;
300
- const key = `${term.containerName || "_"}:${term.property}`;
301
- if (!styleByProp.has(key)) styleByProp.set(key, {
302
- positive: [],
303
- negated: []
304
- });
305
- const group = styleByProp.get(key);
306
- if (term.negated) group.negated.push(term);
307
- else group.positive.push(term);
308
- }
309
- for (const [, group] of styleByProp) {
310
- const positiveValues = group.positive.filter((c) => c.propertyValue !== void 0).map((c) => c.propertyValue);
311
- if (new Set(positiveValues).size > 1) return true;
312
- const hasPositiveValue = group.positive.some((c) => c.propertyValue !== void 0);
313
- const hasNegatedExistence = group.negated.some((c) => c.propertyValue === void 0);
314
- if (hasPositiveValue && hasNegatedExistence) return true;
315
- for (const pos of group.positive) if (pos.propertyValue !== void 0) {
316
- for (const neg of group.negated) if (neg.propertyValue === pos.propertyValue) return true;
317
- }
318
- }
319
- return false;
320
- }
321
- /**
322
- * Remove negations that are implied by positive terms.
323
- *
324
- * Key optimizations:
325
- * 1. style(--variant: danger) implies NOT style(--variant: success)
326
- * → If we have style(--variant: danger) & not style(--variant: success),
327
- * the negation is redundant and can be removed.
328
- *
329
- * 2. [data-theme="dark"] implies NOT [data-theme="light"]
330
- * → Same logic for attribute selectors.
331
- *
332
- * This produces cleaner CSS:
333
- * Before: @container style(--variant: danger) and (not style(--variant: success))
334
- * After: @container style(--variant: danger)
335
- */
336
- function removeImpliedNegations(terms) {
337
- const positiveContainerStyles = /* @__PURE__ */ new Map();
338
- const positiveModifiers = /* @__PURE__ */ new Map();
339
- for (const term of terms) {
340
- if (term.kind !== "state" || term.negated) continue;
341
- if (term.type === "container" && term.subtype === "style") {
342
- const key = `${term.containerName || "_"}:${term.property}`;
343
- if (term.propertyValue !== void 0) positiveContainerStyles.set(key, term.propertyValue);
344
- }
345
- if (term.type === "modifier" && term.value !== void 0) positiveModifiers.set(term.attribute, term.value);
346
- }
347
- return terms.filter((term) => {
348
- if (term.kind !== "state" || !term.negated) return true;
349
- if (term.type === "container" && term.subtype === "style") {
350
- const key = `${term.containerName || "_"}:${term.property}`;
351
- const positiveValue = positiveContainerStyles.get(key);
352
- if (positiveValue !== void 0) {
353
- if (term.propertyValue === void 0) return true;
354
- if (term.propertyValue !== positiveValue) return false;
355
- }
356
- }
357
- if (term.type === "modifier") {
358
- const positiveValue = positiveModifiers.get(term.attribute);
359
- if (positiveValue !== void 0 && term.value !== void 0) {
360
- if (term.value !== positiveValue) return false;
361
- }
362
- }
363
- return true;
364
- });
365
- }
366
- function deduplicateTerms(terms) {
367
- const seen = /* @__PURE__ */ new Set();
368
- const result = [];
369
- for (const term of terms) {
370
- const id = getConditionUniqueId(term);
371
- if (!seen.has(id)) {
372
- seen.add(id);
373
- result.push(term);
374
- }
375
- }
376
- return result;
377
- }
378
- /**
379
- * Merge compatible range conditions
380
- * e.g., @media(w >= 400px) & @media(w <= 800px) → @media(400px <= w <= 800px)
381
- */
382
- function mergeRanges(terms) {
383
- const mediaByDim = /* @__PURE__ */ new Map();
384
- const containerByDim = /* @__PURE__ */ new Map();
385
- terms.forEach((term, index) => {
386
- if (term.kind !== "state") return;
387
- if (term.type === "media" && term.subtype === "dimension" && !term.negated) {
388
- const key = term.dimension || "width";
389
- if (!mediaByDim.has(key)) mediaByDim.set(key, {
390
- conditions: [],
391
- indices: []
392
- });
393
- const group = mediaByDim.get(key);
394
- group.conditions.push(term);
395
- group.indices.push(index);
396
- }
397
- if (term.type === "container" && term.subtype === "dimension" && !term.negated) {
398
- const key = `${term.containerName || "_"}:${term.dimension || "width"}`;
399
- if (!containerByDim.has(key)) containerByDim.set(key, {
400
- conditions: [],
401
- indices: []
402
- });
403
- const group = containerByDim.get(key);
404
- group.conditions.push(term);
405
- group.indices.push(index);
406
- }
407
- });
408
- const indicesToRemove = /* @__PURE__ */ new Set();
409
- const mergedTerms = [];
410
- for (const [dim, group] of mediaByDim) if (group.conditions.length > 1) {
411
- const merged = mergeMediaRanges(group.conditions);
412
- if (merged) {
413
- group.indices.forEach((i) => indicesToRemove.add(i));
414
- mergedTerms.push(merged);
415
- }
416
- }
417
- for (const [, group] of containerByDim) if (group.conditions.length > 1) {
418
- const merged = mergeContainerRanges(group.conditions);
419
- if (merged) {
420
- group.indices.forEach((i) => indicesToRemove.add(i));
421
- mergedTerms.push(merged);
422
- }
423
- }
424
- const result = [];
425
- terms.forEach((term, index) => {
426
- if (!indicesToRemove.has(index)) result.push(term);
427
- });
428
- result.push(...mergedTerms);
429
- return result;
430
- }
431
- function mergeMediaRanges(conditions) {
432
- if (conditions.length === 0) return null;
433
- let lowerBound;
434
- let upperBound;
435
- for (const cond of conditions) {
436
- if (cond.lowerBound) {
437
- if (!lowerBound || (cond.lowerBound.valueNumeric ?? -Infinity) > (lowerBound.valueNumeric ?? -Infinity)) lowerBound = cond.lowerBound;
438
- }
439
- if (cond.upperBound) {
440
- if (!upperBound || (cond.upperBound.valueNumeric ?? Infinity) < (upperBound.valueNumeric ?? Infinity)) upperBound = cond.upperBound;
441
- }
442
- }
443
- const base = conditions[0];
444
- const merged = {
445
- kind: "state",
446
- type: "media",
447
- subtype: "dimension",
448
- negated: false,
449
- raw: buildMergedRaw(base.dimension || "width", lowerBound, upperBound),
450
- uniqueId: "",
451
- dimension: base.dimension,
452
- lowerBound,
453
- upperBound
454
- };
455
- const parts = [
456
- "media",
457
- "dim",
458
- merged.dimension
459
- ];
460
- if (lowerBound) {
461
- parts.push(lowerBound.inclusive ? ">=" : ">");
462
- parts.push(lowerBound.value);
463
- }
464
- if (upperBound) {
465
- parts.push(upperBound.inclusive ? "<=" : "<");
466
- parts.push(upperBound.value);
467
- }
468
- merged.uniqueId = parts.join(":");
469
- return merged;
470
- }
471
- function mergeContainerRanges(conditions) {
472
- if (conditions.length === 0) return null;
473
- let lowerBound;
474
- let upperBound;
475
- for (const cond of conditions) {
476
- if (cond.lowerBound) {
477
- if (!lowerBound || (cond.lowerBound.valueNumeric ?? -Infinity) > (lowerBound.valueNumeric ?? -Infinity)) lowerBound = cond.lowerBound;
478
- }
479
- if (cond.upperBound) {
480
- if (!upperBound || (cond.upperBound.valueNumeric ?? Infinity) < (upperBound.valueNumeric ?? Infinity)) upperBound = cond.upperBound;
481
- }
482
- }
483
- const base = conditions[0];
484
- const merged = {
485
- kind: "state",
486
- type: "container",
487
- subtype: "dimension",
488
- negated: false,
489
- raw: buildMergedRaw(base.dimension || "width", lowerBound, upperBound),
490
- uniqueId: "",
491
- containerName: base.containerName,
492
- dimension: base.dimension,
493
- lowerBound,
494
- upperBound
495
- };
496
- const parts = [
497
- "container",
498
- "dim",
499
- merged.containerName || "_",
500
- merged.dimension
501
- ];
502
- if (lowerBound) {
503
- parts.push(lowerBound.inclusive ? ">=" : ">");
504
- parts.push(lowerBound.value);
505
- }
506
- if (upperBound) {
507
- parts.push(upperBound.inclusive ? "<=" : "<");
508
- parts.push(upperBound.value);
509
- }
510
- merged.uniqueId = parts.join(":");
511
- return merged;
512
- }
513
- function buildMergedRaw(dimension, lowerBound, upperBound) {
514
- if (lowerBound && upperBound) {
515
- const lowerOp = lowerBound.inclusive ? "<=" : "<";
516
- const upperOp = upperBound.inclusive ? "<=" : "<";
517
- return `@media(${lowerBound.value} ${lowerOp} ${dimension} ${upperOp} ${upperBound.value})`;
518
- } else if (upperBound) return `@media(${dimension} ${upperBound.inclusive ? "<=" : "<"} ${upperBound.value})`;
519
- else if (lowerBound) return `@media(${dimension} ${lowerBound.inclusive ? ">=" : ">"} ${lowerBound.value})`;
520
- return "@media()";
521
- }
522
- function sortTerms(terms) {
523
- return [...terms].sort((a, b) => {
524
- const idA = getConditionUniqueId(a);
525
- const idB = getConditionUniqueId(b);
526
- return idA.localeCompare(idB);
527
- });
528
- }
529
- /**
530
- * Apply absorption law for AND: A & (A | B) → A
531
- */
532
- function applyAbsorptionAnd(terms) {
533
- const simpleIds = /* @__PURE__ */ new Set();
534
- for (const term of terms) if (term.kind !== "compound") simpleIds.add(getConditionUniqueId(term));
535
- return terms.filter((term) => {
536
- if (term.kind === "compound" && term.operator === "OR") {
537
- for (const child of term.children) if (simpleIds.has(getConditionUniqueId(child))) return false;
538
- }
539
- return true;
540
- });
541
- }
542
- /**
543
- * Apply absorption law for OR: A | (A & B) → A
544
- */
545
- function applyAbsorptionOr(terms) {
546
- const simpleIds = /* @__PURE__ */ new Set();
547
- for (const term of terms) if (term.kind !== "compound") simpleIds.add(getConditionUniqueId(term));
548
- return terms.filter((term) => {
549
- if (term.kind === "compound" && term.operator === "AND") {
550
- for (const child of term.children) if (simpleIds.has(getConditionUniqueId(child))) return false;
551
- }
552
- return true;
553
- });
554
- }
555
-
556
- //#endregion
557
- export { simplifyCondition };
558
- //# sourceMappingURL=simplify.js.map