@cube-dev/ui-kit 0.165.0 → 0.167.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 (664) hide show
  1. package/README.md +4 -7
  2. package/dist/CHANGELOG.md +48 -0
  3. package/dist/README.md +4 -7
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +4 -4
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.js +1 -1
  18. package/dist/components/HiddenInput.js +1 -1
  19. package/dist/components/Root.js +1 -2
  20. package/dist/components/Root.js.map +1 -1
  21. package/dist/components/actions/Action/Action.js +1 -1
  22. package/dist/components/actions/Banner/Banner.js +1 -1
  23. package/dist/components/actions/Button/Button.d.ts +1 -0
  24. package/dist/components/actions/Button/Button.js +1 -1
  25. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  27. package/dist/components/actions/ButtonSplit/context.js +1 -1
  28. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  29. package/dist/components/actions/CommandMenu/styled.js +1 -1
  30. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  33. package/dist/components/actions/Link/Link.js +1 -1
  34. package/dist/components/actions/Menu/Menu.js +1 -1
  35. package/dist/components/actions/Menu/MenuItem.js +1 -1
  36. package/dist/components/actions/Menu/MenuSection.js +1 -1
  37. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  40. package/dist/components/actions/Menu/context.js +1 -1
  41. package/dist/components/actions/Menu/styled.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.d.ts +7 -3
  45. package/dist/components/actions/use-anchored-menu.js +17 -12
  46. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  47. package/dist/components/actions/use-context-menu.d.ts +6 -3
  48. package/dist/components/actions/use-context-menu.js +25 -13
  49. package/dist/components/actions/use-context-menu.js.map +1 -1
  50. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  51. package/dist/components/content/Alert/Alert.js +1 -1
  52. package/dist/components/content/Alert/use-alert.js +1 -1
  53. package/dist/components/content/Avatar/Avatar.js +1 -1
  54. package/dist/components/content/Badge/Badge.js +1 -1
  55. package/dist/components/content/Card/Card.js +1 -1
  56. package/dist/components/content/Content.js +1 -1
  57. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  58. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  59. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  60. package/dist/components/content/Divider.js +1 -1
  61. package/dist/components/content/Footer.js +1 -1
  62. package/dist/components/content/Header.js +1 -1
  63. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  64. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  65. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  66. package/dist/components/content/Item/Item.js +1 -1
  67. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  68. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  69. package/dist/components/content/Layout/GridLayout.js +1 -1
  70. package/dist/components/content/Layout/Layout.js +1 -1
  71. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  72. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  73. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  74. package/dist/components/content/Layout/LayoutContent.js +1 -1
  75. package/dist/components/content/Layout/LayoutContext.js +1 -1
  76. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  77. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  78. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  79. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  80. package/dist/components/content/Layout/LayoutPane.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanelHeader.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 +1 -1
  90. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  91. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  92. package/dist/components/content/Result/Result.js +1 -1
  93. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  94. package/dist/components/content/Tag/Tag.js +1 -1
  95. package/dist/components/content/Text.js +1 -1
  96. package/dist/components/content/TextItem/TextItem.js +1 -1
  97. package/dist/components/content/Title.js +1 -1
  98. package/dist/components/content/Tree/Tree.js +1 -1
  99. package/dist/components/content/Tree/TreeNode.js +1 -1
  100. package/dist/components/content/Tree/styled.js +1 -1
  101. package/dist/components/content/Tree/tree-index.js +1 -1
  102. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  103. package/dist/components/content/Tree/use-load-data.js +1 -1
  104. package/dist/components/content/highlightText.js +1 -1
  105. package/dist/components/content/use-auto-tooltip.js +1 -1
  106. package/dist/components/data/DataTable/DataTable.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  112. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  113. package/dist/components/data/TableBase/RowCollection.js +1 -1
  114. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  115. package/dist/components/data/TableBase/TableRow.js +1 -1
  116. package/dist/components/data/TableBase/TableView.js +1 -1
  117. package/dist/components/data/TableBase/column-menu.js +1 -1
  118. package/dist/components/data/TableBase/column-tint.js +1 -1
  119. package/dist/components/data/TableBase/row-menu.js +1 -1
  120. package/dist/components/data/TableBase/styled.d.ts +2 -1
  121. package/dist/components/data/TableBase/styled.js +1 -1
  122. package/dist/components/data/TableBase/table-tree.js +1 -1
  123. package/dist/components/data/TableBase/types.js +1 -1
  124. package/dist/components/data/TableBase/use-cell-selection.d.ts +1 -0
  125. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  126. package/dist/components/data/TableBase/use-column-order.js +1 -1
  127. package/dist/components/data/TableBase/use-container-width.js +1 -1
  128. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  129. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  130. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  131. package/dist/components/data/TableBase/use-table-search.js +1 -1
  132. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  133. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  134. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  135. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  136. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  137. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  138. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  139. package/dist/components/fields/Checkbox/context.js +1 -1
  140. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  141. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  142. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  143. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  144. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  145. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  146. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  147. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  148. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  149. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  150. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  151. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  153. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  154. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  155. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  156. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  157. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  158. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  159. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  160. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  161. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  162. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  163. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  164. package/dist/components/fields/DatePicker/period.js +1 -1
  165. package/dist/components/fields/DatePicker/props.js +1 -1
  166. package/dist/components/fields/DatePicker/utils.js +1 -1
  167. package/dist/components/fields/FileInput/FileInput.js +1 -1
  168. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  169. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  170. package/dist/components/fields/Input/Input.js +1 -1
  171. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  172. package/dist/components/fields/ListBox/ListBox.js +1 -1
  173. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  174. package/dist/components/fields/ListBoxPopover/index.d.ts +1 -0
  175. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  176. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +2 -0
  177. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  178. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  179. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  180. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  181. package/dist/components/fields/Picker/Picker.js +1 -1
  182. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  183. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  184. package/dist/components/fields/RadioGroup/context.js +1 -1
  185. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  186. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  187. package/dist/components/fields/Select/Select.js +1 -1
  188. package/dist/components/fields/Slider/Gradation.js +1 -1
  189. package/dist/components/fields/Slider/HueSlider.js +1 -1
  190. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  191. package/dist/components/fields/Slider/Slider.js +1 -1
  192. package/dist/components/fields/Slider/SliderBase.js +1 -1
  193. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  194. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  195. package/dist/components/fields/Slider/elements.js +1 -1
  196. package/dist/components/fields/Slider/index.js +1 -1
  197. package/dist/components/fields/Switch/Switch.js +1 -1
  198. package/dist/components/fields/TextArea/TextArea.js +1 -1
  199. package/dist/components/fields/TextInput/TextInput.js +1 -1
  200. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  201. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  202. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  203. package/dist/components/fields/color/ColorPanel.js +1 -1
  204. package/dist/components/fields/color/channels.js +1 -1
  205. package/dist/components/fields/color/color.js +1 -1
  206. package/dist/components/fields/color/context.js +1 -1
  207. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  208. package/dist/components/form/Form/Field.js +1 -1
  209. package/dist/components/form/Form/Form.js +1 -1
  210. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  211. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  212. package/dist/components/form/Form/SubmitError.js +1 -1
  213. package/dist/components/form/Form/index.js +1 -1
  214. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  215. package/dist/components/form/Form/use-field/use-field.js +1 -1
  216. package/dist/components/form/Form/use-form.js +1 -1
  217. package/dist/components/form/Form/validation.js +1 -1
  218. package/dist/components/form/Label.js +1 -1
  219. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  220. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  221. package/dist/components/form/validation/use-validation-props.js +1 -1
  222. package/dist/components/form/wrapper.js +1 -1
  223. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  224. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  225. package/dist/components/layout/Board/Board.d.ts +33 -7
  226. package/dist/components/layout/Board/Board.js +29 -11
  227. package/dist/components/layout/Board/Board.js.map +1 -1
  228. package/dist/components/layout/Board/BoardProvider.js +1 -1
  229. package/dist/components/layout/Board/BoardResponsive.d.ts +6 -3
  230. package/dist/components/layout/Board/BoardResponsive.js +3 -3
  231. package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
  232. package/dist/components/layout/Board/Widget.d.ts +38 -1
  233. package/dist/components/layout/Board/Widget.js +6 -2
  234. package/dist/components/layout/Board/Widget.js.map +1 -1
  235. package/dist/components/layout/Board/WidgetHost.js +69 -18
  236. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  237. package/dist/components/layout/Board/board-context.js +1 -1
  238. package/dist/components/layout/Board/board-context.js.map +1 -1
  239. package/dist/components/layout/Board/board-store.js +2 -2
  240. package/dist/components/layout/Board/board-store.js.map +1 -1
  241. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  242. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  243. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  244. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  245. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  246. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  247. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  248. package/dist/components/layout/Board/grid-core/placement.d.ts +58 -0
  249. package/dist/components/layout/Board/grid-core/placement.js +153 -0
  250. package/dist/components/layout/Board/grid-core/placement.js.map +1 -0
  251. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  252. package/dist/components/layout/Board/index.d.ts +3 -1
  253. package/dist/components/layout/Board/index.js +2 -1
  254. package/dist/components/layout/Board/index.js.map +1 -1
  255. package/dist/components/layout/Board/responsive-utils.js +1 -1
  256. package/dist/components/layout/Board/use-board-layout.d.ts +26 -0
  257. package/dist/components/layout/Board/use-board-layout.js +4 -4
  258. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  259. package/dist/components/layout/Board/use-board-registry.js +5 -56
  260. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  261. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  262. package/dist/components/layout/Board/use-board-selection.js +1 -1
  263. package/dist/components/layout/Flex.js +1 -1
  264. package/dist/components/layout/Flow.js +1 -1
  265. package/dist/components/layout/Grid.js +1 -1
  266. package/dist/components/layout/Panel.js +1 -1
  267. package/dist/components/layout/Prefix.js +1 -1
  268. package/dist/components/layout/ResizablePanel.js +1 -1
  269. package/dist/components/layout/Space.js +1 -1
  270. package/dist/components/layout/Suffix.js +1 -1
  271. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  272. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  273. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  274. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  275. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  276. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  277. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  278. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  279. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  280. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  281. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  282. package/dist/components/navigation/Tabs/styled.js +1 -1
  283. package/dist/components/navigation/Tabs/types.js +1 -1
  284. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  285. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  286. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  287. package/dist/components/other/Calendar/Calendar.js +1 -1
  288. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  289. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  290. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  291. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  292. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  293. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  294. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  295. package/dist/components/other/Calendar/styled.js +1 -1
  296. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  297. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  298. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  299. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  300. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  301. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  302. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  303. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  304. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  305. package/dist/components/overlays/Dialog/context.js +1 -1
  306. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  307. package/dist/components/overlays/Modal/Modal.d.ts +2 -1
  308. package/dist/components/overlays/Modal/Modal.js +1 -1
  309. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  310. package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
  311. package/dist/components/overlays/Modal/Overlay.js +1 -1
  312. package/dist/components/overlays/Modal/Popover.js +1 -1
  313. package/dist/components/overlays/Modal/Tray.js +1 -1
  314. package/dist/components/overlays/Modal/Underlay.js +1 -1
  315. package/dist/components/overlays/Modal/types.d.ts +1 -0
  316. package/dist/components/overlays/Notifications/Notification.js +1 -1
  317. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  318. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  319. package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
  320. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  321. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  322. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  323. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  324. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  325. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  326. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  327. package/dist/components/overlays/Notifications/index.js +1 -1
  328. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  329. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  330. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  331. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  332. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  333. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  334. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  335. package/dist/components/overlays/Toast/index.js +1 -1
  336. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  337. package/dist/components/overlays/Toast/useToast.js +1 -1
  338. package/dist/components/overlays/Tooltip/Tooltip.js +2 -1
  339. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  340. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  341. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  342. package/dist/components/overlays/Tooltip/context.js +1 -1
  343. package/dist/components/portal/Portal.js +1 -1
  344. package/dist/components/portal/PortalProvider.d.ts +2 -0
  345. package/dist/components/portal/PortalProvider.js +1 -1
  346. package/dist/components/portal/index.d.ts +1 -0
  347. package/dist/components/portal/usePortal.js +1 -1
  348. package/dist/components/shared/DraggableCollection.js +1 -1
  349. package/dist/components/shared/InvalidIcon.js +1 -1
  350. package/dist/components/shared/ValidIcon.js +1 -1
  351. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  352. package/dist/components/status/Spin/Cube.js +1 -1
  353. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  354. package/dist/components/status/Spin/Spin.js +1 -1
  355. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  356. package/dist/data/item-themes.js +1 -1
  357. package/dist/data/themes.js +1 -1
  358. package/dist/eslint-plugin/defaults.generated.js +25 -1
  359. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  360. package/dist/eslint-plugin/index.js +1 -1
  361. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  362. package/dist/i18n/I18nProvider.js +1 -1
  363. package/dist/i18n/createFormatter.js +1 -1
  364. package/dist/i18n/index.js +1 -1
  365. package/dist/i18n/instance.js +1 -1
  366. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  367. package/dist/i18n/locales/en-US/uikit.js +1 -1
  368. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  369. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  370. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  371. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  372. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  373. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  374. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  375. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  376. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  377. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  378. package/dist/i18n/locales.js +1 -1
  379. package/dist/i18n/useFormatter.js +1 -1
  380. package/dist/i18n/useI18n.js +1 -1
  381. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  382. package/dist/icons/AdjustmentsIcon.js +1 -1
  383. package/dist/icons/AiIcon.js +1 -1
  384. package/dist/icons/AreaChartIcon.js +1 -1
  385. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  386. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  387. package/dist/icons/BackwardIcon.js +1 -1
  388. package/dist/icons/BarChartIcon.js +1 -1
  389. package/dist/icons/BellFilledIcon.js +1 -1
  390. package/dist/icons/BellIcon.js +1 -1
  391. package/dist/icons/BooleanIcon.js +1 -1
  392. package/dist/icons/CalendarEditIcon.js +1 -1
  393. package/dist/icons/CalendarIcon.js +1 -1
  394. package/dist/icons/CaretDownIcon.js +1 -1
  395. package/dist/icons/CaretUpIcon.js +1 -1
  396. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  397. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  398. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  399. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  400. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  401. package/dist/icons/ChartBarLineIcon.js +1 -1
  402. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  403. package/dist/icons/ChartBarStackedIcon.js +1 -1
  404. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  405. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  406. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  407. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  408. package/dist/icons/ChartBubbleIcon.js +1 -1
  409. package/dist/icons/ChartDonut2Icon.js +1 -1
  410. package/dist/icons/ChartFunnelIcon.js +1 -1
  411. package/dist/icons/ChartHeatmapIcon.js +1 -1
  412. package/dist/icons/ChartKPIIcon.js +1 -1
  413. package/dist/icons/ChartPie2Icon.js +1 -1
  414. package/dist/icons/ChartScatterIcon.js +1 -1
  415. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  416. package/dist/icons/CheckCircleIcon.js +1 -1
  417. package/dist/icons/CheckIcon.js +1 -1
  418. package/dist/icons/CircleFilledIcon.js +1 -1
  419. package/dist/icons/ClearIcon.js +1 -1
  420. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  421. package/dist/icons/CloseCircleIcon.js +1 -1
  422. package/dist/icons/CloseIcon.js +1 -1
  423. package/dist/icons/CodeIcon.js +1 -1
  424. package/dist/icons/ColumnTotalIcon.js +1 -1
  425. package/dist/icons/CopyIcon.js +1 -1
  426. package/dist/icons/CountIcon.js +1 -1
  427. package/dist/icons/CubeIcon.js +1 -1
  428. package/dist/icons/CubePauseIcon.js +1 -1
  429. package/dist/icons/CubePlayIcon.js +1 -1
  430. package/dist/icons/CurrencyDollarIcon.js +1 -1
  431. package/dist/icons/DangerIcon.js +1 -1
  432. package/dist/icons/DashboardIcon.js +1 -1
  433. package/dist/icons/DatabaseIcon.js +1 -1
  434. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  435. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  436. package/dist/icons/DirectionIcon.js +1 -1
  437. package/dist/icons/DonutIcon.js +1 -1
  438. package/dist/icons/DownIcon.js +1 -1
  439. package/dist/icons/EditIcon.js +1 -1
  440. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  441. package/dist/icons/ExclamationCircleIcon.js +1 -1
  442. package/dist/icons/ExclamationIcon.js +1 -1
  443. package/dist/icons/EyeIcon.js +1 -1
  444. package/dist/icons/EyeInvisibleIcon.js +1 -1
  445. package/dist/icons/FilterIcon.js +1 -1
  446. package/dist/icons/FolderFilledIcon.js +1 -1
  447. package/dist/icons/FolderIcon.js +1 -1
  448. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  449. package/dist/icons/FolderOpenIcon.js +1 -1
  450. package/dist/icons/ForwardIcon.js +1 -1
  451. package/dist/icons/GripVerticalIcon.js +1 -1
  452. package/dist/icons/HierarchyIcon.js +1 -1
  453. package/dist/icons/HierarchyOpenIcon.js +1 -1
  454. package/dist/icons/Icon.js +1 -1
  455. package/dist/icons/InfoCircleIcon.js +1 -1
  456. package/dist/icons/InfoIcon.js +1 -1
  457. package/dist/icons/KeyIcon.js +1 -1
  458. package/dist/icons/LeftIcon.js +1 -1
  459. package/dist/icons/LineChartIcon.js +1 -1
  460. package/dist/icons/LoadingIcon.js +1 -1
  461. package/dist/icons/LockFilledIcon.js +1 -1
  462. package/dist/icons/LockIcon.js +1 -1
  463. package/dist/icons/MoreIcon.js +1 -1
  464. package/dist/icons/NotAllowedIcon.js +1 -1
  465. package/dist/icons/Number123Icon.js +1 -1
  466. package/dist/icons/NumberIcon.js +1 -1
  467. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  468. package/dist/icons/PauseCircleIcon.js +1 -1
  469. package/dist/icons/PauseIcon.js +1 -1
  470. package/dist/icons/PercentageIcon.js +1 -1
  471. package/dist/icons/PieChartIcon.js +1 -1
  472. package/dist/icons/PipetteIcon.js +1 -1
  473. package/dist/icons/PlayCircleIcon.js +1 -1
  474. package/dist/icons/PlayIcon.js +1 -1
  475. package/dist/icons/PlusIcon.js +1 -1
  476. package/dist/icons/ProgressBarIcon.js +1 -1
  477. package/dist/icons/ReloadIcon.js +1 -1
  478. package/dist/icons/ReportIcon.js +1 -1
  479. package/dist/icons/ReturnIcon.js +1 -1
  480. package/dist/icons/RightIcon.js +1 -1
  481. package/dist/icons/RowTotalsIcon.js +1 -1
  482. package/dist/icons/SchemeIcon.js +1 -1
  483. package/dist/icons/SearchIcon.js +1 -1
  484. package/dist/icons/SemanticQueryIcon.js +1 -1
  485. package/dist/icons/SettingsIcon.js +1 -1
  486. package/dist/icons/ShieldFilledIcon.js +1 -1
  487. package/dist/icons/ShieldIcon.js +1 -1
  488. package/dist/icons/SlashIcon.js +1 -1
  489. package/dist/icons/SparklesIcon.js +1 -1
  490. package/dist/icons/SqlIcon.js +1 -1
  491. package/dist/icons/StatsIcon.js +1 -1
  492. package/dist/icons/StopIcon.js +1 -1
  493. package/dist/icons/StringIcon.js +1 -1
  494. package/dist/icons/SubtotalsIcon.js +1 -1
  495. package/dist/icons/SwitchIcon.js +1 -1
  496. package/dist/icons/TableIcon.js +1 -1
  497. package/dist/icons/ThumbsDownIcon.js +1 -1
  498. package/dist/icons/ThumbsUpIcon.js +1 -1
  499. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  500. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  501. package/dist/icons/ThunderboltIcon.js +1 -1
  502. package/dist/icons/TimeIcon.js +1 -1
  503. package/dist/icons/TrashIcon.js +1 -1
  504. package/dist/icons/UnlockIcon.js +1 -1
  505. package/dist/icons/UpIcon.js +1 -1
  506. package/dist/icons/UserGroupIcon.js +1 -1
  507. package/dist/icons/UserIcon.js +1 -1
  508. package/dist/icons/UserLockIcon.js +1 -1
  509. package/dist/icons/ViewIcon.js +1 -1
  510. package/dist/icons/WarningFilledIcon.js +1 -1
  511. package/dist/icons/WarningIcon.js +1 -1
  512. package/dist/icons/wrap-icon.js +1 -1
  513. package/dist/index.d.ts +7 -3
  514. package/dist/index.js +5 -3
  515. package/dist/index.js.map +1 -1
  516. package/dist/probe/canonicalize.js +1 -1
  517. package/dist/probe/css.js +1 -1
  518. package/dist/probe/index.js +1 -1
  519. package/dist/provider.js +1 -1
  520. package/dist/providers/TrackingProvider.js +1 -1
  521. package/dist/providers/navigationAdapter.default.js +1 -1
  522. package/dist/tokens/all-tokens.d.ts +10 -0
  523. package/dist/tokens/{index.js → all-tokens.js} +7 -25
  524. package/dist/tokens/all-tokens.js.map +1 -0
  525. package/dist/tokens/base.js +2 -1
  526. package/dist/tokens/base.js.map +1 -1
  527. package/dist/tokens/color-seed.js +1 -1
  528. package/dist/tokens/color-theme.js +1 -1
  529. package/dist/tokens/colors.js +1 -1
  530. package/dist/tokens/index.d.ts +3 -10
  531. package/dist/tokens/layout.js +1 -1
  532. package/dist/tokens/lazy-styles.js +1 -1
  533. package/dist/tokens/palette-config.js +1 -1
  534. package/dist/tokens/palette.js +1 -1
  535. package/dist/tokens/resolve.d.ts +113 -0
  536. package/dist/tokens/resolve.js +403 -0
  537. package/dist/tokens/resolve.js.map +1 -0
  538. package/dist/tokens/shadows.js +1 -1
  539. package/dist/tokens/sizes.js +1 -1
  540. package/dist/tokens/spacing.js +1 -1
  541. package/dist/tokens/typography.js +1 -1
  542. package/dist/utils/ResizeSensor.js +1 -1
  543. package/dist/utils/is-dev-env.js +1 -1
  544. package/dist/utils/modules.js +1 -1
  545. package/dist/utils/promise.js +1 -1
  546. package/dist/utils/raf.js +1 -1
  547. package/dist/utils/random.js +1 -1
  548. package/dist/utils/range.js +1 -1
  549. package/dist/utils/react/RenderCache.js +1 -1
  550. package/dist/utils/react/Slots.js +1 -1
  551. package/dist/utils/react/chain.js +1 -1
  552. package/dist/utils/react/disabledProps.js +1 -1
  553. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  554. package/dist/utils/react/index.js +1 -1
  555. package/dist/utils/react/interactions.js +1 -1
  556. package/dist/utils/react/isTextOnly.js +1 -1
  557. package/dist/utils/react/mapProps.js +1 -1
  558. package/dist/utils/react/mergeProps.js +1 -1
  559. package/dist/utils/react/nullableValue.js +1 -1
  560. package/dist/utils/react/resolveIcon.js +1 -1
  561. package/dist/utils/react/sharedStore.js +1 -1
  562. package/dist/utils/react/useBufferedValue.js +1 -1
  563. package/dist/utils/react/useCombinedRefs.js +1 -1
  564. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  565. package/dist/utils/react/useEventBus.js +1 -1
  566. package/dist/utils/react/useId.js +1 -1
  567. package/dist/utils/react/useIsDarwin.js +1 -1
  568. package/dist/utils/react/useKeySymbols.js +1 -1
  569. package/dist/utils/react/useLayoutEffect.d.ts +1 -1
  570. package/dist/utils/react/useLayoutEffect.js +1 -1
  571. package/dist/utils/react/useLocalStorage.js +1 -1
  572. package/dist/utils/react/useMergeStyles.js +1 -1
  573. package/dist/utils/react/usePopoverSync.js +1 -1
  574. package/dist/utils/react/useQaProps.js +1 -1
  575. package/dist/utils/react/useViewportSize.js +1 -1
  576. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  577. package/dist/utils/selection.js +1 -1
  578. package/dist/utils/styles.js +1 -1
  579. package/dist/utils/tree.js +1 -1
  580. package/dist/utils/warnings.js +1 -1
  581. package/dist/version.js +3 -3
  582. package/docs/Colors.md +16 -40
  583. package/docs/ComplexLayout.md +8 -0
  584. package/docs/CreateComponent.md +15 -8
  585. package/docs/Introduction.md +15 -36
  586. package/docs/RenderCache.md +8 -6
  587. package/docs/Theming.md +164 -497
  588. package/docs/Usage.md +129 -138
  589. package/docs/Utilities.md +2 -2
  590. package/docs/components/CollectionItem.md +1 -0
  591. package/docs/components/actions/Banner.md +1 -0
  592. package/docs/components/actions/Button.md +8 -36
  593. package/docs/components/actions/ButtonSplit.md +2 -0
  594. package/docs/components/actions/CommandMenu.md +8 -8
  595. package/docs/components/actions/ItemButton.md +6 -20
  596. package/docs/components/actions/Link.md +10 -5
  597. package/docs/components/actions/Menu.md +24 -11
  598. package/docs/components/actions/MenuTrigger.md +3 -12
  599. package/docs/components/actions/use-anchored-menu.md +5 -5
  600. package/docs/components/actions/use-context-menu.md +11 -7
  601. package/docs/components/content/Badge.md +3 -0
  602. package/docs/components/content/HotKeys.md +21 -14
  603. package/docs/components/content/InlineInput.md +14 -14
  604. package/docs/components/content/Item.md +25 -17
  605. package/docs/components/content/ItemCard.md +1 -0
  606. package/docs/components/content/Layout.md +12 -1
  607. package/docs/components/content/PrismCode.md +13 -18
  608. package/docs/components/content/Tag.md +1 -1
  609. package/docs/components/content/TextItem.md +5 -3
  610. package/docs/components/content/Tree.md +69 -154
  611. package/docs/components/data/DataTable.md +56 -168
  612. package/docs/components/data/ItemTable.md +182 -485
  613. package/docs/components/fields/Checkbox.md +2 -0
  614. package/docs/components/fields/ColorInput.md +38 -79
  615. package/docs/components/fields/ColorPicker.md +17 -39
  616. package/docs/components/fields/ColorSwatch.md +11 -30
  617. package/docs/components/fields/ColorSwatchGroup.md +18 -42
  618. package/docs/components/fields/ComboBox.md +13 -1
  619. package/docs/components/fields/CommandTextArea.md +10 -37
  620. package/docs/components/fields/DatePicker.md +3 -0
  621. package/docs/components/fields/FileInput.md +3 -0
  622. package/docs/components/fields/FilterListBox.md +34 -14
  623. package/docs/components/fields/FilterPicker.md +33 -16
  624. package/docs/components/fields/HueSlider.md +5 -5
  625. package/docs/components/fields/ListBox.md +35 -9
  626. package/docs/components/fields/NumberInput.md +3 -0
  627. package/docs/components/fields/PasswordInput.md +3 -0
  628. package/docs/components/fields/PeriodPicker.md +7 -17
  629. package/docs/components/fields/Picker.md +54 -29
  630. package/docs/components/fields/RadioGroup.md +13 -5
  631. package/docs/components/fields/SearchComboBox.md +3 -0
  632. package/docs/components/fields/SearchInput.md +4 -2
  633. package/docs/components/fields/Select.md +23 -13
  634. package/docs/components/fields/Switch.md +3 -0
  635. package/docs/components/fields/TextInput.md +3 -0
  636. package/docs/components/fields/TextInputMapper.md +1 -2
  637. package/docs/components/form/Field.md +5 -2
  638. package/docs/components/form/Form.md +5 -0
  639. package/docs/components/form/FormInstance.md +1 -1
  640. package/docs/components/helpers/DisplayTransition.md +10 -6
  641. package/docs/components/helpers/IconSwitch.md +1 -0
  642. package/docs/components/layout/Board.md +89 -193
  643. package/docs/components/navigation/Pagination.md +36 -75
  644. package/docs/components/navigation/Tabs.md +3 -15
  645. package/docs/components/other/Calendar.md +22 -39
  646. package/docs/components/other/CubeLogo.md +1 -1
  647. package/docs/components/overlays/Dialog.md +3 -0
  648. package/docs/components/overlays/DialogContainer.md +2 -0
  649. package/docs/components/overlays/DialogForm.md +6 -2
  650. package/docs/components/overlays/DialogTrigger.md +4 -2
  651. package/docs/components/overlays/Notifications.md +7 -0
  652. package/docs/components/overlays/Toast.md +12 -8
  653. package/docs/components/overlays/Tooltip.md +16 -0
  654. package/docs/components/overlays/UseDialogContainer.md +16 -10
  655. package/docs/components/status/LoadingAnimation.md +3 -9
  656. package/docs/tasty/configuration.md +195 -15
  657. package/docs/tasty/dsl.md +40 -5
  658. package/docs/tasty/injector.md +11 -0
  659. package/docs/tasty/methodology.md +1 -1
  660. package/docs/tasty/pipeline.md +1 -4
  661. package/docs/tasty/react-api.md +1 -1
  662. package/docs/tasty/styles.md +8 -1
  663. package/package.json +4 -4
  664. package/dist/tokens/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../src/tokens/base.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Base design system tokens.\n * These define the fundamental units and values used throughout the system.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const BASE_TOKENS: Styles = {\n // Typography base\n /** @deprecated Use preset tokens instead */\n '$font-size': '14px',\n /** @deprecated Use preset tokens instead */\n '$line-height': '20px',\n\n // Input typography\n '$input-font-size': '14px',\n '$input-line-height': '20px',\n '$input-letter-spacing': '0.02em',\n\n // Opacity & dimensions\n /** Opacity for disabled elements */\n '$disabled-opacity': '.4',\n /** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */\n $gap: '8px',\n /** Stroke width for icons */\n '$stroke-width': 1.5,\n /** Focus outline width */\n '$outline-width': 'calc(1rem / 16 * 3)',\n /** Border width for bordered elements */\n '$border-width': '1px',\n\n // Border radius\n /** Base border radius (used with `1r`, `2r` etc.) */\n $radius: '6px',\n /** Larger radius using tasty calc: 1r + 0.5x */\n '$large-radius': '(1r + .5x)',\n /** Card border radius */\n '$card-radius': '(1r + .5x)',\n /** Sharp corner for leaf shapes */\n '$sharp-radius': '0px',\n\n // Misc dimensions\n /** Minimum dialog width (responsive) */\n '$min-dialog-size': 'min(288px, calc(100vw - (2 * var(--gap))))',\n\n // Transitions\n /** Default transition duration */\n $transition: '80ms',\n /** Transition for disclosure animations */\n '$disclosure-transition': '120ms',\n /** Transition for tab animations */\n '$tab-transition': '120ms',\n /** Transition for fade animations */\n '$fade-transition': '200ms',\n\n // Scrollbar tokens\n '$scrollbar-width': '1.5x',\n '$scrollbar-outline-width': '1ow',\n '$scrollbar-radius': '1.5r',\n '#scrollbar-thumb': '#text.5',\n '#scrollbar-outline': '#clear',\n '#scrollbar-bg': '#surface-2',\n '#scrollbar-corner': '#clear',\n};\n"],"mappings":";;;;;;;;AAQA,MAAa,cAAsB;CAGjC,cAAc;CAEd,gBAAgB;CAGhB,oBAAoB;CACpB,sBAAsB;CACtB,yBAAyB;CAIzB,qBAAqB;CAErB,MAAM;CAEN,iBAAiB;CAEjB,kBAAkB;CAElB,iBAAiB;CAIjB,SAAS;CAET,iBAAiB;CAEjB,gBAAgB;CAEhB,iBAAiB;CAIjB,oBAAoB;CAIpB,aAAa;CAEb,0BAA0B;CAE1B,mBAAmB;CAEnB,oBAAoB;CAGpB,oBAAoB;CACpB,4BAA4B;CAC5B,qBAAqB;CACrB,oBAAoB;CACpB,sBAAsB;CACtB,iBAAiB;CACjB,qBAAqB;CACtB"}
1
+ {"version":3,"file":"base.js","names":[],"sources":["../../src/tokens/base.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Base design system tokens.\n * These define the fundamental units and values used throughout the system.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const BASE_TOKENS: Styles = {\n // Typography base\n /** @deprecated Use preset tokens instead */\n '$font-size': '14px',\n /** @deprecated Use preset tokens instead */\n '$line-height': '20px',\n\n // Input typography\n '$input-font-size': '14px',\n '$input-line-height': '20px',\n '$input-letter-spacing': '0.02em',\n\n // Opacity & dimensions\n /** Opacity for disabled elements */\n '$disabled-opacity': '.4',\n /** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */\n $gap: '8px',\n /** Stroke width for icons */\n '$stroke-width': 1.5,\n /** Focus outline width */\n '$outline-width': 'calc(1rem / 16 * 3)',\n /** Border width for bordered elements */\n '$border-width': '1px',\n\n // Border radius\n /** Base border radius (used with `1r`, `2r` etc.) */\n $radius: '6px',\n /** Larger radius using tasty calc: 1r + 0.5x */\n '$large-radius': '(1r + .5x)',\n /** Card border radius */\n '$card-radius': '(1r + .5x)',\n /** Sharp corner for leaf shapes */\n '$sharp-radius': '0px',\n\n // Misc dimensions\n /** Minimum dialog width (responsive) */\n '$min-dialog-size': 'min(288px, calc(100vw - (2 * var(--gap))))',\n\n // Transitions\n /** Default transition duration */\n $transition: '80ms',\n /** Transition for disclosure animations */\n '$disclosure-transition': '120ms',\n /** Transition for tab animations */\n '$tab-transition': '120ms',\n /** Transition for fade animations */\n '$fade-transition': '200ms',\n\n /**\n * Marks an element as carrying the token block. Not a design value — nothing\n * styles against it.\n *\n * `resolveTokenValue()` reads it to answer the one question a computed value\n * cannot: \"are the kit's tokens in effect here?\" Tasty registers `@property`\n * defaults with real initial values — `--gap` is `4px` off the block, not\n * `0px` — so a token read from outside `<Root>` comes back plausible and\n * wrong, and no amount of inspecting the value would reveal it. This is\n * declared alongside the tokens, so it is present exactly where they are.\n */\n '$tokens-applied': '1',\n\n // Scrollbar tokens\n '$scrollbar-width': '1.5x',\n '$scrollbar-outline-width': '1ow',\n '$scrollbar-radius': '1.5r',\n '#scrollbar-thumb': '#text.5',\n '#scrollbar-outline': '#clear',\n '#scrollbar-bg': '#surface-2',\n '#scrollbar-corner': '#clear',\n};\n"],"mappings":";;;;;;;;AAQA,MAAa,cAAsB;CAGjC,cAAc;CAEd,gBAAgB;CAGhB,oBAAoB;CACpB,sBAAsB;CACtB,yBAAyB;CAIzB,qBAAqB;CAErB,MAAM;CAEN,iBAAiB;CAEjB,kBAAkB;CAElB,iBAAiB;CAIjB,SAAS;CAET,iBAAiB;CAEjB,gBAAgB;CAEhB,iBAAiB;CAIjB,oBAAoB;CAIpB,aAAa;CAEb,0BAA0B;CAE1B,mBAAmB;CAEnB,oBAAoB;CAapB,mBAAmB;CAGnB,oBAAoB;CACpB,4BAA4B;CAC5B,qBAAqB;CACrB,oBAAoB;CACpB,sBAAsB;CACtB,iBAAiB;CACjB,qBAAqB;CACtB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.165.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { glaze } from "@tenphi/glaze";
3
3
 
4
4
  //#region src/tokens/color-seed.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.165.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
3
  import { DEFAULT_HUE, DEFAULT_SATURATION, getPaletteConfig, getPaletteVersion, usePaletteVersion } from "./palette-config.js";
4
4
  import { tintRecipe } from "./palette.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.165.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.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,6 +1,8 @@
1
1
 
2
2
  import { DEFAULT_PALETTE_CONFIG, MAX_BASE_SATURATION, PaletteCodeSeed, PaletteConfig, PaletteNumericSeed, PaletteSeed, PaletteThemeName, ResolvedPaletteConfig, ResolvedThemeSeed, SurfaceMode, getPaletteConfig, getPaletteConfigInput, invalidatePaletteTokens, resetPaletteConfig, resolvePaletteConfig, setPaletteConfig, subscribePaletteConfig, usePaletteConfig, usePaletteVersion } from "./palette-config.js";
3
3
  import { SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS, SizeKey, SizeName } from "./sizes.js";
4
+ import { TOKENS, getTokens } from "./all-tokens.js";
5
+ import { ResolveTokenOptions, ResolvedPreset, resolvePresetValues, resolveTokenValue, resolveTokenValues, usePresetValues, useTokenValue, useTokenValues } from "./resolve.js";
4
6
  import { PALETTE_TOKENS, RenderPaletteOptions, getCodeTheme, getPalette, getPaletteTokens, renderPaletteTokens } from "./palette.js";
5
7
  import { COLOR_TOKENS, getColorTokens, renderColorTokens } from "./colors.js";
6
8
  import { ColorSeed, colorSeed } from "./color-seed.js";
@@ -9,13 +11,4 @@ import { SPACE_TOKENS } from "./spacing.js";
9
11
  import { SHADOW_TOKENS } from "./shadows.js";
10
12
  import { LAYOUT_TOKENS } from "./layout.js";
11
13
  import { BASE_TOKENS } from "./base.js";
12
- import { TYPOGRAPHY_PRESETS } from "./typography.js";
13
- import { Styles } from "@tenphi/tasty";
14
-
15
- //#region src/tokens/index.d.ts
16
- declare function getTokens(): Styles;
17
- /** Lazy proxy of {@link getTokens}. Prefer `getTokens()` in new code. */
18
- declare const TOKENS: Styles;
19
- //#endregion
20
- export { TOKENS, getTokens };
21
- //# sourceMappingURL=index.d.ts.map
14
+ import { TYPOGRAPHY_PRESETS } from "./typography.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.165.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.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.165.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.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.165.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
3
  import { useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.165.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.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";
@@ -0,0 +1,113 @@
1
+
2
+ //#region src/tokens/resolve.d.ts
3
+ interface ResolveTokenOptions {
4
+ /**
5
+ * Element to read the tokens off. Defaults to the document `<body>`, which is
6
+ * where `<Root>` declares them.
7
+ *
8
+ * Pass an element when the value has to reflect a *local* override — a subtree
9
+ * carrying its own `tokens` prop (`renderColorTokens()`), or one under a
10
+ * `data-schema` / `data-contrast` attribute that differs from the document's.
11
+ * The element's own document and view are used, so a node inside a same-origin
12
+ * iframe resolves against that iframe.
13
+ */
14
+ element?: Element | null;
15
+ /**
16
+ * Returned in place of `null` when a token is unset, unresolvable, or reads
17
+ * back as an `@property` placeholder — including on the server, where there is
18
+ * no DOM to read.
19
+ */
20
+ fallback?: string;
21
+ }
22
+ /**
23
+ * Fields mirror {@link TypographyPreset}. A field the preset does not define is
24
+ * `null`, except `fontFamily`, which falls back to the document's `--font-sans`
25
+ * so the common case (`t1`–`t4`, `h1`–`h6`, which inherit the sans stack rather
26
+ * than naming it) still hands back a usable stack.
27
+ */
28
+ type ResolvedPreset = {
29
+ fontFamily: string | null;
30
+ fontSize: string | null;
31
+ fontStyle: string | null;
32
+ fontWeight: string | null;
33
+ lineHeight: string | null;
34
+ letterSpacing: string | null;
35
+ textTransform: string | null;
36
+ boldFontWeight: string | null;
37
+ iconSize: string | null;
38
+ };
39
+ /**
40
+ * Read the resolved value of one design token — a color, a length, a font
41
+ * descriptor — as a literal string.
42
+ *
43
+ * ```ts
44
+ * resolveTokenValue('#purple'); // 'oklch(0.52 0.24 285)'
45
+ * resolveTokenValue('$space-md'); // '8px'
46
+ * resolveTokenValue('$t3-font-size'); // '14px'
47
+ * ```
48
+ *
49
+ * Returns `options.fallback ?? null` when the token is not declared on the
50
+ * element it was read from — see {@link ResolveTokenOptions}.
51
+ */
52
+ declare function resolveTokenValue(token: string, options?: ResolveTokenOptions): string | null;
53
+ /**
54
+ * {@link resolveTokenValue} for several tokens at once, through a single
55
+ * `getComputedStyle` call. Prefer this when building a theme object — a Stripe
56
+ * `Appearance`, a CodeMirror theme — which needs a dozen values at a time.
57
+ *
58
+ * ```ts
59
+ * const { '#surface': background, '#surface-text': color } = resolveTokenValues([
60
+ * '#surface',
61
+ * '#surface-text',
62
+ * ]);
63
+ * ```
64
+ */
65
+ declare function resolveTokenValues<T extends string>(tokens: readonly T[], options?: ResolveTokenOptions): Record<T, string | null>;
66
+ /**
67
+ * Resolve a typography preset — `'t3'`, `'h2'`, `'s3'` — to the literal font
68
+ * descriptors behind it, for a surface that takes a font as values rather than
69
+ * as a `preset` style.
70
+ *
71
+ * ```ts
72
+ * const { fontFamily, fontSize, lineHeight } = resolvePresetValues('t3');
73
+ * ```
74
+ *
75
+ * A preset legitimately leaves most of these unset — only headings carry an
76
+ * `iconSize`, only the `s*` family names a `fontFamily` — so unlike
77
+ * {@link resolveTokenValues} a miss here is expected and never warns.
78
+ */
79
+ declare function resolvePresetValues(preset: string, options?: ResolveTokenOptions): ResolvedPreset;
80
+ /**
81
+ * {@link resolveTokenValue} as a hook: re-renders when the palette is re-seeded
82
+ * or the scheme / contrast tier flips.
83
+ *
84
+ * ```tsx
85
+ * const accent = useTokenValue('#purple');
86
+ *
87
+ * return <Chart series={{ color: accent ?? '#000' }} />;
88
+ * ```
89
+ */
90
+ declare function useTokenValue(token: string, options?: ResolveTokenOptions): string | null;
91
+ /**
92
+ * {@link resolveTokenValues} as a hook. The returned object keeps its identity
93
+ * while the values are unchanged, so it is safe as a dependency of the theme
94
+ * object built from it — and the token list may be an inline literal.
95
+ *
96
+ * ```tsx
97
+ * const colors = useTokenValues(['#surface', '#surface-text', '#border']);
98
+ *
99
+ * const appearance = useMemo(() => toStripeAppearance(colors), [colors]);
100
+ * ```
101
+ */
102
+ declare function useTokenValues<T extends string>(tokens: readonly T[], options?: ResolveTokenOptions): Record<T, string | null>;
103
+ /**
104
+ * {@link resolvePresetValues} as a hook.
105
+ *
106
+ * ```tsx
107
+ * const { fontFamily, fontSize } = usePresetValues('s3');
108
+ * ```
109
+ */
110
+ declare function usePresetValues(preset: string, options?: ResolveTokenOptions): ResolvedPreset;
111
+ //#endregion
112
+ export { ResolveTokenOptions, ResolvedPreset, resolvePresetValues, resolveTokenValue, resolveTokenValues, usePresetValues, useTokenValue, useTokenValues };
113
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1,403 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
+ import { useLayoutEffect as useLayoutEffect$1 } from "../utils/react/useLayoutEffect.js";
3
+ import { warn } from "../utils/warnings.js";
4
+ import { getPaletteVersion, usePaletteVersion } from "./palette-config.js";
5
+ import { getTokens } from "./all-tokens.js";
6
+ import { useState, useSyncExternalStore } from "react";
7
+
8
+ //#region src/tokens/resolve.ts
9
+ /**
10
+ * Resolving a design token to a literal value, for consumers that render into a
11
+ * surface our stylesheets do not reach — a third-party iframe (Stripe Elements),
12
+ * a CodeMirror / Monaco theme object, a Vega spec. Those take colors, lengths and
13
+ * font descriptors as values; `var(--purple-color)` means nothing to them.
14
+ *
15
+ * Doing it by hand fails silently, because a token read from the wrong element
16
+ * does not come back empty. Tasty registers `@property` rules — its own defaults
17
+ * plus one for every custom property whose type it can infer — and an undeclared
18
+ * token reads back as that rule's `initial-value`. Some of those are obvious
19
+ * duds (`rgba(0, 0, 0, 0)` for a `<color>`, `0px` for a `<length>`), but many are
20
+ * ordinary-looking values: off the token block `--gap` reads `4px` rather than
21
+ * the kit's `8px`, `--transition` reads `80ms`, `--radius` reads `6px`. So
22
+ * inspecting the value cannot tell a real token from a miss, in either
23
+ * direction — `#clear` really is `transparent` and `$h2-letter-spacing` really
24
+ * is `0px`.
25
+ *
26
+ * The question that CAN be answered is "are the kit's tokens in effect on this
27
+ * element?", and `$tokens-applied` (see `src/tokens/base.ts`) answers it: it is
28
+ * declared alongside the tokens, so it is present exactly where they are. Off
29
+ * that surface every read is reported as unresolved; on it, the computed value
30
+ * is the truth.
31
+ */
32
+ /**
33
+ * Declared by the token block and nothing else — see `src/tokens/base.ts`.
34
+ *
35
+ * Matched by VALUE rather than by presence, because presence is not the signal
36
+ * it looks like: tasty infers a type for the marker as readily as for any other
37
+ * token, registers `@property --tokens-applied` with `initial-value: 0`, and so
38
+ * hands back `0` off the block instead of an empty string. Comparing against the
39
+ * declared value is right either way, and cannot drift from `base.ts`.
40
+ */
41
+ const SURFACE_MARKER = "$tokens-applied";
42
+ function isTokenSurface(computed) {
43
+ const declared = getTokens()[SURFACE_MARKER];
44
+ const name = tokenToProperty(SURFACE_MARKER);
45
+ if (typeof declared !== "string" || !name) return false;
46
+ return normalizeValue(computed.getPropertyValue(name)) === normalizeValue(declared);
47
+ }
48
+ /**
49
+ * Values that mean "this property was never declared" once we already know the
50
+ * token block IS in effect. Only used to catch a token the kit does not declare
51
+ * at all — a typo, or a name from another design system — since for those there
52
+ * is no marker to lean on.
53
+ */
54
+ const PLACEHOLDER_VALUES = new Set([
55
+ "transparent",
56
+ "rgba(0,0,0,0)",
57
+ "0",
58
+ "0px",
59
+ "0deg",
60
+ "0s"
61
+ ]);
62
+ /** Custom property names are CSS identifiers: a letter or `_`, then word chars or `-`. */
63
+ const PROPERTY_NAME_RE = /^[a-zA-Z_][\w-]*$/;
64
+ const PRESET_FIELD_SUFFIXES = {
65
+ fontFamily: "font-family",
66
+ fontSize: "font-size",
67
+ fontStyle: "font-style",
68
+ fontWeight: "font-weight",
69
+ lineHeight: "line-height",
70
+ letterSpacing: "letter-spacing",
71
+ textTransform: "text-transform",
72
+ boldFontWeight: "bold-font-weight",
73
+ iconSize: "icon-size"
74
+ };
75
+ const PRESET_FIELDS = Object.keys(PRESET_FIELD_SUFFIXES);
76
+ /**
77
+ * Map a token to its CSS custom property name, using the same convention tasty's
78
+ * style DSL does: `#name` is a color (`--name-color`), `$name` is everything else
79
+ * (`--name`). A raw `--name` or a bare `name` is taken as written.
80
+ *
81
+ * Returns `null` for anything that would not be a valid custom property.
82
+ */
83
+ function tokenToProperty(token) {
84
+ const trimmed = token.trim();
85
+ let name;
86
+ if (trimmed.startsWith("--")) name = trimmed.slice(2);
87
+ else if (trimmed.startsWith("#")) name = `${trimmed.slice(1)}-color`;
88
+ else if (trimmed.startsWith("$")) name = trimmed.slice(1);
89
+ else name = trimmed;
90
+ return PROPERTY_NAME_RE.test(name) ? `--${name}` : null;
91
+ }
92
+ /** Whitespace and case are not meaningful in the values we compare against. */
93
+ function normalizeValue(value) {
94
+ return value.replace(/\s+/g, "").toLowerCase();
95
+ }
96
+ /**
97
+ * Every custom property the kit declares, by name. Membership only — the value
98
+ * is deliberately not consulted, because a token's declared value tells you
99
+ * nothing about whether it is in effect where you read it.
100
+ *
101
+ * Memoized against the palette version, like {@link getTokens} itself.
102
+ */
103
+ let knownNamesCache = null;
104
+ function getKnownTokenNames() {
105
+ const version = getPaletteVersion();
106
+ if (!knownNamesCache || knownNamesCache.version !== version) {
107
+ const names = /* @__PURE__ */ new Set();
108
+ for (const key of Object.keys(getTokens())) {
109
+ const name = tokenToProperty(key);
110
+ if (name) names.add(name);
111
+ }
112
+ knownNamesCache = {
113
+ version,
114
+ names
115
+ };
116
+ }
117
+ return knownNamesCache.names;
118
+ }
119
+ /** These fire per token, per page — once each, not once per render. */
120
+ const warnedTokens = /* @__PURE__ */ new Set();
121
+ function warnOnce(key, message) {
122
+ if (warnedTokens.has(key)) return;
123
+ warnedTokens.add(key);
124
+ warn(message);
125
+ }
126
+ /** The document `<body>` is where `<Root>` declares the token block. */
127
+ function resolveTarget(element) {
128
+ if (element) return element;
129
+ if (typeof document === "undefined") return null;
130
+ return document.body ?? document.documentElement ?? null;
131
+ }
132
+ function readValue(computed, token, fallback, silent, onTokenSurface) {
133
+ const name = tokenToProperty(token);
134
+ if (!name) {
135
+ warnOnce(`name:${token}`, `"${token}" is not a valid design token name.`);
136
+ return fallback;
137
+ }
138
+ if (!onTokenSurface) {
139
+ if (!silent) warnOnce(`surface:${name}`, `Token "${token}" (${name}) was read from an element the design tokens are not in effect on, so any value there is tasty's @property default rather than the kit's. <Root> declares the token block on <body>, so <html>, a detached node, and a tree that has not mounted <Root> yet are all outside it. Pass \`element\` to read from a specific subtree, or \`fallback\` for a value to use instead.`);
140
+ return fallback;
141
+ }
142
+ const value = computed.getPropertyValue(name).trim();
143
+ if (!value) return fallback;
144
+ if (PLACEHOLDER_VALUES.has(normalizeValue(value)) && !getKnownTokenNames().has(name)) {
145
+ if (!silent) warnOnce(`unknown:${name}`, `Token "${token}" (${name}) is not declared by the kit, and read back as an unset custom property. Check the name, or pass \`fallback\`.`);
146
+ return fallback;
147
+ }
148
+ return value;
149
+ }
150
+ /**
151
+ * Read the resolved value of one design token — a color, a length, a font
152
+ * descriptor — as a literal string.
153
+ *
154
+ * ```ts
155
+ * resolveTokenValue('#purple'); // 'oklch(0.52 0.24 285)'
156
+ * resolveTokenValue('$space-md'); // '8px'
157
+ * resolveTokenValue('$t3-font-size'); // '14px'
158
+ * ```
159
+ *
160
+ * Returns `options.fallback ?? null` when the token is not declared on the
161
+ * element it was read from — see {@link ResolveTokenOptions}.
162
+ */
163
+ function resolveTokenValue(token, options = {}) {
164
+ return resolveTokenValues([token], options)[token];
165
+ }
166
+ /**
167
+ * {@link resolveTokenValue} for several tokens at once, through a single
168
+ * `getComputedStyle` call. Prefer this when building a theme object — a Stripe
169
+ * `Appearance`, a CodeMirror theme — which needs a dozen values at a time.
170
+ *
171
+ * ```ts
172
+ * const { '#surface': background, '#surface-text': color } = resolveTokenValues([
173
+ * '#surface',
174
+ * '#surface-text',
175
+ * ]);
176
+ * ```
177
+ */
178
+ function resolveTokenValues(tokens, options = {}) {
179
+ return readTokens(tokens, options, false);
180
+ }
181
+ /** Shared by the public reader and the preset reader, which suppresses warnings. */
182
+ function readTokens(tokens, options, silent) {
183
+ const { element, fallback = null } = options;
184
+ const result = {};
185
+ const target = resolveTarget(element);
186
+ const view = target?.ownerDocument?.defaultView;
187
+ if (!target || !view) {
188
+ for (const token of tokens) result[token] = fallback;
189
+ return result;
190
+ }
191
+ const computed = view.getComputedStyle(target);
192
+ const onTokenSurface = isTokenSurface(computed);
193
+ for (const token of tokens) result[token] = readValue(computed, token, fallback, silent, onTokenSurface);
194
+ return result;
195
+ }
196
+ /**
197
+ * Resolve a typography preset — `'t3'`, `'h2'`, `'s3'` — to the literal font
198
+ * descriptors behind it, for a surface that takes a font as values rather than
199
+ * as a `preset` style.
200
+ *
201
+ * ```ts
202
+ * const { fontFamily, fontSize, lineHeight } = resolvePresetValues('t3');
203
+ * ```
204
+ *
205
+ * A preset legitimately leaves most of these unset — only headings carry an
206
+ * `iconSize`, only the `s*` family names a `fontFamily` — so unlike
207
+ * {@link resolveTokenValues} a miss here is expected and never warns.
208
+ */
209
+ function resolvePresetValues(preset, options = {}) {
210
+ const { fallback = null } = options;
211
+ const names = PRESET_FIELDS.map((field) => `$${preset}-${PRESET_FIELD_SUFFIXES[field]}`);
212
+ const values = readTokens([...names, "--font-sans"], { element: options.element }, true);
213
+ const resolved = {};
214
+ PRESET_FIELDS.forEach((field, index) => {
215
+ resolved[field] = values[names[index]] ?? fallback;
216
+ });
217
+ resolved.fontFamily = values[names[PRESET_FIELDS.indexOf("fontFamily")]] ?? values["--font-sans"] ?? fallback;
218
+ return resolved;
219
+ }
220
+ /**
221
+ * A token's resolved value changes for two reasons: the palette was re-seeded
222
+ * (`setPaletteConfig()`, covered by `usePaletteVersion`), or the scheme /
223
+ * contrast tier flipped. This store covers the second.
224
+ *
225
+ * Both axes are the ones `@dark` and `@hc` resolve against (see
226
+ * `src/components/Root.tsx`): the `data-schema` / `data-contrast` attributes on
227
+ * `<html>`, and the `prefers-color-scheme` / `prefers-contrast` media queries
228
+ * they fall back to. An attribute flip is invisible to `matchMedia` and a system
229
+ * flip is invisible to a `MutationObserver`, so both are watched.
230
+ */
231
+ const APPEARANCE_QUERIES = ["(prefers-color-scheme: dark)", "(prefers-contrast: more)"];
232
+ const APPEARANCE_ATTRIBUTES = ["data-schema", "data-contrast"];
233
+ let appearanceVersion = 0;
234
+ let stopWatchingAppearance = null;
235
+ const appearanceListeners = /* @__PURE__ */ new Set();
236
+ function onAppearanceChange() {
237
+ appearanceVersion++;
238
+ appearanceListeners.forEach((listener) => listener());
239
+ }
240
+ function watchAppearance() {
241
+ const teardowns = [];
242
+ if (typeof window.matchMedia === "function") for (const query of APPEARANCE_QUERIES) {
243
+ const list = window.matchMedia(query);
244
+ if (typeof list?.addEventListener !== "function") continue;
245
+ list.addEventListener("change", onAppearanceChange);
246
+ teardowns.push(() => list.removeEventListener("change", onAppearanceChange));
247
+ }
248
+ if (typeof MutationObserver === "function" && document.documentElement) {
249
+ const observer = new MutationObserver(onAppearanceChange);
250
+ observer.observe(document.documentElement, {
251
+ attributes: true,
252
+ attributeFilter: APPEARANCE_ATTRIBUTES
253
+ });
254
+ teardowns.push(() => observer.disconnect());
255
+ }
256
+ return () => teardowns.forEach((teardown) => teardown());
257
+ }
258
+ function subscribeAppearance(listener) {
259
+ appearanceListeners.add(listener);
260
+ if (appearanceListeners.size === 1 && typeof window !== "undefined") stopWatchingAppearance = watchAppearance();
261
+ return () => {
262
+ appearanceListeners.delete(listener);
263
+ if (!appearanceListeners.size) {
264
+ stopWatchingAppearance?.();
265
+ stopWatchingAppearance = null;
266
+ }
267
+ };
268
+ }
269
+ function getAppearanceVersion() {
270
+ return appearanceVersion;
271
+ }
272
+ /**
273
+ * A version React only ever hands out while rendering on the server or
274
+ * hydrating: `useSyncExternalStore` reads `getServerSnapshot` in exactly those
275
+ * two cases and `getSnapshot` in every other. That makes it a reliable "this
276
+ * render has to match the server's markup" flag — see {@link useResolvedTokens}.
277
+ *
278
+ * A plain client render (`createRoot`) never sees it, so a CSR app still
279
+ * resolves on its first render rather than paying an extra pass.
280
+ */
281
+ const HYDRATING = -1;
282
+ function getServerAppearanceVersion() {
283
+ return HYDRATING;
284
+ }
285
+ /**
286
+ * Re-render on a scheme / contrast change. Returns the version rather than the
287
+ * state so the snapshot is a primitive — the same reason `usePaletteVersion`
288
+ * does, see `src/tokens/palette-config.ts`.
289
+ */
290
+ function useAppearanceVersion() {
291
+ return useSyncExternalStore(subscribeAppearance, getAppearanceVersion, getServerAppearanceVersion);
292
+ }
293
+ /**
294
+ * The value is read out of the DOM, so it re-resolves whenever the palette is
295
+ * re-seeded or the scheme / contrast tier flips, and it is `fallback ?? null`
296
+ * during SSR. The layout effect is what covers the first commit: a consumer
297
+ * rendered in the same pass as `<Root>` reads before the token block lands.
298
+ */
299
+ function useResolvedTokens(tokens, key, options) {
300
+ const { element, fallback } = options;
301
+ const paletteVersion = usePaletteVersion();
302
+ const appearance = useAppearanceVersion();
303
+ const [values, setValues] = useState(() => appearance === HYDRATING ? unresolved(tokens, fallback) : resolveTokenValues(tokens, options));
304
+ useLayoutEffect$1(() => {
305
+ setValues((previous) => {
306
+ const next = resolveTokenValues(tokens, {
307
+ element,
308
+ fallback
309
+ });
310
+ return isSameRecord(previous, next) ? previous : next;
311
+ });
312
+ }, [
313
+ key,
314
+ element,
315
+ fallback,
316
+ paletteVersion,
317
+ appearance
318
+ ]);
319
+ return values;
320
+ }
321
+ /**
322
+ * What the server rendered: no DOM, so every token is the fallback. The first
323
+ * client render has to agree with it or hydration reports a mismatch for any
324
+ * consumer that renders the value; the layout effect above replaces it with the
325
+ * resolved values before the browser paints.
326
+ */
327
+ function unresolved(tokens, fallback) {
328
+ const result = {};
329
+ for (const token of tokens) result[token] = fallback ?? null;
330
+ return result;
331
+ }
332
+ /** Keeps the previous object when nothing moved, so it stays usable as a dep. */
333
+ function isSameRecord(a, b) {
334
+ const keys = Object.keys(b);
335
+ if (Object.keys(a).length !== keys.length) return false;
336
+ return keys.every((key) => a[key] === b[key]);
337
+ }
338
+ /**
339
+ * {@link resolveTokenValue} as a hook: re-renders when the palette is re-seeded
340
+ * or the scheme / contrast tier flips.
341
+ *
342
+ * ```tsx
343
+ * const accent = useTokenValue('#purple');
344
+ *
345
+ * return <Chart series={{ color: accent ?? '#000' }} />;
346
+ * ```
347
+ */
348
+ function useTokenValue(token, options = {}) {
349
+ return useResolvedTokens([token], token, options)[token];
350
+ }
351
+ /**
352
+ * {@link resolveTokenValues} as a hook. The returned object keeps its identity
353
+ * while the values are unchanged, so it is safe as a dependency of the theme
354
+ * object built from it — and the token list may be an inline literal.
355
+ *
356
+ * ```tsx
357
+ * const colors = useTokenValues(['#surface', '#surface-text', '#border']);
358
+ *
359
+ * const appearance = useMemo(() => toStripeAppearance(colors), [colors]);
360
+ * ```
361
+ */
362
+ function useTokenValues(tokens, options = {}) {
363
+ return useResolvedTokens(tokens, tokens.join(" "), options);
364
+ }
365
+ /**
366
+ * {@link resolvePresetValues} as a hook.
367
+ *
368
+ * ```tsx
369
+ * const { fontFamily, fontSize } = usePresetValues('s3');
370
+ * ```
371
+ */
372
+ function usePresetValues(preset, options = {}) {
373
+ const { element, fallback } = options;
374
+ const paletteVersion = usePaletteVersion();
375
+ const appearance = useAppearanceVersion();
376
+ const [values, setValues] = useState(() => appearance === HYDRATING ? unresolvedPreset(fallback) : resolvePresetValues(preset, options));
377
+ useLayoutEffect$1(() => {
378
+ setValues((previous) => {
379
+ const next = resolvePresetValues(preset, {
380
+ element,
381
+ fallback
382
+ });
383
+ return isSameRecord(previous, next) ? previous : next;
384
+ });
385
+ }, [
386
+ preset,
387
+ element,
388
+ fallback,
389
+ paletteVersion,
390
+ appearance
391
+ ]);
392
+ return values;
393
+ }
394
+ /** {@link unresolved} for the fixed shape {@link resolvePresetValues} returns. */
395
+ function unresolvedPreset(fallback) {
396
+ const resolved = {};
397
+ for (const field of PRESET_FIELDS) resolved[field] = fallback ?? null;
398
+ return resolved;
399
+ }
400
+
401
+ //#endregion
402
+ export { resolvePresetValues, resolveTokenValue, resolveTokenValues, usePresetValues, useTokenValue, useTokenValues };
403
+ //# sourceMappingURL=resolve.js.map