themelia-react-ui 2.0.4 → 2.0.5

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 (588) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/README.md +113 -18
  3. package/dist/{accordion-96o0pN62.js → accordion-B9MHG0cT.js} +11 -11
  4. package/dist/accordion-B9MHG0cT.js.map +1 -0
  5. package/dist/{action-menu-CHgs8vmj.js → action-menu-Dr8K-ghE.js} +48 -45
  6. package/dist/action-menu-Dr8K-ghE.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
  8. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  9. package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-C58tQcBy.js} +210 -174
  10. package/dist/ai-artifact-C58tQcBy.js.map +1 -0
  11. package/dist/app-shell-B_IuNWOo.js +321 -0
  12. package/dist/app-shell-B_IuNWOo.js.map +1 -0
  13. package/dist/{attachment-DkoqHPPl.js → attachment-Dg_69lPS.js} +9 -9
  14. package/dist/{attachment-DkoqHPPl.js.map → attachment-Dg_69lPS.js.map} +1 -1
  15. package/dist/{auth-D2FVZ1MH.js → auth-DTkkshS8.js} +43 -46
  16. package/dist/auth-DTkkshS8.js.map +1 -0
  17. package/dist/{avatar-DWO_HHhB.js → avatar-CeZaFmNH.js} +8 -8
  18. package/dist/avatar-CeZaFmNH.js.map +1 -0
  19. package/dist/{badge-DErMA7ul.js → badge-xIiV_E7f.js} +5 -5
  20. package/dist/{badge-DErMA7ul.js.map → badge-xIiV_E7f.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/batch-action-bar.js +1 -1
  27. package/dist/base/buttons.js +1 -1
  28. package/dist/base/cards.js +2 -2
  29. package/dist/base/carousel.js +3 -3
  30. package/dist/base/cascader.js +2 -372
  31. package/dist/base/chart.js +1 -1
  32. package/dist/base/choice-inputs.js +2 -2
  33. package/dist/base/code-block.js +1 -1
  34. package/dist/base/combobox.js +2 -2
  35. package/dist/base/command.js +1 -1
  36. package/dist/base/copyable.js +1 -1
  37. package/dist/base/date-pickers.js +2 -2
  38. package/dist/base/display.js +6 -6
  39. package/dist/base/feedback.js +3 -3
  40. package/dist/base/forms-numeric.js +1 -1
  41. package/dist/base/forms.js +2 -2
  42. package/dist/base/inline-edit.js +10 -10
  43. package/dist/base/item.js +1 -1
  44. package/dist/base/media-gallery.js +1 -1
  45. package/dist/base/metadata-list.js +1 -1
  46. package/dist/base/navigation.js +7 -7
  47. package/dist/base/popover-menu.js +1 -1
  48. package/dist/base/popover.js +1 -1
  49. package/dist/base/qr-code.js +1 -1
  50. package/dist/base/repeaters.js +12 -12
  51. package/dist/base/repeaters.js.map +1 -1
  52. package/dist/base/sheet.js +1 -1
  53. package/dist/base/sidebar.js +2 -2
  54. package/dist/base/signature-pad.js +7 -7
  55. package/dist/base/signature-pad.js.map +1 -1
  56. package/dist/base/skeleton.js +1 -1
  57. package/dist/base/spinner.js +4 -4
  58. package/dist/base/structure.js +1 -1
  59. package/dist/base/table.js +1 -1
  60. package/dist/base/text-inputs.js +2 -2
  61. package/dist/base/toaster.js +36 -36
  62. package/dist/base/toaster.js.map +1 -1
  63. package/dist/base/tree.js +1 -1
  64. package/dist/base/upload-queue.js +1 -1
  65. package/dist/base/upload.js +3 -3
  66. package/dist/base/value-inputs.js +1 -1
  67. package/dist/{batch-action-bar-CdfIkCsV.js → batch-action-bar-Cb8cuvyy.js} +6 -6
  68. package/dist/batch-action-bar-Cb8cuvyy.js.map +1 -0
  69. package/dist/blocks/admin.js +21 -21
  70. package/dist/blocks/admin.js.map +1 -1
  71. package/dist/blocks/ai.js +230 -216
  72. package/dist/blocks/ai.js.map +1 -1
  73. package/dist/blocks/analytics/usage-card.js +1 -1
  74. package/dist/blocks/analytics.js +325 -306
  75. package/dist/blocks/analytics.js.map +1 -1
  76. package/dist/blocks/collaboration.js +1 -1
  77. package/dist/blocks/commerce/receipt.js +1 -1
  78. package/dist/blocks/commerce.js +1259 -1184
  79. package/dist/blocks/commerce.js.map +1 -1
  80. package/dist/blocks/data-display.js +2 -2
  81. package/dist/blocks/onboarding.js +6 -6
  82. package/dist/blocks/onboarding.js.map +1 -1
  83. package/dist/blocks/planning.js +11 -11
  84. package/dist/blocks/timelines.js +1 -1
  85. package/dist/{breadcrumbs-B-WFKecD.js → breadcrumbs-J-K2kl4c.js} +6 -6
  86. package/dist/{breadcrumbs-B-WFKecD.js.map → breadcrumbs-J-K2kl4c.js.map} +1 -1
  87. package/dist/{button-DkmK-z8E.js → button-S2Cubiiz.js} +3 -3
  88. package/dist/button-S2Cubiiz.js.map +1 -0
  89. package/dist/{buttons-BbfzgczK.js → buttons-BedGfygC.js} +16 -16
  90. package/dist/buttons-BedGfygC.js.map +1 -0
  91. package/dist/cards-rNX1M4Xn.js +69 -0
  92. package/dist/cards-rNX1M4Xn.js.map +1 -0
  93. package/dist/cascader-B1MiqkBq.js +439 -0
  94. package/dist/cascader-B1MiqkBq.js.map +1 -0
  95. package/dist/chart-Darg_0Kv.js +162 -0
  96. package/dist/chart-Darg_0Kv.js.map +1 -0
  97. package/dist/{checkbox-CzYUTPeJ.js → checkbox-fflqmODR.js} +2 -2
  98. package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-fflqmODR.js.map} +1 -1
  99. package/dist/{choice-inputs-JLtij2y4.js → choice-inputs-zUgBZfE4.js} +258 -257
  100. package/dist/choice-inputs-zUgBZfE4.js.map +1 -0
  101. package/dist/{code-block-CGNaUtAE.js → code-block-BzmM9Eig.js} +8 -8
  102. package/dist/code-block-BzmM9Eig.js.map +1 -0
  103. package/dist/{collapsible-Do4G0zcC.js → collapsible-BkAI_XD4.js} +5 -5
  104. package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BkAI_XD4.js.map} +1 -1
  105. package/dist/{collection-content-C0e8SsTm.js → collection-content-gDh1v6O4.js} +3 -3
  106. package/dist/{collection-content-C0e8SsTm.js.map → collection-content-gDh1v6O4.js.map} +1 -1
  107. package/dist/combobox-BEx0vJgF.js +362 -0
  108. package/dist/combobox-BEx0vJgF.js.map +1 -0
  109. package/dist/{combobox-CBJDs6w_.js → combobox-BwzoXFSG.js} +254 -247
  110. package/dist/combobox-BwzoXFSG.js.map +1 -0
  111. package/dist/{command-D8NrBj-b.js → command-CrlPIL6m.js} +11 -11
  112. package/dist/command-CrlPIL6m.js.map +1 -0
  113. package/dist/{comments-Di4w0H_S.js → comments-Dmpp0YIc.js} +29 -29
  114. package/dist/{comments-Di4w0H_S.js.map → comments-Dmpp0YIc.js.map} +1 -1
  115. package/dist/components/base/action-menu/action-menu.d.ts +7 -1
  116. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  117. package/dist/components/base/cards/card.recipes.d.ts +6 -4
  118. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  119. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  120. package/dist/components/base/cards/smart-card.types.d.ts +3 -4
  121. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  122. package/dist/components/base/chart/chart.d.ts +6 -1
  123. package/dist/components/base/choice-inputs/choice-types.d.ts +1 -1
  124. package/dist/components/base/combobox/index.d.ts +4 -2
  125. package/dist/components/base/feedback/alert.d.ts +1 -1
  126. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  127. package/dist/components/base/forms/workflow.d.ts +7 -1
  128. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -0
  129. package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
  130. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  131. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  132. package/dist/components/base/navigation/page-header/page-header.d.ts +10 -3
  133. package/dist/components/base/popover/popover.d.ts +3 -3
  134. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  135. package/dist/components/base/sheet/sheet.d.ts +2 -0
  136. package/dist/components/base/sidebar/index.d.ts +1 -1
  137. package/dist/components/base/sidebar/sidebar.d.ts +27 -5
  138. package/dist/components/base/toaster/index.d.ts +1 -0
  139. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  140. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +3 -1
  141. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  142. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  143. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  144. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  145. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  146. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  147. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  148. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  149. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  150. package/dist/components/blocks/commerce/index.d.ts +7 -6
  151. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  152. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  153. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  154. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  155. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  156. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  157. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  158. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  159. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  160. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  161. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  162. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  163. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  164. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  165. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  166. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  167. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  168. package/dist/components/features/activities/activities.types.d.ts +8 -2
  169. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  170. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  171. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  172. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  173. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  174. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  175. package/dist/components/features/filters/filters.types.d.ts +3 -0
  176. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  177. package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
  178. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  179. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  180. package/dist/components/features/filters/utils/filter-utils.d.ts +21 -3
  181. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  182. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  183. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  184. package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
  185. package/dist/components/features/media-library/media-library.types.d.ts +14 -4
  186. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  187. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  188. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  189. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  190. package/dist/components/features/products/products.strings.d.ts +9 -1
  191. package/dist/components/features/products/products.types.d.ts +43 -6
  192. package/dist/components/features/resource/resource.d.ts +5 -1
  193. package/dist/components/features/resource/resource.types.d.ts +12 -1
  194. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  195. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  196. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  197. package/dist/components/features/table/table.types.d.ts +1 -1
  198. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  199. package/dist/components/layout/app-shell/index.d.ts +1 -1
  200. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  201. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  202. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  203. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  204. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  205. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  206. package/dist/components/layout/header/header.types.d.ts +6 -6
  207. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  208. package/dist/components/layout/page/index.d.ts +2 -1
  209. package/dist/components/layout/page/page.d.ts +1 -0
  210. package/dist/components/layout/page/page.strings.d.ts +11 -0
  211. package/dist/components/layout/page/page.types.d.ts +69 -17
  212. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  213. package/dist/components/layout/settings/settings.d.ts +9 -2
  214. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  215. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  216. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  217. package/dist/components/layout/sidebar/index.d.ts +2 -1
  218. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +36 -0
  219. package/dist/components/layout/sidebar/sidebar.context.d.ts +5 -7
  220. package/dist/components/layout/sidebar/sidebar.types.d.ts +48 -10
  221. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  222. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  223. package/dist/components/ui/alert-dialog.d.ts +2 -2
  224. package/dist/components/ui/combobox.d.ts +1 -1
  225. package/dist/components/ui/dialog.d.ts +2 -2
  226. package/dist/components/ui/overlay-layer.d.ts +18 -0
  227. package/dist/components/ui/sheet.d.ts +5 -1
  228. package/dist/components/ui/sidebar-state.d.ts +82 -0
  229. package/dist/components/ui/sidebar.d.ts +5 -17
  230. package/dist/{containers-CRmHf7GP.js → containers-CIxwbZt5.js} +26 -18
  231. package/dist/containers-CIxwbZt5.js.map +1 -0
  232. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  233. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  234. package/dist/{copyable-CnGCZdX4.js → copyable-DIznBqiT.js} +7 -7
  235. package/dist/{copyable-CnGCZdX4.js.map → copyable-DIznBqiT.js.map} +1 -1
  236. package/dist/{data-display-D4oujtx0.js → data-display-BdgCAw8T.js} +268 -277
  237. package/dist/data-display-BdgCAw8T.js.map +1 -0
  238. package/dist/{date-Q7jnXxpk.js → date-Cq8ioE4o.js} +5 -5
  239. package/dist/{date-Q7jnXxpk.js.map → date-Cq8ioE4o.js.map} +1 -1
  240. package/dist/{date-picker-zOt1oNss.js → date-picker-RlIzKom_.js} +446 -437
  241. package/dist/date-picker-RlIzKom_.js.map +1 -0
  242. package/dist/{date-pickers-cj8IXbDC.js → date-pickers-DY-CpXS1.js} +12 -12
  243. package/dist/{date-pickers-cj8IXbDC.js.map → date-pickers-DY-CpXS1.js.map} +1 -1
  244. package/dist/{display-BB4BL_-K.js → display-KsZLw9Ov.js} +9 -9
  245. package/dist/{display-BB4BL_-K.js.map → display-KsZLw9Ov.js.map} +1 -1
  246. package/dist/dropdown-menu-CLs8Lihj.js +194 -0
  247. package/dist/dropdown-menu-CLs8Lihj.js.map +1 -0
  248. package/dist/features/activities.js +302 -253
  249. package/dist/features/activities.js.map +1 -1
  250. package/dist/features/ai-chat.js +15 -14
  251. package/dist/features/ai-chat.js.map +1 -1
  252. package/dist/features/appointment-calendar.js +22 -22
  253. package/dist/features/appointment-calendar.js.map +1 -1
  254. package/dist/features/async-preview.js +11 -10
  255. package/dist/features/async-preview.js.map +1 -1
  256. package/dist/features/combobox.js +1 -1
  257. package/dist/features/comments.js +1 -1
  258. package/dist/features/data-view.js +13 -13
  259. package/dist/features/data-view.js.map +1 -1
  260. package/dist/features/email-composer.js +237 -238
  261. package/dist/features/email-composer.js.map +1 -1
  262. package/dist/features/event-calendar.js +140 -146
  263. package/dist/features/event-calendar.js.map +1 -1
  264. package/dist/features/filters.js +1 -1
  265. package/dist/features/global-search.js +167 -138
  266. package/dist/features/global-search.js.map +1 -1
  267. package/dist/features/kanban.js +6 -7
  268. package/dist/features/kanban.js.map +1 -1
  269. package/dist/features/map.js +269 -260
  270. package/dist/features/map.js.map +1 -1
  271. package/dist/features/media-library.js +375 -326
  272. package/dist/features/media-library.js.map +1 -1
  273. package/dist/features/mentions.js +1 -1
  274. package/dist/features/overlays.js +1 -1
  275. package/dist/features/products.js +1266 -1193
  276. package/dist/features/products.js.map +1 -1
  277. package/dist/features/questionnaire.js +13 -13
  278. package/dist/features/questionnaire.js.map +1 -1
  279. package/dist/features/resource-assignment.js +8 -8
  280. package/dist/features/resource.js +69 -66
  281. package/dist/features/resource.js.map +1 -1
  282. package/dist/features/rich-text-editor.js +2 -2
  283. package/dist/features/schema-form.js +13 -13
  284. package/dist/features/suggestions.js +3 -3
  285. package/dist/features/sync.js +3 -3
  286. package/dist/features/table.js +1 -1
  287. package/dist/features/theme-tweaker.js +94 -95
  288. package/dist/features/theme-tweaker.js.map +1 -1
  289. package/dist/{feedback-DZNL5Lg1.js → feedback-Dm4izqFn.js} +80 -79
  290. package/dist/feedback-Dm4izqFn.js.map +1 -0
  291. package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-DWcNcOjh.js} +4 -4
  292. package/dist/field-affordance-recipes-DWcNcOjh.js.map +1 -0
  293. package/dist/{filters-BcT-uoFy.js → filters-DzgSJpMK.js} +693 -645
  294. package/dist/filters-DzgSJpMK.js.map +1 -0
  295. package/dist/{form-field-CsgRmdit.js → form-field-BriWAXyg.js} +6 -6
  296. package/dist/{form-field-CsgRmdit.js.map → form-field-BriWAXyg.js.map} +1 -1
  297. package/dist/{form-sizing-NXgjkmBG.js → form-sizing-Bs2qFUeE.js} +4 -4
  298. package/dist/form-sizing-Bs2qFUeE.js.map +1 -0
  299. package/dist/{forms-BV5m5aQF.js → forms-C0RGnJTe.js} +17 -13
  300. package/dist/forms-C0RGnJTe.js.map +1 -0
  301. package/dist/{forms-numeric-Cd33AKbD.js → forms-numeric-DIhghX1Q.js} +86 -82
  302. package/dist/forms-numeric-DIhghX1Q.js.map +1 -0
  303. package/dist/{header-BA697l4a.js → header-DMMxG__r.js} +67 -63
  304. package/dist/header-DMMxG__r.js.map +1 -0
  305. package/dist/header.recipes-BigdJjw1.js +6 -0
  306. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  307. package/dist/{hooks-BQ-L7Uu2.js → hooks-DB6CJ4MR.js} +26 -14
  308. package/dist/hooks-DB6CJ4MR.js.map +1 -0
  309. package/dist/{icon-badge-COWbCCWu.js → icon-badge-DZF-YjQp.js} +4 -4
  310. package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-DZF-YjQp.js.map} +1 -1
  311. package/dist/index.js +4 -5
  312. package/dist/{input-Cdw4k0fb.js → input-CvyDQlY7.js} +8 -8
  313. package/dist/{input-Cdw4k0fb.js.map → input-CvyDQlY7.js.map} +1 -1
  314. package/dist/input-DMBwAZmr.js +21 -0
  315. package/dist/input-DMBwAZmr.js.map +1 -0
  316. package/dist/{item-BvZ2DR_x.js → item-DjCcM18E.js} +16 -16
  317. package/dist/item-DjCcM18E.js.map +1 -0
  318. package/dist/layout/app-shell.js +1 -1
  319. package/dist/layout/auth.js +1 -1
  320. package/dist/layout/containers.js +1 -1
  321. package/dist/layout/header.js +1 -1
  322. package/dist/layout/hooks.js +1 -1
  323. package/dist/layout/navigation.js +1 -1
  324. package/dist/layout/page.js +2 -2
  325. package/dist/layout/settings.js +1 -1
  326. package/dist/layout/sidebar.js +3 -3
  327. package/dist/layout/workspace.js +1 -1
  328. package/dist/layout.js +11 -11
  329. package/dist/lib/affordance-geometry.generated.d.ts +35 -35
  330. package/dist/lib/control-group-recipes.d.ts +5 -5
  331. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  332. package/dist/lib/motion-recipes.d.ts +3 -0
  333. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  334. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  335. package/dist/lib/portal-recipes.d.ts +3 -0
  336. package/dist/lib/token-merge.generated.d.ts +13 -10
  337. package/dist/lib/utils.js +1 -1
  338. package/dist/map-demo-tile.svg +1 -1
  339. package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C-vChPmE.js} +6 -6
  340. package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C-vChPmE.js.map} +1 -1
  341. package/dist/{mentions-RKOQaaIB.js → mentions-0_4nWuI-.js} +10 -10
  342. package/dist/{mentions-RKOQaaIB.js.map → mentions-0_4nWuI-.js.map} +1 -1
  343. package/dist/{message-INU2xsxu.js → message-g8p7eVtN.js} +7 -7
  344. package/dist/message-g8p7eVtN.js.map +1 -0
  345. package/dist/{metadata-list-qVV7AVxa.js → metadata-list-C3MkU-Om.js} +64 -64
  346. package/dist/metadata-list-C3MkU-Om.js.map +1 -0
  347. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  348. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  349. package/dist/navigation-C90-oQFq.js +255 -0
  350. package/dist/navigation-C90-oQFq.js.map +1 -0
  351. package/dist/{navigation-BQNcg1jT.js → navigation-DaRjthVk.js} +101 -82
  352. package/dist/navigation-DaRjthVk.js.map +1 -0
  353. package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  354. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  355. package/dist/{number-E_OiIfJz.js → number-CRU3kGuk.js} +5 -5
  356. package/dist/{number-E_OiIfJz.js.map → number-CRU3kGuk.js.map} +1 -1
  357. package/dist/overflow-tab-bar-IVFVQFV6.js +172 -0
  358. package/dist/overflow-tab-bar-IVFVQFV6.js.map +1 -0
  359. package/dist/overlays-BSgCtM2v.js +1013 -0
  360. package/dist/overlays-BSgCtM2v.js.map +1 -0
  361. package/dist/page-DUUKDAjo.js +331 -0
  362. package/dist/page-DUUKDAjo.js.map +1 -0
  363. package/dist/page-header-commands-7P3sfE9u.js +193 -0
  364. package/dist/page-header-commands-7P3sfE9u.js.map +1 -0
  365. package/dist/{pagination-Ch8X_47u.js → pagination-CgCjElfu.js} +7 -7
  366. package/dist/{pagination-Ch8X_47u.js.map → pagination-CgCjElfu.js.map} +1 -1
  367. package/dist/popover-B85RenIl.js +201 -0
  368. package/dist/popover-B85RenIl.js.map +1 -0
  369. package/dist/{popover-menu-BYaCdFhf.js → popover-menu-DlnQ2zlR.js} +7 -7
  370. package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-DlnQ2zlR.js.map} +1 -1
  371. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DdiEp0rd.js} +18 -11
  372. package/dist/popover.recipes-DdiEp0rd.js.map +1 -0
  373. package/dist/portal-recipes-BpsV_iRw.js +9 -0
  374. package/dist/portal-recipes-BpsV_iRw.js.map +1 -0
  375. package/dist/{primitives-Du64iDbb.js → primitives-ByWgGUgt.js} +5 -5
  376. package/dist/{primitives-Du64iDbb.js.map → primitives-ByWgGUgt.js.map} +1 -1
  377. package/dist/primitives.js +4 -4
  378. package/dist/{progress-BvF2oCdV.js → progress-BJhQP9WX.js} +9 -9
  379. package/dist/{progress-BvF2oCdV.js.map → progress-BJhQP9WX.js.map} +1 -1
  380. package/dist/{receipt-D789Jwyy.js → receipt-tOc7B3hw.js} +7 -7
  381. package/dist/receipt-tOc7B3hw.js.map +1 -0
  382. package/dist/{rich-text-CLJEf76s.js → rich-text-Dth5E882.js} +3 -3
  383. package/dist/{rich-text-CLJEf76s.js.map → rich-text-Dth5E882.js.map} +1 -1
  384. package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-C1fOjBTd.js} +429 -430
  385. package/dist/rich-text-editor-C1fOjBTd.js.map +1 -0
  386. package/dist/{rich-text-editor-toolbar-L__e4x47.js → rich-text-editor-toolbar-laT3tpBT.js} +32 -28
  387. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +1 -0
  388. package/dist/{scroll-area-La5RXsEk.js → scroll-area-B0dB2cBi.js} +2 -2
  389. package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-B0dB2cBi.js.map} +1 -1
  390. package/dist/{separator-DAEV0w65.js → separator-Bb17I4pu.js} +2 -2
  391. package/dist/{separator-DAEV0w65.js.map → separator-Bb17I4pu.js.map} +1 -1
  392. package/dist/{separator-GNfPG-90.js → separator-Ct_WSWTJ.js} +3 -3
  393. package/dist/{separator-GNfPG-90.js.map → separator-Ct_WSWTJ.js.map} +1 -1
  394. package/dist/services/actions.js +1 -1
  395. package/dist/{settings-BA2iboic.js → settings-Bar5wiSo.js} +31 -38
  396. package/dist/settings-Bar5wiSo.js.map +1 -0
  397. package/dist/sheet-BGPERY55.js +250 -0
  398. package/dist/sheet-BGPERY55.js.map +1 -0
  399. package/dist/sidebar-D-JYMMbY.js +686 -0
  400. package/dist/sidebar-D-JYMMbY.js.map +1 -0
  401. package/dist/sidebar-f9gRWXIR.js +1001 -0
  402. package/dist/sidebar-f9gRWXIR.js.map +1 -0
  403. package/dist/skeleton-BapcJd9C.js +265 -0
  404. package/dist/skeleton-BapcJd9C.js.map +1 -0
  405. package/dist/smart-card-CW0hjetE.js +617 -0
  406. package/dist/smart-card-CW0hjetE.js.map +1 -0
  407. package/dist/{structure-C0V0_Fyf.js → structure-DuxKl954.js} +2 -2
  408. package/dist/{structure-C0V0_Fyf.js.map → structure-DuxKl954.js.map} +1 -1
  409. package/dist/style.css +1 -1
  410. package/dist/{table-CpvnzJn9.js → table-B4TE7iOV.js} +3 -3
  411. package/dist/{table-CpvnzJn9.js.map → table-B4TE7iOV.js.map} +1 -1
  412. package/dist/{table-DH7rozUv.js → table-CFOWY9pQ.js} +394 -388
  413. package/dist/table-CFOWY9pQ.js.map +1 -0
  414. package/dist/{tabs-eqVsJZWO.js → tabs-e7ko9S2o.js} +11 -11
  415. package/dist/tabs-e7ko9S2o.js.map +1 -0
  416. package/dist/{text-inputs-DXItiR0O.js → text-inputs-B1culiSK.js} +17 -17
  417. package/dist/text-inputs-B1culiSK.js.map +1 -0
  418. package/dist/theme.css +40 -37
  419. package/dist/{timelines-DmtztAY_.js → timelines-D3Sl9ueq.js} +13 -12
  420. package/dist/timelines-D3Sl9ueq.js.map +1 -0
  421. package/dist/tooltip-8wz5S_Zr.js +113 -0
  422. package/dist/tooltip-8wz5S_Zr.js.map +1 -0
  423. package/dist/{tree-CV11PURP.js → tree-CzUJHnFs.js} +8 -8
  424. package/dist/{tree-CV11PURP.js.map → tree-CzUJHnFs.js.map} +1 -1
  425. package/dist/typography/rich-text.js +1 -1
  426. package/dist/{typography-CSyJrh28.js → typography-BQnine1k.js} +12 -12
  427. package/dist/{typography-CSyJrh28.js.map → typography-BQnine1k.js.map} +1 -1
  428. package/dist/typography.js +1 -1
  429. package/dist/ui-provider-C-74NVLc.js +178 -0
  430. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  431. package/dist/ui-provider.js +2 -3
  432. package/dist/{upload-C9SA0X-8.js → upload-BOW6U2tI.js} +25 -24
  433. package/dist/upload-BOW6U2tI.js.map +1 -0
  434. package/dist/{upload-queue-DhQJiSRc.js → upload-queue-qUXn1ykN.js} +16 -14
  435. package/dist/upload-queue-qUXn1ykN.js.map +1 -0
  436. package/dist/{usage-card-DVTRDmGz.js → usage-card-BeSLY0i0.js} +24 -17
  437. package/dist/usage-card-BeSLY0i0.js.map +1 -0
  438. package/dist/{utils-CF3c95Io.js → utils-B6kKb8jB.js} +237 -141
  439. package/dist/utils-B6kKb8jB.js.map +1 -0
  440. package/dist/value-inputs-skdVB2zh.js +980 -0
  441. package/dist/value-inputs-skdVB2zh.js.map +1 -0
  442. package/dist/{value-typography-ClupF0Gz.js → value-typography-uAmWUAL1.js} +2 -2
  443. package/dist/{value-typography-ClupF0Gz.js.map → value-typography-uAmWUAL1.js.map} +1 -1
  444. package/dist/{workspace-9EFVXUyk.js → workspace-DHeHv0qw.js} +50 -49
  445. package/dist/workspace-DHeHv0qw.js.map +1 -0
  446. package/docs/consumer-skill/SKILL.md +4 -3
  447. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  448. package/docs/consumer-skill/examples/app-layout.tsx +52 -1
  449. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  450. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  451. package/docs/consumer-skill/examples/detail.tsx +5 -4
  452. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  453. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  454. package/docs/consumer-skill/examples/manifest.json +38 -1
  455. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  456. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  457. package/docs/consumer-skill/examples/rhf-edit-page.tsx +1 -1
  458. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
  459. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  460. package/docs/consumer-skill/references/agents-md.md +19 -17
  461. package/docs/consumer-skill/references/analytics.md +18 -1
  462. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  463. package/docs/consumer-skill/references/component-contracts.json +7131 -1754
  464. package/docs/consumer-skill/references/composition-mapping.md +17 -3
  465. package/docs/consumer-skill/references/composition.md +159 -31
  466. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  467. package/docs/consumer-skill/references/custom-composition.md +261 -0
  468. package/docs/consumer-skill/references/data-reading.md +79 -0
  469. package/docs/consumer-skill/references/design-contract.md +11 -9
  470. package/docs/consumer-skill/references/discovery.md +27 -3
  471. package/docs/consumer-skill/references/domain-structures.md +124 -0
  472. package/docs/consumer-skill/references/installation.md +15 -4
  473. package/docs/consumer-skill/references/integration.md +35 -0
  474. package/docs/consumer-skill/references/product-composition.md +94 -0
  475. package/docs/consumer-skill/references/public-api.json +2881 -420
  476. package/docs/consumer-skill/references/review.md +39 -2
  477. package/docs/consumer-skill/references/rhf-workflows.md +7 -0
  478. package/docs/consumer-skill/references/screen-archetypes.md +19 -7
  479. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  480. package/docs/consumer-skill/references/theming.md +17 -18
  481. package/docs/consumer-skill/references/tokens.json +9 -9
  482. package/docs/consumer-skill/references/view-craft.md +153 -0
  483. package/docs/consumer-skill/references/view-spec.md +73 -0
  484. package/docs/consumer-skill/references/workflows.md +7 -1
  485. package/docs/consumer-skill/scripts/composition-policy.mjs +39 -3
  486. package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
  487. package/docs/consumer-skill/scripts/composition.mjs +61 -5
  488. package/docs/consumer-skill/scripts/discovery.mjs +54 -0
  489. package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
  490. package/docs/consumer-skill/scripts/inspection.mjs +73 -18
  491. package/docs/consumer-skill/scripts/setup-skills.mjs +41 -6
  492. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  493. package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
  494. package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
  495. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  496. package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
  497. package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
  498. package/package.json +1 -1
  499. package/dist/accordion-96o0pN62.js.map +0 -1
  500. package/dist/action-menu-CHgs8vmj.js.map +0 -1
  501. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
  502. package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
  503. package/dist/app-shell-D63ATkIK.js +0 -237
  504. package/dist/app-shell-D63ATkIK.js.map +0 -1
  505. package/dist/auth-D2FVZ1MH.js.map +0 -1
  506. package/dist/avatar-DWO_HHhB.js.map +0 -1
  507. package/dist/base/cascader.js.map +0 -1
  508. package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
  509. package/dist/button-DkmK-z8E.js.map +0 -1
  510. package/dist/buttons-BbfzgczK.js.map +0 -1
  511. package/dist/cards-4JTWqvVe.js +0 -68
  512. package/dist/cards-4JTWqvVe.js.map +0 -1
  513. package/dist/chart-C19flDQb.js +0 -155
  514. package/dist/chart-C19flDQb.js.map +0 -1
  515. package/dist/choice-inputs-JLtij2y4.js.map +0 -1
  516. package/dist/code-block-CGNaUtAE.js.map +0 -1
  517. package/dist/combobox-CBJDs6w_.js.map +0 -1
  518. package/dist/combobox-hbhSS18O.js +0 -355
  519. package/dist/combobox-hbhSS18O.js.map +0 -1
  520. package/dist/command-D8NrBj-b.js.map +0 -1
  521. package/dist/containers-CRmHf7GP.js.map +0 -1
  522. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  523. package/dist/data-display-D4oujtx0.js.map +0 -1
  524. package/dist/date-picker-zOt1oNss.js.map +0 -1
  525. package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
  526. package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
  527. package/dist/feedback-DZNL5Lg1.js.map +0 -1
  528. package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
  529. package/dist/filters-BcT-uoFy.js.map +0 -1
  530. package/dist/form-sizing-NXgjkmBG.js.map +0 -1
  531. package/dist/forms-BV5m5aQF.js.map +0 -1
  532. package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
  533. package/dist/header-BA697l4a.js.map +0 -1
  534. package/dist/hooks-BQ-L7Uu2.js.map +0 -1
  535. package/dist/input-DOPL5_QE.js +0 -21
  536. package/dist/input-DOPL5_QE.js.map +0 -1
  537. package/dist/item-BvZ2DR_x.js.map +0 -1
  538. package/dist/message-INU2xsxu.js.map +0 -1
  539. package/dist/metadata-list-qVV7AVxa.js.map +0 -1
  540. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  541. package/dist/navigation-BQNcg1jT.js.map +0 -1
  542. package/dist/navigation-DLF3E1IC.js +0 -145
  543. package/dist/navigation-DLF3E1IC.js.map +0 -1
  544. package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
  545. package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
  546. package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
  547. package/dist/overlays-BlKynmde.js +0 -1004
  548. package/dist/overlays-BlKynmde.js.map +0 -1
  549. package/dist/page-CIwNUtGr.js +0 -227
  550. package/dist/page-CIwNUtGr.js.map +0 -1
  551. package/dist/page-header-commands-DFMlNYzN.js +0 -128
  552. package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
  553. package/dist/popover-uwzX2vo7.js +0 -198
  554. package/dist/popover-uwzX2vo7.js.map +0 -1
  555. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  556. package/dist/receipt-D789Jwyy.js.map +0 -1
  557. package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
  558. package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
  559. package/dist/settings-BA2iboic.js.map +0 -1
  560. package/dist/sheet-DoAxTb2J.js +0 -213
  561. package/dist/sheet-DoAxTb2J.js.map +0 -1
  562. package/dist/sidebar-ByqKR_W5.js +0 -512
  563. package/dist/sidebar-ByqKR_W5.js.map +0 -1
  564. package/dist/sidebar-D2iSnGJ7.js +0 -619
  565. package/dist/sidebar-D2iSnGJ7.js.map +0 -1
  566. package/dist/skeleton-CUj8O5Bd.js +0 -264
  567. package/dist/skeleton-CUj8O5Bd.js.map +0 -1
  568. package/dist/smart-card-CqkzQsK-.js +0 -614
  569. package/dist/smart-card-CqkzQsK-.js.map +0 -1
  570. package/dist/table-DH7rozUv.js.map +0 -1
  571. package/dist/tabs-eqVsJZWO.js.map +0 -1
  572. package/dist/text-inputs-DXItiR0O.js.map +0 -1
  573. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  574. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  575. package/dist/timelines-DmtztAY_.js.map +0 -1
  576. package/dist/tooltip-B4hjKtoV.js +0 -111
  577. package/dist/tooltip-B4hjKtoV.js.map +0 -1
  578. package/dist/ui-provider-CQCuCBcy.js +0 -136
  579. package/dist/ui-provider-CQCuCBcy.js.map +0 -1
  580. package/dist/upload-C9SA0X-8.js.map +0 -1
  581. package/dist/upload-queue-DhQJiSRc.js.map +0 -1
  582. package/dist/usage-card-DVTRDmGz.js.map +0 -1
  583. package/dist/use-mobile-vaLKwgyf.js +0 -15
  584. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  585. package/dist/utils-CF3c95Io.js.map +0 -1
  586. package/dist/value-inputs-C0o70p-U.js +0 -980
  587. package/dist/value-inputs-C0o70p-U.js.map +0 -1
  588. package/dist/workspace-9EFVXUyk.js.map +0 -1
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
  import { useStrings as e } from "./lib/strings.js";
3
- import { t } from "./utils-CF3c95Io.js";
4
- import { t as n } from "./affordance-geometry.generated-B8yGOr8-.js";
5
- import { c as r, o as i } from "./typography-CSyJrh28.js";
3
+ import { t } from "./utils-B6kKb8jB.js";
4
+ import { t as n } from "./affordance-geometry.generated-P-aVJisu.js";
5
+ import { c as r, o as i } from "./typography-BQnine1k.js";
6
6
  import { c as a } from "./text.styles-B64My8RZ.js";
7
- import { i as o, n as s, t as c } from "./tooltip-B4hjKtoV.js";
7
+ import { i as o, n as s, t as c } from "./tooltip-8wz5S_Zr.js";
8
8
  import { c as l, s as u } from "./structure.recipes-BB4-n58V.js";
9
- import { r as d, t as f } from "./structure-C0V0_Fyf.js";
10
- import { _ as p, c as m, l as h, m as g, o as _, p as v, s as y } from "./primitives-Du64iDbb.js";
11
- import { r as b } from "./number-E_OiIfJz.js";
12
- import { a as x, r as S, t as C } from "./date-Q7jnXxpk.js";
13
- import { t as w } from "./badge-DErMA7ul.js";
14
- import { t as T } from "./separator-GNfPG-90.js";
15
- import { n as E } from "./field-affordance-recipes-DjwGx8eM.js";
9
+ import { r as d, t as f } from "./structure-DuxKl954.js";
10
+ import { _ as p, c as m, l as h, m as g, o as _, p as v, s as y } from "./primitives-ByWgGUgt.js";
11
+ import { r as b } from "./number-CRU3kGuk.js";
12
+ import { a as x, r as S, t as C } from "./date-Cq8ioE4o.js";
13
+ import { t as w } from "./badge-xIiV_E7f.js";
14
+ import { t as T } from "./separator-Ct_WSWTJ.js";
15
+ import { n as E } from "./field-affordance-recipes-DWcNcOjh.js";
16
16
  import D from "react";
17
17
  import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
18
18
  import { Info as j } from "lucide-react";
@@ -155,34 +155,34 @@ var L = {
155
155
  4: "grid-cols-4"
156
156
  },
157
157
  sm: {
158
- 1: "@min-[40rem]/metadata-list:grid-cols-1",
159
- 2: "@min-[40rem]/metadata-list:grid-cols-2",
160
- 3: "@min-[40rem]/metadata-list:grid-cols-3",
161
- 4: "@min-[40rem]/metadata-list:grid-cols-4"
158
+ 1: "@min-[22rem]/metadata-list:grid-cols-1",
159
+ 2: "@min-[22rem]/metadata-list:grid-cols-2",
160
+ 3: "@min-[22rem]/metadata-list:grid-cols-3",
161
+ 4: "@min-[22rem]/metadata-list:grid-cols-4"
162
162
  },
163
163
  md: {
164
- 1: "@min-[48rem]/metadata-list:grid-cols-1",
165
- 2: "@min-[48rem]/metadata-list:grid-cols-2",
166
- 3: "@min-[48rem]/metadata-list:grid-cols-3",
167
- 4: "@min-[48rem]/metadata-list:grid-cols-4"
164
+ 1: "@min-[28rem]/metadata-list:grid-cols-1",
165
+ 2: "@min-[28rem]/metadata-list:grid-cols-2",
166
+ 3: "@min-[28rem]/metadata-list:grid-cols-3",
167
+ 4: "@min-[28rem]/metadata-list:grid-cols-4"
168
168
  },
169
169
  lg: {
170
- 1: "@min-[64rem]/metadata-list:grid-cols-1",
171
- 2: "@min-[64rem]/metadata-list:grid-cols-2",
172
- 3: "@min-[64rem]/metadata-list:grid-cols-3",
173
- 4: "@min-[64rem]/metadata-list:grid-cols-4"
170
+ 1: "@min-[38rem]/metadata-list:grid-cols-1",
171
+ 2: "@min-[38rem]/metadata-list:grid-cols-2",
172
+ 3: "@min-[38rem]/metadata-list:grid-cols-3",
173
+ 4: "@min-[38rem]/metadata-list:grid-cols-4"
174
174
  },
175
175
  xl: {
176
- 1: "@min-[80rem]/metadata-list:grid-cols-1",
177
- 2: "@min-[80rem]/metadata-list:grid-cols-2",
178
- 3: "@min-[80rem]/metadata-list:grid-cols-3",
179
- 4: "@min-[80rem]/metadata-list:grid-cols-4"
176
+ 1: "@min-[52rem]/metadata-list:grid-cols-1",
177
+ 2: "@min-[52rem]/metadata-list:grid-cols-2",
178
+ 3: "@min-[52rem]/metadata-list:grid-cols-3",
179
+ 4: "@min-[52rem]/metadata-list:grid-cols-4"
180
180
  },
181
181
  "2xl": {
182
- 1: "@min-[96rem]/metadata-list:grid-cols-1",
183
- 2: "@min-[96rem]/metadata-list:grid-cols-2",
184
- 3: "@min-[96rem]/metadata-list:grid-cols-3",
185
- 4: "@min-[96rem]/metadata-list:grid-cols-4"
182
+ 1: "@min-[64rem]/metadata-list:grid-cols-1",
183
+ 2: "@min-[64rem]/metadata-list:grid-cols-2",
184
+ 3: "@min-[64rem]/metadata-list:grid-cols-3",
185
+ 4: "@min-[64rem]/metadata-list:grid-cols-4"
186
186
  }
187
187
  };
188
188
  function z(e) {
@@ -199,37 +199,37 @@ function B({ children: e }) {
199
199
  children: e
200
200
  });
201
201
  }
202
- var V = (e, t) => e.id ? e.id : `metadata-${typeof e.label == "string" ? e.label : `${t}`}-${t}`;
203
- function H(e) {
202
+ var V = "[&>.copyable--component]:-my-space-sm [&>.badge--component]:-my-space-xs", H = "[&>.link--component]:leading-tight", U = t(V, H), W = (e, t) => e.id ? e.id : `metadata-${typeof e.label == "string" ? e.label : `${t}`}-${t}`;
203
+ function G(e) {
204
204
  return typeof e == "string" || typeof e == "number";
205
205
  }
206
- function U(e) {
206
+ function K(e) {
207
207
  return typeof e == "object" && !!e && !D.isValidElement(e) && !Array.isArray(e) && ("kind" in e || "node" in e || "value" in e);
208
208
  }
209
- function W({ value: e, isEmptyValue: n, emptyLabel: r, valueBase: i }) {
210
- return U(e) ? e.kind === "node" ? /* @__PURE__ */ k(I, { ...e }) : /* @__PURE__ */ k(I, {
209
+ function q({ value: e, isEmptyValue: n, emptyLabel: r, valueBase: i }) {
210
+ return K(e) ? e.kind === "node" ? /* @__PURE__ */ k(I, { ...e }) : /* @__PURE__ */ k(I, {
211
211
  ...e,
212
212
  emptyLabel: e.emptyLabel ?? r,
213
213
  className: t(i, e.className)
214
- }) : H(e) ? /* @__PURE__ */ k(I, {
214
+ }) : G(e) ? /* @__PURE__ */ k(I, {
215
215
  value: e,
216
216
  kind: n ? "empty" : "text",
217
217
  emptyLabel: r,
218
218
  className: i
219
219
  }) : e;
220
220
  }
221
- function G({ item: e, valueBase: t, renderedClassName: n, tag: r = "div", emptyLabel: i }) {
221
+ function J({ item: e, valueBase: t, renderedClassName: n, tag: r = "div", emptyLabel: i }) {
222
222
  return typeof e.render == "function" ? /* @__PURE__ */ k(r, {
223
223
  className: n,
224
224
  children: e.render(e)
225
- }) : W({
225
+ }) : q({
226
226
  value: e.value ?? i,
227
227
  isEmptyValue: e.value === null || e.value === void 0,
228
228
  emptyLabel: i,
229
229
  valueBase: t
230
230
  });
231
231
  }
232
- function K({ triggerProps: e, ariaLabel: r }) {
232
+ function Y({ triggerProps: e, ariaLabel: r }) {
233
233
  let { className: i, ...a } = e;
234
234
  return /* @__PURE__ */ k("button", {
235
235
  ...a,
@@ -242,8 +242,8 @@ function K({ triggerProps: e, ariaLabel: r }) {
242
242
  })
243
243
  });
244
244
  }
245
- function q({ item: e, strings: t }) {
246
- return e.tooltip === null || e.tooltip === void 0 ? null : /* @__PURE__ */ A(c, { children: [/* @__PURE__ */ k(o, { render: (n) => /* @__PURE__ */ k(K, {
245
+ function X({ item: e, strings: t }) {
246
+ return e.tooltip === null || e.tooltip === void 0 ? null : /* @__PURE__ */ A(c, { children: [/* @__PURE__ */ k(o, { render: (n) => /* @__PURE__ */ k(Y, {
247
247
  triggerProps: n,
248
248
  ariaLabel: typeof e.label == "string" ? t.formatInfoAriaLabel(e.label) : t.infoFallback
249
249
  }) }), /* @__PURE__ */ k(s, {
@@ -257,11 +257,11 @@ function q({ item: e, strings: t }) {
257
257
  })
258
258
  })] });
259
259
  }
260
- function J({ item: e, isCompact: n }) {
260
+ function Z({ item: e, isCompact: n }) {
261
261
  let r = e.icon;
262
262
  return r ? /* @__PURE__ */ k(r, { className: t("flex-shrink-0 self-center text-muted-foreground", n ? "size-icon-sm" : "size-icon") }) : null;
263
263
  }
264
- function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "default", emptyLabel: p = "—", title: m, titleSeparator: h = !1, className: g, layout: _ = "grid", separator: v = ": ", itemSeparator: y = !1, valueAlign: b = "start", strings: x }) {
264
+ function Q({ items: n, columns: o = 2, adaptTo: s = "container", density: c = "default", emptyLabel: p = "—", title: m, titleSeparator: h = !1, className: g, layout: _ = "grid", separator: v = ": ", itemSeparator: y = !1, valueAlign: b = "start", strings: x }) {
265
265
  let S = e(M, x), C = D.useMemo(() => n.filter(Boolean), [n]);
266
266
  if (C.length === 0) return null;
267
267
  let w = c === "compact", E = "metadata-list--value text-sm", j = m != null, N = j && h, P = t("metadata-list--component", "metadata-list-container @container/metadata-list", g), F = /* @__PURE__ */ A(O, { children: [!!j && /* @__PURE__ */ k(i, {
@@ -286,9 +286,9 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
286
286
  direction: "horizontal",
287
287
  align: "baseline",
288
288
  gap: "xs",
289
- className: "metadata-list--item min-w-0 [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-center",
289
+ className: t("metadata-list--item min-w-0 [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-center", V),
290
290
  children: [
291
- /* @__PURE__ */ k(J, {
291
+ /* @__PURE__ */ k(Z, {
292
292
  item: n,
293
293
  isCompact: w
294
294
  }),
@@ -300,7 +300,7 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
300
300
  className: "max-w-full shrink-0",
301
301
  children: [
302
302
  /* @__PURE__ */ k(B, { children: n.label }),
303
- /* @__PURE__ */ k(q, {
303
+ /* @__PURE__ */ k(X, {
304
304
  item: n,
305
305
  strings: S
306
306
  }),
@@ -312,12 +312,12 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
312
312
  })
313
313
  ]
314
314
  }),
315
- G({
315
+ J({
316
316
  item: n,
317
317
  tag: "span",
318
318
  emptyLabel: n.emptyLabel ?? p,
319
319
  valueBase: t(E, "leading-tight"),
320
- renderedClassName: t(E, a({
320
+ renderedClassName: t(E, U, a({
321
321
  type: "inherit",
322
322
  size: "sm",
323
323
  lineHeight: "tight"
@@ -331,7 +331,7 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
331
331
  "aria-hidden": "true",
332
332
  className: "metadata-list--item-separator select-none",
333
333
  children: e
334
- })] }, V(n, i));
334
+ })] }, W(n, i));
335
335
  })
336
336
  })]
337
337
  });
@@ -352,23 +352,23 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
352
352
  children: [/* @__PURE__ */ A("dt", {
353
353
  className: "flex min-w-0 items-center gap-space-sm",
354
354
  children: [
355
- /* @__PURE__ */ k(J, {
355
+ /* @__PURE__ */ k(Z, {
356
356
  item: s,
357
357
  isCompact: w
358
358
  }),
359
359
  /* @__PURE__ */ k(B, { children: s.label }),
360
- /* @__PURE__ */ k(q, {
360
+ /* @__PURE__ */ k(X, {
361
361
  item: s,
362
362
  strings: S
363
363
  })
364
364
  ]
365
365
  }), /* @__PURE__ */ A("dd", {
366
- className: t("m-0 grid min-w-0 gap-dense break-words [overflow-wrap:anywhere] [&>*]:max-w-full [&>*]:min-w-0", o, n ? "justify-items-end [&>.badge--component]:justify-self-end" : "justify-items-start [&>.badge--component]:justify-self-start"),
367
- children: [G({
366
+ className: t("m-0 grid min-w-0 gap-dense break-words [overflow-wrap:anywhere] [&>*]:max-w-full [&>*]:min-w-0", V, o, n ? "justify-items-end [&>.badge--component]:justify-self-end" : "justify-items-start [&>.badge--component]:justify-self-start"),
367
+ children: [J({
368
368
  item: s,
369
369
  emptyLabel: s.emptyLabel ?? p,
370
370
  valueBase: t(E, o, "break-words leading-tight"),
371
- renderedClassName: t(E, "break-words", a({
371
+ renderedClassName: t(E, "break-words", U, a({
372
372
  type: "inherit",
373
373
  size: "sm",
374
374
  lineHeight: "tight",
@@ -383,7 +383,7 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
383
383
  children: s.description
384
384
  })]
385
385
  })]
386
- }, V(s, c)))
386
+ }, W(s, c)))
387
387
  })]
388
388
  });
389
389
  }
@@ -403,22 +403,22 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
403
403
  /* @__PURE__ */ A("div", {
404
404
  className: "flex min-w-0 items-center gap-space-sm",
405
405
  children: [
406
- /* @__PURE__ */ k(J, {
406
+ /* @__PURE__ */ k(Z, {
407
407
  item: e,
408
408
  isCompact: w
409
409
  }),
410
410
  /* @__PURE__ */ k(B, { children: e.label }),
411
- /* @__PURE__ */ k(q, {
411
+ /* @__PURE__ */ k(X, {
412
412
  item: e,
413
413
  strings: S
414
414
  })
415
415
  ]
416
416
  }),
417
- G({
417
+ J({
418
418
  item: e,
419
419
  emptyLabel: e.emptyLabel ?? p,
420
420
  valueBase: t(E, "leading-tight"),
421
- renderedClassName: t(E, a({
421
+ renderedClassName: t(E, H, a({
422
422
  type: "inherit",
423
423
  size: "sm",
424
424
  lineHeight: "tight"
@@ -432,12 +432,12 @@ function Y({ items: n, columns: o = 2, adaptTo: s = "viewport", density: c = "de
432
432
  children: e.description
433
433
  })
434
434
  ]
435
- }, V(e, n)))
435
+ }, W(e, n)))
436
436
  })]
437
437
  });
438
438
  }
439
- Y.displayName = "MetadataList";
439
+ Q.displayName = "MetadataList";
440
440
  //#endregion
441
- export { I as n, M as r, Y as t };
441
+ export { I as n, M as r, Q as t };
442
442
 
443
- //# sourceMappingURL=metadata-list-qVV7AVxa.js.map
443
+ //# sourceMappingURL=metadata-list-C3MkU-Om.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-list-C3MkU-Om.js","names":["_Fragment","Link","DateValue","_Fragment","affordanceGeometry","Text","DisplayLabel","textVariants","TooltipTrigger","TooltipContent","Tooltip","resolveResponsiveEntries","compileResponsiveClasses","Grid","Stack","Value","Phone","Url","MonoValue","Email","EmptyValue","Link$1","Money","Time","DateTime","DatePrimitive","Badge","Separator","fieldAffordanceRecipes","React","Fragment$1","defaultMetadataListStrings","label","isEmpty","value","renderEmptyValue","cn","className","emptyLabel","assertNever","MetadataValue","props","metadataColumnRecipes","metadataContainerColumns","resolveMetadataColumns","columns","MetadataLabel","inlineControlBleed","renderedLinkLeading","renderedValueClasses","resolveKey","item","index","isPrimitiveMetadataValue","isMetadataValueDescriptor","renderMetadataValue","valueBase","isEmptyValue","renderItemValue","Tag","renderedClassName","MetadataInfoTrigger","triggerProps","ariaLabel","Info","MetadataItemInfo","strings","MetadataItemIcon","Icon","isCompact","MetadataList","stringsProp","useStrings","list","items","density","hasTitle","title","shouldShowSeparator","titleSeparator","rootClassName","head","layout","itemSeparatorText","itemSeparator","showItemSeparator","separator","rowPaddingY","isEndAligned","valueAlign","rowTrack","valueAlignClassName","adaptTo"],"sources":["../src/components/base/metadata-list/metadata-list.strings.ts","../src/components/base/metadata-list/metadata-value.tsx","../src/components/base/metadata-list/metadata-list.tsx"],"sourcesContent":["/**\n * Default user-facing strings for `<MetadataList>`.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <MetadataList strings={{ infoFallback: t('metadata.info') }} … />\n */\n\nexport interface MetadataListStrings {\n\t/**\n\t * Suffix appended to the label when generating the tooltip-trigger\n\t * `aria-label` (\"<label> info\"). Receives the label as the first arg\n\t * so consumers can localise the full template.\n\t */\n\tformatInfoAriaLabel: (label: string) => string;\n\t/** Fallback `aria-label` used when the field label is not a plain string. */\n\tinfoFallback: string;\n}\n\nexport const defaultMetadataListStrings: MetadataListStrings = {\n\tformatInfoAriaLabel: (label) => `${label} info`,\n\tinfoFallback: 'Info',\n};\n","/**\n * MetadataValue — primitive-backed adapter for typed label/value facts.\n *\n * Each descriptor kind exposes only the fields its primitive consumes. Custom\n * `node` values remain untouched so app-owned composition keeps its identity.\n */\nimport type { ReactNode } from 'react';\nimport type { Locale } from 'date-fns';\n\nimport { Badge, type BadgeProps } from '../badge';\nimport {\n\tDate as DateValue,\n\tDateTime,\n\tEmail,\n\tEmptyValue,\n\tLink,\n\tMoney,\n\tMonoValue,\n\tPhone,\n\tTime,\n\tUrl,\n\tValue,\n\ttype DateInput,\n\ttype DatePreset,\n\ttype MoneyProps,\n\ttype TimeProps,\n} from '../../primitives';\nimport { EMPTY } from '../../../lib/format';\nimport { cn } from '../../../lib/utils';\n\nexport type MetadataValueKind =\n\t| 'text'\n\t| 'mono'\n\t| 'email'\n\t| 'phone'\n\t| 'url'\n\t| 'link'\n\t| 'date'\n\t| 'time'\n\t| 'datetime'\n\t| 'money'\n\t| 'badge'\n\t| 'node'\n\t| 'empty';\n\ntype MetadataDisplayValue = Exclude<ReactNode, null | undefined>;\ntype MetadataDateInput = Exclude<DateInput, null | undefined>;\n/** Styling hook shared by every descriptor. */\ntype MetadataDescriptorBase = {\n\t/** Merged onto the rendered value. */\n\tclassName?: string;\n};\n/** Empty handling shared by every descriptor that can receive a blank value. */\ntype MetadataValueFallback = {\n\t/** Copy shown when the value is empty. Defaults to an em dash. */\n\temptyLabel?: ReactNode;\n};\n/** Escape hatch for descriptors whose value can be rendered by the caller. */\ntype MetadataDisplayOverride = {\n\t/** Pre-rendered content used verbatim, bypassing this descriptor's formatting. */\n\tdisplay?: ReactNode;\n};\n\nexport type MetadataTextValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** Plain text. The default when `kind` is omitted. */\n\tkind?: 'text';\n\t/** The value to show. */\n\tvalue: MetadataDisplayValue;\n};\n\nexport type MetadataMonoValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** Monospace, for ids, hashes, and codes. */\n\tkind: 'mono';\n\t/** The value to show. */\n\tvalue: MetadataDisplayValue;\n};\n\nexport type MetadataContactValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** Contact value, rendered as the matching `mailto:`, `tel:`, or external link. */\n\tkind: 'email' | 'phone' | 'url';\n\t/** The address, number, or URL. */\n\tvalue: string;\n};\n\nexport type MetadataLinkValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** An arbitrary link, where text and destination differ. */\n\tkind: 'link';\n\t/** Destination for the entry, when it navigates. */\n\thref: string;\n\t/** Link text. Falls back to `href` when omitted. */\n\tvalue?: MetadataDisplayValue;\n};\n\nexport type MetadataDateValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A calendar date. */\n\tkind: 'date';\n\t/** The date to format. */\n\tvalue: MetadataDateInput;\n\t/** date-fns `Locale` for formatting. */\n\tdateLocale?: Locale;\n\t/** date-fns pattern, overriding `datePreset`. */\n\tdateFormat?: string;\n\t/** Named date length. */\n\tdatePreset?: DatePreset;\n};\n\nexport type MetadataTimeValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A time of day. */\n\tkind: 'time';\n\t/** The time to format. */\n\tvalue: MetadataDateInput;\n\t/** date-fns `Locale` for formatting. */\n\tdateLocale?: Locale;\n\t/** date-fns pattern, overriding `timePreset`. */\n\ttimeFormat?: string;\n\t/** Named time length. */\n\ttimePreset?: TimeProps['preset'];\n};\n\nexport type MetadataDateTimeValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\tkind: 'datetime';\n\t/** The instant to format. */\n\tvalue: MetadataDateInput;\n\t/** date-fns `Locale` for formatting. */\n\tdateLocale?: Locale;\n\t/** date-fns pattern for the date portion. */\n\tdateFormat?: string;\n\t/** date-fns pattern for the time portion. */\n\ttimeFormat?: string;\n\t/** Named date length, used when `dateFormat` is omitted. */\n\tdatePreset?: DatePreset;\n};\n\nexport type MetadataMoneyValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A monetary amount. */\n\tkind: 'money';\n\t/** The amount, in major units unless `minorUnitScale` says otherwise. */\n\tvalue: number | string;\n\t/** ISO currency code. */\n\tcurrency?: MoneyProps['currency'];\n\t/** Unit label shown after the amount. */\n\tunit?: MoneyProps['unit'];\n\t/** Divisor applied when the value arrives in minor units, e.g. `100` for cents. */\n\tminorUnitScale?: MoneyProps['minorUnitScale'];\n\t/** Explicit currency symbol, overriding the one derived from `currency`. */\n\tsymbol?: MoneyProps['symbol'];\n\t/** Whether the currency shows as a symbol, code, or name. */\n\tcurrencyDisplay?: MoneyProps['currencyDisplay'];\n\t/** Selects the compact or full presentation. */\n\tformatMode?: MoneyProps['formatMode'];\n\t/** Smallest number of decimals to show. */\n\tminimumFractionDigits?: MoneyProps['minimumFractionDigits'];\n\t/** Largest number of decimals to show. */\n\tmaximumFractionDigits?: MoneyProps['maximumFractionDigits'];\n\t/** BCP 47 locale for the amount. */\n\tlocale?: MoneyProps['locale'];\n};\n\nexport type MetadataBadgeValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** A status chip. */\n\tkind: 'badge';\n\t/** Badge text. */\n\tvalue: MetadataDisplayValue;\n\t/** Badge tone. */\n\tbadgeTone?: BadgeProps['tone'];\n\t/** Badge size. */\n\tbadgeSize?: BadgeProps['size'];\n};\n\nexport type MetadataNodeValueDescriptor = {\n\t/** Arbitrary content, bypassing every formatting path. */\n\tkind: 'node';\n\t/** The content to render. */\n\tnode: ReactNode;\n};\n\nexport type MetadataEmptyValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A known-absent value, rendered as the empty label rather than omitted. */\n\tkind: 'empty';\n};\n\nexport type MetadataValueDescriptor =\n\t| MetadataTextValueDescriptor\n\t| MetadataMonoValueDescriptor\n\t| MetadataContactValueDescriptor\n\t| MetadataLinkValueDescriptor\n\t| MetadataDateValueDescriptor\n\t| MetadataTimeValueDescriptor\n\t| MetadataDateTimeValueDescriptor\n\t| MetadataMoneyValueDescriptor\n\t| MetadataBadgeValueDescriptor\n\t| MetadataNodeValueDescriptor\n\t| MetadataEmptyValueDescriptor;\n\nexport type MetadataValueProps = MetadataValueDescriptor;\n\nfunction isEmpty(value: unknown) {\n\treturn value === null || value === undefined || value === '';\n}\n\nfunction renderEmptyValue(className: string | undefined, emptyLabel: ReactNode = EMPTY) {\n\treturn (\n\t\t<EmptyValue className={cn('metadata-value--component', className)}>\n\t\t\t{emptyLabel}\n\t\t</EmptyValue>\n\t);\n}\n\nfunction assertNever(_value: never): never {\n\tthrow new Error('Unsupported metadata value descriptor.');\n}\n\nexport function MetadataValue(props: MetadataValueProps) {\n\tif (props.kind === 'node') return <>{props.node}</>;\n\tif (props.kind === 'empty') return renderEmptyValue(props.className, props.emptyLabel);\n\n\tif (props.kind !== 'link' && isEmpty(props.value)) {\n\t\treturn renderEmptyValue(props.className, props.emptyLabel);\n\t}\n\n\tswitch (props.kind) {\n\t\tcase undefined:\n\t\tcase 'text':\n\t\t\treturn (\n\t\t\t\t<Value type=\"inherit\" className={cn('metadata-value--component', props.className)}>\n\t\t\t\t\t{props.display ?? props.value}\n\t\t\t\t</Value>\n\t\t\t);\n\t\tcase 'mono':\n\t\t\treturn (\n\t\t\t\t<MonoValue type=\"inherit\" className={cn('metadata-value--component', props.className)}>\n\t\t\t\t\t{props.display ?? props.value}\n\t\t\t\t</MonoValue>\n\t\t\t);\n\t\tcase 'email':\n\t\t\treturn <Email value={props.value} display={props.display} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'phone':\n\t\t\treturn <Phone value={props.value} display={props.display} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'url':\n\t\t\treturn <Url value={props.value} display={props.display} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'link':\n\t\t\treturn (\n\t\t\t\t<Link href={props.href} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)}>\n\t\t\t\t\t{props.display ?? props.value ?? props.href}\n\t\t\t\t</Link>\n\t\t\t);\n\t\tcase 'date':\n\t\t\treturn <DateValue type=\"inherit\" value={props.value} format={props.dateFormat} preset={props.datePreset} locale={props.dateLocale} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'time':\n\t\t\treturn <Time type=\"inherit\" value={props.value} format={props.timeFormat} preset={props.timePreset} locale={props.dateLocale} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'datetime':\n\t\t\treturn <DateTime type=\"inherit\" value={props.value} format={props.dateFormat} timeFormat={props.timeFormat} preset={props.datePreset} locale={props.dateLocale} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'money':\n\t\t\treturn (\n\t\t\t\t<Money\n\t\t\t\t\ttype=\"inherit\"\n\t\t\t\t\tamount={props.value}\n\t\t\t\t\tcurrency={props.currency}\n\t\t\t\t\tunit={props.unit}\n\t\t\t\t\tminorUnitScale={props.minorUnitScale}\n\t\t\t\t\tsymbol={props.symbol}\n\t\t\t\t\tcurrencyDisplay={props.currencyDisplay}\n\t\t\t\t\tformatMode={props.formatMode}\n\t\t\t\t\tminimumFractionDigits={props.minimumFractionDigits}\n\t\t\t\t\tmaximumFractionDigits={props.maximumFractionDigits}\n\t\t\t\t\tlocale={props.locale}\n\t\t\t\t\temptyLabel={props.emptyLabel}\n\t\t\t\t\tclassName={cn('metadata-value--component', props.className)}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase 'badge':\n\t\t\treturn (\n\t\t\t\t<Badge\n\t\t\t\t\ttone={props.badgeTone ?? 'secondary'}\n\t\t\t\t\tsize={props.badgeSize}\n\t\t\t\t\tinline\n\t\t\t\t\tclassName={cn('metadata-value--component self-start justify-self-start', props.className)}\n\t\t\t\t>\n\t\t\t\t\t{props.display ?? props.value}\n\t\t\t\t</Badge>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn assertNever(props);\n\t}\n}\n\nMetadataValue.displayName = 'MetadataValue';\n","/**\n * MetadataList — flexible label/value list for entity metadata.\n *\n * Three layouts:\n * - `grid` (default): label-on-top, value-below cells for entity details.\n * - `rows`: a two-column definition list (`<dl>`) on proportional tracks.\n * Rules between rows are opt-in through `itemSeparator`.\n * - `inline`: label/separator/value pairs that wrap, suitable for\n * pill-style summaries (e.g. \"Created Jan 4 · By Alice · v3.2\").\n *\n * Each item supports an optional icon, tooltip, React-node value, custom\n * `render`, and per-item `emptyLabel`. Falls back to the shared `EMPTY` when\n * both are missing. Returns `null` when the list is empty so callers can render\n * unconditionally.\n */\nimport { Info } from 'lucide-react';\nimport React from 'react';\n\nimport { Separator } from '../display/separator';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../display/tooltip';\nimport { Grid, Stack, type ResponsiveValue } from '../structure';\nimport { compileResponsiveClasses, resolveResponsiveEntries } from '../structure/structure.responsive';\nimport { DisplayLabel } from '../../typography/display-label';\nimport { Text } from '../../typography/text';\nimport { textVariants } from '../../typography/text.styles';\nimport { EMPTY } from '../../../lib/format';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\nimport { fieldAffordanceRecipes } from '../../../lib/field-affordance-recipes';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tdefaultMetadataListStrings,\n\ttype MetadataListStrings,\n} from './metadata-list.strings';\nimport {\n\tMetadataValue,\n\ttype MetadataValueDescriptor,\n} from './metadata-value';\n\nexport type { MetadataListStrings };\nexport { defaultMetadataListStrings };\n\nexport type MetadataListItem = {\n\t/** Stable identity for this entry. Without one the label and index stand in. */\n\tid?: string;\n\t/** Display label. */\n\tlabel: React.ReactNode;\n\t/** A node, or a descriptor that names the fact's kind. */\n\tvalue?: React.ReactNode | MetadataValueDescriptor | null;\n\t/** Supporting copy shown under the value. */\n\tdescription?: React.ReactNode | null;\n\t/** Shown from an info trigger beside the label, named after the label through `strings.formatInfoAriaLabel`. */\n\ttooltip?: React.ReactNode;\n\t/** Leading glyph. Any component that accepts `className`, including Lucide icons. */\n\ticon?: React.ComponentType<{ className?: string }>;\n\t/** Shown when this item's value is absent, in place of the list's `emptyLabel`. */\n\temptyLabel?: React.ReactNode;\n\t/** Takes over the value. The output sits in the value box, so it inherits the value's type role. */\n\trender?: (item: MetadataListItem) => React.ReactNode;\n};\n\nexport type MetadataInlineListItem = Omit<MetadataListItem, 'description'> & {\n\tdescription?: never;\n};\n\nexport type MetadataLayout = 'grid' | 'rows' | 'inline';\nexport type MetadataDensity = 'default' | 'compact';\n\ntype MetadataListSharedProps = {\n\t/** How many columns the grid layout uses. Accepts a per-breakpoint value. */\n\tcolumns?: ResponsiveValue<1 | 2 | 3 | 4>;\n\t/** Measure responsive grid columns against this list's own width (default) or the viewport. */\n\tadaptTo?: 'viewport' | 'container';\n\t/** Row spacing. `compact` tightens the list for dense panels. */\n\tdensity?: MetadataDensity;\n\t/** Copy shown for an item whose value is empty. Defaults to an em dash. */\n\temptyLabel?: React.ReactNode;\n\t/** Surface title. */\n\ttitle?: React.ReactNode;\n\t/** Draws a rule between the title and the first item. */\n\ttitleSeparator?: boolean;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Character placed between a label and its value. Defaults to a colon. */\n\tseparator?: string;\n\t/**\n\t * Divider between items, off by default. In `rows`, any truthy value draws a\n\t * rule between rows (never at the ends). In `inline`, `true` places a middle\n\t * dot (`·`) and a string places that character.\n\t */\n\titemSeparator?: boolean | string;\n\t/** Per-instance string overrides (deep-merged over `defaultMetadataListStrings`). */\n\tstrings?: StringsProp<MetadataListStrings>;\n};\n\ntype MetadataGridRowsProps = MetadataListSharedProps & {\n\t/** Label/value pairs to render. */\n\titems: MetadataListItem[];\n\t/** `grid` flows items into `columns`; `rows` stacks them one per line. Default: `grid`. */\n\tlayout?: 'grid' | 'rows';\n\t/**\n\t * Rows layout only. `start` (default) places values and descriptions at the\n\t * start of proportional label/value tracks; `end` pins them to the row's end\n\t * edge, for figures that read down a column.\n\t */\n\tvalueAlign?: 'start' | 'end';\n};\n\ntype MetadataInlineProps = MetadataListSharedProps & {\n\t/** Label/value pairs run together on wrapping lines. Inline items take no description. */\n\titems: MetadataInlineListItem[];\n\t/** Runs the label/value pairs together on one line, separated by `itemSeparator`. */\n\tlayout: 'inline';\n\t/** Not used by the inline layout. */\n\tvalueAlign?: never;\n};\n\nexport type MetadataListProps =\n\t| MetadataGridRowsProps\n\t| MetadataInlineProps;\n\nconst metadataColumnRecipes: Record<1 | 2 | 3 | 4, ResponsiveValue<1 | 2 | 3 | 4>> = {\n\t1: 1,\n\t2: { base: 1, md: 2 },\n\t3: { base: 1, sm: 2, lg: 3 },\n\t4: { base: 1, sm: 2, lg: 3, xl: 4 },\n};\n\n// Component-width thresholds let facts share columns in padded cards while\n// narrow rails retain one readable track. The local name prevents an unrelated\n// outer container from driving an embedded list.\nconst metadataContainerColumns = {\n\tbase: { 1: 'grid-cols-1', 2: 'grid-cols-2', 3: 'grid-cols-3', 4: 'grid-cols-4' },\n\tsm: { 1: '@min-[22rem]/metadata-list:grid-cols-1', 2: '@min-[22rem]/metadata-list:grid-cols-2', 3: '@min-[22rem]/metadata-list:grid-cols-3', 4: '@min-[22rem]/metadata-list:grid-cols-4' },\n\tmd: { 1: '@min-[28rem]/metadata-list:grid-cols-1', 2: '@min-[28rem]/metadata-list:grid-cols-2', 3: '@min-[28rem]/metadata-list:grid-cols-3', 4: '@min-[28rem]/metadata-list:grid-cols-4' },\n\tlg: { 1: '@min-[38rem]/metadata-list:grid-cols-1', 2: '@min-[38rem]/metadata-list:grid-cols-2', 3: '@min-[38rem]/metadata-list:grid-cols-3', 4: '@min-[38rem]/metadata-list:grid-cols-4' },\n\txl: { 1: '@min-[52rem]/metadata-list:grid-cols-1', 2: '@min-[52rem]/metadata-list:grid-cols-2', 3: '@min-[52rem]/metadata-list:grid-cols-3', 4: '@min-[52rem]/metadata-list:grid-cols-4' },\n\t'2xl': { 1: '@min-[64rem]/metadata-list:grid-cols-1', 2: '@min-[64rem]/metadata-list:grid-cols-2', 3: '@min-[64rem]/metadata-list:grid-cols-3', 4: '@min-[64rem]/metadata-list:grid-cols-4' },\n} as const;\n\nfunction resolveMetadataColumns(\n\tcolumns: ResponsiveValue<1 | 2 | 3 | 4>,\n): ResponsiveValue<1 | 2 | 3 | 4> {\n\treturn typeof columns === 'object' ? columns : metadataColumnRecipes[columns];\n}\n\n/**\n * Item labels keep the display-label role (default size, tight leading,\n * inherited foreground) at semibold: medium weight does not separate a label from its\n * value on every font, and the label is what a reader scans for. Labels wrap in\n * every layout, breaking long unspaced words rather than overflowing.\n */\nfunction MetadataLabel({ children }: { children: React.ReactNode }) {\n\treturn (\n\t\t<Text type=\"inherit\" tag=\"span\" size=\"sm\" weight=\"semibold\" lineHeight=\"tight\" className=\"metadata-list--label metadata--field min-w-0 text-left [overflow-wrap:anywhere]\">\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\n/**\n * Inline value controls, a Copyable's copy action and a status Badge, keep their\n * own size but bleed back to the value's text line through negative block\n * margins, so a row or inline pair holding one keeps the plain-text rhythm\n * instead of growing by the control's extra height. Grid cells stack the value\n * under its label and keep the control's full box below it.\n */\nconst inlineControlBleed = '[&>.copyable--component]:-my-space-sm [&>.badge--component]:-my-space-xs';\n\n/**\n * A custom renderer's box takes the value's leading. Standalone link values set\n * their own looser leading, so a link rendered directly in the box takes the\n * box's leading, as a generated `email`/`phone`/`url` value does.\n */\nconst renderedLinkLeading = '[&>.link--component]:leading-tight';\nconst renderedValueClasses = cn(inlineControlBleed, renderedLinkLeading);\n\nconst resolveKey = (item: MetadataListItem, index: number): string => {\n\tif (item.id) {\n\t\treturn item.id;\n\t}\n\n\tconst rawLabel = typeof item.label === 'string' ? item.label : `${index}`;\n\treturn `metadata-${rawLabel}-${index}`;\n};\n\nfunction isPrimitiveMetadataValue(value: React.ReactNode): value is string | number {\n\treturn typeof value === 'string' || typeof value === 'number';\n}\n\nfunction isMetadataValueDescriptor(value: unknown): value is MetadataValueDescriptor {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t!React.isValidElement(value) &&\n\t\t!Array.isArray(value) &&\n\t\t('kind' in value || 'node' in value || 'value' in value)\n\t);\n}\n\nfunction renderMetadataValue({\n\tvalue,\n\tisEmptyValue,\n\temptyLabel,\n\tvalueBase,\n}: {\n\tvalue: React.ReactNode | MetadataValueDescriptor;\n\tisEmptyValue: boolean;\n\temptyLabel: React.ReactNode;\n\tvalueBase: string;\n}) {\n\tif (isMetadataValueDescriptor(value)) {\n\t\tif (value.kind === 'node') return <MetadataValue {...value} />;\n\t\treturn (\n\t\t\t<MetadataValue\n\t\t\t\t{...value}\n\t\t\t\temptyLabel={value.emptyLabel ?? emptyLabel}\n\t\t\t\tclassName={cn(valueBase, value.className)}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (isPrimitiveMetadataValue(value)) {\n\t\treturn (\n\t\t\t<MetadataValue\n\t\t\t\tvalue={value}\n\t\t\t\tkind={isEmptyValue ? 'empty' : 'text'}\n\t\t\t\temptyLabel={emptyLabel}\n\t\t\t\tclassName={valueBase}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn value;\n}\n\n/**\n * Generated values go through `MetadataValue`. A custom renderer's output sits\n * in the value box, so it takes the value's type role (size, leading,\n * foreground) like a generated value.\n */\nfunction renderItemValue({\n\titem,\n\tvalueBase,\n\trenderedClassName,\n\ttag: Tag = 'div',\n\temptyLabel,\n}: {\n\titem: MetadataListItem;\n\tvalueBase: string;\n\trenderedClassName: string;\n\ttag?: 'div' | 'span';\n\temptyLabel: React.ReactNode;\n}) {\n\tif (typeof item.render === 'function') {\n\t\treturn <Tag className={renderedClassName}>{item.render(item)}</Tag>;\n\t}\n\treturn renderMetadataValue({\n\t\tvalue: item.value ?? emptyLabel,\n\t\tisEmptyValue: item.value === null || item.value === undefined,\n\t\temptyLabel,\n\t\tvalueBase,\n\t});\n}\n\n/**\n * The trigger keeps the shared clear-target size for pointer comfort, while\n * negative block margins pull its box back to the glyph, so a tooltip never\n * makes its label line taller than its neighbours'.\n */\nfunction MetadataInfoTrigger({\n\ttriggerProps,\n\tariaLabel,\n}: {\n\ttriggerProps: React.ComponentProps<'button'>;\n\tariaLabel: string;\n}) {\n\tconst { className, ...props } = triggerProps;\n\treturn (\n\t\t<button\n\t\t\t{...props}\n\t\t\ttype=\"button\"\n\t\t\tclassName={cn(\n\t\t\t\t'metadata-list--info-trigger',\n\t\t\t\tfieldAffordanceRecipes.target,\n\t\t\t\tfieldAffordanceRecipes.focus,\n\t\t\t\tfieldAffordanceRecipes.clear,\n\t\t\t\taffordanceGeometry.clearTargetBleed,\n\t\t\t\t'cursor-help self-center',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-label={ariaLabel}\n\t\t>\n\t\t\t<Info className={fieldAffordanceRecipes.icon} aria-hidden=\"true\" />\n\t\t</button>\n\t);\n}\n\nfunction MetadataItemInfo({\n\titem,\n\tstrings,\n}: {\n\titem: MetadataListItem;\n\tstrings: MetadataListStrings;\n}) {\n\tif (item.tooltip === null || item.tooltip === undefined) return null;\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger\n\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t<MetadataInfoTrigger\n\t\t\t\t\t\ttriggerProps={triggerProps}\n\t\t\t\t\t\tariaLabel={typeof item.label === 'string' ? strings.formatInfoAriaLabel(item.label) : strings.infoFallback}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<TooltipContent side=\"top\" align=\"start\" className=\"max-w-80\">\n\t\t\t\t<Text type=\"inverse\" size=\"xs\">{item.tooltip}</Text>\n\t\t\t</TooltipContent>\n\t\t</Tooltip>\n\t);\n}\n\nfunction MetadataItemIcon({ item, isCompact }: { item: MetadataListItem; isCompact: boolean }) {\n\tconst Icon = item.icon;\n\tif (!Icon) return null;\n\treturn (\n\t\t<Icon\n\t\t\tclassName={cn(\n\t\t\t\t'flex-shrink-0 self-center text-muted-foreground',\n\t\t\t\tisCompact ? 'size-icon-sm' : 'size-icon',\n\t\t\t)}\n\t\t/>\n\t);\n}\n\nexport function MetadataList({\n\titems,\n\tcolumns = 2,\n\tadaptTo = 'container',\n\tdensity = 'default',\n\temptyLabel = EMPTY,\n\ttitle,\n\ttitleSeparator = false,\n\tclassName,\n\tlayout = 'grid',\n\tseparator = ': ',\n\titemSeparator = false,\n\tvalueAlign = 'start',\n\tstrings: stringsProp,\n}: MetadataListProps) {\n\tconst strings = useStrings(defaultMetadataListStrings, stringsProp);\n\tconst list = React.useMemo(() => (items as MetadataListItem[]).filter(Boolean), [items]);\n\n\tif (list.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst isCompact = density === 'compact';\n\tconst valueBase = 'metadata-list--value text-sm';\n\tconst hasTitle = title !== null && title !== undefined;\n\tconst shouldShowSeparator = hasTitle && titleSeparator;\n\tconst rootClassName = cn('metadata-list--component', 'metadata-list-container @container/metadata-list', className);\n\tconst head = (\n\t\t<>\n\t\t\t{!!hasTitle && (\n\t\t\t\t<DisplayLabel tag=\"div\" className=\"metadata-list--title block text-inherit\">\n\t\t\t\t\t{title}\n\t\t\t\t</DisplayLabel>\n\t\t\t)}\n\t\t\t{!!shouldShowSeparator && <Separator className=\"metadata-list--title-separator\" />}\n\t\t</>\n\t);\n\n\tif (layout === 'inline') {\n\t\tconst itemSeparatorText =\n\t\t\ttypeof itemSeparator === 'string'\n\t\t\t\t? itemSeparator\n\t\t\t\t: itemSeparator\n\t\t\t\t\t? '·'\n\t\t\t\t\t: '';\n\n\t\treturn (\n\t\t\t<Stack gap=\"sm\" data-metadata-density={density} className={rootClassName}>\n\t\t\t\t{head}\n\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\talign=\"baseline\"\n\t\t\t\t\tgap={isCompact ? 'sm' : 'md'}\n\t\t\t\t\tclassName=\"metadata-list--inline\"\n\t\t\t\t>\n\t\t\t\t\t{list.map((item, index) => {\n\t\t\t\t\t\tconst showItemSeparator = itemSeparatorText && index < list.length - 1;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<React.Fragment key={resolveKey(item, index)}>\n\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"baseline\" gap=\"xs\" className={cn('metadata-list--item min-w-0 [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-center', inlineControlBleed)}>\n\t\t\t\t\t\t\t\t\t<MetadataItemIcon item={item} isCompact={isCompact} />\n\n\t\t\t\t\t\t\t\t\t{/* Label, optional info trigger, and the separator are one\n\t\t\t\t\t\t\t\t\t unit that never wraps apart: the item Stack's gap would\n\t\t\t\t\t\t\t\t\t otherwise fall between the label and the colon and render\n\t\t\t\t\t\t\t\t\t \"SKU : value\" — French spacing — instead of \"SKU: value\".\n\t\t\t\t\t\t\t\t\t The label itself still wraps inside the unit. */}\n\t\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"none\" align=\"baseline\" wrap={false} className=\"max-w-full shrink-0\">\n\t\t\t\t\t\t\t\t\t\t<MetadataLabel>\n\t\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t</MetadataLabel>\n\n\t\t\t\t\t\t\t\t\t\t<MetadataItemInfo item={item} strings={strings} />\n\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{separator}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t</Stack>\n\n\t\t\t\t\t\t\t\t\t{renderItemValue({\n\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\t\t\t\temptyLabel: item.emptyLabel ?? emptyLabel,\n\t\t\t\t\t\t\t\t\t\tvalueBase: cn(valueBase, 'leading-tight'),\n\t\t\t\t\t\t\t\t\t\trenderedClassName: cn(valueBase, renderedValueClasses, textVariants({ type: 'inherit', size: 'sm', lineHeight: 'tight' })),\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Stack>\n\n\t\t\t\t\t\t\t\t{!!showItemSeparator && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"metadata-list--item-separator select-none\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{itemSeparatorText}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t);\n\t}\n\n\tif (layout === 'rows') {\n\t\tconst rowPaddingY = isCompact ? 'py-row-y-sm' : 'py-row-y';\n\t\tconst isEndAligned = valueAlign === 'end';\n\t\t// `start` uses proportional tracks, so values line up down the list\n\t\t// without a label min-width that would crowd phones. `end` keeps the\n\t\t// label track flexible and pins a content-sized value to the row end.\n\t\tconst rowTrack = isEndAligned\n\t\t\t? 'grid-cols-[minmax(0,1fr)_fit-content(60%)] gap-x-space-md'\n\t\t\t: cn('grid-cols-[minmax(0,2fr)_minmax(0,3fr)]', isCompact ? 'gap-x-space-lg' : 'gap-x-space-xl');\n\t\tconst valueAlignClassName = isEndAligned ? 'text-end' : 'text-start';\n\t\treturn (\n\t\t\t<Stack gap=\"sm\" data-metadata-density={density} className={rootClassName}>\n\t\t\t\t{head}\n\t\t\t\t<Stack\n\t\t\t\t\trender={<dl />}\n\t\t\t\t\tgap=\"none\"\n\t\t\t\t\tdata-value-align={valueAlign}\n\t\t\t\t\tclassName={cn('metadata-list--rows m-0', !!itemSeparator && 'divide-y divide-border/60')}\n\t\t\t\t>\n\t\t\t\t\t{list.map((item, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={resolveKey(item, index)}\n\t\t\t\t\t\t\tclassName={cn('metadata-list--item grid items-baseline', rowTrack, rowPaddingY)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<dt className=\"flex min-w-0 items-center gap-space-sm\">\n\t\t\t\t\t\t\t\t<MetadataItemIcon item={item} isCompact={isCompact} />\n\t\t\t\t\t\t\t\t<MetadataLabel>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</MetadataLabel>\n\t\t\t\t\t\t\t\t<MetadataItemInfo item={item} strings={strings} />\n\t\t\t\t\t\t\t</dt>\n\t\t\t\t\t\t\t<dd\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'm-0 grid min-w-0 gap-dense break-words [overflow-wrap:anywhere] [&>*]:max-w-full [&>*]:min-w-0',\n\t\t\t\t\t\t\t\t\tinlineControlBleed,\n\t\t\t\t\t\t\t\t\tvalueAlignClassName,\n\t\t\t\t\t\t\t\t\tisEndAligned\n\t\t\t\t\t\t\t\t\t\t? 'justify-items-end [&>.badge--component]:justify-self-end'\n\t\t\t\t\t\t\t\t\t\t: 'justify-items-start [&>.badge--component]:justify-self-start',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderItemValue({\n\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\temptyLabel: item.emptyLabel ?? emptyLabel,\n\t\t\t\t\t\t\t\t\tvalueBase: cn(valueBase, valueAlignClassName, 'break-words leading-tight'),\n\t\t\t\t\t\t\t\t\trenderedClassName: cn(valueBase, 'break-words', renderedValueClasses, textVariants({ type: 'inherit', size: 'sm', lineHeight: 'tight', align: isEndAligned ? 'right' : 'left' })),\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" align={isEndAligned ? 'right' : 'left'} lineHeight=\"snug\" className=\"metadata-list--description\">\n\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Stack gap=\"sm\" data-metadata-density={density} className={rootClassName}>\n\t\t\t{head}\n\n\t\t\t<Grid\n\t\t\t\tcolumns={adaptTo === 'container' ? 1 : resolveMetadataColumns(columns)}\n\t\t\t\tgap={isCompact ? 'md' : 'xl'}\n\t\t\t\talign=\"start\"\n\t\t\t\tclassName={cn('metadata-list--grid', adaptTo === 'container' && compileResponsiveClasses(resolveResponsiveEntries(resolveMetadataColumns(columns), 1), metadataContainerColumns))}\n\t\t\t>\n\t\t\t\t{list.map((item, index) => (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tkey={resolveKey(item, index)}\n\t\t\t\t\t\tgap={isCompact ? 'dense' : 'normal'}\n\t\t\t\t\t\tclassName=\"metadata-list--item min-w-0 items-start [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex min-w-0 items-center gap-space-sm\">\n\t\t\t\t\t\t\t<MetadataItemIcon item={item} isCompact={isCompact} />\n\n\t\t\t\t\t\t\t<MetadataLabel>\n\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t</MetadataLabel>\n\n\t\t\t\t\t\t\t<MetadataItemInfo item={item} strings={strings} />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{renderItemValue({\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\temptyLabel: item.emptyLabel ?? emptyLabel,\n\t\t\t\t\t\t\tvalueBase: cn(valueBase, 'leading-tight'),\n\t\t\t\t\t\t\trenderedClassName: cn(valueBase, renderedLinkLeading, textVariants({ type: 'inherit', size: 'sm', lineHeight: 'tight' })),\n\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tlineHeight=\"snug\"\n\t\t\t\t\t\t\t\tclassName=\"metadata-list--description\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Stack>\n\t\t\t\t))}\n\t\t\t</Grid>\n\t\t</Stack>\n\t);\n}\n\nMetadataList.displayName = 'MetadataList';\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ var e = "motion-reduce:transition-none motion-reduce:duration-0 motion-reduce:da
7
7
  "[&:not([data-align-trigger=true])]:data-[side=inline-start]:data-starting-style:translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-start]:data-ending-style:translate-x-1",
8
8
  "[&:not([data-align-trigger=true])]:data-[side=inline-end]:data-starting-style:-translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-end]:data-ending-style:-translate-x-1"
9
9
  ].join(" "), i = {
10
+ sidebar: `transition-[width] duration-150 ease-out ${e}`,
10
11
  backdrop: `transition-opacity duration-200 ease-out data-ending-style:duration-100 ${t} ${e}`,
11
12
  dialog: `transition-[opacity,scale] duration-200 ease-out data-ending-style:duration-150 ${t} ${n} ${e}`,
12
13
  drawer: [
@@ -20,9 +21,16 @@ var e = "motion-reduce:transition-none motion-reduce:duration-0 motion-reduce:da
20
21
  popup: `transition-[opacity,scale,translate] duration-150 ease-out data-ending-style:duration-100 ${t} ${n} ${r} ${e}`,
21
22
  disclosure: `overflow-hidden transition-[height,padding-block] duration-200 ease-out data-starting-style:h-0 data-ending-style:h-0 data-starting-style:py-0! data-ending-style:py-0! ${e}`,
22
23
  chevron: `transition-transform duration-200 ease-out ${e}`,
23
- dock: `transition-[opacity,translate] duration-150 ease-out starting:opacity-0 starting:translate-y-space-lg ${e}`
24
+ dock: `transition-[opacity,translate] duration-150 ease-out starting:opacity-0 starting:translate-y-space-lg ${e}`,
25
+ level: [
26
+ "transition-[opacity,translate] duration-150 ease-out",
27
+ "data-direction:starting:opacity-0",
28
+ "data-[direction=forward]:starting:translate-x-space-lg data-[direction=back]:starting:-translate-x-space-lg",
29
+ "rtl:data-[direction=forward]:starting:-translate-x-space-lg rtl:data-[direction=back]:starting:translate-x-space-lg",
30
+ e
31
+ ].join(" ")
24
32
  };
25
33
  //#endregion
26
34
  export { i as t };
27
35
 
28
- //# sourceMappingURL=motion-recipes-ChBg4HBq.js.map
36
+ //# sourceMappingURL=motion-recipes-DitYv6P2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-recipes-DitYv6P2.js","names":["reducedMotion","fadeStates","scaleStates","popupOffset","motionRecipes"],"sources":["../src/lib/motion-recipes.ts"],"sourcesContent":["/** Private CSS motion recipes. Base UI owns measurement, presence and focus. */\nconst reducedMotion = 'motion-reduce:transition-none motion-reduce:duration-0 motion-reduce:data-ending-style:duration-0';\nconst fadeStates = 'data-starting-style:opacity-0 data-ending-style:opacity-0';\nconst scaleStates = 'data-starting-style:scale-95 data-ending-style:scale-95';\nconst popupOffset = [\n '[&:not([data-align-trigger=true])]:data-[side=bottom]:data-starting-style:-translate-y-1 [&:not([data-align-trigger=true])]:data-[side=bottom]:data-ending-style:-translate-y-1',\n '[&:not([data-align-trigger=true])]:data-[side=top]:data-starting-style:translate-y-1 [&:not([data-align-trigger=true])]:data-[side=top]:data-ending-style:translate-y-1',\n '[&:not([data-align-trigger=true])]:data-[side=left]:data-starting-style:translate-x-1 [&:not([data-align-trigger=true])]:data-[side=left]:data-ending-style:translate-x-1',\n '[&:not([data-align-trigger=true])]:data-[side=right]:data-starting-style:-translate-x-1 [&:not([data-align-trigger=true])]:data-[side=right]:data-ending-style:-translate-x-1',\n '[&:not([data-align-trigger=true])]:data-[side=inline-start]:data-starting-style:translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-start]:data-ending-style:translate-x-1',\n '[&:not([data-align-trigger=true])]:data-[side=inline-end]:data-starting-style:-translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-end]:data-ending-style:-translate-x-1',\n].join(' ');\n\nexport const motionRecipes = {\n\t/** One navigation track owns collapse geometry; panel contents do not resize independently. */\n\tsidebar: `transition-[width] duration-150 ease-out ${reducedMotion}`,\n backdrop: `transition-opacity duration-200 ease-out data-ending-style:duration-100 ${fadeStates} ${reducedMotion}`,\n dialog: `transition-[opacity,scale] duration-200 ease-out data-ending-style:duration-150 ${fadeStates} ${scaleStates} ${reducedMotion}`,\n drawer: [\n 'transition-[translate] duration-250 ease-out data-ending-style:duration-200',\n 'data-[side=right]:data-starting-style:translate-x-full data-[side=right]:data-ending-style:translate-x-full',\n 'data-[side=left]:data-starting-style:-translate-x-full data-[side=left]:data-ending-style:-translate-x-full',\n 'data-[side=bottom]:data-starting-style:translate-y-full data-[side=bottom]:data-ending-style:translate-y-full',\n 'data-[side=top]:data-starting-style:-translate-y-full data-[side=top]:data-ending-style:-translate-y-full',\n reducedMotion,\n ].join(' '),\n popup: `transition-[opacity,scale,translate] duration-150 ease-out data-ending-style:duration-100 ${fadeStates} ${scaleStates} ${popupOffset} ${reducedMotion}`,\n disclosure: `overflow-hidden transition-[height,padding-block] duration-200 ease-out data-starting-style:h-0 data-ending-style:h-0 data-starting-style:py-0! data-ending-style:py-0! ${reducedMotion}`,\n chevron: `transition-transform duration-200 ease-out ${reducedMotion}`,\n // A surface that mounts docked (BatchActionBar) rises in once through\n // `@starting-style`, which also runs in a background tab where a frame-toggled\n // class would not. It unmounts without an exit.\n dock: `transition-[opacity,translate] duration-150 ease-out starting:opacity-0 starting:translate-y-space-lg ${reducedMotion}`,\n // A list level reached by navigation (a drilled branch, a new column) enters\n // from the side it was reached from, set by `data-direction`. Without the\n // attribute (first open, search results) it appears in place. The departing\n // level unmounts without an exit.\n level: [\n 'transition-[opacity,translate] duration-150 ease-out',\n 'data-direction:starting:opacity-0',\n 'data-[direction=forward]:starting:translate-x-space-lg data-[direction=back]:starting:-translate-x-space-lg',\n 'rtl:data-[direction=forward]:starting:-translate-x-space-lg rtl:data-[direction=back]:starting:translate-x-space-lg',\n reducedMotion,\n ].join(' '),\n} as const;\n"],"mappings":";AACA,IAAMA,IAAgB,qGAChBC,IAAa,6DACbC,IAAc,2DACdC,IAAc;CACnB;CACA;CACA;CACA;CACA;CACA;AACD,CAAC,CAAC,KAAK,GAAG,GAEGC,IAAgB;CAE5B,SAAS,4CAA4CJ;CACrD,UAAU,2EAA2EC,EAAW,GAAGD;CACnG,QAAQ,mFAAmFC,EAAW,GAAGC,EAAY,GAAGF;CACxH,QAAQ;EACP;EACA;EACA;EACA;EACA;EACAA;CACD,CAAC,CAAC,KAAK,GAAG;CACV,OAAO,6FAA6FC,EAAW,GAAGC,EAAY,GAAGC,EAAY,GAAGH;CAChJ,YAAY,2KAA2KA;CACvL,SAAS,8CAA8CA;CAIvD,MAAM,yGAAyGA;CAK/G,OAAO;EACN;EACA;EACA;EACA;EACAA;CACD,CAAC,CAAC,KAAK,GAAG;AACX"}