@cube-dev/ui-kit 0.204.0 → 0.206.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 (642) hide show
  1. package/dist/CHANGELOG.md +36 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/Root.js.map +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemActionsWrapper.js +221 -132
  28. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  31. package/dist/components/actions/Link/Link.js +1 -1
  32. package/dist/components/actions/Menu/Menu.js +1 -1
  33. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/actions-run.js +1 -1
  42. package/dist/components/actions/index.js +1 -1
  43. package/dist/components/actions/use-action.js +1 -1
  44. package/dist/components/actions/use-anchored-menu.js +1 -1
  45. package/dist/components/actions/use-context-menu.js +1 -1
  46. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  47. package/dist/components/content/Alert/Alert.js +1 -1
  48. package/dist/components/content/Alert/use-alert.js +1 -1
  49. package/dist/components/content/Avatar/Avatar.js +1 -1
  50. package/dist/components/content/Badge/Badge.js +1 -1
  51. package/dist/components/content/Card/Card.js +1 -1
  52. package/dist/components/content/Content.js +1 -1
  53. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  54. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  55. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  56. package/dist/components/content/Divider/Divider.js +1 -1
  57. package/dist/components/content/Footer.js +1 -1
  58. package/dist/components/content/Header.js +1 -1
  59. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  60. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  61. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  62. package/dist/components/content/Item/Item.d.ts +2 -1
  63. package/dist/components/content/Item/Item.js +1 -1
  64. package/dist/components/content/Item/Item.js.map +1 -1
  65. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  67. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  68. package/dist/components/content/Layout/GridLayout.js +1 -1
  69. package/dist/components/content/Layout/Layout.js +1 -1
  70. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  71. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  72. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  73. package/dist/components/content/Layout/LayoutContent.js +1 -1
  74. package/dist/components/content/Layout/LayoutContext.js +1 -1
  75. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  76. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  77. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  78. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutPane.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  83. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  84. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  85. package/dist/components/content/Layout/index.js +1 -1
  86. package/dist/components/content/Layout/utils.js +1 -1
  87. package/dist/components/content/Paragraph.js +1 -1
  88. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  89. package/dist/components/content/PrismCode/PrismCode.js +3 -2
  90. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  91. package/dist/components/content/PrismCode/prismSetup.js +8 -2
  92. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  93. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  94. package/dist/components/content/Result/Result.js +1 -1
  95. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  96. package/dist/components/content/Tag/Tag.js +1 -1
  97. package/dist/components/content/Text.js +1 -1
  98. package/dist/components/content/TextItem/TextItem.d.ts +5 -2
  99. package/dist/components/content/TextItem/TextItem.js +1 -1
  100. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  101. package/dist/components/content/Title.js +1 -1
  102. package/dist/components/content/Tree/Tree.js +1 -1
  103. package/dist/components/content/Tree/TreeNode.js +1 -1
  104. package/dist/components/content/Tree/checked-keys.js +1 -1
  105. package/dist/components/content/Tree/rowId.js +1 -1
  106. package/dist/components/content/Tree/styled.js +1 -1
  107. package/dist/components/content/Tree/tree-index.js +1 -1
  108. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  109. package/dist/components/content/Tree/use-load-data.js +1 -1
  110. package/dist/components/content/highlightText.js +1 -1
  111. package/dist/components/content/use-auto-tooltip.js +114 -72
  112. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  113. package/dist/components/data/DataTable/DataTable.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  115. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  116. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  117. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  118. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  119. package/dist/components/data/ItemTable/item-table-sections.js +1 -1
  120. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  121. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  122. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  123. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  124. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  125. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  126. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  127. package/dist/components/data/TableBase/RowCollection.js +1 -1
  128. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  129. package/dist/components/data/TableBase/TableRow.js +1 -1
  130. package/dist/components/data/TableBase/TableRowLink.js +1 -1
  131. package/dist/components/data/TableBase/TableView.js +1 -1
  132. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  133. package/dist/components/data/TableBase/column-header.js +1 -1
  134. package/dist/components/data/TableBase/column-menu.js +1 -1
  135. package/dist/components/data/TableBase/column-styles.js +1 -1
  136. package/dist/components/data/TableBase/column-tint.js +1 -1
  137. package/dist/components/data/TableBase/row-menu.js +1 -1
  138. package/dist/components/data/TableBase/styled.js +21 -20
  139. package/dist/components/data/TableBase/styled.js.map +1 -1
  140. package/dist/components/data/TableBase/table-body-sections.js +1 -1
  141. package/dist/components/data/TableBase/table-tree.js +1 -1
  142. package/dist/components/data/TableBase/types.js +1 -1
  143. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  144. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  145. package/dist/components/data/TableBase/use-column-order.js +1 -1
  146. package/dist/components/data/TableBase/use-column-window.js +1 -1
  147. package/dist/components/data/TableBase/use-container-width.js +1 -1
  148. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  149. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  150. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  151. package/dist/components/data/TableBase/use-table-search.js +1 -1
  152. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  153. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  154. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  155. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  156. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  157. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  158. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  159. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  160. package/dist/components/fields/Checkbox/context.js +1 -1
  161. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  162. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  163. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  164. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  165. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  166. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  167. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  168. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  169. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  170. package/dist/components/fields/DatePicker/CalendarPopover.js +281 -0
  171. package/dist/components/fields/DatePicker/CalendarPopover.js.map +1 -0
  172. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  173. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  174. package/dist/components/fields/DatePicker/DatePicker.js +26 -24
  175. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  176. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  177. package/dist/components/fields/DatePicker/DatePickerElement.js +4 -2
  178. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  179. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  180. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  181. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +10 -0
  182. package/dist/components/fields/DatePicker/DateRangePicker.js +143 -65
  183. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  184. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +172 -165
  185. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  186. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  187. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  188. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  189. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  190. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  191. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  192. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  193. package/dist/components/fields/DatePicker/period.js +1 -1
  194. package/dist/components/fields/DatePicker/props.js +1 -1
  195. package/dist/components/fields/DatePicker/utils.js +1 -1
  196. package/dist/components/fields/FileInput/FileInput.js +1 -1
  197. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  198. package/dist/components/fields/FilterListBox/styled.js +1 -1
  199. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  200. package/dist/components/fields/FilterPicker/FilterTree.js +1 -1
  201. package/dist/components/fields/Input/Input.js +1 -1
  202. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  203. package/dist/components/fields/ListBox/ListBox.js +1 -1
  204. package/dist/components/fields/ListBox/optionId.js +1 -1
  205. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  206. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  207. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  208. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  209. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  210. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  211. package/dist/components/fields/Picker/Picker.js +1 -1
  212. package/dist/components/fields/RadioGroup/Radio.js +108 -118
  213. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  214. package/dist/components/fields/RadioGroup/RadioGroup.js +10 -12
  215. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  216. package/dist/components/fields/RadioGroup/context.js +1 -1
  217. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  218. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  219. package/dist/components/fields/Select/Select.js +1 -1
  220. package/dist/components/fields/Slider/Gradation.js +1 -1
  221. package/dist/components/fields/Slider/HueSlider.js +1 -1
  222. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  223. package/dist/components/fields/Slider/Slider.js +1 -1
  224. package/dist/components/fields/Slider/SliderBase.js +1 -1
  225. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  226. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  227. package/dist/components/fields/Slider/elements.js +1 -1
  228. package/dist/components/fields/Slider/index.js +1 -1
  229. package/dist/components/fields/Switch/Switch.js +1 -1
  230. package/dist/components/fields/TagInput/TagInput.js +1 -1
  231. package/dist/components/fields/TagInput/TagList.js +1 -1
  232. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  233. package/dist/components/fields/TagInput/useTagError.js +1 -1
  234. package/dist/components/fields/TextArea/TextArea.js +1 -1
  235. package/dist/components/fields/TextInput/TextInput.js +1 -1
  236. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  237. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  238. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  239. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  240. package/dist/components/fields/TriggerActions.js +1 -1
  241. package/dist/components/fields/color/ColorPanel.js +1 -1
  242. package/dist/components/fields/color/channels.js +1 -1
  243. package/dist/components/fields/color/color.js +1 -1
  244. package/dist/components/fields/color/context.js +1 -1
  245. package/dist/components/fields/option-origin-press.js +1 -1
  246. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  247. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  248. package/dist/components/form/Form/Field.js +1 -1
  249. package/dist/components/form/Form/Form.js +1 -1
  250. package/dist/components/form/Form/ModernFormRoot.js +198 -174
  251. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  252. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  253. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  254. package/dist/components/form/Form/SubmitError.js +1 -1
  255. package/dist/components/form/Form/backend.js +1 -1
  256. package/dist/components/form/Form/index.js +1 -1
  257. package/dist/components/form/Form/modern/actions.js +1 -1
  258. package/dist/components/form/Form/modern/context.js +1 -1
  259. package/dist/components/form/Form/modern/controller.js +1 -1
  260. package/dist/components/form/Form/modern/field-binding.js +1 -1
  261. package/dist/components/form/Form/modern/field.js +1 -1
  262. package/dist/components/form/Form/modern/react.js +1 -1
  263. package/dist/components/form/Form/modern/store.js +18 -3
  264. package/dist/components/form/Form/modern/store.js.map +1 -1
  265. package/dist/components/form/Form/modern/validation.js +1 -1
  266. package/dist/components/form/Form/modern/values.js +1 -1
  267. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  268. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  269. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  270. package/dist/components/form/Form/use-field/use-field.js +1 -1
  271. package/dist/components/form/Form/use-form.js +1 -1
  272. package/dist/components/form/Form/validation.js +1 -1
  273. package/dist/components/form/Label.js +1 -1
  274. package/dist/components/form/field-chrome.js +1 -1
  275. package/dist/components/form/field-layout.js +1 -1
  276. package/dist/components/form/legacy-tooltip.js +1 -1
  277. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  278. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  279. package/dist/components/form/validation/use-validation-props.js +1 -1
  280. package/dist/components/form/wrapper.js +1 -1
  281. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  282. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  283. package/dist/components/layout/Flex.js +1 -1
  284. package/dist/components/layout/Flow.js +1 -1
  285. package/dist/components/layout/Grid.js +1 -1
  286. package/dist/components/layout/Panel.js +1 -1
  287. package/dist/components/layout/Prefix.js +1 -1
  288. package/dist/components/layout/ResizablePanel.js +1 -1
  289. package/dist/components/layout/Space.js +1 -1
  290. package/dist/components/layout/Suffix.js +1 -1
  291. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  292. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  293. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  294. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  295. package/dist/components/navigation/Tabs/TabButton.js +190 -187
  296. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  297. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  298. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  299. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  300. package/dist/components/navigation/Tabs/Tabs.js +2 -1
  301. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  302. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  303. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  304. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  305. package/dist/components/navigation/Tabs/segmented-styles.js +53 -0
  306. package/dist/components/navigation/Tabs/segmented-styles.js.map +1 -0
  307. package/dist/components/navigation/Tabs/styled.js +15 -28
  308. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  309. package/dist/components/navigation/Tabs/types.d.ts +4 -4
  310. package/dist/components/navigation/Tabs/types.js +1 -1
  311. package/dist/components/navigation/Tabs/types.js.map +1 -1
  312. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  313. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  314. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  315. package/dist/components/other/Calendar/Calendar.js +1 -1
  316. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  317. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  318. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  319. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  320. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  321. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  322. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  323. package/dist/components/other/Calendar/styled.js +1 -1
  324. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  325. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  326. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  327. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  328. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  329. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  330. package/dist/components/overlays/Dialog/DialogContainer.d.ts +3 -3
  331. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  332. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  333. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  334. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +4 -4
  335. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  336. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  337. package/dist/components/overlays/Dialog/ModernDialogForm.js +101 -123
  338. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  339. package/dist/components/overlays/Dialog/context.js +1 -1
  340. package/dist/components/overlays/Dialog/context.js.map +1 -1
  341. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  342. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  343. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  344. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  345. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +60 -51
  346. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
  347. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  348. package/dist/components/overlays/Modal/Modal.js +1 -1
  349. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  350. package/dist/components/overlays/Modal/Overlay.js +1 -1
  351. package/dist/components/overlays/Modal/Popover.js +1 -1
  352. package/dist/components/overlays/Modal/Tray.js +1 -1
  353. package/dist/components/overlays/Modal/Underlay.js +1 -1
  354. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  355. package/dist/components/overlays/Notifications/Notification.js +1 -1
  356. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  357. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  358. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  359. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  360. package/dist/components/overlays/Notifications/OverlayContainer.js +6 -3
  361. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  362. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  363. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  364. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  365. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  366. package/dist/components/overlays/Notifications/index.js +1 -1
  367. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  368. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  369. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  370. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  371. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  372. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  373. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  374. package/dist/components/overlays/Toast/index.js +1 -1
  375. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  376. package/dist/components/overlays/Toast/useToast.js +1 -1
  377. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  378. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  379. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  380. package/dist/components/overlays/Tooltip/context.js +1 -1
  381. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  382. package/dist/components/portal/Portal.js +1 -1
  383. package/dist/components/portal/PortalProvider.js +1 -1
  384. package/dist/components/portal/usePortal.js +1 -1
  385. package/dist/components/shared/DraggableCollection.js +1 -1
  386. package/dist/components/shared/InvalidIcon.js +1 -1
  387. package/dist/components/shared/ValidIcon.js +1 -1
  388. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  389. package/dist/components/status/Spin/Cube.js +2 -2
  390. package/dist/components/status/Spin/Cube.js.map +1 -1
  391. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  392. package/dist/components/status/Spin/Spin.js +1 -1
  393. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  394. package/dist/data/item-themes.js +70 -70
  395. package/dist/data/item-themes.js.map +1 -1
  396. package/dist/data/themes.js +1 -1
  397. package/dist/eslint-plugin/defaults.generated.js +1 -1
  398. package/dist/eslint-plugin/index.js +1 -1
  399. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  400. package/dist/i18n/I18nProvider.js +1 -1
  401. package/dist/i18n/createFormatter.js +1 -1
  402. package/dist/i18n/index.js +1 -1
  403. package/dist/i18n/instance.js +1 -1
  404. package/dist/i18n/locales/de-DE/uikit.js +3 -2
  405. package/dist/i18n/locales/en-US/uikit.js +3 -2
  406. package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -0
  407. package/dist/i18n/locales/es-ES/uikit.js +3 -2
  408. package/dist/i18n/locales/es-MX/uikit.js +3 -2
  409. package/dist/i18n/locales/fr-FR/uikit.js +3 -2
  410. package/dist/i18n/locales/it-IT/uikit.js +3 -2
  411. package/dist/i18n/locales/ja-JP/uikit.js +3 -2
  412. package/dist/i18n/locales/nb-NO/uikit.js +3 -2
  413. package/dist/i18n/locales/pt-BR/uikit.js +3 -2
  414. package/dist/i18n/locales/pt-PT/uikit.js +3 -2
  415. package/dist/i18n/locales/sv-SE/uikit.js +3 -2
  416. package/dist/i18n/locales/vi-VN/uikit.js +3 -2
  417. package/dist/i18n/locales.js +1 -1
  418. package/dist/i18n/namespace.js +1 -1
  419. package/dist/i18n/useFormatter.js +1 -1
  420. package/dist/i18n/useI18n.js +1 -1
  421. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  422. package/dist/icons/AdjustmentsIcon.js +1 -1
  423. package/dist/icons/AiIcon.js +1 -1
  424. package/dist/icons/AreaChartIcon.js +1 -1
  425. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  426. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  427. package/dist/icons/BackwardIcon.js +1 -1
  428. package/dist/icons/BarChartIcon.js +1 -1
  429. package/dist/icons/BellFilledIcon.js +1 -1
  430. package/dist/icons/BellIcon.js +1 -1
  431. package/dist/icons/BooleanIcon.js +1 -1
  432. package/dist/icons/CalendarEditIcon.js +1 -1
  433. package/dist/icons/CalendarIcon.js +1 -1
  434. package/dist/icons/CaretDownIcon.js +1 -1
  435. package/dist/icons/CaretUpIcon.js +1 -1
  436. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  437. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  438. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  439. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  440. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  441. package/dist/icons/ChartBarLineIcon.js +1 -1
  442. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  443. package/dist/icons/ChartBarStackedIcon.js +1 -1
  444. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  445. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  446. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  447. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  448. package/dist/icons/ChartBubbleIcon.js +1 -1
  449. package/dist/icons/ChartDonut2Icon.js +1 -1
  450. package/dist/icons/ChartFunnelIcon.js +1 -1
  451. package/dist/icons/ChartHeatmapIcon.js +1 -1
  452. package/dist/icons/ChartKPIIcon.js +1 -1
  453. package/dist/icons/ChartPie2Icon.js +1 -1
  454. package/dist/icons/ChartScatterIcon.js +1 -1
  455. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  456. package/dist/icons/CheckCircleIcon.js +1 -1
  457. package/dist/icons/CheckIcon.js +1 -1
  458. package/dist/icons/CircleFilledIcon.js +1 -1
  459. package/dist/icons/ClearIcon.js +1 -1
  460. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  461. package/dist/icons/CloseCircleIcon.js +1 -1
  462. package/dist/icons/CloseIcon.js +1 -1
  463. package/dist/icons/CodeIcon.js +1 -1
  464. package/dist/icons/ColumnTotalIcon.js +1 -1
  465. package/dist/icons/CopyIcon.js +1 -1
  466. package/dist/icons/CountIcon.js +1 -1
  467. package/dist/icons/CubeIcon.js +1 -1
  468. package/dist/icons/CubePauseIcon.js +1 -1
  469. package/dist/icons/CubePlayIcon.js +1 -1
  470. package/dist/icons/CurrencyDollarIcon.js +1 -1
  471. package/dist/icons/DangerIcon.js +1 -1
  472. package/dist/icons/DashboardIcon.js +1 -1
  473. package/dist/icons/DatabaseIcon.js +1 -1
  474. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  475. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  476. package/dist/icons/DirectionIcon.js +1 -1
  477. package/dist/icons/DonutIcon.js +1 -1
  478. package/dist/icons/DownIcon.js +1 -1
  479. package/dist/icons/EditIcon.js +1 -1
  480. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  481. package/dist/icons/ExclamationCircleIcon.js +1 -1
  482. package/dist/icons/ExclamationIcon.js +1 -1
  483. package/dist/icons/EyeIcon.js +1 -1
  484. package/dist/icons/EyeInvisibleIcon.js +1 -1
  485. package/dist/icons/FilterIcon.js +1 -1
  486. package/dist/icons/FolderFilledIcon.js +1 -1
  487. package/dist/icons/FolderIcon.js +1 -1
  488. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  489. package/dist/icons/FolderOpenIcon.js +1 -1
  490. package/dist/icons/ForwardIcon.js +1 -1
  491. package/dist/icons/GripVerticalIcon.js +1 -1
  492. package/dist/icons/HierarchyIcon.js +1 -1
  493. package/dist/icons/HierarchyOpenIcon.js +1 -1
  494. package/dist/icons/Icon.js +1 -1
  495. package/dist/icons/InfoCircleIcon.js +1 -1
  496. package/dist/icons/InfoIcon.js +1 -1
  497. package/dist/icons/KeyIcon.js +1 -1
  498. package/dist/icons/LeftIcon.js +1 -1
  499. package/dist/icons/LineChartIcon.js +1 -1
  500. package/dist/icons/LoadingIcon.js +1 -1
  501. package/dist/icons/LockFilledIcon.js +1 -1
  502. package/dist/icons/LockIcon.js +1 -1
  503. package/dist/icons/MoreIcon.js +1 -1
  504. package/dist/icons/NotAllowedIcon.js +1 -1
  505. package/dist/icons/Number123Icon.js +1 -1
  506. package/dist/icons/NumberIcon.js +1 -1
  507. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  508. package/dist/icons/PauseCircleIcon.js +1 -1
  509. package/dist/icons/PauseIcon.js +1 -1
  510. package/dist/icons/PercentageIcon.js +1 -1
  511. package/dist/icons/PieChartIcon.js +1 -1
  512. package/dist/icons/PipetteIcon.js +1 -1
  513. package/dist/icons/PlayCircleIcon.js +1 -1
  514. package/dist/icons/PlayIcon.js +1 -1
  515. package/dist/icons/PlusIcon.js +1 -1
  516. package/dist/icons/ProgressBarIcon.js +1 -1
  517. package/dist/icons/ReloadIcon.js +1 -1
  518. package/dist/icons/ReportIcon.js +1 -1
  519. package/dist/icons/ReturnIcon.js +1 -1
  520. package/dist/icons/RightIcon.js +1 -1
  521. package/dist/icons/RowTotalsIcon.js +1 -1
  522. package/dist/icons/SchemeIcon.js +1 -1
  523. package/dist/icons/SearchIcon.js +1 -1
  524. package/dist/icons/SemanticQueryIcon.js +1 -1
  525. package/dist/icons/SettingsIcon.js +1 -1
  526. package/dist/icons/ShieldFilledIcon.js +1 -1
  527. package/dist/icons/ShieldIcon.js +1 -1
  528. package/dist/icons/SlashIcon.js +1 -1
  529. package/dist/icons/SparklesIcon.js +1 -1
  530. package/dist/icons/SqlIcon.js +1 -1
  531. package/dist/icons/StatsIcon.js +1 -1
  532. package/dist/icons/StopIcon.js +1 -1
  533. package/dist/icons/StringIcon.js +1 -1
  534. package/dist/icons/SubtotalsIcon.js +1 -1
  535. package/dist/icons/SwitchIcon.js +1 -1
  536. package/dist/icons/TableIcon.js +1 -1
  537. package/dist/icons/ThumbsDownIcon.js +1 -1
  538. package/dist/icons/ThumbsUpIcon.js +1 -1
  539. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  540. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  541. package/dist/icons/ThunderboltIcon.js +1 -1
  542. package/dist/icons/TimeIcon.js +1 -1
  543. package/dist/icons/TrashIcon.js +1 -1
  544. package/dist/icons/UnlockIcon.js +1 -1
  545. package/dist/icons/UpIcon.js +1 -1
  546. package/dist/icons/UserGroupIcon.js +1 -1
  547. package/dist/icons/UserIcon.js +1 -1
  548. package/dist/icons/UserLockIcon.js +1 -1
  549. package/dist/icons/ViewIcon.js +1 -1
  550. package/dist/icons/WarningFilledIcon.js +1 -1
  551. package/dist/icons/WarningIcon.js +1 -1
  552. package/dist/icons/wrap-icon.js +1 -1
  553. package/dist/index.js +1 -1
  554. package/dist/probe/canonicalize.js +1 -1
  555. package/dist/probe/css.js +1 -1
  556. package/dist/probe/index.js +1 -1
  557. package/dist/provider.js +1 -1
  558. package/dist/providers/TrackingProvider.js +1 -1
  559. package/dist/providers/navigation-url.js +1 -1
  560. package/dist/providers/navigationAdapter.default.js +1 -1
  561. package/dist/providers/use-navigation.js +1 -1
  562. package/dist/tokens/all-tokens.js +1 -1
  563. package/dist/tokens/base.js +1 -1
  564. package/dist/tokens/color-seed.js +1 -1
  565. package/dist/tokens/color-theme.js +1 -1
  566. package/dist/tokens/colors.js +1 -1
  567. package/dist/tokens/layout.js +1 -1
  568. package/dist/tokens/lazy-styles.js +1 -1
  569. package/dist/tokens/legacy-color.js +1 -1
  570. package/dist/tokens/palette-config.js +1 -1
  571. package/dist/tokens/palette.js +1 -1
  572. package/dist/tokens/resolve.js +1 -1
  573. package/dist/tokens/shadows.js +1 -1
  574. package/dist/tokens/sizes.js +1 -1
  575. package/dist/tokens/spacing.js +1 -1
  576. package/dist/tokens/typography.js +1 -1
  577. package/dist/utils/ResizeSensor.js +1 -1
  578. package/dist/utils/colors.js +1 -1
  579. package/dist/utils/dotize.js +1 -1
  580. package/dist/utils/is-dev-env.js +1 -1
  581. package/dist/utils/modules.js +1 -1
  582. package/dist/utils/promise.js +1 -1
  583. package/dist/utils/raf.js +1 -1
  584. package/dist/utils/random.js +1 -1
  585. package/dist/utils/range.js +1 -1
  586. package/dist/utils/react/RenderCache.js +1 -1
  587. package/dist/utils/react/Slots.js +1 -1
  588. package/dist/utils/react/chain.js +1 -1
  589. package/dist/utils/react/disabledProps.js +1 -1
  590. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  591. package/dist/utils/react/index.js +1 -1
  592. package/dist/utils/react/interactions.js +1 -1
  593. package/dist/utils/react/isTextOnly.js +1 -1
  594. package/dist/utils/react/mapProps.js +1 -1
  595. package/dist/utils/react/mergeProps.js +1 -1
  596. package/dist/utils/react/nullableValue.js +1 -1
  597. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  598. package/dist/utils/react/programmaticFocus.js +1 -1
  599. package/dist/utils/react/resolveIcon.js +1 -1
  600. package/dist/utils/react/sharedStore.js +1 -1
  601. package/dist/utils/react/useBufferedValue.js +1 -1
  602. package/dist/utils/react/useCombinedRefs.js +1 -1
  603. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  604. package/dist/utils/react/useEventBus.js +1 -1
  605. package/dist/utils/react/useId.js +1 -1
  606. package/dist/utils/react/useIsDarwin.js +1 -1
  607. package/dist/utils/react/useKeySymbols.js +1 -1
  608. package/dist/utils/react/useLayoutEffect.js +1 -1
  609. package/dist/utils/react/useLocalStorage.js +1 -1
  610. package/dist/utils/react/useMergeStyles.js +1 -1
  611. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  612. package/dist/utils/react/usePopoverSync.js +1 -1
  613. package/dist/utils/react/useQaProps.js +1 -1
  614. package/dist/utils/react/useScheme.js +7 -5
  615. package/dist/utils/react/useScheme.js.map +1 -1
  616. package/dist/utils/react/useViewportSize.js +1 -1
  617. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  618. package/dist/utils/selection.js +1 -1
  619. package/dist/utils/styles.js +1 -1
  620. package/dist/utils/tree.js +1 -1
  621. package/dist/utils/warnings.js +1 -1
  622. package/dist/version.js +3 -3
  623. package/docs/Theming.md +1 -1
  624. package/docs/Usage.md +26 -0
  625. package/docs/components/content/Item.md +1 -1
  626. package/docs/components/content/TextItem.md +13 -1
  627. package/docs/components/data/ItemTable.md +1 -1
  628. package/docs/components/fields/RadioGroup.md +5 -4
  629. package/docs/components/form/Form.md +2 -0
  630. package/docs/components/form/ModernForm.md +5 -1
  631. package/docs/components/navigation/Tabs.md +5 -3
  632. package/docs/components/overlays/DialogContainer.md +1 -1
  633. package/docs/components/overlays/DialogTrigger.md +2 -2
  634. package/docs/components/overlays/Notifications.md +17 -0
  635. package/docs/components/overlays/Toast.md +1 -1
  636. package/docs/modern-form-guide.md +5 -1
  637. package/docs/tasty/ai-agents.md +3 -2
  638. package/docs/tasty/dsl.md +52 -0
  639. package/docs/tasty/styles.md +27 -15
  640. package/package.json +5 -3
  641. package/tasty.config.generated.ts +526 -0
  642. package/tasty.config.ts +29 -422
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { getPaletteVersion } from "./palette-config.js";
3
3
  import { BASE_TOKENS } from "./base.js";
4
4
  import { lazyStyles } from "./lazy-styles.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/tokens/base.ts
3
3
  /**
4
4
  * Base design system tokens.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { glaze } from "@tenphi/glaze";
3
3
  //#region src/tokens/color-seed.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
3
  import { DEFAULT_HUE, getPaletteConfig, getPaletteVersion, usePaletteValue } from "./palette-config.js";
4
4
  import { tintRecipe } from "./palette.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { getPaletteVersion } from "./palette-config.js";
3
3
  import { BASE_TOKENS } from "./base.js";
4
4
  import { lazyStyles } from "./lazy-styles.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/tokens/layout.ts
3
3
  /**
4
4
  * Layout-related tokens for common UI dimensions.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/tokens/lazy-styles.ts
3
3
  /**
4
4
  * Proxy that defers to `factory()` on every property / enumeration access.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { parseSrgbColor } from "../utils/colors.js";
3
3
  import { srgbToHex } from "@tenphi/glaze";
4
4
  //#region src/tokens/legacy-color.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useSyncExternalStore } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { SURFACE_SATURATION_SHARE, getPaletteConfig, getPaletteVersion, resolvePaletteConfig } from "./palette-config.js";
3
3
  import { lazyStyles } from "./lazy-styles.js";
4
4
  import { apcaContrast, glaze, okhslToLinearSrgb, variantToOkhsl } from "@tenphi/glaze";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../utils/react/useLayoutEffect.js";
3
3
  import { subscribeScheme } from "../utils/react/useScheme.js";
4
4
  import { warn } from "../utils/warnings.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/tokens/shadows.ts
3
3
  /**
4
4
  * Shadow tokens using tasty shorthand syntax.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/tokens/sizes.ts
3
3
  /**
4
4
  * Component size values in pixels.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/tokens/spacing.ts
3
3
  /**
4
4
  * Spacing tokens using tasty multiplier syntax.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/tokens/typography.ts
3
3
  /**
4
4
  * Typography presets for headings, text, and special styles.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/ResizeSensor.ts
3
3
  /**
4
4
  * Iterate over each of the provided element(s).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { hslToSrgb, okhslToOklch, okhslToSrgb, okhstToOkhsl, oklabToOkhsl, parseHexAlpha } from "@tenphi/glaze";
3
3
  //#region src/utils/colors.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/dotize.ts
3
3
  /**
4
4
  * Flattens a nested object into dot paths: `{ a: { b: 1 } }` becomes
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/is-dev-env.ts
3
3
  /**
4
4
  * `NODE_ENV` as the environment that is actually running reports it, or
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/modules.ts
3
3
  function extractModule(promise) {
4
4
  return promise.then((module) => module.default || module);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/promise.ts
3
3
  function timeout(ms = 30) {
4
4
  return new Promise((resolve) => {
package/dist/utils/raf.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/raf.ts
3
3
  /**
4
4
  * Chains N requestAnimationFrame calls and returns a cancel function.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/random.ts
3
3
  function random(min, max) {
4
4
  const realMin = min < max ? min : max;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/range.ts
3
3
  function range(count) {
4
4
  return Array.from({ length: count }, (_, i) => i);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
4
  //#region src/utils/react/RenderCache.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { mergeProps } from "./mergeProps.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { Children, cloneElement, createContext, useContext } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/chain.ts
3
3
  /**
4
4
  * Calls all functions in the order they were chained with the same arguments.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { mergeProps } from "./mergeProps.js";
3
3
  //#region src/utils/react/disabledProps.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/forwardRefWithGenerics.tsx
3
3
  /**
4
4
  * @deprecated Declare a ref prop on a generic component, or preserve an
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { useLayoutEffect } from "./useLayoutEffect.js";
4
4
  import { mergeProps } from "./mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { Children, isValidElement } from "react";
3
3
  //#region src/utils/react/isTextOnly.ts
4
4
  function isTextOnly(children) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/mapProps.ts
3
3
  /** Converts AriaButtonProps to CubeButtonProps */
4
4
  function ariaToCubeButtonProps(props) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { mergeIds } from "./useId.js";
4
4
  import { mergeStyles } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/nullableValue.ts
3
3
  function castNullableStringValue(props, emptyValue = "") {
4
4
  return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v), emptyValue);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/overlayKeyPropagation.ts
3
3
  /**
4
4
  * Keys whose final handling belongs to the overlay around a control, not to
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/programmaticFocus.ts
3
3
  /**
4
4
  * Telling focus the user moved from focus a component moved for them.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { isDevEnv } from "../is-dev-env.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useCallback, useRef, useState } from "react";
4
4
  //#region src/utils/react/useBufferedValue.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useEffect, useRef } from "react";
4
4
  //#region src/utils/react/useCombinedRefs.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { createSharedStore } from "./sharedStore.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useEffect } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
4
4
  //#region src/utils/react/useEventBus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import "react/compiler-runtime";
4
4
  import { useEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useEffect, useState } from "react";
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  //#region src/utils/react/useKeySymbols.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
  //#region src/utils/react/useLayoutEffect.tsx
4
4
  const useLayoutEffect$1 = typeof window !== "undefined" ? React$1.useLayoutEffect : React$1.useEffect;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useSyncExternalStore } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
  //#region src/utils/react/useMergeStyles.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { getEventTarget, nodeContains } from "@react-aria/utils";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { EventBusContext, useEventBus } from "./useEventBus.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useContext, useEffect, useEffectEvent, useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { useSyncExternalStore } from "react";
3
3
  //#region src/utils/react/useScheme.ts
4
4
  /**
@@ -40,10 +40,11 @@ const CONTRAST_ATTR = `data-${CONTRAST_KEY}`;
40
40
  const DARK_QUERY = "(prefers-color-scheme: dark)";
41
41
  const HIGH_CONTRAST_QUERY = "(prefers-contrast: more)";
42
42
  /**
43
- * The `@dark` / `@hc` state aliases, in tasty's DSL — registered globally by
44
- * `<Root>` via `setGlobalPredefinedStates()`.
43
+ * The `@dark` / `@hc` / `@reduced-motion` state aliases, in tasty's DSL —
44
+ * registered globally by `<Root>` via `setGlobalPredefinedStates()`.
45
45
  *
46
- * The attribute opt-in wins over the system preference, and the fallback is
46
+ * `@reduced-motion` follows the system preference alone. For the two schemes,
47
+ * the attribute opt-in wins over the system preference, and the fallback is
47
48
  * gated on the attribute being *absent* (`!@root(scheme)`) rather than on it
48
49
  * being some other value — so `<html data-scheme="light">` stays light inside a
49
50
  * dark OS, which is the whole point of an opt-in. {@link resolveScheme} and
@@ -51,7 +52,8 @@ const HIGH_CONTRAST_QUERY = "(prefers-contrast: more)";
51
52
  */
52
53
  const AMBIENT_PREDEFINED_STATES = {
53
54
  "@dark": `@root(${SCHEME_KEY}=dark) | (!@root(${SCHEME_KEY}) & @media${DARK_QUERY})`,
54
- "@hc": `@root(${CONTRAST_KEY}=high) | (!@root(${CONTRAST_KEY}) & @media${HIGH_CONTRAST_QUERY})`
55
+ "@hc": `@root(${CONTRAST_KEY}=high) | (!@root(${CONTRAST_KEY}) & @media${HIGH_CONTRAST_QUERY})`,
56
+ "@reduced-motion": `@media(prefers-reduced-motion: reduce)`
55
57
  };
56
58
  /**
57
59
  * `matchMedia` is called per read rather than cached, so a test that stubs it
@@ -1 +1 @@
1
- {"version":3,"file":"useScheme.js","names":["useSyncExternalStore","SCHEME_KEY","CONTRAST_KEY","SCHEME_ATTR","CONTRAST_ATTR","DARK_QUERY","HIGH_CONTRAST_QUERY","AMBIENT_PREDEFINED_STATES","const","ColorScheme","mediaMatches","query","window","matchMedia","matches","rootAttribute","name","document","documentElement","getAttribute","resolveScheme","attribute","resolveHighContrast","listeners","Set","stopWatching","notify","forEach","listener","startWatching","teardowns","list","addEventListener","push","removeEventListener","MutationObserver","observer","observe","attributes","attributeFilter","disconnect","teardown","subscribeScheme","add","delete","size","getServerScheme","getServerHighContrast","useScheme","useHighContrast"],"sources":["../../../src/utils/react/useScheme.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\n/**\n * The ambient viewing conditions — the color scheme and the contrast tier the\n * document is showing right now.\n *\n * This module is the single owner of the definition: it builds the `@dark` /\n * `@hc` predefined states that `src/components/Root.tsx` registers with tasty,\n * *and* it answers the same question in JS. One definition, two readers, so the\n * CSS and the JS answers cannot drift apart.\n *\n * **For styling, do not use this.** `{ '': light, '@dark': dark, '@hc': hc }` is\n * the answer, and branching styles in JS gives up the conditionality that lets a\n * scheme flip repaint without a re-render. Two cases the state map cannot serve:\n *\n * 1. **Surfaces the stylesheet does not reach** — a Vega spec, a CodeMirror or\n * Monaco theme, a third-party iframe. They take values, not CSS, so `@dark`\n * never applies and the branch has to happen in JS.\n * 2. **Control state that is not styling** — seeding or labelling a control from\n * the ambient condition, e.g. a Light/Dark or Normal/High-contrast preview\n * selector that starts on whatever the page is already showing.\n *\n * Root-level only, and deliberately not a generic state reader: tasty's state\n * vocabulary mixes element-local states (`hovered`, `pressed`, `disabled`) with\n * ambient ones (`@media(…)`, `@root(…)`), and only the ambient half is\n * answerable without an element. Evaluating the state language in JS would mean\n * a second implementation of the state algebra to keep in agreement with the CSS\n * one, for a question almost every caller asks about the root anyway.\n */\n\n// ============================================================================\n// The definition\n// ============================================================================\n\n/**\n * The `data-*` attribute names the opt-in uses, and the media queries it falls\n * back to. `@root(scheme=dark)` compiles to `:root[data-scheme=\"dark\"]`, hence\n * the `data-` prefix on the DOM side and the bare key on the tasty side.\n */\nconst SCHEME_KEY = 'scheme';\nconst CONTRAST_KEY = 'contrast';\nconst SCHEME_ATTR = `data-${SCHEME_KEY}`;\nconst CONTRAST_ATTR = `data-${CONTRAST_KEY}`;\nconst DARK_QUERY = '(prefers-color-scheme: dark)';\nconst HIGH_CONTRAST_QUERY = '(prefers-contrast: more)';\n\n/**\n * The `@dark` / `@hc` state aliases, in tasty's DSL — registered globally by\n * `<Root>` via `setGlobalPredefinedStates()`.\n *\n * The attribute opt-in wins over the system preference, and the fallback is\n * gated on the attribute being *absent* (`!@root(scheme)`) rather than on it\n * being some other value — so `<html data-scheme=\"light\">` stays light inside a\n * dark OS, which is the whole point of an opt-in. {@link resolveScheme} and\n * {@link resolveHighContrast} read the same way.\n */\nexport const AMBIENT_PREDEFINED_STATES = {\n '@dark': `@root(${SCHEME_KEY}=dark) | (!@root(${SCHEME_KEY}) & @media${DARK_QUERY})`,\n '@hc': `@root(${CONTRAST_KEY}=high) | (!@root(${CONTRAST_KEY}) & @media${HIGH_CONTRAST_QUERY})`,\n} as const;\n\n/** The color scheme the document resolves to — the two arms of the `@dark` state. */\nexport type ColorScheme = 'light' | 'dark';\n\n// ============================================================================\n// Reading\n// ============================================================================\n\n/**\n * `matchMedia` is called per read rather than cached, so a test that stubs it\n * takes effect immediately. Missing (older jsdom, non-DOM runtimes) reads as\n * \"no preference\", which lands on the light / normal-contrast defaults.\n */\nfunction mediaMatches(query: string): boolean {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function'\n ? window.matchMedia(query).matches\n : false;\n}\n\nfunction rootAttribute(name: string): string | null {\n return typeof document === 'undefined'\n ? null\n : document.documentElement.getAttribute(name);\n}\n\n/**\n * The document's current color scheme, read once — the JS answer to `@dark`.\n *\n * Outside React (a chart spec built in a module, an editor theme registered at\n * import time). In React use {@link useScheme}, which also re-renders on change.\n * Returns `'light'` with no DOM.\n */\nexport function resolveScheme(): ColorScheme {\n const attribute = rootAttribute(SCHEME_ATTR);\n\n if (attribute !== null) {\n return attribute === 'dark' ? 'dark' : 'light';\n }\n\n return mediaMatches(DARK_QUERY) ? 'dark' : 'light';\n}\n\n/**\n * Whether the document is showing the high-contrast tier, read once — the JS\n * answer to `@hc`.\n *\n * Note this is an *ambient* condition, not the theme's `contrastLevel`: the\n * level is a `PaletteConfig` seed the app supplies (read it with\n * `getPaletteConfig()`), while this is the tier the viewer asked for.\n * Returns `false` with no DOM.\n */\nexport function resolveHighContrast(): boolean {\n const attribute = rootAttribute(CONTRAST_ATTR);\n\n if (attribute !== null) {\n return attribute === 'high';\n }\n\n return mediaMatches(HIGH_CONTRAST_QUERY);\n}\n\n// ============================================================================\n// Watching\n// ============================================================================\n\nconst listeners = new Set<() => void>();\n\nlet stopWatching: (() => void) | null = null;\n\nfunction notify() {\n listeners.forEach((listener) => listener());\n}\n\n/**\n * Both inputs have to be watched, because either can decide the answer: the\n * attribute when the opt-in is set, the media query otherwise — an attribute flip\n * is invisible to `matchMedia` and a system flip is invisible to a\n * `MutationObserver`. One observer and one pair of query listeners are shared by\n * every subscriber, and torn down when the last one leaves.\n */\nfunction startWatching(): () => void {\n if (typeof document === 'undefined') {\n return () => {};\n }\n\n const teardowns: (() => void)[] = [];\n\n // Guarded rather than assumed: jsdom ships neither `matchMedia` nor a\n // `MediaQueryList` in every version, and a consumer's unit tests are exactly\n // where a hook like this gets mounted. Losing one source of change is a stale\n // value; throwing is a broken render.\n if (\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function'\n ) {\n for (const query of [DARK_QUERY, HIGH_CONTRAST_QUERY]) {\n const list = window.matchMedia(query);\n\n if (typeof list?.addEventListener !== 'function') continue;\n\n list.addEventListener('change', notify);\n teardowns.push(() => list.removeEventListener('change', notify));\n }\n }\n\n if (typeof MutationObserver === 'function' && document.documentElement) {\n const observer = new MutationObserver(notify);\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [SCHEME_ATTR, CONTRAST_ATTR],\n });\n\n teardowns.push(() => observer.disconnect());\n }\n\n return () => teardowns.forEach((teardown) => teardown());\n}\n\n/**\n * Subscribe to ambient condition changes — either the scheme or the contrast\n * tier. Returns an unsubscribe function.\n *\n * The listener takes no argument: re-read with {@link resolveScheme} /\n * {@link resolveHighContrast}, which is what the hooks below do. For non-React\n * consumers that own a surface the stylesheet cannot reach — re-theming a Monaco\n * instance, re-rendering a chart.\n */\nexport function subscribeScheme(listener: () => void): () => void {\n listeners.add(listener);\n\n if (!stopWatching) {\n stopWatching = startWatching();\n }\n\n return () => {\n listeners.delete(listener);\n\n if (!listeners.size && stopWatching) {\n stopWatching();\n stopWatching = null;\n }\n };\n}\n\n// ============================================================================\n// React bindings\n// ============================================================================\n\n/**\n * Snapshots are primitives, so React bails out on an unchanged value and no\n * memoization is needed — a contrast change re-runs a `useScheme()` reader's\n * `getSnapshot` and stops there.\n */\nconst getServerScheme = (): ColorScheme => 'light';\nconst getServerHighContrast = () => false;\n\n/**\n * The document's color scheme, kept live — `'light'` or `'dark'`.\n *\n * ```tsx\n * const scheme = useScheme();\n *\n * <VegaChart spec={useMemo(() => buildSpec(scheme), [scheme])} />;\n * ```\n *\n * Follows both the `<html data-scheme>` opt-in and `prefers-color-scheme`,\n * exactly as the `@dark` state does. Under SSR it renders `'light'` and\n * re-renders with the real value after hydration.\n */\nexport function useScheme(): ColorScheme {\n return useSyncExternalStore(subscribeScheme, resolveScheme, getServerScheme);\n}\n\n/**\n * Whether the document is showing the high-contrast tier, kept live — the hook\n * form of {@link resolveHighContrast}, following `<html data-contrast>` and\n * `prefers-contrast` exactly as the `@hc` state does.\n *\n * Under SSR it renders `false` and re-renders with the real value after\n * hydration.\n */\nexport function useHighContrast(): boolean {\n return useSyncExternalStore(\n subscribeScheme,\n resolveHighContrast,\n getServerHighContrast,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAMC,aAAa;AACnB,MAAMC,eAAe;AACrB,MAAMC,cAAc,QAAQF;AAC5B,MAAMG,gBAAgB,QAAQF;AAC9B,MAAMG,aAAa;AACnB,MAAMC,sBAAsB;;;;;;;;;;;AAY5B,MAAaC,4BAA4B;CACvC,SAAS,SAASN,WAAU,mBAAoBA,WAAU,YAAaI,WAAU;CACjF,OAAO,SAASH,aAAY,mBAAoBA,aAAY,YAAaI,oBAAmB;AAC9F;;;;;;AAcA,SAASI,aAAaC,OAAwB;CAC5C,OAAO,OAAOC,WAAW,eACvB,OAAOA,OAAOC,eAAe,aAC3BD,OAAOC,WAAWF,KAAK,CAAC,CAACG,UACzB;AACN;AAEA,SAASC,cAAcC,MAA6B;CAClD,OAAO,OAAOC,aAAa,cACvB,OACAA,SAASC,gBAAgBC,aAAaH,IAAI;AAChD;;;;;;;;AASA,SAAgBI,gBAA6B;CAC3C,MAAMC,YAAYN,cAAcZ,WAAW;CAE3C,IAAIkB,cAAc,MAChB,OAAOA,cAAc,SAAS,SAAS;CAGzC,OAAOX,aAAaL,UAAU,IAAI,SAAS;AAC7C;;;;;;;;;;AAWA,SAAgBiB,sBAA+B;CAC7C,MAAMD,YAAYN,cAAcX,aAAa;CAE7C,IAAIiB,cAAc,MAChB,OAAOA,cAAc;CAGvB,OAAOX,aAAaJ,mBAAmB;AACzC;AAMA,MAAMiB,4BAAY,IAAIC,IAAgB;AAEtC,IAAIC,eAAoC;AAExC,SAASC,SAAS;CAChBH,UAAUI,SAASC,aAAaA,SAAS,CAAC;AAC5C;;;;;;;;AASA,SAASC,gBAA4B;CACnC,IAAI,OAAOZ,aAAa,aACtB,aAAa,CAAC;CAGhB,MAAMa,YAA4B,CAAA;CAMlC,IACE,OAAOlB,WAAW,eAClB,OAAOA,OAAOC,eAAe,YAE7B,KAAK,MAAMF,SAAS,CAACN,YAAYC,mBAAmB,GAAG;EACrD,MAAMyB,OAAOnB,OAAOC,WAAWF,KAAK;EAEpC,IAAI,OAAOoB,MAAMC,qBAAqB,YAAY;EAElDD,KAAKC,iBAAiB,UAAUN,MAAM;EACtCI,UAAUG,WAAWF,KAAKG,oBAAoB,UAAUR,MAAM,CAAC;CACjE;CAGF,IAAI,OAAOS,qBAAqB,cAAclB,SAASC,iBAAiB;EACtE,MAAMkB,WAAW,IAAID,iBAAiBT,MAAM;EAE5CU,SAASC,QAAQpB,SAASC,iBAAiB;GACzCoB,YAAY;GACZC,iBAAiB,CAACpC,aAAaC,aAAa;EAC9C,CAAC;EAED0B,UAAUG,WAAWG,SAASI,WAAW,CAAC;CAC5C;CAEA,aAAaV,UAAUH,SAASc,aAAaA,SAAS,CAAC;AACzD;;;;;;;;;;AAWA,SAAgBC,gBAAgBd,UAAkC;CAChEL,UAAUoB,IAAIf,QAAQ;CAEtB,IAAI,CAACH,cACHA,eAAeI,cAAc;CAG/B,aAAa;EACXN,UAAUqB,OAAOhB,QAAQ;EAEzB,IAAI,CAACL,UAAUsB,QAAQpB,cAAc;GACnCA,aAAa;GACbA,eAAe;EACjB;CACF;AACF;;;;;;AAWA,MAAMqB,wBAAqC;AAC3C,MAAMC,8BAA8B;;;;;;;;;;;;;;AAepC,SAAOC,YAAA;CAAA,OACEhD,qBAAqB0C,iBAAiBtB,eAAe0B,eAAe;AAAC;;;;;;;;;AAW9E,SAAOG,kBAAA;CAAA,OACEjD,qBACL0C,iBACApB,qBACAyB,qBACF;AAAC"}
1
+ {"version":3,"file":"useScheme.js","names":["useSyncExternalStore","SCHEME_KEY","CONTRAST_KEY","SCHEME_ATTR","CONTRAST_ATTR","DARK_QUERY","HIGH_CONTRAST_QUERY","REDUCED_MOTION_QUERY","AMBIENT_PREDEFINED_STATES","const","ColorScheme","mediaMatches","query","window","matchMedia","matches","rootAttribute","name","document","documentElement","getAttribute","resolveScheme","attribute","resolveHighContrast","listeners","Set","stopWatching","notify","forEach","listener","startWatching","teardowns","list","addEventListener","push","removeEventListener","MutationObserver","observer","observe","attributes","attributeFilter","disconnect","teardown","subscribeScheme","add","delete","size","getServerScheme","getServerHighContrast","useScheme","useHighContrast"],"sources":["../../../src/utils/react/useScheme.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\n/**\n * The ambient viewing conditions — the color scheme and the contrast tier the\n * document is showing right now.\n *\n * This module is the single owner of the definition: it builds the `@dark` /\n * `@hc` predefined states that `src/components/Root.tsx` registers with tasty,\n * *and* it answers the same question in JS. One definition, two readers, so the\n * CSS and the JS answers cannot drift apart.\n *\n * **For styling, do not use this.** `{ '': light, '@dark': dark, '@hc': hc }` is\n * the answer, and branching styles in JS gives up the conditionality that lets a\n * scheme flip repaint without a re-render. Two cases the state map cannot serve:\n *\n * 1. **Surfaces the stylesheet does not reach** — a Vega spec, a CodeMirror or\n * Monaco theme, a third-party iframe. They take values, not CSS, so `@dark`\n * never applies and the branch has to happen in JS.\n * 2. **Control state that is not styling** — seeding or labelling a control from\n * the ambient condition, e.g. a Light/Dark or Normal/High-contrast preview\n * selector that starts on whatever the page is already showing.\n *\n * Root-level only, and deliberately not a generic state reader: tasty's state\n * vocabulary mixes element-local states (`hovered`, `pressed`, `disabled`) with\n * ambient ones (`@media(…)`, `@root(…)`), and only the ambient half is\n * answerable without an element. Evaluating the state language in JS would mean\n * a second implementation of the state algebra to keep in agreement with the CSS\n * one, for a question almost every caller asks about the root anyway.\n */\n\n// ============================================================================\n// The definition\n// ============================================================================\n\n/**\n * The `data-*` attribute names the opt-in uses, and the media queries it falls\n * back to. `@root(scheme=dark)` compiles to `:root[data-scheme=\"dark\"]`, hence\n * the `data-` prefix on the DOM side and the bare key on the tasty side.\n */\nconst SCHEME_KEY = 'scheme';\nconst CONTRAST_KEY = 'contrast';\nconst SCHEME_ATTR = `data-${SCHEME_KEY}`;\nconst CONTRAST_ATTR = `data-${CONTRAST_KEY}`;\nconst DARK_QUERY = '(prefers-color-scheme: dark)';\nconst HIGH_CONTRAST_QUERY = '(prefers-contrast: more)';\nconst REDUCED_MOTION_QUERY = '(prefers-reduced-motion: reduce)';\n\n/**\n * The `@dark` / `@hc` / `@reduced-motion` state aliases, in tasty's DSL —\n * registered globally by `<Root>` via `setGlobalPredefinedStates()`.\n *\n * `@reduced-motion` follows the system preference alone. For the two schemes,\n * the attribute opt-in wins over the system preference, and the fallback is\n * gated on the attribute being *absent* (`!@root(scheme)`) rather than on it\n * being some other value — so `<html data-scheme=\"light\">` stays light inside a\n * dark OS, which is the whole point of an opt-in. {@link resolveScheme} and\n * {@link resolveHighContrast} read the same way.\n */\nexport const AMBIENT_PREDEFINED_STATES = {\n '@dark': `@root(${SCHEME_KEY}=dark) | (!@root(${SCHEME_KEY}) & @media${DARK_QUERY})`,\n '@hc': `@root(${CONTRAST_KEY}=high) | (!@root(${CONTRAST_KEY}) & @media${HIGH_CONTRAST_QUERY})`,\n '@reduced-motion': `@media${REDUCED_MOTION_QUERY}`,\n} as const;\n\n/** The color scheme the document resolves to — the two arms of the `@dark` state. */\nexport type ColorScheme = 'light' | 'dark';\n\n// ============================================================================\n// Reading\n// ============================================================================\n\n/**\n * `matchMedia` is called per read rather than cached, so a test that stubs it\n * takes effect immediately. Missing (older jsdom, non-DOM runtimes) reads as\n * \"no preference\", which lands on the light / normal-contrast defaults.\n */\nfunction mediaMatches(query: string): boolean {\n return typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function'\n ? window.matchMedia(query).matches\n : false;\n}\n\nfunction rootAttribute(name: string): string | null {\n return typeof document === 'undefined'\n ? null\n : document.documentElement.getAttribute(name);\n}\n\n/**\n * The document's current color scheme, read once — the JS answer to `@dark`.\n *\n * Outside React (a chart spec built in a module, an editor theme registered at\n * import time). In React use {@link useScheme}, which also re-renders on change.\n * Returns `'light'` with no DOM.\n */\nexport function resolveScheme(): ColorScheme {\n const attribute = rootAttribute(SCHEME_ATTR);\n\n if (attribute !== null) {\n return attribute === 'dark' ? 'dark' : 'light';\n }\n\n return mediaMatches(DARK_QUERY) ? 'dark' : 'light';\n}\n\n/**\n * Whether the document is showing the high-contrast tier, read once — the JS\n * answer to `@hc`.\n *\n * Note this is an *ambient* condition, not the theme's `contrastLevel`: the\n * level is a `PaletteConfig` seed the app supplies (read it with\n * `getPaletteConfig()`), while this is the tier the viewer asked for.\n * Returns `false` with no DOM.\n */\nexport function resolveHighContrast(): boolean {\n const attribute = rootAttribute(CONTRAST_ATTR);\n\n if (attribute !== null) {\n return attribute === 'high';\n }\n\n return mediaMatches(HIGH_CONTRAST_QUERY);\n}\n\n// ============================================================================\n// Watching\n// ============================================================================\n\nconst listeners = new Set<() => void>();\n\nlet stopWatching: (() => void) | null = null;\n\nfunction notify() {\n listeners.forEach((listener) => listener());\n}\n\n/**\n * Both inputs have to be watched, because either can decide the answer: the\n * attribute when the opt-in is set, the media query otherwise — an attribute flip\n * is invisible to `matchMedia` and a system flip is invisible to a\n * `MutationObserver`. One observer and one pair of query listeners are shared by\n * every subscriber, and torn down when the last one leaves.\n */\nfunction startWatching(): () => void {\n if (typeof document === 'undefined') {\n return () => {};\n }\n\n const teardowns: (() => void)[] = [];\n\n // Guarded rather than assumed: jsdom ships neither `matchMedia` nor a\n // `MediaQueryList` in every version, and a consumer's unit tests are exactly\n // where a hook like this gets mounted. Losing one source of change is a stale\n // value; throwing is a broken render.\n if (\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function'\n ) {\n for (const query of [DARK_QUERY, HIGH_CONTRAST_QUERY]) {\n const list = window.matchMedia(query);\n\n if (typeof list?.addEventListener !== 'function') continue;\n\n list.addEventListener('change', notify);\n teardowns.push(() => list.removeEventListener('change', notify));\n }\n }\n\n if (typeof MutationObserver === 'function' && document.documentElement) {\n const observer = new MutationObserver(notify);\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [SCHEME_ATTR, CONTRAST_ATTR],\n });\n\n teardowns.push(() => observer.disconnect());\n }\n\n return () => teardowns.forEach((teardown) => teardown());\n}\n\n/**\n * Subscribe to ambient condition changes — either the scheme or the contrast\n * tier. Returns an unsubscribe function.\n *\n * The listener takes no argument: re-read with {@link resolveScheme} /\n * {@link resolveHighContrast}, which is what the hooks below do. For non-React\n * consumers that own a surface the stylesheet cannot reach — re-theming a Monaco\n * instance, re-rendering a chart.\n */\nexport function subscribeScheme(listener: () => void): () => void {\n listeners.add(listener);\n\n if (!stopWatching) {\n stopWatching = startWatching();\n }\n\n return () => {\n listeners.delete(listener);\n\n if (!listeners.size && stopWatching) {\n stopWatching();\n stopWatching = null;\n }\n };\n}\n\n// ============================================================================\n// React bindings\n// ============================================================================\n\n/**\n * Snapshots are primitives, so React bails out on an unchanged value and no\n * memoization is needed — a contrast change re-runs a `useScheme()` reader's\n * `getSnapshot` and stops there.\n */\nconst getServerScheme = (): ColorScheme => 'light';\nconst getServerHighContrast = () => false;\n\n/**\n * The document's color scheme, kept live — `'light'` or `'dark'`.\n *\n * ```tsx\n * const scheme = useScheme();\n *\n * <VegaChart spec={useMemo(() => buildSpec(scheme), [scheme])} />;\n * ```\n *\n * Follows both the `<html data-scheme>` opt-in and `prefers-color-scheme`,\n * exactly as the `@dark` state does. Under SSR it renders `'light'` and\n * re-renders with the real value after hydration.\n */\nexport function useScheme(): ColorScheme {\n return useSyncExternalStore(subscribeScheme, resolveScheme, getServerScheme);\n}\n\n/**\n * Whether the document is showing the high-contrast tier, kept live — the hook\n * form of {@link resolveHighContrast}, following `<html data-contrast>` and\n * `prefers-contrast` exactly as the `@hc` state does.\n *\n * Under SSR it renders `false` and re-renders with the real value after\n * hydration.\n */\nexport function useHighContrast(): boolean {\n return useSyncExternalStore(\n subscribeScheme,\n resolveHighContrast,\n getServerHighContrast,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAMC,aAAa;AACnB,MAAMC,eAAe;AACrB,MAAMC,cAAc,QAAQF;AAC5B,MAAMG,gBAAgB,QAAQF;AAC9B,MAAMG,aAAa;AACnB,MAAMC,sBAAsB;;;;;;;;;;;;AAc5B,MAAaE,4BAA4B;CACvC,SAAS,SAASP,WAAU,mBAAoBA,WAAU,YAAaI,WAAU;CACjF,OAAO,SAASH,aAAY,mBAAoBA,aAAY,YAAaI,oBAAmB;CAC5F,mBAAmB;AACrB;;;;;;AAcA,SAASK,aAAaC,OAAwB;CAC5C,OAAO,OAAOC,WAAW,eACvB,OAAOA,OAAOC,eAAe,aAC3BD,OAAOC,WAAWF,KAAK,CAAC,CAACG,UACzB;AACN;AAEA,SAASC,cAAcC,MAA6B;CAClD,OAAO,OAAOC,aAAa,cACvB,OACAA,SAASC,gBAAgBC,aAAaH,IAAI;AAChD;;;;;;;;AASA,SAAgBI,gBAA6B;CAC3C,MAAMC,YAAYN,cAAcb,WAAW;CAE3C,IAAImB,cAAc,MAChB,OAAOA,cAAc,SAAS,SAAS;CAGzC,OAAOX,aAAaN,UAAU,IAAI,SAAS;AAC7C;;;;;;;;;;AAWA,SAAgBkB,sBAA+B;CAC7C,MAAMD,YAAYN,cAAcZ,aAAa;CAE7C,IAAIkB,cAAc,MAChB,OAAOA,cAAc;CAGvB,OAAOX,aAAaL,mBAAmB;AACzC;AAMA,MAAMkB,4BAAY,IAAIC,IAAgB;AAEtC,IAAIC,eAAoC;AAExC,SAASC,SAAS;CAChBH,UAAUI,SAASC,aAAaA,SAAS,CAAC;AAC5C;;;;;;;;AASA,SAASC,gBAA4B;CACnC,IAAI,OAAOZ,aAAa,aACtB,aAAa,CAAC;CAGhB,MAAMa,YAA4B,CAAA;CAMlC,IACE,OAAOlB,WAAW,eAClB,OAAOA,OAAOC,eAAe,YAE7B,KAAK,MAAMF,SAAS,CAACP,YAAYC,mBAAmB,GAAG;EACrD,MAAM0B,OAAOnB,OAAOC,WAAWF,KAAK;EAEpC,IAAI,OAAOoB,MAAMC,qBAAqB,YAAY;EAElDD,KAAKC,iBAAiB,UAAUN,MAAM;EACtCI,UAAUG,WAAWF,KAAKG,oBAAoB,UAAUR,MAAM,CAAC;CACjE;CAGF,IAAI,OAAOS,qBAAqB,cAAclB,SAASC,iBAAiB;EACtE,MAAMkB,WAAW,IAAID,iBAAiBT,MAAM;EAE5CU,SAASC,QAAQpB,SAASC,iBAAiB;GACzCoB,YAAY;GACZC,iBAAiB,CAACrC,aAAaC,aAAa;EAC9C,CAAC;EAED2B,UAAUG,WAAWG,SAASI,WAAW,CAAC;CAC5C;CAEA,aAAaV,UAAUH,SAASc,aAAaA,SAAS,CAAC;AACzD;;;;;;;;;;AAWA,SAAgBC,gBAAgBd,UAAkC;CAChEL,UAAUoB,IAAIf,QAAQ;CAEtB,IAAI,CAACH,cACHA,eAAeI,cAAc;CAG/B,aAAa;EACXN,UAAUqB,OAAOhB,QAAQ;EAEzB,IAAI,CAACL,UAAUsB,QAAQpB,cAAc;GACnCA,aAAa;GACbA,eAAe;EACjB;CACF;AACF;;;;;;AAWA,MAAMqB,wBAAqC;AAC3C,MAAMC,8BAA8B;;;;;;;;;;;;;;AAepC,SAAOC,YAAA;CAAA,OACEjD,qBAAqB2C,iBAAiBtB,eAAe0B,eAAe;AAAC;;;;;;;;;AAW9E,SAAOG,kBAAA;CAAA,OACElD,qBACL2C,iBACApB,qBACAyB,qBACF;AAAC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useEffect, useState } from "react";
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { Fragment, isValidElement } from "react";
3
3
  //#region src/utils/react/wrapNodeIfPlain.ts
4
4
  function wrapNodeIfPlain(children, render) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/selection.ts
3
3
  /**
4
4
  * Deduplicate/toggle keys in a selection: if a key appears twice it is
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { isSelector, mergeStyles } from "@tenphi/tasty";
3
3
  //#region src/utils/styles.ts
4
4
  function isRecord(value) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  import { isDevEnvOrTest } from "./is-dev-env.js";
3
3
  //#region src/utils/warnings.ts
4
4
  const SUGGESTED_PROP_MAP = {
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.204.0";
4
- const TASTY_VERSION = "3.15.0";
3
+ const VERSION = "0.206.0";
4
+ const TASTY_VERSION = "3.17.1";
5
5
  if (typeof window !== "undefined") {
6
6
  const version = VERSION;
7
7
  const tastyVersion = TASTY_VERSION;
package/docs/Theming.md CHANGED
@@ -451,7 +451,7 @@ invalidatePaletteTokens(); // only needed once the kit is already mounted
451
451
 
452
452
  `contrastLevel` is the one field the kit writes to Glaze's global config, and it only ever does so if you asked for a level. A host that sets its own `glaze.configure({ contrastLevel })` and never passes `contrastLevel` here keeps it.
453
453
 
454
- **Some things are not tunable at all.** Tasty locks its configuration on the first style injection, so the `@dark` / `@hc` state definitions (set in `Root`) are fixed for the lifetime of the page. Only token _values_ stay mutable — which is all re-seeding needs.
454
+ **Some things are not tunable at all.** Tasty locks its configuration on the first style injection, so the `@dark` / `@hc` / `@reduced-motion` state definitions (set in `Root`) are fixed for the lifetime of the page. Only token _values_ stay mutable — which is all re-seeding needs.
455
455
 
456
456
  ## See also
457
457
 
package/docs/Usage.md CHANGED
@@ -447,6 +447,17 @@ An intended override takes a disable comment with its reason on the line before
447
447
 
448
448
  With this rule on, `tasty/no-styles-prop` can stay off, so the primitives keep their `styles`.
449
449
 
450
+ The same `extends` gives the plugin's other rules the names UI Kit defines: its tokens, presets and recipes, and the `@dark`, `@hc` and `@reduced-motion` state aliases. `tasty/valid-color-token`, `tasty/valid-custom-property`, `tasty/valid-preset`, `tasty/valid-recipe`, `tasty/valid-state-key` and `tasty/no-unknown-state-alias` then report only names that don't exist. List what your app defines itself, in its own `configure()` or `tokens`, in its own config, which adds to the lists it extends:
451
+
452
+ ```ts
453
+ // tasty.config.ts
454
+ export default {
455
+ extends: '@cube-dev/ui-kit',
456
+ states: ['@mobile'],
457
+ tokens: ['#brand'],
458
+ };
459
+ ```
460
+
450
461
  ## Recipes
451
462
 
452
463
  Reusable style presets applied via the `recipe` style property. Defined in `src/components/Root.tsx`.
@@ -499,6 +510,21 @@ fill: {
499
510
  }
500
511
  ```
501
512
 
513
+ ### Reduced Motion
514
+
515
+ `<Root>` registers a global `@reduced-motion` state beside [`@dark` and `@hc`](#color-schemes). It matches `@media (prefers-reduced-motion: reduce)`. Use it to stop or shorten motion for users who ask for less:
516
+
517
+ ```tsx
518
+ const Spinner = tasty({
519
+ styles: {
520
+ animation: 'spin 1s linear infinite',
521
+ animationPlayState: { '': 'running', '@reduced-motion': 'paused' },
522
+ },
523
+ });
524
+ ```
525
+
526
+ It follows the system preference alone, with no attribute opt-in.
527
+
502
528
  ## Icons
503
529
 
504
530
  Icons live in `src/icons/`. Use existing icons when possible; otherwise use `@tabler/icons-react`.
@@ -399,7 +399,7 @@ By default, Item shows an auto tooltip when content overflows. The label and a s
399
399
  - `string` - Shows tooltip with the specified text (always visible, not auto)
400
400
  - `object` - Advanced configuration:
401
401
  - `title?: string` - Custom tooltip text (when provided, always shows tooltip unless `auto: true`)
402
- - `auto?: boolean` - Enable/disable auto overflow behavior (defaults to `true` when no `title` is provided)
402
+ - `auto?: boolean` - Enable/disable auto overflow behavior (defaults to `true` when no `title` is provided). The automatic tooltip measures only a string label or description, because it shows the text that is cut off. With a `title`, `auto: true` measures a label or description of any kind, an element one included, and shows the `title` only while one of them is cut off. Only their own boxes are measured, so a child that clips its own text doesn't count. The check reruns when they resize or the `title` text changes, so derive a string `title` from the same text.
403
403
  - `placement?: string` - Tooltip position (top, bottom, left, right, etc.)
404
404
  - Plus other [TooltipProvider props](../overlays/Tooltip.md)
405
405