themelia-react-ui 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/CHANGELOG.md +417 -0
  2. package/README.md +67 -16
  3. package/dist/{accordion-B-5Focs8.js → accordion-CQXVcd7Q.js} +15 -15
  4. package/dist/accordion-CQXVcd7Q.js.map +1 -0
  5. package/dist/action-menu-BTpyPWJ2.js +264 -0
  6. package/dist/action-menu-BTpyPWJ2.js.map +1 -0
  7. package/dist/affordance-geometry.generated-CCIXb2A1.js +68 -0
  8. package/dist/affordance-geometry.generated-CCIXb2A1.js.map +1 -0
  9. package/dist/{ai-artifact-B5tPpXnS.js → ai-artifact-2PQ2fItc.js} +206 -215
  10. package/dist/ai-artifact-2PQ2fItc.js.map +1 -0
  11. package/dist/{app-shell-at8Kt4l_.js → app-shell-BE_j8-AT.js} +11 -10
  12. package/dist/app-shell-BE_j8-AT.js.map +1 -0
  13. package/dist/{attachment-BO2R47wn.js → attachment-q69dlt5Y.js} +14 -14
  14. package/dist/attachment-q69dlt5Y.js.map +1 -0
  15. package/dist/auth-M3vGMgDR.js +723 -0
  16. package/dist/auth-M3vGMgDR.js.map +1 -0
  17. package/dist/{avatar-Bpzty83c.js → avatar-djdaaQ_s.js} +15 -13
  18. package/dist/avatar-djdaaQ_s.js.map +1 -0
  19. package/dist/{badge-BZXZT9wd.js → badge-0tATj-tW.js} +9 -9
  20. package/dist/badge-0tATj-tW.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/buttons.js +3 -2
  27. package/dist/base/cards.js +3 -3
  28. package/dist/base/carousel.js +33 -35
  29. package/dist/base/carousel.js.map +1 -1
  30. package/dist/base/cascader.js +246 -222
  31. package/dist/base/cascader.js.map +1 -1
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +2 -2
  34. package/dist/base/code-block.js +1 -1
  35. package/dist/base/combobox.js +1 -1
  36. package/dist/base/command.js +1 -1
  37. package/dist/base/copyable.js +1 -1
  38. package/dist/base/date-pickers.js +3 -3
  39. package/dist/base/display.js +7 -7
  40. package/dist/base/feedback.js +4 -4
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +94 -92
  44. package/dist/base/inline-edit.js.map +1 -1
  45. package/dist/base/item.js +1 -1
  46. package/dist/base/media-gallery.js +1 -1
  47. package/dist/base/navigation.js +6 -6
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +7 -4
  51. package/dist/base/qr-code.js.map +1 -1
  52. package/dist/base/repeaters.js +53 -53
  53. package/dist/base/repeaters.js.map +1 -1
  54. package/dist/base/sheet.js +1 -1
  55. package/dist/base/sidebar.js +1 -1
  56. package/dist/base/signature-pad.js +84 -82
  57. package/dist/base/signature-pad.js.map +1 -1
  58. package/dist/base/skeleton.js +1 -1
  59. package/dist/base/spinner.js +1 -1
  60. package/dist/base/structure.js +1 -1
  61. package/dist/base/table.js +1 -1
  62. package/dist/base/text-inputs.js +2 -2
  63. package/dist/base/toaster.js +7 -7
  64. package/dist/base/toaster.js.map +1 -1
  65. package/dist/base/tree.js +1 -1
  66. package/dist/base/upload-queue.js +1 -1
  67. package/dist/base/upload.js +3 -3
  68. package/dist/base/value-inputs.js +1 -1
  69. package/dist/blocks/admin.js +228 -219
  70. package/dist/blocks/admin.js.map +1 -1
  71. package/dist/blocks/ai.js +182 -212
  72. package/dist/blocks/ai.js.map +1 -1
  73. package/dist/blocks/analytics/usage-card.js +1 -1
  74. package/dist/blocks/analytics.js +665 -620
  75. package/dist/blocks/analytics.js.map +1 -1
  76. package/dist/blocks/collaboration.js +2 -2
  77. package/dist/blocks/commerce/receipt.js +1 -1
  78. package/dist/blocks/commerce.js +1439 -1553
  79. package/dist/blocks/commerce.js.map +1 -1
  80. package/dist/blocks/data-display.js +1 -1
  81. package/dist/blocks/onboarding.js +6 -6
  82. package/dist/blocks/onboarding.js.map +1 -1
  83. package/dist/blocks/planning.js +88 -97
  84. package/dist/blocks/planning.js.map +1 -1
  85. package/dist/blocks/timelines.js +1 -1
  86. package/dist/{breadcrumbs-DdQ_I5ra.js → breadcrumbs-BG_FfMK4.js} +10 -9
  87. package/dist/breadcrumbs-BG_FfMK4.js.map +1 -0
  88. package/dist/button-BS3KDg00.js +674 -0
  89. package/dist/button-BS3KDg00.js.map +1 -0
  90. package/dist/{button-BS6l5JUw.js → button-R9CCoH7A.js} +3 -3
  91. package/dist/button-R9CCoH7A.js.map +1 -0
  92. package/dist/buttons-DS0ZIwJ_.js +99 -0
  93. package/dist/buttons-DS0ZIwJ_.js.map +1 -0
  94. package/dist/{cards-Cum56XOF.js → cards-QoJ4syG9.js} +12 -12
  95. package/dist/{cards-Cum56XOF.js.map → cards-QoJ4syG9.js.map} +1 -1
  96. package/dist/chart-DwYRKKc-.js +152 -0
  97. package/dist/chart-DwYRKKc-.js.map +1 -0
  98. package/dist/checkbox-B7ygNTYp.js +35 -0
  99. package/dist/checkbox-B7ygNTYp.js.map +1 -0
  100. package/dist/choice-inputs-DrJ17tpL.js +752 -0
  101. package/dist/choice-inputs-DrJ17tpL.js.map +1 -0
  102. package/dist/{code-block-xHKbAJDj.js → code-block-CD0B7M93.js} +27 -27
  103. package/dist/code-block-CD0B7M93.js.map +1 -0
  104. package/dist/{collapsible-DsnktFNv.js → collapsible-oMUGM4tr.js} +3 -3
  105. package/dist/{collapsible-DsnktFNv.js.map → collapsible-oMUGM4tr.js.map} +1 -1
  106. package/dist/{collection-content-C4fthJV_.js → collection-content-Ys-OZOkY.js} +3 -3
  107. package/dist/{collection-content-C4fthJV_.js.map → collection-content-Ys-OZOkY.js.map} +1 -1
  108. package/dist/combobox-6dvVny2q.js +272 -0
  109. package/dist/combobox-6dvVny2q.js.map +1 -0
  110. package/dist/combobox-CB7039j7.js +865 -0
  111. package/dist/combobox-CB7039j7.js.map +1 -0
  112. package/dist/{command-C0xe7u9B.js → command-kPMPjIxJ.js} +35 -31
  113. package/dist/command-kPMPjIxJ.js.map +1 -0
  114. package/dist/{comments-DviPLnwy.js → comments-You0Bzbr.js} +434 -409
  115. package/dist/comments-You0Bzbr.js.map +1 -0
  116. package/dist/components/base/accordion/accordion-variants.d.ts +3 -3
  117. package/dist/components/base/action-menu/action-menu.d.ts +7 -2
  118. package/dist/components/base/avatar/stacked-avatars.d.ts +5 -4
  119. package/dist/components/base/badge/badge.d.ts +1 -1
  120. package/dist/components/base/badge/badge.recipes.d.ts +4 -4
  121. package/dist/components/base/buttons/base-button.d.ts +7 -0
  122. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  123. package/dist/components/base/buttons/button.recipes.d.ts +10 -19
  124. package/dist/components/base/buttons/button.variants.d.ts +1 -0
  125. package/dist/components/base/buttons/loader-button.d.ts +3 -1
  126. package/dist/components/base/buttons/text-button.d.ts +2 -2
  127. package/dist/components/base/buttons/use-pending-button-focus.d.ts +3 -0
  128. package/dist/components/base/cards/card.recipes.d.ts +13 -5
  129. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -4
  130. package/dist/components/base/cards/smart-card.types.d.ts +1 -1
  131. package/dist/components/base/carousel/carousel.d.ts +3 -1
  132. package/dist/components/base/chart/chart.d.ts +7 -7
  133. package/dist/components/base/choice-inputs/checkbox.d.ts +6 -7
  134. package/dist/components/base/choice-inputs/choice-types.d.ts +10 -1
  135. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +9 -0
  136. package/dist/components/base/choice-inputs/select-popup.d.ts +9 -1
  137. package/dist/components/base/choice-inputs/switch-card.d.ts +1 -1
  138. package/dist/components/base/date-pickers/date-picker-field.d.ts +23 -0
  139. package/dist/components/base/date-pickers/date-picker.recipes.d.ts +5 -18
  140. package/dist/components/base/date-pickers/datepicker.types.d.ts +16 -3
  141. package/dist/components/base/display/alert-dialog.d.ts +8 -2
  142. package/dist/components/base/display/content-block.d.ts +4 -2
  143. package/dist/components/base/display/date-block.d.ts +1 -1
  144. package/dist/components/base/display/dialog.d.ts +12 -5
  145. package/dist/components/base/display/surface-title.d.ts +6 -1
  146. package/dist/components/base/feedback/alert.d.ts +1 -1
  147. package/dist/components/base/feedback/state-display.d.ts +5 -4
  148. package/dist/components/base/forms/form-field.d.ts +1 -0
  149. package/dist/components/base/forms/form-sizing.d.ts +35 -3
  150. package/dist/components/base/forms/workflow.d.ts +2 -0
  151. package/dist/components/base/forms-numeric/coordinates-input.d.ts +3 -0
  152. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +4 -1
  153. package/dist/components/base/navigation/dropdown-menu.d.ts +2 -2
  154. package/dist/components/base/navigation/language-switcher.d.ts +4 -1
  155. package/dist/components/base/navigation/overflow-tab-bar.d.ts +7 -0
  156. package/dist/components/base/navigation/page-header/page-header.d.ts +4 -1
  157. package/dist/components/base/navigation/tabs.d.ts +3 -5
  158. package/dist/components/base/popover/popover.recipes.d.ts +3 -3
  159. package/dist/components/base/qr-code/qr-code.d.ts +2 -0
  160. package/dist/components/base/sheet/index.d.ts +29 -1
  161. package/dist/components/base/sheet/sheet.d.ts +14 -5
  162. package/dist/components/base/spinner/spinner.d.ts +3 -2
  163. package/dist/components/base/structure/structure.types.d.ts +1 -1
  164. package/dist/components/base/table/index.d.ts +1 -1
  165. package/dist/components/base/text-inputs/clear-native-field.d.ts +2 -0
  166. package/dist/components/base/text-inputs/input-group.d.ts +2 -2
  167. package/dist/components/base/text-inputs/input-trailing-action.d.ts +3 -0
  168. package/dist/components/base/upload/upload.recipes.d.ts +11 -0
  169. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -2
  170. package/dist/components/base/value-inputs/tags-input.d.ts +2 -0
  171. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +1 -1
  172. package/dist/components/blocks/analytics/format-metric-value.d.ts +11 -1
  173. package/dist/components/blocks/analytics/index.d.ts +1 -1
  174. package/dist/components/blocks/analytics/types.d.ts +1 -1
  175. package/dist/components/blocks/analytics/use-metric-format-options.d.ts +3 -0
  176. package/dist/components/blocks/collaboration/message/message.recipes.d.ts +12 -0
  177. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  178. package/dist/components/blocks/commerce/address-card/types.d.ts +3 -1
  179. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +4 -0
  180. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +2 -2
  181. package/dist/components/blocks/commerce/discount-stack/types.d.ts +1 -1
  182. package/dist/components/blocks/commerce/inventory-section/types.d.ts +4 -1
  183. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +1 -1
  184. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  185. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +1 -1
  186. package/dist/components/blocks/commerce/payment-method/types.d.ts +3 -1
  187. package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +1 -1
  188. package/dist/components/blocks/commerce/seo-listing/types.d.ts +3 -1
  189. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -1
  190. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +4 -1
  191. package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +1 -4
  192. package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +1 -4
  193. package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +3 -3
  194. package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +1 -6
  195. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +4 -1
  196. package/dist/components/features/combobox/components/error-message.d.ts +1 -1
  197. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -0
  198. package/dist/components/features/filters/facets/search-facet.d.ts +0 -12
  199. package/dist/components/features/filters/facets/tags-facet.d.ts +1 -1
  200. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +1 -1
  201. package/dist/components/features/media-library/media-library.d.ts +1 -1
  202. package/dist/components/features/media-library/media-library.types.d.ts +9 -1
  203. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  204. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  205. package/dist/components/features/overlays/drawer.d.ts +1 -1
  206. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +2 -2
  207. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +11 -4
  208. package/dist/components/features/overlays/hooks/use-pending-overlay-focus.d.ts +2 -0
  209. package/dist/components/features/overlays/overlay-tone-icon.d.ts +37 -0
  210. package/dist/components/features/overlays/overlays.types.d.ts +46 -22
  211. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  212. package/dist/components/features/products/partials/index.d.ts +1 -1
  213. package/dist/components/features/products/partials/product-metric-tile.d.ts +6 -0
  214. package/dist/components/features/products/partials/product-tone.d.ts +11 -1
  215. package/dist/components/features/products/products.types.d.ts +2 -1
  216. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +2 -1
  217. package/dist/components/features/table/data-table.d.ts +1 -1
  218. package/dist/components/features/table/partials/cell-renderers.d.ts +1 -1
  219. package/dist/components/features/table/table.types.d.ts +1 -1
  220. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +3 -1
  221. package/dist/components/layout/auth/auth.types.d.ts +1 -0
  222. package/dist/components/layout/page/index.d.ts +1 -1
  223. package/dist/components/layout/page/page.d.ts +0 -1
  224. package/dist/components/layout/page/page.types.d.ts +62 -6
  225. package/dist/components/layout/page/partials/page-header-commands.d.ts +13 -0
  226. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  227. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -1
  228. package/dist/components/layout/sidebar/sidebar.types.d.ts +4 -0
  229. package/dist/components/layout/workspace/workspace.types.d.ts +3 -0
  230. package/dist/components/primitives/date.d.ts +16 -3
  231. package/dist/components/primitives/dimensions.d.ts +6 -0
  232. package/dist/components/primitives/duration.d.ts +6 -0
  233. package/dist/components/primitives/file-size.d.ts +6 -0
  234. package/dist/components/primitives/index.d.ts +1 -1
  235. package/dist/components/primitives/initials.d.ts +11 -2
  236. package/dist/components/primitives/link.d.ts +7 -0
  237. package/dist/components/primitives/money.d.ts +29 -7
  238. package/dist/components/primitives/number.d.ts +17 -0
  239. package/dist/components/primitives/value-typography.d.ts +54 -0
  240. package/dist/components/primitives/value.d.ts +31 -6
  241. package/dist/components/typography/heading.d.ts +13 -2
  242. package/dist/components/typography/index.d.ts +1 -1
  243. package/dist/components/typography/label.d.ts +3 -0
  244. package/dist/components/typography/running-text.d.ts +12 -0
  245. package/dist/components/typography/text-link.d.ts +23 -1
  246. package/dist/components/typography/text.d.ts +12 -0
  247. package/dist/components/typography/text.styles.d.ts +37 -5
  248. package/dist/components/ui/button.d.ts +1 -1
  249. package/dist/components/ui/checkbox.d.ts +5 -0
  250. package/dist/components/ui/overlay.recipes.d.ts +15 -2
  251. package/dist/components/ui/popover.d.ts +1 -1
  252. package/dist/components/ui/select.d.ts +3 -1
  253. package/dist/components/ui/sidebar.d.ts +1 -1
  254. package/dist/components/ui/switch.d.ts +5 -0
  255. package/dist/components/ui/table.d.ts +2 -1
  256. package/dist/container.recipes-D9t8MHR3.js +27 -0
  257. package/dist/container.recipes-D9t8MHR3.js.map +1 -0
  258. package/dist/{containers-6s-ucRQQ.js → containers-D_L4mTVb.js} +34 -57
  259. package/dist/containers-D_L4mTVb.js.map +1 -0
  260. package/dist/control-group-recipes-DBXmfh2E.js +21 -0
  261. package/dist/control-group-recipes-DBXmfh2E.js.map +1 -0
  262. package/dist/{copyable-B7SBXJMr.js → copyable-DDjTeW_j.js} +6 -6
  263. package/dist/{copyable-B7SBXJMr.js.map → copyable-DDjTeW_j.js.map} +1 -1
  264. package/dist/data-display-3xWQUnMA.js +1335 -0
  265. package/dist/data-display-3xWQUnMA.js.map +1 -0
  266. package/dist/date-picker-DrDFj8Lo.js +1527 -0
  267. package/dist/date-picker-DrDFj8Lo.js.map +1 -0
  268. package/dist/date-pickers-CnFCb0n2.js +174 -0
  269. package/dist/date-pickers-CnFCb0n2.js.map +1 -0
  270. package/dist/date-uf3z37Nm.js +144 -0
  271. package/dist/date-uf3z37Nm.js.map +1 -0
  272. package/dist/{display-CFM5myut.js → display-DrdvPwF0.js} +25 -25
  273. package/dist/display-DrdvPwF0.js.map +1 -0
  274. package/dist/{dropdown-menu-BlnyHr-9.js → dropdown-menu-CURh59jb.js} +22 -15
  275. package/dist/dropdown-menu-CURh59jb.js.map +1 -0
  276. package/dist/features/activities.js +177 -163
  277. package/dist/features/activities.js.map +1 -1
  278. package/dist/features/ai-chat.js +187 -183
  279. package/dist/features/ai-chat.js.map +1 -1
  280. package/dist/features/async-preview.js +9 -9
  281. package/dist/features/async-preview.js.map +1 -1
  282. package/dist/features/combobox.js +1 -1
  283. package/dist/features/comments.js +1 -1
  284. package/dist/features/data-view.js +25 -23
  285. package/dist/features/data-view.js.map +1 -1
  286. package/dist/features/email-composer/engine.js +1 -1
  287. package/dist/features/email-composer.js +353 -355
  288. package/dist/features/email-composer.js.map +1 -1
  289. package/dist/features/event-calendar.js +346 -354
  290. package/dist/features/event-calendar.js.map +1 -1
  291. package/dist/features/filters.js +1 -1
  292. package/dist/features/global-search.js +225 -227
  293. package/dist/features/global-search.js.map +1 -1
  294. package/dist/features/kanban.js +29 -29
  295. package/dist/features/kanban.js.map +1 -1
  296. package/dist/features/map.js +59 -58
  297. package/dist/features/map.js.map +1 -1
  298. package/dist/features/media-library.js +898 -900
  299. package/dist/features/media-library.js.map +1 -1
  300. package/dist/features/mentions.js +1 -1
  301. package/dist/features/overlays.js +1 -1
  302. package/dist/features/products.js +1412 -1444
  303. package/dist/features/products.js.map +1 -1
  304. package/dist/features/questionnaire.js +51 -49
  305. package/dist/features/questionnaire.js.map +1 -1
  306. package/dist/features/resource-assignment.js +103 -97
  307. package/dist/features/resource-assignment.js.map +1 -1
  308. package/dist/features/resource.js +13 -13
  309. package/dist/features/resource.js.map +1 -1
  310. package/dist/features/rich-text-editor.js +2 -2
  311. package/dist/features/schema-form.js +187 -183
  312. package/dist/features/schema-form.js.map +1 -1
  313. package/dist/features/suggestions.js +3 -3
  314. package/dist/features/sync.js +7 -7
  315. package/dist/features/sync.js.map +1 -1
  316. package/dist/features/table.js +1 -1
  317. package/dist/features/theme-tweaker.js +508 -503
  318. package/dist/features/theme-tweaker.js.map +1 -1
  319. package/dist/{feedback-DWUkgEjR.js → feedback-C7nR0UtT.js} +30 -31
  320. package/dist/feedback-C7nR0UtT.js.map +1 -0
  321. package/dist/field-affordance-recipes-CkOCdE2y.js +46 -0
  322. package/dist/field-affordance-recipes-CkOCdE2y.js.map +1 -0
  323. package/dist/{field-state-recipes-CBTRt9Bt.js → field-state-recipes-C-MFBX_8.js} +5 -5
  324. package/dist/field-state-recipes-C-MFBX_8.js.map +1 -0
  325. package/dist/{filters-BhsUtsxW.js → filters-Da-gNPsE.js} +760 -765
  326. package/dist/filters-Da-gNPsE.js.map +1 -0
  327. package/dist/{form-field-Bn7ZH1rA.js → form-field-VZRULhUK.js} +20 -12
  328. package/dist/form-field-VZRULhUK.js.map +1 -0
  329. package/dist/form-sizing-uWP4lzVh.js +126 -0
  330. package/dist/form-sizing-uWP4lzVh.js.map +1 -0
  331. package/dist/{forms-B7pzS25o.js → forms-DDeEnXSY.js} +38 -38
  332. package/dist/forms-DDeEnXSY.js.map +1 -0
  333. package/dist/forms-numeric-D3CO60IF.js +905 -0
  334. package/dist/forms-numeric-D3CO60IF.js.map +1 -0
  335. package/dist/{header-C59QZyxV.js → header-2ycNqGOR.js} +42 -37
  336. package/dist/header-2ycNqGOR.js.map +1 -0
  337. package/dist/{hooks-CM1Vp9Pe.js → hooks-DQ5SPwZw.js} +2 -2
  338. package/dist/{hooks-CM1Vp9Pe.js.map → hooks-DQ5SPwZw.js.map} +1 -1
  339. package/dist/{http-CLTVJc5I.js → http-CdEIHyQf.js} +2 -2
  340. package/dist/http-CdEIHyQf.js.map +1 -0
  341. package/dist/{icon-badge-Dv0RYQwj.js → icon-badge-DKlaKXoo.js} +4 -4
  342. package/dist/{icon-badge-Dv0RYQwj.js.map → icon-badge-DKlaKXoo.js.map} +1 -1
  343. package/dist/index.js +2 -2
  344. package/dist/input-BoLm9Hks.js +20 -0
  345. package/dist/input-BoLm9Hks.js.map +1 -0
  346. package/dist/input-DhQdBnV3.js +255 -0
  347. package/dist/input-DhQdBnV3.js.map +1 -0
  348. package/dist/item-xzh8Df65.js +264 -0
  349. package/dist/item-xzh8Df65.js.map +1 -0
  350. package/dist/layout/app-shell.js +1 -1
  351. package/dist/layout/auth.js +1 -1
  352. package/dist/layout/containers.js +1 -1
  353. package/dist/layout/header.js +1 -1
  354. package/dist/layout/hooks.js +1 -1
  355. package/dist/layout/navigation.js +1 -1
  356. package/dist/layout/page.js +1 -1
  357. package/dist/layout/settings.js +1 -1
  358. package/dist/layout/sidebar.js +2 -2
  359. package/dist/layout/workspace.js +1 -1
  360. package/dist/layout.js +10 -10
  361. package/dist/lib/affordance-geometry.generated.d.ts +46 -10
  362. package/dist/lib/control-group-recipes.d.ts +22 -0
  363. package/dist/lib/field-affordance-recipes.d.ts +70 -2
  364. package/dist/lib/field-state-recipes.d.ts +6 -4
  365. package/dist/lib/format.d.ts +9 -0
  366. package/dist/lib/money-format.d.ts +30 -0
  367. package/dist/lib/navigation-row-recipes.d.ts +3 -2
  368. package/dist/lib/overlay-anatomy-recipes.d.ts +2 -2
  369. package/dist/lib/surface-recipes.d.ts +13 -8
  370. package/dist/lib/token-merge.generated.d.ts +144 -2
  371. package/dist/lib/track-recipes.d.ts +1 -1
  372. package/dist/lib/ui-provider/provider.d.ts +7 -2
  373. package/dist/lib/ui-provider/store.d.ts +6 -2
  374. package/dist/lib/ui-provider/types.d.ts +9 -4
  375. package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
  376. package/dist/lib/utils.js +1 -1
  377. package/dist/media-gallery-DQUQ0m3O.js +201 -0
  378. package/dist/media-gallery-DQUQ0m3O.js.map +1 -0
  379. package/dist/{mentions-B8Ko-fhS.js → mentions-DwnO1hh4.js} +40 -39
  380. package/dist/{mentions-B8Ko-fhS.js.map → mentions-DwnO1hh4.js.map} +1 -1
  381. package/dist/message-YfFmbXNP.js +127 -0
  382. package/dist/message-YfFmbXNP.js.map +1 -0
  383. package/dist/{navigation-BUIn2Qxx.js → navigation-Cbp5V8gG.js} +27 -28
  384. package/dist/navigation-Cbp5V8gG.js.map +1 -0
  385. package/dist/navigation-Cs1npsPm.js +300 -0
  386. package/dist/navigation-Cs1npsPm.js.map +1 -0
  387. package/dist/{navigation-row-recipes-GVh11KiT.js → navigation-row-recipes-DlU-4QYO.js} +3 -3
  388. package/dist/navigation-row-recipes-DlU-4QYO.js.map +1 -0
  389. package/dist/number-CKRBYmZK.js +352 -0
  390. package/dist/number-CKRBYmZK.js.map +1 -0
  391. package/dist/overlay.recipes-CNO2S9V6.js +34 -0
  392. package/dist/overlay.recipes-CNO2S9V6.js.map +1 -0
  393. package/dist/overlays-DhZO7N-I.js +994 -0
  394. package/dist/overlays-DhZO7N-I.js.map +1 -0
  395. package/dist/page-C6R_8jFt.js +325 -0
  396. package/dist/page-C6R_8jFt.js.map +1 -0
  397. package/dist/{page-header-DQRa0jug.js → page-header-hUTzcRZX.js} +12 -12
  398. package/dist/page-header-hUTzcRZX.js.map +1 -0
  399. package/dist/{pagination-C29vvt3I.js → pagination-Cm0jqa3I.js} +21 -21
  400. package/dist/pagination-Cm0jqa3I.js.map +1 -0
  401. package/dist/{popover-CoLDEg19.js → popover-Dcv_9jxr.js} +23 -22
  402. package/dist/popover-Dcv_9jxr.js.map +1 -0
  403. package/dist/{popover-menu-GLIQTJTx.js → popover-menu-DnRFKnHP.js} +6 -6
  404. package/dist/{popover-menu-GLIQTJTx.js.map → popover-menu-DnRFKnHP.js.map} +1 -1
  405. package/dist/{popover.recipes-zgBhMlUu.js → popover.recipes-wmbvL8Ah.js} +5 -5
  406. package/dist/popover.recipes-wmbvL8Ah.js.map +1 -0
  407. package/dist/primitives-BHrwQXFC.js +379 -0
  408. package/dist/primitives-BHrwQXFC.js.map +1 -0
  409. package/dist/primitives.js +5 -5
  410. package/dist/{progress-BOe8l_FZ.js → progress-Br9WTFya.js} +12 -11
  411. package/dist/progress-Br9WTFya.js.map +1 -0
  412. package/dist/{receipt-BM8xsGFy.js → receipt-CV89q1fs.js} +8 -8
  413. package/dist/{receipt-BM8xsGFy.js.map → receipt-CV89q1fs.js.map} +1 -1
  414. package/dist/rich-text-editor-CF8QYt5p.js +574 -0
  415. package/dist/rich-text-editor-CF8QYt5p.js.map +1 -0
  416. package/dist/{rich-text-editor.recipes-DxvOE0Lp.js → rich-text-editor.recipes-CnrbmTS1.js} +35 -26
  417. package/dist/rich-text-editor.recipes-CnrbmTS1.js.map +1 -0
  418. package/dist/{rich-text-B7sBAdDG.js → rich-text-j-FGAeZW.js} +4 -4
  419. package/dist/{rich-text-B7sBAdDG.js.map → rich-text-j-FGAeZW.js.map} +1 -1
  420. package/dist/{scroll-area-BheMQ270.js → scroll-area-DRdr16Pt.js} +3 -3
  421. package/dist/scroll-area-DRdr16Pt.js.map +1 -0
  422. package/dist/{separator-DO0EbCEm.js → separator-BMEvwnSX.js} +2 -2
  423. package/dist/{separator-DO0EbCEm.js.map → separator-BMEvwnSX.js.map} +1 -1
  424. package/dist/{separator-Gk_WXH-l.js → separator-Do5GWDYi.js} +4 -4
  425. package/dist/separator-Do5GWDYi.js.map +1 -0
  426. package/dist/services/actions/action-adapters.d.ts +4 -0
  427. package/dist/services/actions.js +8 -3
  428. package/dist/services/actions.js.map +1 -1
  429. package/dist/{settings-BnCyyPOJ.js → settings-DHk0L2MF.js} +20 -19
  430. package/dist/settings-DHk0L2MF.js.map +1 -0
  431. package/dist/sheet-DRFNY1_D.js +207 -0
  432. package/dist/sheet-DRFNY1_D.js.map +1 -0
  433. package/dist/sidebar-Cb8WzOvE.js +511 -0
  434. package/dist/sidebar-Cb8WzOvE.js.map +1 -0
  435. package/dist/{sidebar-DPR7fmqN.js → sidebar-Crc9M9JV.js} +220 -201
  436. package/dist/sidebar-Crc9M9JV.js.map +1 -0
  437. package/dist/{skeleton-CmT1ppqb.js → skeleton-DVMXr15h.js} +5 -5
  438. package/dist/{skeleton-CmT1ppqb.js.map → skeleton-DVMXr15h.js.map} +1 -1
  439. package/dist/smart-card-Bek-TwUp.js +599 -0
  440. package/dist/smart-card-Bek-TwUp.js.map +1 -0
  441. package/dist/{spinner-BY9HbUEh.js → spinner-CmTAbEp0.js} +8 -6
  442. package/dist/spinner-CmTAbEp0.js.map +1 -0
  443. package/dist/{structure-MvKVq-oL.js → structure-hzCW-XsV.js} +3 -3
  444. package/dist/{structure-MvKVq-oL.js.map → structure-hzCW-XsV.js.map} +1 -1
  445. package/dist/{structure.recipes-Bqhf9oIh.js → structure.recipes-EPz60cU8.js} +37 -19
  446. package/dist/structure.recipes-EPz60cU8.js.map +1 -0
  447. package/dist/style.css +1 -1
  448. package/dist/surface-recipes-DOdoBXGm.js +28 -0
  449. package/dist/surface-recipes-DOdoBXGm.js.map +1 -0
  450. package/dist/table-D6zKeYQX.js +162 -0
  451. package/dist/table-D6zKeYQX.js.map +1 -0
  452. package/dist/table-Dn4XSrSB.js +1444 -0
  453. package/dist/table-Dn4XSrSB.js.map +1 -0
  454. package/dist/tabs-Dk8E_knt.js +189 -0
  455. package/dist/tabs-Dk8E_knt.js.map +1 -0
  456. package/dist/text-inputs-BFpku0Qd.js +331 -0
  457. package/dist/text-inputs-BFpku0Qd.js.map +1 -0
  458. package/dist/{text.styles-BwB7vAF2.js → text.styles-g4He6UIW.js} +26 -15
  459. package/dist/text.styles-g4He6UIW.js.map +1 -0
  460. package/dist/theme.css +90 -124
  461. package/dist/themes/green.css +24 -0
  462. package/dist/{timelines-B9ICkQcV.js → timelines-CxuAFIc2.js} +97 -104
  463. package/dist/timelines-CxuAFIc2.js.map +1 -0
  464. package/dist/track-recipes-CDcKmndW.js +10 -0
  465. package/dist/track-recipes-CDcKmndW.js.map +1 -0
  466. package/dist/{tree-BdWSaoFT.js → tree-BotPlyiD.js} +13 -13
  467. package/dist/{tree-BdWSaoFT.js.map → tree-BotPlyiD.js.map} +1 -1
  468. package/dist/typography/rich-text.js +1 -1
  469. package/dist/typography-CAr3dQhX.js +116 -0
  470. package/dist/typography-CAr3dQhX.js.map +1 -0
  471. package/dist/typography.js +2 -2
  472. package/dist/{ui-provider-CftIB6TY.js → ui-provider-D2_TeLqw.js} +22 -22
  473. package/dist/ui-provider-D2_TeLqw.js.map +1 -0
  474. package/dist/ui-provider.js +1 -1
  475. package/dist/{upload-D8Za5x_c.js → upload-B0WHW7ak.js} +278 -274
  476. package/dist/upload-B0WHW7ak.js.map +1 -0
  477. package/dist/{upload-queue-hIIYBLS7.js → upload-queue-BHZ_wBfd.js} +72 -75
  478. package/dist/upload-queue-BHZ_wBfd.js.map +1 -0
  479. package/dist/{usage-card-DnmnJ58D.js → usage-card-U0YBLTNT.js} +31 -33
  480. package/dist/usage-card-U0YBLTNT.js.map +1 -0
  481. package/dist/utils-Cospvlj1.js +4445 -0
  482. package/dist/utils-Cospvlj1.js.map +1 -0
  483. package/dist/value-inputs-CjfzGMsN.js +854 -0
  484. package/dist/value-inputs-CjfzGMsN.js.map +1 -0
  485. package/dist/value-typography-Deb3yQZg.js +116 -0
  486. package/dist/value-typography-Deb3yQZg.js.map +1 -0
  487. package/dist/{workspace-C1PZmk8L.js → workspace-YoFjXi6i.js} +97 -105
  488. package/dist/workspace-YoFjXi6i.js.map +1 -0
  489. package/docs/consumer-skill/SKILL.md +123 -119
  490. package/docs/consumer-skill/examples/analytics.tsx +34 -0
  491. package/docs/consumer-skill/examples/app-layout.tsx +42 -14
  492. package/docs/consumer-skill/examples/detail.tsx +20 -5
  493. package/docs/consumer-skill/examples/edit.tsx +1 -1
  494. package/docs/consumer-skill/examples/layout-blocks.tsx +20 -0
  495. package/docs/consumer-skill/examples/manifest.json +37 -3
  496. package/docs/consumer-skill/examples/scoped-directory.tsx +2 -2
  497. package/docs/consumer-skill/examples/website.tsx +56 -0
  498. package/docs/consumer-skill/references/analytics.md +70 -0
  499. package/docs/consumer-skill/references/composition.md +195 -9
  500. package/docs/consumer-skill/references/design-contract.md +33 -7
  501. package/docs/consumer-skill/references/discovery.md +80 -5
  502. package/docs/consumer-skill/references/installation.md +22 -0
  503. package/docs/consumer-skill/references/integration.md +46 -1
  504. package/docs/consumer-skill/references/public-api.json +2083 -237
  505. package/docs/consumer-skill/references/review.md +74 -6
  506. package/docs/consumer-skill/references/theming.md +59 -8
  507. package/docs/consumer-skill/references/tokens.json +180 -9
  508. package/docs/consumer-skill/references/workflows.md +34 -0
  509. package/docs/consumer-skill/scripts/check-composition.mjs +1 -1
  510. package/docs/consumer-skill/scripts/composition-policy.mjs +271 -18
  511. package/docs/consumer-skill/scripts/discovery.mjs +69 -9
  512. package/docs/consumer-skill/scripts/pin-button-defaults.mjs +95 -0
  513. package/docs/consumer-skill/scripts/surface-policy.mjs +44 -0
  514. package/package.json +11 -6
  515. package/dist/accordion-B-5Focs8.js.map +0 -1
  516. package/dist/action-menu-Cx3SdfbN.js +0 -265
  517. package/dist/action-menu-Cx3SdfbN.js.map +0 -1
  518. package/dist/affordance-geometry.generated-D8Jcfb0G.js +0 -32
  519. package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +0 -1
  520. package/dist/ai-artifact-B5tPpXnS.js.map +0 -1
  521. package/dist/app-shell-at8Kt4l_.js.map +0 -1
  522. package/dist/attachment-BO2R47wn.js.map +0 -1
  523. package/dist/auth-OFwWSAap.js +0 -704
  524. package/dist/auth-OFwWSAap.js.map +0 -1
  525. package/dist/avatar-Bpzty83c.js.map +0 -1
  526. package/dist/badge-BZXZT9wd.js.map +0 -1
  527. package/dist/breadcrumbs-DdQ_I5ra.js.map +0 -1
  528. package/dist/button-BS6l5JUw.js.map +0 -1
  529. package/dist/buttons-Co6GavvM.js +0 -674
  530. package/dist/buttons-Co6GavvM.js.map +0 -1
  531. package/dist/chart-DVfcwQu6.js +0 -149
  532. package/dist/chart-DVfcwQu6.js.map +0 -1
  533. package/dist/checkbox-BavDRjF7.js +0 -34
  534. package/dist/checkbox-BavDRjF7.js.map +0 -1
  535. package/dist/choice-inputs-CC7XqPQO.js +0 -619
  536. package/dist/choice-inputs-CC7XqPQO.js.map +0 -1
  537. package/dist/code-block-xHKbAJDj.js.map +0 -1
  538. package/dist/combobox-DEbdr-3u.js +0 -273
  539. package/dist/combobox-DEbdr-3u.js.map +0 -1
  540. package/dist/combobox-xv3yJbzl.js +0 -850
  541. package/dist/combobox-xv3yJbzl.js.map +0 -1
  542. package/dist/command-C0xe7u9B.js.map +0 -1
  543. package/dist/comments-DviPLnwy.js.map +0 -1
  544. package/dist/containers-6s-ucRQQ.js.map +0 -1
  545. package/dist/data-display-cWIRdeaf.js +0 -1129
  546. package/dist/data-display-cWIRdeaf.js.map +0 -1
  547. package/dist/date-BFNMnrS5.js +0 -140
  548. package/dist/date-BFNMnrS5.js.map +0 -1
  549. package/dist/date-picker-CA6ogMQB.js +0 -1521
  550. package/dist/date-picker-CA6ogMQB.js.map +0 -1
  551. package/dist/date-pickers-BPIKLdsD.js +0 -224
  552. package/dist/date-pickers-BPIKLdsD.js.map +0 -1
  553. package/dist/display-CFM5myut.js.map +0 -1
  554. package/dist/dropdown-menu-BlnyHr-9.js.map +0 -1
  555. package/dist/feedback-DWUkgEjR.js.map +0 -1
  556. package/dist/field-affordance-recipes-IjzPrCTw.js +0 -17
  557. package/dist/field-affordance-recipes-IjzPrCTw.js.map +0 -1
  558. package/dist/field-state-recipes-CBTRt9Bt.js.map +0 -1
  559. package/dist/filters-BhsUtsxW.js.map +0 -1
  560. package/dist/form-field-Bn7ZH1rA.js.map +0 -1
  561. package/dist/form-sizing-BWs70_a2.js +0 -100
  562. package/dist/form-sizing-BWs70_a2.js.map +0 -1
  563. package/dist/format-iamDSqs2.js +0 -110
  564. package/dist/format-iamDSqs2.js.map +0 -1
  565. package/dist/forms-B7pzS25o.js.map +0 -1
  566. package/dist/forms-numeric-BUBxELBv.js +0 -867
  567. package/dist/forms-numeric-BUBxELBv.js.map +0 -1
  568. package/dist/header-C59QZyxV.js.map +0 -1
  569. package/dist/http-CLTVJc5I.js.map +0 -1
  570. package/dist/input-WwYQZJzG.js +0 -202
  571. package/dist/input-WwYQZJzG.js.map +0 -1
  572. package/dist/input-ci9fIgFH.js +0 -20
  573. package/dist/input-ci9fIgFH.js.map +0 -1
  574. package/dist/item-pJ0GsOiJ.js +0 -257
  575. package/dist/item-pJ0GsOiJ.js.map +0 -1
  576. package/dist/media-gallery-DhDRgnVZ.js +0 -200
  577. package/dist/media-gallery-DhDRgnVZ.js.map +0 -1
  578. package/dist/message-COsdEvXT.js +0 -108
  579. package/dist/message-COsdEvXT.js.map +0 -1
  580. package/dist/navigation-BUIn2Qxx.js.map +0 -1
  581. package/dist/navigation-DBEu4POU.js +0 -267
  582. package/dist/navigation-DBEu4POU.js.map +0 -1
  583. package/dist/navigation-row-recipes-GVh11KiT.js.map +0 -1
  584. package/dist/number-BNT_BIzJ.js +0 -269
  585. package/dist/number-BNT_BIzJ.js.map +0 -1
  586. package/dist/overlay.recipes-BxW5FIfK.js +0 -6
  587. package/dist/overlay.recipes-BxW5FIfK.js.map +0 -1
  588. package/dist/overlays-B11wZka6.js +0 -982
  589. package/dist/overlays-B11wZka6.js.map +0 -1
  590. package/dist/page-BV6ioQg3.js +0 -202
  591. package/dist/page-BV6ioQg3.js.map +0 -1
  592. package/dist/page-header-DQRa0jug.js.map +0 -1
  593. package/dist/pagination-C29vvt3I.js.map +0 -1
  594. package/dist/popover-CoLDEg19.js.map +0 -1
  595. package/dist/popover.recipes-zgBhMlUu.js.map +0 -1
  596. package/dist/primitives-DKPOGVpj.js +0 -330
  597. package/dist/primitives-DKPOGVpj.js.map +0 -1
  598. package/dist/progress-BOe8l_FZ.js.map +0 -1
  599. package/dist/rich-text-editor-CoVrTiSv.js +0 -575
  600. package/dist/rich-text-editor-CoVrTiSv.js.map +0 -1
  601. package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +0 -1
  602. package/dist/scroll-area-BheMQ270.js.map +0 -1
  603. package/dist/select-B2mb-qN2.js +0 -108
  604. package/dist/select-B2mb-qN2.js.map +0 -1
  605. package/dist/separator-Gk_WXH-l.js.map +0 -1
  606. package/dist/settings-BnCyyPOJ.js.map +0 -1
  607. package/dist/sheet-B-q914Ad.js +0 -205
  608. package/dist/sheet-B-q914Ad.js.map +0 -1
  609. package/dist/sidebar-C_2p3Tfj.js +0 -501
  610. package/dist/sidebar-C_2p3Tfj.js.map +0 -1
  611. package/dist/sidebar-DPR7fmqN.js.map +0 -1
  612. package/dist/smart-card-CYLn46e6.js +0 -578
  613. package/dist/smart-card-CYLn46e6.js.map +0 -1
  614. package/dist/spinner-BY9HbUEh.js.map +0 -1
  615. package/dist/structure.recipes-Bqhf9oIh.js.map +0 -1
  616. package/dist/surface-recipes-CQfRr-VL.js +0 -27
  617. package/dist/surface-recipes-CQfRr-VL.js.map +0 -1
  618. package/dist/table-BS39xnlq.js +0 -1424
  619. package/dist/table-BS39xnlq.js.map +0 -1
  620. package/dist/table-DnlAJ-xR.js +0 -146
  621. package/dist/table-DnlAJ-xR.js.map +0 -1
  622. package/dist/tabs-B5cNMWiP.js +0 -187
  623. package/dist/tabs-B5cNMWiP.js.map +0 -1
  624. package/dist/text-inputs-Dh9XGyiS.js +0 -331
  625. package/dist/text-inputs-Dh9XGyiS.js.map +0 -1
  626. package/dist/text.styles-BwB7vAF2.js.map +0 -1
  627. package/dist/timelines-B9ICkQcV.js.map +0 -1
  628. package/dist/track-recipes-LLPNVwFg.js +0 -10
  629. package/dist/track-recipes-LLPNVwFg.js.map +0 -1
  630. package/dist/typography-Cv8MT-82.js +0 -96
  631. package/dist/typography-Cv8MT-82.js.map +0 -1
  632. package/dist/ui-provider-CftIB6TY.js.map +0 -1
  633. package/dist/upload-D8Za5x_c.js.map +0 -1
  634. package/dist/upload-queue-hIIYBLS7.js.map +0 -1
  635. package/dist/usage-card-DnmnJ58D.js.map +0 -1
  636. package/dist/utils-C2EKeIw3.js +0 -72
  637. package/dist/utils-C2EKeIw3.js.map +0 -1
  638. package/dist/value-inputs-DX2dbxjj.js +0 -824
  639. package/dist/value-inputs-DX2dbxjj.js.map +0 -1
  640. package/dist/workspace-C1PZmk8L.js.map +0 -1
package/dist/theme.css CHANGED
@@ -57,37 +57,39 @@
57
57
 
58
58
  :root {
59
59
  /* Radius is shared geometry, not a light-palette reset. Mode scopes inherit it. */
60
- --radius: 1rem; /* Default corners throughout the package; opt-in nested corners derive from this root. */
60
+ --radius: 0.75rem; /* Shared 12px outer corners; inner control/row corners derive from this root and stay rectangular. */
61
61
  }
62
62
 
63
63
  :root,
64
64
  .light {
65
- --background: oklch(1 0 0); /* Application canvas and default page background. */
65
+ color-scheme: light; /* Native scrollbars, form controls and pickers follow the active mode. */
66
+ --background: oklch(0.985 0 0); /* Application canvas and default page background. */
66
67
  --foreground: oklch(0.28 0 0); /* Primary text and icon color on the application canvas. */
67
68
  --card: oklch(1 0 0); /* Card and framed content-surface background. */
68
69
  --card-foreground: oklch(0.28 0 0); /* Primary text and icons on card surfaces. */
69
- --popover: var(--background); /* Popover, menu, select, and transient-surface background. */
70
+ --popover: var(--card); /* Popover, menu, select, and transient-surface background. */
70
71
  --popover-foreground: var(--foreground); /* Primary text and icons on popover surfaces. */
71
- --primary: oklch(0.45 0.124 167.35); /* Brand and primary-action color. */
72
+ --primary: oklch(0.205 0 0); /* Primary-action color: near-black by default so status colors never compete with it; a brand stylesheet such as themes/green.css replaces it. */
72
73
  --primary-foreground: oklch(0.985 0 0); /* Text and icons on solid primary fills. */
73
- --secondary: oklch(0.97 0 0); /* Neutral secondary-control and supporting-surface fill. */
74
+ --secondary: oklch(0.94 0 0); /* Neutral secondary-control and supporting-surface fill. */
74
75
  --secondary-foreground: oklch(0.205 0 0); /* Text and icons on secondary fills. */
75
- --muted: oklch(0.97 0 0); /* Subdued backgrounds for passive regions and skeletons. */
76
+ --muted: oklch(0.96 0 0); /* Subdued backgrounds for passive regions and skeletons. */
76
77
  --muted-foreground: oklch(0.50 0 0); /* Secondary text, metadata, and passive icons. */
77
- --accent: oklch(0.97 0 0); /* Hover, selected-row, and emphasized neutral fill. */
78
+ --accent: oklch(0.945 0 0); /* Hover, selected-row, and emphasized neutral fill. */
78
79
  --accent-foreground: oklch(0.205 0 0); /* Text and icons on accent fills. */
79
- --destructive: oklch(0.50 0.245 27.325); /* Destructive action, error, and invalid-state color. */
80
+ --destructive: oklch(0.50 0.2039 27.325); /* Destructive action, error, and invalid-state color. */
80
81
  --destructive-foreground: oklch(0.99 0 0); /* Text and icons on solid destructive fills. */
81
82
  --border: oklch(0.922 0 0); /* Default divider, outline, and surface-border color. */
82
- --input: oklch(0.922 0 0); /* Default form-control border color. */
83
- --ring: oklch(0.708 0 0); /* Focus-visible ring and outline color. */
83
+ --input: oklch(0.62 0 0); /* Form-control boundary: inputs, selects, checkbox, radio and switch tracks. Keeps 3:1 against every surface (WCAG 1.4.11); dividers use --border. */
84
+ --ring: oklch(0.60 0 0); /* Focus-visible ring and outline color. */
84
85
  /*
85
86
  * Categorical chart series. Hues are held identical in light and dark so a
86
87
  * series keeps its identity when the theme flips; only lightness moves, to
87
- * suit the surface it is drawn on. Hues sit clear of the status hues
88
- * (destructive 27, warning 90, success 145) so a series never reads as a
89
- * state. Chroma is kept inside sRGB, so the authored value is what renders
90
- * rather than something the browser clamps.
88
+ * suit the surface it is drawn on. Hues are offset from the status hues
89
+ * (destructive 27, warning 75, success 145); series 1 and 5 sit nearest
90
+ * (22° from success, 15° from warning), so charts that encode state use the
91
+ * status tokens, never series colors. Chroma is kept inside sRGB, so the
92
+ * authored value is what renders rather than something the browser clamps.
91
93
  */
92
94
  --chart-1: oklch(0.56 0.11 167); /* First categorical chart-series color; never a status color. */
93
95
  --chart-2: oklch(0.56 0.11 230); /* Second categorical chart-series color; never a status color. */
@@ -101,7 +103,7 @@
101
103
  --sidebar-accent: oklch(0.98 0 0 / 1); /* Sidebar hover and selected-row neutral fill. */
102
104
  --sidebar-accent-foreground: oklch(0.205 0 0); /* Text and icons on sidebar accent fills. */
103
105
  --sidebar-border: oklch(0.922 0 0); /* Sidebar dividers and shell border. */
104
- --sidebar-ring: oklch(0.708 0 0); /* Focus-visible ring inside the sidebar. */
106
+ --sidebar-ring: oklch(0.60 0 0); /* Focus-visible ring inside the sidebar. */
105
107
  --shadow-2xs: 0 1px 3px 0px oklch(0 0 0 / 0.05); /* Minimal elevation for compact controls. */
106
108
  --shadow-xs: 0 1px 3px 0px oklch(0 0 0 / 0.05); /* Extra-small elevation for controls and rows. */
107
109
  --shadow-sm: 0 1px 2px 0px oklch(0 0 0 / 0.06), 0 3px 8px -3px oklch(0 0 0 / 0.08); /* Small elevation for raised controls and cards. */
@@ -113,38 +115,39 @@
113
115
  }
114
116
 
115
117
  .dark {
116
- --background: oklch(0.28 0 0);
118
+ color-scheme: dark;
119
+ --background: oklch(0.145 0 0);
117
120
  --foreground: oklch(0.985 0 0);
118
121
  --card: oklch(0.205 0 0);
119
122
  --card-foreground: oklch(0.985 0 0);
120
- --popover: var(--background);
123
+ --popover: oklch(0.235 0 0);
121
124
  --popover-foreground: var(--foreground);
122
- --primary: oklch(0.70 0.13 167.35); /* Lightened for readable brand text and controls on dark surfaces. */
123
- --primary-foreground: oklch(0.18 0.03 167.35); /* Dark ink on the lightened dark-theme primary fill. */
125
+ --primary: oklch(0.922 0 0); /* Near-white primary fill and ink on dark surfaces. */
126
+ --primary-foreground: oklch(0.205 0 0); /* Dark ink on the near-white dark-theme primary fill. */
124
127
  --secondary: oklch(0.269 0 0);
125
128
  --secondary-foreground: oklch(0.985 0 0);
126
- --muted: oklch(0.269 0 0);
129
+ --muted: oklch(0.175 0 0);
127
130
  --muted-foreground: oklch(0.74 0 0); /* Secondary copy stays readable on muted and accent surfaces. */
128
131
  --accent: oklch(0.36 0 0);
129
132
  --accent-foreground: oklch(0.985 0 0);
130
- --destructive: oklch(0.704 0.191 22.216);
133
+ --destructive: oklch(0.704 0.1876 22.216);
131
134
  --destructive-foreground: oklch(0.18 0.05 22);
132
135
  --border: oklch(1 0 0 / 10%);
133
- --input: oklch(1 0 0 / 15%);
134
- --ring: oklch(0.556 0 0);
136
+ --input: oklch(1 0 0 / 40%);
137
+ --ring: oklch(0.65 0 0);
135
138
  --chart-1: oklch(0.74 0.13 167);
136
139
  --chart-2: oklch(0.72 0.14 230);
137
140
  --chart-3: oklch(0.72 0.15 285);
138
141
  --chart-4: oklch(0.74 0.15 330);
139
142
  --chart-5: oklch(0.78 0.14 60);
140
- --sidebar: oklch(0.205 0 0);
143
+ --sidebar: oklch(0.175 0 0);
141
144
  --sidebar-foreground: oklch(0.985 0 0);
142
- --sidebar-primary: oklch(0.488 0.243 264.376);
143
- --sidebar-primary-foreground: oklch(0.985 0 0);
145
+ --sidebar-primary: var(--primary);
146
+ --sidebar-primary-foreground: var(--primary-foreground);
144
147
  --sidebar-accent: oklch(0.28 0 0);
145
148
  --sidebar-accent-foreground: oklch(0.985 0 0);
146
149
  --sidebar-border: oklch(1 0 0 / 10%);
147
- --sidebar-ring: oklch(0.556 0 0);
150
+ --sidebar-ring: oklch(0.65 0 0);
148
151
  --shadow-2xs: 0 1px 3px 0px oklch(0 0 0 / 0.05);
149
152
  --shadow-xs: 0 1px 3px 0px oklch(0 0 0 / 0.05);
150
153
  --shadow-sm: 0 1px 2px 0px oklch(0 0 0 / 0.18), 0 3px 8px -3px oklch(0 0 0 / 0.22);
@@ -212,6 +215,7 @@
212
215
  --spacing-space-lg: calc(0.75rem * var(--space-scale));
213
216
  --spacing-space-xl: calc(1rem * var(--space-scale));
214
217
  --spacing-space-2xl: calc(1.5rem * var(--space-scale));
218
+ --spacing-space-3xl: calc(2rem * var(--space-scale)); /* Page-level rhythm between a page header and its body or between major sections. */
215
219
  }
216
220
 
217
221
  :root {
@@ -226,8 +230,8 @@
226
230
  --density-scale: 1; /* Multiplies controls, actions, rows, and other density-sensitive geometry. */
227
231
 
228
232
  /* Shared copy gaps: normal surfaces and dense rows/collections. */
229
- --gap-normal: 0.5rem; /* Vertical rhythm between titles and structural descriptions. */
230
- --gap-dense: 0.25rem; /* Vertical rhythm between row titles and compact supporting copy. */
233
+ --gap-normal: 0.25rem; /* Vertical rhythm between titles and structural descriptions. */
234
+ --gap-dense: 0.125rem; /* Vertical rhythm between row titles and compact supporting copy. */
231
235
 
232
236
  /* Typography scale.
233
237
  * Override individual --text-* tokens for precise theme sizing. Line-height
@@ -308,15 +312,15 @@
308
312
 
309
313
  :root,
310
314
  .light {
311
- --success: oklch(0.4 0.16 145); /* Semantic success fill, border, and foreground accent. */
315
+ --success: oklch(0.4 0.1257 145); /* Semantic success fill, border, and foreground accent. */
312
316
  --success-foreground: oklch(0.985 0 0); /* Text and icons on solid success fills. */
313
317
  --info: oklch(0.45 0.214 276.966); /* Semantic informational fill, border, and foreground accent. */
314
318
  --info-foreground: oklch(0.99 0 0); /* Text and icons on solid informational fills. */
315
319
  --link-color: oklch(0.462 0.1776 259.13); /* Inline links and link-like copyable values. */
316
- --primary-accent: oklch(0.45 0.124 167.35); /* Brand color drawn AS foreground — icons, spinners, active marks — on the app surface. Matches --primary in light and provides a dedicated foreground accent in dark. Primary fills and their paired foreground remain owned by the shadcn theme. Distinct from --accent, the muted hover surface. */
317
- --warning: oklch(0.78 0.13 75); /* Semantic warning fill, border, and foreground accent. */
320
+ --primary-accent: var(--primary); /* Brand color drawn AS foreground — icons, spinners, active marks — on the app surface. Follows --primary, so a rebrand needs one root; a brand theme may set a dedicated dark foreground accent. Primary fills and their paired foreground remain owned by the shadcn theme. Distinct from --accent, the muted hover surface. */
321
+ --warning: oklch(0.78 0.13 75); /* Semantic warning fill and decorative highlight; use warning-accent for ink on ordinary surfaces. */
318
322
  --warning-foreground: oklch(0.28 0.035 60); /* Text and icons on solid warning fills. */
319
- --warning-accent: oklch(0.54 0.11 65); /* Warning colour drawn AS foreground — icons and marks — on a tinted warning surface. Darkens here and brightens in dark, where --warning stays a light fill so solid warning chips keep the amber. */
323
+ --warning-accent: oklch(0.53 0.11 65); /* Warning colour drawn AS foreground — icons and marks — on a tinted warning surface. Darkens here and brightens in dark, where --warning stays a light fill so solid warning chips keep the amber. */
320
324
  --inverse-background: oklch(0.28 0 0); /* Base background for explicit dark or artwork-backed surfaces. */
321
325
  --inverse-foreground: oklch(0.985 0 0); /* Primary text and icons on inverse backgrounds. */
322
326
  --inverse-muted: oklch(0.985 0 0 / 0.74); /* Secondary text on inverse backgrounds. */
@@ -334,7 +338,7 @@
334
338
  --info: oklch(0.72 0.14 250);
335
339
  --info-foreground: oklch(0.18 0.05 250);
336
340
  --link-color: oklch(0.72 0.12 259.13);
337
- --primary-accent: oklch(0.72 0.124 167.35);
341
+ --primary-accent: var(--primary);
338
342
  --warning: oklch(0.81 0.12 75);
339
343
  --warning-foreground: oklch(0.28 0.035 60);
340
344
  --warning-accent: oklch(0.81 0.12 75);
@@ -356,60 +360,22 @@
356
360
  * compact canonical override surface. Radius utilities read shadcn directly.
357
361
  */
358
362
  @theme inline {
359
- /*
360
- * RADIUS SCALE — xs 0.4×, sm 0.6×, md 0.8×, base 1×, lg 1.4×, xl 1.8×, all derived
361
- * from `--radius` so one consumer override moves the whole family.
362
- *
363
- * `rounded-full` is deliberately NOT a tier and must not be abstracted into
364
- * one. A pill is a *shape*, not a size: its radius is always half the box's
365
- * shorter side, so it has no fixed value to theme and gains nothing from a
366
- * token. Write `rounded-full` directly, and expect to see it on:
367
- *
368
- * - status dots and presence indicators
369
- * - avatars and initials circles
370
- * * - scrollbar tracks and thumbs
371
- * - icon-only buttons intended to read as circular
372
- *
373
- * The tell is that the element should stay a pill at ANY size or theme. If
374
- * a shape would look wrong when the box grows — a card, a dialog, an input,
375
- * a chat bubble — it belongs on the scale above, not on `rounded-full`.
376
- *
377
- * `rounded-none` is likewise a reset, not a tier: use it to square a corner
378
- * where a child meets its container's edge.
379
- */
380
-
381
- /*
382
- * Small-control tier for checkboxes, radios, and swatches, whose boxes are
383
- * too small for the base radius to read as anything but a squircle. It
384
- * exists so those controls stay on the radius family instead of pinning a
385
- * literal `rounded-[4px]`, which no consumer theme could reach. Derived
386
- * rather than mapped — shadcn has no tier below `--radius-sm`.
363
+ /* One public radius root, two shared roles: outer shells use rounded-radius;
364
+ * controls, collection rows and nested bodies use rounded-inner. The bound
365
+ * preserves short controls under large roots and independent height settings.
366
+ * Circular shapes and joined-edge resets retain their explicit mechanics.
387
367
  */
388
368
  --radius-radius-xs: calc(var(--radius) * 0.4);
389
369
  --radius-radius-sm: var(--radius-sm);
390
- /*
391
- * The intermediate 0.8× step. Without a package
392
- * name for it, that tier lived only in Tailwind's own radius scale, so a
393
- * consumer retheming the package family silently missed every control using
394
- * it. Same computed value, now reachable from one vocabulary.
395
- */
396
370
  --radius-radius-md: var(--radius-md);
397
- /* Default corners throughout the package; inner corners are an opt-in nested shape. */
398
371
  --radius-radius: var(--radius);
399
- --radius-inner: calc(var(--radius) * 0.6);
372
+ --radius-inner: min(calc(var(--radius) * 0.75), calc(min(var(--height-action), var(--height-control)) * var(--density-scale) / 4));
400
373
  --radius-radius-lg: var(--radius-xl);
401
- /*
402
- * Conversational tier. Chat bubbles read as speech rather than as surfaces,
403
- * so they sit a step above the `radius-lg` used for cards and dialogs. It
404
- * exists because that shape was previously written as `rounded-2xl`, which
405
- * lived only in Tailwind's scale — a consumer retheming the package radius
406
- * family moved every card and left the bubbles behind.
407
- */
408
374
  --radius-radius-xl: var(--radius-2xl);
409
375
 
410
376
  /* Generated geometry aliases:start */
411
- --spacing-action-xs: calc(var(--height-action) * 0.7777778 * var(--density-scale));
412
- --spacing-action-sm: calc(var(--height-action) * 0.8888889 * var(--density-scale));
377
+ --spacing-action-xs: calc(var(--height-action) * 7 / 9 * var(--density-scale));
378
+ --spacing-action-sm: calc(var(--height-action) * 8 / 9 * var(--density-scale));
413
379
  --spacing-action: calc(var(--height-action) * var(--density-scale));
414
380
  --spacing-action-lg: calc(var(--height-action) * 10 / 9 * var(--density-scale));
415
381
  --spacing-control-gap-small: calc(0.375rem * var(--space-scale));
@@ -417,29 +383,29 @@
417
383
  --spacing-control-px: calc(var(--control-x) * var(--space-scale));
418
384
  --spacing-control-px-xs: calc(var(--control-x) * 0.5 * var(--space-scale));
419
385
  --spacing-control-y-offset: calc(0.25rem * var(--space-scale));
420
- --spacing-control-icon-sm: calc((var(--control-x) * 0.8333333 + var(--icon) * 0.75 + 0.375rem) * var(--space-scale));
421
- --spacing-control-icon: calc((var(--control-x) + var(--icon) + 0.5rem) * var(--space-scale));
422
- --spacing-control-addon-sm: calc((var(--control-x) * 0.8333333 + 1.25rem + 0.375rem) * var(--space-scale));
423
- --spacing-control-addon: calc((var(--control-x) + 1.5rem + 0.375rem) * var(--space-scale));
424
- --spacing-control-count-sm: calc((var(--control-x) * 0.8333333 + 2.25rem) * var(--space-scale));
425
- --spacing-control-count: calc((var(--control-x) + 2.5rem) * var(--space-scale));
386
+ --spacing-control-icon-sm: calc((var(--control-x) * 0.8333333 + 0.375rem) * var(--space-scale) + var(--icon) * 0.75);
387
+ --spacing-control-icon: calc((var(--control-x) + 0.5rem) * var(--space-scale) + var(--icon));
388
+ --spacing-control-addon-sm: calc(var(--control-x) * 0.8333333 * var(--space-scale) + 1.25rem + 0.375rem * var(--space-scale));
389
+ --spacing-control-addon: calc(var(--control-x) * var(--space-scale) + 1.5rem + 0.375rem * var(--space-scale));
390
+ --spacing-control-count-sm: calc(var(--control-x) * 0.8333333 * var(--space-scale) + 2.25rem);
391
+ --spacing-control-count: calc(var(--control-x) * var(--space-scale) + 2.5rem);
426
392
  --spacing-control-actions-sm: calc(var(--control-x) * 0.8333333 * var(--space-scale) + 2.75rem * var(--density-scale) + 0.25rem * var(--space-scale));
427
393
  --spacing-control-actions: calc(var(--control-x) * var(--space-scale) + 2.75rem * var(--density-scale) + 0.25rem * var(--space-scale));
428
394
  --spacing-control-clear: calc(1.375rem * var(--density-scale));
429
- --spacing-control-clear-icon: calc(var(--icon) * 0.75 * var(--space-scale));
395
+ --spacing-control-clear-icon: calc(var(--icon) * 0.75);
430
396
  --spacing-control-file: calc(1.75rem * var(--density-scale));
431
397
  --spacing-textarea-sm: calc(4rem * var(--density-scale));
432
398
  --spacing-textarea: calc(5rem * var(--density-scale));
433
- --spacing-icon-sm: calc(var(--icon) * 0.75 * var(--space-scale));
434
- --spacing-icon-md: calc(var(--icon) * 0.875 * var(--space-scale));
435
- --spacing-icon: calc(var(--icon) * var(--space-scale));
436
- --spacing-icon-lg: calc(var(--icon) * 1.25 * var(--space-scale));
437
- --spacing-avatar-sm: calc(var(--avatar) * 0.75 * var(--space-scale));
438
- --spacing-avatar: calc(var(--avatar) * var(--space-scale));
439
- --spacing-avatar-lg: calc(var(--avatar) * 1.25 * var(--space-scale));
440
- --spacing-upload-avatar-small: calc(var(--avatar) * 2 * var(--space-scale));
441
- --spacing-upload-avatar: calc(var(--avatar) * 2.5 * var(--space-scale));
442
- --spacing-upload-avatar-large: calc(var(--avatar) * 3 * var(--space-scale));
399
+ --spacing-icon-sm: calc(var(--icon) * 0.75);
400
+ --spacing-icon-md: calc(var(--icon) * 0.875);
401
+ --spacing-icon: calc(var(--icon));
402
+ --spacing-icon-lg: calc(var(--icon) * 1.25);
403
+ --spacing-avatar-sm: calc(var(--avatar) * 0.75);
404
+ --spacing-avatar: calc(var(--avatar));
405
+ --spacing-avatar-lg: calc(var(--avatar) * 1.25);
406
+ --spacing-upload-avatar-small: calc(var(--avatar) * 2);
407
+ --spacing-upload-avatar: calc(var(--avatar) * 2.5);
408
+ --spacing-upload-avatar-large: calc(var(--avatar) * 3);
443
409
  /* Generated geometry aliases:end */
444
410
  }
445
411
 
@@ -455,29 +421,29 @@
455
421
 
456
422
  /* Generated geometry utilities:start */
457
423
  @utility h-action-xs {
458
- height: calc(var(--height-action) * 0.7777778 * var(--density-scale));
424
+ height: calc(var(--height-action) * 7 / 9 * var(--density-scale));
459
425
  }
460
426
 
461
427
  @utility size-action-xs {
462
- width: calc(var(--height-action) * 0.7777778 * var(--density-scale));
463
- height: calc(var(--height-action) * 0.7777778 * var(--density-scale));
428
+ width: calc(var(--height-action) * 7 / 9 * var(--density-scale));
429
+ height: calc(var(--height-action) * 7 / 9 * var(--density-scale));
464
430
  }
465
431
 
466
432
  @utility top-action-xs-center {
467
- top: calc(var(--height-action) * 0.7777778 * var(--density-scale) / 2);
433
+ top: calc(var(--height-action) * 7 / 9 * var(--density-scale) / 2);
468
434
  }
469
435
 
470
436
  @utility h-action-sm {
471
- height: calc(var(--height-action) * 0.8888889 * var(--density-scale));
437
+ height: calc(var(--height-action) * 8 / 9 * var(--density-scale));
472
438
  }
473
439
 
474
440
  @utility size-action-sm {
475
- width: calc(var(--height-action) * 0.8888889 * var(--density-scale));
476
- height: calc(var(--height-action) * 0.8888889 * var(--density-scale));
441
+ width: calc(var(--height-action) * 8 / 9 * var(--density-scale));
442
+ height: calc(var(--height-action) * 8 / 9 * var(--density-scale));
477
443
  }
478
444
 
479
445
  @utility top-action-sm-center {
480
- top: calc(var(--height-action) * 0.8888889 * var(--density-scale) / 2);
446
+ top: calc(var(--height-action) * 8 / 9 * var(--density-scale) / 2);
481
447
  }
482
448
 
483
449
  @utility h-action {
@@ -507,20 +473,20 @@
507
473
  }
508
474
 
509
475
  @utility h-control-sm {
510
- height: calc(var(--height-control) * 0.8888889 * var(--density-scale));
476
+ height: calc(var(--height-control) * 8 / 9 * var(--density-scale));
511
477
  }
512
478
 
513
479
  @utility min-h-control-sm {
514
- min-height: calc(var(--height-control) * 0.8888889 * var(--density-scale));
480
+ min-height: calc(var(--height-control) * 8 / 9 * var(--density-scale));
515
481
  }
516
482
 
517
483
  @utility w-control-sm {
518
- width: calc(var(--height-control) * 0.8888889 * var(--density-scale));
484
+ width: calc(var(--height-control) * 8 / 9 * var(--density-scale));
519
485
  }
520
486
 
521
487
  @utility size-control-sm {
522
- width: calc(var(--height-control) * 0.8888889 * var(--density-scale));
523
- height: calc(var(--height-control) * 0.8888889 * var(--density-scale));
488
+ width: calc(var(--height-control) * 8 / 9 * var(--density-scale));
489
+ height: calc(var(--height-control) * 8 / 9 * var(--density-scale));
524
490
  }
525
491
 
526
492
  @utility h-control {
@@ -594,43 +560,43 @@
594
560
  }
595
561
 
596
562
  @utility ps-control-icon-sm {
597
- padding-inline-start: calc((var(--control-x) * 0.8333333 + var(--icon) * 0.75 + 0.375rem) * var(--space-scale));
563
+ padding-inline-start: calc((var(--control-x) * 0.8333333 + 0.375rem) * var(--space-scale) + var(--icon) * 0.75);
598
564
  }
599
565
 
600
566
  @utility pe-control-icon-sm {
601
- padding-inline-end: calc((var(--control-x) * 0.8333333 + var(--icon) * 0.75 + 0.375rem) * var(--space-scale));
567
+ padding-inline-end: calc((var(--control-x) * 0.8333333 + 0.375rem) * var(--space-scale) + var(--icon) * 0.75);
602
568
  }
603
569
 
604
570
  @utility ps-control-icon {
605
- padding-inline-start: calc((var(--control-x) + var(--icon) + 0.5rem) * var(--space-scale));
571
+ padding-inline-start: calc((var(--control-x) + 0.5rem) * var(--space-scale) + var(--icon));
606
572
  }
607
573
 
608
574
  @utility pe-control-icon {
609
- padding-inline-end: calc((var(--control-x) + var(--icon) + 0.5rem) * var(--space-scale));
575
+ padding-inline-end: calc((var(--control-x) + 0.5rem) * var(--space-scale) + var(--icon));
610
576
  }
611
577
 
612
578
  @utility ps-control-addon-sm {
613
- padding-inline-start: calc((var(--control-x) * 0.8333333 + 1.25rem + 0.375rem) * var(--space-scale));
579
+ padding-inline-start: calc(var(--control-x) * 0.8333333 * var(--space-scale) + 1.25rem + 0.375rem * var(--space-scale));
614
580
  }
615
581
 
616
582
  @utility pe-control-addon-sm {
617
- padding-inline-end: calc((var(--control-x) * 0.8333333 + 1.25rem + 0.375rem) * var(--space-scale));
583
+ padding-inline-end: calc(var(--control-x) * 0.8333333 * var(--space-scale) + 1.25rem + 0.375rem * var(--space-scale));
618
584
  }
619
585
 
620
586
  @utility ps-control-addon {
621
- padding-inline-start: calc((var(--control-x) + 1.5rem + 0.375rem) * var(--space-scale));
587
+ padding-inline-start: calc(var(--control-x) * var(--space-scale) + 1.5rem + 0.375rem * var(--space-scale));
622
588
  }
623
589
 
624
590
  @utility pe-control-addon {
625
- padding-inline-end: calc((var(--control-x) + 1.5rem + 0.375rem) * var(--space-scale));
591
+ padding-inline-end: calc(var(--control-x) * var(--space-scale) + 1.5rem + 0.375rem * var(--space-scale));
626
592
  }
627
593
 
628
594
  @utility pe-control-count-sm {
629
- padding-inline-end: calc((var(--control-x) * 0.8333333 + 2.25rem) * var(--space-scale));
595
+ padding-inline-end: calc(var(--control-x) * 0.8333333 * var(--space-scale) + 2.25rem);
630
596
  }
631
597
 
632
598
  @utility pe-control-count {
633
- padding-inline-end: calc((var(--control-x) + 2.5rem) * var(--space-scale));
599
+ padding-inline-end: calc(var(--control-x) * var(--space-scale) + 2.5rem);
634
600
  }
635
601
 
636
602
  @utility pe-control-actions-sm {
@@ -647,8 +613,8 @@
647
613
  }
648
614
 
649
615
  @utility size-control-clear-icon {
650
- width: calc(var(--icon) * 0.75 * var(--space-scale));
651
- height: calc(var(--icon) * 0.75 * var(--space-scale));
616
+ width: calc(var(--icon) * 0.75);
617
+ height: calc(var(--icon) * 0.75);
652
618
  }
653
619
 
654
620
  @utility h-control-file {
@@ -737,10 +703,10 @@
737
703
  --row-y: 0.5rem; /* Default vertical row inset with an 8px breathing floor. */
738
704
 
739
705
  /* Surface base measurements. Utilities apply --space-scale at use time.
740
- * The xs inset is the 0.5rem collection-shell contract for action menus,
706
+ * The xs inset is half the surface root for action menus,
741
707
  * option lists, selects, and equivalent item popovers. */
742
- --surface-x: 1rem; /* Default inline inset for cards and multi-content surfaces. */
743
- --surface-y: 1rem; /* Default block inset for cards and multi-content surfaces. */
708
+ --surface-x: 1.25rem; /* Default inline inset for cards and multi-content surfaces. */
709
+ --surface-y: 1.25rem; /* Default block inset for cards and multi-content surfaces. */
744
710
 
745
711
  /* Data visualization canvas */
746
712
  --chart-min-height: 13.75rem; /* Minimum readable canvas height for package chart frames. */
@@ -0,0 +1,24 @@
1
+ /*
2
+ * Themelia green — an opt-in brand theme.
3
+ *
4
+ * Import after the package stylesheet:
5
+ * import 'themelia-react-ui/style.css';
6
+ * import 'themelia-react-ui/themes/green.css';
7
+ *
8
+ * It replaces only the brand roles. The green sits about 22° of hue from the
9
+ * success color, so pair it with labels or icons wherever state matters.
10
+ * Both blocks are needed: a later :root rule alone would also win in dark mode.
11
+ */
12
+ :root,
13
+ .light {
14
+ --primary: oklch(0.45 0.09 167.35); /* Green primary-action fill and brand ink. */
15
+ --primary-foreground: oklch(0.985 0 0); /* Text and icons on the green fill. */
16
+ --chart-1: oklch(0.56 0.11 167); /* The first chart series follows the brand. */
17
+ }
18
+
19
+ .dark {
20
+ --primary: oklch(0.70 0.13 167.35); /* Lightened for readable brand text and controls on dark surfaces. */
21
+ --primary-foreground: oklch(0.18 0.03 167.35); /* Dark ink on the lightened primary fill. */
22
+ --primary-accent: oklch(0.72 0.124 167.35); /* Brand foreground accent on dark surfaces. */
23
+ --chart-1: oklch(0.74 0.13 167);
24
+ }