@cube-dev/ui-kit 0.0.0-canary-2ef7bcb → 0.0.0-canary-daad5bf

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 (649) hide show
  1. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  2. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  3. package/dist/_internal/hooks/use-event.js +1 -1
  4. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  5. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  6. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  7. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  8. package/dist/_internal/hooks/use-warn.js +1 -1
  9. package/dist/components/Block.js +1 -1
  10. package/dist/components/CollectionItem.js +1 -1
  11. package/dist/components/GlobalStyles.js +1 -1
  12. package/dist/components/GridProvider.js +1 -1
  13. package/dist/components/HiddenInput.js +1 -1
  14. package/dist/components/Root.js +1 -1
  15. package/dist/components/actions/Action/Action.js +1 -1
  16. package/dist/components/actions/Banner/Banner.js +1 -1
  17. package/dist/components/actions/Button/Button.js +1 -1
  18. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  19. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  20. package/dist/components/actions/ButtonSplit/context.js +1 -1
  21. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  22. package/dist/components/actions/CommandMenu/styled.js +1 -1
  23. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  24. package/dist/components/actions/ItemActionContext.js +1 -1
  25. package/dist/components/actions/ItemActionsWrapper.js +206 -0
  26. package/dist/components/actions/ItemActionsWrapper.js.map +1 -0
  27. package/dist/components/actions/ItemButton/ItemButton.d.ts +6 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +26 -144
  29. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.js +4 -4
  60. package/dist/components/content/Item/Item.js.map +1 -1
  61. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  62. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  63. package/dist/components/content/Layout/GridLayout.js +1 -1
  64. package/dist/components/content/Layout/Layout.js +1 -1
  65. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  66. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  67. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  68. package/dist/components/content/Layout/LayoutContent.js +1 -1
  69. package/dist/components/content/Layout/LayoutContext.js +1 -1
  70. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  71. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  72. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  73. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutPane.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  78. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  79. package/dist/components/content/Layout/index.js +1 -1
  80. package/dist/components/content/Layout/utils.js +1 -1
  81. package/dist/components/content/Paragraph.js +1 -1
  82. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  83. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  84. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  85. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  86. package/dist/components/content/Result/Result.js +1 -1
  87. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  88. package/dist/components/content/Tag/Tag.js +1 -1
  89. package/dist/components/content/Text.js +1 -1
  90. package/dist/components/content/TextItem/TextItem.js +1 -1
  91. package/dist/components/content/Title.js +1 -1
  92. package/dist/components/content/Tree/Tree.js +1 -1
  93. package/dist/components/content/Tree/TreeNode.js +1 -1
  94. package/dist/components/content/Tree/styled.js +1 -1
  95. package/dist/components/content/Tree/tree-index.js +1 -1
  96. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  97. package/dist/components/content/Tree/use-load-data.js +1 -1
  98. package/dist/components/content/highlightText.js +1 -1
  99. package/dist/components/content/use-auto-tooltip.js +1 -1
  100. package/dist/components/data/DataTable/DataTable.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  106. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  107. package/dist/components/data/TableBase/RowCollection.js +1 -1
  108. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  109. package/dist/components/data/TableBase/TableRow.js +1 -1
  110. package/dist/components/data/TableBase/TableView.js +1 -1
  111. package/dist/components/data/TableBase/column-menu.js +1 -1
  112. package/dist/components/data/TableBase/column-tint.js +1 -1
  113. package/dist/components/data/TableBase/row-menu.js +1 -1
  114. package/dist/components/data/TableBase/styled.js +1 -1
  115. package/dist/components/data/TableBase/table-tree.js +1 -1
  116. package/dist/components/data/TableBase/types.js +1 -1
  117. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  118. package/dist/components/data/TableBase/use-column-order.js +1 -1
  119. package/dist/components/data/TableBase/use-container-width.js +1 -1
  120. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  121. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  122. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  123. package/dist/components/data/TableBase/use-table-search.js +1 -1
  124. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  125. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  126. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  127. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  128. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  129. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  130. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  131. package/dist/components/fields/Checkbox/context.js +1 -1
  132. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  133. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  134. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  135. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  136. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  137. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  138. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  139. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  140. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  141. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  142. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  143. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  144. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  145. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  146. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  147. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  148. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  149. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  150. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  151. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  152. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  153. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  154. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  155. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  156. package/dist/components/fields/DatePicker/period.js +1 -1
  157. package/dist/components/fields/DatePicker/props.js +1 -1
  158. package/dist/components/fields/DatePicker/utils.js +1 -1
  159. package/dist/components/fields/FileInput/FileInput.js +1 -1
  160. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  161. package/dist/components/fields/FilterPicker/FilterPicker.js +19 -26
  162. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  163. package/dist/components/fields/Input/Input.js +1 -1
  164. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  165. package/dist/components/fields/ListBox/ListBox.js +1 -1
  166. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  167. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  168. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  169. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  170. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  171. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  172. package/dist/components/fields/Picker/Picker.js +19 -26
  173. package/dist/components/fields/Picker/Picker.js.map +1 -1
  174. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  175. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  176. package/dist/components/fields/RadioGroup/context.js +1 -1
  177. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  178. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  179. package/dist/components/fields/Select/Select.js +52 -55
  180. package/dist/components/fields/Select/Select.js.map +1 -1
  181. package/dist/components/fields/Slider/Gradation.js +1 -1
  182. package/dist/components/fields/Slider/HueSlider.js +1 -1
  183. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  184. package/dist/components/fields/Slider/Slider.js +1 -1
  185. package/dist/components/fields/Slider/SliderBase.js +1 -1
  186. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  187. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  188. package/dist/components/fields/Slider/elements.js +1 -1
  189. package/dist/components/fields/Slider/index.js +1 -1
  190. package/dist/components/fields/Switch/Switch.js +1 -1
  191. package/dist/components/fields/TextArea/TextArea.js +1 -1
  192. package/dist/components/fields/TextInput/TextInput.js +1 -1
  193. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  194. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  195. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  196. package/dist/components/fields/TriggerActions.js +13 -54
  197. package/dist/components/fields/TriggerActions.js.map +1 -1
  198. package/dist/components/fields/color/ColorPanel.js +1 -1
  199. package/dist/components/fields/color/channels.js +1 -1
  200. package/dist/components/fields/color/color.js +1 -1
  201. package/dist/components/fields/color/context.js +1 -1
  202. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  203. package/dist/components/form/Form/Field.js +1 -1
  204. package/dist/components/form/Form/Form.js +1 -1
  205. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  206. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  207. package/dist/components/form/Form/SubmitError.js +1 -1
  208. package/dist/components/form/Form/index.js +1 -1
  209. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  210. package/dist/components/form/Form/use-field/use-field.js +1 -1
  211. package/dist/components/form/Form/use-form.js +5 -5
  212. package/dist/components/form/Form/use-form.js.map +1 -1
  213. package/dist/components/form/Form/validation.js +1 -1
  214. package/dist/components/form/Label.js +1 -1
  215. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  216. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  217. package/dist/components/form/validation/use-validation-props.js +1 -1
  218. package/dist/components/form/wrapper.js +1 -1
  219. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  220. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  221. package/dist/components/layout/Board/Board.js +1 -1
  222. package/dist/components/layout/Board/BoardProvider.js +1 -1
  223. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  224. package/dist/components/layout/Board/Widget.js +1 -1
  225. package/dist/components/layout/Board/WidgetHost.js +1 -1
  226. package/dist/components/layout/Board/board-context.js +1 -1
  227. package/dist/components/layout/Board/board-store.js +1 -1
  228. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  229. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  230. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  231. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  232. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  233. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  234. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  235. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  236. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  237. package/dist/components/layout/Board/index.js +1 -1
  238. package/dist/components/layout/Board/responsive-utils.js +1 -1
  239. package/dist/components/layout/Board/use-board-layout.js +1 -1
  240. package/dist/components/layout/Board/use-board-registry.js +1 -1
  241. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  242. package/dist/components/layout/Board/use-board-selection.js +1 -1
  243. package/dist/components/layout/Flex.js +1 -1
  244. package/dist/components/layout/Flow.js +1 -1
  245. package/dist/components/layout/Grid.js +1 -1
  246. package/dist/components/layout/Panel.js +1 -1
  247. package/dist/components/layout/Prefix.js +1 -1
  248. package/dist/components/layout/ResizablePanel.js +1 -1
  249. package/dist/components/layout/Space.js +1 -1
  250. package/dist/components/layout/Suffix.js +1 -1
  251. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  252. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  253. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  254. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  255. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  256. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  257. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  258. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  259. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  260. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  261. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  262. package/dist/components/navigation/Tabs/styled.js +1 -1
  263. package/dist/components/navigation/Tabs/types.js +1 -1
  264. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  265. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  266. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  267. package/dist/components/other/Calendar/Calendar.js +1 -1
  268. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  269. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  270. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  271. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  272. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  273. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  274. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  275. package/dist/components/other/Calendar/styled.js +1 -1
  276. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  277. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  278. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  279. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  280. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  281. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  282. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  283. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  284. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  285. package/dist/components/overlays/Dialog/context.js +1 -1
  286. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  287. package/dist/components/overlays/Modal/Modal.js +1 -1
  288. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  289. package/dist/components/overlays/Modal/Overlay.js +1 -1
  290. package/dist/components/overlays/Modal/Popover.js +1 -1
  291. package/dist/components/overlays/Modal/Tray.js +1 -1
  292. package/dist/components/overlays/Modal/Underlay.js +1 -1
  293. package/dist/components/overlays/Notifications/Notification.js +1 -1
  294. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  295. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  296. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  297. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  298. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  299. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  300. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  301. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  302. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  303. package/dist/components/overlays/Notifications/index.js +1 -1
  304. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  305. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  306. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  307. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  308. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  309. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  310. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  311. package/dist/components/overlays/Toast/index.js +1 -1
  312. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  313. package/dist/components/overlays/Toast/useToast.js +1 -1
  314. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  315. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  316. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  317. package/dist/components/overlays/Tooltip/context.js +1 -1
  318. package/dist/components/portal/Portal.js +1 -1
  319. package/dist/components/portal/PortalProvider.js +1 -1
  320. package/dist/components/portal/usePortal.js +1 -1
  321. package/dist/components/shared/DraggableCollection.js +1 -1
  322. package/dist/components/shared/InvalidIcon.js +1 -1
  323. package/dist/components/shared/ValidIcon.js +1 -1
  324. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  325. package/dist/components/status/Spin/Cube.js +1 -1
  326. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  327. package/dist/components/status/Spin/Spin.js +1 -1
  328. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  329. package/dist/data/item-themes.js +25 -6
  330. package/dist/data/item-themes.js.map +1 -1
  331. package/dist/data/themes.js +1 -1
  332. package/dist/eslint-plugin/defaults.generated.js +1 -1
  333. package/dist/eslint-plugin/index.js +1 -1
  334. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  335. package/dist/i18n/I18nProvider.js +1 -1
  336. package/dist/i18n/createFormatter.js +1 -1
  337. package/dist/i18n/index.js +1 -1
  338. package/dist/i18n/instance.js +1 -1
  339. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  340. package/dist/i18n/locales/en-US/uikit.js +1 -1
  341. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  342. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  343. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  344. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  345. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  346. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  347. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  348. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  349. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  350. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  351. package/dist/i18n/locales.js +1 -1
  352. package/dist/i18n/useFormatter.js +1 -1
  353. package/dist/i18n/useI18n.js +1 -1
  354. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  355. package/dist/icons/AdjustmentsIcon.js +1 -1
  356. package/dist/icons/AiIcon.js +1 -1
  357. package/dist/icons/AreaChartIcon.js +1 -1
  358. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  359. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  360. package/dist/icons/BackwardIcon.js +1 -1
  361. package/dist/icons/BarChartIcon.js +1 -1
  362. package/dist/icons/BellFilledIcon.js +1 -1
  363. package/dist/icons/BellIcon.js +1 -1
  364. package/dist/icons/BooleanIcon.js +1 -1
  365. package/dist/icons/CalendarEditIcon.js +1 -1
  366. package/dist/icons/CalendarIcon.js +1 -1
  367. package/dist/icons/CaretDownIcon.js +1 -1
  368. package/dist/icons/CaretUpIcon.js +1 -1
  369. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  370. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  371. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  372. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  373. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  374. package/dist/icons/ChartBarLineIcon.js +1 -1
  375. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  376. package/dist/icons/ChartBarStackedIcon.js +1 -1
  377. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  378. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  379. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  380. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  381. package/dist/icons/ChartBubbleIcon.js +1 -1
  382. package/dist/icons/ChartDonut2Icon.js +1 -1
  383. package/dist/icons/ChartFunnelIcon.js +1 -1
  384. package/dist/icons/ChartHeatmapIcon.js +1 -1
  385. package/dist/icons/ChartKPIIcon.js +1 -1
  386. package/dist/icons/ChartPie2Icon.js +1 -1
  387. package/dist/icons/ChartScatterIcon.js +1 -1
  388. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  389. package/dist/icons/CheckCircleIcon.js +1 -1
  390. package/dist/icons/CheckIcon.js +1 -1
  391. package/dist/icons/CircleFilledIcon.js +1 -1
  392. package/dist/icons/ClearIcon.js +1 -1
  393. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  394. package/dist/icons/CloseCircleIcon.js +1 -1
  395. package/dist/icons/CloseIcon.js +1 -1
  396. package/dist/icons/CodeIcon.js +1 -1
  397. package/dist/icons/ColumnTotalIcon.js +1 -1
  398. package/dist/icons/CopyIcon.js +1 -1
  399. package/dist/icons/CountIcon.js +1 -1
  400. package/dist/icons/CubeIcon.js +1 -1
  401. package/dist/icons/CubePauseIcon.js +1 -1
  402. package/dist/icons/CubePlayIcon.js +1 -1
  403. package/dist/icons/CurrencyDollarIcon.js +1 -1
  404. package/dist/icons/DangerIcon.js +1 -1
  405. package/dist/icons/DashboardIcon.js +1 -1
  406. package/dist/icons/DatabaseIcon.js +1 -1
  407. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  408. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  409. package/dist/icons/DirectionIcon.js +1 -1
  410. package/dist/icons/DonutIcon.js +1 -1
  411. package/dist/icons/DownIcon.js +1 -1
  412. package/dist/icons/EditIcon.js +1 -1
  413. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  414. package/dist/icons/ExclamationCircleIcon.js +1 -1
  415. package/dist/icons/ExclamationIcon.js +1 -1
  416. package/dist/icons/EyeIcon.js +1 -1
  417. package/dist/icons/EyeInvisibleIcon.js +1 -1
  418. package/dist/icons/FilterIcon.js +1 -1
  419. package/dist/icons/FolderFilledIcon.js +1 -1
  420. package/dist/icons/FolderIcon.js +1 -1
  421. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  422. package/dist/icons/FolderOpenIcon.js +1 -1
  423. package/dist/icons/ForwardIcon.js +1 -1
  424. package/dist/icons/GripVerticalIcon.js +1 -1
  425. package/dist/icons/HierarchyIcon.js +1 -1
  426. package/dist/icons/HierarchyOpenIcon.js +1 -1
  427. package/dist/icons/Icon.js +1 -1
  428. package/dist/icons/InfoCircleIcon.js +1 -1
  429. package/dist/icons/InfoIcon.js +1 -1
  430. package/dist/icons/KeyIcon.js +1 -1
  431. package/dist/icons/LeftIcon.js +1 -1
  432. package/dist/icons/LineChartIcon.js +1 -1
  433. package/dist/icons/LoadingIcon.js +1 -1
  434. package/dist/icons/LockFilledIcon.js +1 -1
  435. package/dist/icons/LockIcon.js +1 -1
  436. package/dist/icons/MoreIcon.js +1 -1
  437. package/dist/icons/NotAllowedIcon.js +1 -1
  438. package/dist/icons/Number123Icon.js +1 -1
  439. package/dist/icons/NumberIcon.js +1 -1
  440. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  441. package/dist/icons/PauseCircleIcon.js +1 -1
  442. package/dist/icons/PauseIcon.js +1 -1
  443. package/dist/icons/PercentageIcon.js +1 -1
  444. package/dist/icons/PieChartIcon.js +1 -1
  445. package/dist/icons/PipetteIcon.js +1 -1
  446. package/dist/icons/PlayCircleIcon.js +1 -1
  447. package/dist/icons/PlayIcon.js +1 -1
  448. package/dist/icons/PlusIcon.js +1 -1
  449. package/dist/icons/ProgressBarIcon.js +1 -1
  450. package/dist/icons/ReloadIcon.js +1 -1
  451. package/dist/icons/ReportIcon.js +1 -1
  452. package/dist/icons/ReturnIcon.js +1 -1
  453. package/dist/icons/RightIcon.js +1 -1
  454. package/dist/icons/RowTotalsIcon.js +1 -1
  455. package/dist/icons/SchemeIcon.js +1 -1
  456. package/dist/icons/SearchIcon.js +1 -1
  457. package/dist/icons/SemanticQueryIcon.js +1 -1
  458. package/dist/icons/SettingsIcon.js +1 -1
  459. package/dist/icons/ShieldFilledIcon.js +1 -1
  460. package/dist/icons/ShieldIcon.js +1 -1
  461. package/dist/icons/SlashIcon.js +1 -1
  462. package/dist/icons/SparklesIcon.js +1 -1
  463. package/dist/icons/SqlIcon.js +1 -1
  464. package/dist/icons/StatsIcon.js +1 -1
  465. package/dist/icons/StopIcon.js +1 -1
  466. package/dist/icons/StringIcon.js +1 -1
  467. package/dist/icons/SubtotalsIcon.js +1 -1
  468. package/dist/icons/SwitchIcon.js +1 -1
  469. package/dist/icons/TableIcon.js +1 -1
  470. package/dist/icons/ThumbsDownIcon.js +1 -1
  471. package/dist/icons/ThumbsUpIcon.js +1 -1
  472. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  473. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  474. package/dist/icons/ThunderboltIcon.js +1 -1
  475. package/dist/icons/TimeIcon.js +1 -1
  476. package/dist/icons/TrashIcon.js +1 -1
  477. package/dist/icons/UnlockIcon.js +1 -1
  478. package/dist/icons/UpIcon.js +1 -1
  479. package/dist/icons/UserGroupIcon.js +1 -1
  480. package/dist/icons/UserIcon.js +1 -1
  481. package/dist/icons/UserLockIcon.js +1 -1
  482. package/dist/icons/ViewIcon.js +1 -1
  483. package/dist/icons/WarningFilledIcon.js +1 -1
  484. package/dist/icons/WarningIcon.js +1 -1
  485. package/dist/icons/wrap-icon.js +1 -1
  486. package/dist/index.js +1 -1
  487. package/dist/probe/canonicalize.js +1 -1
  488. package/dist/probe/css.js +1 -1
  489. package/dist/probe/index.js +1 -1
  490. package/dist/provider.js +1 -1
  491. package/dist/providers/TrackingProvider.js +1 -1
  492. package/dist/providers/navigationAdapter.default.js +1 -1
  493. package/dist/tokens/all-tokens.js +1 -1
  494. package/dist/tokens/base.js +1 -1
  495. package/dist/tokens/color-seed.js +1 -1
  496. package/dist/tokens/color-theme.js +1 -1
  497. package/dist/tokens/colors.js +1 -1
  498. package/dist/tokens/layout.js +1 -1
  499. package/dist/tokens/lazy-styles.js +1 -1
  500. package/dist/tokens/legacy-color.js +1 -1
  501. package/dist/tokens/palette-config.js +1 -1
  502. package/dist/tokens/palette.js +1 -1
  503. package/dist/tokens/resolve.js +1 -1
  504. package/dist/tokens/shadows.js +1 -1
  505. package/dist/tokens/sizes.js +1 -1
  506. package/dist/tokens/spacing.js +1 -1
  507. package/dist/tokens/typography.js +1 -1
  508. package/dist/utils/ResizeSensor.js +1 -1
  509. package/dist/utils/colors.js +1 -1
  510. package/dist/utils/is-dev-env.js +1 -1
  511. package/dist/utils/modules.js +1 -1
  512. package/dist/utils/promise.js +1 -1
  513. package/dist/utils/raf.js +1 -1
  514. package/dist/utils/random.js +1 -1
  515. package/dist/utils/range.js +1 -1
  516. package/dist/utils/react/RenderCache.js +1 -1
  517. package/dist/utils/react/Slots.js +1 -1
  518. package/dist/utils/react/chain.js +1 -1
  519. package/dist/utils/react/disabledProps.js +1 -1
  520. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  521. package/dist/utils/react/index.js +1 -1
  522. package/dist/utils/react/interactions.js +1 -1
  523. package/dist/utils/react/isTextOnly.js +1 -1
  524. package/dist/utils/react/mapProps.js +1 -1
  525. package/dist/utils/react/mergeProps.js +1 -1
  526. package/dist/utils/react/nullableValue.js +1 -1
  527. package/dist/utils/react/resolveIcon.js +1 -1
  528. package/dist/utils/react/sharedStore.js +1 -1
  529. package/dist/utils/react/useBufferedValue.js +1 -1
  530. package/dist/utils/react/useCombinedRefs.js +1 -1
  531. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  532. package/dist/utils/react/useEventBus.js +1 -1
  533. package/dist/utils/react/useId.js +1 -1
  534. package/dist/utils/react/useIsDarwin.js +1 -1
  535. package/dist/utils/react/useKeySymbols.js +1 -1
  536. package/dist/utils/react/useLayoutEffect.js +1 -1
  537. package/dist/utils/react/useLocalStorage.js +1 -1
  538. package/dist/utils/react/useMergeStyles.js +1 -1
  539. package/dist/utils/react/usePopoverSync.js +1 -1
  540. package/dist/utils/react/useQaProps.js +1 -1
  541. package/dist/utils/react/useScheme.js +1 -1
  542. package/dist/utils/react/useViewportSize.js +1 -1
  543. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  544. package/dist/utils/selection.js +1 -1
  545. package/dist/utils/styles.js +1 -1
  546. package/dist/utils/tree.js +1 -1
  547. package/dist/utils/warnings.js +1 -1
  548. package/dist/version.js +3 -3
  549. package/docs/components/Block.md +3 -3
  550. package/docs/components/CollectionItem.md +3 -3
  551. package/docs/components/GridProvider.md +3 -3
  552. package/docs/components/Root.md +1 -1
  553. package/docs/components/actions/Action.md +3 -3
  554. package/docs/components/actions/Banner.md +3 -3
  555. package/docs/components/actions/Button.md +3 -3
  556. package/docs/components/actions/ButtonGroup.md +3 -3
  557. package/docs/components/actions/ButtonSplit.md +3 -3
  558. package/docs/components/actions/CommandMenu.md +3 -3
  559. package/docs/components/actions/ItemAction.md +1 -3
  560. package/docs/components/actions/ItemButton.md +13 -0
  561. package/docs/components/actions/Link.md +3 -3
  562. package/docs/components/actions/Menu.md +3 -3
  563. package/docs/components/actions/MenuTrigger.md +3 -3
  564. package/docs/components/actions/SubMenuTrigger.md +3 -3
  565. package/docs/components/actions/use-anchored-menu.md +3 -3
  566. package/docs/components/actions/use-context-menu.md +3 -3
  567. package/docs/components/content/ActiveZone.md +3 -3
  568. package/docs/components/content/Alert.md +3 -3
  569. package/docs/components/content/Avatar.md +3 -3
  570. package/docs/components/content/Card.md +3 -3
  571. package/docs/components/content/Content.md +3 -3
  572. package/docs/components/content/CopyPasteBlock.md +1 -1
  573. package/docs/components/content/CopySnippet.md +3 -3
  574. package/docs/components/content/Disclosure.md +3 -3
  575. package/docs/components/content/Divider.md +3 -3
  576. package/docs/components/content/Footer.md +3 -3
  577. package/docs/components/content/Header.md +3 -3
  578. package/docs/components/content/HotKeys.md +3 -3
  579. package/docs/components/content/InlineInput.md +3 -3
  580. package/docs/components/content/Item.md +3 -3
  581. package/docs/components/content/Layout.md +3 -3
  582. package/docs/components/content/Paragraph.md +3 -3
  583. package/docs/components/content/Placeholder.md +3 -3
  584. package/docs/components/content/Result.md +3 -3
  585. package/docs/components/content/Skeleton.md +3 -3
  586. package/docs/components/content/Title.md +3 -3
  587. package/docs/components/content/Tree.md +3 -3
  588. package/docs/components/data/DataTable.md +3 -3
  589. package/docs/components/data/ItemTable.md +3 -3
  590. package/docs/components/fields/Checkbox.md +3 -3
  591. package/docs/components/fields/ColorInput.md +3 -3
  592. package/docs/components/fields/ColorPicker.md +3 -3
  593. package/docs/components/fields/ColorSwatch.md +3 -3
  594. package/docs/components/fields/ColorSwatchGroup.md +3 -3
  595. package/docs/components/fields/ComboBox.md +3 -3
  596. package/docs/components/fields/CommandTextArea.md +3 -3
  597. package/docs/components/fields/DatePicker.md +3 -3
  598. package/docs/components/fields/FileInput.md +3 -3
  599. package/docs/components/fields/FilterListBox.md +3 -3
  600. package/docs/components/fields/FilterPicker.md +11 -3
  601. package/docs/components/fields/HueSlider.md +3 -3
  602. package/docs/components/fields/ListBox.md +3 -3
  603. package/docs/components/fields/NumberInput.md +3 -3
  604. package/docs/components/fields/PasswordInput.md +3 -3
  605. package/docs/components/fields/PeriodPicker.md +3 -3
  606. package/docs/components/fields/Picker.md +11 -3
  607. package/docs/components/fields/RadioGroup.md +3 -3
  608. package/docs/components/fields/SearchComboBox.md +3 -3
  609. package/docs/components/fields/SearchInput.md +3 -3
  610. package/docs/components/fields/Select.md +11 -3
  611. package/docs/components/fields/Slider.md +3 -3
  612. package/docs/components/fields/Switch.md +3 -3
  613. package/docs/components/fields/TextArea.md +3 -3
  614. package/docs/components/fields/TextInput.md +3 -3
  615. package/docs/components/fields/TextInputMapper.md +3 -3
  616. package/docs/components/form/Field.md +3 -3
  617. package/docs/components/form/Form.md +3 -3
  618. package/docs/components/layout/Board.md +3 -3
  619. package/docs/components/layout/Flex.md +3 -3
  620. package/docs/components/layout/Flow.md +3 -3
  621. package/docs/components/layout/Grid.md +3 -3
  622. package/docs/components/layout/Panel.md +3 -3
  623. package/docs/components/layout/Prefix.md +3 -3
  624. package/docs/components/layout/ResizablePanel.md +3 -3
  625. package/docs/components/layout/Space.md +3 -3
  626. package/docs/components/layout/Suffix.md +3 -3
  627. package/docs/components/navigation/Pagination.md +3 -3
  628. package/docs/components/navigation/Tabs.md +3 -3
  629. package/docs/components/organisms/StatsCard.md +3 -3
  630. package/docs/components/overlays/AlertDialog.md +3 -3
  631. package/docs/components/overlays/Dialog.md +2 -2
  632. package/docs/components/overlays/DialogContainer.md +2 -2
  633. package/docs/components/overlays/DialogForm.md +2 -2
  634. package/docs/components/overlays/DialogTrigger.md +2 -2
  635. package/docs/components/overlays/Tooltip.md +3 -3
  636. package/docs/components/overlays/TooltipProvider.md +3 -3
  637. package/docs/components/overlays/TooltipTrigger.md +3 -3
  638. package/docs/components/status/LoadingAnimation.md +3 -3
  639. package/docs/components/status/Spin.md +3 -3
  640. package/docs/tasty/ai-agents.md +3 -8
  641. package/docs/tasty/debug.md +5 -2
  642. package/docs/tasty/methodology.md +3 -3
  643. package/docs/tasty/pipeline.md +0 -3
  644. package/docs/tasty/runtime-benchmarks.md +68 -105
  645. package/docs/tasty/ssr.md +1 -1
  646. package/docs/tasty/styles.md +11 -43
  647. package/package.json +2 -2
  648. package/dist/utils/dotize.js +0 -50
  649. package/dist/utils/dotize.js.map +0 -1
@@ -122,10 +122,10 @@ Tasty exports predefined style prop lists that group properties by role. Use the
122
122
  | Preset | Properties | Typical use |
123
123
  | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------- |
124
124
  | `FLOW_STYLES` | flow, gap, columnGap, rowGap, align, justify, placeItems, placeContent, alignItems, alignContent, justifyItems, justifyContent, gridColumns, gridRows, gridTemplate, gridAreas | Layout containers (`Space`, `Grid`) |
125
- | `POSITION_STYLES` | gridArea, gridColumn, gridRow, order, placeSelf, alignSelf, justifySelf, zIndex, physical/logical margin, inset, scroll margin/padding, position | Positioned elements (`Button`, `Badge`) |
126
- | `DIMENSION_STYLES` | width, height, blockSize, inlineSize, flexBasis, flexGrow, flexShrink, flex | Sized elements |
125
+ | `POSITION_STYLES` | gridArea, gridColumn, gridRow, order, placeSelf, alignSelf, justifySelf, zIndex, margin, inset, position | Positioned elements (`Button`, `Badge`) |
126
+ | `DIMENSION_STYLES` | width, height, flexBasis, flexGrow, flexShrink, flex | Sized elements |
127
127
  | `COLOR_STYLES` | color, fill, fade, image | Color-customizable elements |
128
- | `BLOCK_STYLES` | padding, blockPadding, inlinePadding, overflow, scrollbar, textAlign, border, blockBorder, inlineBorder, radius, shadow, outline | Block-level containers |
128
+ | `BLOCK_STYLES` | padding, paddingInline, paddingBlock, overflow, scrollbar, textAlign, border, radius, shadow, outline | Block-level containers |
129
129
  | `CONTAINER_STYLES` | All of the above combined (+ BASE_STYLES) | Fully flexible containers |
130
130
  | `OUTER_STYLES` | POSITION_STYLES + DIMENSION_STYLES + block outer (border, radius, shadow, outline) | Components whose outer shell is customizable |
131
131
  | `INNER_STYLES` | BASE_STYLES + COLOR_STYLES + block inner (padding, overflow, scrollbar) + FLOW_STYLES | Components whose inner layout is customizable |
@@ -395,8 +395,6 @@ See the comment block in `exclusive.ts:500-523`: a default value whose higher-pr
395
395
 
396
396
  Computes the Cartesian product of all style entries for a handler, creating snapshots of which value each style has for each possible state combination.
397
397
 
398
- When every input is a direct value rather than a state map, the pipeline skips stages 0–4 and passes one unconditional snapshot directly to the handler. This avoids building exclusive entries and a Cartesian product for ordinary state-free styles.
399
-
400
398
  ### How It Works
401
399
 
402
400
  1. Collect exclusive entries for each style the handler uses
@@ -456,7 +454,6 @@ Style handlers encapsulate the logic for translating design tokens (like `'2x'`)
456
454
  ### What It Does
457
455
 
458
456
  Combines rules that have identical CSS output into a single rule with an OR condition.
459
- Zero- and one-rule inputs return unchanged because no merge is possible.
460
457
 
461
458
  ### How It Works
462
459
 
@@ -40,44 +40,27 @@ of elements, rules or interactions. Machine load, browser versions, and CPU
40
40
  power will move the results — on a loaded machine the absolute columns drift
41
41
  several percent while the raw/Tasty delta holds, so read the delta.
42
42
 
43
- **On a laptop, check the power state first.** Low Power Mode caps CPU frequency,
44
- and it is the single largest source of error here — larger than background load.
45
- Measured on the machine below, running on battery with Low Power Mode enabled
46
- made every one of the 53 Node cases slower, by a median of 26%, and halving the
47
- background load recovered only 3 points of that. A frequency cap scales every
48
- case by roughly the same factor, so it does not look like noise; it looks like a
49
- uniformly slower library. Verify before trusting a run:
50
-
51
- ```bash
52
- pmset -g ps | head -2 # want 'AC Power'
53
- pmset -g | grep -i lowpowermode # want 0
54
- ```
55
-
56
43
  ## Core Style Pipeline
57
44
 
58
- Single-call throughput, three consecutive runs on an Apple M3 Pro with Node
59
- 24.18.0 on AC power:
60
-
61
- | Operation | ops/sec | Latency (mean) |
62
- | ----------------------------------------------------------- | --------------------: | -------------: |
63
- | `renderStyles` — 5 flat properties (cold) | 143,000–158,000 | 6.3–7.0 us |
64
- | `renderStyles` — state map with media/hover/modifier (cold) | 31,000–36,000 | 28–32 us |
65
- | `renderStyles` — OR state map across contexts (cold) | 13,000–14,000 | 71–76 us |
66
- | `renderStyles` — same styles (cached) | 9,830,000–10,420,000 | ~0.10 us |
67
- | `parseStateKey` — simple key like `:hover` (cold) | 1,910,000–1,980,000 | ~0.50 us |
68
- | `parseStateKey` — value modifier key (cold) | 1,120,000–1,160,000 | ~0.90 us |
69
- | `parseStateKey` — complex OR/AND/NOT key (cold) | 341,000–357,000 | 2.8–2.9 us |
70
- | `parseStateKey` — any key (cached) | 4,900,000–16,530,000 | 0.10–0.20 us |
71
- | `parseStyle` — value tokens like `2x 4x` (cold) | 575,000–605,000 | ~1.7 us |
72
- | `parseStyle` — color tokens (cold) | 1,160,000–1,240,000 | 0.80–0.90 us |
73
- | `parseStyle` — layered functions (cold) | 175,000–184,000 | 5.4–5.7 us |
74
- | `parseStyle` — any value (cached) | 29,500,000–30,750,000 | ~0.03 us |
45
+ The following numbers are single-call throughput measured on an Apple M1 Max
46
+ with Node 22:
47
+
48
+ | Operation | ops/sec | Latency (mean) |
49
+ | ----------------------------------------------------------- | -------------------: | -------------: |
50
+ | `renderStyles` — 5 flat properties (cold) | ~60,000 | ~17 us |
51
+ | `renderStyles` — state map with media/hover/modifier (cold) | ~18,500 | ~54 us |
52
+ | `renderStyles` — same styles (cached) | ~5,800,000 | ~0.17 us |
53
+ | `parseStateKey` — simple key like `:hover` (cold) | ~790,000 | ~1.3 us |
54
+ | `parseStateKey` — complex OR/AND/NOT key (cold) | ~140,000 | ~7 us |
55
+ | `parseStateKey` — any key (cached) | ~3,400,000–8,300,000 | ~0.1–0.3 us |
56
+ | `parseStyle` — value tokens like `2x 4x` (cold) | ~344,000 | ~2.9 us |
57
+ | `parseStyle` — color tokens (cold) | ~567,000 | ~1.8 us |
58
+ | `parseStyle` — any value (cached) | ~15,250,000 | ~0.07 us |
75
59
 
76
60
  “Cold” cases use unique inputs to bypass the relevant caches. Cached cases
77
- reuse one input and measure the LRU hot path. Run-to-run spread on an idle
78
- machine was 1–7% for most cases, rising to 10–16% for the two `renderStyles`
79
- cold cases. These benchmarks do not include React, DOM work, stylesheet
80
- injection, style resolution, layout, or paint.
61
+ reuse one input and measure the LRU hot path. Expect roughly ±10% between runs.
62
+ These benchmarks do not include React, DOM work, stylesheet injection, style
63
+ resolution, layout, or paint.
81
64
 
82
65
  The benchmark sources are colocated with the code they exercise:
83
66
  [`pipeline.bench.ts`](../src/pipeline/pipeline.bench.ts),
@@ -103,19 +86,19 @@ excludes layout, paint, and stylesheet matching. Every commit is wrapped in
103
86
  `flushSync`, keeping its synchronous reconciliation and commit inside the
104
87
  sample. This does not estimate React's concurrent scheduling latency.
105
88
 
106
- On an Apple M3 Pro with React 19.2.8 and Chromium 151, three consecutive runs
89
+ On an Apple M3 Pro with React 19.2.4 and Chromium 151, three consecutive runs
107
90
  produced these ranges:
108
91
 
109
- | Work on 10,000 siblings | Raw elements | `tasty({})` | Extra per wrapped element |
110
- | ----------------------------------- | -----------: | ----------: | ------------------------: |
111
- | Mount + remove | 4.2–4.3 ms | 9.2–9.7 ms | 0.50–0.54 us |
112
- | Rerender, same host props | 1.2–1.3 ms | 6.3–6.5 ms | 0.51–0.52 us |
113
- | Rerender, change one host attribute | 2.5–2.7 ms | 11.2–11.6 ms | 0.86–0.91 us |
92
+ | Work on 10,000 siblings | Raw elements | `tasty({})` | Extra per wrapped element |
93
+ | ----------------------------------- | -----------: | -----------: | ------------------------: |
94
+ | Mount + remove | 4.5–4.9 ms | 14.0–14.9 ms | 0.95–1.00 us |
95
+ | Rerender, same host props | 1.3–1.4 ms | 10.9–11.4 ms | 0.96–1.00 us |
96
+ | Rerender, change one host attribute | 2.8–3.4 ms | 15.0–15.7 ms | 1.21–1.27 us |
114
97
 
115
98
  The useful result is the raw/Tasty time difference divided by 10,000, not the
116
99
  ratio between the two times. The ratio becomes large because the raw baseline
117
- is tiny. In this synthetic workload, an empty wrapper adds roughly 0.5 us per
118
- participating element, or ~0.9 us when React also changes a DOM attribute.
100
+ is tiny. In this synthetic workload, an empty wrapper adds roughly 1 us per
101
+ participating element, or 1.2–1.3 us when React also changes a DOM attribute.
119
102
 
120
103
  This is the floor Tasty consumes when it has no styling job. It is not a
121
104
  page-level score. Real trees include application components, effects, layout,
@@ -160,23 +143,17 @@ ranges:
160
143
 
161
144
  | Workload | CSS already present | Tasty runtime | Incremental Tasty cost |
162
145
  | ---------------------------------------------------- | ------------------: | -------------: | ---------------------: |
163
- | One new rule + immediate resolution, per transaction | 2.6–3.0 us | 102.8–107.0 us | 100.3–104.3 us |
164
- | 1,000 new rules + one resolution | 1.69–1.79 ms | 7.42–7.67 ms | 5.73–5.94 ms |
165
- | 1,000-rule workload, incremental cost per rule | — | — | 5.7–5.9 us |
146
+ | One new rule + immediate resolution, per transaction | 2.8–3.3 us | 110.3–113.8 us | 107.3–111.0 us |
147
+ | 1,000 new rules + one resolution | 1.86–2.06 ms | 9.01–9.98 ms | 7.13–7.92 ms |
148
+ | 1,000-rule workload, incremental cost per rule | — | — | 7.1–7.9 us |
166
149
 
167
150
  Directly compared, injecting 1,000 rules before one resolution boundary cost
168
- about 55–59 times as much in total as injecting one rule and resolving it—not
169
- 1,000 times as much. Its average incremental cost per rule was about 17–18
151
+ about 66–71 times as much in total as injecting one rule and resolving it—not
152
+ 1,000 times as much. Its average incremental cost per rule was about 14–16
170
153
  times lower. This is the same Tasty generation and injection path in both cases;
171
154
  the group amortizes fixed transaction work and lets the browser resolve all the
172
155
  stylesheet writes together.
173
156
 
174
- The per-transaction single-rule figure is the one number here that engine work
175
- does not move: it is dominated by the browser's injection-to-resolution
176
- boundary, which is crossed once per rule regardless of how fast generation is.
177
- The 1,000-rule column, where Tasty's own generation dominates, is where engine
178
- changes show up.
179
-
180
157
  The subtraction is the meaningful result. It includes Tasty's cold style
181
158
  generation, cache and injector bookkeeping, rule insertion, and any additional
182
159
  style invalidation exposed by that workload's resolution boundary. It does not
@@ -230,25 +207,25 @@ if the hovered rule is not already there. That a style map's states all ship in
230
207
  one chunk on first render is the premise of this case; if the hovered rule
231
208
  arrived lazily, the first sample would be timing injection.
232
209
 
233
- On an Apple M3 Pro with React 19.2.8 and Chromium 151, three consecutive runs:
210
+ On an Apple M1 Max with React 19.2.8 and Chromium 151, across several runs:
234
211
 
235
- | Workload | Raw elements | Tasty mods | Extra per unit |
236
- | ---------------------------------------------------- | -----------: | ---------: | -----------------------: |
237
- | 300 single-element mod toggles in a 100-element tree | 1.7–1.8 ms | 2.0–2.1 ms | 1.2–1.3 us / interaction |
238
- | 20 mount + unmount cycles of a 200-element subtree | 5.2–5.4 ms | 8.3–8.6 ms | 0.77–0.81 us / element |
212
+ | Workload | Raw elements | Tasty mods | Extra per unit |
213
+ | ---------------------------------------------------- | -----------: | -----------: | -----------------------: |
214
+ | 300 single-element mod toggles in a 100-element tree | 2.1–2.5 ms | 2.7–3.1 ms | 1.6–2.1 us / interaction |
215
+ | 20 mount + unmount cycles of a 200-element subtree | 7.6–8.0 ms | 12.6–12.7 ms | 1.22–1.27 us / element |
239
216
 
240
217
  The absolute columns move several percent with machine load; the delta between
241
218
  the arms is the stable quantity, so read that rather than either column.
242
219
 
243
220
  Two things are worth reading out of this.
244
221
 
245
- A mod flip on an already-mounted element costs about 1.2 us. The CSS for both
222
+ A mod flip on an already-mounted element costs about 2 us. The CSS for both
246
223
  states already exists — Tasty emits every state of a style map in one chunk on
247
224
  first render — so both arms perform the same commit, and what is left is
248
- Tasty's props and mod handling. That is the same order as the ~0.5 us empty
225
+ Tasty's props and mod handling. That is the same order as the ~1 us empty
249
226
  wrapper measured above, which is most of where it comes from.
250
227
 
251
- Subtree churn is not about styling at all. Its ~0.8 us per element sits right
228
+ Subtree churn is not about styling at all. Its ~1.25 us per element sits right
252
229
  on the empty-wrapper mount cost, because the styles are already cached:
253
230
  reopening a menu re-pays the React wrapper, not the style pipeline.
254
231
 
@@ -280,7 +257,7 @@ Two things about the payload decide whether this measures a deployment or a
280
257
  straw man, so both are enforced rather than assumed:
281
258
 
282
259
  - **Assets are served brotli-compressed**, the way a static host serves them.
283
- The bundle is 51.5 KB on the wire and 180 KB decoded; putting the decoded
260
+ The bundle is 52.0 KB on the wire and 186 KB decoded; putting the decoded
284
261
  bytes on a 1.6 Mbps link would add ~700 ms and charge it to Tasty. The run
285
262
  reads `encodedBodySize` back out of resource timing and fails if what
286
263
  crossed the wire is not the compressed size the table reports.
@@ -289,48 +266,35 @@ straw man, so both are enforced rather than assumed:
289
266
  would be. Re-exporting the whole library adds ~4 KB brotli of code no page
290
267
  here calls.
291
268
 
292
- On an Apple M3 Pro with React 19.2.8 and Chromium 151, first contentful paint,
293
- median of three full runs of the matrix:
294
-
295
- | Link / CPU | baseline | runtime | prewarm | Tasty's cost | noise |
296
- | --------------------- | -------: | ------: | ------: | -----------: | ----: |
297
- | No throttling, 1x | 36 ms | 40 ms | 40 ms | +4 ms | 0 ms |
298
- | Fast 4G, 1x | 628 ms | 672 ms | 688 ms | +44 ms | 20 ms |
299
- | Slow 4G, 1x | 2044 ms | 2308 ms | 2308 ms | +264 ms | 24 ms |
300
- | No throttling, 4x CPU | 112 ms | 144 ms | 144 ms | +32 ms | 16 ms |
301
- | Fast 4G, 4x CPU | 656 ms | 728 ms | 736 ms | +72 ms | 4 ms |
302
- | Slow 4G, 4x CPU | 2064 ms | 2360 ms | 2360 ms | +296 ms | 8 ms |
303
-
304
- The `noise` column is not an estimate. The `baseline` page contains no Tasty at
305
- all, so its three samples should be identical; the spread they actually show is
306
- this cell's measurement error, and it applies to the other columns too.
269
+ On an Apple M1 Max with React 19.2.8 and Chromium 151, first contentful paint:
307
270
 
308
- Read that column before any other. Only the Slow 4G rows carry a cost an order
309
- of magnitude above their own noise. The unthrottled 1x row (+4 ms) means "too
310
- small to measure this way", not "4 ms". And a single run is genuinely not
311
- enough here: taken alone, the first of these three runs put Fast 4G 1x at
312
- +72 ms, which the median over three corrects to +44 ms.
271
+ | Link / CPU | baseline | runtime | prewarm | Tasty's cost |
272
+ | --------------------- | -------: | ------: | ------: | -----------: |
273
+ | No throttling, 1x | 40 ms | 52 ms | 52 ms | +12 ms |
274
+ | Fast 4G, 1x | 624 ms | 680 ms | 676 ms | +56 ms |
275
+ | Slow 4G, 1x | 2028 ms | 2304 ms | 2304 ms | +276 ms |
276
+ | No throttling, 4x CPU | 148 ms | 196 ms | 196 ms | +48 ms |
277
+ | Fast 4G, 4x CPU | 684 ms | 784 ms | 788 ms | +100 ms |
278
+ | Slow 4G, 4x CPU | 2096 ms | 2416 ms | 2408 ms | +320 ms |
313
279
 
314
- For the same reason, `prewarm` landing above `runtime` in the Fast 4G 1x row is
315
- noise, not a cost — the two modes differ only in when the engine compiles, and
316
- that difference is measured in the phase table below, not in FCP.
280
+ That is one full run of the matrix; a second moved every cell by a few percent.
317
281
 
318
282
  **The cost is the bundle, not the work.** On Slow 4G the extra transfer alone
319
- accounts for 263 ms of the 264 ms FCP delta — effectively all of it. Everything
320
- Tasty then *does* is small by comparison (median of three runs):
283
+ accounts for 262 ms of the 276 ms FCP delta — nearly all of it. Everything
284
+ Tasty then *does* is small by comparison:
321
285
 
322
286
  | Phase (Slow 4G, 1x) | baseline | runtime | prewarm |
323
287
  | ----------------------- | -------: | ------: | ------: |
324
- | js+css transfer | 1423 ms | 1686 ms | 1690 ms |
325
- | module compile (shared) | 3.5 ms | 3.3 ms | 3.0 ms |
326
- | tasty top-level execute | — | 1.2 ms | 0.8 ms |
327
- | `configure()` | — | 0.6 ms | 0.4 ms |
328
- | prewarm | — | — | 3.3 ms |
329
- | render 1st component | 3.0 ms | 7.3 ms | 1.9 ms |
330
- | render 49 more | 1.3 ms | 5.2 ms | 3.8 ms |
288
+ | js+css transfer | 1420 ms | 1682 ms | 1681 ms |
289
+ | module compile (shared) | 1.2 ms | 1.5 ms | 2.0 ms |
290
+ | tasty top-level execute | — | 1.2 ms | 0.9 ms |
291
+ | `configure()` | — | 0.6 ms | 0.5 ms |
292
+ | prewarm | — | — | 5.3 ms |
293
+ | render 1st component | 2.0 ms | 8.2 ms | 2.7 ms |
294
+ | render 49 more | 1.0 ms | 7.1 ms | 6.0 ms |
331
295
 
332
296
  Importing Tasty costs about 1 ms of top-level execution; `configure()` costs
333
- half of one. The rest of the CPU delta — about 10 ms for 50 components — is
297
+ half of one. The rest of the CPU delta — about 13 ms for 50 components — is
334
298
  generation and injection, which is the cost the injection benchmark isolates.
335
299
 
336
300
  One asymmetry is worth naming: the control links a render-blocking stylesheet
@@ -340,21 +304,20 @@ delivery models, not a thumb on the scale, but it means the FCP delta is not
340
304
  purely "what Tasty costs to execute".
341
305
 
342
306
  **Prewarming moves the wake-up, it does not remove it.** The first styled render
343
- is ~5.4 ms more expensive than the ones after it, because that is when the
307
+ is ~5 ms more expensive than the ones after it, because that is when the
344
308
  engine's deferred payload is actually compiled. A throwaway `computeStyles()`
345
- against a detached root pays it early: `render 1st` drops from 7.3 ms to
346
- 1.9 ms. The prewarm itself costs 3.3 ms, so the work is moved rather than
347
- removed and FCP does not move. It is worth doing only when something else can
348
- overlap it, or when the first render is on a latency-critical path and the page
349
- has idle time before it.
309
+ against a detached root pays it early: `render 1st` drops from 8.2 ms to
310
+ 2.7 ms. The prewarm itself costs 5.3 ms, so FCP does not move. It is worth
311
+ doing only when something else can overlap it, or when the first render is on a
312
+ latency-critical path and the page has idle time before it.
350
313
 
351
314
  **Retained heap.** After a forced collection, the runtime page holds about
352
- 985 KB more than the control (2,605 KB vs 1,619 KB) for 50 components — the
315
+ 1,013 KB more than the control (2,632 KB vs 1,619 KB) for 50 components — the
353
316
  parser caches, the chunk cache, the injector's registry and the generated CSS.
354
317
  The control is not zero either; most of its 1.6 MB is React and the DOM.
355
318
 
356
319
  CPU throttling changes which line moves. At 4x, module compilation of the
357
- larger graph becomes visible (2.6 ms → 19 ms) where at 1x it is free: V8
320
+ larger graph becomes visible (5.9 ms → 25 ms) where at 1x it is free: V8
358
321
  pre-parses at import and compiles lazily, so a slower CPU pays for code the
359
322
  faster one never fully compiled. Transfer numbers from the unthrottled cells
360
323
  are not worth reading — with no emulated link, resource timings are scheduling
@@ -378,8 +341,8 @@ blindly. They describe different paths:
378
341
 
379
342
  The cold-start measurement is the one that puts the rest in proportion. On a
380
343
  slow connection, nearly all of Tasty's page-load cost is transferring the
381
- library — 263 ms of a 264 ms delta — while the generation and injection the
382
- microbenchmarks obsess over is ~10 ms for 50 components. Bundle size is
344
+ library — 262 ms of a 276 ms delta — while the generation and injection the
345
+ microbenchmarks obsess over is ~13 ms for 50 components. Bundle size is
383
346
  therefore the lever with the largest effect on first paint, and the runtime
384
347
  levers matter for what happens after it.
385
348
 
package/docs/tasty/ssr.md CHANGED
@@ -506,7 +506,7 @@ const stream = await runWithCollector(collector, () =>
506
506
  | `@tenphi/tasty/ssr/next-config` | Next.js config wrapper: shared, content-hashed global stylesheet |
507
507
  | `@tenphi/tasty/ssr/astro` | Astro: `tastyIntegration`, `tastyMiddleware` |
508
508
  | `@tenphi/tasty/ssr/astro-client` | Astro: client-side cache hydration (auto-injected by integration, or import manually) |
509
- | `@tenphi/tasty/ssr/astro-middleware`<br />`@tenphi/tasty/ssr/astro-middleware-static`<br />`@tenphi/tasty/ssr/astro-middleware-extract`<br />`@tenphi/tasty/ssr/astro-middleware-extract-static` | Astro: the middleware entrypoints `tastyIntegration()` registers via `addMiddleware()`. Exported so Astro can resolve them by specifier; you should not import them. For manual setups use `tastyMiddleware()`. |
509
+ | `@tenphi/tasty/ssr/astro-middleware`<br>`@tenphi/tasty/ssr/astro-middleware-static`<br>`@tenphi/tasty/ssr/astro-middleware-extract`<br>`@tenphi/tasty/ssr/astro-middleware-extract-static` | Astro: the middleware entrypoints `tastyIntegration()` registers via `addMiddleware()`. Exported so Astro can resolve them by specifier; you should not import them. For manual setups use `tastyMiddleware()`. |
510
510
 
511
511
  ### `ServerStyleCollector`
512
512
 
@@ -20,10 +20,9 @@ Use these instead of their raw CSS counterparts:
20
20
  |-----|------------|
21
21
  | `fill` | `backgroundColor`, `background` |
22
22
  | `image` | `backgroundImage` |
23
- | `padding` (with physical direction modifiers) | `paddingTop`, `paddingRight`, `paddingBottom`, `paddingLeft` |
24
- | `margin` (with physical direction modifiers) | `marginTop`, `marginRight`, `marginBottom`, `marginLeft` |
25
- | Logical block/inline category styles (with `start`/`end` modifiers) | Native logical axis/edge declarations |
26
- | `width` / `blockSize` / `inlineSize` (with `min`/`max` modifiers) | Their separate min/max declarations when one state map is sufficient |
23
+ | `padding` (with direction modifiers) | `paddingTop`, `paddingRight`, `paddingBottom`, `paddingLeft` |
24
+ | `margin` (with direction modifiers) | `marginTop`, `marginRight`, `marginBottom`, `marginLeft` |
25
+ | `width` (with `min`/`max` modifiers) | `minWidth`, `maxWidth` |
27
26
  | `height` (with `min`/`max` modifiers) | `minHeight`, `maxHeight` |
28
27
  | `border` | `borderColor`, `borderWidth`, `borderStyle` |
29
28
  | `radius` | `borderRadius` |
@@ -126,7 +125,9 @@ A group that names *no* direction keeps plain CSS shorthand order, which is unam
126
125
 
127
126
  Later comma-separated groups override earlier groups for conflicting directions.
128
127
 
129
- Individual physical props `paddingTop`, `paddingRight`, `paddingBottom`, and `paddingLeft` are supported, but `padding` with modifiers is recommended. Use `blockPadding` or `inlinePadding` for an enhanced logical-axis shorthand; native declarations such as `paddingInlineStart` remain ordinary CSS properties. See [Logical properties](#logical-properties).
128
+ Individual props `paddingTop`, `paddingRight`, `paddingBottom`, `paddingLeft`, `paddingBlock`, `paddingInline` are supported but `padding` with modifiers is recommended.
129
+
130
+ **Priority:** `padding` < `paddingBlock`/`paddingInline` < `paddingTop`/`paddingRight`/`paddingBottom`/`paddingLeft`
130
131
 
131
132
  ### `margin`
132
133
 
@@ -152,7 +153,9 @@ The [one-value-per-directional-group rule](#padding) from `padding` applies here
152
153
 
153
154
  Later comma-separated groups override earlier groups for conflicting directions.
154
155
 
155
- Individual physical props `marginTop`, `marginRight`, `marginBottom`, and `marginLeft` are supported, but `margin` with modifiers is recommended. Use `blockMargin` or `inlineMargin` for an enhanced logical-axis shorthand; native declarations such as `marginInlineStart` remain ordinary CSS properties. See [Logical properties](#logical-properties).
156
+ Individual props `marginTop`, `marginRight`, `marginBottom`, `marginLeft`, `marginBlock`, `marginInline` are supported but `margin` with modifiers is recommended.
157
+
158
+ **Priority:** `margin` < `marginBlock`/`marginInline` < `marginTop`/`marginRight`/`marginBottom`/`marginLeft`
156
159
 
157
160
  ### `width`
158
161
 
@@ -231,44 +234,9 @@ second to every side they span.
231
234
 
232
235
  Later comma-separated groups override earlier groups for conflicting directions.
233
236
 
234
- Individual physical props `top`, `right`, `bottom`, and `left` are supported. When only those props are used (without `inset`), individual CSS properties are output for correct cascade behavior with state overrides. Use `blockInset` or `inlineInset` for logical axes; native declarations such as `insetInlineStart` remain ordinary CSS properties.
235
-
236
- ### Logical properties
237
-
238
- Tasty provides one enhanced handler for each logical axis/category pair. Each handler emits native logical CSS instead of converting values to `top`, `right`, `bottom`, `left`, `width`, or `height`. The browser therefore resolves `block`, `inline`, `start`, and `end` from the element's `writingMode` and `direction`.
239
-
240
- ```jsx
241
- styles: {
242
- direction: 'rtl',
243
- inlinePadding: '1x start, 2x end',
244
- inlineBorder: '1bw solid #accent start',
245
- blockInset: '0 end',
246
- }
247
- ```
248
-
249
- An axis handler accepts one value for both edges or two values in logical **start/end** order. Use `start` and `end` modifiers, with comma-separated groups for different edge values. Unspecified padding, margin, and scroll edges reset to `0`; unspecified inset edges reset to `auto`. The `longhand` modifier emits the two native start/end declarations.
250
-
251
- | Category | Block axis | Inline axis |
252
- |----------|------------|-------------|
253
- | Size | `blockSize` | `inlineSize` |
254
- | Padding | `blockPadding` | `inlinePadding` |
255
- | Margin | `blockMargin` | `inlineMargin` |
256
- | Inset | `blockInset` | `inlineInset` |
257
- | Scroll margin | `blockScrollMargin` | `inlineScrollMargin` |
258
- | Scroll padding | `blockScrollPadding` | `inlineScrollPadding` |
259
- | Border | `blockBorder` | `inlineBorder` |
260
-
261
- `blockSize` and `inlineSize` use the same enhanced one/two/three-value and `min`/`max`/`fixed` syntax as `width`. Separate `minBlockSize`, `maxBlockSize`, `minInlineSize`, and `maxInlineSize` declarations override constraints produced by that shorthand.
262
-
263
- `blockBorder` and `inlineBorder` use the same width/style/color parsing and defaults as `border`, including `1bw`, color tokens, and `true`. Logical padding, margin, scroll margin, and scroll padding default to `1x` for `true`; logical inset defaults to `0`.
264
-
265
- Native logical CSS names—such as `paddingInlineStart`, `borderBlockColor`, and `borderStartStartRadius`—remain available as ordinary CSS properties. They support Tasty tokens and units through the normal value parser, but do not get category defaults or directional shorthand behavior.
266
-
267
- The physical `scrollMargin` and `scrollPadding` shorthands support the same values and physical direction modifiers as `padding`. Their logical counterparts stay in separate axis handlers.
268
-
269
- `writingMode`, `direction`, and `textOrientation` are standard CSS control properties. They use Tasty's normal value parser and need no special handler.
237
+ Individual props `top`, `right`, `bottom`, `left`, `insetBlock`, `insetInline` are supported. When only individual direction props are used (without `inset`), individual CSS properties are output for correct cascade behavior with state overrides.
270
238
 
271
- Avoid setting physical and logical declarations that resolve to the same edge in one style block. Tasty keeps them separate and lets the native CSS cascade resolve the overlap, whose result also depends on writing mode and direction.
239
+ **Priority:** `inset` < `insetBlock`/`insetInline` < `top`/`right`/`bottom`/`left`
272
240
 
273
241
  ---
274
242
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.0.0-canary-2ef7bcb",
3
+ "version": "0.0.0-canary-daad5bf",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -97,7 +97,7 @@
97
97
  "@tabler/icons-react": "^3.31.0",
98
98
  "@tanstack/react-virtual": "^3.13.12",
99
99
  "@tenphi/glaze": "2.0.0",
100
- "@tenphi/tasty": "^3.9.1",
100
+ "@tenphi/tasty": "^3.7.0",
101
101
  "clipboard-copy": "^4.0.1",
102
102
  "clsx": "^1.1.1",
103
103
  "diff": "^8.0.3",
@@ -1,50 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-2ef7bcb | Cube Dev Team */
2
- //#region src/utils/dotize.ts
3
- /**
4
- * Flattens a nested object into dot paths: `{ a: { b: 1 } }` becomes
5
- * `{ 'a.b': 1 }`. Numeric keys use bracket notation — `{ a: { 0: 'x' } }`
6
- * becomes `{ 'a[0]': 'x' }`.
7
- *
8
- * `Form` uses it so `setFieldsValue({ user: { name: 'A' } })` also reaches a
9
- * field registered as `name="user.name"`.
10
- *
11
- * Only plain objects are walked into: arrays, class instances and everything
12
- * else stay as leaf values under their own path.
13
- *
14
- * Ported from `@tenphi/tasty`, which exported `dotize` until v3.8 and then
15
- * dropped it. Only `convert` was ever used here, so the inverse (`backward`)
16
- * is not carried over.
17
- */
18
- function isPlainObject(value) {
19
- if (typeof value !== "object" || value === null) return false;
20
- return Object.getPrototypeOf(value) === Object.prototype;
21
- }
22
- /** `parseInt` semantics on purpose: an index arrives as a string key. */
23
- function isIndexLike(key) {
24
- return !isNaN(parseInt(key));
25
- }
26
- function dotName(field, prefix) {
27
- return prefix ? `${prefix}.${field}` : field;
28
- }
29
- function bracketName(field, prefix) {
30
- return `${prefix ?? ""}[${field}]`;
31
- }
32
- function dotizeConvert(obj, prefix = "") {
33
- if (!isPlainObject(obj)) return prefix ? { [prefix]: obj } : obj;
34
- const result = {};
35
- (function recurse(source, currentPrefix) {
36
- for (const field in source) {
37
- const value = source[field];
38
- if (isPlainObject(value)) {
39
- const name = dotName(field, currentPrefix);
40
- if (Object.keys(value).length > 0) recurse(value, name);
41
- else result[name] = value;
42
- } else result[isIndexLike(field) ? bracketName(field, currentPrefix) : dotName(field, currentPrefix)] = value;
43
- }
44
- })(obj, prefix || void 0);
45
- return result;
46
- }
47
-
48
- //#endregion
49
- export { dotizeConvert };
50
- //# sourceMappingURL=dotize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dotize.js","names":[],"sources":["../../src/utils/dotize.ts"],"sourcesContent":["/**\n * Flattens a nested object into dot paths: `{ a: { b: 1 } }` becomes\n * `{ 'a.b': 1 }`. Numeric keys use bracket notation — `{ a: { 0: 'x' } }`\n * becomes `{ 'a[0]': 'x' }`.\n *\n * `Form` uses it so `setFieldsValue({ user: { name: 'A' } })` also reaches a\n * field registered as `name=\"user.name\"`.\n *\n * Only plain objects are walked into: arrays, class instances and everything\n * else stay as leaf values under their own path.\n *\n * Ported from `@tenphi/tasty`, which exported `dotize` until v3.8 and then\n * dropped it. Only `convert` was ever used here, so the inverse (`backward`)\n * is not carried over.\n */\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (typeof value !== 'object' || value === null) return false;\n\n return Object.getPrototypeOf(value) === Object.prototype;\n}\n\n/** `parseInt` semantics on purpose: an index arrives as a string key. */\nfunction isIndexLike(key: string): boolean {\n return !isNaN(parseInt(key));\n}\n\nfunction dotName(field: string, prefix?: string): string {\n return prefix ? `${prefix}.${field}` : field;\n}\n\nfunction bracketName(field: string, prefix?: string): string {\n return `${prefix ?? ''}[${field}]`;\n}\n\nexport function dotizeConvert(obj: unknown, prefix = ''): any {\n if (!isPlainObject(obj)) {\n return prefix ? { [prefix]: obj } : obj;\n }\n\n const result: Record<string, unknown> = {};\n\n (function recurse(source: Record<string, unknown>, currentPrefix?: string) {\n for (const field in source) {\n const value = source[field];\n\n if (isPlainObject(value)) {\n // Nested objects keep dot notation even under a numeric key, and an\n // empty one has nothing to flatten into, so it stays a leaf.\n const name = dotName(field, currentPrefix);\n\n if (Object.keys(value).length > 0) {\n recurse(value, name);\n } else {\n result[name] = value;\n }\n } else {\n result[\n isIndexLike(field)\n ? bracketName(field, currentPrefix)\n : dotName(field, currentPrefix)\n ] = value;\n }\n }\n })(obj, prefix || undefined);\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,SAAS,cAAc,OAAkD;AACvE,KAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AAExD,QAAO,OAAO,eAAe,MAAM,KAAK,OAAO;;;AAIjD,SAAS,YAAY,KAAsB;AACzC,QAAO,CAAC,MAAM,SAAS,IAAI,CAAC;;AAG9B,SAAS,QAAQ,OAAe,QAAyB;AACvD,QAAO,SAAS,GAAG,OAAO,GAAG,UAAU;;AAGzC,SAAS,YAAY,OAAe,QAAyB;AAC3D,QAAO,GAAG,UAAU,GAAG,GAAG,MAAM;;AAGlC,SAAgB,cAAc,KAAc,SAAS,IAAS;AAC5D,KAAI,CAAC,cAAc,IAAI,CACrB,QAAO,SAAS,GAAG,SAAS,KAAK,GAAG;CAGtC,MAAM,SAAkC,EAAE;AAE1C,EAAC,SAAS,QAAQ,QAAiC,eAAwB;AACzE,OAAK,MAAM,SAAS,QAAQ;GAC1B,MAAM,QAAQ,OAAO;AAErB,OAAI,cAAc,MAAM,EAAE;IAGxB,MAAM,OAAO,QAAQ,OAAO,cAAc;AAE1C,QAAI,OAAO,KAAK,MAAM,CAAC,SAAS,EAC9B,SAAQ,OAAO,KAAK;QAEpB,QAAO,QAAQ;SAGjB,QACE,YAAY,MAAM,GACd,YAAY,OAAO,cAAc,GACjC,QAAQ,OAAO,cAAc,IAC/B;;IAGP,KAAK,UAAU,OAAU;AAE5B,QAAO"}