themelia-react-ui 1.0.2 → 2.0.1

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 (748) hide show
  1. package/CHANGELOG.md +632 -1
  2. package/README.md +31 -13
  3. package/dist/accordion-B6a3vVgA.js +207 -0
  4. package/dist/accordion-B6a3vVgA.js.map +1 -0
  5. package/dist/action-menu-TzCoSlwL.js +280 -0
  6. package/dist/action-menu-TzCoSlwL.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-CL84ZN9A.js → affordance-geometry.generated-B5iu-Mkr.js} +9 -3
  8. package/dist/affordance-geometry.generated-B5iu-Mkr.js.map +1 -0
  9. package/dist/{ai-artifact-DLVdK0Py.js → ai-artifact-BMJdv-6q.js} +389 -391
  10. package/dist/ai-artifact-BMJdv-6q.js.map +1 -0
  11. package/dist/{app-shell-C_fKpljx.js → app-shell-ZK5RWdo6.js} +4 -4
  12. package/dist/{app-shell-C_fKpljx.js.map → app-shell-ZK5RWdo6.js.map} +1 -1
  13. package/dist/attachment-BtfhGm8i.js +245 -0
  14. package/dist/attachment-BtfhGm8i.js.map +1 -0
  15. package/dist/{auth-CAQcasMV.js → auth-CYxKfo69.js} +239 -237
  16. package/dist/auth-CYxKfo69.js.map +1 -0
  17. package/dist/{avatar-Bu2HhitA.js → avatar-BBnEJIx8.js} +71 -68
  18. package/dist/avatar-BBnEJIx8.js.map +1 -0
  19. package/dist/badge-MrKVNzW9.js +93 -0
  20. package/dist/badge-MrKVNzW9.js.map +1 -0
  21. package/dist/base/accordion.js +1 -1
  22. package/dist/base/action-menu.js +1 -1
  23. package/dist/base/attachment.js +1 -1
  24. package/dist/base/avatar.js +1 -1
  25. package/dist/base/badge.js +1 -1
  26. package/dist/base/batch-action-bar.js +3 -0
  27. package/dist/base/buttons.js +2 -3
  28. package/dist/base/cards.js +2 -2
  29. package/dist/base/carousel.js +19 -19
  30. package/dist/base/carousel.js.map +1 -1
  31. package/dist/base/cascader.js +234 -224
  32. package/dist/base/cascader.js.map +1 -1
  33. package/dist/base/chart.js +1 -1
  34. package/dist/base/choice-inputs.js +3 -3
  35. package/dist/base/code-block.js +1 -1
  36. package/dist/base/combobox.js +1 -1
  37. package/dist/base/command.js +1 -1
  38. package/dist/base/copyable.js +1 -1
  39. package/dist/base/date-pickers.js +2 -2
  40. package/dist/base/display.js +7 -7
  41. package/dist/base/feedback.js +3 -3
  42. package/dist/base/forms-numeric.js +1 -1
  43. package/dist/base/forms.js +2 -2
  44. package/dist/base/inline-edit.js +81 -76
  45. package/dist/base/inline-edit.js.map +1 -1
  46. package/dist/base/item.js +1 -1
  47. package/dist/base/media-gallery.js +1 -1
  48. package/dist/base/metadata-list.js +3 -0
  49. package/dist/base/navigation.js +7 -7
  50. package/dist/base/popover-menu.js +1 -1
  51. package/dist/base/popover.js +1 -1
  52. package/dist/base/qr-code.js +7 -4
  53. package/dist/base/qr-code.js.map +1 -1
  54. package/dist/base/repeaters.js +175 -174
  55. package/dist/base/repeaters.js.map +1 -1
  56. package/dist/base/sheet.js +1 -1
  57. package/dist/base/sidebar.js +1 -1
  58. package/dist/base/signature-pad.js +148 -138
  59. package/dist/base/signature-pad.js.map +1 -1
  60. package/dist/base/skeleton.js +1 -1
  61. package/dist/base/spinner.js +1 -1
  62. package/dist/base/structure.js +1 -1
  63. package/dist/base/table.js +1 -1
  64. package/dist/base/text-inputs.js +2 -2
  65. package/dist/base/toaster.js +4 -4
  66. package/dist/base/toaster.js.map +1 -1
  67. package/dist/base/tree.js +1 -1
  68. package/dist/base/upload-queue.js +1 -1
  69. package/dist/base/upload.js +3 -3
  70. package/dist/base/value-inputs.js +2 -2
  71. package/dist/batch-action-bar-BZGDG-Si.js +104 -0
  72. package/dist/batch-action-bar-BZGDG-Si.js.map +1 -0
  73. package/dist/blocks/admin.js +264 -253
  74. package/dist/blocks/admin.js.map +1 -1
  75. package/dist/blocks/ai.js +293 -323
  76. package/dist/blocks/ai.js.map +1 -1
  77. package/dist/blocks/analytics/usage-card.js +1 -1
  78. package/dist/blocks/analytics.js +596 -587
  79. package/dist/blocks/analytics.js.map +1 -1
  80. package/dist/blocks/collaboration.js +1 -1
  81. package/dist/blocks/commerce/receipt.js +1 -1
  82. package/dist/blocks/commerce.js +2246 -1693
  83. package/dist/blocks/commerce.js.map +1 -1
  84. package/dist/blocks/data-display.js +3 -2
  85. package/dist/blocks/onboarding.js +50 -49
  86. package/dist/blocks/onboarding.js.map +1 -1
  87. package/dist/blocks/planning.js +82 -91
  88. package/dist/blocks/planning.js.map +1 -1
  89. package/dist/blocks/timelines.js +1 -1
  90. package/dist/breadcrumbs-D5t7I023.js +129 -0
  91. package/dist/breadcrumbs-D5t7I023.js.map +1 -0
  92. package/dist/{button-BZyfTvwm.js → button-QYwiyhD2.js} +15 -14
  93. package/dist/button-QYwiyhD2.js.map +1 -0
  94. package/dist/buttons-SbIcm1HJ.js +661 -0
  95. package/dist/buttons-SbIcm1HJ.js.map +1 -0
  96. package/dist/{cards-qGSErLw_.js → cards-CiiHpKYd.js} +8 -8
  97. package/dist/cards-CiiHpKYd.js.map +1 -0
  98. package/dist/{chart-Bsc5BICK.js → chart-QfrARkXl.js} +17 -15
  99. package/dist/chart-QfrARkXl.js.map +1 -0
  100. package/dist/checkbox-DhB6K0bK.js +36 -0
  101. package/dist/checkbox-DhB6K0bK.js.map +1 -0
  102. package/dist/choice-inputs-t6w3ATNz.js +766 -0
  103. package/dist/choice-inputs-t6w3ATNz.js.map +1 -0
  104. package/dist/code-block-Dgbu-CU3.js +185 -0
  105. package/dist/code-block-Dgbu-CU3.js.map +1 -0
  106. package/dist/{collapsible-ClvC7Bj3.js → collapsible-D8AEGU1-.js} +4 -4
  107. package/dist/{collapsible-ClvC7Bj3.js.map → collapsible-D8AEGU1-.js.map} +1 -1
  108. package/dist/{collection-content-D6S8cv_n.js → collection-content-uK16Grv0.js} +3 -3
  109. package/dist/{collection-content-D6S8cv_n.js.map → collection-content-uK16Grv0.js.map} +1 -1
  110. package/dist/{combobox-BFnbJJp3.js → combobox-2Ic8N9bL.js} +103 -98
  111. package/dist/combobox-2Ic8N9bL.js.map +1 -0
  112. package/dist/combobox-DLl0bfiq.js +867 -0
  113. package/dist/combobox-DLl0bfiq.js.map +1 -0
  114. package/dist/{command-BnmSchli.js → command-kNR20o7x.js} +34 -30
  115. package/dist/command-kNR20o7x.js.map +1 -0
  116. package/dist/{comments-u5L0OGip.js → comments-BpDuCUUu.js} +304 -301
  117. package/dist/comments-BpDuCUUu.js.map +1 -0
  118. package/dist/components/base/accordion/accordion-variants.d.ts +3 -3
  119. package/dist/components/base/action-menu/action-menu.d.ts +27 -5
  120. package/dist/components/base/action-menu/action-menu.recipes.d.ts +21 -0
  121. package/dist/components/base/action-menu/index.d.ts +1 -0
  122. package/dist/components/base/avatar/stacked-avatars.d.ts +5 -4
  123. package/dist/components/base/badge/badge.d.ts +1 -1
  124. package/dist/components/base/badge/badge.recipes.d.ts +6 -6
  125. package/dist/components/base/batch-action-bar/batch-action-bar.d.ts +50 -0
  126. package/dist/components/base/batch-action-bar/batch-action-bar.strings.d.ts +20 -0
  127. package/dist/components/base/batch-action-bar/index.d.ts +8 -0
  128. package/dist/components/base/buttons/base-button.d.ts +7 -0
  129. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  130. package/dist/components/base/buttons/button.recipes.d.ts +2 -2
  131. package/dist/components/base/buttons/button.variants.d.ts +1 -0
  132. package/dist/components/base/buttons/loader-button.d.ts +3 -1
  133. package/dist/components/base/buttons/text-button.d.ts +2 -2
  134. package/dist/components/base/carousel/carousel.d.ts +3 -1
  135. package/dist/components/base/chart/chart.d.ts +7 -7
  136. package/dist/components/base/choice-inputs/checkbox.d.ts +6 -7
  137. package/dist/components/base/choice-inputs/choice-types.d.ts +24 -3
  138. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +9 -0
  139. package/dist/components/base/choice-inputs/select-popup.d.ts +9 -1
  140. package/dist/components/base/choice-inputs/switch-card.d.ts +1 -1
  141. package/dist/components/base/date-pickers/date-picker-field.d.ts +23 -0
  142. package/dist/components/base/date-pickers/datepicker.types.d.ts +13 -3
  143. package/dist/components/base/display/alert-dialog.d.ts +10 -3
  144. package/dist/components/base/display/content-block.d.ts +4 -2
  145. package/dist/components/base/display/date-block.d.ts +1 -1
  146. package/dist/components/base/display/dialog.d.ts +8 -5
  147. package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
  148. package/dist/components/base/display/surface-title.d.ts +6 -1
  149. package/dist/components/base/feedback/alert.d.ts +1 -1
  150. package/dist/components/base/feedback/state-display.d.ts +5 -4
  151. package/dist/components/base/forms/form-sizing.d.ts +43 -8
  152. package/dist/components/base/forms/workflow.d.ts +2 -0
  153. package/dist/components/base/forms-numeric/coordinates-input.d.ts +3 -0
  154. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +4 -1
  155. package/dist/components/base/metadata-list/index.d.ts +12 -0
  156. package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.d.ts +28 -25
  157. package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-value.d.ts +2 -2
  158. package/dist/components/base/navigation/dropdown-menu.d.ts +2 -2
  159. package/dist/components/base/navigation/index.d.ts +1 -1
  160. package/dist/components/base/navigation/language-switcher.d.ts +4 -1
  161. package/dist/components/base/navigation/overflow-tab-bar.d.ts +7 -0
  162. package/dist/components/base/navigation/page-header/index.d.ts +1 -0
  163. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +73 -0
  164. package/dist/components/base/navigation/page-header/page-header.d.ts +30 -4
  165. package/dist/components/base/qr-code/qr-code.d.ts +2 -0
  166. package/dist/components/base/sheet/index.d.ts +29 -1
  167. package/dist/components/base/sheet/sheet.d.ts +10 -5
  168. package/dist/components/base/signature-pad/signature-pad.types.d.ts +5 -1
  169. package/dist/components/base/signature-pad/signature-pad.utils.d.ts +11 -3
  170. package/dist/components/base/spinner/spinner.d.ts +3 -2
  171. package/dist/components/base/structure/structure.types.d.ts +1 -1
  172. package/dist/components/base/text-inputs/field-clear-button.d.ts +6 -0
  173. package/dist/components/base/text-inputs/input-group.d.ts +2 -2
  174. package/dist/components/base/upload/upload.recipes.d.ts +33 -0
  175. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -2
  176. package/dist/components/base/value-inputs/index.d.ts +5 -5
  177. package/dist/components/base/value-inputs/tags-input.d.ts +38 -12
  178. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +1 -1
  179. package/dist/components/blocks/analytics/format-metric-value.d.ts +11 -1
  180. package/dist/components/blocks/analytics/index.d.ts +1 -1
  181. package/dist/components/blocks/analytics/use-metric-format-options.d.ts +3 -0
  182. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  183. package/dist/components/blocks/commerce/address-card/types.d.ts +4 -1
  184. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +4 -0
  185. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +2 -2
  186. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +3 -1
  187. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
  188. package/dist/components/blocks/commerce/cart-summary/types.d.ts +6 -1
  189. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +3 -1
  190. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
  191. package/dist/components/blocks/commerce/discount-stack/types.d.ts +16 -4
  192. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +5 -0
  193. package/dist/components/blocks/commerce/fulfillment-group/index.d.ts +2 -0
  194. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +43 -0
  195. package/dist/components/blocks/commerce/index.d.ts +13 -5
  196. package/dist/components/blocks/commerce/inventory-section/types.d.ts +4 -1
  197. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  198. package/dist/components/blocks/commerce/invoice-header/types.d.ts +4 -2
  199. package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +1 -1
  200. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +2 -1
  201. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +1 -1
  202. package/dist/components/blocks/commerce/order-customer/index.d.ts +2 -0
  203. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +5 -0
  204. package/dist/components/blocks/commerce/order-customer/types.d.ts +48 -0
  205. package/dist/components/blocks/commerce/order-header/index.d.ts +2 -0
  206. package/dist/components/blocks/commerce/order-header/order-header.d.ts +5 -0
  207. package/dist/components/blocks/commerce/order-header/types.d.ts +37 -0
  208. package/dist/components/blocks/commerce/order-line-item/index.d.ts +2 -0
  209. package/dist/components/blocks/commerce/order-line-item/order-line-item.d.ts +5 -0
  210. package/dist/components/blocks/commerce/order-line-item/types.d.ts +46 -0
  211. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  212. package/dist/components/blocks/commerce/order-summary/index.d.ts +2 -0
  213. package/dist/components/blocks/commerce/order-summary/order-summary.d.ts +5 -0
  214. package/dist/components/blocks/commerce/order-summary/types.d.ts +42 -0
  215. package/dist/components/blocks/commerce/order-transactions/index.d.ts +2 -0
  216. package/dist/components/blocks/commerce/order-transactions/order-transactions.d.ts +5 -0
  217. package/dist/components/blocks/commerce/order-transactions/types.d.ts +46 -0
  218. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
  219. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +9 -1
  220. package/dist/components/blocks/commerce/payment-method/types.d.ts +14 -1
  221. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
  222. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +3 -1
  223. package/dist/components/blocks/commerce/refund-status/types.d.ts +6 -3
  224. package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +1 -1
  225. package/dist/components/blocks/commerce/seo-listing/types.d.ts +3 -1
  226. package/dist/components/blocks/commerce/shared/address-lines.d.ts +21 -0
  227. package/dist/components/blocks/commerce/shared/line-thumbnail.d.ts +9 -0
  228. package/dist/components/blocks/commerce/shared/order-status.d.ts +51 -0
  229. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  230. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +27 -6
  231. package/dist/components/blocks/commerce/summary-panel/amount-row.d.ts +2 -0
  232. package/dist/components/blocks/commerce/summary-panel/index.d.ts +3 -0
  233. package/dist/components/blocks/commerce/summary-panel/summary-panel.d.ts +2 -0
  234. package/dist/components/blocks/commerce/summary-panel/types.d.ts +26 -0
  235. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  236. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +2 -1
  237. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -1
  238. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +4 -1
  239. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +4 -1
  240. package/dist/components/blocks/data-display/metadata/index.d.ts +30 -4
  241. package/dist/components/features/activities/partials/activity-row.d.ts +6 -2
  242. package/dist/components/features/activities/partials/tone-tokens.d.ts +0 -6
  243. package/dist/components/features/global-search/partials/global-search-group-heading.d.ts +15 -0
  244. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +1 -1
  245. package/dist/components/features/global-search/partials/tone-palettes.d.ts +0 -5
  246. package/dist/components/features/kanban/kanban.d.ts +1 -1
  247. package/dist/components/features/kanban/kanban.strings.d.ts +1 -1
  248. package/dist/components/features/kanban/kanban.types.d.ts +2 -2
  249. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  250. package/dist/components/features/media-library/index.d.ts +1 -1
  251. package/dist/components/features/media-library/media-library.d.ts +1 -1
  252. package/dist/components/features/media-library/media-library.strings.d.ts +4 -0
  253. package/dist/components/features/media-library/media-library.types.d.ts +74 -1
  254. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  255. package/dist/components/features/mentions/partials/mention-kind-toggles.d.ts +16 -0
  256. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  257. package/dist/components/features/overlays/dialog.d.ts +1 -1
  258. package/dist/components/features/overlays/drawer.d.ts +1 -1
  259. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +2 -2
  260. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +11 -4
  261. package/dist/components/features/overlays/index.d.ts +1 -1
  262. package/dist/components/features/overlays/overlay-tone-icon.d.ts +37 -0
  263. package/dist/components/features/overlays/overlays.types.d.ts +62 -19
  264. package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
  265. package/dist/components/features/products/components/product-details-card.d.ts +5 -0
  266. package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
  267. package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
  268. package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
  269. package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
  270. package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
  271. package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
  272. package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
  273. package/dist/components/features/products/components/product-variant-action-menu.d.ts +23 -1
  274. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  275. package/dist/components/features/products/partials/index.d.ts +1 -1
  276. package/dist/components/features/products/partials/product-metric-tile.d.ts +6 -0
  277. package/dist/components/features/products/partials/product-tone.d.ts +11 -1
  278. package/dist/components/features/products/products.types.d.ts +11 -3
  279. package/dist/components/features/resource/index.d.ts +1 -1
  280. package/dist/components/features/resource/resource.d.ts +1 -1
  281. package/dist/components/features/resource/resource.types.d.ts +34 -6
  282. package/dist/components/features/rich-text-editor/index.d.ts +2 -1
  283. package/dist/components/features/rich-text-editor/partials/image-nodes.d.ts +13 -0
  284. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +66 -0
  285. package/dist/components/features/rich-text-editor/partials/inline-reference-node.d.ts +19 -0
  286. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  287. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +14 -0
  288. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +45 -0
  289. package/dist/components/features/rich-text-editor/use-rich-text-images.d.ts +18 -0
  290. package/dist/components/features/sync/index.d.ts +26 -3
  291. package/dist/components/features/table/data-table.d.ts +1 -1
  292. package/dist/components/features/table/partials/cell-renderers.d.ts +1 -1
  293. package/dist/components/features/table/table.types.d.ts +32 -7
  294. package/dist/components/layout/page/index.d.ts +1 -1
  295. package/dist/components/layout/page/page.types.d.ts +51 -4
  296. package/dist/components/layout/page/partials/page-actions.d.ts +1 -0
  297. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  298. package/dist/components/layout/settings/settings.d.ts +16 -2
  299. package/dist/components/layout/workspace/workspace.types.d.ts +21 -4
  300. package/dist/components/primitives/date.d.ts +16 -3
  301. package/dist/components/primitives/dimensions.d.ts +6 -0
  302. package/dist/components/primitives/duration.d.ts +6 -0
  303. package/dist/components/primitives/file-size.d.ts +6 -0
  304. package/dist/components/primitives/index.d.ts +1 -1
  305. package/dist/components/primitives/initials.d.ts +11 -2
  306. package/dist/components/primitives/link.d.ts +7 -0
  307. package/dist/components/primitives/money.d.ts +29 -7
  308. package/dist/components/primitives/number.d.ts +17 -0
  309. package/dist/components/primitives/value-typography.d.ts +54 -0
  310. package/dist/components/primitives/value.d.ts +31 -6
  311. package/dist/components/typography/heading.d.ts +9 -1
  312. package/dist/components/typography/label.d.ts +3 -0
  313. package/dist/components/typography/rich-text/index.d.ts +1 -1
  314. package/dist/components/typography/rich-text/rich-text-tree.d.ts +19 -0
  315. package/dist/components/typography/rich-text/rich-text.d.ts +16 -0
  316. package/dist/components/typography/running-text.d.ts +12 -0
  317. package/dist/components/typography/text-link.d.ts +24 -1
  318. package/dist/components/typography/text.d.ts +12 -0
  319. package/dist/components/typography/text.styles.d.ts +35 -13
  320. package/dist/components/ui/button.d.ts +1 -1
  321. package/dist/components/ui/checkbox.d.ts +6 -0
  322. package/dist/components/ui/overlay.recipes.d.ts +6 -2
  323. package/dist/components/ui/select.d.ts +3 -1
  324. package/dist/components/ui/switch.d.ts +5 -0
  325. package/dist/{containers-DqB-bSYE.js → containers-DmWiJa2I.js} +36 -35
  326. package/dist/containers-DmWiJa2I.js.map +1 -0
  327. package/dist/{copyable-BTSByfmq.js → copyable-B3Gwgdqc.js} +6 -6
  328. package/dist/{copyable-BTSByfmq.js.map → copyable-B3Gwgdqc.js.map} +1 -1
  329. package/dist/data-display-DafIvCl5.js +960 -0
  330. package/dist/data-display-DafIvCl5.js.map +1 -0
  331. package/dist/date-BgK3bTdo.js +144 -0
  332. package/dist/date-BgK3bTdo.js.map +1 -0
  333. package/dist/date-picker-CF-DtUpF.js +1529 -0
  334. package/dist/date-picker-CF-DtUpF.js.map +1 -0
  335. package/dist/date-pickers-BmzxJl5l.js +174 -0
  336. package/dist/date-pickers-BmzxJl5l.js.map +1 -0
  337. package/dist/{display-CS6Hbk18.js → display-DsQTVzMz.js} +88 -87
  338. package/dist/display-DsQTVzMz.js.map +1 -0
  339. package/dist/{dropdown-menu-D-boNgGO.js → dropdown-menu-E2qmdC7o.js} +23 -16
  340. package/dist/dropdown-menu-E2qmdC7o.js.map +1 -0
  341. package/dist/features/activities.js +437 -521
  342. package/dist/features/activities.js.map +1 -1
  343. package/dist/features/ai-chat.js +174 -172
  344. package/dist/features/ai-chat.js.map +1 -1
  345. package/dist/features/async-preview.js +8 -8
  346. package/dist/features/async-preview.js.map +1 -1
  347. package/dist/features/combobox.js +1 -1
  348. package/dist/features/comments.js +1 -1
  349. package/dist/features/data-view.js +139 -138
  350. package/dist/features/data-view.js.map +1 -1
  351. package/dist/features/email-composer/engine.js +1 -1
  352. package/dist/features/email-composer.js +353 -352
  353. package/dist/features/email-composer.js.map +1 -1
  354. package/dist/features/event-calendar.js +262 -269
  355. package/dist/features/event-calendar.js.map +1 -1
  356. package/dist/features/filters.js +1 -1
  357. package/dist/features/global-search.js +307 -310
  358. package/dist/features/global-search.js.map +1 -1
  359. package/dist/features/kanban.js +95 -97
  360. package/dist/features/kanban.js.map +1 -1
  361. package/dist/features/map.js +56 -57
  362. package/dist/features/map.js.map +1 -1
  363. package/dist/features/media-library.js +914 -824
  364. package/dist/features/media-library.js.map +1 -1
  365. package/dist/features/mentions.js +1 -1
  366. package/dist/features/overlays.js +1 -1
  367. package/dist/features/products.js +1272 -1311
  368. package/dist/features/products.js.map +1 -1
  369. package/dist/features/questionnaire.js +204 -194
  370. package/dist/features/questionnaire.js.map +1 -1
  371. package/dist/features/resource-assignment.js +103 -95
  372. package/dist/features/resource-assignment.js.map +1 -1
  373. package/dist/features/resource.js +77 -69
  374. package/dist/features/resource.js.map +1 -1
  375. package/dist/features/rich-text-editor.js +30 -11
  376. package/dist/features/rich-text-editor.js.map +1 -1
  377. package/dist/features/schema-form.js +193 -189
  378. package/dist/features/schema-form.js.map +1 -1
  379. package/dist/features/suggestions.js +3 -3
  380. package/dist/features/sync.js +7 -7
  381. package/dist/features/sync.js.map +1 -1
  382. package/dist/features/table.js +1 -1
  383. package/dist/features/theme-tweaker.js +455 -455
  384. package/dist/features/theme-tweaker.js.map +1 -1
  385. package/dist/feedback-qNuMBtRH.js +233 -0
  386. package/dist/feedback-qNuMBtRH.js.map +1 -0
  387. package/dist/field-affordance-recipes-qQeIf4lG.js +48 -0
  388. package/dist/field-affordance-recipes-qQeIf4lG.js.map +1 -0
  389. package/dist/field-state-recipes-BVA2CWHo.js +12 -0
  390. package/dist/field-state-recipes-BVA2CWHo.js.map +1 -0
  391. package/dist/{filters-D6FF8L6s.js → filters-BkHH53uv.js} +414 -412
  392. package/dist/filters-BkHH53uv.js.map +1 -0
  393. package/dist/focus-recipes-B653VaLq.js +12 -0
  394. package/dist/focus-recipes-B653VaLq.js.map +1 -0
  395. package/dist/{form-field-CZwrkP7m.js → form-field-DUt4UxSV.js} +7 -7
  396. package/dist/{form-field-CZwrkP7m.js.map → form-field-DUt4UxSV.js.map} +1 -1
  397. package/dist/form-sizing-By94KzXE.js +130 -0
  398. package/dist/form-sizing-By94KzXE.js.map +1 -0
  399. package/dist/{forms-B5NCbkSC.js → forms-Bzha-Y3B.js} +25 -25
  400. package/dist/forms-Bzha-Y3B.js.map +1 -0
  401. package/dist/forms-numeric-C0bvjRPZ.js +906 -0
  402. package/dist/forms-numeric-C0bvjRPZ.js.map +1 -0
  403. package/dist/{header-kxruN3RM.js → header-BOefOKd1.js} +38 -41
  404. package/dist/header-BOefOKd1.js.map +1 -0
  405. package/dist/{hooks-BrlnCwQd.js → hooks-9k_TtmKh.js} +2 -2
  406. package/dist/{hooks-BrlnCwQd.js.map → hooks-9k_TtmKh.js.map} +1 -1
  407. package/dist/{http-CdEIHyQf.js → http-D_6rOnzU.js} +2 -2
  408. package/dist/{http-CdEIHyQf.js.map → http-D_6rOnzU.js.map} +1 -1
  409. package/dist/icon-badge-CAuKupo9.js +55 -0
  410. package/dist/icon-badge-CAuKupo9.js.map +1 -0
  411. package/dist/index.js +7 -7
  412. package/dist/input-DWhBBBww.js +262 -0
  413. package/dist/input-DWhBBBww.js.map +1 -0
  414. package/dist/{input-vxcaNCYC.js → input-Ddi_LSYv.js} +3 -3
  415. package/dist/{input-vxcaNCYC.js.map → input-Ddi_LSYv.js.map} +1 -1
  416. package/dist/interaction-recipes-CHr0dJUs.js +24 -0
  417. package/dist/interaction-recipes-CHr0dJUs.js.map +1 -0
  418. package/dist/item-DEmDiTlD.js +265 -0
  419. package/dist/item-DEmDiTlD.js.map +1 -0
  420. package/dist/layer-recipes-CCpklYME.js +13 -0
  421. package/dist/layer-recipes-CCpklYME.js.map +1 -0
  422. package/dist/layout/app-shell.js +1 -1
  423. package/dist/layout/auth.js +1 -1
  424. package/dist/layout/containers.js +1 -1
  425. package/dist/layout/header.js +1 -1
  426. package/dist/layout/hooks.js +1 -1
  427. package/dist/layout/navigation.js +1 -1
  428. package/dist/layout/page.js +1 -1
  429. package/dist/layout/settings.js +1 -1
  430. package/dist/layout/sidebar.js +2 -2
  431. package/dist/layout/workspace.js +1 -1
  432. package/dist/layout.js +10 -10
  433. package/dist/lib/affordance-geometry.generated.d.ts +7 -1
  434. package/dist/lib/field-affordance-recipes.d.ts +41 -1
  435. package/dist/lib/field-state-recipes.d.ts +9 -6
  436. package/dist/lib/focus-recipes.d.ts +24 -0
  437. package/dist/lib/format.d.ts +9 -0
  438. package/dist/lib/interaction-recipes.d.ts +35 -0
  439. package/dist/lib/layer-recipes.d.ts +19 -0
  440. package/dist/lib/money-format.d.ts +30 -0
  441. package/dist/lib/motion-recipes.d.ts +1 -0
  442. package/dist/lib/overlay-anatomy-recipes.d.ts +2 -1
  443. package/dist/lib/safe-image-src.d.ts +10 -0
  444. package/dist/lib/sanitize-html.d.ts +15 -3
  445. package/dist/lib/surface-recipes.d.ts +48 -6
  446. package/dist/lib/token-merge.generated.d.ts +17 -14
  447. package/dist/lib/tone-recipes.d.ts +79 -0
  448. package/dist/lib/track-recipes.d.ts +1 -1
  449. package/dist/lib/ui-provider/hooks.d.ts +2 -1
  450. package/dist/lib/ui-provider/index.d.ts +2 -2
  451. package/dist/lib/ui-provider/provider.d.ts +7 -2
  452. package/dist/lib/ui-provider/store.d.ts +6 -2
  453. package/dist/lib/ui-provider/types.d.ts +14 -2
  454. package/dist/lib/utils.js +1 -1
  455. package/dist/media-gallery-DcTtAaeC.js +203 -0
  456. package/dist/media-gallery-DcTtAaeC.js.map +1 -0
  457. package/dist/mentions-D-uyCh01.js +568 -0
  458. package/dist/mentions-D-uyCh01.js.map +1 -0
  459. package/dist/{message-SZUNB1eX.js → message-CdHgIWKf.js} +5 -5
  460. package/dist/{message-SZUNB1eX.js.map → message-CdHgIWKf.js.map} +1 -1
  461. package/dist/metadata-list-X5rYAKSB.js +394 -0
  462. package/dist/metadata-list-X5rYAKSB.js.map +1 -0
  463. package/dist/{motion-recipes-B6jKXEcN.js → motion-recipes-ChBg4HBq.js} +3 -2
  464. package/dist/{motion-recipes-B6jKXEcN.js.map → motion-recipes-ChBg4HBq.js.map} +1 -1
  465. package/dist/navigation-D3KwXmaq.js +145 -0
  466. package/dist/navigation-D3KwXmaq.js.map +1 -0
  467. package/dist/navigation-HJf5zxlH.js +268 -0
  468. package/dist/navigation-HJf5zxlH.js.map +1 -0
  469. package/dist/{navigation-row-recipes-DQEXQcqY.js → navigation-row-recipes-BVowojQw.js} +2 -2
  470. package/dist/{navigation-row-recipes-DQEXQcqY.js.map → navigation-row-recipes-BVowojQw.js.map} +1 -1
  471. package/dist/number-DMhe-Vsk.js +352 -0
  472. package/dist/number-DMhe-Vsk.js.map +1 -0
  473. package/dist/overflow-tab-bar-sQHXLlwQ.js +280 -0
  474. package/dist/overflow-tab-bar-sQHXLlwQ.js.map +1 -0
  475. package/dist/overlay.recipes-8GHqmlb4.js +6 -0
  476. package/dist/overlay.recipes-8GHqmlb4.js.map +1 -0
  477. package/dist/overlays-I0axtYA6.js +999 -0
  478. package/dist/overlays-I0axtYA6.js.map +1 -0
  479. package/dist/{page-hGmT4nWK.js → page-B5dTH9gE.js} +79 -68
  480. package/dist/page-B5dTH9gE.js.map +1 -0
  481. package/dist/page-header-commands-DjzFEq3E.js +126 -0
  482. package/dist/page-header-commands-DjzFEq3E.js.map +1 -0
  483. package/dist/{pagination-NLGqRirf.js → pagination-3bPA_a6K.js} +19 -19
  484. package/dist/{pagination-NLGqRirf.js.map → pagination-3bPA_a6K.js.map} +1 -1
  485. package/dist/{popover-CghIYdQf.js → popover-Di55PyAI.js} +8 -8
  486. package/dist/popover-Di55PyAI.js.map +1 -0
  487. package/dist/{popover-menu-B4PoWhRl.js → popover-menu-B71Tn2Qz.js} +6 -6
  488. package/dist/{popover-menu-B4PoWhRl.js.map → popover-menu-B71Tn2Qz.js.map} +1 -1
  489. package/dist/{popover.recipes-QlD4JenO.js → popover.recipes-Bdyhj2db.js} +2 -2
  490. package/dist/{popover.recipes-QlD4JenO.js.map → popover.recipes-Bdyhj2db.js.map} +1 -1
  491. package/dist/primitives-B-CkiEMU.js +379 -0
  492. package/dist/primitives-B-CkiEMU.js.map +1 -0
  493. package/dist/primitives.js +5 -5
  494. package/dist/{progress-BroqrAyV.js → progress-rnS8-uAW.js} +11 -11
  495. package/dist/progress-rnS8-uAW.js.map +1 -0
  496. package/dist/{receipt-BuJynLgf.js → receipt-D0oswZ0p.js} +6 -6
  497. package/dist/{receipt-BuJynLgf.js.map → receipt-D0oswZ0p.js.map} +1 -1
  498. package/dist/rich-text-DvGulsNJ.js +78 -0
  499. package/dist/rich-text-DvGulsNJ.js.map +1 -0
  500. package/dist/rich-text-editor-sMU_Scqm.js +1204 -0
  501. package/dist/rich-text-editor-sMU_Scqm.js.map +1 -0
  502. package/dist/rich-text-editor.recipes-CadiF_Uu.js +88 -0
  503. package/dist/rich-text-editor.recipes-CadiF_Uu.js.map +1 -0
  504. package/dist/rich-text-editor.strings-CB59ekH2.js +38 -0
  505. package/dist/rich-text-editor.strings-CB59ekH2.js.map +1 -0
  506. package/dist/safe-image-src-C6kQSMBZ.js +17 -0
  507. package/dist/safe-image-src-C6kQSMBZ.js.map +1 -0
  508. package/dist/sanitize-html-DsQmI48u.js +92 -0
  509. package/dist/sanitize-html-DsQmI48u.js.map +1 -0
  510. package/dist/scroll-area-Bt_vXY2b.js +48 -0
  511. package/dist/scroll-area-Bt_vXY2b.js.map +1 -0
  512. package/dist/{separator-BNIgG3au.js → separator-C8DlRGwF.js} +4 -4
  513. package/dist/separator-C8DlRGwF.js.map +1 -0
  514. package/dist/{separator-BhtFyo4x.js → separator-CYHnjsAb.js} +2 -2
  515. package/dist/{separator-BhtFyo4x.js.map → separator-CYHnjsAb.js.map} +1 -1
  516. package/dist/services/actions/action-adapters.d.ts +22 -0
  517. package/dist/services/actions/index.d.ts +1 -1
  518. package/dist/services/actions.js +23 -6
  519. package/dist/services/actions.js.map +1 -1
  520. package/dist/settings-CQW3b-Cu.js +170 -0
  521. package/dist/settings-CQW3b-Cu.js.map +1 -0
  522. package/dist/sheet-4SEvVYzA.js +210 -0
  523. package/dist/sheet-4SEvVYzA.js.map +1 -0
  524. package/dist/{sidebar-CyR4XKwR.js → sidebar-C7WWR29L.js} +181 -180
  525. package/dist/sidebar-C7WWR29L.js.map +1 -0
  526. package/dist/sidebar-d7Dg80ln.js +511 -0
  527. package/dist/sidebar-d7Dg80ln.js.map +1 -0
  528. package/dist/{skeleton-3F0uhYn3.js → skeleton-Cz890JZF.js} +10 -10
  529. package/dist/skeleton-Cz890JZF.js.map +1 -0
  530. package/dist/smart-card-lFKxn5Hu.js +595 -0
  531. package/dist/smart-card-lFKxn5Hu.js.map +1 -0
  532. package/dist/{spinner-Cpf7oRkF.js → spinner-fa3h1Aif.js} +10 -8
  533. package/dist/spinner-fa3h1Aif.js.map +1 -0
  534. package/dist/{structure-CRdqVawd.js → structure-DC2dygdA.js} +3 -3
  535. package/dist/{structure-CRdqVawd.js.map → structure-DC2dygdA.js.map} +1 -1
  536. package/dist/{structure.recipes-Bqhf9oIh.js → structure.recipes-EPz60cU8.js} +37 -19
  537. package/dist/structure.recipes-EPz60cU8.js.map +1 -0
  538. package/dist/style.css +1 -1
  539. package/dist/surface-recipes-BKRVW8Os.js +43 -0
  540. package/dist/surface-recipes-BKRVW8Os.js.map +1 -0
  541. package/dist/table-CIKyLUsy.js +163 -0
  542. package/dist/table-CIKyLUsy.js.map +1 -0
  543. package/dist/{table-CcRDZiLP.js → table-CrcLN9Io.js} +544 -530
  544. package/dist/table-CrcLN9Io.js.map +1 -0
  545. package/dist/tabs-DwBJfjxX.js +190 -0
  546. package/dist/tabs-DwBJfjxX.js.map +1 -0
  547. package/dist/{text-inputs-DsR56TR-.js → text-inputs-aaK9wcDT.js} +151 -155
  548. package/dist/text-inputs-aaK9wcDT.js.map +1 -0
  549. package/dist/{text.styles-Q4sGAIgA.js → text.styles-g4He6UIW.js} +17 -14
  550. package/dist/text.styles-g4He6UIW.js.map +1 -0
  551. package/dist/theme.css +16 -12
  552. package/dist/themes/green.css +24 -0
  553. package/dist/{timelines-D1pkt3se.js → timelines-C_SBwHNP.js} +154 -164
  554. package/dist/timelines-C_SBwHNP.js.map +1 -0
  555. package/dist/tone-recipes-CPoExcTE.js +70 -0
  556. package/dist/tone-recipes-CPoExcTE.js.map +1 -0
  557. package/dist/tooltip-CsfgrfS7.js +111 -0
  558. package/dist/tooltip-CsfgrfS7.js.map +1 -0
  559. package/dist/track-recipes-CDcKmndW.js +10 -0
  560. package/dist/track-recipes-CDcKmndW.js.map +1 -0
  561. package/dist/{tree-BtmYyMZV.js → tree-BiKhg8AY.js} +72 -70
  562. package/dist/tree-BiKhg8AY.js.map +1 -0
  563. package/dist/typography/rich-text.js +1 -1
  564. package/dist/typography-DTRkE9zL.js +117 -0
  565. package/dist/typography-DTRkE9zL.js.map +1 -0
  566. package/dist/typography.js +2 -2
  567. package/dist/{ui-provider-DRPn3qNl.js → ui-provider-1D_NSYzO.js} +30 -23
  568. package/dist/ui-provider-1D_NSYzO.js.map +1 -0
  569. package/dist/ui-provider.js +3 -3
  570. package/dist/{upload-CDbYw1WN.js → upload-BO8-CLN6.js} +294 -293
  571. package/dist/upload-BO8-CLN6.js.map +1 -0
  572. package/dist/{upload-queue-CNd_hH_a.js → upload-queue-EOC8g1gf.js} +133 -138
  573. package/dist/upload-queue-EOC8g1gf.js.map +1 -0
  574. package/dist/upload.recipes-BbxTqrCT.js +61 -0
  575. package/dist/upload.recipes-BbxTqrCT.js.map +1 -0
  576. package/dist/{usage-card-VyJLUwRr.js → usage-card-obRaBskq.js} +42 -43
  577. package/dist/{usage-card-VyJLUwRr.js.map → usage-card-obRaBskq.js.map} +1 -1
  578. package/dist/{utils-BvH9PSmq.js → utils-l5LpDw2z.js} +264 -62
  579. package/dist/utils-l5LpDw2z.js.map +1 -0
  580. package/dist/value-inputs-TAYMX111.js +947 -0
  581. package/dist/value-inputs-TAYMX111.js.map +1 -0
  582. package/dist/value-typography-b8wpz1eX.js +116 -0
  583. package/dist/value-typography-b8wpz1eX.js.map +1 -0
  584. package/dist/workspace-DH0v0KcB.js +407 -0
  585. package/dist/workspace-DH0v0KcB.js.map +1 -0
  586. package/docs/consumer-skill/SKILL.md +62 -50
  587. package/docs/consumer-skill/examples/app-layout.tsx +3 -5
  588. package/docs/consumer-skill/examples/composition.tsx +3 -3
  589. package/docs/consumer-skill/examples/detail.tsx +59 -13
  590. package/docs/consumer-skill/examples/edit.tsx +2 -2
  591. package/docs/consumer-skill/examples/layout-blocks.tsx +20 -0
  592. package/docs/consumer-skill/examples/manifest.json +28 -6
  593. package/docs/consumer-skill/examples/receipt.tsx +2 -2
  594. package/docs/consumer-skill/examples/scoped-directory.tsx +3 -3
  595. package/docs/consumer-skill/examples/website.tsx +1 -1
  596. package/docs/consumer-skill/references/agents-md.md +33 -0
  597. package/docs/consumer-skill/references/analytics.md +1 -1
  598. package/docs/consumer-skill/references/composition.md +139 -24
  599. package/docs/consumer-skill/references/design-contract.md +12 -3
  600. package/docs/consumer-skill/references/discovery.md +4 -0
  601. package/docs/consumer-skill/references/installation.md +33 -1
  602. package/docs/consumer-skill/references/integration.md +32 -1
  603. package/docs/consumer-skill/references/public-api.json +1051 -610
  604. package/docs/consumer-skill/references/review.md +44 -8
  605. package/docs/consumer-skill/references/theming.md +14 -4
  606. package/docs/consumer-skill/references/tokens.json +5 -2
  607. package/docs/consumer-skill/references/workflows.md +30 -9
  608. package/docs/consumer-skill/scripts/composition-policy.mjs +127 -6
  609. package/docs/consumer-skill/scripts/discovery.mjs +11 -3
  610. package/docs/consumer-skill/scripts/pin-button-defaults.mjs +95 -0
  611. package/docs/consumer-skill/scripts/surface-policy.mjs +139 -5
  612. package/package.json +13 -3
  613. package/dist/accordion-BRTcsp8J.js +0 -205
  614. package/dist/accordion-BRTcsp8J.js.map +0 -1
  615. package/dist/action-menu-Drxw_vJk.js +0 -265
  616. package/dist/action-menu-Drxw_vJk.js.map +0 -1
  617. package/dist/affordance-geometry.generated-CL84ZN9A.js.map +0 -1
  618. package/dist/ai-artifact-DLVdK0Py.js.map +0 -1
  619. package/dist/attachment-DbjUWsP0.js +0 -244
  620. package/dist/attachment-DbjUWsP0.js.map +0 -1
  621. package/dist/auth-CAQcasMV.js.map +0 -1
  622. package/dist/avatar-Bu2HhitA.js.map +0 -1
  623. package/dist/badge-CzId1Wlm.js +0 -92
  624. package/dist/badge-CzId1Wlm.js.map +0 -1
  625. package/dist/breadcrumbs-BuYz5SDU.js +0 -128
  626. package/dist/breadcrumbs-BuYz5SDU.js.map +0 -1
  627. package/dist/button-BZDasD04.js +0 -651
  628. package/dist/button-BZDasD04.js.map +0 -1
  629. package/dist/button-BZyfTvwm.js.map +0 -1
  630. package/dist/buttons-D_6KJvEE.js +0 -99
  631. package/dist/buttons-D_6KJvEE.js.map +0 -1
  632. package/dist/cards-qGSErLw_.js.map +0 -1
  633. package/dist/chart-Bsc5BICK.js.map +0 -1
  634. package/dist/checkbox-BQNDjUCh.js +0 -34
  635. package/dist/checkbox-BQNDjUCh.js.map +0 -1
  636. package/dist/choice-inputs-Mk3iWbhr.js +0 -725
  637. package/dist/choice-inputs-Mk3iWbhr.js.map +0 -1
  638. package/dist/code-block-DzHKRybS.js +0 -183
  639. package/dist/code-block-DzHKRybS.js.map +0 -1
  640. package/dist/combobox-BFnbJJp3.js.map +0 -1
  641. package/dist/combobox-hozNwUcc.js +0 -847
  642. package/dist/combobox-hozNwUcc.js.map +0 -1
  643. package/dist/command-BnmSchli.js.map +0 -1
  644. package/dist/comments-u5L0OGip.js.map +0 -1
  645. package/dist/containers-DqB-bSYE.js.map +0 -1
  646. package/dist/data-display-Bihs9Ven.js +0 -1342
  647. package/dist/data-display-Bihs9Ven.js.map +0 -1
  648. package/dist/date-DOKhJPu7.js +0 -140
  649. package/dist/date-DOKhJPu7.js.map +0 -1
  650. package/dist/date-picker-DzP5HQq7.js +0 -1541
  651. package/dist/date-picker-DzP5HQq7.js.map +0 -1
  652. package/dist/date-pickers-BpgGz7S-.js +0 -196
  653. package/dist/date-pickers-BpgGz7S-.js.map +0 -1
  654. package/dist/display-CS6Hbk18.js.map +0 -1
  655. package/dist/dropdown-menu-D-boNgGO.js.map +0 -1
  656. package/dist/feedback-CJkUAapr.js +0 -233
  657. package/dist/feedback-CJkUAapr.js.map +0 -1
  658. package/dist/field-affordance-recipes-uKY4MsZ_.js +0 -25
  659. package/dist/field-affordance-recipes-uKY4MsZ_.js.map +0 -1
  660. package/dist/field-state-recipes-DQQpiLWC.js +0 -11
  661. package/dist/field-state-recipes-DQQpiLWC.js.map +0 -1
  662. package/dist/filters-D6FF8L6s.js.map +0 -1
  663. package/dist/form-sizing-QP8aIRaW.js +0 -103
  664. package/dist/form-sizing-QP8aIRaW.js.map +0 -1
  665. package/dist/format-iamDSqs2.js +0 -110
  666. package/dist/format-iamDSqs2.js.map +0 -1
  667. package/dist/forms-B5NCbkSC.js.map +0 -1
  668. package/dist/forms-numeric-Crrm80Lm.js +0 -867
  669. package/dist/forms-numeric-Crrm80Lm.js.map +0 -1
  670. package/dist/header-kxruN3RM.js.map +0 -1
  671. package/dist/icon-badge-Btc6pQrp.js +0 -53
  672. package/dist/icon-badge-Btc6pQrp.js.map +0 -1
  673. package/dist/input-SX9V0AL3.js +0 -255
  674. package/dist/input-SX9V0AL3.js.map +0 -1
  675. package/dist/item-DE4YnuJx.js +0 -258
  676. package/dist/item-DE4YnuJx.js.map +0 -1
  677. package/dist/media-gallery-DLp3HAz0.js +0 -201
  678. package/dist/media-gallery-DLp3HAz0.js.map +0 -1
  679. package/dist/mentions-Cl0Kt_Pd.js +0 -565
  680. package/dist/mentions-Cl0Kt_Pd.js.map +0 -1
  681. package/dist/navigation-DnQSNMT0.js +0 -276
  682. package/dist/navigation-DnQSNMT0.js.map +0 -1
  683. package/dist/navigation-DyytsLRB.js +0 -265
  684. package/dist/navigation-DyytsLRB.js.map +0 -1
  685. package/dist/number-DasMFWEG.js +0 -269
  686. package/dist/number-DasMFWEG.js.map +0 -1
  687. package/dist/overlay.recipes-BxW5FIfK.js +0 -6
  688. package/dist/overlay.recipes-BxW5FIfK.js.map +0 -1
  689. package/dist/overlays-DUbs1KEi.js +0 -1011
  690. package/dist/overlays-DUbs1KEi.js.map +0 -1
  691. package/dist/page-hGmT4nWK.js.map +0 -1
  692. package/dist/page-header-D8nERkn5.js +0 -112
  693. package/dist/page-header-D8nERkn5.js.map +0 -1
  694. package/dist/popover-CghIYdQf.js.map +0 -1
  695. package/dist/primitives-C7ff0QaI.js +0 -337
  696. package/dist/primitives-C7ff0QaI.js.map +0 -1
  697. package/dist/progress-BroqrAyV.js.map +0 -1
  698. package/dist/rich-text-DlxDOtf4.js +0 -32
  699. package/dist/rich-text-DlxDOtf4.js.map +0 -1
  700. package/dist/rich-text-editor-BKyG7rWz.js +0 -574
  701. package/dist/rich-text-editor-BKyG7rWz.js.map +0 -1
  702. package/dist/rich-text-editor.recipes-B72Nfuze.js +0 -81
  703. package/dist/rich-text-editor.recipes-B72Nfuze.js.map +0 -1
  704. package/dist/rich-text-editor.strings-BpnIQgMl.js +0 -25
  705. package/dist/rich-text-editor.strings-BpnIQgMl.js.map +0 -1
  706. package/dist/sanitize-html-BG9FGe-j.js +0 -64
  707. package/dist/sanitize-html-BG9FGe-j.js.map +0 -1
  708. package/dist/scroll-area-D-pIhEKl.js +0 -47
  709. package/dist/scroll-area-D-pIhEKl.js.map +0 -1
  710. package/dist/separator-BNIgG3au.js.map +0 -1
  711. package/dist/settings-DOTOzeZ2.js +0 -161
  712. package/dist/settings-DOTOzeZ2.js.map +0 -1
  713. package/dist/sheet-BFhrNehm.js +0 -205
  714. package/dist/sheet-BFhrNehm.js.map +0 -1
  715. package/dist/sidebar-CyR4XKwR.js.map +0 -1
  716. package/dist/sidebar-SvGJ0Zwi.js +0 -506
  717. package/dist/sidebar-SvGJ0Zwi.js.map +0 -1
  718. package/dist/skeleton-3F0uhYn3.js.map +0 -1
  719. package/dist/smart-card-DjGVV2xr.js +0 -584
  720. package/dist/smart-card-DjGVV2xr.js.map +0 -1
  721. package/dist/spinner-Cpf7oRkF.js.map +0 -1
  722. package/dist/structure.recipes-Bqhf9oIh.js.map +0 -1
  723. package/dist/surface-recipes-Dd__PD-w.js +0 -28
  724. package/dist/surface-recipes-Dd__PD-w.js.map +0 -1
  725. package/dist/table-CLtJTxoR.js +0 -147
  726. package/dist/table-CLtJTxoR.js.map +0 -1
  727. package/dist/table-CcRDZiLP.js.map +0 -1
  728. package/dist/tabs-BNgu7g0u.js +0 -188
  729. package/dist/tabs-BNgu7g0u.js.map +0 -1
  730. package/dist/text-inputs-DsR56TR-.js.map +0 -1
  731. package/dist/text.styles-Q4sGAIgA.js.map +0 -1
  732. package/dist/timelines-D1pkt3se.js.map +0 -1
  733. package/dist/track-recipes-LLPNVwFg.js +0 -10
  734. package/dist/track-recipes-LLPNVwFg.js.map +0 -1
  735. package/dist/tree-BtmYyMZV.js.map +0 -1
  736. package/dist/typography-BxQgiZyw.js +0 -96
  737. package/dist/typography-BxQgiZyw.js.map +0 -1
  738. package/dist/ui-provider-DRPn3qNl.js.map +0 -1
  739. package/dist/upload-CDbYw1WN.js.map +0 -1
  740. package/dist/upload-queue-CNd_hH_a.js.map +0 -1
  741. package/dist/use-file-drop-target-BX7GnhoQ.js +0 -39
  742. package/dist/use-file-drop-target-BX7GnhoQ.js.map +0 -1
  743. package/dist/utils-BvH9PSmq.js.map +0 -1
  744. package/dist/value-inputs-D0KCrfVC.js +0 -840
  745. package/dist/value-inputs-D0KCrfVC.js.map +0 -1
  746. package/dist/workspace-CcR8r-Nt.js +0 -395
  747. package/dist/workspace-CcR8r-Nt.js.map +0 -1
  748. /package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.strings.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,637 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 2.0.1 — 2026-10-18
4
+
5
+ One shared recipe and design-lint rule for each visual state, the fixes the new
6
+ drift checks found, and one command row and record-page recipe for every page
7
+ header. No public export or prop is removed. Additions: `header.tabs` on Page
8
+ (`PageHeaderTabs`); `primaryAction`, `secondaryActions`, `moreActionsLabel` and
9
+ `renderLink` on PageHeading, ResourceHeader, the resource shells and
10
+ SettingsShell, and `primaryAction` on WorkspaceRecordHeader;
11
+ `toPageHeaderAction` in `services/actions`; an optional `toggle` flag on
12
+ `ToolbarButtonConfig` and `RichTextEditorToolbarItem`; `context` on
13
+ `ActionMenu` (`ActionMenuContext`); an optional `actions.menuLabel` in DataTable
14
+ strings; `align` on ConfirmDialog and ActionDialog with UIProvider overlay
15
+ defaults; `selecting`, `defaultSelecting`, `onSelectingChange` and `onItemOpen`
16
+ on MediaLibrary; `useRichTextImages` and `images` on RichTextEditor and
17
+ RichText; the `themelia-react-ui/base/metadata-list` entrypoint; an optional
18
+ `fontFamily` on `signaturePadToSVG`; the `themelia-react-ui/base/batch-action-bar`
19
+ entrypoint; the order blocks, `SummaryPanel` and `AmountRow` in `blocks/commerce`;
20
+ `valueAlign` on MetadataList; `defaultValue`, `name` and ARIA props on TagsInput.
21
+ `PageActions`, `PageAction`,
22
+ `toPageAction`, `features/sync`, the standalone product region cards, the
23
+ `blocks/data-display` MetadataList exports and `ActivityRow` `moreLabel` are
24
+ deprecated.
25
+
26
+ ### Upgrading from 2.0.0
27
+
28
+ - **Focus and control borders.** Library controls draw the soft `--input`
29
+ boundary and one shared focus indicator. Drop `ring-2`, `ring-offset-*` or
30
+ full-strength `ring-ring` focus classes passed to library controls; the
31
+ consumer checker reports them as `focus-ring-recipe`. Themes that override
32
+ `--ring` should keep it at 3:1 against their surfaces.
33
+ - **Page commands.** Replace a `PageActions` ribbon or hand-built buttons in a
34
+ header's `actions` with `primaryAction` (one) and ordered `secondaryActions`;
35
+ mark irreversible commands `destructive: true` and confirm them in the
36
+ handler. `actions` stays for non-command controls such as a period select.
37
+ Move section tabs placed at the top of a Page body into `header.tabs`. The
38
+ consumer checker reports the old shapes as `page-command-roles`.
39
+ - **Overflow trigger names.** Overflow triggers are named "More actions" by
40
+ default. This replaces "Open menu" (`ActionMenu` `strings.openMenuLabel`),
41
+ "Card actions" (Card `actionsLabel`), "Actions" (ContentBlock and DataTable
42
+ row menus) and "Page actions" (`PageActions` `strings.menuLabel`). Update
43
+ tests or automation that find these buttons by name, or pass the old copy
44
+ through those strings. The DataTable actions column header stays "Actions"
45
+ (`strings.actions.triggerLabel`); the row trigger's name moves to the new
46
+ `strings.actions.menuLabel`. Copy that sets only `triggerLabel`, as localized
47
+ tables did before, keeps naming the trigger with it.
48
+ - **Overflow trigger size and glyph.** An icon-only `ActionMenu` trigger now
49
+ follows `UIProvider.density.defaultScale` instead of always rendering at
50
+ `md`; pass `buttonProps.size` to match the controls beside it. The default
51
+ glyph is the horizontal ellipsis (`MoreHorizontal`) rather than
52
+ `MoreVertical`; `icon` still overrides it.
53
+ - **State styling.** Hover, selection, pressed, status-tint, divider, disabled,
54
+ motion, corner and stacking classes passed to library rows and tiles should
55
+ follow the shared roles below. Pressed toggles, including AI feedback votes,
56
+ editor formatting buttons and the editor's source view, show the accent fill
57
+ instead of a status colour or a solid primary fill. `HighlightedText`'s
58
+ default `highlightClassName` is the shared match mark: foreground text on the
59
+ warning tint.
60
+ - **MetadataList moved to base.** Import `MetadataList`, its item types and
61
+ default strings from `themelia-react-ui/base/metadata-list`. The
62
+ `themelia-react-ui/blocks/data-display` re-exports keep working and are
63
+ deprecated. Labels render semibold.
64
+ - **MediaLibrary opens before it selects.** Activating an asset (click, Enter,
65
+ Space) calls `onItemOpen` or shows the details panel. Selection is an explicit
66
+ mode: `selecting`, `defaultSelecting` and `onSelectingChange`. Picker dialogs
67
+ start selecting; pass `defaultSelecting` where a library relied on selecting
68
+ by default.
69
+ - **ConfirmDialog is centred.** ConfirmDialog and ActionDialog accept
70
+ `align: 'start' | 'center'`, resolved from the prop, then the UIProvider
71
+ `overlay.defaultConfirmAlign` / `overlay.defaultDialogAlign` defaults, then
72
+ center for ConfirmDialog and start for ActionDialog.
73
+ - **Deprecated: `themelia-react-ui/features/sync`.** `SyncRangeDialogForm` is
74
+ application-specific; use `SchemaForm` with `radio-cards` and
75
+ `checkbox-cards` fields. The entrypoint still ships.
76
+ - **Deprecated: standalone product region cards and row menus.** Render them
77
+ through `ProductOverview` slots and the `renderOptionActions` /
78
+ `renderVariantActions` options. They stay exported.
79
+ - **Deprecated: `ActivityRow` `moreLabel`.** The collapsed metadata preview it
80
+ labelled is gone; secondary detail opens with the details disclosure.
81
+ - **Selection bars are a `BatchActionBar`.** DataTable's default selection
82
+ toolbar now docks to the bottom of the viewport (`floating`); pass
83
+ `selectionToolbarPlacement="inline"` to keep it in the table. Its summary and
84
+ the new `totalRowCount` prop default to `pagination.total`, so server-paginated
85
+ tables count the whole result. Product variant tables show an inline bar only
86
+ while variants are selected; `renderBulkActions` now replaces the default
87
+ commands, as documented (return `null` to keep them), and Delete no longer
88
+ repeats the count.
89
+ - **MetadataList rows.** `layout="rows"` draws rules only with `itemSeparator`,
90
+ and values start their column on `2fr/3fr` tracks. Pass `valueAlign="end"` for
91
+ the previous right-aligned figures, such as money columns.
92
+ - **TagsInput.** Chips sit inside the field, before the text input in Tab order;
93
+ the count and clear-all move to a footer under the field, and the placeholder
94
+ shows only while the field is empty. The input stays enabled at `maxTags`.
95
+ - **Commerce DOM hooks.** RefundStatusCard, CartSummaryCard,
96
+ DiscountStackPreview, TaxBreakdownCard and ShipmentTracking render on `Card`
97
+ and lose the `content-block--*` classes and `data-component="content-block"`;
98
+ their own `--component` classes stay. ShipmentTracking and InvoiceHeader show
99
+ a visible title with the status chip in its suffix.
100
+
101
+ ### Changes
102
+
103
+ - **Visual: the More actions menu ends the page header's command row.** Page
104
+ commands render as the secondary commands, then the primary command, then the
105
+ More actions menu (`[secondary…] [primary] [⋯]`); 2.0.0 placed the menu
106
+ between the secondary and primary commands. The menu trigger takes the
107
+ secondary treatment, an outline square at the commands' own height, including
108
+ under a compact `UIProvider` scale; it was a ghost glyph at the default size.
109
+ - **Visual: one overflow trigger.** Every overflow menu shares one `ActionMenu`
110
+ trigger recipe (`action-menu.recipes.ts`). It draws the `⋯` glyph, is named
111
+ "More actions", and is a square at the size of the controls beside it, or at
112
+ the provider scale when nothing sits beside it. `context="inline"`, the
113
+ default, is a quiet ghost square with a muted glyph for rows, cards and
114
+ footers. `context="commands"` is the outline square beside outline commands,
115
+ which the page header's More actions trigger now takes from the recipe.
116
+ Card headers, DataTable rows, Kanban items and the EmailComposer footer
117
+ follow the provider scale. Activity rows and ApiKeyList match their own
118
+ compact expand and add controls. `PageActions` uses the outline treatment at
119
+ its inline `size`. The library no longer hand-sets trigger sizes, styles or
120
+ glyphs.
121
+ - **The menu ends any row with a primary command.** The EmailComposer footer
122
+ renders `[Discard] … [Send] [⋯]`, where 2.0.0 placed the menu before Send.
123
+ Send and the menu wrap together, so the menu never sits alone on a narrow
124
+ line.
125
+ - **One menu per header, destructive commands last.** `ProductVariantDetails`
126
+ merges its default variant commands (Open, Edit, Duplicate, Delete) into the
127
+ card's own `actions` menu. Its header no longer shows a second, differently
128
+ sized `⋯`, and Delete sorts last. A custom `renderActions` still renders in
129
+ the header. The product variants bulk bar places Delete after Apply and any
130
+ `renderBulkActions` content.
131
+ - **Overflow trigger enforcement.** The `overflow-trigger` rule in
132
+ `check:contract` rejects overflow glyph imports outside the ActionMenu owner,
133
+ raw UI, pagination and the OverflowTabBar More tab. It also rejects icon-only
134
+ `ActionMenu` triggers that set `tone`, `buttonStyle`, `iconOnly` or
135
+ action-size classes through `buttonProps`.
136
+ `tests/browser/overflow-trigger.spec.ts` checks order, heights and every
137
+ opened menu at 390px and 1440px in light and dark.
138
+ - **One command row for every header.** PageHeading owns the role-based row,
139
+ and `PageHeaderAction` moves to `base/navigation` (still exported from
140
+ `layout/page`). Page and PageHeader pass their commands to it; ResourceHeader,
141
+ ResourceIndexShell, ResourceShowShell and TabbedResourceShell
142
+ (`ResourceHeaderCommandProps`), SettingsShell and WorkspaceRecordHeader take
143
+ the same `primaryAction` and `secondaryActions` and render the same row after
144
+ their custom `actions`. WorkspaceRecordHeader's `secondaryActions` accepts
145
+ command objects; rendered elements keep their previous cluster.
146
+ - **Section tabs in the page header.** `header.tabs` renders a record's
147
+ sections under the header's copy and commands with the shared OverflowTabBar:
148
+ `badge` shows a count, tabs that do not fit move into a More menu, the active
149
+ tab stays visible, and `onValueChange` switches the section or routes.
150
+ - **Deprecated `PageActions`.** Its ribbon defaulted inline commands to solid
151
+ secondary buttons beside a larger ghost menu trigger and collapsed by viewport
152
+ width. Pass commands by role instead, or use ActionButtons for a toolbar.
153
+ `toPageHeaderAction` adapts a resolved action to a role-based command, with a
154
+ destructive tone marking it destructive.
155
+ - **One record-page recipe.** The detail recipe, the resource-detail build
156
+ recipe and a new Page example show a record with one status badge,
157
+ role-based commands, a confirmed destructive command and section tabs with
158
+ counts. Catalogue examples for PageHeading, resources, workspaces, settings,
159
+ app shells and tables use role-based commands; the consumer docs no longer
160
+ recommend card dividers, footer command rows or decorative title icons.
161
+ - **Consumer checker.** `page-command-roles` also flags PageActions,
162
+ ActionButtons and ActionMenu in a header's `actions`, and covers PageHeading,
163
+ the resource shells, WorkspaceRecordHeader and SettingsShell.
164
+ `decorative-icon` flags a page `titleIcon` without a link or handler, and an
165
+ icon on more than one page command. `raw-button` no longer flags a native
166
+ button passed as a package owner's `render`, such as an Item row rendered as
167
+ a button; the owner keeps that root's focus edge and row anatomy. Local
168
+ components passing a native button are still reviewed.
169
+ - **Teaching material follows the house rules.** Catalogue examples, templates
170
+ and the shipped consumer examples use an untoned Button for neutral commands
171
+ (a `tone="secondary"` Button without `buttonStyle` renders solid), spell
172
+ neutral badges `tone="neutral"`, space siblings with Stack, Grid and
173
+ AdaptiveGrid instead of flex/grid gap divs or `space-y` margins, and drop
174
+ decorative title tiles. The order, product, customer, staff and overview
175
+ templates keep Page's default measure; the order template's fulfillment is
176
+ its `header.primaryAction`, the staff template's suspension is a
177
+ `destructive: true` secondary action confirmed by ConfirmDialog, and neither
178
+ repeats the header's status badge in a card or fact list.
179
+ - **Agent guidance closes the loop.** The consumer skill ships a project
180
+ instructions block (`references/agents-md.md`) to paste into an app's
181
+ `AGENTS.md`: under 2,000 characters, version-stamped in its start marker,
182
+ generated and verified by `check:skill`, and naming only scripts that ship
183
+ with the skill. The installed identity recipe reports the block as missing,
184
+ current or stale. SKILL.md and the review guide now make the composition
185
+ checker the agent's done condition (no errors on changed files, at most three
186
+ fix rounds, then the app's typecheck, lint and tests) with a five-line
187
+ hand-back, instead of calling it optional.
188
+ - **Consumer-skill evals.** `evals/consumer-skill` holds eight admin tasks,
189
+ five of them temptations such as a red Delete button or hand-made KPI cards,
190
+ each with a reference and a naive solution. `scripts/consumer-evals.mjs`
191
+ scores agent outputs with the shipped checker, imports and source patterns,
192
+ and `check:agent` proves every reference passes and every naive version fails.
193
+ - **Fix: destructive activity actions.** ActivityFeed row menus passed the
194
+ action tone as an unknown `variant` field, so a destructive action lost its
195
+ destructive treatment and its place at the end of the menu.
196
+ - **Visual: one control boundary and one focus indicator.** `--input` is the
197
+ single control boundary: fields, select and date triggers, checkboxes, radios,
198
+ switch tracks, upload targets and outline buttons all draw it, so adjoining
199
+ controls read as one family. It is now soft and translucent
200
+ (`oklch(0.28 0 0 / 15%)` in light, white at 15% in dark) and reads the same on
201
+ every surface, replacing the 3:1 gray of 2.0.0 (`oklch(0.62 0 0)`, white at
202
+ 40% in dark) that made fields and selects read darker than the outline buttons
203
+ beside them; `--border` stays the divider color, and the repeater's empty
204
+ placeholder uses it. Every focused element draws one indicator from
205
+ `src/lib/focus-recipes.ts`: a 1px `--ring` edge at full strength (the
206
+ control's own border, an inset edge on borderless rows and regions, or an
207
+ outline just outside link and text-button glyphs) inside a soft 3px halo of
208
+ `--ring` at 50%. It replaces the 2px full-strength and offset rings, which
209
+ read as a heavier border. The edge carries the 3:1 contrast. An invalid field
210
+ keeps its destructive border at rest and while focused, where the halo turns
211
+ destructive; there is no resting halo. Focus on a MediaGallery tile is drawn
212
+ inside the tile, where its overflow clipping had hidden it. Design lint's
213
+ `focus-ring-recipe` rule (replacing `focus-ring-contrast`) rejects other focus
214
+ ring widths, offsets and halo strengths in library source and on imported
215
+ consumer controls. The contrast contract keeps `--ring` and `--sidebar-ring`
216
+ at 3:1 and checks `--input` against a 1.3:1 visibility floor on background,
217
+ card, popover, muted, accent and secondary surfaces.
218
+ - **Visual: one recipe per state family.** Each family that had several local
219
+ spellings now has one owner and a design-lint rule that cannot acquire
220
+ migration debt.
221
+ - Rows (navigation, lists, trees, results, menus) hover and select with
222
+ `--accent`, and the current location adds medium weight, so a hover never
223
+ reads as current. Ghost and outline buttons hover with the same fill and its
224
+ `--accent-foreground`; a component's own hover colour still wins.
225
+ - Toggles hover with `--muted` and press with `--accent`. Tables keep a
226
+ quieter `muted` ladder for stripes, hover and selection. Segmented tracks
227
+ lift the active segment to `--card`.
228
+ - Text never takes opacity: faded secondary text, which fell under 4.5:1, uses
229
+ the typography roles.
230
+ - Dividers are `--border` at full strength on surface edges and at 60% between
231
+ rows.
232
+ - Disabled content dims once, to 50%.
233
+ - Status and emphasis tints use one scale per tone
234
+ (`src/lib/tone-recipes.ts`): a wash for large surfaces, a tint for chips,
235
+ badges and icon tiles, and an edge, halo and line strength. The contrast
236
+ contract tests each tone's ink on its tint. Badges, alerts, avatars, icon
237
+ tiles, activity, search, calendar, timeline, commerce and AI blocks share
238
+ it. Search matches and edit diffs use one inline mark, and the heatmap and
239
+ distribution ruler keep their data ramps.
240
+ - Colour, border and shadow state changes keep the default 150ms transition.
241
+ - Corners derive from `--radius`: the fixed 4px `rounded` and the t-shirt
242
+ steps in raw UI, skeletons and chips are gone.
243
+ - Stacking uses one scale: raised, sticky, sticky over sticky, chrome and
244
+ overlay.
245
+ - SectionNav links gain the shared focus indicator, borderless Item rows draw
246
+ the focus edge inset, and the column-resize handle marks focus in the ring
247
+ colour.
248
+ - Neutral fills use one strength per role: a wash for quiet regions, a band
249
+ for header, toolbar and footer strips, a solid track, a neutral chip and
250
+ neutral markers. Twenty strengths become five. Table heads, toolbars, empty
251
+ states, AI panels, auth and workspace regions, tab tracks, meters and
252
+ carousel dots share them.
253
+ - Elevation uses one theme shadow per role: resting, card, raised, lifted and
254
+ modal. The command palette's 2xl shadow, two custom table-frame shadows
255
+ (which glowed in dark mode) and a shadow colour override are gone.
256
+ - Keyboard-shortcut hints in the header search trigger and the global search
257
+ footer share one key-cap style.
258
+ - Floating chips over media, lifted panels over the auth art and the chat
259
+ composer band are opaque.
260
+ - A drift census budgets each family's vocabulary in `check:design-lint`, and
261
+ a rendered role-parity browser check measures hover, current, disabled and
262
+ focus in light and dark.
263
+ - Rich-text toolbar toggles announce their state. Built-in format buttons and
264
+ the source view expose `aria-pressed`; undo and redo do not.
265
+ `ToolbarButtonConfig` and `RichTextEditorToolbarItem` gain an optional
266
+ `toggle` flag; an extra toolbar item with `isActive` is a toggle unless it
267
+ sets `toggle: false`.
268
+ - Item titles that cannot fit end in an ellipsis on their text. The title row is
269
+ a flex container, where `text-overflow` has no effect, so a long token was
270
+ clipped mid-glyph instead: an applied coupon `SPRING2026` read as `SPRING202`.
271
+ Truncating titles in citations, vendor profiles, gift cards and attachments
272
+ benefit too. The applied coupon also carries its full code as a `title`.
273
+ - **Overlays draw one rule per region boundary.** ActionDialog, ActionDrawer
274
+ and ConfirmDialog separate header, body and footer with a rule, and a dialog
275
+ without a body shows a single rule.
276
+ - **Rich text images.** RichTextEditor and RichText support images through
277
+ `useRichTextImages`: the consumer owns `upload(file, { signal })`; the library
278
+ owns toolbar, paste and drop insertion, the upload placeholder, cancel, retry
279
+ and remove, type and size limits, alt text and the http/https/blob/relative
280
+ source policy. `renderImage` draws read-only images with the consumer's
281
+ component.
282
+ - **RichTextEditor runs Tiptap.** Its runtime check required `EditorContent`
283
+ to be a function, but Tiptap 3 exports it as `React.memo`, so every editor
284
+ (rich text, comment, activity and email composers) silently rendered the
285
+ contenteditable fallback with formatting disabled. Picking a mention in Tiptap
286
+ now replaces its `@query` instead of appending after it, and the editor chip
287
+ keeps the `.rsc-mention` hook, so mention-chip.css draws it in both engines.
288
+ - **Mentions insert as atomic badge chips** removed by one Backspace. The
289
+ suggestion list and picker are more compact, and kind filters use the shared
290
+ toggle style.
291
+ - **Global search** builds its field on the public `InputGroup` and lays out
292
+ results, group headings and the footer with the compact Command recipe.
293
+ - **Activities open compact.** Rich rows show the headline and description;
294
+ metadata, changes, details, resource chips and inline actions appear together
295
+ behind "Show details".
296
+ - **Comments** no longer leave an empty band under each comment's action row.
297
+ - **Choice inputs centre on the label line.** Checkbox, radio, switch and
298
+ selected-card checks share one label-line track (questionnaire,
299
+ ApiTokenManager, card groups).
300
+ - **One plain X clears fields.** Input, Textarea, Cascader, Combobox and global
301
+ search clear actions, and TagsInput and Combobox chip removes, draw a plain X
302
+ instead of a circled X.
303
+ - **Cascader** draws Input's field frame and the shared Combobox affordance
304
+ track; its clear sits beside a chevron aligned with Select's.
305
+ - **Visual: Badge `sm` and `md` are 2px taller** (20px and 23px) at the same
306
+ type size; inline badges are unchanged, and TagsInput chips follow.
307
+ - **NavigationTabs** keeps the current tab lifted under hover and press;
308
+ inactive tabs change colour only.
309
+ - **SignaturePad** draws, exports and previews typed names in the pad's font
310
+ (theme sans by default) instead of `cursive`, and fits long names by font
311
+ size; `signaturePadToSVG` accepts an optional `fontFamily`.
312
+ - **Fixes:** Dropzone centres both copy lines; IconBadge sizes child glyphs with
313
+ its icon role (SmartAccordion medallions render at 16px); Alert's icon and
314
+ action columns use Toast's 8px gap; content typography fits images to the
315
+ column.
316
+ - **Catalogue:** the deprecated Sheet page, the products main-column, actions
317
+ and support-rail pages and the sync page are retired; their URLs redirect to
318
+ the overlays, product overview and SchemaForm pages.
319
+ - **BatchActionBar** (`themelia-react-ui/base/batch-action-bar`): one selection
320
+ bar with a count, bulk actions and Clear, `floating` (docked, lifted, opaque)
321
+ or `inline`. The count is a polite live region, Escape inside the bar clears,
322
+ and focus returns to the list (or `returnFocusRef`) when the bar goes away.
323
+ DataTable, product variants and MediaLibrary's new `bulkActions` use it; the
324
+ old sticky selection toolbar and its overlap with the sticky topbar are gone.
325
+ - **Order blocks** in `blocks/commerce`: `OrderHeader` (payment and fulfilment
326
+ status axes), `FulfillmentGroup`, `OrderLineItem`, `OrderSummary`,
327
+ `OrderTransactions` and `OrderCustomer`, with an Orders catalogue group and an
328
+ Order detail composition. The shared money ledger `SummaryPanel` and
329
+ `AmountRow` now draw CartSummaryCard, TaxBreakdownCard, DiscountStackPreview,
330
+ InvoiceHeader and OrderSummary: no tinted box, one rule above a grand total.
331
+ - **Commerce blocks follow the source kit.** ShipmentTracking has a copyable
332
+ tracking number (`onCopyTracking`) and a timestamped checkpoint rail whose
333
+ current step is `aria-current="step"`; RefundStatusCard is an ordered list of
334
+ stages; PaymentMethod gains `variant="row"` and speaks `strings.formatCard`
335
+ ("Visa ending 4242"); CartSummaryCard falls back to initials on a failed image
336
+ and adds `strings.formatQuantity`; DiscountStackPreview takes an optional
337
+ `kind` and `id`. Blocks pass native attributes to their root. `CartSummary`,
338
+ `DiscountStack`, `RefundStatus` and `PaymentMethodCard` are added as the source
339
+ kit's names for the same components. `Timeline` items expose `data-status` and
340
+ mark the current item `aria-current="step"`.
341
+ - **MetadataList** labels wrap in every layout and stay semibold; inline
342
+ `itemSeparator` is a middle dot hidden from screen readers; `render` output
343
+ takes the value style; the info trigger no longer grows its line; `icon` takes
344
+ any `ComponentType<{ className?: string }>`.
345
+ - **TagsInput fixes.** Multi-tag paste commits every tag, `sortTags` removes the
346
+ right tag, object tags are created from an empty value, a refused entry no
347
+ longer traps Tab, IME composition no longer commits, a typed delimiter splits,
348
+ single-token paste is native, and focus moves to the neighbouring chip after a
349
+ removal. Refused entries stay in the draft and are announced
350
+ (`strings.notAdded`). New `defaultValue`, `name` (hidden `name[]` inputs) and
351
+ ARIA pass-through; `TagsInputStrings` and `defaultTagsInputStrings` are
352
+ exported.
353
+
354
+ ## 2.0.0 — 2026-10-16
355
+
356
+ A major release. Untouched defaults now give a screen one deliberate primary
357
+ command, neutral surfaces where colour only states status, and the overlay
358
+ family for every dialog-like surface. Public exports and props are retained (the
359
+ contract check keeps every public symbol); what changes is defaults, appearance,
360
+ a few DOM hooks and some semantics.
361
+
362
+ ### Upgrading from 1.x
363
+
364
+ - **Buttons.** An untoned `Button` is the neutral outline. Give each screen's
365
+ main command `tone="primary"`, run
366
+ `docs/consumer-skill/scripts/pin-button-defaults.mjs` (dry run by default,
367
+ `--write` to apply) to keep existing screens' look, or restore the old default
368
+ app-wide with `UIProvider` `button: { defaultTone: 'primary',
369
+ defaultButtonStyle: 'solid' }`.
370
+ - **Brand colour.** The default primary is near-black. Import
371
+ `themelia-react-ui/themes/green.css` after `style.css` to keep the green brand.
372
+ - **Badges.** An untoned `Badge` is neutral; `UIProvider`
373
+ `badge.defaultTone: 'primary'` restores the old default.
374
+ - **Page titles** are the route's `h1` at 20px; pass `headingTag="h2"` for a page
375
+ nested inside another titled page.
376
+ - **Overlays.** Replace the deprecated base `Sheet` exports with `ActionDrawer`
377
+ from `features/overlays`. `ConfirmDialog` shows its tone icon only with
378
+ `showIcon`. Scrims no longer blur, and dialog regions draw no header or footer
379
+ rules.
380
+ - **Formatted text.** Negative numbers print with a true minus (U+2212) instead
381
+ of a hyphen; update tests, snapshots or parsers that match formatted output.
382
+ - **Decorative icons and dividers** are gone from the library's own blocks,
383
+ features and templates. Public `icon`/media props and Card `headerDivider`/
384
+ `footerDivider` remain for products that need them; `adminStarterUIDefaults`
385
+ no longer turns card dividers on.
386
+ - **DOM hooks.** `InventorySectionCard` exposes card hooks instead of
387
+ `content-block--*`, and `seo-listing-card--score-icon` is removed.
388
+
389
+ ### Changes
390
+
391
+ - **Breaking (visual): overlays have no blur and no static rules, and they are
392
+ the only dialog API.** The modal scrim is a plain `--overlay-backdrop` tint.
393
+ Dialog, alert-dialog and drawer regions draw no header/footer rules or tinted
394
+ footer: the shell owns a 20px outer inset and 16px between regions, and a
395
+ scrolling body shows a rule only on an edge that hides content. Surfaces use
396
+ one border on `bg-popover`; drawers draw one rule on their open edge. The
397
+ close button is centred on the first title line and comes last in the DOM, so
398
+ opening focuses the first field or action. `ConfirmDialog` matches
399
+ `ActionDialog` widths, supports `surfaceStyle` and shows no tone icon unless
400
+ `showIcon`; emphasis no longer tints the border; a non-modal `ActionDrawer`
401
+ stays open on page presses; `initialFocusRef` accepts nullable React 19 refs;
402
+ a string `trigger` renders a Button. The base `Sheet` exports are deprecated
403
+ in favour of `ActionDrawer`. DataTable's in-place `fullscreen` mode stays the
404
+ one modal surface outside the overlays: the table's own region is maximised,
405
+ so its scroll position, focus and column state survive, and the contract
406
+ check (`modal-owner`) rejects any other hand-built modal or borrowed
407
+ Dialog/Sheet in library source. The consumer skill (house rule 9 and a dialogs
408
+ section) and the checker (`raw-overlay-primitive` for `role="dialog"`,
409
+ `aria-modal`, `fixed inset-0` layers and modal libraries; `deprecated-owner`
410
+ from the public index) enforce the overlay owners. Nothing in the library uses
411
+ `backdrop-filter` any more: sticky table headers and toolbars, the form
412
+ actions bar, carousel controls and upload overlays are opaque.
413
+ - **Inline values follow running text.** Inside `Text`, `Heading`, `Label`,
414
+ `TextLink`, `ItemTitle`/`ItemDescription` and `CardDescription`, value
415
+ primitives (`Value`, `MonoValue`, `Money`, `Number`, `Percent`, `Duration`,
416
+ `FileSize`, `Dimensions`, dates, links) take the sentence's size, colour,
417
+ weight and leading unless a prop says otherwise; standalone use is unchanged.
418
+ `Initials` inherits by default. Text `type`/`weight`/`lineHeight` accept
419
+ `'inherit'`. Empty values share the `EmptyValue` treatment.
420
+ - Negative numbers print with a true minus (U+2212) in every formatter and
421
+ number primitive (`formatWithMinusSign` in `lib/format`).
422
+ - Form controls share one geometry and state contract: every field and
423
+ field-shaped trigger is the same height, radius, `--input` border, text size
424
+ (16px on touch) and 2px focus ring; a keyboard-focused invalid field shows a
425
+ full-strength destructive ring; select-like chevrons share
426
+ `selectToggleRecipes` (16px glyph centred where the Select draws it);
427
+ Textarea's first line aligns with an Input's text; field triggers no longer
428
+ take a button hover fill; disabled inputs lose the read-only fill. Checkbox
429
+ shows a dash when indeterminate; choice cards mark selection with the border
430
+ only; pill radios get roving arrow-key focus; DecimalInput steps with arrow
431
+ keys and keeps uncontrolled values; DatePicker gains `id`/`invalid` and no
432
+ longer reddens its label; DateTimeInput passes `stepMinutes` correctly;
433
+ Cascader gets an inline clear; Combobox Escape on a closed field keeps the
434
+ value and reaches the surrounding overlay. A Combobox reserves its whole
435
+ toggle (and clear) target plus the copy gap, so a long value never runs under
436
+ a target at any density. A one-line text button is exactly its action height
437
+ at every spacing and density (its block inset is capped); wrapped labels
438
+ still grow the button.
439
+ - Display and navigation: Badge follows its parent's alignment (no
440
+ `self-center`); flat/`padding="none"` Cards use the 16px header-to-body gap;
441
+ the default outline button border is visible in dark; `TextButton` md is
442
+ `text-sm`; ButtonGroup seams and corners are fixed; untoned ActionButtons are
443
+ neutral; menu group captions use the xs secondary role; OverflowTabBar gets
444
+ arrow/Home/End keys and the shared 36px recipe; active tabs read above the
445
+ track in dark; pagination links are 36px squares; accordion focus is inset
446
+ with no open tint; toaster status icons reach 5:1; code diffs use tints;
447
+ StackedAvatars fallbacks are neutral; tables render rules without preflight
448
+ and are a tab stop only while they overflow. `PageHeading` `withSeparator`
449
+ defaults to `false`.
450
+ - Typography: Heading `tracking-tight` from xl and `leading-tight` from 2xl;
451
+ link focus rings hug the text and follow wrapped lines; text, headings and
452
+ money align with logical start/end so they mirror in RTL.
453
+ - Scoped density: arbitrary values no longer read derived `--spacing-*` aliases
454
+ (resolved once on `:root`), so tracks, insets and offsets follow a
455
+ `data-density` scope.
456
+
457
+ - **Breaking (visual): visual restraint pass.** Icons now carry information
458
+ or are omitted, colour only states status, and spacing, not rules, separates
459
+ sections. Public `icon`/media props remain for consumers; the library's own
460
+ compositions stop passing decorative ones.
461
+ - Rows: a plain `Item` (default variant, no inline padding) in an `ItemGroup`
462
+ sits flush with the group's top and bottom edges, plain rows touch so their
463
+ density padding is the row spacing, and the default variant drops its
464
+ transparent 1px border so row text aligns with headings and labels above
465
+ it. Boxed `outline`/`muted` rows keep their gap. This fixes uneven space
466
+ around dividers and at card bottoms (8px above a rule against 17px below
467
+ it, 30px at a card's bottom against 20px at its top on the order page).
468
+ - Blocks and features no longer hard-code decorative icons on card titles
469
+ (address, payment method, order/refund status, tax breakdown, subscription,
470
+ voucher, coupon, cart, inventory, SEO listing, every product section, sensitive
471
+ actions, AI confirmation/tool call/package info/citation), on metadata and
472
+ list rows, inside inputs and badges, or on ordinary text buttons. Kept:
473
+ icon-only buttons, menu and navigation icons, affordances, search glyphs,
474
+ `+` on add commands, state glyphs, event-type markers and real media.
475
+ - Colour states status: kinds, categories and counts are neutral; live and
476
+ in-progress states use `info` instead of the near-black primary;
477
+ `LoyaltyPoints` `tierTone` defaults to `neutral` (was `warning`); activity
478
+ events without a status tone are neutral; product rows render
479
+ `tone="primary"` neutral; micro-grid single-series charts use `--chart-1`.
480
+ - No boxes inside cards and no section rules: tinted or bordered inset panels,
481
+ stat tiles and per-section dividers are gone across commerce, data-display,
482
+ AI, admin, product, activity, resource-assignment, schema-form, sync and
483
+ media-library compositions. One rule stays above financial grand totals.
484
+ Status chips sit beside their title (`titleSuffix`).
485
+ - Amounts and dates use the UI font with tabular figures; monospace stays for
486
+ identifiers and codes.
487
+ - Sentence-case default strings across commerce, admin, AI and dense-info
488
+ blocks (for example `Refund status`, `Tax breakdown`, `Redeem points`,
489
+ `View details`, `Edit role`, `Next step`). `DenseInfoStrings` gains an
490
+ optional `priority`.
491
+ - `ActivityLog` shows a category chip only when an entry passes `label` (it no
492
+ longer falls back to the raw `kind`), and date groups read `Yesterday` and
493
+ `October 14, 2026` instead of uppercase eyebrows with ordinals.
494
+ - `DateCell` and `DateMetaCell` `showIcon` default to `false`;
495
+ `GlobalSearchIdleState` headings have no default icons; `PageHeader` has no
496
+ separator after the back button; `AppSidebar` groups are separated by space
497
+ instead of rules; navigation count badges stay neutral when active.
498
+ - `OrderStatus` drops the facts that repeated its badge and timeline;
499
+ `LoyaltyPoints` shows Redeem only with `onRedeem`; vouchers show a balance
500
+ only when one is given; `InventorySectionCard` renders through `Card`, so its
501
+ `content-block--*` hooks become card hooks, and `seo-listing-card--score-icon`
502
+ is removed.
503
+ - Base fixes: `ActionMenu`'s icon-only trigger follows `buttonProps.size`;
504
+ Card `contentTop`/`contentBottom` share the content gap (`lg`, or
505
+ `contentGap`) instead of touching the body.
506
+ - Templates: `adminStarterUIDefaults` no longer turns on card header/footer
507
+ dividers; facts, line items, KPIs and commands lose decorative icons;
508
+ count/kind badges, repeated identity rows and repeated facts are removed.
509
+ - Guidance: house rule 7 and the Card anatomy reference cover decorative
510
+ icons and dividers; the composition checker warns (`decorative-icon`) on a
511
+ Card title icon or an icon on more than one MetadataList fact; AGENTS.md
512
+ records the visual restraint rules.
513
+
514
+ - **Breaking (visual): an untoned Button is now the neutral outline**
515
+ (`tone="secondary"`, `buttonStyle="outline"`), so a screen gets one deliberate
516
+ primary instead of a primary on every button. Give the main command
517
+ `tone="primary"`. A Button with a `tone` and no `buttonStyle` is now always
518
+ solid: `UIProvider` `button.defaultButtonStyle` applies only to buttons without
519
+ a tone. Run `docs/consumer-skill/scripts/pin-button-defaults.mjs` (dry run by
520
+ default, `--write` to apply, `--solid-only` to let untoned outline and ghost
521
+ buttons turn neutral) to keep existing screens' look, or restore the previous
522
+ default app-wide with `button: { defaultTone: 'primary', defaultButtonStyle:
523
+ 'solid' }`. The library's own components keep their primary commands
524
+ explicitly; their untoned outline and ghost buttons (cascader, signature pad,
525
+ questionnaire navigation) are now neutral instead of brand-colored, and
526
+ `SubmitStateButton` keeps the primary role for submit.
527
+ - Add a 32px `3xl` structural gap step (`gap-space-3xl`, `gap-x-space-3xl`,
528
+ `gap-y-space-3xl`; `--spacing-space-3xl` scales with `--space-scale`) for page
529
+ rhythm. Page now separates its header from its body with `3xl` (was 24px), and
530
+ Stack/Grid/Section accept `gap="3xl"` between major sections. The utility
531
+ budget grows from 393 to 396 spellings for this one shared responsibility.
532
+ - **Breaking (visual): the default primary is neutral.** `--primary` is
533
+ near-black in light (`oklch(0.205 0 0)`) and near-white in dark, so the brand
534
+ no longer sits next to the success green (they were ΔE_OK 0.074 apart). The
535
+ previous green is the opt-in brand theme `themelia-react-ui/themes/green.css`:
536
+ import it after `style.css` to keep the old look. It sets primary, its
537
+ foreground, the dark primary accent and the first chart series, and passes
538
+ the same contrast contract. `--primary-accent` now follows `--primary` in
539
+ dark too.
540
+ - Form-control boundaries reach 3:1 contrast (WCAG 1.4.11): `--input` is
541
+ `oklch(0.62 0 0)` in light (was the divider color, 1.26:1) and white at 40% in
542
+ dark (was 15%), so inputs, selects, checkboxes, radios and switch tracks are
543
+ visible on every surface. `--border` stays the lighter divider color. The
544
+ contrast contract now checks `--input` at 3:1 on background, card, popover,
545
+ muted, accent and secondary surfaces. The repeater's empty placeholder uses
546
+ the divider border.
547
+ - Button labels wrap inside the available width instead of overflowing: the
548
+ action height is now a minimum for text buttons (icon-only buttons stay fixed
549
+ squares), and buttons cap at their container's width. Pass `truncate` to keep
550
+ one line with an ellipsis where a button cannot grow, such as a joined group
551
+ or dense toolbar. Components that size a button themselves (`h-auto`,
552
+ `h-full`) now also reset the minimum height, and the header search trigger
553
+ uses `size="sm"` instead of a height override.
554
+ - Add role-based page commands to PageHeader and `Page header`:
555
+ `primaryAction` (one solid primary command, trailing and always visible) and
556
+ ordered `secondaryActions` (two outline buttons, then a More actions menu).
557
+ Destructive secondary commands always move into that menu; below `sm` every
558
+ secondary command collapses into it through CSS. Commands carry no tone or
559
+ button style. `moreActionsLabel` names the menu; the new `PageHeaderAction`
560
+ type is exported from `layout/page` and `layout`. Existing `actions` and
561
+ `slots.actions` are unchanged: `actions` renders before the commands, and
562
+ `slots.actions` still replaces the whole region.
563
+ - Move the admin templates, consumer recipes and Page catalogue examples to the
564
+ role-based commands. Header buttons now share one size, and the stacked shell
565
+ recipe no longer repeats the page's Create record command in its navigation.
566
+ - The optional consumer checker warns (`page-command-roles`) when Page or
567
+ PageHeader `actions` hold command buttons, pointing to `primaryAction` and
568
+ `secondaryActions`. The analytics template's period filter is now a labelled
569
+ Select instead of a toggle button.
570
+ - Nested `UIProvider`s no longer throw. A nested provider inherits the nearest
571
+ provider's resolved defaults and overrides only the keys it sets, so
572
+ `AdminUIThemeProvider` works inside an application's root provider.
573
+ - Metric surfaces format currency, numbers and percentages with the same
574
+ formatter and UIProvider policy as `Money` (locale, default currency and
575
+ `formatMode`). A currency metric without a currency now uses the provider
576
+ default (`USD` by default) instead of EUR, and prints like Money
577
+ (`1,840.00 USD` by default) instead of `USD 1,840.00`. `formatMetricValue`
578
+ accepts optional `FormatMetricValueOptions`.
579
+ - Add `useMoneyFormatter()` to `primitives` for money in strings (labels,
580
+ toasts, activity text) with the Money rules; the templates use it instead of
581
+ hand-built `$x.xx USD` strings, and their tables use the Date primitive.
582
+ - `toTableAction` keeps running actions disabled and hidden actions hidden in
583
+ DataTable rows; `toMenuAction` carries `id`, `visible` and `group`.
584
+ - Themes declare `color-scheme`, so native scrollbars and form controls follow
585
+ dark mode. Light `--primary-accent` now follows `--primary`, so a rebrand
586
+ needs one root.
587
+ - Unit tests resolve the package's own imports from source, so `npm test` no
588
+ longer needs (or silently uses) a previous build.
589
+ - Page titles are the route's `h1` by default (was `h3`) and use the 20px
590
+ `text-xl` role (was 18px), so page and card titles (16px) read as distinct
591
+ levels. Pass `headingTag="h2"` for a page nested inside another titled page.
592
+ - Card and MediaLibrary plain-text titles are exposed as level-2 headings, so
593
+ assistive technology can move between surfaces. Title-suffix badges stay out
594
+ of the heading's name; custom title nodes keep their own semantics.
595
+ - An untoned Badge is now neutral (was primary), so only a deliberate tone
596
+ signals state. Set `UIProvider` `badge.defaultTone: 'primary'` to keep the
597
+ previous look. The Default address and payment-method badges are neutral too.
598
+ - `useMoneyFormatter(defaults)` binds screen defaults such as `currency` once;
599
+ each call can still override them. `MoneyFormatterOptions` is exported.
600
+ - The consumer skill opens with eight house rules (provider, Page, command
601
+ roles, Stack/Grid, typography and value primitives, semantic color, neutral
602
+ badges, Card slots). The checker adds review warnings for raw palette color
603
+ classes, native `<button>` and `<h1>`–`<h6>` elements, and pages with more
604
+ than one solid primary command. The orders and staff templates now have one
605
+ primary command each.
606
+ - The consumer skill's public index lists each family's deprecated names with
607
+ their replacements (`SmartCard`: "Use Card.", `SmartCardProps`: "Use
608
+ CardProps."), derived from `@deprecated` JSDoc. The finder leaves them out of
609
+ task recommendations and flags them when a query names one.
610
+ - Event calendar markers in narrow day cells keep the compact action height
611
+ (28px), so they meet the WCAG 2.2 24px target size instead of a 12px sliver.
612
+ - Regenerate `package-lock.json`: it pinned lightningcss 1.32.0 where the
613
+ package and Vite require `^1.33.0`, so `npm ci`, and with it CI, failed
614
+ before running any check.
615
+
616
+ ## 1.0.3 — 2026-10-15
617
+
618
+ - Document layout-block ownership, horizontal Stack rows, responsive tracks and
619
+ parent adaptation; ship a typed region-composition recipe and route common
620
+ layout queries to the corresponding owners and focused guidance.
621
+
622
+ - Align template peer Card stacks with Page/TwoColumnLayout’s existing `2xl`
623
+ rhythm: 24px in both axes at default scale, including stacked mobile regions.
624
+
625
+ - Let AddressCard, PaymentMethod, SeoListingCard and ProductVariantsManager own
626
+ their framed Card anatomy through existing surface/padding/divider props.
627
+ Preserve unframed defaults and suppress inherited embedded header rules;
628
+ replace redundant template wrappers with one full-width Card boundary.
629
+ - Audit the admin templates: isolate overlay drafts, preserve staff save/discard
630
+ baselines, close mobile navigation, honor shell presets/density and repair
631
+ variant duplication/options persistence. Include templates in design lint and
632
+ installed-package typechecks; correct their documented scope and discovery.
633
+ - Keep long MetadataList row labels from squeezing monetary values out of narrow
634
+ panels, and use the semantic copy-gap recipe for label/value rhythm.
4
635
 
5
636
  - Increase the shared surface-x/y defaults to 1.25rem: ordinary Card insets are
6
637
  20px, compact surfaces 10px and large surfaces/page gutters 36px at default