themelia-react-ui 1.0.0 → 1.0.2

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 (507) hide show
  1. package/CHANGELOG.md +190 -1
  2. package/README.md +92 -13
  3. package/dist/{accordion-BRWh3BM1.js → accordion-BRTcsp8J.js} +8 -8
  4. package/dist/accordion-BRTcsp8J.js.map +1 -0
  5. package/dist/{action-menu-Cx3SdfbN.js → action-menu-Drxw_vJk.js} +36 -36
  6. package/dist/action-menu-Drxw_vJk.js.map +1 -0
  7. package/dist/affordance-geometry.generated-CL84ZN9A.js +63 -0
  8. package/dist/affordance-geometry.generated-CL84ZN9A.js.map +1 -0
  9. package/dist/{ai-artifact-DkOArd3-.js → ai-artifact-DLVdK0Py.js} +151 -155
  10. package/dist/ai-artifact-DLVdK0Py.js.map +1 -0
  11. package/dist/{app-shell-BH_bGcE2.js → app-shell-C_fKpljx.js} +11 -10
  12. package/dist/app-shell-C_fKpljx.js.map +1 -0
  13. package/dist/{attachment-DsLgNHXt.js → attachment-DbjUWsP0.js} +12 -12
  14. package/dist/{attachment-DsLgNHXt.js.map → attachment-DbjUWsP0.js.map} +1 -1
  15. package/dist/auth-CAQcasMV.js +723 -0
  16. package/dist/auth-CAQcasMV.js.map +1 -0
  17. package/dist/{avatar-CsnWaYmt.js → avatar-Bu2HhitA.js} +76 -71
  18. package/dist/avatar-Bu2HhitA.js.map +1 -0
  19. package/dist/{badge-BZXZT9wd.js → badge-CzId1Wlm.js} +4 -4
  20. package/dist/{badge-BZXZT9wd.js.map → badge-CzId1Wlm.js.map} +1 -1
  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 +25 -27
  29. package/dist/base/carousel.js.map +1 -1
  30. package/dist/base/cascader.js +150 -148
  31. package/dist/base/cascader.js.map +1 -1
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +3 -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 -3
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +233 -0
  44. package/dist/base/inline-edit.js.map +1 -0
  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 +1 -1
  51. package/dist/base/repeaters.js +33 -33
  52. package/dist/base/repeaters.js.map +1 -1
  53. package/dist/base/sheet.js +1 -1
  54. package/dist/base/sidebar.js +1 -1
  55. package/dist/base/signature-pad.js +83 -81
  56. package/dist/base/signature-pad.js.map +1 -1
  57. package/dist/base/skeleton.js +1 -1
  58. package/dist/base/spinner.js +1 -1
  59. package/dist/base/structure.js +1 -1
  60. package/dist/base/table.js +1 -1
  61. package/dist/base/text-inputs.js +2 -2
  62. package/dist/base/toaster.js +6 -6
  63. package/dist/base/toaster.js.map +1 -1
  64. package/dist/base/tree.js +1 -1
  65. package/dist/base/upload-queue.js +1 -1
  66. package/dist/base/upload.js +3 -3
  67. package/dist/base/value-inputs.js +1 -1
  68. package/dist/blocks/admin.js +134 -134
  69. package/dist/blocks/admin.js.map +1 -1
  70. package/dist/blocks/ai.js +120 -117
  71. package/dist/blocks/ai.js.map +1 -1
  72. package/dist/blocks/analytics/usage-card.js +3 -0
  73. package/dist/blocks/analytics.js +530 -491
  74. package/dist/blocks/analytics.js.map +1 -1
  75. package/dist/blocks/collaboration.js +2 -2
  76. package/dist/blocks/commerce/receipt.js +1 -1
  77. package/dist/blocks/commerce.js +395 -383
  78. package/dist/blocks/commerce.js.map +1 -1
  79. package/dist/blocks/data-display.js +1 -1
  80. package/dist/blocks/onboarding.js +6 -6
  81. package/dist/blocks/onboarding.js.map +1 -1
  82. package/dist/blocks/planning.js +311 -0
  83. package/dist/blocks/planning.js.map +1 -0
  84. package/dist/blocks/timelines.js +1 -1
  85. package/dist/{breadcrumbs-DdQ_I5ra.js → breadcrumbs-BuYz5SDU.js} +9 -8
  86. package/dist/breadcrumbs-BuYz5SDU.js.map +1 -0
  87. package/dist/button-BZDasD04.js +651 -0
  88. package/dist/button-BZDasD04.js.map +1 -0
  89. package/dist/{button-BS6l5JUw.js → button-BZyfTvwm.js} +3 -3
  90. package/dist/button-BZyfTvwm.js.map +1 -0
  91. package/dist/buttons-D_6KJvEE.js +99 -0
  92. package/dist/buttons-D_6KJvEE.js.map +1 -0
  93. package/dist/{cards-BMB0laLG.js → cards-qGSErLw_.js} +12 -12
  94. package/dist/{cards-BMB0laLG.js.map → cards-qGSErLw_.js.map} +1 -1
  95. package/dist/chart-Bsc5BICK.js +150 -0
  96. package/dist/chart-Bsc5BICK.js.map +1 -0
  97. package/dist/checkbox-BQNDjUCh.js +34 -0
  98. package/dist/checkbox-BQNDjUCh.js.map +1 -0
  99. package/dist/choice-inputs-Mk3iWbhr.js +725 -0
  100. package/dist/choice-inputs-Mk3iWbhr.js.map +1 -0
  101. package/dist/{code-block-DIlqzoiD.js → code-block-DzHKRybS.js} +23 -23
  102. package/dist/code-block-DzHKRybS.js.map +1 -0
  103. package/dist/{collapsible-DsnktFNv.js → collapsible-ClvC7Bj3.js} +3 -3
  104. package/dist/{collapsible-DsnktFNv.js.map → collapsible-ClvC7Bj3.js.map} +1 -1
  105. package/dist/{collection-content-C4fthJV_.js → collection-content-D6S8cv_n.js} +3 -3
  106. package/dist/{collection-content-C4fthJV_.js.map → collection-content-D6S8cv_n.js.map} +1 -1
  107. package/dist/{combobox-HDftpzxt.js → combobox-BFnbJJp3.js} +18 -18
  108. package/dist/combobox-BFnbJJp3.js.map +1 -0
  109. package/dist/{combobox-CHD750do.js → combobox-hozNwUcc.js} +313 -316
  110. package/dist/combobox-hozNwUcc.js.map +1 -0
  111. package/dist/{command-D0kWBZfd.js → command-BnmSchli.js} +9 -9
  112. package/dist/command-BnmSchli.js.map +1 -0
  113. package/dist/comments-u5L0OGip.js +1156 -0
  114. package/dist/comments-u5L0OGip.js.map +1 -0
  115. package/dist/components/base/buttons/button-group.recipes.d.ts +1 -1
  116. package/dist/components/base/buttons/button.recipes.d.ts +10 -19
  117. package/dist/components/base/buttons/use-pending-button-focus.d.ts +3 -0
  118. package/dist/components/base/cards/card.recipes.d.ts +13 -5
  119. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -4
  120. package/dist/components/base/cards/smart-card.types.d.ts +3 -1
  121. package/dist/components/base/date-pickers/date-picker.recipes.d.ts +5 -18
  122. package/dist/components/base/date-pickers/datepicker.types.d.ts +3 -0
  123. package/dist/components/base/forms/form-field.d.ts +1 -0
  124. package/dist/components/base/forms/form-sizing.d.ts +3 -3
  125. package/dist/components/base/inline-edit/index.d.ts +2 -0
  126. package/dist/components/base/inline-edit/inline-edit.d.ts +81 -0
  127. package/dist/components/base/inline-edit/inline-edit.recipes.d.ts +6 -0
  128. package/dist/components/base/navigation/tabs.d.ts +3 -5
  129. package/dist/components/base/popover/popover.recipes.d.ts +3 -3
  130. package/dist/components/base/structure/structure.recipes.d.ts +6 -0
  131. package/dist/components/base/table/index.d.ts +1 -1
  132. package/dist/components/base/text-inputs/clear-native-field.d.ts +2 -0
  133. package/dist/components/base/text-inputs/input-trailing-action.d.ts +3 -0
  134. package/dist/components/blocks/analytics/index.d.ts +1 -0
  135. package/dist/components/blocks/analytics/types.d.ts +1 -1
  136. package/dist/components/blocks/analytics/usage-card/index.d.ts +3 -0
  137. package/dist/components/blocks/analytics/usage-card/types.d.ts +52 -0
  138. package/dist/components/blocks/analytics/usage-card/usage-card.d.ts +6 -0
  139. package/dist/components/blocks/analytics/usage-card/usage-card.data.d.ts +19 -0
  140. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +22 -0
  141. package/dist/components/blocks/collaboration/message/message.recipes.d.ts +12 -0
  142. package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +1 -4
  143. package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +1 -4
  144. package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +3 -3
  145. package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +1 -6
  146. package/dist/components/blocks/planning/index.d.ts +3 -0
  147. package/dist/components/blocks/planning/task-card.d.ts +3 -0
  148. package/dist/components/blocks/planning/task-card.strings.d.ts +15 -0
  149. package/dist/components/blocks/planning/task-card.types.d.ts +66 -0
  150. package/dist/components/features/combobox/components/error-message.d.ts +1 -1
  151. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -0
  152. package/dist/components/features/filters/facets/search-facet.d.ts +0 -12
  153. package/dist/components/features/filters/facets/tags-facet.d.ts +1 -1
  154. package/dist/components/features/media-library/media-library.d.ts +1 -1
  155. package/dist/components/features/media-library/media-library.types.d.ts +9 -1
  156. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  157. package/dist/components/features/overlays/hooks/use-pending-overlay-focus.d.ts +2 -0
  158. package/dist/components/features/overlays/overlays.types.d.ts +5 -4
  159. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +2 -1
  160. package/dist/components/features/table/data-table.d.ts +1 -1
  161. package/dist/components/features/table/table.types.d.ts +1 -1
  162. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +3 -1
  163. package/dist/components/layout/auth/auth.types.d.ts +1 -0
  164. package/dist/components/layout/page/page.d.ts +0 -1
  165. package/dist/components/layout/page/page.types.d.ts +9 -3
  166. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -1
  167. package/dist/components/layout/sidebar/sidebar.types.d.ts +4 -0
  168. package/dist/components/layout/workspace/workspace.types.d.ts +3 -0
  169. package/dist/components/typography/heading.d.ts +5 -2
  170. package/dist/components/typography/index.d.ts +1 -1
  171. package/dist/components/typography/text.styles.d.ts +10 -0
  172. package/dist/components/ui/popover.d.ts +1 -1
  173. package/dist/components/ui/sidebar.d.ts +1 -1
  174. package/dist/components/ui/table.d.ts +2 -1
  175. package/dist/container.recipes-D9t8MHR3.js +27 -0
  176. package/dist/container.recipes-D9t8MHR3.js.map +1 -0
  177. package/dist/{containers-CPNyNo1_.js → containers-DqB-bSYE.js} +34 -56
  178. package/dist/containers-DqB-bSYE.js.map +1 -0
  179. package/dist/control-group-recipes-DBXmfh2E.js +21 -0
  180. package/dist/control-group-recipes-DBXmfh2E.js.map +1 -0
  181. package/dist/{copyable-B7SBXJMr.js → copyable-BTSByfmq.js} +6 -6
  182. package/dist/{copyable-B7SBXJMr.js.map → copyable-BTSByfmq.js.map} +1 -1
  183. package/dist/{data-display-b3d1TfL4.js → data-display-Bihs9Ven.js} +542 -329
  184. package/dist/data-display-Bihs9Ven.js.map +1 -0
  185. package/dist/{date-BFNMnrS5.js → date-DOKhJPu7.js} +4 -4
  186. package/dist/{date-BFNMnrS5.js.map → date-DOKhJPu7.js.map} +1 -1
  187. package/dist/{date-picker-DI6kPNof.js → date-picker-DzP5HQq7.js} +492 -472
  188. package/dist/date-picker-DzP5HQq7.js.map +1 -0
  189. package/dist/date-pickers-BpgGz7S-.js +196 -0
  190. package/dist/date-pickers-BpgGz7S-.js.map +1 -0
  191. package/dist/{display-ByI5tkqy.js → display-CS6Hbk18.js} +8 -8
  192. package/dist/{display-ByI5tkqy.js.map → display-CS6Hbk18.js.map} +1 -1
  193. package/dist/{dropdown-menu-BlnyHr-9.js → dropdown-menu-D-boNgGO.js} +7 -7
  194. package/dist/{dropdown-menu-BlnyHr-9.js.map → dropdown-menu-D-boNgGO.js.map} +1 -1
  195. package/dist/features/activities.js +152 -141
  196. package/dist/features/activities.js.map +1 -1
  197. package/dist/features/ai-chat.js +182 -179
  198. package/dist/features/ai-chat.js.map +1 -1
  199. package/dist/features/async-preview.js +9 -9
  200. package/dist/features/async-preview.js.map +1 -1
  201. package/dist/features/combobox.js +1 -1
  202. package/dist/features/comments.js +1 -1
  203. package/dist/features/data-view.js +25 -23
  204. package/dist/features/data-view.js.map +1 -1
  205. package/dist/features/email-composer/engine.js +1 -1
  206. package/dist/features/email-composer.js +103 -104
  207. package/dist/features/email-composer.js.map +1 -1
  208. package/dist/features/event-calendar.js +375 -373
  209. package/dist/features/event-calendar.js.map +1 -1
  210. package/dist/features/filters.js +1 -1
  211. package/dist/features/global-search.js +222 -224
  212. package/dist/features/global-search.js.map +1 -1
  213. package/dist/features/kanban.js +29 -29
  214. package/dist/features/kanban.js.map +1 -1
  215. package/dist/features/map.js +59 -58
  216. package/dist/features/map.js.map +1 -1
  217. package/dist/features/media-library.js +856 -855
  218. package/dist/features/media-library.js.map +1 -1
  219. package/dist/features/mentions.js +1 -1
  220. package/dist/features/overlays.js +1 -1
  221. package/dist/features/products.js +1210 -1209
  222. package/dist/features/products.js.map +1 -1
  223. package/dist/features/questionnaire.js +133 -132
  224. package/dist/features/questionnaire.js.map +1 -1
  225. package/dist/features/resource-assignment.js +29 -31
  226. package/dist/features/resource-assignment.js.map +1 -1
  227. package/dist/features/resource.js +13 -13
  228. package/dist/features/resource.js.map +1 -1
  229. package/dist/features/rich-text-editor.js +2 -2
  230. package/dist/features/schema-form.js +82 -82
  231. package/dist/features/schema-form.js.map +1 -1
  232. package/dist/features/suggestions.js +3 -3
  233. package/dist/features/sync.js +4 -4
  234. package/dist/features/sync.js.map +1 -1
  235. package/dist/features/table.js +1 -1
  236. package/dist/features/theme-tweaker.js +456 -450
  237. package/dist/features/theme-tweaker.js.map +1 -1
  238. package/dist/feedback-CJkUAapr.js +233 -0
  239. package/dist/feedback-CJkUAapr.js.map +1 -0
  240. package/dist/field-affordance-recipes-uKY4MsZ_.js +25 -0
  241. package/dist/field-affordance-recipes-uKY4MsZ_.js.map +1 -0
  242. package/dist/{field-state-recipes-CBTRt9Bt.js → field-state-recipes-DQQpiLWC.js} +3 -3
  243. package/dist/field-state-recipes-DQQpiLWC.js.map +1 -0
  244. package/dist/{filters-qtrcv1hf.js → filters-D6FF8L6s.js} +715 -720
  245. package/dist/filters-D6FF8L6s.js.map +1 -0
  246. package/dist/{form-field-C6W-y2hR.js → form-field-CZwrkP7m.js} +17 -9
  247. package/dist/form-field-CZwrkP7m.js.map +1 -0
  248. package/dist/{form-sizing-39NohSqn.js → form-sizing-QP8aIRaW.js} +10 -6
  249. package/dist/form-sizing-QP8aIRaW.js.map +1 -0
  250. package/dist/{forms-BF-HSbff.js → forms-B5NCbkSC.js} +35 -35
  251. package/dist/{forms-BF-HSbff.js.map → forms-B5NCbkSC.js.map} +1 -1
  252. package/dist/forms-numeric-Crrm80Lm.js +867 -0
  253. package/dist/forms-numeric-Crrm80Lm.js.map +1 -0
  254. package/dist/{header-B8ex54cY.js → header-kxruN3RM.js} +53 -49
  255. package/dist/header-kxruN3RM.js.map +1 -0
  256. package/dist/{hooks-D6UBVzf2.js → hooks-BrlnCwQd.js} +2 -2
  257. package/dist/{hooks-D6UBVzf2.js.map → hooks-BrlnCwQd.js.map} +1 -1
  258. package/dist/{http-CLTVJc5I.js → http-CdEIHyQf.js} +2 -2
  259. package/dist/http-CdEIHyQf.js.map +1 -0
  260. package/dist/{icon-badge-Dv0RYQwj.js → icon-badge-Btc6pQrp.js} +4 -4
  261. package/dist/{icon-badge-Dv0RYQwj.js.map → icon-badge-Btc6pQrp.js.map} +1 -1
  262. package/dist/index.js +2 -2
  263. package/dist/input-SX9V0AL3.js +255 -0
  264. package/dist/input-SX9V0AL3.js.map +1 -0
  265. package/dist/input-vxcaNCYC.js +20 -0
  266. package/dist/input-vxcaNCYC.js.map +1 -0
  267. package/dist/{item-pJ0GsOiJ.js → item-DE4YnuJx.js} +18 -17
  268. package/dist/item-DE4YnuJx.js.map +1 -0
  269. package/dist/layout/app-shell.js +1 -1
  270. package/dist/layout/auth.js +1 -1
  271. package/dist/layout/containers.js +1 -1
  272. package/dist/layout/header.js +1 -1
  273. package/dist/layout/hooks.js +1 -1
  274. package/dist/layout/navigation.js +1 -1
  275. package/dist/layout/page.js +1 -1
  276. package/dist/layout/settings.js +1 -1
  277. package/dist/layout/sidebar.js +2 -2
  278. package/dist/layout/workspace.js +1 -1
  279. package/dist/layout.js +10 -10
  280. package/dist/lib/affordance-geometry.generated.d.ts +44 -4
  281. package/dist/lib/control-group-recipes.d.ts +22 -0
  282. package/dist/lib/field-affordance-recipes.d.ts +35 -2
  283. package/dist/lib/field-state-recipes.d.ts +2 -2
  284. package/dist/lib/navigation-row-recipes.d.ts +3 -2
  285. package/dist/lib/overlay-anatomy-recipes.d.ts +1 -1
  286. package/dist/lib/surface-recipes.d.ts +5 -2
  287. package/dist/lib/token-merge.generated.d.ts +144 -2
  288. package/dist/lib/ui-provider/types.d.ts +4 -2
  289. package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
  290. package/dist/lib/utils.js +1 -1
  291. package/dist/{media-gallery-Ca4YmvBi.js → media-gallery-DLp3HAz0.js} +75 -74
  292. package/dist/media-gallery-DLp3HAz0.js.map +1 -0
  293. package/dist/{mentions-CRio8mTm.js → mentions-Cl0Kt_Pd.js} +52 -50
  294. package/dist/{mentions-CRio8mTm.js.map → mentions-Cl0Kt_Pd.js.map} +1 -1
  295. package/dist/message-SZUNB1eX.js +127 -0
  296. package/dist/message-SZUNB1eX.js.map +1 -0
  297. package/dist/{navigation-BTrEb5u4.js → navigation-DnQSNMT0.js} +64 -55
  298. package/dist/navigation-DnQSNMT0.js.map +1 -0
  299. package/dist/{navigation-DqEITuD2.js → navigation-DyytsLRB.js} +37 -37
  300. package/dist/navigation-DyytsLRB.js.map +1 -0
  301. package/dist/{navigation-row-recipes-BFpvGPGE.js → navigation-row-recipes-DQEXQcqY.js} +3 -3
  302. package/dist/navigation-row-recipes-DQEXQcqY.js.map +1 -0
  303. package/dist/{number-BNT_BIzJ.js → number-DasMFWEG.js} +4 -4
  304. package/dist/{number-BNT_BIzJ.js.map → number-DasMFWEG.js.map} +1 -1
  305. package/dist/overlays-DUbs1KEi.js +1011 -0
  306. package/dist/overlays-DUbs1KEi.js.map +1 -0
  307. package/dist/{page-BMBGjJY8.js → page-hGmT4nWK.js} +75 -64
  308. package/dist/page-hGmT4nWK.js.map +1 -0
  309. package/dist/{page-header-BH41wCyY.js → page-header-D8nERkn5.js} +9 -9
  310. package/dist/page-header-D8nERkn5.js.map +1 -0
  311. package/dist/{pagination-C29vvt3I.js → pagination-NLGqRirf.js} +20 -20
  312. package/dist/pagination-NLGqRirf.js.map +1 -0
  313. package/dist/{popover-TInGXsjg.js → popover-CghIYdQf.js} +23 -22
  314. package/dist/popover-CghIYdQf.js.map +1 -0
  315. package/dist/{popover-menu-BzqXqE72.js → popover-menu-B4PoWhRl.js} +6 -6
  316. package/dist/{popover-menu-BzqXqE72.js.map → popover-menu-B4PoWhRl.js.map} +1 -1
  317. package/dist/{popover.recipes-zgBhMlUu.js → popover.recipes-QlD4JenO.js} +5 -5
  318. package/dist/popover.recipes-QlD4JenO.js.map +1 -0
  319. package/dist/{primitives-DKPOGVpj.js → primitives-C7ff0QaI.js} +120 -113
  320. package/dist/primitives-C7ff0QaI.js.map +1 -0
  321. package/dist/primitives.js +3 -3
  322. package/dist/progress-BroqrAyV.js +169 -0
  323. package/dist/progress-BroqrAyV.js.map +1 -0
  324. package/dist/{receipt-DYWTQGEc.js → receipt-BuJynLgf.js} +8 -8
  325. package/dist/{receipt-DYWTQGEc.js.map → receipt-BuJynLgf.js.map} +1 -1
  326. package/dist/{rich-text-B7sBAdDG.js → rich-text-DlxDOtf4.js} +4 -4
  327. package/dist/{rich-text-B7sBAdDG.js.map → rich-text-DlxDOtf4.js.map} +1 -1
  328. package/dist/rich-text-editor-BKyG7rWz.js +574 -0
  329. package/dist/rich-text-editor-BKyG7rWz.js.map +1 -0
  330. package/dist/{rich-text-editor.recipes-DxvOE0Lp.js → rich-text-editor.recipes-B72Nfuze.js} +35 -26
  331. package/dist/rich-text-editor.recipes-B72Nfuze.js.map +1 -0
  332. package/dist/{scroll-area-BheMQ270.js → scroll-area-D-pIhEKl.js} +3 -3
  333. package/dist/scroll-area-D-pIhEKl.js.map +1 -0
  334. package/dist/{separator-Gk_WXH-l.js → separator-BNIgG3au.js} +3 -3
  335. package/dist/{separator-Gk_WXH-l.js.map → separator-BNIgG3au.js.map} +1 -1
  336. package/dist/{separator-DO0EbCEm.js → separator-BhtFyo4x.js} +2 -2
  337. package/dist/{separator-DO0EbCEm.js.map → separator-BhtFyo4x.js.map} +1 -1
  338. package/dist/services/actions.js +1 -1
  339. package/dist/{settings-D9f_wdIC.js → settings-DOTOzeZ2.js} +10 -9
  340. package/dist/{settings-D9f_wdIC.js.map → settings-DOTOzeZ2.js.map} +1 -1
  341. package/dist/{sheet-vOUloJ4O.js → sheet-BFhrNehm.js} +11 -11
  342. package/dist/sheet-BFhrNehm.js.map +1 -0
  343. package/dist/{sidebar-CNBKFDRW.js → sidebar-CyR4XKwR.js} +219 -200
  344. package/dist/sidebar-CyR4XKwR.js.map +1 -0
  345. package/dist/{sidebar-C3UKkbC5.js → sidebar-SvGJ0Zwi.js} +63 -58
  346. package/dist/sidebar-SvGJ0Zwi.js.map +1 -0
  347. package/dist/{skeleton-BvRhK8y-.js → skeleton-3F0uhYn3.js} +4 -4
  348. package/dist/{skeleton-BvRhK8y-.js.map → skeleton-3F0uhYn3.js.map} +1 -1
  349. package/dist/{smart-card-B5FcKODh.js → smart-card-DjGVV2xr.js} +206 -199
  350. package/dist/smart-card-DjGVV2xr.js.map +1 -0
  351. package/dist/{spinner-JtlFJ7Nc.js → spinner-Cpf7oRkF.js} +5 -5
  352. package/dist/{spinner-JtlFJ7Nc.js.map → spinner-Cpf7oRkF.js.map} +1 -1
  353. package/dist/{structure-BvW4vG4H.js → structure-CRdqVawd.js} +14 -14
  354. package/dist/{structure-BvW4vG4H.js.map → structure-CRdqVawd.js.map} +1 -1
  355. package/dist/{structure.recipes-DjqnBpwz.js → structure.recipes-Bqhf9oIh.js} +2 -2
  356. package/dist/structure.recipes-Bqhf9oIh.js.map +1 -0
  357. package/dist/style.css +1 -1
  358. package/dist/{surface-recipes-CQfRr-VL.js → surface-recipes-Dd__PD-w.js} +4 -3
  359. package/dist/surface-recipes-Dd__PD-w.js.map +1 -0
  360. package/dist/{table-DnlAJ-xR.js → table-CLtJTxoR.js} +17 -16
  361. package/dist/table-CLtJTxoR.js.map +1 -0
  362. package/dist/table-CcRDZiLP.js +1444 -0
  363. package/dist/table-CcRDZiLP.js.map +1 -0
  364. package/dist/tabs-BNgu7g0u.js +188 -0
  365. package/dist/tabs-BNgu7g0u.js.map +1 -0
  366. package/dist/text-inputs-DsR56TR-.js +330 -0
  367. package/dist/text-inputs-DsR56TR-.js.map +1 -0
  368. package/dist/{text.styles-BwB7vAF2.js → text.styles-Q4sGAIgA.js} +18 -10
  369. package/dist/text.styles-Q4sGAIgA.js.map +1 -0
  370. package/dist/theme.css +77 -115
  371. package/dist/{timelines-CnZ2S_Gr.js → timelines-D1pkt3se.js} +84 -78
  372. package/dist/timelines-D1pkt3se.js.map +1 -0
  373. package/dist/{tree-COD9BGdU.js → tree-BtmYyMZV.js} +8 -8
  374. package/dist/{tree-COD9BGdU.js.map → tree-BtmYyMZV.js.map} +1 -1
  375. package/dist/typography/rich-text.js +1 -1
  376. package/dist/typography-BxQgiZyw.js +96 -0
  377. package/dist/typography-BxQgiZyw.js.map +1 -0
  378. package/dist/typography.js +1 -1
  379. package/dist/{ui-provider-CftIB6TY.js → ui-provider-DRPn3qNl.js} +3 -2
  380. package/dist/ui-provider-DRPn3qNl.js.map +1 -0
  381. package/dist/ui-provider.js +1 -1
  382. package/dist/{upload-DIzw1dx1.js → upload-CDbYw1WN.js} +326 -323
  383. package/dist/upload-CDbYw1WN.js.map +1 -0
  384. package/dist/{upload-queue-xRJ3qDmd.js → upload-queue-CNd_hH_a.js} +25 -25
  385. package/dist/upload-queue-CNd_hH_a.js.map +1 -0
  386. package/dist/usage-card-VyJLUwRr.js +457 -0
  387. package/dist/usage-card-VyJLUwRr.js.map +1 -0
  388. package/dist/utils-BvH9PSmq.js +4275 -0
  389. package/dist/utils-BvH9PSmq.js.map +1 -0
  390. package/dist/value-inputs-D0KCrfVC.js +840 -0
  391. package/dist/value-inputs-D0KCrfVC.js.map +1 -0
  392. package/dist/{workspace-Cbqz4FzN.js → workspace-CcR8r-Nt.js} +115 -122
  393. package/dist/workspace-CcR8r-Nt.js.map +1 -0
  394. package/docs/consumer-skill/SKILL.md +112 -18
  395. package/docs/consumer-skill/examples/analytics.tsx +34 -0
  396. package/docs/consumer-skill/examples/app-layout.tsx +42 -12
  397. package/docs/consumer-skill/examples/detail.tsx +24 -9
  398. package/docs/consumer-skill/examples/manifest.json +27 -1
  399. package/docs/consumer-skill/examples/planning-usage-edit.tsx +29 -0
  400. package/docs/consumer-skill/examples/scoped-directory.tsx +77 -0
  401. package/docs/consumer-skill/examples/website.tsx +56 -0
  402. package/docs/consumer-skill/references/analytics.md +70 -0
  403. package/docs/consumer-skill/references/composition.md +219 -2
  404. package/docs/consumer-skill/references/design-contract.md +37 -10
  405. package/docs/consumer-skill/references/discovery.md +93 -5
  406. package/docs/consumer-skill/references/installation.md +20 -3
  407. package/docs/consumer-skill/references/integration.md +26 -0
  408. package/docs/consumer-skill/references/public-api.json +2416 -388
  409. package/docs/consumer-skill/references/review.md +126 -0
  410. package/docs/consumer-skill/references/theming.md +52 -7
  411. package/docs/consumer-skill/references/tokens.json +177 -9
  412. package/docs/consumer-skill/references/workflows.md +129 -1
  413. package/docs/consumer-skill/scripts/check-composition.mjs +31 -0
  414. package/docs/consumer-skill/scripts/composition-policy.mjs +317 -0
  415. package/docs/consumer-skill/scripts/discovery.mjs +65 -8
  416. package/docs/consumer-skill/scripts/surface-policy.mjs +66 -0
  417. package/package.json +30 -6
  418. package/dist/accordion-BRWh3BM1.js.map +0 -1
  419. package/dist/action-menu-Cx3SdfbN.js.map +0 -1
  420. package/dist/affordance-geometry.generated-DXl-Zb3Z.js +0 -23
  421. package/dist/affordance-geometry.generated-DXl-Zb3Z.js.map +0 -1
  422. package/dist/ai-artifact-DkOArd3-.js.map +0 -1
  423. package/dist/app-shell-BH_bGcE2.js.map +0 -1
  424. package/dist/auth-BDB1V_2q.js +0 -704
  425. package/dist/auth-BDB1V_2q.js.map +0 -1
  426. package/dist/avatar-CsnWaYmt.js.map +0 -1
  427. package/dist/breadcrumbs-DdQ_I5ra.js.map +0 -1
  428. package/dist/button-BS6l5JUw.js.map +0 -1
  429. package/dist/buttons-Co6GavvM.js +0 -674
  430. package/dist/buttons-Co6GavvM.js.map +0 -1
  431. package/dist/chart-DVfcwQu6.js +0 -149
  432. package/dist/chart-DVfcwQu6.js.map +0 -1
  433. package/dist/choice-inputs-CavA-SGV.js +0 -644
  434. package/dist/choice-inputs-CavA-SGV.js.map +0 -1
  435. package/dist/code-block-DIlqzoiD.js.map +0 -1
  436. package/dist/combobox-CHD750do.js.map +0 -1
  437. package/dist/combobox-HDftpzxt.js.map +0 -1
  438. package/dist/command-D0kWBZfd.js.map +0 -1
  439. package/dist/comments-CvYeglMS.js +0 -1132
  440. package/dist/comments-CvYeglMS.js.map +0 -1
  441. package/dist/containers-CPNyNo1_.js.map +0 -1
  442. package/dist/data-display-b3d1TfL4.js.map +0 -1
  443. package/dist/date-picker-DI6kPNof.js.map +0 -1
  444. package/dist/date-pickers-ByP6Cv2z.js +0 -224
  445. package/dist/date-pickers-ByP6Cv2z.js.map +0 -1
  446. package/dist/feedback-a9j9J-9A.js +0 -391
  447. package/dist/feedback-a9j9J-9A.js.map +0 -1
  448. package/dist/field-affordance-recipes-CHdUtn2Z.js +0 -17
  449. package/dist/field-affordance-recipes-CHdUtn2Z.js.map +0 -1
  450. package/dist/field-state-recipes-CBTRt9Bt.js.map +0 -1
  451. package/dist/filters-qtrcv1hf.js.map +0 -1
  452. package/dist/form-field-C6W-y2hR.js.map +0 -1
  453. package/dist/form-sizing-39NohSqn.js.map +0 -1
  454. package/dist/forms-numeric-Y15Bg5Nr.js +0 -867
  455. package/dist/forms-numeric-Y15Bg5Nr.js.map +0 -1
  456. package/dist/header-B8ex54cY.js.map +0 -1
  457. package/dist/http-CLTVJc5I.js.map +0 -1
  458. package/dist/input-DMorJiTI.js +0 -202
  459. package/dist/input-DMorJiTI.js.map +0 -1
  460. package/dist/input-ci9fIgFH.js +0 -20
  461. package/dist/input-ci9fIgFH.js.map +0 -1
  462. package/dist/item-pJ0GsOiJ.js.map +0 -1
  463. package/dist/media-gallery-Ca4YmvBi.js.map +0 -1
  464. package/dist/message-B5-6LeYl.js +0 -108
  465. package/dist/message-B5-6LeYl.js.map +0 -1
  466. package/dist/navigation-BTrEb5u4.js.map +0 -1
  467. package/dist/navigation-DqEITuD2.js.map +0 -1
  468. package/dist/navigation-row-recipes-BFpvGPGE.js.map +0 -1
  469. package/dist/overlays-DBqV0J_V.js +0 -982
  470. package/dist/overlays-DBqV0J_V.js.map +0 -1
  471. package/dist/page-BMBGjJY8.js.map +0 -1
  472. package/dist/page-header-BH41wCyY.js.map +0 -1
  473. package/dist/pagination-C29vvt3I.js.map +0 -1
  474. package/dist/popover-TInGXsjg.js.map +0 -1
  475. package/dist/popover.recipes-zgBhMlUu.js.map +0 -1
  476. package/dist/primitives-DKPOGVpj.js.map +0 -1
  477. package/dist/rich-text-editor-BZSJchAF.js +0 -575
  478. package/dist/rich-text-editor-BZSJchAF.js.map +0 -1
  479. package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +0 -1
  480. package/dist/scroll-area-BheMQ270.js.map +0 -1
  481. package/dist/select-B2mb-qN2.js +0 -108
  482. package/dist/select-B2mb-qN2.js.map +0 -1
  483. package/dist/sheet-vOUloJ4O.js.map +0 -1
  484. package/dist/sidebar-C3UKkbC5.js.map +0 -1
  485. package/dist/sidebar-CNBKFDRW.js.map +0 -1
  486. package/dist/smart-card-B5FcKODh.js.map +0 -1
  487. package/dist/structure.recipes-DjqnBpwz.js.map +0 -1
  488. package/dist/surface-recipes-CQfRr-VL.js.map +0 -1
  489. package/dist/table-DnlAJ-xR.js.map +0 -1
  490. package/dist/table-ghtAQ-JJ.js +0 -1424
  491. package/dist/table-ghtAQ-JJ.js.map +0 -1
  492. package/dist/tabs-DY09eoZg.js +0 -187
  493. package/dist/tabs-DY09eoZg.js.map +0 -1
  494. package/dist/text-inputs-BhOcedTo.js +0 -331
  495. package/dist/text-inputs-BhOcedTo.js.map +0 -1
  496. package/dist/text.styles-BwB7vAF2.js.map +0 -1
  497. package/dist/timelines-CnZ2S_Gr.js.map +0 -1
  498. package/dist/typography-Cv8MT-82.js +0 -96
  499. package/dist/typography-Cv8MT-82.js.map +0 -1
  500. package/dist/ui-provider-CftIB6TY.js.map +0 -1
  501. package/dist/upload-DIzw1dx1.js.map +0 -1
  502. package/dist/upload-queue-xRJ3qDmd.js.map +0 -1
  503. package/dist/utils-C2EKeIw3.js +0 -72
  504. package/dist/utils-C2EKeIw3.js.map +0 -1
  505. package/dist/value-inputs-Co1fu-xv.js +0 -824
  506. package/dist/value-inputs-Co1fu-xv.js.map +0 -1
  507. package/dist/workspace-Cbqz4FzN.js.map +0 -1
@@ -2,7 +2,12 @@
2
2
  "schemaVersion": 1,
3
3
  "discoveryVersion": 1,
4
4
  "package": "themelia-react-ui",
5
- "version": "1.0.0",
5
+ "version": "1.0.2",
6
+ "stylesheets": [
7
+ "themelia-react-ui/style.css",
8
+ "themelia-react-ui/theme.css",
9
+ "themelia-react-ui/features/map/style.css"
10
+ ],
6
11
  "peers": [
7
12
  {
8
13
  "name": "@base-ui/react",
@@ -235,7 +240,8 @@
235
240
  "tags": [],
236
241
  "aliases": [],
237
242
  "sections": [],
238
- "guidance": []
243
+ "guidance": [],
244
+ "recipes": []
239
245
  },
240
246
  {
241
247
  "import": "themelia-react-ui/action-presentation",
@@ -252,7 +258,8 @@
252
258
  "tags": [],
253
259
  "aliases": [],
254
260
  "sections": [],
255
- "guidance": []
261
+ "guidance": [],
262
+ "recipes": []
256
263
  },
257
264
  {
258
265
  "import": "themelia-react-ui/base/accordion",
@@ -292,7 +299,7 @@
292
299
  "guidance": [
293
300
  {
294
301
  "title": "Accordion",
295
- "description": "Disclosure groups for settings, policy, and review workflows. Use SmartAccordion for data-driven rows; use the compound parts when the trigger or body needs custom structure.",
302
+ "description": "One or more labeled disclosure items need coordinated accordion behavior.",
296
303
  "chooseWhen": [
297
304
  "One or more labeled disclosure items need coordinated accordion behavior."
298
305
  ],
@@ -344,7 +351,8 @@
344
351
  "themelia-react-ui/base/display"
345
352
  ]
346
353
  }
347
- ]
354
+ ],
355
+ "recipes": []
348
356
  },
349
357
  {
350
358
  "import": "themelia-react-ui/base/action-menu",
@@ -372,11 +380,9 @@
372
380
  "action-buttons",
373
381
  "action-menu",
374
382
  "actions",
375
- "actions-overlays",
376
383
  "base",
377
384
  "build",
378
385
  "confirmation",
379
- "docs",
380
386
  "drawer",
381
387
  "navigation & data"
382
388
  ],
@@ -388,7 +394,7 @@
388
394
  "guidance": [
389
395
  {
390
396
  "title": "Action menu",
391
- "description": "The canonical overflow action shell driven by reusable action definitions, groups, visibility, links, and semantic variants.",
397
+ "description": "Edit, archive, delete, and other repeated action definitions need an overflow action menu.",
392
398
  "chooseWhen": [
393
399
  "Edit, archive, delete, and other repeated action definitions need an overflow action menu."
394
400
  ],
@@ -492,9 +498,7 @@
492
498
  "Build permission-aware record actions with package-owned overlay lifecycle and focus return."
493
499
  ],
494
500
  "tags": [
495
- "docs",
496
501
  "build",
497
- "actions-overlays",
498
502
  "actions",
499
503
  "drawer",
500
504
  "confirmation"
@@ -523,7 +527,8 @@
523
527
  "themelia-react-ui/features/overlays"
524
528
  ]
525
529
  }
526
- ]
530
+ ],
531
+ "recipes": []
527
532
  },
528
533
  {
529
534
  "import": "themelia-react-ui/base/attachment",
@@ -587,6 +592,21 @@
587
592
  "sections": [],
588
593
  "alternatives": []
589
594
  }
595
+ ],
596
+ "recipes": [
597
+ {
598
+ "file": "examples/content-workflow.tsx",
599
+ "exports": [
600
+ "ReviewMessage"
601
+ ],
602
+ "symbols": [
603
+ "Attachment"
604
+ ],
605
+ "references": [
606
+ "references/composition.md#files-code-and-messages"
607
+ ],
608
+ "optionalPeers": []
609
+ }
590
610
  ]
591
611
  },
592
612
  {
@@ -635,7 +655,7 @@
635
655
  "guidance": [
636
656
  {
637
657
  "title": "Avatar overview",
638
- "description": "Avatar, fallback initials, and stacked avatars for compact identity surfaces.",
658
+ "description": "A person or entity needs image, initials fallback, status, badge, or grouped identity media.",
639
659
  "chooseWhen": [
640
660
  "A person or entity needs image, initials fallback, status, badge, or grouped identity media."
641
661
  ],
@@ -720,7 +740,7 @@
720
740
  },
721
741
  {
722
742
  "title": "Avatar group",
723
- "description": "Low-level avatar grouping with explicit members, presence badges, and an overflow count.",
743
+ "description": "Manual compound control over each Avatar, badge, and overflow node is required.",
724
744
  "chooseWhen": [
725
745
  "Manual compound control over each Avatar, badge, and overflow node is required."
726
746
  ],
@@ -765,7 +785,7 @@
765
785
  },
766
786
  {
767
787
  "title": "Stacked avatars",
768
- "description": "Compact overlapping identity groups with image fallbacks, maximum counts, and provider-aligned sizing.",
788
+ "description": "A data array needs the standard overlapping avatar recipe, initials fallback, and overflow count.",
769
789
  "chooseWhen": [
770
790
  "A data array needs the standard overlapping avatar recipe, initials fallback, and overflow count."
771
791
  ],
@@ -806,7 +826,8 @@
806
826
  "themelia-react-ui/base/avatar"
807
827
  ]
808
828
  }
809
- ]
829
+ ],
830
+ "recipes": []
810
831
  },
811
832
  {
812
833
  "import": "themelia-react-ui/base/badge",
@@ -834,7 +855,7 @@
834
855
  "guidance": [
835
856
  {
836
857
  "title": "Badge",
837
- "description": "Status pills and chips for tags, counts, and inline state.",
858
+ "description": "A compact semantic status, category, count, or resource chip is needed, including replacement of a local display-only status pill.",
838
859
  "chooseWhen": [
839
860
  "A compact semantic status, category, count, or resource chip is needed, including replacement of a local display-only status pill."
840
861
  ],
@@ -875,6 +896,21 @@
875
896
  "themelia-react-ui/base/display"
876
897
  ]
877
898
  }
899
+ ],
900
+ "recipes": [
901
+ {
902
+ "file": "examples/composition.tsx",
903
+ "exports": [
904
+ "AccountComposition"
905
+ ],
906
+ "symbols": [
907
+ "Badge"
908
+ ],
909
+ "references": [
910
+ "references/workflows.md#destructive-confirmation"
911
+ ],
912
+ "optionalPeers": []
913
+ }
878
914
  ]
879
915
  },
880
916
  {
@@ -926,7 +962,7 @@
926
962
  "guidance": [
927
963
  {
928
964
  "title": "Buttons overview",
929
- "description": "One canonical Button for actions and links, including loading and tooltip behavior, plus a deliberately prose-like text action.",
965
+ "description": "An action needs a canonical button or a prose-like text action.",
930
966
  "chooseWhen": [
931
967
  "An action needs a canonical button or a prose-like text action."
932
968
  ],
@@ -1010,7 +1046,7 @@
1010
1046
  },
1011
1047
  {
1012
1048
  "title": "Button",
1013
- "description": "The canonical action and link control with semantic variants, loading, tooltip, icon, and native-anchor behavior.",
1049
+ "description": "An action or native navigation link needs the canonical provider-aware button, with optional loading and tooltip behavior.",
1014
1050
  "chooseWhen": [
1015
1051
  "An action or native navigation link needs the canonical provider-aware button, with optional loading and tooltip behavior."
1016
1052
  ],
@@ -1054,7 +1090,7 @@
1054
1090
  },
1055
1091
  {
1056
1092
  "title": "Text button",
1057
- "description": "A lightweight text-shaped action for low-emphasis controls.",
1093
+ "description": "A low-emphasis action should read like inline text while retaining button semantics.",
1058
1094
  "chooseWhen": [
1059
1095
  "A low-emphasis action should read like inline text while retaining button semantics."
1060
1096
  ],
@@ -1096,6 +1132,142 @@
1096
1132
  "themelia-react-ui/typography"
1097
1133
  ]
1098
1134
  }
1135
+ ],
1136
+ "recipes": [
1137
+ {
1138
+ "file": "examples/app-layout.tsx",
1139
+ "exports": [
1140
+ "WorkspaceLayout"
1141
+ ],
1142
+ "symbols": [
1143
+ "Button"
1144
+ ],
1145
+ "references": [
1146
+ "references/composition.md#application-layouts",
1147
+ "references/integration.md",
1148
+ "references/workflows.md#single-resource-page"
1149
+ ],
1150
+ "optionalPeers": []
1151
+ },
1152
+ {
1153
+ "file": "examples/composition.tsx",
1154
+ "exports": [
1155
+ "AccountComposition"
1156
+ ],
1157
+ "symbols": [
1158
+ "Button"
1159
+ ],
1160
+ "references": [
1161
+ "references/workflows.md#destructive-confirmation"
1162
+ ],
1163
+ "optionalPeers": []
1164
+ },
1165
+ {
1166
+ "file": "examples/destructive-confirm.tsx",
1167
+ "exports": [
1168
+ "DeleteAccount"
1169
+ ],
1170
+ "symbols": [
1171
+ "Button"
1172
+ ],
1173
+ "references": [
1174
+ "references/workflows.md#destructive-confirmation"
1175
+ ],
1176
+ "optionalPeers": []
1177
+ },
1178
+ {
1179
+ "file": "examples/detail.tsx",
1180
+ "exports": [
1181
+ "AccountDetail"
1182
+ ],
1183
+ "symbols": [
1184
+ "Button"
1185
+ ],
1186
+ "references": [
1187
+ "references/analytics.md#usage-facts-and-verification",
1188
+ "references/composition.md#application-layouts",
1189
+ "references/workflows.md#detail-and-framing",
1190
+ "references/workflows.md#single-resource-page"
1191
+ ],
1192
+ "optionalPeers": []
1193
+ },
1194
+ {
1195
+ "file": "examples/detail.tsx",
1196
+ "exports": [
1197
+ "AccountDetailPage"
1198
+ ],
1199
+ "symbols": [
1200
+ "Button"
1201
+ ],
1202
+ "references": [
1203
+ "references/analytics.md#usage-facts-and-verification",
1204
+ "references/composition.md#application-layouts",
1205
+ "references/workflows.md#detail-and-framing",
1206
+ "references/workflows.md#single-resource-page"
1207
+ ],
1208
+ "optionalPeers": []
1209
+ },
1210
+ {
1211
+ "file": "examples/edit.tsx",
1212
+ "exports": [
1213
+ "AccountEdit"
1214
+ ],
1215
+ "symbols": [
1216
+ "Button"
1217
+ ],
1218
+ "references": [
1219
+ "references/workflows.md#validated-editing"
1220
+ ],
1221
+ "optionalPeers": [
1222
+ "react-hook-form"
1223
+ ]
1224
+ },
1225
+ {
1226
+ "file": "examples/index-table.tsx",
1227
+ "exports": [
1228
+ "AccountIndex"
1229
+ ],
1230
+ "symbols": [
1231
+ "Button"
1232
+ ],
1233
+ "references": [
1234
+ "references/workflows.md#index-and-navigation"
1235
+ ],
1236
+ "optionalPeers": [
1237
+ "@tanstack/react-table"
1238
+ ]
1239
+ },
1240
+ {
1241
+ "file": "examples/scoped-directory.tsx",
1242
+ "exports": [
1243
+ "ScopedDirectory"
1244
+ ],
1245
+ "symbols": [
1246
+ "Button"
1247
+ ],
1248
+ "references": [
1249
+ "references/composition.md#compose-from-the-task",
1250
+ "references/workflows.md#scoped-directory"
1251
+ ],
1252
+ "optionalPeers": [
1253
+ "@tanstack/react-table",
1254
+ "react-day-picker"
1255
+ ]
1256
+ },
1257
+ {
1258
+ "file": "examples/website.tsx",
1259
+ "exports": [
1260
+ "WebsiteLandingPage"
1261
+ ],
1262
+ "symbols": [
1263
+ "Button"
1264
+ ],
1265
+ "references": [
1266
+ "references/composition.md#public-websites-and-service-overviews",
1267
+ "references/composition.md#visual-heading-emphasis"
1268
+ ],
1269
+ "optionalPeers": []
1270
+ }
1099
1271
  ]
1100
1272
  },
1101
1273
  {
@@ -1143,7 +1315,10 @@
1143
1315
  "foundations"
1144
1316
  ],
1145
1317
  "aliases": [
1146
- "base/content-block"
1318
+ "base/content-block",
1319
+ "card header footer",
1320
+ "card padding",
1321
+ "card separators"
1147
1322
  ],
1148
1323
  "sections": [
1149
1324
  "Base components"
@@ -1151,7 +1326,7 @@
1151
1326
  "guidance": [
1152
1327
  {
1153
1328
  "title": "Card",
1154
- "description": "Card, its loading state, flat content composition, body and footer actions, and low-level anatomy in one complete card-family reference.",
1329
+ "description": "A call site owns visible card chrome, card actions, or a card loading state.",
1155
1330
  "chooseWhen": [
1156
1331
  "A call site owns visible card chrome, card actions, or a card loading state."
1157
1332
  ],
@@ -1173,7 +1348,10 @@
1173
1348
  "cards"
1174
1349
  ],
1175
1350
  "aliases": [
1176
- "base/content-block"
1351
+ "base/content-block",
1352
+ "card padding",
1353
+ "card header footer",
1354
+ "card separators"
1177
1355
  ],
1178
1356
  "section": "Base components",
1179
1357
  "browse": {
@@ -1209,7 +1387,10 @@
1209
1387
  },
1210
1388
  {
1211
1389
  "title": "Card actions",
1212
- "symbols": []
1390
+ "symbols": [
1391
+ "CardPrimaryAction",
1392
+ "CardActionStrip"
1393
+ ]
1213
1394
  },
1214
1395
  {
1215
1396
  "title": "Alerts",
@@ -1244,6 +1425,153 @@
1244
1425
  "themelia-react-ui/base/structure"
1245
1426
  ]
1246
1427
  }
1428
+ ],
1429
+ "recipes": [
1430
+ {
1431
+ "file": "examples/app-layout.tsx",
1432
+ "exports": [
1433
+ "WorkspaceLayout"
1434
+ ],
1435
+ "symbols": [
1436
+ "Card"
1437
+ ],
1438
+ "references": [
1439
+ "references/composition.md#application-layouts",
1440
+ "references/integration.md",
1441
+ "references/workflows.md#single-resource-page"
1442
+ ],
1443
+ "optionalPeers": []
1444
+ },
1445
+ {
1446
+ "file": "examples/composition.tsx",
1447
+ "exports": [
1448
+ "AccountComposition"
1449
+ ],
1450
+ "symbols": [
1451
+ "Card"
1452
+ ],
1453
+ "references": [
1454
+ "references/workflows.md#destructive-confirmation"
1455
+ ],
1456
+ "optionalPeers": []
1457
+ },
1458
+ {
1459
+ "file": "examples/detail.tsx",
1460
+ "exports": [
1461
+ "AccountDetail"
1462
+ ],
1463
+ "symbols": [
1464
+ "Card"
1465
+ ],
1466
+ "references": [
1467
+ "references/analytics.md#usage-facts-and-verification",
1468
+ "references/composition.md#application-layouts",
1469
+ "references/workflows.md#detail-and-framing",
1470
+ "references/workflows.md#single-resource-page"
1471
+ ],
1472
+ "optionalPeers": []
1473
+ },
1474
+ {
1475
+ "file": "examples/detail.tsx",
1476
+ "exports": [
1477
+ "AccountDetailPage"
1478
+ ],
1479
+ "symbols": [
1480
+ "Card"
1481
+ ],
1482
+ "references": [
1483
+ "references/analytics.md#usage-facts-and-verification",
1484
+ "references/composition.md#application-layouts",
1485
+ "references/workflows.md#detail-and-framing",
1486
+ "references/workflows.md#single-resource-page"
1487
+ ],
1488
+ "optionalPeers": []
1489
+ },
1490
+ {
1491
+ "file": "examples/edit.tsx",
1492
+ "exports": [
1493
+ "AccountEdit"
1494
+ ],
1495
+ "symbols": [
1496
+ "Card"
1497
+ ],
1498
+ "references": [
1499
+ "references/workflows.md#validated-editing"
1500
+ ],
1501
+ "optionalPeers": [
1502
+ "react-hook-form"
1503
+ ]
1504
+ },
1505
+ {
1506
+ "file": "examples/hierarchy-capture.tsx",
1507
+ "exports": [
1508
+ "HierarchyCapture"
1509
+ ],
1510
+ "symbols": [
1511
+ "Card"
1512
+ ],
1513
+ "references": [
1514
+ "references/composition.md#hierarchies-capture-and-guided-forms"
1515
+ ],
1516
+ "optionalPeers": []
1517
+ },
1518
+ {
1519
+ "file": "examples/hierarchy-capture.tsx",
1520
+ "exports": [
1521
+ "GuidedRequest"
1522
+ ],
1523
+ "symbols": [
1524
+ "Card"
1525
+ ],
1526
+ "references": [
1527
+ "references/composition.md#hierarchies-capture-and-guided-forms"
1528
+ ],
1529
+ "optionalPeers": []
1530
+ },
1531
+ {
1532
+ "file": "examples/index-table.tsx",
1533
+ "exports": [
1534
+ "AccountIndex"
1535
+ ],
1536
+ "symbols": [
1537
+ "Card"
1538
+ ],
1539
+ "references": [
1540
+ "references/workflows.md#index-and-navigation"
1541
+ ],
1542
+ "optionalPeers": [
1543
+ "@tanstack/react-table"
1544
+ ]
1545
+ },
1546
+ {
1547
+ "file": "examples/planning-usage-edit.tsx",
1548
+ "exports": [
1549
+ "WorkspaceSummary"
1550
+ ],
1551
+ "symbols": [
1552
+ "Card"
1553
+ ],
1554
+ "references": [
1555
+ "references/analytics.md#usage-facts-and-verification",
1556
+ "references/composition.md#task-and-usage-summaries-editable-fields",
1557
+ "references/workflows.md#task-summaries-usage-and-inline-editing"
1558
+ ],
1559
+ "optionalPeers": []
1560
+ },
1561
+ {
1562
+ "file": "examples/website.tsx",
1563
+ "exports": [
1564
+ "WebsiteLandingPage"
1565
+ ],
1566
+ "symbols": [
1567
+ "Card"
1568
+ ],
1569
+ "references": [
1570
+ "references/composition.md#public-websites-and-service-overviews",
1571
+ "references/composition.md#visual-heading-emphasis"
1572
+ ],
1573
+ "optionalPeers": []
1574
+ }
1247
1575
  ]
1248
1576
  },
1249
1577
  {
@@ -1283,10 +1611,7 @@
1283
1611
  "A bounded ordered set genuinely needs horizontal/vertical slide navigation."
1284
1612
  ],
1285
1613
  "tags": [
1286
- "base",
1287
- "carousel",
1288
1614
  "embla-carousel-react",
1289
- "navigation & data",
1290
1615
  "optional-peer"
1291
1616
  ],
1292
1617
  "aliases": [],
@@ -1296,7 +1621,7 @@
1296
1621
  "guidance": [
1297
1622
  {
1298
1623
  "title": "Carousel",
1299
- "description": "Embla-backed carousel with keyboard navigation, orientation support, plugins, and base Button controls.",
1624
+ "description": "A bounded ordered set genuinely needs horizontal/vertical slide navigation.",
1300
1625
  "chooseWhen": [
1301
1626
  "A bounded ordered set genuinely needs horizontal/vertical slide navigation."
1302
1627
  ],
@@ -1308,9 +1633,6 @@
1308
1633
  "A bounded ordered set genuinely needs horizontal/vertical slide navigation."
1309
1634
  ],
1310
1635
  "tags": [
1311
- "base",
1312
- "navigation & data",
1313
- "carousel",
1314
1636
  "optional-peer",
1315
1637
  "embla-carousel-react"
1316
1638
  ],
@@ -1351,7 +1673,8 @@
1351
1673
  "themelia-react-ui/base/structure"
1352
1674
  ]
1353
1675
  }
1354
- ]
1676
+ ],
1677
+ "recipes": []
1355
1678
  },
1356
1679
  {
1357
1680
  "import": "themelia-react-ui/base/cascader",
@@ -1407,6 +1730,21 @@
1407
1730
  "sections": [],
1408
1731
  "alternatives": []
1409
1732
  }
1733
+ ],
1734
+ "recipes": [
1735
+ {
1736
+ "file": "examples/hierarchy-capture.tsx",
1737
+ "exports": [
1738
+ "HierarchyCapture"
1739
+ ],
1740
+ "symbols": [
1741
+ "Cascader"
1742
+ ],
1743
+ "references": [
1744
+ "references/composition.md#hierarchies-capture-and-guided-forms"
1745
+ ],
1746
+ "optionalPeers": []
1747
+ }
1410
1748
  ]
1411
1749
  },
1412
1750
  {
@@ -1435,9 +1773,6 @@
1435
1773
  "Recharts output needs package theme tokens, tooltip, legend, and accessible chart scaffolding."
1436
1774
  ],
1437
1775
  "tags": [
1438
- "base",
1439
- "chart",
1440
- "display",
1441
1776
  "optional-peer",
1442
1777
  "recharts"
1443
1778
  ],
@@ -1448,7 +1783,7 @@
1448
1783
  "guidance": [
1449
1784
  {
1450
1785
  "title": "Chart",
1451
- "description": "Token-aware Recharts helpers plus a blocks ChartCard for admin analytics surfaces.",
1786
+ "description": "Recharts output needs package theme tokens, tooltip, legend, and accessible chart scaffolding.",
1452
1787
  "chooseWhen": [
1453
1788
  "Recharts output needs package theme tokens, tooltip, legend, and accessible chart scaffolding."
1454
1789
  ],
@@ -1460,9 +1795,6 @@
1460
1795
  "Recharts output needs package theme tokens, tooltip, legend, and accessible chart scaffolding."
1461
1796
  ],
1462
1797
  "tags": [
1463
- "base",
1464
- "display",
1465
- "chart",
1466
1798
  "optional-peer",
1467
1799
  "recharts"
1468
1800
  ],
@@ -1501,7 +1833,8 @@
1501
1833
  "themelia-react-ui/blocks/analytics"
1502
1834
  ]
1503
1835
  }
1504
- ]
1836
+ ],
1837
+ "recipes": []
1505
1838
  },
1506
1839
  {
1507
1840
  "import": "themelia-react-ui/base/choice-inputs",
@@ -1577,7 +1910,7 @@
1577
1910
  "guidance": [
1578
1911
  {
1579
1912
  "title": "Choice inputs overview",
1580
- "description": "Controls for picking from a known set: select, checkbox and switch, the card and list choice groups, and the shared select popup anatomy.",
1913
+ "description": "The user picks from a known set of options, including a binary on/off.",
1581
1914
  "chooseWhen": [
1582
1915
  "The user picks from a known set of options, including a binary on/off."
1583
1916
  ],
@@ -1950,7 +2283,8 @@
1950
2283
  ],
1951
2284
  "alternatives": []
1952
2285
  }
1953
- ]
2286
+ ],
2287
+ "recipes": []
1954
2288
  },
1955
2289
  {
1956
2290
  "import": "themelia-react-ui/base/code-block",
@@ -2005,6 +2339,21 @@
2005
2339
  "sections": [],
2006
2340
  "alternatives": []
2007
2341
  }
2342
+ ],
2343
+ "recipes": [
2344
+ {
2345
+ "file": "examples/content-workflow.tsx",
2346
+ "exports": [
2347
+ "ReviewMessage"
2348
+ ],
2349
+ "symbols": [
2350
+ "CodeBlock"
2351
+ ],
2352
+ "references": [
2353
+ "references/composition.md#files-code-and-messages"
2354
+ ],
2355
+ "optionalPeers": []
2356
+ }
2008
2357
  ]
2009
2358
  },
2010
2359
  {
@@ -2098,7 +2447,8 @@
2098
2447
  ],
2099
2448
  "alternatives": []
2100
2449
  }
2101
- ]
2450
+ ],
2451
+ "recipes": []
2102
2452
  },
2103
2453
  {
2104
2454
  "import": "themelia-react-ui/base/command",
@@ -2133,7 +2483,7 @@
2133
2483
  "guidance": [
2134
2484
  {
2135
2485
  "title": "Command",
2136
- "description": "Density-aware command lists with filtering, groups, shortcuts, disabled rows, and controlled selection callbacks.",
2486
+ "description": "A custom keyboard-searchable command list needs low-level compound anatomy.",
2137
2487
  "chooseWhen": [
2138
2488
  "A custom keyboard-searchable command list needs low-level compound anatomy."
2139
2489
  ],
@@ -2184,7 +2534,8 @@
2184
2534
  "themelia-react-ui/features/global-search"
2185
2535
  ]
2186
2536
  }
2187
- ]
2537
+ ],
2538
+ "recipes": []
2188
2539
  },
2189
2540
  {
2190
2541
  "import": "themelia-react-ui/base/copyable",
@@ -2215,7 +2566,7 @@
2215
2566
  "guidance": [
2216
2567
  {
2217
2568
  "title": "Copyable",
2218
- "description": "Inline value plus a dedicated copy action, localizable feedback, and rich-display composition.",
2569
+ "description": "A displayed scalar or semantic value needs an explicit adjacent clipboard action.",
2219
2570
  "chooseWhen": [
2220
2571
  "A displayed scalar or semantic value needs an explicit adjacent clipboard action."
2221
2572
  ],
@@ -2268,7 +2619,8 @@
2268
2619
  "themelia-react-ui/primitives"
2269
2620
  ]
2270
2621
  }
2271
- ]
2622
+ ],
2623
+ "recipes": []
2272
2624
  },
2273
2625
  {
2274
2626
  "import": "themelia-react-ui/base/date-pickers",
@@ -2332,7 +2684,7 @@
2332
2684
  "guidance": [
2333
2685
  {
2334
2686
  "title": "Date pickers overview",
2335
- "description": "DatePicker (single / range / multiple) and MonthYearPicker — popover-based, locale-aware, with optional year dropdown and time input.",
2687
+ "description": "A form needs single, multiple, range, month/year, or segmented-time date selection.",
2336
2688
  "chooseWhen": [
2337
2689
  "A form needs single, multiple, range, month/year, or segmented-time date selection."
2338
2690
  ],
@@ -2344,9 +2696,6 @@
2344
2696
  "A form needs single, multiple, range, month/year, or segmented-time date selection."
2345
2697
  ],
2346
2698
  "tags": [
2347
- "base",
2348
- "forms & inputs",
2349
- "date-pickers",
2350
2699
  "optional-peer",
2351
2700
  "react-day-picker"
2352
2701
  ],
@@ -2515,7 +2864,8 @@
2515
2864
  ],
2516
2865
  "alternatives": []
2517
2866
  }
2518
- ]
2867
+ ],
2868
+ "recipes": []
2519
2869
  },
2520
2870
  {
2521
2871
  "import": "themelia-react-ui/base/display",
@@ -2603,7 +2953,7 @@
2603
2953
  "guidance": [
2604
2954
  {
2605
2955
  "title": "Boolean indicator",
2606
- "description": "Compact yes/no status treatment for boolean fields in admin surfaces.",
2956
+ "description": "A read-only boolean field needs a compact icon and localized yes/no label.",
2607
2957
  "chooseWhen": [
2608
2958
  "A read-only boolean field needs a compact icon and localized yes/no label."
2609
2959
  ],
@@ -2646,7 +2996,7 @@
2646
2996
  },
2647
2997
  {
2648
2998
  "title": "Collapsible",
2649
- "description": "Base wrapper for inline disclosure and expand/collapse content.",
2999
+ "description": "One custom trigger/content region needs low-level controlled or uncontrolled disclosure.",
2650
3000
  "chooseWhen": [
2651
3001
  "One custom trigger/content region needs low-level controlled or uncontrolled disclosure."
2652
3002
  ],
@@ -2690,7 +3040,7 @@
2690
3040
  },
2691
3041
  {
2692
3042
  "title": "Date block",
2693
- "description": "Semantic calendar tiles and timeline stamps for event, schedule, booking, and deadline rows.",
3043
+ "description": "A date needs a calendar-like month/day visual block rather than inline formatting.",
2694
3044
  "chooseWhen": [
2695
3045
  "A date needs a calendar-like month/day visual block rather than inline formatting."
2696
3046
  ],
@@ -2737,7 +3087,7 @@
2737
3087
  },
2738
3088
  {
2739
3089
  "title": "Icon badge",
2740
- "description": "Tokenized icon container for status, resource, and row media affordances.",
3090
+ "description": "An icon needs a consistent framed circular or rounded visual container.",
2741
3091
  "chooseWhen": [
2742
3092
  "An icon needs a consistent framed circular or rounded visual container."
2743
3093
  ],
@@ -2780,7 +3130,7 @@
2780
3130
  },
2781
3131
  {
2782
3132
  "title": "Placeholder pattern",
2783
- "description": "Subtle diagonal SVG placeholder fill for empty media, maps, and generated previews.",
3133
+ "description": "An empty media, map, or generated-preview region needs a quiet decorative fill.",
2784
3134
  "chooseWhen": [
2785
3135
  "An empty media, map, or generated-preview region needs a quiet decorative fill."
2786
3136
  ],
@@ -2823,7 +3173,7 @@
2823
3173
  },
2824
3174
  {
2825
3175
  "title": "Scroll area",
2826
- "description": "Styled vertical and horizontal overflow with package-owned scrollbar chrome.",
3176
+ "description": "A bounded region needs styled horizontal or vertical overflow and package scrollbar chrome.",
2827
3177
  "chooseWhen": [
2828
3178
  "A bounded region needs styled horizontal or vertical overflow and package scrollbar chrome."
2829
3179
  ],
@@ -2865,7 +3215,7 @@
2865
3215
  },
2866
3216
  {
2867
3217
  "title": "Separator",
2868
- "description": "Horizontal and vertical separator wrapper for grouping dense admin content.",
3218
+ "description": "Adjacent groups need a semantic visual divider in horizontal or vertical orientation.",
2869
3219
  "chooseWhen": [
2870
3220
  "Adjacent groups need a semantic visual divider in horizontal or vertical orientation."
2871
3221
  ],
@@ -2908,7 +3258,7 @@
2908
3258
  },
2909
3259
  {
2910
3260
  "title": "Tooltip",
2911
- "description": "Tooltip provider, trigger, and content wrappers for short contextual help.",
3261
+ "description": "Brief supplementary text should appear on hover and keyboard focus.",
2912
3262
  "chooseWhen": [
2913
3263
  "Brief supplementary text should appear on hover and keyboard focus."
2914
3264
  ],
@@ -2953,7 +3303,7 @@
2953
3303
  },
2954
3304
  {
2955
3305
  "title": "Visually hidden",
2956
- "description": "Accessible hidden text helper for icon-only controls and nonvisual labels.",
3306
+ "description": "Meaningful text must remain available to assistive technology without visual layout.",
2957
3307
  "chooseWhen": [
2958
3308
  "Meaningful text must remain available to assistive technology without visual layout."
2959
3309
  ],
@@ -2993,6 +3343,21 @@
2993
3343
  "themelia-react-ui/base/display"
2994
3344
  ]
2995
3345
  }
3346
+ ],
3347
+ "recipes": [
3348
+ {
3349
+ "file": "examples/receipt.tsx",
3350
+ "exports": [
3351
+ "PurchaseReceipt"
3352
+ ],
3353
+ "symbols": [
3354
+ "Separator"
3355
+ ],
3356
+ "references": [
3357
+ "references/composition.md#receipts"
3358
+ ],
3359
+ "optionalPeers": []
3360
+ }
2996
3361
  ]
2997
3362
  },
2998
3363
  {
@@ -3071,7 +3436,7 @@
3071
3436
  "guidance": [
3072
3437
  {
3073
3438
  "title": "Alert",
3074
- "description": "Semantic notice primitive with icon, title, description, structured metadata, and responsive actions.",
3439
+ "description": "Contextual feedback needs alert semantics plus optional title, description, metadata, or action regions.",
3075
3440
  "chooseWhen": [
3076
3441
  "Contextual feedback needs alert semantics plus optional title, description, metadata, or action regions."
3077
3442
  ],
@@ -3127,7 +3492,7 @@
3127
3492
  },
3128
3493
  {
3129
3494
  "title": "Empty state",
3130
- "description": "Low-level empty-state composition parts for media, title, description, and actions.",
3495
+ "description": "Custom empty-state anatomy must be assembled from low-level media, header, title, description, and content parts.",
3131
3496
  "chooseWhen": [
3132
3497
  "Custom empty-state anatomy must be assembled from low-level media, header, title, description, and content parts."
3133
3498
  ],
@@ -3169,7 +3534,7 @@
3169
3534
  },
3170
3535
  {
3171
3536
  "title": "Feedback overview",
3172
- "description": "What a region reports about itself: inline notices, task progress, empty anatomy, and a shared loading and recovery grammar.",
3537
+ "description": "A region must report its own status: an inline notice, task progress, or a standard loading or recoverable-error presentation.",
3173
3538
  "chooseWhen": [
3174
3539
  "A region must report its own status: an inline notice, task progress, or a standard loading or recoverable-error presentation."
3175
3540
  ],
@@ -3288,7 +3653,7 @@
3288
3653
  },
3289
3654
  {
3290
3655
  "title": "Progress",
3291
- "description": "Accessible, token-driven progress for completion, quota, migration, and indeterminate task states.",
3656
+ "description": "Known completion progress must be represented as a determinate bar.",
3292
3657
  "chooseWhen": [
3293
3658
  "Known completion progress must be represented as a determinate bar."
3294
3659
  ],
@@ -3346,6 +3711,24 @@
3346
3711
  "themelia-react-ui/base/spinner"
3347
3712
  ]
3348
3713
  }
3714
+ ],
3715
+ "recipes": [
3716
+ {
3717
+ "file": "examples/analytics.tsx",
3718
+ "exports": [
3719
+ "RevenueOverview"
3720
+ ],
3721
+ "symbols": [
3722
+ "ErrorState",
3723
+ "LoadingState"
3724
+ ],
3725
+ "references": [
3726
+ "references/analytics.md#dashboard-and-revenue-data"
3727
+ ],
3728
+ "optionalPeers": [
3729
+ "recharts"
3730
+ ]
3731
+ }
3349
3732
  ]
3350
3733
  },
3351
3734
  {
@@ -3395,7 +3778,6 @@
3395
3778
  "build",
3396
3779
  "controlled-form-field",
3397
3780
  "dirty-state-banner",
3398
- "docs",
3399
3781
  "error-summary",
3400
3782
  "form",
3401
3783
  "form-actions-bar",
@@ -3406,7 +3788,6 @@
3406
3788
  "operation-password-form",
3407
3789
  "submit",
3408
3790
  "submit-state-button",
3409
- "validated-form",
3410
3791
  "validation"
3411
3792
  ],
3412
3793
  "aliases": [],
@@ -3417,7 +3798,7 @@
3417
3798
  "guidance": [
3418
3799
  {
3419
3800
  "title": "Forms overview",
3420
- "description": "The form-row wrapper, workflow chrome, and the plain field controls — text inputs, selects, toggles, choice groups, date/time, sliders, tags, and phone.",
3801
+ "description": "Editable values need canonical field controls, field chrome, grouped choices, uploads, or form-state recipes.",
3421
3802
  "chooseWhen": [
3422
3803
  "Editable values need canonical field controls, field chrome, grouped choices, uploads, or form-state recipes."
3423
3804
  ],
@@ -3620,7 +4001,7 @@
3620
4001
  },
3621
4002
  {
3622
4003
  "title": "Form field",
3623
- "description": "Canonical label, control, hint, helper, and error presentation.",
4004
+ "description": "A label, editable control, and hint or error form one accessible field row.",
3624
4005
  "chooseWhen": [
3625
4006
  "A label, editable control, and hint or error form one accessible field row."
3626
4007
  ],
@@ -3791,9 +4172,7 @@
3791
4172
  "Build an application-owned validated form with consistent field and action presentation."
3792
4173
  ],
3793
4174
  "tags": [
3794
- "docs",
3795
4175
  "build",
3796
- "validated-form",
3797
4176
  "form",
3798
4177
  "validation",
3799
4178
  "submit"
@@ -3822,6 +4201,23 @@
3822
4201
  "themelia-react-ui/features/schema-form"
3823
4202
  ]
3824
4203
  }
4204
+ ],
4205
+ "recipes": [
4206
+ {
4207
+ "file": "examples/edit.tsx",
4208
+ "exports": [
4209
+ "AccountEdit"
4210
+ ],
4211
+ "symbols": [
4212
+ "FormField"
4213
+ ],
4214
+ "references": [
4215
+ "references/workflows.md#validated-editing"
4216
+ ],
4217
+ "optionalPeers": [
4218
+ "react-hook-form"
4219
+ ]
4220
+ }
3825
4221
  ]
3826
4222
  },
3827
4223
  {
@@ -3894,7 +4290,7 @@
3894
4290
  "guidance": [
3895
4291
  {
3896
4292
  "title": "Numeric fields overview",
3897
- "description": "Form controls whose value is a number plus a unit, currency, or rounding policy — decimal, percentage, money, currency, weight, dimensions, coordinates, and rounding mode.",
4293
+ "description": "An editable value is a number carrying a unit, a currency, or a rounding policy.",
3898
4294
  "chooseWhen": [
3899
4295
  "An editable value is a number carrying a unit, a currency, or a rounding policy."
3900
4296
  ],
@@ -4270,6 +4666,108 @@
4270
4666
  ],
4271
4667
  "alternatives": []
4272
4668
  }
4669
+ ],
4670
+ "recipes": []
4671
+ },
4672
+ {
4673
+ "import": "themelia-react-ui/base/inline-edit",
4674
+ "declaration": "dist/components/base/inline-edit/index.d.ts",
4675
+ "symbols": [
4676
+ "InlineEdit",
4677
+ "InlineEditProps",
4678
+ "InlineEditSaveContext",
4679
+ "InlineEditStrings",
4680
+ "defaultInlineEditStrings"
4681
+ ],
4682
+ "optionalPeers": [],
4683
+ "layer": "base",
4684
+ "responsibility": "Base family: Inline edit.",
4685
+ "jobs": [
4686
+ "Inline editing",
4687
+ "Multiline editing",
4688
+ "Save and cancel",
4689
+ "Single-line editing"
4690
+ ],
4691
+ "tags": [
4692
+ "base",
4693
+ "cancel",
4694
+ "draft",
4695
+ "editable text",
4696
+ "field editing",
4697
+ "rename",
4698
+ "save"
4699
+ ],
4700
+ "aliases": [],
4701
+ "sections": [
4702
+ "Base components"
4703
+ ],
4704
+ "guidance": [
4705
+ {
4706
+ "title": "Inline edit",
4707
+ "description": "Readable fields with keyboard editing, validation, async save and cancellation.",
4708
+ "chooseWhen": [
4709
+ "A readable string field needs a reusable view/edit/save/cancel control."
4710
+ ],
4711
+ "avoidWhen": [
4712
+ "Several fields need a complete form workflow or remote resource-assignment selection."
4713
+ ],
4714
+ "appOwned": [
4715
+ "Persistence, permissions, data requests and navigation."
4716
+ ],
4717
+ "jobs": [
4718
+ "Inline editing",
4719
+ "Single-line editing",
4720
+ "Multiline editing",
4721
+ "Save and cancel"
4722
+ ],
4723
+ "tags": [
4724
+ "base",
4725
+ "field editing",
4726
+ "rename",
4727
+ "editable text",
4728
+ "draft",
4729
+ "save",
4730
+ "cancel"
4731
+ ],
4732
+ "aliases": [],
4733
+ "section": "Base components",
4734
+ "browse": {
4735
+ "category": "forms-inputs",
4736
+ "group": "Inline edit",
4737
+ "domain": "",
4738
+ "collection": ""
4739
+ },
4740
+ "sections": [
4741
+ {
4742
+ "title": "API",
4743
+ "symbols": [
4744
+ "InlineEdit"
4745
+ ]
4746
+ }
4747
+ ],
4748
+ "alternatives": [
4749
+ "themelia-react-ui/base/forms",
4750
+ "themelia-react-ui/base/text-inputs",
4751
+ "themelia-react-ui/features/resource-assignment"
4752
+ ]
4753
+ }
4754
+ ],
4755
+ "recipes": [
4756
+ {
4757
+ "file": "examples/planning-usage-edit.tsx",
4758
+ "exports": [
4759
+ "WorkspaceSummary"
4760
+ ],
4761
+ "symbols": [
4762
+ "InlineEdit"
4763
+ ],
4764
+ "references": [
4765
+ "references/analytics.md#usage-facts-and-verification",
4766
+ "references/composition.md#task-and-usage-summaries-editable-fields",
4767
+ "references/workflows.md#task-summaries-usage-and-inline-editing"
4768
+ ],
4769
+ "optionalPeers": []
4770
+ }
4273
4771
  ]
4274
4772
  },
4275
4773
  {
@@ -4308,7 +4806,7 @@
4308
4806
  "layer": "base",
4309
4807
  "responsibility": "Base family: Item.",
4310
4808
  "jobs": [
4311
- "Each row has its own identity, media/title stack, target, trailing value, or actions."
4809
+ "Present independent record list entries with identity, supporting copy and actions."
4312
4810
  ],
4313
4811
  "tags": [
4314
4812
  "base",
@@ -4322,16 +4820,20 @@
4322
4820
  "guidance": [
4323
4821
  {
4324
4822
  "title": "Item",
4325
- "description": "Canonical row primitive — icon/avatar/image media, title + description content, optional actions. Use ItemGroup to compose lists.",
4823
+ "description": "Each row has its own identity, media/title stack, target, trailing value, or actions.",
4326
4824
  "chooseWhen": [
4327
4825
  "Each row has its own identity, media/title stack, target, trailing value, or actions."
4328
4826
  ],
4329
4827
  "avoidWhen": [
4330
4828
  "The rows are label/value facts about one entity or merely passive sibling layout."
4331
4829
  ],
4332
- "appOwned": [],
4830
+ "appOwned": [
4831
+ "record priority",
4832
+ "navigation and actions",
4833
+ "selection state"
4834
+ ],
4333
4835
  "jobs": [
4334
- "Each row has its own identity, media/title stack, target, trailing value, or actions."
4836
+ "Present independent record list entries with identity, supporting copy and actions."
4335
4837
  ],
4336
4838
  "tags": [
4337
4839
  "base",
@@ -4372,6 +4874,21 @@
4372
4874
  "themelia-react-ui/blocks/data-display"
4373
4875
  ]
4374
4876
  }
4877
+ ],
4878
+ "recipes": [
4879
+ {
4880
+ "file": "examples/composition.tsx",
4881
+ "exports": [
4882
+ "AccountComposition"
4883
+ ],
4884
+ "symbols": [
4885
+ "Item"
4886
+ ],
4887
+ "references": [
4888
+ "references/workflows.md#destructive-confirmation"
4889
+ ],
4890
+ "optionalPeers": []
4891
+ }
4375
4892
  ]
4376
4893
  },
4377
4894
  {
@@ -4441,7 +4958,8 @@
4441
4958
  ],
4442
4959
  "alternatives": []
4443
4960
  }
4444
- ]
4961
+ ],
4962
+ "recipes": []
4445
4963
  },
4446
4964
  {
4447
4965
  "import": "themelia-react-ui/base/navigation",
@@ -4541,7 +5059,7 @@
4541
5059
  "guidance": [
4542
5060
  {
4543
5061
  "title": "Navigation overview",
4544
- "description": "The navigation controls — PageHeading, Breadcrumbs, LanguageSwitcher, NavigationTabs, OverflowTabBar, and the dropdown-menu parts.",
5062
+ "description": "Page headings, breadcrumbs, pagination, tabs, or a language switcher need canonical navigation anatomy.",
4545
5063
  "chooseWhen": [
4546
5064
  "Page headings, breadcrumbs, pagination, tabs, or a language switcher need canonical navigation anatomy."
4547
5065
  ],
@@ -4727,7 +5245,7 @@
4727
5245
  },
4728
5246
  {
4729
5247
  "title": "Navigation tabs",
4730
- "description": "Canonical route-tab navigation with a compact default, a prominent variant, optional icons and badges, and consumer-owned current path.",
5248
+ "description": "A small, always-visible set of sibling application routes needs compact or prominent tab navigation.",
4731
5249
  "chooseWhen": [
4732
5250
  "A small, always-visible set of sibling application routes needs compact or prominent tab navigation."
4733
5251
  ],
@@ -4764,7 +5282,8 @@
4764
5282
  {
4765
5283
  "title": "API",
4766
5284
  "symbols": [
4767
- "NavigationTabs"
5285
+ "NavigationTabs",
5286
+ "TabsList"
4768
5287
  ]
4769
5288
  }
4770
5289
  ],
@@ -4812,7 +5331,7 @@
4812
5331
  },
4813
5332
  {
4814
5333
  "title": "Page heading",
4815
- "description": "A framework-agnostic visual heading block with eyebrow, description, badge, and action composition. Use layout PageHeader when the page shell owns navigation and page-level chrome.",
5334
+ "description": "An existing shell needs only a visual title, description, badges, and actions block.",
4816
5335
  "chooseWhen": [
4817
5336
  "An existing shell needs only a visual title, description, badges, and actions block."
4818
5337
  ],
@@ -4898,7 +5417,8 @@
4898
5417
  ],
4899
5418
  "alternatives": []
4900
5419
  }
4901
- ]
5420
+ ],
5421
+ "recipes": []
4902
5422
  },
4903
5423
  {
4904
5424
  "import": "themelia-react-ui/base/popover",
@@ -4934,7 +5454,7 @@
4934
5454
  "guidance": [
4935
5455
  {
4936
5456
  "title": "Popover",
4937
- "description": "A tokenized popover surface with compound trigger, header, title, description, anchor, and positioning parts.",
5457
+ "description": "A trigger needs a small anchored custom content surface with explicit compound control.",
4938
5458
  "chooseWhen": [
4939
5459
  "A trigger needs a small anchored custom content surface with explicit compound control."
4940
5460
  ],
@@ -4986,7 +5506,8 @@
4986
5506
  "themelia-react-ui/features/overlays"
4987
5507
  ]
4988
5508
  }
4989
- ]
5509
+ ],
5510
+ "recipes": []
4990
5511
  },
4991
5512
  {
4992
5513
  "import": "themelia-react-ui/base/popover-menu",
@@ -5021,7 +5542,7 @@
5021
5542
  "guidance": [
5022
5543
  {
5023
5544
  "title": "Popover menu",
5024
- "description": "A reusable trigger, search, command-list, and selection shell with typed items, slots, strings, and controlled state seams.",
5545
+ "description": "A trigger opens the recurring optional-header, search, list, and footer menu pattern.",
5025
5546
  "chooseWhen": [
5026
5547
  "A trigger opens the recurring optional-header, search, list, and footer menu pattern."
5027
5548
  ],
@@ -5077,7 +5598,8 @@
5077
5598
  "themelia-react-ui/base/popover"
5078
5599
  ]
5079
5600
  }
5080
- ]
5601
+ ],
5602
+ "recipes": []
5081
5603
  },
5082
5604
  {
5083
5605
  "import": "themelia-react-ui/base/qr-code",
@@ -5098,11 +5620,8 @@
5098
5620
  "A string must be rendered as a QR code with an accessible label and optional logo."
5099
5621
  ],
5100
5622
  "tags": [
5101
- "base",
5102
5623
  "culori",
5103
- "display",
5104
5624
  "optional-peer",
5105
- "qr-code",
5106
5625
  "qrcode"
5107
5626
  ],
5108
5627
  "aliases": [],
@@ -5112,7 +5631,7 @@
5112
5631
  "guidance": [
5113
5632
  {
5114
5633
  "title": "QR code",
5115
- "description": "QR code display wrapper for share links, check-in codes, and payment references.",
5634
+ "description": "A string must be rendered as a QR code with an accessible label and optional logo.",
5116
5635
  "chooseWhen": [
5117
5636
  "A string must be rendered as a QR code with an accessible label and optional logo."
5118
5637
  ],
@@ -5124,9 +5643,6 @@
5124
5643
  "A string must be rendered as a QR code with an accessible label and optional logo."
5125
5644
  ],
5126
5645
  "tags": [
5127
- "base",
5128
- "display",
5129
- "qr-code",
5130
5646
  "optional-peer",
5131
5647
  "qrcode",
5132
5648
  "culori"
@@ -5156,7 +5672,8 @@
5156
5672
  "themelia-react-ui/primitives"
5157
5673
  ]
5158
5674
  }
5159
- ]
5675
+ ],
5676
+ "recipes": []
5160
5677
  },
5161
5678
  {
5162
5679
  "import": "themelia-react-ui/base/repeaters",
@@ -5234,7 +5751,7 @@
5234
5751
  "guidance": [
5235
5752
  {
5236
5753
  "title": "Repeaters overview",
5237
- "description": "Repeating and locale-keyed field collections — the repeater engine, string and object repeaters, the key-value editor, and the localized field set.",
5754
+ "description": "A field edits a list of rows the person adds, removes, and reorders, or a value keyed by locale.",
5238
5755
  "chooseWhen": [
5239
5756
  "A field edits a list of rows the person adds, removes, and reorders, or a value keyed by locale."
5240
5757
  ],
@@ -5537,7 +6054,8 @@
5537
6054
  ],
5538
6055
  "alternatives": []
5539
6056
  }
5540
- ]
6057
+ ],
6058
+ "recipes": []
5541
6059
  },
5542
6060
  {
5543
6061
  "import": "themelia-react-ui/base/sheet",
@@ -5571,7 +6089,7 @@
5571
6089
  "guidance": [
5572
6090
  {
5573
6091
  "title": "Sheet",
5574
- "description": "A public compound surface for controlled or trigger-driven slide-in panels from any viewport edge.",
6092
+ "description": "A custom side-attached overlay needs low-level trigger/content/header/footer anatomy.",
5575
6093
  "chooseWhen": [
5576
6094
  "A custom side-attached overlay needs low-level trigger/content/header/footer anatomy."
5577
6095
  ],
@@ -5620,7 +6138,8 @@
5620
6138
  "themelia-react-ui/features/overlays"
5621
6139
  ]
5622
6140
  }
5623
- ]
6141
+ ],
6142
+ "recipes": []
5624
6143
  },
5625
6144
  {
5626
6145
  "import": "themelia-react-ui/base/sidebar",
@@ -5680,7 +6199,7 @@
5680
6199
  "guidance": [
5681
6200
  {
5682
6201
  "title": "Sidebar primitives",
5683
- "description": "Tokenized low-level provider, shell, groups, menus, nested links, badges, inputs, actions, and loading parts behind app sidebars.",
6202
+ "description": "A shell implementation needs the low-level responsive/collapsible sidebar compound.",
5684
6203
  "chooseWhen": [
5685
6204
  "A shell implementation needs the low-level responsive/collapsible sidebar compound."
5686
6205
  ],
@@ -5736,6 +6255,23 @@
5736
6255
  "themelia-react-ui/layout/sidebar"
5737
6256
  ]
5738
6257
  }
6258
+ ],
6259
+ "recipes": [
6260
+ {
6261
+ "file": "examples/app-layout.tsx",
6262
+ "exports": [
6263
+ "WorkspaceLayout"
6264
+ ],
6265
+ "symbols": [
6266
+ "SidebarTrigger"
6267
+ ],
6268
+ "references": [
6269
+ "references/composition.md#application-layouts",
6270
+ "references/integration.md",
6271
+ "references/workflows.md#single-resource-page"
6272
+ ],
6273
+ "optionalPeers": []
6274
+ }
5739
6275
  ]
5740
6276
  },
5741
6277
  {
@@ -5800,6 +6336,22 @@
5800
6336
  "sections": [],
5801
6337
  "alternatives": []
5802
6338
  }
6339
+ ],
6340
+ "recipes": [
6341
+ {
6342
+ "file": "examples/hierarchy-capture.tsx",
6343
+ "exports": [
6344
+ "HierarchyCapture"
6345
+ ],
6346
+ "symbols": [
6347
+ "SignaturePad",
6348
+ "SignaturePadValue"
6349
+ ],
6350
+ "references": [
6351
+ "references/composition.md#hierarchies-capture-and-guided-forms"
6352
+ ],
6353
+ "optionalPeers": []
6354
+ }
5803
6355
  ]
5804
6356
  },
5805
6357
  {
@@ -5845,7 +6397,7 @@
5845
6397
  "guidance": [
5846
6398
  {
5847
6399
  "title": "Skeleton overview",
5848
- "description": "Reusable loading skeletons for content rows, pages, two-column detail views, and tables.",
6400
+ "description": "Loading should preserve the approximate geometry of content, cards, tables, or pages.",
5849
6401
  "chooseWhen": [
5850
6402
  "Loading should preserve the approximate geometry of content, cards, tables, or pages."
5851
6403
  ],
@@ -6081,7 +6633,8 @@
6081
6633
  ],
6082
6634
  "alternatives": []
6083
6635
  }
6084
- ]
6636
+ ],
6637
+ "recipes": []
6085
6638
  },
6086
6639
  {
6087
6640
  "import": "themelia-react-ui/base/spinner",
@@ -6111,7 +6664,7 @@
6111
6664
  "guidance": [
6112
6665
  {
6113
6666
  "title": "Spinner",
6114
- "description": "Loading indicator with three visual variants. Pairs with content placeholders, route transitions, and Suspense fallbacks.",
6667
+ "description": "A compact control or bounded area needs an indeterminate activity indicator.",
6115
6668
  "chooseWhen": [
6116
6669
  "A compact control or bounded area needs an indeterminate activity indicator."
6117
6670
  ],
@@ -6168,7 +6721,8 @@
6168
6721
  "themelia-react-ui/base/skeleton"
6169
6722
  ]
6170
6723
  }
6171
- ]
6724
+ ],
6725
+ "recipes": []
6172
6726
  },
6173
6727
  {
6174
6728
  "import": "themelia-react-ui/base/structure",
@@ -6201,14 +6755,22 @@
6201
6755
  "foundations",
6202
6756
  "structure"
6203
6757
  ],
6204
- "aliases": [],
6758
+ "aliases": [
6759
+ "copy gaps",
6760
+ "copy-gap",
6761
+ "title description spacing"
6762
+ ],
6763
+ "references": [
6764
+ "references/design-contract.md",
6765
+ "references/theming.md#copy-rhythm"
6766
+ ],
6205
6767
  "sections": [
6206
6768
  "Foundations"
6207
6769
  ],
6208
6770
  "guidance": [
6209
6771
  {
6210
6772
  "title": "Structural composition",
6211
- "description": "Stack, Grid, GridCell, and AdaptiveGrid provide one truthful grammar for passive sibling arrangement.",
6773
+ "description": "Passive siblings need one-axis spacing, explicit responsive tracks, or available-width-driven equal tracks.",
6212
6774
  "chooseWhen": [
6213
6775
  "Passive siblings need one-axis spacing, explicit responsive tracks, or available-width-driven equal tracks."
6214
6776
  ],
@@ -6271,6 +6833,167 @@
6271
6833
  "themelia-react-ui/features/table"
6272
6834
  ]
6273
6835
  }
6836
+ ],
6837
+ "recipes": [
6838
+ {
6839
+ "file": "examples/app-layout.tsx",
6840
+ "exports": [
6841
+ "WorkspaceLayout"
6842
+ ],
6843
+ "symbols": [
6844
+ "Stack"
6845
+ ],
6846
+ "references": [
6847
+ "references/composition.md#application-layouts",
6848
+ "references/integration.md",
6849
+ "references/workflows.md#single-resource-page"
6850
+ ],
6851
+ "optionalPeers": []
6852
+ },
6853
+ {
6854
+ "file": "examples/composition.tsx",
6855
+ "exports": [
6856
+ "AccountComposition"
6857
+ ],
6858
+ "symbols": [
6859
+ "Grid",
6860
+ "Stack"
6861
+ ],
6862
+ "references": [
6863
+ "references/workflows.md#destructive-confirmation"
6864
+ ],
6865
+ "optionalPeers": []
6866
+ },
6867
+ {
6868
+ "file": "examples/content-workflow.tsx",
6869
+ "exports": [
6870
+ "ReviewMessage"
6871
+ ],
6872
+ "symbols": [
6873
+ "Stack"
6874
+ ],
6875
+ "references": [
6876
+ "references/composition.md#files-code-and-messages"
6877
+ ],
6878
+ "optionalPeers": []
6879
+ },
6880
+ {
6881
+ "file": "examples/destructive-confirm.tsx",
6882
+ "exports": [
6883
+ "DeleteAccount"
6884
+ ],
6885
+ "symbols": [
6886
+ "Stack"
6887
+ ],
6888
+ "references": [
6889
+ "references/workflows.md#destructive-confirmation"
6890
+ ],
6891
+ "optionalPeers": []
6892
+ },
6893
+ {
6894
+ "file": "examples/edit.tsx",
6895
+ "exports": [
6896
+ "AccountEdit"
6897
+ ],
6898
+ "symbols": [
6899
+ "Stack"
6900
+ ],
6901
+ "references": [
6902
+ "references/workflows.md#validated-editing"
6903
+ ],
6904
+ "optionalPeers": [
6905
+ "react-hook-form"
6906
+ ]
6907
+ },
6908
+ {
6909
+ "file": "examples/hierarchy-capture.tsx",
6910
+ "exports": [
6911
+ "HierarchyCapture"
6912
+ ],
6913
+ "symbols": [
6914
+ "Stack"
6915
+ ],
6916
+ "references": [
6917
+ "references/composition.md#hierarchies-capture-and-guided-forms"
6918
+ ],
6919
+ "optionalPeers": []
6920
+ },
6921
+ {
6922
+ "file": "examples/index-table.tsx",
6923
+ "exports": [
6924
+ "AccountIndex"
6925
+ ],
6926
+ "symbols": [
6927
+ "Stack"
6928
+ ],
6929
+ "references": [
6930
+ "references/workflows.md#index-and-navigation"
6931
+ ],
6932
+ "optionalPeers": [
6933
+ "@tanstack/react-table"
6934
+ ]
6935
+ },
6936
+ {
6937
+ "file": "examples/planning-usage-edit.tsx",
6938
+ "exports": [
6939
+ "WorkspaceSummary"
6940
+ ],
6941
+ "symbols": [
6942
+ "AdaptiveGrid",
6943
+ "Stack"
6944
+ ],
6945
+ "references": [
6946
+ "references/analytics.md#usage-facts-and-verification",
6947
+ "references/composition.md#task-and-usage-summaries-editable-fields",
6948
+ "references/workflows.md#task-summaries-usage-and-inline-editing"
6949
+ ],
6950
+ "optionalPeers": []
6951
+ },
6952
+ {
6953
+ "file": "examples/receipt.tsx",
6954
+ "exports": [
6955
+ "PurchaseReceipt"
6956
+ ],
6957
+ "symbols": [
6958
+ "Stack"
6959
+ ],
6960
+ "references": [
6961
+ "references/composition.md#receipts"
6962
+ ],
6963
+ "optionalPeers": []
6964
+ },
6965
+ {
6966
+ "file": "examples/scoped-directory.tsx",
6967
+ "exports": [
6968
+ "ScopedDirectory"
6969
+ ],
6970
+ "symbols": [
6971
+ "Stack"
6972
+ ],
6973
+ "references": [
6974
+ "references/composition.md#compose-from-the-task",
6975
+ "references/workflows.md#scoped-directory"
6976
+ ],
6977
+ "optionalPeers": [
6978
+ "@tanstack/react-table",
6979
+ "react-day-picker"
6980
+ ]
6981
+ },
6982
+ {
6983
+ "file": "examples/website.tsx",
6984
+ "exports": [
6985
+ "WebsiteLandingPage"
6986
+ ],
6987
+ "symbols": [
6988
+ "Grid",
6989
+ "Stack"
6990
+ ],
6991
+ "references": [
6992
+ "references/composition.md#public-websites-and-service-overviews",
6993
+ "references/composition.md#visual-heading-emphasis"
6994
+ ],
6995
+ "optionalPeers": []
6996
+ }
6274
6997
  ]
6275
6998
  },
6276
6999
  {
@@ -6312,7 +7035,7 @@
6312
7035
  "guidance": [
6313
7036
  {
6314
7037
  "title": "Table primitives",
6315
- "description": "Styled table elements that wrap shadcn table parts with package density, spacing, and stable DOM hooks.",
7038
+ "description": "Custom semantic table markup only needs package-styled HTML table parts.",
6316
7039
  "chooseWhen": [
6317
7040
  "Custom semantic table markup only needs package-styled HTML table parts."
6318
7041
  ],
@@ -6353,7 +7076,8 @@
6353
7076
  "themelia-react-ui/features/table"
6354
7077
  ]
6355
7078
  }
6356
- ]
7079
+ ],
7080
+ "recipes": []
6357
7081
  },
6358
7082
  {
6359
7083
  "import": "themelia-react-ui/base/text-inputs",
@@ -6412,7 +7136,7 @@
6412
7136
  "guidance": [
6413
7137
  {
6414
7138
  "title": "Text inputs overview",
6415
- "description": "Controls for free-form text entry: the input itself, its multi-line and grouped forms, and the password and slug variants.",
7139
+ "description": "The value is free-form text the user types.",
6416
7140
  "chooseWhen": [
6417
7141
  "The value is free-form text the user types."
6418
7142
  ],
@@ -6600,6 +7324,36 @@
6600
7324
  ],
6601
7325
  "alternatives": []
6602
7326
  }
7327
+ ],
7328
+ "recipes": [
7329
+ {
7330
+ "file": "examples/composition.tsx",
7331
+ "exports": [
7332
+ "AccountComposition"
7333
+ ],
7334
+ "symbols": [
7335
+ "Input"
7336
+ ],
7337
+ "references": [
7338
+ "references/workflows.md#destructive-confirmation"
7339
+ ],
7340
+ "optionalPeers": []
7341
+ },
7342
+ {
7343
+ "file": "examples/edit.tsx",
7344
+ "exports": [
7345
+ "AccountEdit"
7346
+ ],
7347
+ "symbols": [
7348
+ "Input"
7349
+ ],
7350
+ "references": [
7351
+ "references/workflows.md#validated-editing"
7352
+ ],
7353
+ "optionalPeers": [
7354
+ "react-hook-form"
7355
+ ]
7356
+ }
6603
7357
  ]
6604
7358
  },
6605
7359
  {
@@ -6618,11 +7372,8 @@
6618
7372
  "Application-level transient feedback should be rendered through the package Sonner host."
6619
7373
  ],
6620
7374
  "tags": [
6621
- "base",
6622
- "feedback",
6623
7375
  "optional-peer",
6624
- "sonner",
6625
- "toaster"
7376
+ "sonner"
6626
7377
  ],
6627
7378
  "aliases": [],
6628
7379
  "sections": [
@@ -6631,7 +7382,7 @@
6631
7382
  "guidance": [
6632
7383
  {
6633
7384
  "title": "Toaster",
6634
- "description": "Provider-backed Sonner wrapper with refined admin notification chrome and bottom-center defaults.",
7385
+ "description": "Application-level transient feedback should be rendered through the package Sonner host.",
6635
7386
  "chooseWhen": [
6636
7387
  "Application-level transient feedback should be rendered through the package Sonner host."
6637
7388
  ],
@@ -6643,9 +7394,6 @@
6643
7394
  "Application-level transient feedback should be rendered through the package Sonner host."
6644
7395
  ],
6645
7396
  "tags": [
6646
- "base",
6647
- "feedback",
6648
- "toaster",
6649
7397
  "optional-peer",
6650
7398
  "sonner"
6651
7399
  ],
@@ -6682,7 +7430,8 @@
6682
7430
  "themelia-react-ui/base/forms"
6683
7431
  ]
6684
7432
  }
6685
- ]
7433
+ ],
7434
+ "recipes": []
6686
7435
  },
6687
7436
  {
6688
7437
  "import": "themelia-react-ui/base/tree",
@@ -6736,6 +7485,22 @@
6736
7485
  "sections": [],
6737
7486
  "alternatives": []
6738
7487
  }
7488
+ ],
7489
+ "recipes": [
7490
+ {
7491
+ "file": "examples/hierarchy-capture.tsx",
7492
+ "exports": [
7493
+ "HierarchyCapture"
7494
+ ],
7495
+ "symbols": [
7496
+ "Tree",
7497
+ "TreeNode"
7498
+ ],
7499
+ "references": [
7500
+ "references/composition.md#hierarchies-capture-and-guided-forms"
7501
+ ],
7502
+ "optionalPeers": []
7503
+ }
6739
7504
  ]
6740
7505
  },
6741
7506
  {
@@ -6813,7 +7578,7 @@
6813
7578
  "guidance": [
6814
7579
  {
6815
7580
  "title": "Upload overview",
6816
- "description": "File and media surfaces — dropzone, file/image/avatar upload, progress list, upload tray, and media gallery. The consumer always owns the transfer.",
7581
+ "description": "A surface selects, validates, previews, or reports progress for files the consumer will transfer.",
6817
7582
  "chooseWhen": [
6818
7583
  "A surface selects, validates, previews, or reports progress for files the consumer will transfer."
6819
7584
  ],
@@ -7017,7 +7782,8 @@
7017
7782
  ],
7018
7783
  "alternatives": []
7019
7784
  }
7020
- ]
7785
+ ],
7786
+ "recipes": []
7021
7787
  },
7022
7788
  {
7023
7789
  "import": "themelia-react-ui/base/upload-queue",
@@ -7143,7 +7909,8 @@
7143
7909
  ],
7144
7910
  "alternatives": []
7145
7911
  }
7146
- ]
7912
+ ],
7913
+ "recipes": []
7147
7914
  },
7148
7915
  {
7149
7916
  "import": "themelia-react-ui/base/value-inputs",
@@ -7201,7 +7968,7 @@
7201
7968
  "guidance": [
7202
7969
  {
7203
7970
  "title": "Value inputs overview",
7204
- "description": "Controls that edit one structured value through a bespoke affordance: tags, phone numbers, colours, ranges, and date-time.",
7971
+ "description": "One structured value needs its own editing affordance — tags, phone, colour, range, date-time.",
7205
7972
  "chooseWhen": [
7206
7973
  "One structured value needs its own editing affordance — tags, phone, colour, range, date-time."
7207
7974
  ],
@@ -7243,7 +8010,7 @@
7243
8010
  },
7244
8011
  {
7245
8012
  "title": "Color input",
7246
- "description": "Exact CSS-color entry paired with an accessible visual color picker and live swatch.",
8013
+ "description": "A form needs exact CSS-color entry and an accessible visual color picker on one value channel.",
7247
8014
  "chooseWhen": [
7248
8015
  "A form needs exact CSS-color entry and an accessible visual color picker on one value channel."
7249
8016
  ],
@@ -7437,7 +8204,8 @@
7437
8204
  ],
7438
8205
  "alternatives": []
7439
8206
  }
7440
- ]
8207
+ ],
8208
+ "recipes": []
7441
8209
  },
7442
8210
  {
7443
8211
  "import": "themelia-react-ui/blocks/admin",
@@ -7494,7 +8262,7 @@
7494
8262
  "guidance": [
7495
8263
  {
7496
8264
  "title": "Admin overview",
7497
- "description": "Role permissions, credential lists, and security action surfaces for admin settings pages — the parts of an admin screen that are worth standardizing.",
8265
+ "description": "Console screens need permission matrices, API-key and token management, or confirmation-gated destructive actions.",
7498
8266
  "chooseWhen": [
7499
8267
  "Console screens need permission matrices, API-key and token management, or confirmation-gated destructive actions."
7500
8268
  ],
@@ -7669,7 +8437,8 @@
7669
8437
  ],
7670
8438
  "alternatives": []
7671
8439
  }
7672
- ]
8440
+ ],
8441
+ "recipes": []
7673
8442
  },
7674
8443
  {
7675
8444
  "import": "themelia-react-ui/blocks/ai",
@@ -7844,7 +8613,7 @@
7844
8613
  "guidance": [
7845
8614
  {
7846
8615
  "title": "AI overview",
7847
- "description": "Card-free AI presentation blocks — summaries, reasoning traces, tool calls, citations, artifacts — that the consumer frames, fills, and wires.",
8616
+ "description": "Model output needs a presentation block — summary, reasoning, citation, tool call, artifact — inside a surface the app already owns.",
7848
8617
  "chooseWhen": [
7849
8618
  "Model output needs a presentation block — summary, reasoning, citation, tool call, artifact — inside a surface the app already owns."
7850
8619
  ],
@@ -8768,7 +9537,8 @@
8768
9537
  ],
8769
9538
  "alternatives": []
8770
9539
  }
8771
- ]
9540
+ ],
9541
+ "recipes": []
8772
9542
  },
8773
9543
  {
8774
9544
  "import": "themelia-react-ui/blocks/analytics",
@@ -8819,9 +9589,19 @@
8819
9589
  "TimeDistributionRuler",
8820
9590
  "TimeDistributionRulerProps",
8821
9591
  "TimeDistributionRulerStrings",
9592
+ "UsageCard",
9593
+ "UsageCardCategory",
9594
+ "UsageCardData",
9595
+ "UsageCardDay",
9596
+ "UsageCardPeriod",
9597
+ "UsageCardProps",
9598
+ "UsageCardQuota",
9599
+ "UsageCardResource",
9600
+ "UsageCardStrings",
8822
9601
  "defaultAnalyticsStrings",
8823
9602
  "defaultMetricComparisonStrings",
8824
9603
  "defaultTimeDistributionRulerStrings",
9604
+ "defaultUsageCardStrings",
8825
9605
  "formatMetricValue",
8826
9606
  "resolveTrend"
8827
9607
  ],
@@ -8832,14 +9612,14 @@
8832
9612
  "responsibility": "Blocks family: Activity heatmap; Analytics bar; Analytics overview; Chart card; Comparison; Gradient cards; Metric parts; Micro chart grid; Stat cards; Time distribution.",
8833
9613
  "jobs": [
8834
9614
  "KPI values need trend, comparison, sparkline, bar, heatmap, or dashboard-grid semantics.",
9615
+ "Metric renders one KPI with formatting, trend, sparkline and loading/error presentation; variant=\"card\" owns its Card surface.",
9616
+ "MetricGrid renders peer KPI cards from MetricData with parent-width columns; MetricBar renders the same metrics as one strip with optional period/footer.",
8835
9617
  "Use Activity heatmap in an admin interface.",
8836
- "Use Analytics bar in an admin interface.",
8837
9618
  "Use Chart card in an admin interface.",
8838
9619
  "Use Comparison in an admin interface.",
8839
9620
  "Use Gradient cards in an admin interface.",
8840
9621
  "Use Metric parts in an admin interface.",
8841
9622
  "Use Micro chart grid in an admin interface.",
8842
- "Use Stat cards in an admin interface.",
8843
9623
  "Use Time distribution in an admin interface."
8844
9624
  ],
8845
9625
  "tags": [
@@ -8857,27 +9637,48 @@
8857
9637
  "stat-cards",
8858
9638
  "time-ruler"
8859
9639
  ],
8860
- "aliases": [],
9640
+ "aliases": [
9641
+ "KPI grid",
9642
+ "KPI strip",
9643
+ "dashboard KPIs",
9644
+ "dashboard metrics",
9645
+ "kpi",
9646
+ "kpi card",
9647
+ "metric card",
9648
+ "metric grid",
9649
+ "number card",
9650
+ "revenue card",
9651
+ "revenue overview",
9652
+ "single KPI",
9653
+ "single metric",
9654
+ "stat",
9655
+ "stat cards",
9656
+ "statistic cards",
9657
+ "statistics",
9658
+ "statistics cards"
9659
+ ],
8861
9660
  "sections": [
8862
9661
  "Blocks"
8863
9662
  ],
8864
9663
  "guidance": [
8865
9664
  {
8866
9665
  "title": "Analytics overview",
8867
- "description": "One Metric data contract for KPI variants, bars, grids, trends, and sparklines, plus ChartCard for caller-owned chart series.",
9666
+ "description": "KPI values need trend, comparison, sparkline, bar, heatmap, or dashboard-grid semantics.",
8868
9667
  "chooseWhen": [
8869
9668
  "KPI values need trend, comparison, sparkline, bar, heatmap, or dashboard-grid semantics."
8870
9669
  ],
8871
9670
  "avoidWhen": [
8872
9671
  "The content is one simple label/value pair or factual metadata about an entity."
8873
9672
  ],
8874
- "appOwned": [],
9673
+ "appOwned": [
9674
+ "metric meaning, accepted values and comparison baselines",
9675
+ "transport, refresh and period changes",
9676
+ "choice of one tile, peer cards or a shared strip"
9677
+ ],
8875
9678
  "jobs": [
8876
9679
  "KPI values need trend, comparison, sparkline, bar, heatmap, or dashboard-grid semantics."
8877
9680
  ],
8878
9681
  "tags": [
8879
- "blocks",
8880
- "analytics",
8881
9682
  "optional-peer",
8882
9683
  "recharts"
8883
9684
  ],
@@ -8906,19 +9707,34 @@
8906
9707
  },
8907
9708
  {
8908
9709
  "title": "Analytics bar",
8909
- "description": "`MetricBar` — horizontal KPI strip with hairline-divided cells. Pair with `MetricGrid` for card-style layouts.",
8910
- "chooseWhen": [],
8911
- "avoidWhen": [],
8912
- "appOwned": [],
9710
+ "description": "MetricGrid renders peer KPI cards from MetricData with parent-width columns; MetricBar renders the same metrics as one strip with optional period/footer.",
9711
+ "chooseWhen": [
9712
+ "MetricGrid renders peer KPI cards from MetricData with parent-width columns; MetricBar renders the same metrics as one strip with optional period/footer."
9713
+ ],
9714
+ "avoidWhen": [
9715
+ "Only one metric, quota usage, factual metadata or a bespoke chart is required."
9716
+ ],
9717
+ "appOwned": [
9718
+ "metric meaning, accepted values and comparison baselines",
9719
+ "requests, refresh and period changes",
9720
+ "error/empty/retry regions around the collection"
9721
+ ],
8913
9722
  "jobs": [
8914
- "Use Analytics bar in an admin interface."
9723
+ "MetricGrid renders peer KPI cards from MetricData with parent-width columns; MetricBar renders the same metrics as one strip with optional period/footer."
8915
9724
  ],
8916
9725
  "tags": [
8917
9726
  "blocks",
8918
9727
  "analytics",
8919
9728
  "bar"
8920
9729
  ],
8921
- "aliases": [],
9730
+ "aliases": [
9731
+ "dashboard KPIs",
9732
+ "dashboard metrics",
9733
+ "revenue overview",
9734
+ "KPI grid",
9735
+ "metric grid",
9736
+ "KPI strip"
9737
+ ],
8922
9738
  "section": "Blocks",
8923
9739
  "browse": {
8924
9740
  "category": "domain-ui",
@@ -8943,7 +9759,12 @@
8943
9759
  ]
8944
9760
  }
8945
9761
  ],
8946
- "alternatives": []
9762
+ "alternatives": [
9763
+ "themelia-react-ui/base/chart",
9764
+ "themelia-react-ui/blocks/analytics",
9765
+ "themelia-react-ui/blocks/analytics/usage-card",
9766
+ "themelia-react-ui/blocks/data-display"
9767
+ ]
8947
9768
  },
8948
9769
  {
8949
9770
  "title": "Chart card",
@@ -9201,19 +10022,40 @@
9201
10022
  },
9202
10023
  {
9203
10024
  "title": "Stat cards",
9204
- "description": "Two stat tile flavors built from the unified `Metric` component — `accent` (dark surface + sparkline) and `colored` (segmented progress bar).",
9205
- "chooseWhen": [],
9206
- "avoidWhen": [],
9207
- "appOwned": [],
10025
+ "description": "Metric renders one KPI with formatting, trend, sparkline and loading/error presentation; variant=\"card\" owns its Card surface.",
10026
+ "chooseWhen": [
10027
+ "Metric renders one KPI with formatting, trend, sparkline and loading/error presentation; variant=\"card\" owns its Card surface."
10028
+ ],
10029
+ "avoidWhen": [
10030
+ "Several KPI cards need parent-responsive layout, or the value is a simple factual label/value pair."
10031
+ ],
10032
+ "appOwned": [
10033
+ "metric meaning, accepted value and comparison baseline",
10034
+ "requests, refresh and retry actions",
10035
+ "semantic trend override when falling values are good"
10036
+ ],
9208
10037
  "jobs": [
9209
- "Use Stat cards in an admin interface."
10038
+ "Metric renders one KPI with formatting, trend, sparkline and loading/error presentation; variant=\"card\" owns its Card surface."
9210
10039
  ],
9211
10040
  "tags": [
9212
10041
  "blocks",
9213
10042
  "analytics",
9214
10043
  "stat-cards"
9215
10044
  ],
9216
- "aliases": [],
10045
+ "aliases": [
10046
+ "statistic cards",
10047
+ "statistics cards",
10048
+ "stat cards",
10049
+ "single KPI",
10050
+ "single metric",
10051
+ "revenue card",
10052
+ "kpi",
10053
+ "metric card",
10054
+ "kpi card",
10055
+ "number card",
10056
+ "statistics",
10057
+ "stat"
10058
+ ],
9217
10059
  "section": "Blocks",
9218
10060
  "browse": {
9219
10061
  "category": "domain-ui",
@@ -9237,7 +10079,10 @@
9237
10079
  ]
9238
10080
  }
9239
10081
  ],
9240
- "alternatives": []
10082
+ "alternatives": [
10083
+ "themelia-react-ui/blocks/analytics",
10084
+ "themelia-react-ui/blocks/data-display"
10085
+ ]
9241
10086
  },
9242
10087
  {
9243
10088
  "title": "Time distribution",
@@ -9279,6 +10124,152 @@
9279
10124
  ],
9280
10125
  "alternatives": []
9281
10126
  }
10127
+ ],
10128
+ "recipes": [
10129
+ {
10130
+ "file": "examples/analytics.tsx",
10131
+ "exports": [
10132
+ "RevenueOverview"
10133
+ ],
10134
+ "symbols": [
10135
+ "MetricData",
10136
+ "MetricGrid"
10137
+ ],
10138
+ "references": [
10139
+ "references/analytics.md#dashboard-and-revenue-data"
10140
+ ],
10141
+ "optionalPeers": [
10142
+ "recharts"
10143
+ ]
10144
+ },
10145
+ {
10146
+ "file": "examples/analytics.tsx",
10147
+ "exports": [
10148
+ "RevenueMetric"
10149
+ ],
10150
+ "symbols": [
10151
+ "Metric",
10152
+ "MetricData"
10153
+ ],
10154
+ "references": [
10155
+ "references/analytics.md#dashboard-and-revenue-data"
10156
+ ],
10157
+ "optionalPeers": [
10158
+ "recharts"
10159
+ ]
10160
+ }
10161
+ ]
10162
+ },
10163
+ {
10164
+ "import": "themelia-react-ui/blocks/analytics/usage-card",
10165
+ "declaration": "dist/components/blocks/analytics/usage-card/index.d.ts",
10166
+ "symbols": [
10167
+ "UsageCard",
10168
+ "UsageCardCategory",
10169
+ "UsageCardData",
10170
+ "UsageCardDay",
10171
+ "UsageCardPeriod",
10172
+ "UsageCardProps",
10173
+ "UsageCardQuota",
10174
+ "UsageCardResource",
10175
+ "UsageCardStrings",
10176
+ "defaultUsageCardStrings"
10177
+ ],
10178
+ "optionalPeers": [],
10179
+ "layer": "blocks",
10180
+ "responsibility": "Blocks family: Usage card.",
10181
+ "jobs": [
10182
+ "UsageCard needs used/limit quotas, category shares, daily usage and controlled period/loading/error/retry states in one owned Card."
10183
+ ],
10184
+ "tags": [
10185
+ "billing summary",
10186
+ "blocks",
10187
+ "credits",
10188
+ "daily analytics",
10189
+ "quota",
10190
+ "resources",
10191
+ "usage"
10192
+ ],
10193
+ "aliases": [
10194
+ "quota dashboard",
10195
+ "resource limits",
10196
+ "usage statistics",
10197
+ "usage summary"
10198
+ ],
10199
+ "sections": [
10200
+ "Blocks"
10201
+ ],
10202
+ "guidance": [
10203
+ {
10204
+ "title": "Usage card",
10205
+ "description": "Quota summaries, category shares, daily analytics and resource limits with app-owned period data.",
10206
+ "chooseWhen": [
10207
+ "UsageCard needs used/limit quotas, category shares, daily usage and controlled period/loading/error/retry states in one owned Card."
10208
+ ],
10209
+ "avoidWhen": [
10210
+ "The subject is a general revenue KPI or an arbitrary chart series."
10211
+ ],
10212
+ "appOwned": [
10213
+ "usage values, limits and chronological daily data",
10214
+ "period selection, requests and stale-result handling",
10215
+ "billing or navigation footer actions"
10216
+ ],
10217
+ "jobs": [
10218
+ "UsageCard needs used/limit quotas, category shares, daily usage and controlled period/loading/error/retry states in one owned Card."
10219
+ ],
10220
+ "tags": [
10221
+ "blocks",
10222
+ "usage",
10223
+ "quota",
10224
+ "credits",
10225
+ "daily analytics",
10226
+ "resources",
10227
+ "billing summary"
10228
+ ],
10229
+ "aliases": [
10230
+ "usage statistics",
10231
+ "usage summary",
10232
+ "quota dashboard",
10233
+ "resource limits"
10234
+ ],
10235
+ "section": "Blocks",
10236
+ "browse": {
10237
+ "category": "domain-ui",
10238
+ "group": "Analytics",
10239
+ "domain": "",
10240
+ "collection": ""
10241
+ },
10242
+ "sections": [
10243
+ {
10244
+ "title": "API",
10245
+ "symbols": [
10246
+ "UsageCard"
10247
+ ]
10248
+ }
10249
+ ],
10250
+ "alternatives": [
10251
+ "themelia-react-ui/blocks/analytics",
10252
+ "themelia-react-ui/blocks/data-display"
10253
+ ]
10254
+ }
10255
+ ],
10256
+ "recipes": [
10257
+ {
10258
+ "file": "examples/planning-usage-edit.tsx",
10259
+ "exports": [
10260
+ "WorkspaceSummary"
10261
+ ],
10262
+ "symbols": [
10263
+ "UsageCard",
10264
+ "UsageCardData"
10265
+ ],
10266
+ "references": [
10267
+ "references/analytics.md#usage-facts-and-verification",
10268
+ "references/composition.md#task-and-usage-summaries-editable-fields",
10269
+ "references/workflows.md#task-summaries-usage-and-inline-editing"
10270
+ ],
10271
+ "optionalPeers": []
10272
+ }
9282
10273
  ]
9283
10274
  },
9284
10275
  {
@@ -9302,35 +10293,47 @@
9302
10293
  "layer": "blocks",
9303
10294
  "responsibility": "Blocks family: Message.",
9304
10295
  "jobs": [
9305
- "Conversation message composition without service, routing or transport assumptions."
10296
+ "Message and MessageBubble present chat messages, author, delivery state, rich content and actions."
9306
10297
  ],
9307
10298
  "tags": [
9308
10299
  "blocks",
9309
10300
  "collaboration"
9310
10301
  ],
9311
- "aliases": [],
10302
+ "aliases": [
10303
+ "chat",
10304
+ "chat message",
10305
+ "conversation transcript",
10306
+ "message bubble"
10307
+ ],
9312
10308
  "sections": [
9313
10309
  "Blocks"
9314
10310
  ],
9315
10311
  "guidance": [
9316
10312
  {
9317
10313
  "title": "Message",
9318
- "description": "Conversation message composition without service, routing or transport assumptions.",
10314
+ "description": "Message and MessageBubble present chat messages, author, delivery state, rich content and actions.",
9319
10315
  "chooseWhen": [
9320
- "Conversation message composition without service, routing or transport assumptions."
10316
+ "Message and MessageBubble present chat messages, author, delivery state, rich content and actions."
10317
+ ],
10318
+ "avoidWhen": [
10319
+ "A complete AI conversation workflow with prompt submission is required."
9321
10320
  ],
9322
- "avoidWhen": [],
9323
10321
  "appOwned": [
9324
- "Application data, persistence and business effects."
10322
+ "message data, transport, delivery state and action callbacks"
9325
10323
  ],
9326
10324
  "jobs": [
9327
- "Conversation message composition without service, routing or transport assumptions."
10325
+ "Message and MessageBubble present chat messages, author, delivery state, rich content and actions."
9328
10326
  ],
9329
10327
  "tags": [
9330
10328
  "blocks",
9331
10329
  "collaboration"
9332
10330
  ],
9333
- "aliases": [],
10331
+ "aliases": [
10332
+ "chat",
10333
+ "chat message",
10334
+ "message bubble",
10335
+ "conversation transcript"
10336
+ ],
9334
10337
  "section": "Blocks",
9335
10338
  "browse": {
9336
10339
  "category": "domain-ui",
@@ -9338,10 +10341,39 @@
9338
10341
  "domain": "",
9339
10342
  "collection": ""
9340
10343
  },
9341
- "sections": [],
9342
- "alternatives": []
9343
- }
9344
- ]
10344
+ "sections": [
10345
+ {
10346
+ "title": "Message anatomy",
10347
+ "symbols": [
10348
+ "Message",
10349
+ "MessageBubble",
10350
+ "MessageContent",
10351
+ "MessageHeader",
10352
+ "MessageActions",
10353
+ "MessageStatus"
10354
+ ]
10355
+ }
10356
+ ],
10357
+ "alternatives": [
10358
+ "themelia-react-ui/features/ai-chat"
10359
+ ]
10360
+ }
10361
+ ],
10362
+ "recipes": [
10363
+ {
10364
+ "file": "examples/content-workflow.tsx",
10365
+ "exports": [
10366
+ "ReviewMessage"
10367
+ ],
10368
+ "symbols": [
10369
+ "Message"
10370
+ ],
10371
+ "references": [
10372
+ "references/composition.md#files-code-and-messages"
10373
+ ],
10374
+ "optionalPeers": []
10375
+ }
10376
+ ]
9345
10377
  },
9346
10378
  {
9347
10379
  "import": "themelia-react-ui/blocks/commerce",
@@ -9576,7 +10608,7 @@
9576
10608
  "guidance": [
9577
10609
  {
9578
10610
  "title": "Commerce overview",
9579
- "description": "Read-mostly display blocks for recognisable commerce subjects — orders, invoices, carts, shipments, bookings, giftcards, and vendors.",
10611
+ "description": "A screen renders a recognisable commerce subject — order, invoice, cart, shipment, giftcard, booking, vendor — as read-mostly display.",
9580
10612
  "chooseWhen": [
9581
10613
  "A screen renders a recognisable commerce subject — order, invoice, cart, shipment, giftcard, booking, vendor — as read-mostly display."
9582
10614
  ],
@@ -10632,7 +11664,8 @@
10632
11664
  ],
10633
11665
  "alternatives": []
10634
11666
  }
10635
- ]
11667
+ ],
11668
+ "recipes": []
10636
11669
  },
10637
11670
  {
10638
11671
  "import": "themelia-react-ui/blocks/commerce/receipt",
@@ -10733,6 +11766,23 @@
10733
11766
  ],
10734
11767
  "alternatives": []
10735
11768
  }
11769
+ ],
11770
+ "recipes": [
11771
+ {
11772
+ "file": "examples/receipt.tsx",
11773
+ "exports": [
11774
+ "PurchaseReceipt"
11775
+ ],
11776
+ "symbols": [
11777
+ "Receipt",
11778
+ "ReceiptItems",
11779
+ "ReceiptLineItem"
11780
+ ],
11781
+ "references": [
11782
+ "references/composition.md#receipts"
11783
+ ],
11784
+ "optionalPeers": []
11785
+ }
10736
11786
  ]
10737
11787
  },
10738
11788
  {
@@ -10815,7 +11865,15 @@
10815
11865
  "blocks/empty-state",
10816
11866
  "blocks/inline-stat",
10817
11867
  "blocks/metadata-list",
10818
- "blocks/relationship-card-frame"
11868
+ "blocks/relationship-card-frame",
11869
+ "contact details",
11870
+ "details",
11871
+ "fact list",
11872
+ "inline fact",
11873
+ "key value",
11874
+ "plain label value",
11875
+ "read-only facts",
11876
+ "simple statistic"
10819
11877
  ],
10820
11878
  "sections": [
10821
11879
  "Blocks"
@@ -10823,7 +11881,7 @@
10823
11881
  "guidance": [
10824
11882
  {
10825
11883
  "title": "Data display overview",
10826
- "description": "Generic, domain-free readouts: entity facts, single stats, dense info cards, relationship frames, and the standard empty state.",
11884
+ "description": "Entity facts, relationships, dense readouts, or empty regions need the package recipe instead of an app-local one.",
10827
11885
  "chooseWhen": [
10828
11886
  "Entity facts, relationships, dense readouts, or empty regions need the package recipe instead of an app-local one."
10829
11887
  ],
@@ -10865,7 +11923,7 @@
10865
11923
  },
10866
11924
  {
10867
11925
  "title": "Dense info",
10868
- "description": "Five layout variants — dashboard, classification, financial, project, score.",
11926
+ "description": "A dashboard, classification, financial, project, or score readout needs many facts in one tight card.",
10869
11927
  "chooseWhen": [
10870
11928
  "A dashboard, classification, financial, project, or score readout needs many facts in one tight card."
10871
11929
  ],
@@ -10919,7 +11977,7 @@
10919
11977
  },
10920
11978
  {
10921
11979
  "title": "Empty state",
10922
- "description": "Adaptive zero-data surface. Wrap with the right illustration per resource — products, users, search results, inbox. Slots for media / actions / footer; consumer overrides every string.",
11980
+ "description": "No-data, no-results, or first-run content needs the standard media, title, description, and actions recipe.",
10923
11981
  "chooseWhen": [
10924
11982
  "No-data, no-results, or first-run content needs the standard media, title, description, and actions recipe."
10925
11983
  ],
@@ -10980,14 +12038,17 @@
10980
12038
  },
10981
12039
  {
10982
12040
  "title": "Inline stat",
10983
- "description": "Inline label/value pairs for counters, totals, and compact card rows. Use MetadataList for entity detail fields.",
12041
+ "description": "One compact label/value pair needs inline emphasis without trend or chart semantics.",
10984
12042
  "chooseWhen": [
10985
12043
  "One compact label/value pair needs inline emphasis without trend or chart semantics."
10986
12044
  ],
10987
12045
  "avoidWhen": [
10988
12046
  "Several entity facts or KPI trend/chart behavior are required."
10989
12047
  ],
10990
- "appOwned": [],
12048
+ "appOwned": [
12049
+ "label, value and formatting policy",
12050
+ "subject framing at the composition boundary"
12051
+ ],
10991
12052
  "jobs": [
10992
12053
  "One compact label/value pair needs inline emphasis without trend or chart semantics."
10993
12054
  ],
@@ -10998,7 +12059,12 @@
10998
12059
  "inline-stat"
10999
12060
  ],
11000
12061
  "aliases": [
11001
- "blocks/inline-stat"
12062
+ "blocks/inline-stat",
12063
+ "simple statistic",
12064
+ "plain label value",
12065
+ "inline fact",
12066
+ "key value",
12067
+ "details"
11002
12068
  ],
11003
12069
  "section": "Blocks",
11004
12070
  "browse": {
@@ -11030,14 +12096,18 @@
11030
12096
  },
11031
12097
  {
11032
12098
  "title": "Metadata list",
11033
- "description": "Flexible label/value facts with strong grid, rows, and inline defaults; responsive columns; typed value descriptors; and first-class empty handling.",
12099
+ "description": "Customer, order, account, or record label/value facts need a grid, rows, or inline summary.",
11034
12100
  "chooseWhen": [
11035
12101
  "Customer, order, account, or record label/value facts need a grid, rows, or inline summary."
11036
12102
  ],
11037
12103
  "avoidWhen": [
11038
12104
  "Each row has independent identity/actions or the relationship needs title, alerts, and action regions."
11039
12105
  ],
11040
- "appOwned": [],
12106
+ "appOwned": [
12107
+ "fact labels and priority",
12108
+ "loaded subject data",
12109
+ "formatting defaults"
12110
+ ],
11041
12111
  "jobs": [
11042
12112
  "Customer, order, account, or record label/value facts need a grid, rows, or inline summary."
11043
12113
  ],
@@ -11048,7 +12118,12 @@
11048
12118
  "metadata-list"
11049
12119
  ],
11050
12120
  "aliases": [
11051
- "blocks/metadata-list"
12121
+ "blocks/metadata-list",
12122
+ "fact list",
12123
+ "read-only facts",
12124
+ "contact details",
12125
+ "key value",
12126
+ "details"
11052
12127
  ],
11053
12128
  "section": "Blocks",
11054
12129
  "browse": {
@@ -11100,7 +12175,7 @@
11100
12175
  },
11101
12176
  {
11102
12177
  "title": "Relationship card frame",
11103
- "description": "Card-free title, badge, alert, selector, metadata, action, and details regions for app-owned relationship content.",
12178
+ "description": "App-owned relationship content needs title, badge, alert, selector, metadata, actions, and details regions.",
11104
12179
  "chooseWhen": [
11105
12180
  "App-owned relationship content needs title, badge, alert, selector, metadata, actions, and details regions."
11106
12181
  ],
@@ -11157,6 +12232,83 @@
11157
12232
  "themelia-react-ui/features/resource-assignment"
11158
12233
  ]
11159
12234
  }
12235
+ ],
12236
+ "recipes": [
12237
+ {
12238
+ "file": "examples/analytics.tsx",
12239
+ "exports": [
12240
+ "RevenueOverview"
12241
+ ],
12242
+ "symbols": [
12243
+ "EmptyState"
12244
+ ],
12245
+ "references": [
12246
+ "references/analytics.md#dashboard-and-revenue-data"
12247
+ ],
12248
+ "optionalPeers": [
12249
+ "recharts"
12250
+ ]
12251
+ },
12252
+ {
12253
+ "file": "examples/analytics.tsx",
12254
+ "exports": [
12255
+ "PlainStatistic"
12256
+ ],
12257
+ "symbols": [
12258
+ "InlineStat"
12259
+ ],
12260
+ "references": [
12261
+ "references/analytics.md#dashboard-and-revenue-data"
12262
+ ],
12263
+ "optionalPeers": [
12264
+ "recharts"
12265
+ ]
12266
+ },
12267
+ {
12268
+ "file": "examples/detail.tsx",
12269
+ "exports": [
12270
+ "AccountDetail"
12271
+ ],
12272
+ "symbols": [
12273
+ "MetadataList"
12274
+ ],
12275
+ "references": [
12276
+ "references/analytics.md#usage-facts-and-verification",
12277
+ "references/composition.md#application-layouts",
12278
+ "references/workflows.md#detail-and-framing",
12279
+ "references/workflows.md#single-resource-page"
12280
+ ],
12281
+ "optionalPeers": []
12282
+ },
12283
+ {
12284
+ "file": "examples/detail.tsx",
12285
+ "exports": [
12286
+ "AccountDetailPage"
12287
+ ],
12288
+ "symbols": [
12289
+ "MetadataList"
12290
+ ],
12291
+ "references": [
12292
+ "references/analytics.md#usage-facts-and-verification",
12293
+ "references/composition.md#application-layouts",
12294
+ "references/workflows.md#detail-and-framing",
12295
+ "references/workflows.md#single-resource-page"
12296
+ ],
12297
+ "optionalPeers": []
12298
+ },
12299
+ {
12300
+ "file": "examples/receipt.tsx",
12301
+ "exports": [
12302
+ "PurchaseReceipt"
12303
+ ],
12304
+ "symbols": [
12305
+ "MetadataList"
12306
+ ],
12307
+ "references": [
12308
+ "references/composition.md#receipts"
12309
+ ],
12310
+ "optionalPeers": []
12311
+ }
11160
12312
  ]
11161
12313
  },
11162
12314
  {
@@ -11225,6 +12377,107 @@
11225
12377
  ],
11226
12378
  "alternatives": []
11227
12379
  }
12380
+ ],
12381
+ "recipes": []
12382
+ },
12383
+ {
12384
+ "import": "themelia-react-ui/blocks/planning",
12385
+ "declaration": "dist/components/blocks/planning/index.d.ts",
12386
+ "symbols": [
12387
+ "TaskCard",
12388
+ "TaskCardDueDate",
12389
+ "TaskCardItem",
12390
+ "TaskCardProps",
12391
+ "TaskCardStatus",
12392
+ "TaskCardStrings",
12393
+ "defaultTaskCardStrings"
12394
+ ],
12395
+ "optionalPeers": [],
12396
+ "layer": "blocks",
12397
+ "responsibility": "Blocks family: Task card.",
12398
+ "jobs": [
12399
+ "Assignment",
12400
+ "Controlled checklist",
12401
+ "Task summary"
12402
+ ],
12403
+ "tags": [
12404
+ "assignee",
12405
+ "blocks",
12406
+ "checklist",
12407
+ "progress",
12408
+ "subtasks",
12409
+ "task"
12410
+ ],
12411
+ "aliases": [],
12412
+ "sections": [
12413
+ "Blocks"
12414
+ ],
12415
+ "guidance": [
12416
+ {
12417
+ "title": "Task card",
12418
+ "description": "Compact task summaries with accessible expansion, controlled subtasks and assignment.",
12419
+ "chooseWhen": [
12420
+ "A task needs a compact summary with optional expanded controlled subtasks."
12421
+ ],
12422
+ "avoidWhen": [
12423
+ "A complete task board or task-persistence workflow is required."
12424
+ ],
12425
+ "appOwned": [
12426
+ "Persistence, permissions, data requests and navigation."
12427
+ ],
12428
+ "jobs": [
12429
+ "Task summary",
12430
+ "Controlled checklist",
12431
+ "Assignment"
12432
+ ],
12433
+ "tags": [
12434
+ "blocks",
12435
+ "task",
12436
+ "checklist",
12437
+ "subtasks",
12438
+ "assignee",
12439
+ "progress"
12440
+ ],
12441
+ "aliases": [],
12442
+ "section": "Blocks",
12443
+ "browse": {
12444
+ "category": "domain-ui",
12445
+ "group": "Planning",
12446
+ "domain": "",
12447
+ "collection": ""
12448
+ },
12449
+ "sections": [
12450
+ {
12451
+ "title": "API",
12452
+ "symbols": [
12453
+ "TaskCard"
12454
+ ]
12455
+ }
12456
+ ],
12457
+ "alternatives": [
12458
+ "themelia-react-ui/blocks/ai",
12459
+ "themelia-react-ui/blocks/onboarding",
12460
+ "themelia-react-ui/features/kanban"
12461
+ ]
12462
+ }
12463
+ ],
12464
+ "recipes": [
12465
+ {
12466
+ "file": "examples/planning-usage-edit.tsx",
12467
+ "exports": [
12468
+ "WorkspaceSummary"
12469
+ ],
12470
+ "symbols": [
12471
+ "TaskCard",
12472
+ "TaskCardItem"
12473
+ ],
12474
+ "references": [
12475
+ "references/analytics.md#usage-facts-and-verification",
12476
+ "references/composition.md#task-and-usage-summaries-editable-fields",
12477
+ "references/workflows.md#task-summaries-usage-and-inline-editing"
12478
+ ],
12479
+ "optionalPeers": []
12480
+ }
11228
12481
  ]
11229
12482
  },
11230
12483
  {
@@ -11280,7 +12533,7 @@
11280
12533
  "guidance": [
11281
12534
  {
11282
12535
  "title": "Timelines overview",
11283
- "description": "The shared marker-rail engine plus its domain-neutral readings: finite steps, release changelogs, and project milestones. Mixed audit, domain, system, and comment activity belongs to the Features activity log instead.",
12536
+ "description": "Read-only milestones, steps, or changelogs need marker-rail presentation, or a new rail needs the shared Timeline engine.",
11284
12537
  "chooseWhen": [
11285
12538
  "Read-only milestones, steps, or changelogs need marker-rail presentation, or a new rail needs the shared Timeline engine."
11286
12539
  ],
@@ -11487,7 +12740,8 @@
11487
12740
  ],
11488
12741
  "alternatives": []
11489
12742
  }
11490
- ]
12743
+ ],
12744
+ "recipes": []
11491
12745
  },
11492
12746
  {
11493
12747
  "import": "themelia-react-ui/component-vocabulary",
@@ -11509,7 +12763,8 @@
11509
12763
  "tags": [],
11510
12764
  "aliases": [],
11511
12765
  "sections": [],
11512
- "guidance": []
12766
+ "guidance": [],
12767
+ "recipes": []
11513
12768
  },
11514
12769
  {
11515
12770
  "import": "themelia-react-ui/features/activities",
@@ -11595,11 +12850,9 @@
11595
12850
  "tags": [
11596
12851
  "activities",
11597
12852
  "activity",
11598
- "activity-timeline",
11599
12853
  "audit",
11600
12854
  "build",
11601
12855
  "collaboration",
11602
- "docs",
11603
12856
  "features",
11604
12857
  "timeline"
11605
12858
  ],
@@ -11627,9 +12880,7 @@
11627
12880
  "Build an auditable resource history with mixed events, comments, and milestones."
11628
12881
  ],
11629
12882
  "tags": [
11630
- "docs",
11631
12883
  "build",
11632
- "activity-timeline",
11633
12884
  "activity",
11634
12885
  "timeline",
11635
12886
  "audit"
@@ -11660,7 +12911,7 @@
11660
12911
  },
11661
12912
  {
11662
12913
  "title": "Activity log",
11663
- "description": "One canonical collaboration activity surface: comments, composer, audit events, system events, domain events, mentions, row actions, metadata, changes, and collapsible details under one chronological timeline.",
12914
+ "description": "Mixed comments, audit/domain/system events, adapters, metadata, details, and row actions share one log.",
11664
12915
  "chooseWhen": [
11665
12916
  "Mixed comments, audit/domain/system events, adapters, metadata, details, and row actions share one log."
11666
12917
  ],
@@ -11713,7 +12964,8 @@
11713
12964
  "themelia-react-ui/features/comments"
11714
12965
  ]
11715
12966
  }
11716
- ]
12967
+ ],
12968
+ "recipes": []
11717
12969
  },
11718
12970
  {
11719
12971
  "import": "themelia-react-ui/features/ai-chat",
@@ -11831,7 +13083,8 @@
11831
13083
  ],
11832
13084
  "alternatives": []
11833
13085
  }
11834
- ]
13086
+ ],
13087
+ "recipes": []
11835
13088
  },
11836
13089
  {
11837
13090
  "import": "themelia-react-ui/features/async-preview",
@@ -11893,7 +13146,7 @@
11893
13146
  "guidance": [
11894
13147
  {
11895
13148
  "title": "Async preview",
11896
- "description": "Accessible hover, focus, cell, and inline previews with callback-owned fetching, caching, and state composition.",
13149
+ "description": "A lazy or preloaded hover preview is needed inline or from a table cell trigger.",
11897
13150
  "chooseWhen": [
11898
13151
  "A lazy or preloaded hover preview is needed inline or from a table cell trigger."
11899
13152
  ],
@@ -11957,7 +13210,8 @@
11957
13210
  "themelia-react-ui/features/table"
11958
13211
  ]
11959
13212
  }
11960
- ]
13213
+ ],
13214
+ "recipes": []
11961
13215
  },
11962
13216
  {
11963
13217
  "import": "themelia-react-ui/features/combobox",
@@ -11994,10 +13248,8 @@
11994
13248
  "tags": [
11995
13249
  "async",
11996
13250
  "async-resource-combobox",
11997
- "async-selection",
11998
13251
  "build",
11999
13252
  "combobox",
12000
- "docs",
12001
13253
  "features",
12002
13254
  "inputs",
12003
13255
  "retry"
@@ -12026,9 +13278,7 @@
12026
13278
  "Build an async resource selector that handles rejection, retry, and fast-changing queries."
12027
13279
  ],
12028
13280
  "tags": [
12029
- "docs",
12030
13281
  "build",
12031
- "async-selection",
12032
13282
  "async",
12033
13283
  "combobox",
12034
13284
  "retry"
@@ -12059,7 +13309,7 @@
12059
13309
  },
12060
13310
  {
12061
13311
  "title": "Combobox",
12062
- "description": "Searchable single, multiple, grouped, creatable, and async selectors with consumer-owned options and fetch lifecycle.",
13312
+ "description": "A field needs searchable single/multiple selection, async resource lookup, or headless combobox composition.",
12063
13313
  "chooseWhen": [
12064
13314
  "A field needs searchable single/multiple selection, async resource lookup, or headless combobox composition."
12065
13315
  ],
@@ -12159,7 +13409,8 @@
12159
13409
  ],
12160
13410
  "alternatives": []
12161
13411
  }
12162
- ]
13412
+ ],
13413
+ "recipes": []
12163
13414
  },
12164
13415
  {
12165
13416
  "import": "themelia-react-ui/features/comments",
@@ -12279,7 +13530,8 @@
12279
13530
  ],
12280
13531
  "alternatives": []
12281
13532
  }
12282
- ]
13533
+ ],
13534
+ "recipes": []
12283
13535
  },
12284
13536
  {
12285
13537
  "import": "themelia-react-ui/features/data-view",
@@ -12323,24 +13575,22 @@
12323
13575
  "layer": "features",
12324
13576
  "responsibility": "Features family: Data view; Operational index.",
12325
13577
  "jobs": [
12326
- "A standard filtered customer, booking, product, or resource index coordinates rows, columns, saved views, and named toolbar/footer slots.",
12327
- "Build a filtered operational index with selection, actions, and formatted cells."
13578
+ "Build a filtered operational index with selection, actions, and formatted cells.",
13579
+ "Compose a coordinated record directory when the feature query, view and collection contracts fit."
12328
13580
  ],
12329
13581
  "tags": [
12330
13582
  "build",
12331
- "data-view",
12332
- "docs",
12333
- "features",
12334
13583
  "filters",
12335
13584
  "index",
12336
- "operational-index",
12337
13585
  "optional-peer",
12338
13586
  "table",
12339
- "tables",
12340
13587
  "tanstack-react-table"
12341
13588
  ],
12342
13589
  "aliases": [
12343
- "docs/composition-recipes"
13590
+ "contacts list",
13591
+ "docs/composition-recipes",
13592
+ "record directory",
13593
+ "scoped collection"
12344
13594
  ],
12345
13595
  "sections": [
12346
13596
  "Features",
@@ -12365,9 +13615,7 @@
12365
13615
  "Build a filtered operational index with selection, actions, and formatted cells."
12366
13616
  ],
12367
13617
  "tags": [
12368
- "docs",
12369
13618
  "build",
12370
- "operational-index",
12371
13619
  "index",
12372
13620
  "table",
12373
13621
  "filters"
@@ -12400,25 +13648,30 @@
12400
13648
  },
12401
13649
  {
12402
13650
  "title": "Data view",
12403
- "description": "Controlled data-view chrome for tables, filters, saved views, and pagination. Consumers own fetching, query state, table data, and persistence.",
13651
+ "description": "A standard filtered customer, booking, product, or resource index coordinates rows, columns, saved views, and named toolbar/footer slots.",
12404
13652
  "chooseWhen": [
12405
13653
  "A standard filtered customer, booking, product, or resource index coordinates rows, columns, saved views, and named toolbar/footer slots."
12406
13654
  ],
12407
13655
  "avoidWhen": [
12408
13656
  "Only table behavior is needed or the page already owns a different index/workspace composition."
12409
13657
  ],
12410
- "appOwned": [],
13658
+ "appOwned": [
13659
+ "fixed scope versus editable criteria",
13660
+ "server transport and authoritative records",
13661
+ "record priority, permissions and commands"
13662
+ ],
12411
13663
  "jobs": [
12412
- "A standard filtered customer, booking, product, or resource index coordinates rows, columns, saved views, and named toolbar/footer slots."
13664
+ "Compose a coordinated record directory when the feature query, view and collection contracts fit."
12413
13665
  ],
12414
13666
  "tags": [
12415
- "features",
12416
- "tables",
12417
- "data-view",
12418
13667
  "optional-peer",
12419
13668
  "tanstack-react-table"
12420
13669
  ],
12421
- "aliases": [],
13670
+ "aliases": [
13671
+ "record directory",
13672
+ "scoped collection",
13673
+ "contacts list"
13674
+ ],
12422
13675
  "section": "Features",
12423
13676
  "browse": {
12424
13677
  "category": "data-display",
@@ -12453,7 +13706,8 @@
12453
13706
  "themelia-react-ui/features/table"
12454
13707
  ]
12455
13708
  }
12456
- ]
13709
+ ],
13710
+ "recipes": []
12457
13711
  },
12458
13712
  {
12459
13713
  "import": "themelia-react-ui/features/email-composer",
@@ -12497,9 +13751,7 @@
12497
13751
  "Compose and prepare personalized email with application-owned delivery."
12498
13752
  ],
12499
13753
  "tags": [
12500
- "collaboration",
12501
13754
  "email",
12502
- "features",
12503
13755
  "optional-peer",
12504
13756
  "templates",
12505
13757
  "tiptap"
@@ -12524,12 +13776,10 @@
12524
13776
  "Compose and prepare personalized email with application-owned delivery."
12525
13777
  ],
12526
13778
  "tags": [
12527
- "features",
12528
- "collaboration",
12529
- "email",
12530
- "templates",
12531
13779
  "optional-peer",
12532
- "tiptap"
13780
+ "tiptap",
13781
+ "email",
13782
+ "templates"
12533
13783
  ],
12534
13784
  "aliases": [],
12535
13785
  "section": "Features",
@@ -12573,6 +13823,44 @@
12573
13823
  ],
12574
13824
  "alternatives": []
12575
13825
  }
13826
+ ],
13827
+ "recipes": [
13828
+ {
13829
+ "file": "examples/email-composer.tsx",
13830
+ "exports": [
13831
+ "CustomerEmail"
13832
+ ],
13833
+ "symbols": [
13834
+ "ComposerDraft",
13835
+ "EmailComposer",
13836
+ "PreparedEmail"
13837
+ ],
13838
+ "references": [
13839
+ "references/integration.md"
13840
+ ],
13841
+ "optionalPeers": [
13842
+ "@tiptap/react",
13843
+ "@tiptap/starter-kit"
13844
+ ]
13845
+ },
13846
+ {
13847
+ "file": "examples/email-composer.tsx",
13848
+ "exports": [
13849
+ "TemplateEmail"
13850
+ ],
13851
+ "symbols": [
13852
+ "EmailComposer",
13853
+ "EmailComposerProps",
13854
+ "PreparedEmail"
13855
+ ],
13856
+ "references": [
13857
+ "references/integration.md"
13858
+ ],
13859
+ "optionalPeers": [
13860
+ "@tiptap/react",
13861
+ "@tiptap/starter-kit"
13862
+ ]
13863
+ }
12576
13864
  ]
12577
13865
  },
12578
13866
  {
@@ -12607,7 +13895,8 @@
12607
13895
  "tags": [],
12608
13896
  "aliases": [],
12609
13897
  "sections": [],
12610
- "guidance": []
13898
+ "guidance": [],
13899
+ "recipes": []
12611
13900
  },
12612
13901
  {
12613
13902
  "import": "themelia-react-ui/features/event-calendar",
@@ -12673,7 +13962,7 @@
12673
13962
  "guidance": [
12674
13963
  {
12675
13964
  "title": "Event calendar",
12676
- "description": "Month view with categories, filtering, navigation rules, custom event rendering, and three day-heading variants.",
13965
+ "description": "Events need month/week/agenda browsing, categories, day rendering, and callback-driven actions.",
12677
13966
  "chooseWhen": [
12678
13967
  "Events need month/week/agenda browsing, categories, day rendering, and callback-driven actions."
12679
13968
  ],
@@ -12841,7 +14130,8 @@
12841
14130
  ],
12842
14131
  "alternatives": []
12843
14132
  }
12844
- ]
14133
+ ],
14134
+ "recipes": []
12845
14135
  },
12846
14136
  {
12847
14137
  "import": "themelia-react-ui/features/filters",
@@ -12943,21 +14233,27 @@
12943
14233
  "filters",
12944
14234
  "search & filter"
12945
14235
  ],
12946
- "aliases": [],
14236
+ "aliases": [
14237
+ "query toolbar"
14238
+ ],
12947
14239
  "sections": [
12948
14240
  "Features"
12949
14241
  ],
12950
14242
  "guidance": [
12951
14243
  {
12952
14244
  "title": "Filters",
12953
- "description": "Composable filter system. Search + multi-select stay always visible; the rest collapse behind a Filters button. Provider-driven so it works with any data source.",
14245
+ "description": "Controlled facets, operators, active-filter chrome, validation, or query serialization are the primary job.",
12954
14246
  "chooseWhen": [
12955
14247
  "Controlled facets, operators, active-filter chrome, validation, or query serialization are the primary job."
12956
14248
  ],
12957
14249
  "avoidWhen": [
12958
14250
  "A complete table/index frame is desired with minimal assembly."
12959
14251
  ],
12960
- "appOwned": [],
14252
+ "appOwned": [
14253
+ "query transport and scope retention",
14254
+ "criteria definitions and options",
14255
+ "server results and request lifecycle"
14256
+ ],
12961
14257
  "jobs": [
12962
14258
  "Controlled facets, operators, active-filter chrome, validation, or query serialization are the primary job."
12963
14259
  ],
@@ -12966,7 +14262,9 @@
12966
14262
  "search & filter",
12967
14263
  "filters"
12968
14264
  ],
12969
- "aliases": [],
14265
+ "aliases": [
14266
+ "query toolbar"
14267
+ ],
12970
14268
  "section": "Features",
12971
14269
  "browse": {
12972
14270
  "category": "workflows-features",
@@ -13000,6 +14298,29 @@
13000
14298
  "themelia-react-ui/features/data-view"
13001
14299
  ]
13002
14300
  }
14301
+ ],
14302
+ "recipes": [
14303
+ {
14304
+ "file": "examples/scoped-directory.tsx",
14305
+ "exports": [
14306
+ "ScopedDirectory"
14307
+ ],
14308
+ "symbols": [
14309
+ "ActiveFilter",
14310
+ "FilterConfig",
14311
+ "FilterLayout",
14312
+ "FilterProvider",
14313
+ "FilterType"
14314
+ ],
14315
+ "references": [
14316
+ "references/composition.md#compose-from-the-task",
14317
+ "references/workflows.md#scoped-directory"
14318
+ ],
14319
+ "optionalPeers": [
14320
+ "@tanstack/react-table",
14321
+ "react-day-picker"
14322
+ ]
14323
+ }
13003
14324
  ]
13004
14325
  },
13005
14326
  {
@@ -13096,7 +14417,8 @@
13096
14417
  ],
13097
14418
  "alternatives": []
13098
14419
  }
13099
- ]
14420
+ ],
14421
+ "recipes": []
13100
14422
  },
13101
14423
  {
13102
14424
  "import": "themelia-react-ui/features/kanban",
@@ -13142,10 +14464,7 @@
13142
14464
  "Use Kanban in an admin interface."
13143
14465
  ],
13144
14466
  "tags": [
13145
- "boards",
13146
14467
  "dnd-kit",
13147
- "features",
13148
- "kanban",
13149
14468
  "optional-peer"
13150
14469
  ],
13151
14470
  "aliases": [],
@@ -13163,9 +14482,6 @@
13163
14482
  "Use Kanban in an admin interface."
13164
14483
  ],
13165
14484
  "tags": [
13166
- "features",
13167
- "boards",
13168
- "kanban",
13169
14485
  "optional-peer",
13170
14486
  "dnd-kit"
13171
14487
  ],
@@ -13197,7 +14513,8 @@
13197
14513
  ],
13198
14514
  "alternatives": []
13199
14515
  }
13200
- ]
14516
+ ],
14517
+ "recipes": []
13201
14518
  },
13202
14519
  {
13203
14520
  "import": "themelia-react-ui/features/map",
@@ -13276,7 +14593,7 @@
13276
14593
  "guidance": [
13277
14594
  {
13278
14595
  "title": "Map",
13279
- "description": "Leaflet-backed map primitives — Map shell, MapTileLayer, MapMarker, MapPopup. Always wrap in a fixed-height container.",
14596
+ "description": "A Leaflet map needs package controls, layers, markers, drawing, localization, or place search.",
13280
14597
  "chooseWhen": [
13281
14598
  "A Leaflet map needs package controls, layers, markers, drawing, localization, or place search."
13282
14599
  ],
@@ -13288,9 +14605,6 @@
13288
14605
  "A Leaflet map needs package controls, layers, markers, drawing, localization, or place search."
13289
14606
  ],
13290
14607
  "tags": [
13291
- "features",
13292
- "navigation & data",
13293
- "map",
13294
14608
  "optional-peer",
13295
14609
  "leaflet",
13296
14610
  "react-leaflet"
@@ -13374,7 +14688,8 @@
13374
14688
  ],
13375
14689
  "alternatives": []
13376
14690
  }
13377
- ]
14691
+ ],
14692
+ "recipes": []
13378
14693
  },
13379
14694
  {
13380
14695
  "import": "themelia-react-ui/features/media-library",
@@ -13450,14 +14765,9 @@
13450
14765
  "Use Media library in an admin interface."
13451
14766
  ],
13452
14767
  "tags": [
13453
- "assets",
13454
14768
  "build",
13455
14769
  "dnd-kit",
13456
- "docs",
13457
- "features",
13458
14770
  "media",
13459
- "media-library",
13460
- "media-workflow",
13461
14771
  "optional-peer",
13462
14772
  "selection",
13463
14773
  "upload"
@@ -13486,9 +14796,7 @@
13486
14796
  "Build a media selection workflow with app-owned storage services and package-owned UI states."
13487
14797
  ],
13488
14798
  "tags": [
13489
- "docs",
13490
14799
  "build",
13491
- "media-workflow",
13492
14800
  "media",
13493
14801
  "upload",
13494
14802
  "selection"
@@ -13526,9 +14834,6 @@
13526
14834
  "Use Media library in an admin interface."
13527
14835
  ],
13528
14836
  "tags": [
13529
- "features",
13530
- "assets",
13531
- "media-library",
13532
14837
  "optional-peer",
13533
14838
  "dnd-kit"
13534
14839
  ],
@@ -13577,7 +14882,8 @@
13577
14882
  ],
13578
14883
  "alternatives": []
13579
14884
  }
13580
- ]
14885
+ ],
14886
+ "recipes": []
13581
14887
  },
13582
14888
  {
13583
14889
  "import": "themelia-react-ui/features/mentions",
@@ -13670,7 +14976,8 @@
13670
14976
  ],
13671
14977
  "alternatives": []
13672
14978
  }
13673
- ]
14979
+ ],
14980
+ "recipes": []
13674
14981
  },
13675
14982
  {
13676
14983
  "import": "themelia-react-ui/features/overlays",
@@ -13723,7 +15030,7 @@
13723
15030
  "guidance": [
13724
15031
  {
13725
15032
  "title": "Action overlays",
13726
- "description": "Callback-driven ActionDialog, ActionDrawer, and ConfirmDialog recipes blocks over the base Dialog, Sheet, and AlertDialog primitives.",
15033
+ "description": "A modal, drawer, or confirmation needs standardized confirm/cancel, async loading, error, strings, and tone behavior.",
13727
15034
  "chooseWhen": [
13728
15035
  "A modal, drawer, or confirmation needs standardized confirm/cancel, async loading, error, strings, and tone behavior."
13729
15036
  ],
@@ -13764,6 +15071,35 @@
13764
15071
  "themelia-react-ui/base/sheet"
13765
15072
  ]
13766
15073
  }
15074
+ ],
15075
+ "recipes": [
15076
+ {
15077
+ "file": "examples/composition.tsx",
15078
+ "exports": [
15079
+ "AccountComposition"
15080
+ ],
15081
+ "symbols": [
15082
+ "ActionDialog",
15083
+ "useOverlayVisibility"
15084
+ ],
15085
+ "references": [
15086
+ "references/workflows.md#destructive-confirmation"
15087
+ ],
15088
+ "optionalPeers": []
15089
+ },
15090
+ {
15091
+ "file": "examples/destructive-confirm.tsx",
15092
+ "exports": [
15093
+ "DeleteAccount"
15094
+ ],
15095
+ "symbols": [
15096
+ "ConfirmDialog"
15097
+ ],
15098
+ "references": [
15099
+ "references/workflows.md#destructive-confirmation"
15100
+ ],
15101
+ "optionalPeers": []
15102
+ }
13767
15103
  ]
13768
15104
  },
13769
15105
  {
@@ -13910,7 +15246,7 @@
13910
15246
  "guidance": [
13911
15247
  {
13912
15248
  "title": "Products",
13913
- "description": "Shopify-style product editor surfaces built from standalone product feature components. Routing, forms, and persistence stay consumer-owned.",
15249
+ "description": "Product workspace/editor state, options, variants, tables, support rails, and callbacks must compose together.",
13914
15250
  "chooseWhen": [
13915
15251
  "Product workspace/editor state, options, variants, tables, support rails, and callbacks must compose together."
13916
15252
  ],
@@ -14202,7 +15538,8 @@
14202
15538
  ],
14203
15539
  "alternatives": []
14204
15540
  }
14205
- ]
15541
+ ],
15542
+ "recipes": []
14206
15543
  },
14207
15544
  {
14208
15545
  "import": "themelia-react-ui/features/questionnaire",
@@ -14267,6 +15604,23 @@
14267
15604
  "sections": [],
14268
15605
  "alternatives": []
14269
15606
  }
15607
+ ],
15608
+ "recipes": [
15609
+ {
15610
+ "file": "examples/hierarchy-capture.tsx",
15611
+ "exports": [
15612
+ "GuidedRequest"
15613
+ ],
15614
+ "symbols": [
15615
+ "Questionnaire",
15616
+ "QuestionnaireAnswers",
15617
+ "QuestionnaireQuestion"
15618
+ ],
15619
+ "references": [
15620
+ "references/composition.md#hierarchies-capture-and-guided-forms"
15621
+ ],
15622
+ "optionalPeers": []
15623
+ }
14270
15624
  ]
14271
15625
  },
14272
15626
  {
@@ -14357,7 +15711,8 @@
14357
15711
  ],
14358
15712
  "alternatives": []
14359
15713
  }
14360
- ]
15714
+ ],
15715
+ "recipes": []
14361
15716
  },
14362
15717
  {
14363
15718
  "import": "themelia-react-ui/features/resource-assignment",
@@ -14439,7 +15794,8 @@
14439
15794
  ],
14440
15795
  "alternatives": []
14441
15796
  }
14442
- ]
15797
+ ],
15798
+ "recipes": []
14443
15799
  },
14444
15800
  {
14445
15801
  "import": "themelia-react-ui/features/rich-text-editor",
@@ -14471,10 +15827,7 @@
14471
15827
  "Use Rich text editor in an admin interface."
14472
15828
  ],
14473
15829
  "tags": [
14474
- "features",
14475
- "inputs",
14476
15830
  "optional-peer",
14477
- "rich-text",
14478
15831
  "tiptap"
14479
15832
  ],
14480
15833
  "aliases": [],
@@ -14492,9 +15845,6 @@
14492
15845
  "Use Rich text editor in an admin interface."
14493
15846
  ],
14494
15847
  "tags": [
14495
- "features",
14496
- "inputs",
14497
- "rich-text",
14498
15848
  "optional-peer",
14499
15849
  "tiptap"
14500
15850
  ],
@@ -14520,7 +15870,8 @@
14520
15870
  ],
14521
15871
  "alternatives": []
14522
15872
  }
14523
- ]
15873
+ ],
15874
+ "recipes": []
14524
15875
  },
14525
15876
  {
14526
15877
  "import": "themelia-react-ui/features/schema-form",
@@ -14624,7 +15975,8 @@
14624
15975
  ],
14625
15976
  "alternatives": []
14626
15977
  }
14627
- ]
15978
+ ],
15979
+ "recipes": []
14628
15980
  },
14629
15981
  {
14630
15982
  "import": "themelia-react-ui/features/suggestions",
@@ -14693,7 +16045,8 @@
14693
16045
  ],
14694
16046
  "alternatives": []
14695
16047
  }
14696
- ]
16048
+ ],
16049
+ "recipes": []
14697
16050
  },
14698
16051
  {
14699
16052
  "import": "themelia-react-ui/features/sync",
@@ -14764,7 +16117,8 @@
14764
16117
  ],
14765
16118
  "alternatives": []
14766
16119
  }
14767
- ]
16120
+ ],
16121
+ "recipes": []
14768
16122
  },
14769
16123
  {
14770
16124
  "import": "themelia-react-ui/features/table",
@@ -14854,41 +16208,47 @@
14854
16208
  "layer": "features",
14855
16209
  "responsibility": "Features family: Data table.",
14856
16210
  "jobs": [
14857
- "Table columns, cells, sorting, selection, density, sticky behavior, or row actions are needed without index-page coordination."
16211
+ "Compare records in columns; use ResourceCell for identity cells and CellStack for prioritized supporting values.",
16212
+ "Place app-controlled query tools in topbarContent, export in topbarEnd, and selection commands in bulkActions."
14858
16213
  ],
14859
16214
  "tags": [
14860
- "features",
14861
16215
  "optional-peer",
14862
- "table",
14863
- "tables",
14864
16216
  "tanstack-react-table"
14865
16217
  ],
14866
- "aliases": [],
16218
+ "aliases": [
16219
+ "comparison table",
16220
+ "identity cell"
16221
+ ],
14867
16222
  "sections": [
14868
16223
  "Features"
14869
16224
  ],
14870
16225
  "guidance": [
14871
16226
  {
14872
16227
  "title": "Data table",
14873
- "description": "Admin-dense table presentation with sorting, selection, actions, typed cells, toolbar slots, sticky behavior, and pagination.",
16228
+ "description": "Comparison columns, identity cells, sorting, selection or row actions are needed with app-owned query coordination and native toolbar/pagination seams.",
14874
16229
  "chooseWhen": [
14875
- "Table columns, cells, sorting, selection, density, sticky behavior, or row actions are needed without index-page coordination."
16230
+ "Comparison columns, identity cells, sorting, selection or row actions are needed with app-owned query coordination and native toolbar/pagination seams."
14876
16231
  ],
14877
16232
  "avoidWhen": [
14878
- "The standard page also needs filter coordination, saved views, framing, and pagination slots."
16233
+ "DataView already covers the required coordinated index workflow, or records do not benefit from comparison columns."
16234
+ ],
16235
+ "appOwned": [
16236
+ "records and row IDs",
16237
+ "query transport, server paging and scope",
16238
+ "column priority, permissioned commands and navigation"
14879
16239
  ],
14880
- "appOwned": [],
14881
16240
  "jobs": [
14882
- "Table columns, cells, sorting, selection, density, sticky behavior, or row actions are needed without index-page coordination."
16241
+ "Compare records in columns; use ResourceCell for identity cells and CellStack for prioritized supporting values.",
16242
+ "Place app-controlled query tools in topbarContent, export in topbarEnd, and selection commands in bulkActions."
14883
16243
  ],
14884
16244
  "tags": [
14885
- "features",
14886
- "tables",
14887
- "table",
14888
16245
  "optional-peer",
14889
16246
  "tanstack-react-table"
14890
16247
  ],
14891
- "aliases": [],
16248
+ "aliases": [
16249
+ "comparison table",
16250
+ "identity cell"
16251
+ ],
14892
16252
  "section": "Features",
14893
16253
  "browse": {
14894
16254
  "category": "data-display",
@@ -14940,19 +16300,56 @@
14940
16300
  "themelia-react-ui/features/data-view"
14941
16301
  ]
14942
16302
  }
14943
- ]
14944
- },
14945
- {
14946
- "import": "themelia-react-ui/features/theme-tweaker",
14947
- "declaration": "dist/components/features/theme-tweaker/index.d.ts",
14948
- "symbols": [
14949
- "AdminUIElevationRecipe",
14950
- "AdminUIPaletteRecipe",
14951
- "AdminUIThemeDefinition",
14952
- "AdminUIThemeMode",
14953
- "AdminUIThemeOverrides",
14954
- "AdminUIThemeProvider",
14955
- "AdminUIThemeProviderProps",
16303
+ ],
16304
+ "recipes": [
16305
+ {
16306
+ "file": "examples/index-table.tsx",
16307
+ "exports": [
16308
+ "AccountIndex"
16309
+ ],
16310
+ "symbols": [
16311
+ "DataTable",
16312
+ "DataTableProps"
16313
+ ],
16314
+ "references": [
16315
+ "references/workflows.md#index-and-navigation"
16316
+ ],
16317
+ "optionalPeers": [
16318
+ "@tanstack/react-table"
16319
+ ]
16320
+ },
16321
+ {
16322
+ "file": "examples/scoped-directory.tsx",
16323
+ "exports": [
16324
+ "ScopedDirectory"
16325
+ ],
16326
+ "symbols": [
16327
+ "DataTable",
16328
+ "DataTableProps",
16329
+ "ResourceCell"
16330
+ ],
16331
+ "references": [
16332
+ "references/composition.md#compose-from-the-task",
16333
+ "references/workflows.md#scoped-directory"
16334
+ ],
16335
+ "optionalPeers": [
16336
+ "@tanstack/react-table",
16337
+ "react-day-picker"
16338
+ ]
16339
+ }
16340
+ ]
16341
+ },
16342
+ {
16343
+ "import": "themelia-react-ui/features/theme-tweaker",
16344
+ "declaration": "dist/components/features/theme-tweaker/index.d.ts",
16345
+ "symbols": [
16346
+ "AdminUIElevationRecipe",
16347
+ "AdminUIPaletteRecipe",
16348
+ "AdminUIThemeDefinition",
16349
+ "AdminUIThemeMode",
16350
+ "AdminUIThemeOverrides",
16351
+ "AdminUIThemeProvider",
16352
+ "AdminUIThemeProviderProps",
14956
16353
  "AdminUIThemeSelectors",
14957
16354
  "AdminUIThemeStyle",
14958
16355
  "AdminUIThemeVariableName",
@@ -15005,11 +16402,9 @@
15005
16402
  "tags": [
15006
16403
  "build",
15007
16404
  "configuration",
15008
- "docs",
15009
16405
  "features",
15010
16406
  "provider",
15011
16407
  "tenant",
15012
- "tenant-theme",
15013
16408
  "theme",
15014
16409
  "theme-tweaker"
15015
16410
  ],
@@ -15037,9 +16432,7 @@
15037
16432
  "Build a tenant theme boundary that coordinates public variables and UIProvider defaults."
15038
16433
  ],
15039
16434
  "tags": [
15040
- "docs",
15041
16435
  "build",
15042
- "tenant-theme",
15043
16436
  "theme",
15044
16437
  "tenant",
15045
16438
  "provider"
@@ -15068,7 +16461,7 @@
15068
16461
  },
15069
16462
  {
15070
16463
  "title": "Theme tweaker",
15071
- "description": "Interactive CSS-variable theme editor with scoped application, portal-safe provider composition, and checked CSS/UIProvider export.",
16464
+ "description": "A consumer needs an interactive theme studio, derived brand/type/elevation recipes, scoped or document-level live preview, a combined root theme/config boundary, complete or compact CSS export, or a typed UIProvider recipe.",
15072
16465
  "chooseWhen": [
15073
16466
  "A consumer needs an interactive theme studio, derived brand/type/elevation recipes, scoped or document-level live preview, a combined root theme/config boundary, complete or compact CSS export, or a typed UIProvider recipe."
15074
16467
  ],
@@ -15130,7 +16523,8 @@
15130
16523
  "themelia-react-ui/base/repeaters"
15131
16524
  ]
15132
16525
  }
15133
- ]
16526
+ ],
16527
+ "recipes": []
15134
16528
  },
15135
16529
  {
15136
16530
  "import": "themelia-react-ui/layout",
@@ -15372,7 +16766,8 @@
15372
16766
  "tags": [],
15373
16767
  "aliases": [],
15374
16768
  "sections": [],
15375
- "guidance": []
16769
+ "guidance": [],
16770
+ "recipes": []
15376
16771
  },
15377
16772
  {
15378
16773
  "import": "themelia-react-ui/layout/app-shell",
@@ -15405,20 +16800,24 @@
15405
16800
  "responsibility": "Layout family: App shell; Application shell.",
15406
16801
  "jobs": [
15407
16802
  "Build a responsive admin application shell with header, sidebar, navigation, and one page viewport.",
15408
- "Use App shell in an admin interface."
16803
+ "Compose light-header, dark-header, sidebar, inset or stacked chrome with one PageViewport."
15409
16804
  ],
15410
16805
  "tags": [
15411
16806
  "app-shell",
15412
- "application-shell",
15413
16807
  "build",
15414
- "docs",
15415
16808
  "layout",
15416
16809
  "navigation",
15417
16810
  "responsive",
15418
16811
  "shell",
15419
16812
  "shells"
15420
16813
  ],
15421
- "aliases": [],
16814
+ "aliases": [
16815
+ "admin workspace",
16816
+ "application shell",
16817
+ "dark header",
16818
+ "dark header layout",
16819
+ "light header"
16820
+ ],
15422
16821
  "sections": [
15423
16822
  "Layouts",
15424
16823
  "Recipes"
@@ -15442,9 +16841,7 @@
15442
16841
  "Build a responsive admin application shell with header, sidebar, navigation, and one page viewport."
15443
16842
  ],
15444
16843
  "tags": [
15445
- "docs",
15446
16844
  "build",
15447
- "application-shell",
15448
16845
  "shell",
15449
16846
  "navigation",
15450
16847
  "responsive"
@@ -15475,19 +16872,33 @@
15475
16872
  },
15476
16873
  {
15477
16874
  "title": "App shell",
15478
- "description": "Standalone header-first shell with a 70px+ topbar and a sidebar/content body grid.",
15479
- "chooseWhen": [],
15480
- "avoidWhen": [],
15481
- "appOwned": [],
16875
+ "description": "Compose light-header, dark-header, sidebar, inset or stacked chrome with one PageViewport.",
16876
+ "chooseWhen": [
16877
+ "Compose light-header, dark-header, sidebar, inset or stacked chrome with one PageViewport."
16878
+ ],
16879
+ "avoidWhen": [
16880
+ "Only a route heading or content gutter is needed."
16881
+ ],
16882
+ "appOwned": [
16883
+ "viewport height and routing",
16884
+ "workspace and signed-in user data",
16885
+ "header commands and responsive composition"
16886
+ ],
15482
16887
  "jobs": [
15483
- "Use App shell in an admin interface."
16888
+ "Compose light-header, dark-header, sidebar, inset or stacked chrome with one PageViewport."
15484
16889
  ],
15485
16890
  "tags": [
15486
16891
  "layout",
15487
16892
  "shells",
15488
16893
  "app-shell"
15489
16894
  ],
15490
- "aliases": [],
16895
+ "aliases": [
16896
+ "application shell",
16897
+ "admin workspace",
16898
+ "dark header layout",
16899
+ "dark header",
16900
+ "light header"
16901
+ ],
15491
16902
  "section": "Layouts",
15492
16903
  "browse": {
15493
16904
  "category": "layout-shells",
@@ -15505,11 +16916,34 @@
15505
16916
  "symbols": [
15506
16917
  "TopbarSidebarLayout",
15507
16918
  "SidebarInsetLayout",
15508
- "StackedLayout"
16919
+ "StackedLayout",
16920
+ "AppLayout"
15509
16921
  ]
15510
16922
  }
15511
16923
  ],
15512
- "alternatives": []
16924
+ "alternatives": [
16925
+ "themelia-react-ui/layout/header",
16926
+ "themelia-react-ui/layout/page",
16927
+ "themelia-react-ui/layout/sidebar"
16928
+ ]
16929
+ }
16930
+ ],
16931
+ "recipes": [
16932
+ {
16933
+ "file": "examples/app-layout.tsx",
16934
+ "exports": [
16935
+ "WorkspaceLayout"
16936
+ ],
16937
+ "symbols": [
16938
+ "AppLayout",
16939
+ "AppLayoutVariant"
16940
+ ],
16941
+ "references": [
16942
+ "references/composition.md#application-layouts",
16943
+ "references/integration.md",
16944
+ "references/workflows.md#single-resource-page"
16945
+ ],
16946
+ "optionalPeers": []
15513
16947
  }
15514
16948
  ]
15515
16949
  },
@@ -15636,7 +17070,8 @@
15636
17070
  ],
15637
17071
  "alternatives": []
15638
17072
  }
15639
- ]
17073
+ ],
17074
+ "recipes": []
15640
17075
  },
15641
17076
  {
15642
17077
  "import": "themelia-react-ui/layout/containers",
@@ -15657,37 +17092,58 @@
15657
17092
  "layer": "layout",
15658
17093
  "responsibility": "Layout family: Containers.",
15659
17094
  "jobs": [
15660
- "Page composition needs one explicit owner for content width, page scrolling, semantic section rhythm, or a main/aside split."
17095
+ "Compose a public website landing page or service overview from Container, Section and lower public components.",
17096
+ "Own page content width, inline gutters, semantic section rhythm, scrolling or a main/aside split."
15661
17097
  ],
15662
17098
  "tags": [
15663
- "building blocks",
15664
17099
  "containers",
15665
- "layout"
17100
+ "content composition",
17101
+ "landing page",
17102
+ "layout",
17103
+ "services",
17104
+ "website"
17105
+ ],
17106
+ "aliases": [
17107
+ "public website",
17108
+ "service overview",
17109
+ "website landing page"
15666
17110
  ],
15667
- "aliases": [],
15668
17111
  "sections": [
15669
17112
  "Layouts"
15670
17113
  ],
15671
17114
  "guidance": [
15672
17115
  {
15673
17116
  "title": "Containers",
15674
- "description": "Width, scroll, semantic section, and two-column owners for framework-neutral page composition.",
17117
+ "description": "Compose content-led pages and public websites with explicit width, gutters, semantic section rhythm, scrolling and main/aside owners.",
15675
17118
  "chooseWhen": [
15676
- "Page composition needs one explicit owner for content width, page scrolling, semantic section rhythm, or a main/aside split."
17119
+ "A public website, landing page, service overview or other content-led page needs Container width/gutters and semantic Section rhythm.",
17120
+ "Page composition needs one explicit owner for scrolling or a main/aside split."
15677
17121
  ],
15678
17122
  "avoidWhen": [
15679
17123
  "A local reusable component only needs passive sibling arrangement."
15680
17124
  ],
15681
- "appOwned": [],
17125
+ "appOwned": [
17126
+ "page content and section order",
17127
+ "link destinations and site navigation",
17128
+ "responsive placement and brand theming"
17129
+ ],
15682
17130
  "jobs": [
15683
- "Page composition needs one explicit owner for content width, page scrolling, semantic section rhythm, or a main/aside split."
17131
+ "Compose a public website landing page or service overview from Container, Section and lower public components.",
17132
+ "Own page content width, inline gutters, semantic section rhythm, scrolling or a main/aside split."
15684
17133
  ],
15685
17134
  "tags": [
15686
17135
  "layout",
15687
- "building blocks",
15688
- "containers"
17136
+ "containers",
17137
+ "website",
17138
+ "landing page",
17139
+ "services",
17140
+ "content composition"
17141
+ ],
17142
+ "aliases": [
17143
+ "website landing page",
17144
+ "public website",
17145
+ "service overview"
15689
17146
  ],
15690
- "aliases": [],
15691
17147
  "section": "Layouts",
15692
17148
  "browse": {
15693
17149
  "category": "layout-shells",
@@ -15728,6 +17184,23 @@
15728
17184
  "themelia-react-ui/layout/page"
15729
17185
  ]
15730
17186
  }
17187
+ ],
17188
+ "recipes": [
17189
+ {
17190
+ "file": "examples/website.tsx",
17191
+ "exports": [
17192
+ "WebsiteLandingPage"
17193
+ ],
17194
+ "symbols": [
17195
+ "Container",
17196
+ "Section"
17197
+ ],
17198
+ "references": [
17199
+ "references/composition.md#public-websites-and-service-overviews",
17200
+ "references/composition.md#visual-heading-emphasis"
17201
+ ],
17202
+ "optionalPeers": []
17203
+ }
15731
17204
  ]
15732
17205
  },
15733
17206
  {
@@ -15764,33 +17237,50 @@
15764
17237
  "layer": "layout",
15765
17238
  "responsibility": "Layout family: Header.",
15766
17239
  "jobs": [
15767
- "Use Header in an admin interface."
17240
+ "Use HeaderUserMenu, HeaderSearch, HeaderNotifications or typed Header regions in application chrome."
15768
17241
  ],
15769
17242
  "tags": [
15770
17243
  "header",
15771
17244
  "layout",
15772
17245
  "shells"
15773
17246
  ],
15774
- "aliases": [],
17247
+ "aliases": [
17248
+ "header account menu",
17249
+ "header tools",
17250
+ "signed-in user",
17251
+ "user avatar menu"
17252
+ ],
15775
17253
  "sections": [
15776
17254
  "Layouts"
15777
17255
  ],
15778
17256
  "guidance": [
15779
17257
  {
15780
17258
  "title": "Header",
15781
- "description": "Topbar, breadcrumbs, command search, notifications, and action slots in a realistic app-shell canvas.",
15782
- "chooseWhen": [],
15783
- "avoidWhen": [],
15784
- "appOwned": [],
17259
+ "description": "Use HeaderUserMenu, HeaderSearch, HeaderNotifications or typed Header regions in application chrome.",
17260
+ "chooseWhen": [
17261
+ "Use HeaderUserMenu, HeaderSearch, HeaderNotifications or typed Header regions in application chrome."
17262
+ ],
17263
+ "avoidWhen": [
17264
+ "Only an avatar image or route title is needed."
17265
+ ],
17266
+ "appOwned": [
17267
+ "signed-in user and permissioned account callbacks",
17268
+ "search/dialog state and notification data"
17269
+ ],
15785
17270
  "jobs": [
15786
- "Use Header in an admin interface."
17271
+ "Use HeaderUserMenu, HeaderSearch, HeaderNotifications or typed Header regions in application chrome."
15787
17272
  ],
15788
17273
  "tags": [
15789
17274
  "layout",
15790
17275
  "shells",
15791
17276
  "header"
15792
17277
  ],
15793
- "aliases": [],
17278
+ "aliases": [
17279
+ "header account menu",
17280
+ "user avatar menu",
17281
+ "signed-in user",
17282
+ "header tools"
17283
+ ],
15794
17284
  "section": "Layouts",
15795
17285
  "browse": {
15796
17286
  "category": "layout-shells",
@@ -15813,7 +17303,29 @@
15813
17303
  ]
15814
17304
  }
15815
17305
  ],
15816
- "alternatives": []
17306
+ "alternatives": [
17307
+ "themelia-react-ui/base/avatar",
17308
+ "themelia-react-ui/layout/page",
17309
+ "themelia-react-ui/layout/sidebar"
17310
+ ]
17311
+ }
17312
+ ],
17313
+ "recipes": [
17314
+ {
17315
+ "file": "examples/app-layout.tsx",
17316
+ "exports": [
17317
+ "WorkspaceLayout"
17318
+ ],
17319
+ "symbols": [
17320
+ "HeaderUserMenu",
17321
+ "HeaderUserMenuProps"
17322
+ ],
17323
+ "references": [
17324
+ "references/composition.md#application-layouts",
17325
+ "references/integration.md",
17326
+ "references/workflows.md#single-resource-page"
17327
+ ],
17328
+ "optionalPeers": []
15817
17329
  }
15818
17330
  ]
15819
17331
  },
@@ -15880,7 +17392,8 @@
15880
17392
  ],
15881
17393
  "alternatives": []
15882
17394
  }
15883
- ]
17395
+ ],
17396
+ "recipes": []
15884
17397
  },
15885
17398
  {
15886
17399
  "import": "themelia-react-ui/layout/navigation",
@@ -15930,7 +17443,7 @@
15930
17443
  "guidance": [
15931
17444
  {
15932
17445
  "title": "Navigation regions",
15933
- "description": "The navigation regions that frame a page — SideNav, SectionNav, CategoryNav, and BreadcrumbProgress.",
17446
+ "description": "A vertical route rail, in-page anchor nav, category browse rail, or multi-step progress trail needs to frame content it does not own.",
15934
17447
  "chooseWhen": [
15935
17448
  "A vertical route rail, in-page anchor nav, category browse rail, or multi-step progress trail needs to frame content it does not own."
15936
17449
  ],
@@ -16090,7 +17603,8 @@
16090
17603
  ],
16091
17604
  "alternatives": []
16092
17605
  }
16093
- ]
17606
+ ],
17607
+ "recipes": []
16094
17608
  },
16095
17609
  {
16096
17610
  "import": "themelia-react-ui/layout/page",
@@ -16120,15 +17634,23 @@
16120
17634
  "tags": [
16121
17635
  "build",
16122
17636
  "detail",
16123
- "docs",
16124
17637
  "layout",
16125
17638
  "metadata",
16126
17639
  "page",
16127
17640
  "relationships",
16128
- "resource-detail",
16129
17641
  "shells"
16130
17642
  ],
16131
- "aliases": [],
17643
+ "aliases": [
17644
+ "centered detail page",
17645
+ "narrow resource page",
17646
+ "page gutters",
17647
+ "page header",
17648
+ "page padding",
17649
+ "route heading",
17650
+ "scope navigation",
17651
+ "single record page",
17652
+ "single resource page"
17653
+ ],
16132
17654
  "sections": [
16133
17655
  "Layouts",
16134
17656
  "Recipes"
@@ -16152,9 +17674,7 @@
16152
17674
  "Build a responsive resource detail page with primary facts, related context, and actions."
16153
17675
  ],
16154
17676
  "tags": [
16155
- "docs",
16156
17677
  "build",
16157
- "resource-detail",
16158
17678
  "detail",
16159
17679
  "metadata",
16160
17680
  "relationships"
@@ -16185,14 +17705,18 @@
16185
17705
  },
16186
17706
  {
16187
17707
  "title": "Page shell",
16188
- "description": "Framework-neutral page header, actions, containment, and body composition without duplicate scroll ownership.",
17708
+ "description": "A page needs shell-level title, back/link rendering, actions, content, and page composition slots.",
16189
17709
  "chooseWhen": [
16190
17710
  "A page needs shell-level title, back/link rendering, actions, content, and page composition slots."
16191
17711
  ],
16192
17712
  "avoidWhen": [
16193
17713
  "An existing shell needs only a visual title/description/badge block."
16194
17714
  ],
16195
- "appOwned": [],
17715
+ "appOwned": [
17716
+ "route title and contextual lead",
17717
+ "primary command importance",
17718
+ "navigation callbacks and permissioned actions"
17719
+ ],
16196
17720
  "jobs": [
16197
17721
  "A page needs shell-level title, back/link rendering, actions, content, and page composition slots."
16198
17722
  ],
@@ -16201,7 +17725,17 @@
16201
17725
  "shells",
16202
17726
  "page"
16203
17727
  ],
16204
- "aliases": [],
17728
+ "aliases": [
17729
+ "page header",
17730
+ "page padding",
17731
+ "page gutters",
17732
+ "route heading",
17733
+ "scope navigation",
17734
+ "narrow resource page",
17735
+ "centered detail page",
17736
+ "single resource page",
17737
+ "single record page"
17738
+ ],
16205
17739
  "section": "Layouts",
16206
17740
  "browse": {
16207
17741
  "category": "layout-shells",
@@ -16232,6 +17766,56 @@
16232
17766
  "themelia-react-ui/features/resource"
16233
17767
  ]
16234
17768
  }
17769
+ ],
17770
+ "recipes": [
17771
+ {
17772
+ "file": "examples/app-layout.tsx",
17773
+ "exports": [
17774
+ "WorkspaceLayout"
17775
+ ],
17776
+ "symbols": [
17777
+ "Page"
17778
+ ],
17779
+ "references": [
17780
+ "references/composition.md#application-layouts",
17781
+ "references/integration.md",
17782
+ "references/workflows.md#single-resource-page"
17783
+ ],
17784
+ "optionalPeers": []
17785
+ },
17786
+ {
17787
+ "file": "examples/detail.tsx",
17788
+ "exports": [
17789
+ "AccountDetailPage"
17790
+ ],
17791
+ "symbols": [
17792
+ "Page"
17793
+ ],
17794
+ "references": [
17795
+ "references/analytics.md#usage-facts-and-verification",
17796
+ "references/composition.md#application-layouts",
17797
+ "references/workflows.md#detail-and-framing",
17798
+ "references/workflows.md#single-resource-page"
17799
+ ],
17800
+ "optionalPeers": []
17801
+ },
17802
+ {
17803
+ "file": "examples/scoped-directory.tsx",
17804
+ "exports": [
17805
+ "ScopedDirectory"
17806
+ ],
17807
+ "symbols": [
17808
+ "Page"
17809
+ ],
17810
+ "references": [
17811
+ "references/composition.md#compose-from-the-task",
17812
+ "references/workflows.md#scoped-directory"
17813
+ ],
17814
+ "optionalPeers": [
17815
+ "@tanstack/react-table",
17816
+ "react-day-picker"
17817
+ ]
17818
+ }
16235
17819
  ]
16236
17820
  },
16237
17821
  {
@@ -16304,7 +17888,8 @@
16304
17888
  ],
16305
17889
  "alternatives": []
16306
17890
  }
16307
- ]
17891
+ ],
17892
+ "recipes": []
16308
17893
  },
16309
17894
  {
16310
17895
  "import": "themelia-react-ui/layout/sidebar",
@@ -16356,33 +17941,51 @@
16356
17941
  "layer": "layout",
16357
17942
  "responsibility": "Layout family: Sidebar.",
16358
17943
  "jobs": [
16359
- "Use Sidebar in an admin interface."
17944
+ "Use AppSidebar with fixed header additions, grouped navigation, workspace partials and SidebarNavigationUser footer composition."
16360
17945
  ],
16361
17946
  "tags": [
16362
17947
  "layout",
16363
17948
  "shells",
16364
17949
  "sidebar"
16365
17950
  ],
16366
- "aliases": [],
17951
+ "aliases": [
17952
+ "application navigation",
17953
+ "pinned sidebar header",
17954
+ "sidebar account menu",
17955
+ "workspace switcher"
17956
+ ],
16367
17957
  "sections": [
16368
17958
  "Layouts"
16369
17959
  ],
16370
17960
  "guidance": [
16371
17961
  {
16372
17962
  "title": "Sidebar",
16373
- "description": "Full app sidebar assembly plus reusable navigation, workspace, and footer item partials.",
16374
- "chooseWhen": [],
16375
- "avoidWhen": [],
16376
- "appOwned": [],
17963
+ "description": "Use AppSidebar with fixed header additions, grouped navigation, workspace partials and SidebarNavigationUser footer composition.",
17964
+ "chooseWhen": [
17965
+ "Use AppSidebar with fixed header additions, grouped navigation, workspace partials and SidebarNavigationUser footer composition."
17966
+ ],
17967
+ "avoidWhen": [
17968
+ "Only an inline hierarchy picker is needed."
17969
+ ],
17970
+ "appOwned": [
17971
+ "workspace links and active route",
17972
+ "router rendering and accepted expansion state",
17973
+ "user callbacks and custom pinned header content"
17974
+ ],
16377
17975
  "jobs": [
16378
- "Use Sidebar in an admin interface."
17976
+ "Use AppSidebar with fixed header additions, grouped navigation, workspace partials and SidebarNavigationUser footer composition."
16379
17977
  ],
16380
17978
  "tags": [
16381
17979
  "layout",
16382
17980
  "shells",
16383
17981
  "sidebar"
16384
17982
  ],
16385
- "aliases": [],
17983
+ "aliases": [
17984
+ "workspace switcher",
17985
+ "sidebar account menu",
17986
+ "pinned sidebar header",
17987
+ "application navigation"
17988
+ ],
16386
17989
  "section": "Layouts",
16387
17990
  "browse": {
16388
17991
  "category": "layout-shells",
@@ -16407,11 +18010,36 @@
16407
18010
  "SidebarGroupedNavigation",
16408
18011
  "SidebarWorkspaceDropdown",
16409
18012
  "SidebarNavigationFooter",
16410
- "SidebarNavigationUser"
18013
+ "SidebarNavigationUser",
18014
+ "LayoutSidebarProvider"
16411
18015
  ]
16412
18016
  }
16413
18017
  ],
16414
- "alternatives": []
18018
+ "alternatives": [
18019
+ "themelia-react-ui/base/cascader",
18020
+ "themelia-react-ui/base/tree",
18021
+ "themelia-react-ui/layout/header"
18022
+ ]
18023
+ }
18024
+ ],
18025
+ "recipes": [
18026
+ {
18027
+ "file": "examples/app-layout.tsx",
18028
+ "exports": [
18029
+ "WorkspaceLayout"
18030
+ ],
18031
+ "symbols": [
18032
+ "AppSidebar",
18033
+ "AppSidebarProps",
18034
+ "LayoutSidebarProvider",
18035
+ "SidebarNavigationUser"
18036
+ ],
18037
+ "references": [
18038
+ "references/composition.md#application-layouts",
18039
+ "references/integration.md",
18040
+ "references/workflows.md#single-resource-page"
18041
+ ],
18042
+ "optionalPeers": []
16415
18043
  }
16416
18044
  ]
16417
18045
  },
@@ -16445,11 +18073,79 @@
16445
18073
  "optionalPeers": [],
16446
18074
  "layer": "layout",
16447
18075
  "responsibility": "Workspace layout, record header, navigation and locale strip with application-owned record data and callbacks.",
16448
- "jobs": [],
16449
- "tags": [],
16450
- "aliases": [],
16451
- "sections": [],
16452
- "guidance": []
18076
+ "jobs": [
18077
+ "A bounded record workspace needs independently composed header, sidebar, main and rail regions."
18078
+ ],
18079
+ "tags": [
18080
+ "building blocks",
18081
+ "layout",
18082
+ "workspace"
18083
+ ],
18084
+ "aliases": [
18085
+ "record header and rail",
18086
+ "resource workspace regions",
18087
+ "workspace locale strip"
18088
+ ],
18089
+ "sections": [
18090
+ "Layouts"
18091
+ ],
18092
+ "guidance": [
18093
+ {
18094
+ "title": "Workspace regions",
18095
+ "description": "A bounded record workspace needs independently composed header, sidebar, main and rail regions.",
18096
+ "chooseWhen": [
18097
+ "A bounded record workspace needs independently composed header, sidebar, main and rail regions."
18098
+ ],
18099
+ "avoidWhen": [
18100
+ "A complete editing/data workflow or global app chrome is required."
18101
+ ],
18102
+ "appOwned": [
18103
+ "record content, navigation and locale callbacks",
18104
+ "header actions and supporting rails"
18105
+ ],
18106
+ "jobs": [
18107
+ "A bounded record workspace needs independently composed header, sidebar, main and rail regions."
18108
+ ],
18109
+ "tags": [
18110
+ "layout",
18111
+ "building blocks",
18112
+ "workspace"
18113
+ ],
18114
+ "aliases": [
18115
+ "resource workspace regions",
18116
+ "record header and rail",
18117
+ "workspace locale strip"
18118
+ ],
18119
+ "section": "Layouts",
18120
+ "browse": {
18121
+ "category": "layout-shells",
18122
+ "group": "Workspace",
18123
+ "domain": "",
18124
+ "collection": ""
18125
+ },
18126
+ "sections": [
18127
+ {
18128
+ "title": "Examples",
18129
+ "symbols": []
18130
+ },
18131
+ {
18132
+ "title": "API",
18133
+ "symbols": [
18134
+ "WorkspaceLayout",
18135
+ "WorkspaceRecordHeader",
18136
+ "WorkspaceNav",
18137
+ "WorkspaceLocaleStrip"
18138
+ ]
18139
+ }
18140
+ ],
18141
+ "alternatives": [
18142
+ "themelia-react-ui/features/resource",
18143
+ "themelia-react-ui/layout/app-shell",
18144
+ "themelia-react-ui/layout/page"
18145
+ ]
18146
+ }
18147
+ ],
18148
+ "recipes": []
16453
18149
  },
16454
18150
  {
16455
18151
  "import": "themelia-react-ui/lib/strings",
@@ -16469,7 +18165,8 @@
16469
18165
  "tags": [],
16470
18166
  "aliases": [],
16471
18167
  "sections": [],
16472
- "guidance": []
18168
+ "guidance": [],
18169
+ "recipes": []
16473
18170
  },
16474
18171
  {
16475
18172
  "import": "themelia-react-ui/lib/utils",
@@ -16484,7 +18181,8 @@
16484
18181
  "tags": [],
16485
18182
  "aliases": [],
16486
18183
  "sections": [],
16487
- "guidance": []
18184
+ "guidance": [],
18185
+ "recipes": []
16488
18186
  },
16489
18187
  {
16490
18188
  "import": "themelia-react-ui/primitives",
@@ -16597,7 +18295,7 @@
16597
18295
  "guidance": [
16598
18296
  {
16599
18297
  "title": "Primitives overview",
16600
- "description": "Semantic display primitives for identities, values, links, money, numbers, durations, dimensions, file sizes, and dates. Use these before hand-rolling text classes in metadata, cards, tables, previews, and activity surfaces.",
18298
+ "description": "Displayed data has money, date, contact, identity, code, numeric, duration, or empty-value semantics.",
16601
18299
  "chooseWhen": [
16602
18300
  "Displayed data has money, date, contact, identity, code, numeric, duration, or empty-value semantics."
16603
18301
  ],
@@ -17072,6 +18770,107 @@
17072
18770
  ],
17073
18771
  "alternatives": []
17074
18772
  }
18773
+ ],
18774
+ "recipes": [
18775
+ {
18776
+ "file": "examples/detail.tsx",
18777
+ "exports": [
18778
+ "AccountDetail"
18779
+ ],
18780
+ "symbols": [
18781
+ "Date",
18782
+ "Email",
18783
+ "Money",
18784
+ "Value"
18785
+ ],
18786
+ "references": [
18787
+ "references/analytics.md#usage-facts-and-verification",
18788
+ "references/composition.md#application-layouts",
18789
+ "references/workflows.md#detail-and-framing",
18790
+ "references/workflows.md#single-resource-page"
18791
+ ],
18792
+ "optionalPeers": []
18793
+ },
18794
+ {
18795
+ "file": "examples/detail.tsx",
18796
+ "exports": [
18797
+ "AccountDetailPage"
18798
+ ],
18799
+ "symbols": [
18800
+ "Date",
18801
+ "Email",
18802
+ "Money",
18803
+ "Value"
18804
+ ],
18805
+ "references": [
18806
+ "references/analytics.md#usage-facts-and-verification",
18807
+ "references/composition.md#application-layouts",
18808
+ "references/workflows.md#detail-and-framing",
18809
+ "references/workflows.md#single-resource-page"
18810
+ ],
18811
+ "optionalPeers": []
18812
+ },
18813
+ {
18814
+ "file": "examples/index-table.tsx",
18815
+ "exports": [
18816
+ "AccountIndex"
18817
+ ],
18818
+ "symbols": [
18819
+ "Email",
18820
+ "Name"
18821
+ ],
18822
+ "references": [
18823
+ "references/workflows.md#index-and-navigation"
18824
+ ],
18825
+ "optionalPeers": [
18826
+ "@tanstack/react-table"
18827
+ ]
18828
+ },
18829
+ {
18830
+ "file": "examples/receipt.tsx",
18831
+ "exports": [
18832
+ "PurchaseReceipt"
18833
+ ],
18834
+ "symbols": [
18835
+ "Money"
18836
+ ],
18837
+ "references": [
18838
+ "references/composition.md#receipts"
18839
+ ],
18840
+ "optionalPeers": []
18841
+ },
18842
+ {
18843
+ "file": "examples/scoped-directory.tsx",
18844
+ "exports": [
18845
+ "ScopedDirectory"
18846
+ ],
18847
+ "symbols": [
18848
+ "Email"
18849
+ ],
18850
+ "references": [
18851
+ "references/composition.md#compose-from-the-task",
18852
+ "references/workflows.md#scoped-directory"
18853
+ ],
18854
+ "optionalPeers": [
18855
+ "@tanstack/react-table",
18856
+ "react-day-picker"
18857
+ ]
18858
+ },
18859
+ {
18860
+ "file": "examples/website.tsx",
18861
+ "exports": [
18862
+ "WebsiteLandingPage"
18863
+ ],
18864
+ "symbols": [
18865
+ "Money",
18866
+ "MoneyValue"
18867
+ ],
18868
+ "references": [
18869
+ "references/composition.md#public-websites-and-service-overviews",
18870
+ "references/composition.md#visual-heading-emphasis"
18871
+ ],
18872
+ "optionalPeers": []
18873
+ }
17075
18874
  ]
17076
18875
  },
17077
18876
  {
@@ -17170,13 +18969,10 @@
17170
18969
  "tags": [
17171
18970
  "actions",
17172
18971
  "feedback",
17173
- "foundations",
17174
18972
  "lifecycle",
17175
18973
  "overlays",
17176
18974
  "request-runner",
17177
- "runtime",
17178
- "runtime & provider",
17179
- "services"
18975
+ "runtime"
17180
18976
  ],
17181
18977
  "aliases": [],
17182
18978
  "sections": [
@@ -17197,9 +18993,6 @@
17197
18993
  "Share one action definition across buttons, menus, command results, and overlays without coupling the package to an application framework."
17198
18994
  ],
17199
18995
  "tags": [
17200
- "foundations",
17201
- "runtime & provider",
17202
- "services",
17203
18996
  "actions",
17204
18997
  "runtime",
17205
18998
  "lifecycle",
@@ -17250,7 +19043,8 @@
17250
19043
  "themelia-react-ui/features/overlays"
17251
19044
  ]
17252
19045
  }
17253
- ]
19046
+ ],
19047
+ "recipes": []
17254
19048
  },
17255
19049
  {
17256
19050
  "import": "themelia-react-ui/typography",
@@ -17260,6 +19054,7 @@
17260
19054
  "DisplayLabelProps",
17261
19055
  "Heading",
17262
19056
  "HeadingProps",
19057
+ "HeadingSize",
17263
19058
  "HeadingTag",
17264
19059
  "Label",
17265
19060
  "LabelProps",
@@ -17287,7 +19082,7 @@
17287
19082
  "guidance": [
17288
19083
  {
17289
19084
  "title": "Typography",
17290
- "description": "Heading, Text, DisplayLabel, Label, and TextLink — the typography primitives every higher layer composes from.",
19085
+ "description": "Library-owned prose, headings, labels, or text links need a typography role.",
17291
19086
  "chooseWhen": [
17292
19087
  "Library-owned prose, headings, labels, or text links need a typography role."
17293
19088
  ],
@@ -17370,6 +19165,151 @@
17370
19165
  "themelia-react-ui/primitives"
17371
19166
  ]
17372
19167
  }
19168
+ ],
19169
+ "recipes": [
19170
+ {
19171
+ "file": "examples/app-layout.tsx",
19172
+ "exports": [
19173
+ "WorkspaceLayout"
19174
+ ],
19175
+ "symbols": [
19176
+ "Text"
19177
+ ],
19178
+ "references": [
19179
+ "references/composition.md#application-layouts",
19180
+ "references/integration.md",
19181
+ "references/workflows.md#single-resource-page"
19182
+ ],
19183
+ "optionalPeers": []
19184
+ },
19185
+ {
19186
+ "file": "examples/composition.tsx",
19187
+ "exports": [
19188
+ "AccountComposition"
19189
+ ],
19190
+ "symbols": [
19191
+ "Text"
19192
+ ],
19193
+ "references": [
19194
+ "references/workflows.md#destructive-confirmation"
19195
+ ],
19196
+ "optionalPeers": []
19197
+ },
19198
+ {
19199
+ "file": "examples/content-workflow.tsx",
19200
+ "exports": [
19201
+ "ReviewMessage"
19202
+ ],
19203
+ "symbols": [
19204
+ "Text"
19205
+ ],
19206
+ "references": [
19207
+ "references/composition.md#files-code-and-messages"
19208
+ ],
19209
+ "optionalPeers": []
19210
+ },
19211
+ {
19212
+ "file": "examples/destructive-confirm.tsx",
19213
+ "exports": [
19214
+ "DeleteAccount"
19215
+ ],
19216
+ "symbols": [
19217
+ "Text"
19218
+ ],
19219
+ "references": [
19220
+ "references/workflows.md#destructive-confirmation"
19221
+ ],
19222
+ "optionalPeers": []
19223
+ },
19224
+ {
19225
+ "file": "examples/edit.tsx",
19226
+ "exports": [
19227
+ "AccountEdit"
19228
+ ],
19229
+ "symbols": [
19230
+ "Text"
19231
+ ],
19232
+ "references": [
19233
+ "references/workflows.md#validated-editing"
19234
+ ],
19235
+ "optionalPeers": [
19236
+ "react-hook-form"
19237
+ ]
19238
+ },
19239
+ {
19240
+ "file": "examples/hierarchy-capture.tsx",
19241
+ "exports": [
19242
+ "HierarchyCapture"
19243
+ ],
19244
+ "symbols": [
19245
+ "Label"
19246
+ ],
19247
+ "references": [
19248
+ "references/composition.md#hierarchies-capture-and-guided-forms"
19249
+ ],
19250
+ "optionalPeers": []
19251
+ },
19252
+ {
19253
+ "file": "examples/index-table.tsx",
19254
+ "exports": [
19255
+ "AccountIndex"
19256
+ ],
19257
+ "symbols": [
19258
+ "Text"
19259
+ ],
19260
+ "references": [
19261
+ "references/workflows.md#index-and-navigation"
19262
+ ],
19263
+ "optionalPeers": [
19264
+ "@tanstack/react-table"
19265
+ ]
19266
+ },
19267
+ {
19268
+ "file": "examples/receipt.tsx",
19269
+ "exports": [
19270
+ "PurchaseReceipt"
19271
+ ],
19272
+ "symbols": [
19273
+ "Heading",
19274
+ "Text"
19275
+ ],
19276
+ "references": [
19277
+ "references/composition.md#receipts"
19278
+ ],
19279
+ "optionalPeers": []
19280
+ },
19281
+ {
19282
+ "file": "examples/scoped-directory.tsx",
19283
+ "exports": [
19284
+ "ScopedDirectory"
19285
+ ],
19286
+ "symbols": [
19287
+ "Text"
19288
+ ],
19289
+ "references": [
19290
+ "references/composition.md#compose-from-the-task",
19291
+ "references/workflows.md#scoped-directory"
19292
+ ],
19293
+ "optionalPeers": [
19294
+ "@tanstack/react-table",
19295
+ "react-day-picker"
19296
+ ]
19297
+ },
19298
+ {
19299
+ "file": "examples/website.tsx",
19300
+ "exports": [
19301
+ "WebsiteLandingPage"
19302
+ ],
19303
+ "symbols": [
19304
+ "Heading",
19305
+ "Text"
19306
+ ],
19307
+ "references": [
19308
+ "references/composition.md#public-websites-and-service-overviews",
19309
+ "references/composition.md#visual-heading-emphasis"
19310
+ ],
19311
+ "optionalPeers": []
19312
+ }
17373
19313
  ]
17374
19314
  },
17375
19315
  {
@@ -17382,11 +19322,66 @@
17382
19322
  "optionalPeers": [],
17383
19323
  "layer": "foundations",
17384
19324
  "responsibility": "Sanitized rich HTML display with scoped reading rhythm; editing belongs to the rich-text-editor feature.",
17385
- "jobs": [],
17386
- "tags": [],
17387
- "aliases": [],
17388
- "sections": [],
17389
- "guidance": []
19325
+ "jobs": [
19326
+ "Display rich HTML and converted Markdown content"
19327
+ ],
19328
+ "tags": [
19329
+ "HTML",
19330
+ "rich text"
19331
+ ],
19332
+ "aliases": [
19333
+ "markdown",
19334
+ "rendered markdown"
19335
+ ],
19336
+ "references": [
19337
+ "references/composition.md#typography-and-rich-content"
19338
+ ],
19339
+ "sections": [
19340
+ "Foundations"
19341
+ ],
19342
+ "guidance": [
19343
+ {
19344
+ "title": "Rich HTML display",
19345
+ "description": "Sanitized rich HTML display with scoped reading rhythm; editing belongs to the rich-text-editor feature.",
19346
+ "section": "Foundations",
19347
+ "chooseWhen": [
19348
+ "Display sanitized HTML, including application-converted Markdown."
19349
+ ],
19350
+ "avoidWhen": [
19351
+ "Raw Markdown parsing or an editable document is required."
19352
+ ],
19353
+ "appOwned": [
19354
+ "Markdown-to-HTML conversion, content loading and persistence"
19355
+ ],
19356
+ "jobs": [
19357
+ "Display rich HTML and converted Markdown content"
19358
+ ],
19359
+ "tags": [
19360
+ "rich text",
19361
+ "HTML"
19362
+ ],
19363
+ "aliases": [
19364
+ "markdown",
19365
+ "rendered markdown"
19366
+ ],
19367
+ "browse": {
19368
+ "category": "typography",
19369
+ "group": "Typography",
19370
+ "domain": "",
19371
+ "collection": ""
19372
+ },
19373
+ "sections": [
19374
+ {
19375
+ "title": "API",
19376
+ "symbols": [
19377
+ "RichText"
19378
+ ]
19379
+ }
19380
+ ],
19381
+ "alternatives": []
19382
+ }
19383
+ ],
19384
+ "recipes": []
17390
19385
  },
17391
19386
  {
17392
19387
  "import": "themelia-react-ui/ui-provider",
@@ -17453,18 +19448,30 @@
17453
19448
  "layer": "foundations",
17454
19449
  "responsibility": "Stable display defaults through UIProvider and a basic CSS-inheritance ThemeScope with native div/style props and portal hosting. The root re-exports this same ThemeScope.",
17455
19450
  "jobs": [
19451
+ "Host a CSS-inheriting ThemeScope and its portals at a theme boundary.",
17456
19452
  "Set locale, density, formatting, and component defaults once without moving request or application state into the package."
17457
19453
  ],
17458
19454
  "tags": [
17459
19455
  "configuration",
17460
19456
  "display-defaults",
17461
- "foundations",
17462
19457
  "provider",
17463
- "runtime",
17464
- "runtime & provider",
17465
- "ui-provider"
19458
+ "runtime"
19459
+ ],
19460
+ "aliases": [
19461
+ "border radius",
19462
+ "control corners",
19463
+ "control heights",
19464
+ "control-height",
19465
+ "global corners",
19466
+ "matching control heights",
19467
+ "radius",
19468
+ "theme boundary",
19469
+ "theming"
19470
+ ],
19471
+ "references": [
19472
+ "references/design-contract.md",
19473
+ "references/theming.md"
17466
19474
  ],
17467
- "aliases": [],
17468
19475
  "sections": [
17469
19476
  "Foundations"
17470
19477
  ],
@@ -17473,25 +19480,31 @@
17473
19480
  "title": "UIProvider",
17474
19481
  "description": "Configure one React-root boundary for stable application-wide display defaults.",
17475
19482
  "chooseWhen": [
17476
- "Stable application-wide display defaults need one isolated configuration boundary per React root."
19483
+ "Stable application-wide display defaults need one isolated configuration boundary per React root.",
19484
+ "ThemeScope needs to preserve CSS inheritance for portaled surfaces without an interactive theme editor."
17477
19485
  ],
17478
19486
  "avoidWhen": [
17479
19487
  "A value is visual CSS, call-site-specific, request-scoped, translated copy, or application state."
17480
19488
  ],
17481
- "appOwned": [],
19489
+ "appOwned": [
19490
+ "semantic theme CSS and active theme selection",
19491
+ "stable provider defaults",
19492
+ "portal container within the active scope"
19493
+ ],
17482
19494
  "jobs": [
17483
- "Set locale, density, formatting, and component defaults once without moving request or application state into the package."
19495
+ "Set locale, density, formatting, and component defaults once without moving request or application state into the package.",
19496
+ "Host a CSS-inheriting ThemeScope and its portals at a theme boundary."
17484
19497
  ],
17485
19498
  "tags": [
17486
- "foundations",
17487
- "runtime & provider",
17488
- "ui-provider",
17489
19499
  "provider",
17490
19500
  "configuration",
17491
19501
  "display-defaults",
17492
19502
  "runtime"
17493
19503
  ],
17494
- "aliases": [],
19504
+ "aliases": [
19505
+ "theme boundary",
19506
+ "theming"
19507
+ ],
17495
19508
  "section": "Foundations",
17496
19509
  "browse": {
17497
19510
  "category": "foundations",
@@ -17521,6 +19534,21 @@
17521
19534
  "themelia-react-ui/features/theme-tweaker"
17522
19535
  ]
17523
19536
  }
19537
+ ],
19538
+ "recipes": [
19539
+ {
19540
+ "file": "examples/composition.tsx",
19541
+ "exports": [
19542
+ "AccountComposition"
19543
+ ],
19544
+ "symbols": [
19545
+ "ThemeScope"
19546
+ ],
19547
+ "references": [
19548
+ "references/workflows.md#destructive-confirmation"
19549
+ ],
19550
+ "optionalPeers": []
19551
+ }
17524
19552
  ]
17525
19553
  }
17526
19554
  ]