themelia-react-ui 2.0.3 → 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 (648) hide show
  1. package/CHANGELOG.md +185 -0
  2. package/README.md +168 -36
  3. package/dist/{accordion-Cjb6sx0G.js → accordion-B9MHG0cT.js} +11 -11
  4. package/dist/accordion-B9MHG0cT.js.map +1 -0
  5. package/dist/action-menu-Dr8K-ghE.js +284 -0
  6. package/dist/action-menu-Dr8K-ghE.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-tF36bREk.js → affordance-geometry.generated-P-aVJisu.js} +42 -36
  8. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  9. package/dist/{ai-artifact-DvTwDVyL.js → ai-artifact-C58tQcBy.js} +387 -350
  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-BxDfL2mw.js → attachment-Dg_69lPS.js} +9 -9
  14. package/dist/{attachment-BxDfL2mw.js.map → attachment-Dg_69lPS.js.map} +1 -1
  15. package/dist/{auth-BGua8ouh.js → auth-DTkkshS8.js} +44 -47
  16. package/dist/auth-DTkkshS8.js.map +1 -0
  17. package/dist/{avatar-DAPlDvhJ.js → avatar-CeZaFmNH.js} +8 -8
  18. package/dist/avatar-CeZaFmNH.js.map +1 -0
  19. package/dist/{badge-HpFqoqSY.js → badge-xIiV_E7f.js} +5 -5
  20. package/dist/{badge-HpFqoqSY.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 +3 -3
  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-DnUJ21NQ.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 +23 -23
  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 +326 -307
  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 +1247 -1169
  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-C-oqs1sQ.js → breadcrumbs-J-K2kl4c.js} +6 -6
  86. package/dist/{breadcrumbs-C-oqs1sQ.js.map → breadcrumbs-J-K2kl4c.js.map} +1 -1
  87. package/dist/{button-DVzspB_G.js → button-S2Cubiiz.js} +3 -3
  88. package/dist/button-S2Cubiiz.js.map +1 -0
  89. package/dist/{buttons-DPZekJFu.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-AWIhNhmo.js → checkbox-fflqmODR.js} +9 -5
  98. package/dist/checkbox-fflqmODR.js.map +1 -0
  99. package/dist/choice-inputs-zUgBZfE4.js +777 -0
  100. package/dist/choice-inputs-zUgBZfE4.js.map +1 -0
  101. package/dist/{code-block-DeneBJR_.js → code-block-BzmM9Eig.js} +9 -9
  102. package/dist/code-block-BzmM9Eig.js.map +1 -0
  103. package/dist/{collapsible-C-_l4hpy.js → collapsible-BkAI_XD4.js} +5 -5
  104. package/dist/{collapsible-C-_l4hpy.js.map → collapsible-BkAI_XD4.js.map} +1 -1
  105. package/dist/{collection-content-By56pLog.js → collection-content-gDh1v6O4.js} +3 -3
  106. package/dist/{collection-content-By56pLog.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-Dxo2fAYQ.js → combobox-BwzoXFSG.js} +254 -247
  110. package/dist/combobox-BwzoXFSG.js.map +1 -0
  111. package/dist/{command-C25VMRII.js → command-CrlPIL6m.js} +12 -12
  112. package/dist/command-CrlPIL6m.js.map +1 -0
  113. package/dist/{comments-DD0DUPwJ.js → comments-Dmpp0YIc.js} +380 -379
  114. package/dist/comments-Dmpp0YIc.js.map +1 -0
  115. package/dist/components/base/action-menu/action-menu.d.ts +9 -1
  116. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  117. package/dist/components/base/cards/card.recipes.d.ts +16 -7
  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 +11 -7
  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/checkbox.d.ts +7 -2
  124. package/dist/components/base/choice-inputs/choice-types.d.ts +1 -1
  125. package/dist/components/base/choice-inputs/switch-card.d.ts +7 -0
  126. package/dist/components/base/choice-inputs/toggle-field.d.ts +7 -0
  127. package/dist/components/base/combobox/index.d.ts +4 -2
  128. package/dist/components/base/date-pickers/datepicker.types.d.ts +7 -0
  129. package/dist/components/base/feedback/alert.d.ts +1 -1
  130. package/dist/components/base/forms/controlled-form-field.d.ts +6 -6
  131. package/dist/components/base/forms/form-field.d.ts +5 -3
  132. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  133. package/dist/components/base/forms/index.d.ts +1 -0
  134. package/dist/components/base/forms/server-errors.d.ts +16 -0
  135. package/dist/components/base/forms/workflow.d.ts +11 -2
  136. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -0
  137. package/dist/components/base/metadata-list/metadata-list.d.ts +3 -1
  138. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  139. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  140. package/dist/components/base/navigation/page-header/page-header.d.ts +13 -4
  141. package/dist/components/base/popover/popover.d.ts +3 -3
  142. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  143. package/dist/components/base/sheet/sheet.d.ts +2 -0
  144. package/dist/components/base/sidebar/index.d.ts +1 -1
  145. package/dist/components/base/sidebar/sidebar.d.ts +27 -5
  146. package/dist/components/base/structure/composition.recipes.d.ts +17 -0
  147. package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +7 -2
  148. package/dist/components/base/text-inputs/input.d.ts +4 -2
  149. package/dist/components/base/text-inputs/textarea.d.ts +4 -2
  150. package/dist/components/base/toaster/index.d.ts +1 -0
  151. package/dist/components/base/value-inputs/date-time-input.d.ts +2 -1
  152. package/dist/components/base/value-inputs/slider.d.ts +5 -1
  153. package/dist/components/base/value-inputs/tags-input.d.ts +5 -1
  154. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  155. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +3 -1
  156. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  157. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  158. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  159. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  160. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  161. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  162. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  163. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  164. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  165. package/dist/components/blocks/commerce/index.d.ts +7 -6
  166. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  167. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  168. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  169. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  170. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  171. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  172. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  173. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  174. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  175. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  176. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  177. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  178. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  179. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  180. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  181. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  182. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  183. package/dist/components/features/activities/activities.types.d.ts +8 -2
  184. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  185. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  186. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  187. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  188. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  189. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  190. package/dist/components/features/filters/filters.types.d.ts +3 -0
  191. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  192. package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
  193. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  194. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  195. package/dist/components/features/filters/utils/filter-utils.d.ts +21 -3
  196. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  197. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  198. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  199. package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
  200. package/dist/components/features/media-library/media-library.types.d.ts +14 -4
  201. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  202. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  203. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  204. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  205. package/dist/components/features/products/products.strings.d.ts +9 -1
  206. package/dist/components/features/products/products.types.d.ts +43 -6
  207. package/dist/components/features/resource/resource.d.ts +5 -1
  208. package/dist/components/features/resource/resource.types.d.ts +12 -1
  209. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  210. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  211. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  212. package/dist/components/features/table/table.types.d.ts +1 -1
  213. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  214. package/dist/components/layout/app-shell/index.d.ts +1 -1
  215. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  216. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  217. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  218. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  219. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  220. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  221. package/dist/components/layout/header/header.types.d.ts +6 -6
  222. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  223. package/dist/components/layout/page/index.d.ts +2 -1
  224. package/dist/components/layout/page/page.d.ts +1 -0
  225. package/dist/components/layout/page/page.strings.d.ts +11 -0
  226. package/dist/components/layout/page/page.types.d.ts +69 -17
  227. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  228. package/dist/components/layout/settings/settings.d.ts +9 -2
  229. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  230. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  231. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  232. package/dist/components/layout/sidebar/index.d.ts +2 -1
  233. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +36 -0
  234. package/dist/components/layout/sidebar/sidebar.context.d.ts +5 -7
  235. package/dist/components/layout/sidebar/sidebar.types.d.ts +48 -10
  236. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  237. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  238. package/dist/components/typography/text.styles.d.ts +26 -1
  239. package/dist/components/ui/alert-dialog.d.ts +2 -2
  240. package/dist/components/ui/combobox.d.ts +1 -1
  241. package/dist/components/ui/dialog.d.ts +2 -2
  242. package/dist/components/ui/overlay-layer.d.ts +18 -0
  243. package/dist/components/ui/sheet.d.ts +5 -1
  244. package/dist/components/ui/sidebar-state.d.ts +82 -0
  245. package/dist/components/ui/sidebar.d.ts +5 -17
  246. package/dist/composition.recipes-COdiFhxB.js +19 -0
  247. package/dist/composition.recipes-COdiFhxB.js.map +1 -0
  248. package/dist/containers-CIxwbZt5.js +112 -0
  249. package/dist/containers-CIxwbZt5.js.map +1 -0
  250. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  251. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  252. package/dist/{copyable-ClBuk_UK.js → copyable-DIznBqiT.js} +7 -7
  253. package/dist/{copyable-ClBuk_UK.js.map → copyable-DIznBqiT.js.map} +1 -1
  254. package/dist/{data-display-DT_khPl_.js → data-display-BdgCAw8T.js} +277 -285
  255. package/dist/data-display-BdgCAw8T.js.map +1 -0
  256. package/dist/{date-DCrsDTZc.js → date-Cq8ioE4o.js} +5 -5
  257. package/dist/{date-DCrsDTZc.js.map → date-Cq8ioE4o.js.map} +1 -1
  258. package/dist/{date-picker-B2K3ucWn.js → date-picker-RlIzKom_.js} +501 -480
  259. package/dist/date-picker-RlIzKom_.js.map +1 -0
  260. package/dist/date-pickers-DY-CpXS1.js +179 -0
  261. package/dist/date-pickers-DY-CpXS1.js.map +1 -0
  262. package/dist/{display-hAc1HjpI.js → display-KsZLw9Ov.js} +9 -9
  263. package/dist/{display-hAc1HjpI.js.map → display-KsZLw9Ov.js.map} +1 -1
  264. package/dist/dropdown-menu-CLs8Lihj.js +194 -0
  265. package/dist/dropdown-menu-CLs8Lihj.js.map +1 -0
  266. package/dist/features/activities.js +302 -253
  267. package/dist/features/activities.js.map +1 -1
  268. package/dist/features/ai-chat.js +15 -14
  269. package/dist/features/ai-chat.js.map +1 -1
  270. package/dist/features/appointment-calendar.js +222 -220
  271. package/dist/features/appointment-calendar.js.map +1 -1
  272. package/dist/features/async-preview.js +11 -10
  273. package/dist/features/async-preview.js.map +1 -1
  274. package/dist/features/combobox.js +1 -1
  275. package/dist/features/comments.js +1 -1
  276. package/dist/features/data-view.js +13 -13
  277. package/dist/features/data-view.js.map +1 -1
  278. package/dist/features/email-composer.js +249 -249
  279. package/dist/features/email-composer.js.map +1 -1
  280. package/dist/features/event-calendar.js +264 -269
  281. package/dist/features/event-calendar.js.map +1 -1
  282. package/dist/features/filters.js +1 -1
  283. package/dist/features/global-search.js +167 -138
  284. package/dist/features/global-search.js.map +1 -1
  285. package/dist/features/kanban.js +6 -7
  286. package/dist/features/kanban.js.map +1 -1
  287. package/dist/features/map.js +269 -260
  288. package/dist/features/map.js.map +1 -1
  289. package/dist/features/media-library.js +827 -777
  290. package/dist/features/media-library.js.map +1 -1
  291. package/dist/features/mentions.js +1 -1
  292. package/dist/features/overlays.js +1 -1
  293. package/dist/features/products.js +1246 -1169
  294. package/dist/features/products.js.map +1 -1
  295. package/dist/features/questionnaire.js +13 -13
  296. package/dist/features/questionnaire.js.map +1 -1
  297. package/dist/features/resource-assignment.js +8 -8
  298. package/dist/features/resource.js +127 -123
  299. package/dist/features/resource.js.map +1 -1
  300. package/dist/features/rich-text-editor.js +2 -2
  301. package/dist/features/schema-form.js +254 -253
  302. package/dist/features/schema-form.js.map +1 -1
  303. package/dist/features/suggestions.js +3 -3
  304. package/dist/features/sync.js +3 -3
  305. package/dist/features/table.js +1 -1
  306. package/dist/features/theme-tweaker.js +95 -96
  307. package/dist/features/theme-tweaker.js.map +1 -1
  308. package/dist/{feedback-BYIhtitP.js → feedback-Dm4izqFn.js} +81 -80
  309. package/dist/feedback-Dm4izqFn.js.map +1 -0
  310. package/dist/{field-affordance-recipes-DZhnIL_Y.js → field-affordance-recipes-DWcNcOjh.js} +4 -4
  311. package/dist/field-affordance-recipes-DWcNcOjh.js.map +1 -0
  312. package/dist/{filters-DJVAveHA.js → filters-DzgSJpMK.js} +693 -645
  313. package/dist/filters-DzgSJpMK.js.map +1 -0
  314. package/dist/{form-field-CwH9y77i.js → form-field-BriWAXyg.js} +14 -8
  315. package/dist/form-field-BriWAXyg.js.map +1 -0
  316. package/dist/{form-sizing-BdP_Mf5p.js → form-sizing-Bs2qFUeE.js} +4 -4
  317. package/dist/form-sizing-Bs2qFUeE.js.map +1 -0
  318. package/dist/forms-C0RGnJTe.js +216 -0
  319. package/dist/forms-C0RGnJTe.js.map +1 -0
  320. package/dist/{forms-numeric-B_jraJaQ.js → forms-numeric-DIhghX1Q.js} +295 -291
  321. package/dist/forms-numeric-DIhghX1Q.js.map +1 -0
  322. package/dist/{header-BSfIEWbI.js → header-DMMxG__r.js} +67 -63
  323. package/dist/header-DMMxG__r.js.map +1 -0
  324. package/dist/header.recipes-BigdJjw1.js +6 -0
  325. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  326. package/dist/hooks/useFormErrors.d.ts +1 -1
  327. package/dist/{hooks-ClH9thn4.js → hooks-DB6CJ4MR.js} +26 -14
  328. package/dist/hooks-DB6CJ4MR.js.map +1 -0
  329. package/dist/{icon-badge-DYKIwvOV.js → icon-badge-DZF-YjQp.js} +4 -4
  330. package/dist/{icon-badge-DYKIwvOV.js.map → icon-badge-DZF-YjQp.js.map} +1 -1
  331. package/dist/index.js +4 -5
  332. package/dist/input-CvyDQlY7.js +289 -0
  333. package/dist/input-CvyDQlY7.js.map +1 -0
  334. package/dist/input-DMBwAZmr.js +21 -0
  335. package/dist/input-DMBwAZmr.js.map +1 -0
  336. package/dist/item-DjCcM18E.js +277 -0
  337. package/dist/item-DjCcM18E.js.map +1 -0
  338. package/dist/layout/app-shell.js +1 -1
  339. package/dist/layout/auth.js +1 -1
  340. package/dist/layout/containers.js +1 -1
  341. package/dist/layout/header.js +1 -1
  342. package/dist/layout/hooks.js +1 -1
  343. package/dist/layout/navigation.js +1 -1
  344. package/dist/layout/page.js +2 -2
  345. package/dist/layout/settings.js +1 -1
  346. package/dist/layout/sidebar.js +3 -3
  347. package/dist/layout/workspace.js +1 -1
  348. package/dist/layout.js +11 -11
  349. package/dist/lib/affordance-geometry.generated.d.ts +41 -35
  350. package/dist/lib/control-group-recipes.d.ts +5 -5
  351. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  352. package/dist/lib/motion-recipes.d.ts +3 -0
  353. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  354. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  355. package/dist/lib/portal-recipes.d.ts +3 -0
  356. package/dist/lib/token-merge.generated.d.ts +13 -10
  357. package/dist/lib/ui-provider/types.d.ts +1 -1
  358. package/dist/lib/utils.js +1 -1
  359. package/dist/map-demo-tile.svg +1 -1
  360. package/dist/{media-gallery-3zIVLMWH.js → media-gallery-C-vChPmE.js} +6 -6
  361. package/dist/{media-gallery-3zIVLMWH.js.map → media-gallery-C-vChPmE.js.map} +1 -1
  362. package/dist/{mentions-CGlEJ15c.js → mentions-0_4nWuI-.js} +10 -10
  363. package/dist/{mentions-CGlEJ15c.js.map → mentions-0_4nWuI-.js.map} +1 -1
  364. package/dist/{message-DZ_ruyUV.js → message-g8p7eVtN.js} +7 -7
  365. package/dist/message-g8p7eVtN.js.map +1 -0
  366. package/dist/metadata-list-C3MkU-Om.js +443 -0
  367. package/dist/metadata-list-C3MkU-Om.js.map +1 -0
  368. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  369. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  370. package/dist/navigation-C90-oQFq.js +255 -0
  371. package/dist/navigation-C90-oQFq.js.map +1 -0
  372. package/dist/{navigation-BzhHI3lo.js → navigation-DaRjthVk.js} +101 -82
  373. package/dist/navigation-DaRjthVk.js.map +1 -0
  374. package/dist/{navigation-row-recipes-BFLCk_Aq.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  375. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  376. package/dist/{number-DbV1Dija.js → number-CRU3kGuk.js} +5 -5
  377. package/dist/{number-DbV1Dija.js.map → number-CRU3kGuk.js.map} +1 -1
  378. package/dist/overflow-tab-bar-IVFVQFV6.js +172 -0
  379. package/dist/overflow-tab-bar-IVFVQFV6.js.map +1 -0
  380. package/dist/overlays-BSgCtM2v.js +1013 -0
  381. package/dist/overlays-BSgCtM2v.js.map +1 -0
  382. package/dist/page-DUUKDAjo.js +331 -0
  383. package/dist/page-DUUKDAjo.js.map +1 -0
  384. package/dist/page-header-commands-7P3sfE9u.js +193 -0
  385. package/dist/page-header-commands-7P3sfE9u.js.map +1 -0
  386. package/dist/{pagination-BL25hu2s.js → pagination-CgCjElfu.js} +7 -7
  387. package/dist/{pagination-BL25hu2s.js.map → pagination-CgCjElfu.js.map} +1 -1
  388. package/dist/popover-B85RenIl.js +201 -0
  389. package/dist/popover-B85RenIl.js.map +1 -0
  390. package/dist/{popover-menu-Cn9rUkdc.js → popover-menu-DlnQ2zlR.js} +7 -7
  391. package/dist/{popover-menu-Cn9rUkdc.js.map → popover-menu-DlnQ2zlR.js.map} +1 -1
  392. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DdiEp0rd.js} +18 -11
  393. package/dist/popover.recipes-DdiEp0rd.js.map +1 -0
  394. package/dist/portal-recipes-BpsV_iRw.js +9 -0
  395. package/dist/portal-recipes-BpsV_iRw.js.map +1 -0
  396. package/dist/{primitives-BFK08r9M.js → primitives-ByWgGUgt.js} +6 -6
  397. package/dist/{primitives-BFK08r9M.js.map → primitives-ByWgGUgt.js.map} +1 -1
  398. package/dist/primitives.js +4 -4
  399. package/dist/{progress-B1VnCT0K.js → progress-BJhQP9WX.js} +9 -9
  400. package/dist/{progress-B1VnCT0K.js.map → progress-BJhQP9WX.js.map} +1 -1
  401. package/dist/{receipt-BVSOH3Xo.js → receipt-tOc7B3hw.js} +7 -7
  402. package/dist/receipt-tOc7B3hw.js.map +1 -0
  403. package/dist/{rich-text-GOUyKQ-s.js → rich-text-Dth5E882.js} +4 -4
  404. package/dist/{rich-text-GOUyKQ-s.js.map → rich-text-Dth5E882.js.map} +1 -1
  405. package/dist/{rich-text-editor-cRLC-eBK.js → rich-text-editor-C1fOjBTd.js} +429 -430
  406. package/dist/rich-text-editor-C1fOjBTd.js.map +1 -0
  407. package/dist/{rich-text-editor-toolbar-DfXg0-VC.js → rich-text-editor-toolbar-laT3tpBT.js} +33 -29
  408. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +1 -0
  409. package/dist/{scroll-area-DcI-M1UT.js → scroll-area-B0dB2cBi.js} +2 -2
  410. package/dist/{scroll-area-DcI-M1UT.js.map → scroll-area-B0dB2cBi.js.map} +1 -1
  411. package/dist/{separator-Bom7NsGO.js → separator-Bb17I4pu.js} +2 -2
  412. package/dist/{separator-Bom7NsGO.js.map → separator-Bb17I4pu.js.map} +1 -1
  413. package/dist/{separator-BDV-Y648.js → separator-Ct_WSWTJ.js} +3 -3
  414. package/dist/{separator-BDV-Y648.js.map → separator-Ct_WSWTJ.js.map} +1 -1
  415. package/dist/services/actions.js +1 -1
  416. package/dist/settings-Bar5wiSo.js +167 -0
  417. package/dist/settings-Bar5wiSo.js.map +1 -0
  418. package/dist/sheet-BGPERY55.js +250 -0
  419. package/dist/sheet-BGPERY55.js.map +1 -0
  420. package/dist/sidebar-D-JYMMbY.js +686 -0
  421. package/dist/sidebar-D-JYMMbY.js.map +1 -0
  422. package/dist/sidebar-f9gRWXIR.js +1001 -0
  423. package/dist/sidebar-f9gRWXIR.js.map +1 -0
  424. package/dist/skeleton-BapcJd9C.js +265 -0
  425. package/dist/skeleton-BapcJd9C.js.map +1 -0
  426. package/dist/smart-card-CW0hjetE.js +617 -0
  427. package/dist/smart-card-CW0hjetE.js.map +1 -0
  428. package/dist/{structure-BmisBK-3.js → structure-DuxKl954.js} +3 -3
  429. package/dist/{structure-BmisBK-3.js.map → structure-DuxKl954.js.map} +1 -1
  430. package/dist/{structure.recipes-EPz60cU8.js → structure.recipes-BB4-n58V.js} +2 -2
  431. package/dist/{structure.recipes-EPz60cU8.js.map → structure.recipes-BB4-n58V.js.map} +1 -1
  432. package/dist/style.css +1 -1
  433. package/dist/{table-DsfzoUia.js → table-B4TE7iOV.js} +3 -3
  434. package/dist/{table-DsfzoUia.js.map → table-B4TE7iOV.js.map} +1 -1
  435. package/dist/{table-BweFy_P9.js → table-CFOWY9pQ.js} +394 -388
  436. package/dist/table-CFOWY9pQ.js.map +1 -0
  437. package/dist/{tabs-CDocW5D1.js → tabs-e7ko9S2o.js} +11 -11
  438. package/dist/tabs-e7ko9S2o.js.map +1 -0
  439. package/dist/{text-inputs-f9Ia-aCi.js → text-inputs-B1culiSK.js} +107 -104
  440. package/dist/text-inputs-B1culiSK.js.map +1 -0
  441. package/dist/{text.styles-g4He6UIW.js → text.styles-B64My8RZ.js} +25 -10
  442. package/dist/text.styles-B64My8RZ.js.map +1 -0
  443. package/dist/theme.css +192 -149
  444. package/dist/{timelines-CwM_9IhD.js → timelines-D3Sl9ueq.js} +13 -12
  445. package/dist/timelines-D3Sl9ueq.js.map +1 -0
  446. package/dist/tooltip-8wz5S_Zr.js +113 -0
  447. package/dist/tooltip-8wz5S_Zr.js.map +1 -0
  448. package/dist/{tree-WnKQzwbq.js → tree-CzUJHnFs.js} +9 -9
  449. package/dist/{tree-WnKQzwbq.js.map → tree-CzUJHnFs.js.map} +1 -1
  450. package/dist/typography/rich-text.js +1 -1
  451. package/dist/typography-BQnine1k.js +117 -0
  452. package/dist/typography-BQnine1k.js.map +1 -0
  453. package/dist/typography.js +1 -1
  454. package/dist/ui-provider-C-74NVLc.js +178 -0
  455. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  456. package/dist/ui-provider.js +2 -3
  457. package/dist/{upload-CXyxmQBP.js → upload-BOW6U2tI.js} +25 -24
  458. package/dist/upload-BOW6U2tI.js.map +1 -0
  459. package/dist/{upload-queue-Boscubn9.js → upload-queue-qUXn1ykN.js} +16 -14
  460. package/dist/upload-queue-qUXn1ykN.js.map +1 -0
  461. package/dist/{usage-card-BhO5eqkX.js → usage-card-BeSLY0i0.js} +145 -137
  462. package/dist/usage-card-BeSLY0i0.js.map +1 -0
  463. package/dist/{utils-BRhFDwuU.js → utils-B6kKb8jB.js} +303 -144
  464. package/dist/utils-B6kKb8jB.js.map +1 -0
  465. package/dist/value-inputs-skdVB2zh.js +980 -0
  466. package/dist/value-inputs-skdVB2zh.js.map +1 -0
  467. package/dist/{value-typography-BP8OG6h5.js → value-typography-uAmWUAL1.js} +2 -2
  468. package/dist/{value-typography-BP8OG6h5.js.map → value-typography-uAmWUAL1.js.map} +1 -1
  469. package/dist/workspace-DHeHv0qw.js +411 -0
  470. package/dist/workspace-DHeHv0qw.js.map +1 -0
  471. package/docs/consumer-skill/SKILL.md +15 -129
  472. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  473. package/docs/consumer-skill/examples/app-layout.tsx +74 -13
  474. package/docs/consumer-skill/examples/authentication.tsx +77 -0
  475. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  476. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  477. package/docs/consumer-skill/examples/detail.tsx +5 -4
  478. package/docs/consumer-skill/examples/edit.tsx +30 -38
  479. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  480. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  481. package/docs/consumer-skill/examples/manifest.json +88 -1
  482. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  483. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  484. package/docs/consumer-skill/examples/rhf-bindings.tsx +86 -0
  485. package/docs/consumer-skill/examples/rhf-edit-page.tsx +141 -0
  486. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +105 -0
  487. package/docs/consumer-skill/examples/rhf-transport.tsx +28 -0
  488. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  489. package/docs/consumer-skill/references/agents-md.md +23 -11
  490. package/docs/consumer-skill/references/analytics.md +18 -1
  491. package/docs/consumer-skill/references/authentication.md +42 -0
  492. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  493. package/docs/consumer-skill/references/component-contracts.json +325201 -0
  494. package/docs/consumer-skill/references/composition-mapping.md +106 -0
  495. package/docs/consumer-skill/references/composition.md +198 -46
  496. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  497. package/docs/consumer-skill/references/custom-composition.md +261 -0
  498. package/docs/consumer-skill/references/data-reading.md +79 -0
  499. package/docs/consumer-skill/references/design-contract.md +43 -9
  500. package/docs/consumer-skill/references/discovery.md +109 -8
  501. package/docs/consumer-skill/references/domain-structures.md +124 -0
  502. package/docs/consumer-skill/references/installation.md +51 -36
  503. package/docs/consumer-skill/references/integration.md +41 -2
  504. package/docs/consumer-skill/references/product-composition.md +94 -0
  505. package/docs/consumer-skill/references/public-api.json +4390 -475
  506. package/docs/consumer-skill/references/review.md +47 -5
  507. package/docs/consumer-skill/references/rhf-workflows.md +93 -0
  508. package/docs/consumer-skill/references/screen-archetypes.md +34 -0
  509. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  510. package/docs/consumer-skill/references/theming.md +25 -27
  511. package/docs/consumer-skill/references/tokens.json +20 -11
  512. package/docs/consumer-skill/references/view-craft.md +153 -0
  513. package/docs/consumer-skill/references/view-spec.md +73 -0
  514. package/docs/consumer-skill/references/workflows.md +9 -2
  515. package/docs/consumer-skill/scripts/composition-policy.mjs +39 -3
  516. package/docs/consumer-skill/scripts/composition-schema.d.mts +2 -0
  517. package/docs/consumer-skill/scripts/composition-schema.mjs +32 -0
  518. package/docs/consumer-skill/scripts/composition.mjs +254 -0
  519. package/docs/consumer-skill/scripts/discovery.mjs +96 -10
  520. package/docs/consumer-skill/scripts/inspect-component.mjs +11 -0
  521. package/docs/consumer-skill/scripts/inspect-tokens.mjs +11 -0
  522. package/docs/consumer-skill/scripts/inspection.mjs +193 -0
  523. package/docs/consumer-skill/scripts/map-composition.mjs +12 -0
  524. package/docs/consumer-skill/scripts/setup-skills.mjs +111 -0
  525. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  526. package/docs/consumer-skills/themelia-components/SKILL.md +31 -0
  527. package/docs/consumer-skills/themelia-composition/SKILL.md +34 -0
  528. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  529. package/docs/consumer-skills/themelia-forms/SKILL.md +12 -0
  530. package/docs/consumer-skills/themelia-foundation/SKILL.md +15 -0
  531. package/docs/consumer-skills/themelia-tokenization/SKILL.md +42 -0
  532. package/package.json +4 -2
  533. package/templates/README.md +39 -0
  534. package/templates/admin-shell-template.tsx +382 -0
  535. package/templates/analytics-operations-template.tsx +376 -0
  536. package/templates/customers-template.tsx +509 -0
  537. package/templates/index.ts +29 -0
  538. package/templates/orders-template.tsx +1102 -0
  539. package/templates/products-template.tsx +834 -0
  540. package/templates/user-permissions-template.tsx +450 -0
  541. package/dist/accordion-Cjb6sx0G.js.map +0 -1
  542. package/dist/action-menu-CllU52Mm.js +0 -280
  543. package/dist/action-menu-CllU52Mm.js.map +0 -1
  544. package/dist/affordance-geometry.generated-tF36bREk.js.map +0 -1
  545. package/dist/ai-artifact-DvTwDVyL.js.map +0 -1
  546. package/dist/app-shell-C4FhvCqF.js +0 -236
  547. package/dist/app-shell-C4FhvCqF.js.map +0 -1
  548. package/dist/auth-BGua8ouh.js.map +0 -1
  549. package/dist/avatar-DAPlDvhJ.js.map +0 -1
  550. package/dist/base/cascader.js.map +0 -1
  551. package/dist/batch-action-bar-DnUJ21NQ.js.map +0 -1
  552. package/dist/button-DVzspB_G.js.map +0 -1
  553. package/dist/buttons-DPZekJFu.js.map +0 -1
  554. package/dist/cards-BaBZR-AU.js +0 -68
  555. package/dist/cards-BaBZR-AU.js.map +0 -1
  556. package/dist/chart-ZOYyK2xG.js +0 -155
  557. package/dist/chart-ZOYyK2xG.js.map +0 -1
  558. package/dist/checkbox-AWIhNhmo.js.map +0 -1
  559. package/dist/choice-inputs-CNHvARCJ.js +0 -770
  560. package/dist/choice-inputs-CNHvARCJ.js.map +0 -1
  561. package/dist/code-block-DeneBJR_.js.map +0 -1
  562. package/dist/combobox-DaHESuiL.js +0 -355
  563. package/dist/combobox-DaHESuiL.js.map +0 -1
  564. package/dist/combobox-Dxo2fAYQ.js.map +0 -1
  565. package/dist/command-C25VMRII.js.map +0 -1
  566. package/dist/comments-DD0DUPwJ.js.map +0 -1
  567. package/dist/containers-Mu1LMGV1.js +0 -103
  568. package/dist/containers-Mu1LMGV1.js.map +0 -1
  569. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  570. package/dist/data-display-DT_khPl_.js.map +0 -1
  571. package/dist/date-picker-B2K3ucWn.js.map +0 -1
  572. package/dist/date-pickers-Ds8gLaoP.js +0 -175
  573. package/dist/date-pickers-Ds8gLaoP.js.map +0 -1
  574. package/dist/dropdown-menu-Cl4X7L5S.js +0 -193
  575. package/dist/dropdown-menu-Cl4X7L5S.js.map +0 -1
  576. package/dist/feedback-BYIhtitP.js.map +0 -1
  577. package/dist/field-affordance-recipes-DZhnIL_Y.js.map +0 -1
  578. package/dist/filters-DJVAveHA.js.map +0 -1
  579. package/dist/form-field-CwH9y77i.js.map +0 -1
  580. package/dist/form-sizing-BdP_Mf5p.js.map +0 -1
  581. package/dist/forms-B9G_xwzi.js +0 -194
  582. package/dist/forms-B9G_xwzi.js.map +0 -1
  583. package/dist/forms-numeric-B_jraJaQ.js.map +0 -1
  584. package/dist/header-BSfIEWbI.js.map +0 -1
  585. package/dist/hooks-ClH9thn4.js.map +0 -1
  586. package/dist/input-CZw8iU99.js +0 -21
  587. package/dist/input-CZw8iU99.js.map +0 -1
  588. package/dist/input-DQdEd0YD.js +0 -263
  589. package/dist/input-DQdEd0YD.js.map +0 -1
  590. package/dist/item-K5_ghvze.js +0 -275
  591. package/dist/item-K5_ghvze.js.map +0 -1
  592. package/dist/message-DZ_ruyUV.js.map +0 -1
  593. package/dist/metadata-list-8N16ZMW_.js +0 -405
  594. package/dist/metadata-list-8N16ZMW_.js.map +0 -1
  595. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  596. package/dist/navigation-Bnotn4AQ.js +0 -145
  597. package/dist/navigation-Bnotn4AQ.js.map +0 -1
  598. package/dist/navigation-BzhHI3lo.js.map +0 -1
  599. package/dist/navigation-row-recipes-BFLCk_Aq.js.map +0 -1
  600. package/dist/overflow-tab-bar-CWY7Nogn.js +0 -282
  601. package/dist/overflow-tab-bar-CWY7Nogn.js.map +0 -1
  602. package/dist/overlays-tMkF-VAN.js +0 -1003
  603. package/dist/overlays-tMkF-VAN.js.map +0 -1
  604. package/dist/page-CL9YeH_V.js +0 -224
  605. package/dist/page-CL9YeH_V.js.map +0 -1
  606. package/dist/page-header-commands-DOb6WsfD.js +0 -126
  607. package/dist/page-header-commands-DOb6WsfD.js.map +0 -1
  608. package/dist/popover-gnTOhbFM.js +0 -198
  609. package/dist/popover-gnTOhbFM.js.map +0 -1
  610. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  611. package/dist/receipt-BVSOH3Xo.js.map +0 -1
  612. package/dist/rich-text-editor-cRLC-eBK.js.map +0 -1
  613. package/dist/rich-text-editor-toolbar-DfXg0-VC.js.map +0 -1
  614. package/dist/settings-ybnjVwbd.js +0 -171
  615. package/dist/settings-ybnjVwbd.js.map +0 -1
  616. package/dist/sheet-ijlsjq-n.js +0 -213
  617. package/dist/sheet-ijlsjq-n.js.map +0 -1
  618. package/dist/sidebar-Db6gkh3U.js +0 -619
  619. package/dist/sidebar-Db6gkh3U.js.map +0 -1
  620. package/dist/sidebar-DkTO4VTO.js +0 -512
  621. package/dist/sidebar-DkTO4VTO.js.map +0 -1
  622. package/dist/skeleton-Byjnt7qr.js +0 -264
  623. package/dist/skeleton-Byjnt7qr.js.map +0 -1
  624. package/dist/smart-card-DiC5aac3.js +0 -604
  625. package/dist/smart-card-DiC5aac3.js.map +0 -1
  626. package/dist/table-BweFy_P9.js.map +0 -1
  627. package/dist/tabs-CDocW5D1.js.map +0 -1
  628. package/dist/text-inputs-f9Ia-aCi.js.map +0 -1
  629. package/dist/text.styles-g4He6UIW.js.map +0 -1
  630. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  631. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  632. package/dist/timelines-CwM_9IhD.js.map +0 -1
  633. package/dist/tooltip-yiRJUFjp.js +0 -111
  634. package/dist/tooltip-yiRJUFjp.js.map +0 -1
  635. package/dist/typography-UTnveOEy.js +0 -117
  636. package/dist/typography-UTnveOEy.js.map +0 -1
  637. package/dist/ui-provider-C_U0Xma4.js +0 -136
  638. package/dist/ui-provider-C_U0Xma4.js.map +0 -1
  639. package/dist/upload-CXyxmQBP.js.map +0 -1
  640. package/dist/upload-queue-Boscubn9.js.map +0 -1
  641. package/dist/usage-card-BhO5eqkX.js.map +0 -1
  642. package/dist/use-mobile-vaLKwgyf.js +0 -15
  643. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  644. package/dist/utils-BRhFDwuU.js.map +0 -1
  645. package/dist/value-inputs-TaX4OjNk.js +0 -963
  646. package/dist/value-inputs-TaX4OjNk.js.map +0 -1
  647. package/dist/workspace-B-OEm3Kf.js +0 -408
  648. package/dist/workspace-B-OEm3Kf.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  "use client";
2
- import { o as e, s as t, v as n } from "./ui-provider-C_U0Xma4.js";
2
+ import { S as e, d as t, u as n } from "./ui-provider-C-74NVLc.js";
3
3
  import { useStrings as r } from "./lib/strings.js";
4
- import { t as i } from "./utils-BRhFDwuU.js";
5
- import { c as a, o } from "./typography-UTnveOEy.js";
6
- import { t as s } from "./structure-BmisBK-3.js";
4
+ import { t as i } from "./utils-B6kKb8jB.js";
5
+ import { c as a, o } from "./typography-BQnine1k.js";
6
+ import { t as s } from "./structure-DuxKl954.js";
7
7
  import { i as c } from "./tone-recipes-BPsRAvhu.js";
8
- import { t as l } from "./smart-card-DiC5aac3.js";
9
- import { s as u } from "./date-DCrsDTZc.js";
10
- import { t as d } from "./badge-HpFqoqSY.js";
8
+ import { t as l } from "./smart-card-CW0hjetE.js";
9
+ import { s as u } from "./date-Cq8ioE4o.js";
10
+ import { t as d } from "./badge-xIiV_E7f.js";
11
11
  import { forwardRef as f, useId as p } from "react";
12
12
  import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
13
13
  import { CheckCircle2 as _, XCircle as v } from "lucide-react";
@@ -163,7 +163,7 @@ function D(e) {
163
163
  return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
164
164
  }
165
165
  function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", timePlacement: f, tone: p = "neutral", variant: _ = "default", size: v, boxed: b, showWeekday: x = !0, showMonth: O = !0, showYear: k = !1, emptyLabel: A = "—", dayFormat: j = "d", weekdayFormat: M = "EEE", monthFormat: N = "MMM", yearFormat: te = "yyyy", className: P, strings: ne, "aria-label": re, ...F }) {
166
- let I = e(), { defaultScale: ie } = t(), L = n(v, ie), R = l ?? I.locale, z = r(S, ne), B = u(o), V = C[p], H = w[_], U = b ?? d === "stacked", W = i(V.primary, H.primary, !U && p === "neutral" && _ === "default" && "text-foreground"), G = f ?? (d === "inline" ? "inline" : "below"), K = ee(s) && G !== "hidden", q = R ? { locale: R } : void 0, J = B ? y(B, M, q) : null, Y = B ? y(B, j, q) : null, X = B ? y(B, N, q) : null, Z = B ? y(B, te, q) : null, Q = c ?? (B ? y(B, "yyyy-MM-dd") : void 0), $ = re ?? (B ? void 0 : z.unavailableLabel);
166
+ let I = n(), { defaultScale: ie } = t(), L = e(v, ie), R = l ?? I.locale, z = r(S, ne), B = u(o), V = C[p], H = w[_], U = b ?? d === "stacked", W = i(V.primary, H.primary, !U && p === "neutral" && _ === "default" && "text-foreground"), G = f ?? (d === "inline" ? "inline" : "below"), K = ee(s) && G !== "hidden", q = R ? { locale: R } : void 0, J = B ? y(B, M, q) : null, Y = B ? y(B, j, q) : null, X = B ? y(B, N, q) : null, Z = B ? y(B, te, q) : null, Q = c ?? (B ? y(B, "yyyy-MM-dd") : void 0), $ = re ?? (B ? void 0 : z.unavailableLabel);
167
167
  if (d === "inline") {
168
168
  let e = /* @__PURE__ */ h("span", {
169
169
  className: i("date-block--frame box-border inline-flex min-w-0 items-center rounded-radius tabular-nums", E[L].gap, U && i("border", E[L].padding, V.frame, H.frame)),
@@ -341,4 +341,4 @@ N.displayName = "BooleanIndicator";
341
341
  //#endregion
342
342
  export { S as a, O as i, A as n, x as o, k as r, b as s, N as t };
343
343
 
344
- //# sourceMappingURL=display-hAc1HjpI.js.map
344
+ //# sourceMappingURL=display-KsZLw9Ov.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"display-hAc1HjpI.js","names":["isSimpleText","_Fragment","useDatesConfig","useDensityConfig","resolveComponentScale","cn","Text","Stack","toneRecipes","Card","parseDateInput","Badge","Fragment$1","PlaceholderPattern","patternId","useId","className","VisuallyHidden","content","children","defaultDateBlockStrings","toneClassMap","variantClassMap","stackedSizeClass","inlineSizeClass","hasContent","value","isSimpleText$1","DateBlock","localeProp","sizeProp","stringsProp","ariaLabel","props","dates","size","defaultScale","locale","strings","useStrings","resolved","date","tones","tone","variants","variant","useBox","boxed","layout","primaryClass","resolvedTimePlacement","timePlacement","showsTime","time","formatOptions","weekday","format","weekdayFormat","day","dayFormat","month","monthFormat","year","yearFormat","machineValue","dateTime","resolvedAriaLabel","dateRow","showWeekday","showMonth","showYear","emptyLabel","tile","defaultContentBlockStrings","ContentBlock","forwardRef","surface","padding","headerClassName","contentClassName","footerClassName","defaultBooleanIndicatorStrings","isSimpleText","BooleanIndicator","isTrue","Icon","CheckCircle2","XCircle","badgeTone","trueTone","falseTone","label","DisplayLabel","badgeClassName","showIcon"],"sources":["../src/components/base/display/placeholder-pattern.tsx","../src/components/base/display/visually-hidden.tsx","../src/components/base/display/date-block.tsx","../src/components/base/display/content-block.strings.ts","../src/components/base/display/content-block.tsx","../src/components/base/display/boolean-indicator.tsx"],"sourcesContent":["/**\n * PlaceholderPattern — diagonal-stripe SVG fill suitable as a skeleton or\n * empty-region indicator. Uses a unique pattern id per instance so multiple\n * copies on the same page don't collide.\n */\nimport { useId } from 'react';\n\nimport { cn } from '../../../lib/utils';\nexport interface PlaceholderPatternProps {\n\tclassName?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n\tconst patternId = useId();\n\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('placeholder-pattern--component', className)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\tx=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"10\"\n\t\t\t\t\theight=\"10\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"0.75\"\n\t\t\t\t\t\tstrokeLinecap=\"square\"\n\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t/>\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect\n\t\t\t\tstroke=\"none\"\n\t\t\t\tfill={`url(#${patternId})`}\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"100%\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nPlaceholderPattern.displayName = 'PlaceholderPattern';\n\n","/**\n * VisuallyHidden — hides content from sighted users while keeping it readable\n * by assistive tech (screen readers, voice). Use to label icon-only buttons,\n * give context to status changes, or expose extra structure for AT users.\n */\nimport * as React from 'react';\n\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport interface VisuallyHiddenProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function VisuallyHidden({ children, className }: VisuallyHiddenProps) {\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t)\n\t\t\t: children;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={cn('visually-hidden--component', \n\t\t\t\t'absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0',\n\t\t\t\t'[clip:rect(0,0,0,0)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{content}\n\t\t</span>\n\t);\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","/**\n * DateBlock — a semantic calendar tile for event, schedule, and timeline rows.\n *\n * The stacked layout owns a compact fixed-format tile; the inline layout is a\n * lower-emphasis date stamp. Both share locale resolution, machine-readable\n * `<time>` semantics, size/tone variants, optional year display, and flexible\n * time metadata (including time ranges supplied as consumer content).\n */\nimport { format, type Locale } from 'date-fns';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport {\n\tparseDateInput,\n\ttype DateInput,\n} from '../../primitives';\nimport { Text } from '../../typography';\nimport {\n\ttype ComponentScale,\n\tuseDatesConfig,\n\tuseDensityConfig,\n} from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport type { SemanticTone } from '../../../lib/component-vocabulary';\nimport { toneRecipes } from '../../../lib/tone-recipes';\n\nexport type DateBlockLayout = 'stacked' | 'inline';\nexport type DateBlockTimePlacement = 'inline' | 'below' | 'hidden';\nexport type DateBlockTone = SemanticTone;\nexport type DateBlockVariant = 'default' | 'muted' | 'inverse';\nexport type DateBlockSize = ComponentScale;\n\nexport interface DateBlockStrings {\n\t/** Separator between the inline date and time metadata. */\n\tseparator: string;\n\t/** Accessible name used when `date` is empty or invalid. */\n\tunavailableLabel: string;\n}\n\nexport const defaultDateBlockStrings: DateBlockStrings = {\n\tseparator: '·',\n\tunavailableLabel: 'Date unavailable',\n};\n\nexport interface DateBlockProps\n\textends Omit<ComponentPropsWithoutRef<'time'>, 'children' | 'dateTime'> {\n\t/** Date instance, ISO string, unix timestamp, or an empty value. */\n\tdate?: DateInput;\n\t/** Time or time-range metadata, already formatted by the consumer. */\n\ttime?: ReactNode;\n\t/** Override the machine-readable value placed on the native `<time>`. */\n\tdateTime?: string;\n\t/** date-fns locale. Falls back to `<UIProvider config={{ dates: { locale } }}>`. */\n\tlocale?: Locale;\n\t/** Visual layout. @default \"stacked\" */\n\tlayout?: DateBlockLayout;\n\t/** Where time metadata renders. Defaults to `inline` for inline layout and `below` for stacked. */\n\ttimePlacement?: DateBlockTimePlacement;\n\t/** Semantic color treatment. @default \"neutral\" */\n\ttone?: DateBlockTone;\n\t/** Structural surface treatment. @default \"default\" */\n\tvariant?: DateBlockVariant;\n\t/** Structural scale. Falls back to `UIProvider.density.defaultScale`, then `md`. */\n\tsize?: DateBlockSize;\n\t/** Render a bounded surface. Defaults to `true` for stacked and `false` for inline. */\n\tboxed?: boolean;\n\t/** Show the weekday heading. @default true */\n\tshowWeekday?: boolean;\n\t/** Show the month label. @default true */\n\tshowMonth?: boolean;\n\t/** Show the year label for cross-year schedules and timelines. @default false */\n\tshowYear?: boolean;\n\t/** Visual fallback for an empty or invalid date. @default \"—\" */\n\temptyLabel?: ReactNode;\n\t/** date-fns day-of-month format. @default \"d\" */\n\tdayFormat?: string;\n\t/** date-fns weekday format. @default \"EEE\" */\n\tweekdayFormat?: string;\n\t/** date-fns month format. @default \"MMM\" */\n\tmonthFormat?: string;\n\t/** date-fns year format. @default \"yyyy\" */\n\tyearFormat?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<DateBlockStrings>;\n}\n\ninterface DateBlockToneClasses {\n\tframe: string;\n\t/** Content above the body. */\n\theader: string;\n\tprimary: string;\n\tsecondary: string;\n}\n\nconst toneClassMap: Record<DateBlockTone, DateBlockToneClasses> = {\n\tneutral: {\n\t\tframe: 'border-border bg-card',\n\t\theader: 'border-border/60 bg-muted/50 text-card-foreground',\n\t\tprimary: 'text-card-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsecondary: {\n\t\tframe: 'border-border bg-muted/30',\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tprimary: {\n\t\tframe: `${toneRecipes.primary.edge} ${toneRecipes.primary.wash}`,\n\t\theader: `${toneRecipes.primary.edge} ${toneRecipes.primary.tint} ${toneRecipes.primary.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tdestructive: {\n\t\tframe: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.wash}`,\n\t\theader: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinfo: {\n\t\tframe: `${toneRecipes.info.edge} ${toneRecipes.info.wash}`,\n\t\theader: `${toneRecipes.info.edge} ${toneRecipes.info.tint} ${toneRecipes.info.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsuccess: {\n\t\tframe: `${toneRecipes.success.edge} ${toneRecipes.success.wash}`,\n\t\theader: `${toneRecipes.success.edge} ${toneRecipes.success.tint} ${toneRecipes.success.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\twarning: {\n\t\tframe: `${toneRecipes.warning.edge} ${toneRecipes.warning.wash}`,\n\t\theader: `${toneRecipes.warning.edge} ${toneRecipes.warning.tint} ${toneRecipes.warning.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n};\n\nconst variantClassMap: Record<DateBlockVariant, DateBlockToneClasses> = {\n\tdefault: { frame: '', header: '', primary: '', secondary: '' },\n\tmuted: {\n\t\tframe: 'border-border bg-muted/30',\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinverse: {\n\t\tframe: 'border-inverse-border bg-inverse-background',\n\t\theader: 'border-inverse-border bg-inverse-surface text-inverse-muted',\n\t\tprimary: 'text-inverse-foreground',\n\t\tsecondary: 'text-inverse-muted',\n\t},\n};\n\nconst stackedSizeClass: Record<DateBlockSize, { frame: string; header: string; body: string }> = {\n\tsm: {\n\t\tframe: 'w-12',\n\t\theader: 'px-control-xs py-space-2xs',\n\t\tbody: 'min-h-control px-control-xs py-space-xs',\n\t},\n\tmd: {\n\t\tframe: 'w-14',\n\t\theader: 'px-control-sm py-space-xs',\n\t\tbody: 'min-h-control-lg px-control-sm py-space-sm',\n\t},\n\tlg: {\n\t\tframe: 'w-16',\n\t\theader: 'px-control py-space-sm',\n\t\tbody: 'min-h-control-lg px-control py-space-md',\n\t},\n};\n\nconst inlineSizeClass: Record<DateBlockSize, { gap: string; padding: string }> = {\n\tsm: { gap: 'gap-space-sm', padding: 'px-control-xs py-space-xs' },\n\tmd: { gap: 'gap-space-md', padding: 'px-control-sm py-space-sm' },\n\tlg: { gap: 'gap-space-lg', padding: 'px-control py-space-md' },\n};\n\nfunction hasContent(value: ReactNode): boolean {\n\treturn value !== null && value !== undefined && value !== '';\n}\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport function DateBlock({\n\tdate,\n\ttime,\n\tdateTime,\n\tlocale: localeProp,\n\tlayout = 'stacked',\n\ttimePlacement,\n\ttone = 'neutral',\n\tvariant = 'default',\n\tsize: sizeProp,\n\tboxed,\n\tshowWeekday = true,\n\tshowMonth = true,\n\tshowYear = false,\n\temptyLabel = '—',\n\tdayFormat = 'd',\n\tweekdayFormat = 'EEE',\n\tmonthFormat = 'MMM',\n\tyearFormat = 'yyyy',\n\tclassName,\n\tstrings: stringsProp,\n\t'aria-label': ariaLabel,\n\t...props\n}: DateBlockProps) {\n\tconst dates = useDatesConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst locale = localeProp ?? dates.locale;\n\tconst strings = useStrings(defaultDateBlockStrings, stringsProp);\n\tconst resolved = parseDateInput(date);\n\tconst tones = toneClassMap[tone];\n\tconst variants = variantClassMap[variant];\n\tconst useBox = boxed ?? layout === 'stacked';\n\tconst primaryClass = cn(tones.primary, variants.primary, !useBox && tone === 'neutral' && variant === 'default' && 'text-foreground');\n\tconst resolvedTimePlacement = timePlacement ?? (layout === 'inline' ? 'inline' : 'below');\n\tconst showsTime = hasContent(time) && resolvedTimePlacement !== 'hidden';\n\tconst formatOptions = locale ? { locale } : undefined;\n\n\tconst weekday = resolved ? format(resolved, weekdayFormat, formatOptions) : null;\n\tconst day = resolved ? format(resolved, dayFormat, formatOptions) : null;\n\tconst month = resolved ? format(resolved, monthFormat, formatOptions) : null;\n\tconst year = resolved ? format(resolved, yearFormat, formatOptions) : null;\n\tconst machineValue = dateTime ?? (resolved ? format(resolved, 'yyyy-MM-dd') : undefined);\n\tconst resolvedAriaLabel = ariaLabel ?? (resolved ? undefined : strings.unavailableLabel);\n\n\tif (layout === 'inline') {\n\t\tconst dateRow = (\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--frame box-border inline-flex min-w-0 items-center rounded-radius tabular-nums',\n\t\t\t\t\tinlineSizeClass[size].gap,\n\t\t\t\t\tuseBox && cn('border', inlineSizeClass[size].padding, tones.frame, variants.frame),\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!!showWeekday && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--weekday', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{weekday}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className={cn('date-block--day', primaryClass)}>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--month-year', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showsTime && resolvedTimePlacement === 'inline' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className={cn(tones.secondary, variants.secondary)} aria-hidden>\n\t\t\t\t\t\t\t\t\t{strings.separator}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{isSimpleText(time) ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--time tabular-nums', primaryClass)}>\n\t\t\t\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) : time}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\n\t\treturn (\n\t\t\t<time\n\t\t\t\tdateTime={machineValue}\n\t\t\t\taria-label={resolvedAriaLabel}\n\t\t\t\tdata-layout={layout}\n\t\t\t\tdata-size={size}\n\t\t\t\tdata-tone={tone}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--component inline-flex min-w-0',\n\t\t\t\t\tresolvedTimePlacement === 'below'\n\t\t\t\t\t\t? 'flex-col items-start gap-space-xs'\n\t\t\t\t\t\t: 'items-center',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{dateRow}\n\t\t\t\t{showsTime && resolvedTimePlacement === 'below' && (\n\t\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : time\n\t\t\t\t)}\n\t\t\t</time>\n\t\t);\n\t}\n\n\tconst tile = (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--frame box-border inline-flex shrink-0 flex-col overflow-hidden rounded-radius tabular-nums',\n\t\t\t\tstackedSizeClass[size].frame,\n\t\t\t\tuseBox && cn('border', tones.frame, variants.frame),\n\t\t\t)}\n\t\t>\n\t\t\t{resolved && showWeekday && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'date-block--weekday block text-center',\n\t\t\t\t\t\tstackedSizeClass[size].header,\n\t\t\t\t\t\tuseBox ? cn('border-b', tones.header, variants.header) : cn(tones.secondary, variants.secondary),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--body box-border flex flex-col items-center justify-center gap-space-2xs text-center',\n\t\t\t\t\tstackedSizeClass[size].body,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize={size === 'sm' ? 'sm' : size === 'lg' ? 'lg' : 'base'}\n\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\tlineHeight=\"none\"\n\t\t\t\t\t\t\tclassName={cn('date-block--day', primaryClass)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\t\t\t\tclassName={cn('date-block--month-year', tones.secondary, variants.secondary)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<time\n\t\t\tdateTime={machineValue}\n\t\t\taria-label={resolvedAriaLabel}\n\t\t\tdata-layout={layout}\n\t\t\tdata-size={size}\n\t\t\tdata-tone={tone}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--component inline-flex',\n\t\t\t\tshowsTime && resolvedTimePlacement === 'inline'\n\t\t\t\t\t? 'flex-row items-center gap-space-sm'\n\t\t\t\t\t: 'flex-col items-center gap-space-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{tile}\n\t\t\t{showsTime && (\n\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t{time}\n\t\t\t\t\t</Text>\n\t\t\t\t) : time\n\t\t\t)}\n\t\t</time>\n\t);\n}\n\nDateBlock.displayName = 'DateBlock';\n","export interface ContentBlockStrings {\n\tactionsLabel: string;\n\ttooltipLabel: string;\n}\n\nexport const defaultContentBlockStrings: ContentBlockStrings = {\n\tactionsLabel: 'More actions',\n\ttooltipLabel: 'More information',\n};\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { Card } from '../cards';\nimport type { ActionMenuAction } from '../action-menu';\nimport type { StructureGap } from '../structure';\nimport type { AlertTone } from '../feedback';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport type { CardSurface, ComponentScale } from '../../../lib/component-vocabulary';\nimport { cn } from '../../../lib/utils';\nimport { defaultContentBlockStrings, type ContentBlockStrings } from './content-block.strings';\nexport type ContentBlockPadding = ComponentScale;\nexport type ContentBlockSurface = CardSurface;\nexport type ContentBlockTitleSize = ComponentScale;\nexport interface ContentBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n\t/** Leading glyph on the title line, muted and shrink-proof. */\n\ticon?: ReactNode;\n\t/** Block title. */\n\ttitle?: ReactNode;\n\t/** Supporting sentence under the title. */\n\tdescription?: ReactNode;\n\t/** Content immediately after the title, before the tooltip affordance. */\n\ttitleSuffix?: ReactNode;\n\t/** Explanatory copy behind an info affordance on the title line. */\n\ttooltip?: ReactNode;\n\t/** Accessible name for the tooltip trigger. Defaults to the `tooltipLabel` string. */\n\ttooltipAriaLabel?: string;\n\t/** Full-width row above the title, inside the header. */\n\theaderStart?: ReactNode;\n\t/**\n\t * Single control at the end of the header, before the overflow menu.\n\t * Use `actions` instead for a list of commands.\n\t */\n\theaderAction?: ReactNode;\n\t/** Content at the end of the header, before `headerAction` and the overflow menu. */\n\theaderEnd?: ReactNode;\n\t/** Overflow menu at the far end of the header. */\n\tactions?: readonly ActionMenuAction[];\n\t/** Accessible name for the overflow trigger. Defaults to the `actionsLabel` string. */\n\tactionsLabel?: string;\n\t/** Content between the alert and `children`. */\n\tcontentTop?: ReactNode;\n\t/** Content after `children`. */\n\tcontentBottom?: ReactNode;\n\t/** Muted text in the footer band. Renders alongside `footerSlot`. */\n\tfooterText?: ReactNode;\n\t/** Full-width footer band under the content, for a single primary action. */\n\tfooterSlot?: ReactNode;\n\t/** Banner between the header and the content. */\n\talert?: ReactNode;\n\t/** Tone of the `alert` banner. */\n\talertTone?: AlertTone;\n\t/** Optional structural padding. Omit it to keep the block card-free. */\n\tpadding?: ContentBlockPadding;\n\t/** Optional surface chrome. Omit it to inherit the caller's surface. */\n\tsurface?: ContentBlockSurface;\n\t/** Title typography. Defaults to the compact title size. */\n\ttitleSize?: ContentBlockTitleSize;\n\t/** Draws a rule between the header and the content. */\n\theaderDivider?: boolean;\n\t/** Draws a rule between the content and the footer. */\n\tfooterDivider?: boolean;\n\t/** Merged onto the header region. */\n\theaderClassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\t/** Optional semantic spacing between direct content children. */\n\tcontentGap?: StructureGap;\n\t/** Merged onto the footer region. */\n\tfooterClassName?: string;\n\t/** Overrides the block's own copy (overflow-menu and tooltip labels). */\n\tstrings?: StringsProp<ContentBlockStrings>;\n}\n\n\n/**\n * Migration adapter only; Card owns all rendering, slots and surface recipes.\n * @deprecated Use Card with surface=\"flat\" and padding=\"none\" for unframed content.\n */\nexport const ContentBlock = forwardRef<HTMLDivElement, ContentBlockProps>(function ContentBlock({\n padding, surface, strings: stringsProp, className, headerClassName, contentClassName, footerClassName, ...props\n}, ref) {\n const strings = useStrings(defaultContentBlockStrings, stringsProp);\n return <Card\n {...props}\n ref={ref}\n surface={surface ?? 'flat'}\n padding={padding ?? (surface && surface !== 'flat' ? 'md' : 'none')}\n strings={strings}\n data-component=\"content-block\"\n data-slot=\"content-block\"\n data-padding={padding}\n className={cn('content-block--component', className)}\n headerClassName={cn('content-block--header', headerClassName)}\n contentClassName={cn('content-block--content', contentClassName)}\n footerClassName={cn('content-block--footer', footerClassName)}\n />;\n});\nContentBlock.displayName = 'ContentBlock';\nexport { defaultContentBlockStrings, type ContentBlockStrings } from './content-block.strings';\n","/**\n * BooleanIndicator — labelled yes/no chip showing the truth of a value with an\n * optional check/cross icon. Use for compact metadata grids where each row\n * answers a single boolean question. Strings overridable for i18n.\n */\nimport { CheckCircle2, XCircle } from 'lucide-react';\nimport React, { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { Badge, type BadgeTone } from '../badge';\nimport { Stack } from '../structure';\nimport { DisplayLabel, Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nexport interface BooleanIndicatorStrings {\n\ttrue: string;\n\tfalse: string;\n}\n\nexport const defaultBooleanIndicatorStrings: BooleanIndicatorStrings = {\n\ttrue: 'Yes',\n\tfalse: 'No',\n};\n\nexport interface BooleanIndicatorProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n\t/** What the flag describes, rendered as the row's `DisplayLabel`. */\n\tlabel: React.ReactNode;\n\t/** The flag. `null` reads as unknown and uses the false presentation. Defaults to `false`. */\n\tvalue?: boolean | null;\n\t/** Shows the check/cross glyph beside the badge text. Defaults to `true`. */\n\tshowIcon?: boolean;\n\t/** Badge tone when `value` is true. Defaults to `success`. */\n\ttrueTone?: BadgeTone;\n\t/** Badge tone when `value` is false. Defaults to `secondary`. */\n\tfalseTone?: BadgeTone;\n\t/** Merged onto the badge. */\n\tbadgeClassName?: string;\n\t/** Overrides the yes/no copy. */\n\tstrings?: StringsProp<BooleanIndicatorStrings>;\n}\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport const BooleanIndicator = forwardRef<HTMLDivElement, BooleanIndicatorProps>(function BooleanIndicator({\n\tlabel,\n\tvalue = false,\n\tshowIcon = true,\n\ttrueTone = 'success',\n\tfalseTone = 'secondary',\n\tclassName,\n\tbadgeClassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultBooleanIndicatorStrings, stringsProp);\n\tconst isTrue = Boolean(value);\n\tconst Icon = isTrue ? CheckCircle2 : XCircle;\n\tconst badgeTone = isTrue ? trueTone : falseTone;\n\tconst content = isTrue ? strings.true : strings.false;\n\n\treturn (\n\t\t<Stack\n\t\t\tref={ref}\n\t\t\tdirection=\"horizontal\"\n\t\t\talign=\"center\"\n\t\t\tgap=\"md\"\n\t\t\tjustify=\"between\"\n\t\t\twrap={false}\n\t\t\tclassName={cn('boolean-indicator--component', \n\t\t\t\t'min-w-0 px-row-x py-row-y',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(label) ? <DisplayLabel className=\"min-w-0 wrap-anywhere\">{label}</DisplayLabel> : label}\n\t\t\t<Badge\n\t\t\t\ttone={badgeTone}\n\t\t\t\tclassName={cn('shrink-0 whitespace-nowrap', badgeClassName)}\n\t\t\t>\n\t\t\t\t{/*\n\t\t\t\t * `size-icon-sm` pairs with the badge's 12px label, matching the\n\t\t\t\t * rest of the package's badge icons. At `size-icon` the glyph\n\t\t\t\t * outgrew the text and pushed this badge to 26px, 4px taller\n\t\t\t\t * than every other badge in the library.\n\t\t\t\t */}\n\t\t\t\t{!!showIcon && <Icon className=\"size-icon-sm\" />}\n\t\t\t\t{isSimpleText(content) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</Text>\n\t\t\t\t) : content}\n\t\t\t</Badge>\n\t\t</Stack>\n\t);\n});\n\nBooleanIndicator.displayName = 'BooleanIndicator';\n"],"mappings":";;;;;;;;;;;;;;;AAYA,SAAgBa,EAAmB,EAAE,gBAAsC;CAC1E,IAAMC,IAAYC,EAAM;CAExB,OACC,kBAAC,OAAD;EACC,WAAWV,EAAG,kCAAkCW,CAAS;EACzD,MAAK;EACL,QAAO;EACP,eAAY;EAJb,UAAA,CAMC,kBAAC,QAAD,EAAA,UACC,kBAAC,WAAD;GACC,IAAIF;GACJ,GAAE;GACF,GAAE;GACF,OAAM;GACN,QAAO;GACP,cAAa;GAEb,UAAA,kBAAC,QAAD;IACC,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,cAAa;GACb,CAAA;EACO,CAAA,EACJ,CAAA,GACN,kBAAC,QAAD;GACC,QAAO;GACP,MAAM,QAAQA,EAAU;GACxB,OAAM;GACN,QAAO;EACP,CAAA,CACG;;AAEP;AAEA,EAAmB,cAAc;;;ACnCjC,SAAgBG,EAAe,EAAE,aAAU,gBAAkC;CAC5E,IAAMC,IACL,OAAOC,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa,WAElF,kBAACb,GAAD;EAAM,KAAI;EAAO,MAAK;EAAU,YAAW;EAAO,WAAU;EAC1D;CACI,CAAA,IAELa;CAEJ,OACC,kBAAC,QAAD;EACC,WAAWd,EAAG,8BACb,2EACA,wBACAW,CACD;EAEC,UAAAE;CACI,CAAA;AAER;AAEA,EAAe,cAAc;;;ACE7B,IAAaE,IAA4C;CACxD,WAAW;CACX,kBAAkB;AACnB,GAoDMC,IAA4D;CACjE,SAAS;EACR,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;CACA,WAAW;EACV,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO,GAAGb,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EAC1D,QAAQ,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EACvF,SAAS;EACT,WAAW;CACZ;CACA,aAAa;EACZ,OAAO,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY;EAClE,QAAQ,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY;EACnG,SAAS;EACT,WAAW;CACZ;CACA,MAAM;EACL,OAAO,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK;EACpD,QAAQ,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK;EAC9E,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EAC1D,QAAQ,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EACvF,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EAC1D,QAAQ,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EACvF,SAAS;EACT,WAAW;CACZ;AACD,GAEMc,IAAkE;CACvE,SAAS;EAAE,OAAO;EAAI,QAAQ;EAAI,SAAS;EAAI,WAAW;CAAG;CAC7D,OAAO;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;AACD,GAEMC,IAA2F;CAChG,IAAI;EACH,OAAO;EACP,QAAQ;EACR,MAAM;CACP;CACA,IAAI;EACH,OAAO;EACP,QAAQ;EACR,MAAM;CACP;CACA,IAAI;EACH,OAAO;EACP,QAAQ;EACR,MAAM;CACP;AACD,GAEMC,IAA2E;CAChF,IAAI;EAAE,KAAK;EAAgB,SAAS;CAA4B;CAChE,IAAI;EAAE,KAAK;EAAgB,SAAS;CAA4B;CAChE,IAAI;EAAE,KAAK;EAAgB,SAAS;CAAyB;AAC9D;AAEA,SAASC,GAAW,GAA2B;CAC9C,OAAOC,KAAU,QAA+BA,MAAU;AAC3D;AAEA,SAAS1B,EAAa,GAAqD;CAC1E,OAAO,OAAO0B,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAEA,SAAgBE,EAAU,EACzB,SACA,SACA,aACA,QAAQC,GACR,YAAS,WACT,kBACA,UAAO,WACP,aAAU,WACV,MAAMC,GACN,UACA,iBAAc,IACd,eAAY,IACZ,cAAW,IACX,gBAAa,KACb,eAAY,KACZ,mBAAgB,OAChB,iBAAc,OACd,iBAAa,QACb,cACA,SAASC,IACT,cAAcC,IACd,GAAGC,KACe;CAClB,IAAMC,IAAQhC,EAAe,GACvB,EAAE,qBAAiBC,EAAiB,GACpCgC,IAAO/B,EAAsB0B,GAAUM,EAAY,GACnDC,IAASR,KAAcK,EAAM,QAC7BI,IAAUC,EAAWnB,GAAyBW,EAAW,GACzDS,IAAW9B,EAAe+B,CAAI,GAC9BC,IAAQrB,EAAasB,IACrBC,IAAWtB,EAAgBuB,IAC3BC,IAASC,KAASC,MAAW,WAC7BC,IAAe5C,EAAGqC,EAAM,SAASE,EAAS,SAAS,CAACE,KAAUH,MAAS,aAAaE,MAAY,aAAa,iBAAiB,GAC9HK,IAAwBC,MAAkBH,MAAW,WAAW,WAAW,UAC3EI,IAAY3B,GAAW4B,CAAI,KAAKH,MAA0B,UAC1DI,IAAgBjB,IAAS,EAAE,UAAO,IAAI,KAAA,GAEtCkB,IAAUf,IAAWgB,EAAOhB,GAAUiB,GAAeH,CAAa,IAAI,MACtEI,IAAMlB,IAAWgB,EAAOhB,GAAUmB,GAAWL,CAAa,IAAI,MAC9DM,IAAQpB,IAAWgB,EAAOhB,GAAUqB,GAAaP,CAAa,IAAI,MAClEQ,IAAOtB,IAAWgB,EAAOhB,GAAUuB,IAAYT,CAAa,IAAI,MAChEU,IAAeC,MAAazB,IAAWgB,EAAOhB,GAAU,YAAY,IAAI,KAAA,IACxE0B,IAAoBlC,OAAcQ,IAAW,KAAA,IAAYF,EAAQ;CAEvE,IAAIU,MAAW,UAAU;EACxB,IAAMmB,IACL,kBAAC,QAAD;GACC,WAAW9D,EACV,6FACAmB,EAAgBW,EAAK,CAAC,KACtBW,KAAUzC,EAAG,UAAUmB,EAAgBW,EAAK,CAAC,SAASO,EAAM,OAAOE,EAAS,KAAK,CAClF;GAEC,UAAAJ,IACA,kBAAAvC,GAAA,EAAA,UAAA;IACE,CAAC,CAACmE,KACF,kBAAC9D,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,QAAO;KAAS,WAAWD,EAAG,uBAAuBqC,EAAM,WAAWE,EAAS,SAAS;KACjH,UAAAW;IACI,CAAA;IAEP,kBAACjD,GAAD;KAAM,KAAI;KAAO,QAAO;KAAW,WAAWD,EAAG,mBAAmB4C,CAAY;KAC9E,UAAAS;IACI,CAAA;KACJW,KAAaC,MACd,kBAAChE,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,MAAK;KAAY,WAAWD,EAAG,0BAA0BqC,EAAM,WAAWE,EAAS,SAAS;KACrH,UAAA,CAACyB,IAAYT,IAAQ,MAAMU,IAAWR,IAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;IACvE,CAAA;IAENV,KAAaF,MAA0B,YACvC,kBAAAjD,GAAA,EAAA,UAAA,CACC,kBAACK,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,WAAWD,EAAGqC,EAAM,WAAWE,EAAS,SAAS;KAAG,eAAA;KAC7E,UAAAN,EAAQ;IACJ,CAAA,GACLtC,EAAaqD,CAAI,IACjB,kBAAC/C,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,QAAO;KAAS,WAAWD,EAAG,iCAAiC4C,CAAY;KACpG,UAAAI;IACI,CAAA,IACHA,CACH,EAAA,CAAA;GAEF,EAAA,CAAA,IAEFrD,EAAauE,CAAU,IACtB,kBAACjE,GAAD;IAAM,KAAI;IAAO,MAAK;IAAY,WAAWD,EAAG,qBAAqBqC,EAAM,WAAWE,EAAS,SAAS;IACtG,UAAA2B;GACI,CAAA,IACHA;EAEA,CAAA;EAGP,OACC,kBAAC,QAAD;GACC,UAAUP;GACV,cAAYE;GACZ,eAAalB;GACb,aAAWb;GACX,aAAWQ;GACX,gBAAcE;GACd,WAAWxC,EACV,6CACA6C,MAA0B,UACvB,sCACA,gBACHlC,CACD;GACA,GAAIiB;GAdL,UAAA,CAgBEkC,GACAf,KAAaF,MAA0B,YACvClD,EAAaqD,CAAI,IAChB,kBAAC/C,GAAD;IAAM,KAAI;IAAO,MAAK;IAAK,MAAK;IAAY,WAAWD,EAAG,iCAAiCqC,EAAM,WAAWE,EAAS,SAAS;IAC5H,UAAAS;GACI,CAAA,IACHA,EAEA;;CAER;CAEA,IAAMmB,KACL,kBAAC,QAAD;EACC,WAAWnE,EACV,0GACAkB,EAAiBY,EAAK,CAAC,OACvBW,KAAUzC,EAAG,UAAUqC,EAAM,OAAOE,EAAS,KAAK,CACnD;EALD,UAAA,CAOEJ,KAAY4B,KACZ,kBAAC9D,GAAD;GACC,KAAI;GACJ,MAAK;GACL,QAAO;GACP,YAAW;GACX,WAAWD,EACV,yCACAkB,EAAiBY,EAAK,CAAC,QACvBW,IAASzC,EAAG,YAAYqC,EAAM,QAAQE,EAAS,MAAM,IAAIvC,EAAGqC,EAAM,WAAWE,EAAS,SAAS,CAChG;GAEC,UAAAW;EACI,CAAA,GAEP,kBAAC,QAAD;GACC,WAAWlD,EACV,mGACAkB,EAAiBY,EAAK,CAAC,IACxB;GAEC,UAAAK,IACA,kBAAAvC,GAAA,EAAA,UAAA,CACC,kBAACK,GAAD;IACC,KAAI;IACJ,MAAM6B,MAAS,OAAO,OAAOA,MAAS,OAAO,OAAO;IACpD,QAAO;IACP,YAAW;IACX,WAAW9B,EAAG,mBAAmB4C,CAAY;IAE5C,UAAAS;GACI,CAAA,IACJW,KAAaC,MACd,kBAAChE,GAAD;IACC,KAAI;IACJ,MAAK;IACL,YAAW;IACX,WAAWD,EAAG,0BAA0BqC,EAAM,WAAWE,EAAS,SAAS;IAE1E,UAAA,CAACyB,IAAYT,IAAQ,MAAMU,IAAWR,IAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;GACvE,CAAA,CAEN,EAAA,CAAA,IAEF9D,EAAauE,CAAU,IACtB,kBAACjE,GAAD;IAAM,KAAI;IAAO,MAAK;IAAY,WAAWD,EAAG,qBAAqBqC,EAAM,WAAWE,EAAS,SAAS;IACtG,UAAA2B;GACI,CAAA,IACHA;EAEA,CAAA,CACD;;CAGP,OACC,kBAAC,QAAD;EACC,UAAUP;EACV,cAAYE;EACZ,eAAalB;EACb,aAAWb;EACX,aAAWQ;EACX,gBAAcE;EACd,WAAWxC,EACV,qCACA+C,KAAaF,MAA0B,WACpC,uCACA,sCACHlC,CACD;EACA,GAAIiB;EAdL,UAAA,CAgBEuC,IACApB,MACApD,EAAaqD,CAAI,IAChB,kBAAC/C,GAAD;GAAM,KAAI;GAAO,MAAK;GAAK,MAAK;GAAY,WAAWD,EAAG,iCAAiCqC,EAAM,WAAWE,EAAS,SAAS;GAC5H,UAAAS;EACI,CAAA,IACHA,EAEA;;AAER;AAEA,EAAU,cAAc;;;AC3YxB,IAAaoB,IAAkD;CAC9D,cAAc;CACd,cAAc;AACf,GCqEaC,IAAeC,EAA8C,SAAsB,EAC/F,YAAS,YAAS,SAAS5C,GAAa,cAAW,oBAAiB,qBAAkB,oBAAiB,GAAGE,KACxG,GAAK;CACP,IAAMK,IAAUC,EAAWkC,GAA4B1C,CAAW;CAClE,OAAO,kBAACtB,GAAD;EACN,GAAIwB;EACC;EACL,SAAS2C,KAAW;EACpB,SAASC,MAAYD,KAAWA,MAAY,SAAS,OAAO;EACnD;EACT,kBAAe;EACf,aAAU;EACV,gBAAcC;EACd,WAAWxE,EAAG,4BAA4BW,CAAS;EACnD,iBAAiBX,EAAG,yBAAyByE,CAAe;EAC5D,kBAAkBzE,EAAG,0BAA0B0E,CAAgB;EAC/D,iBAAiB1E,EAAG,yBAAyB2E,CAAe;CAC5D,CAAA;AACF,CAAC;AACD,EAAa,cAAc;;;AC9E3B,IAAaC,IAA0D;CACtE,MAAM;CACN,OAAO;AACR;AAmBA,SAASC,EAAa,GAA2D;CAChF,OAAO,OAAOxD,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAEA,IAAayD,IAAmBR,EAAkD,SAA0B,EAC3G,UACA,WAAQ,IACR,cAAW,IACX,cAAW,WACX,eAAY,aACZ,cACA,mBACA,SAAS5C,GACT,GAAGE,KACD,GAAK;CACP,IAAMK,IAAUC,EAAW0C,GAAgClD,CAAW,GAChEqD,IAAS,EAAQ1D,GACjB2D,IAAOD,IAASE,IAAeC,GAC/BC,IAAYJ,IAASK,IAAWC,GAChCxE,IAAUkE,IAAS9C,EAAQ,OAAOA,EAAQ;CAEhD,OACC,kBAAC/B,GAAD;EACM;EACL,WAAU;EACV,OAAM;EACN,KAAI;EACJ,SAAQ;EACR,MAAM;EACN,WAAWF,EAAG,gCACb,6BACAW,CACD;EACA,GAAIiB;EAXL,UAAA,CAaEiD,EAAaS,CAAK,IAAI,kBAACC,GAAD;GAAc,WAAU;GAAyB,UAAAD;EAAoB,CAAA,IAAIA,GAChG,kBAAChF,GAAD;GACC,MAAM6E;GACN,WAAWnF,EAAG,8BAA8BwF,CAAc;GAF3D,UAAA,CAUE,CAAC,CAACC,KAAY,kBAACT,GAAD,EAAM,WAAU,eAAgB,CAAA,GAC9CH,EAAahE,CAAO,IACpB,kBAACZ,GAAD;IAAM,KAAI;IAAO,MAAK;IAAU,QAAO;IAAS,YAAW;IAAO,WAAU;IAC1E,UAAAY;GACI,CAAA,IACHA,CACE;EACD,CAAA,CAAA;;AAET,CAAC;AAED,EAAiB,cAAc"}
1
+ {"version":3,"file":"display-KsZLw9Ov.js","names":["isSimpleText","_Fragment","resolveComponentScale","useDensityConfig","useDatesConfig","cn","Text","Stack","toneRecipes","Card","parseDateInput","Badge","Fragment$1","PlaceholderPattern","patternId","useId","className","VisuallyHidden","content","children","defaultDateBlockStrings","toneClassMap","variantClassMap","stackedSizeClass","inlineSizeClass","hasContent","value","isSimpleText$1","DateBlock","localeProp","sizeProp","stringsProp","ariaLabel","props","dates","size","defaultScale","locale","strings","useStrings","resolved","date","tones","tone","variants","variant","useBox","boxed","layout","primaryClass","resolvedTimePlacement","timePlacement","showsTime","time","formatOptions","weekday","format","weekdayFormat","day","dayFormat","month","monthFormat","year","yearFormat","machineValue","dateTime","resolvedAriaLabel","dateRow","showWeekday","showMonth","showYear","emptyLabel","tile","defaultContentBlockStrings","ContentBlock","forwardRef","surface","padding","headerClassName","contentClassName","footerClassName","defaultBooleanIndicatorStrings","isSimpleText","BooleanIndicator","isTrue","Icon","CheckCircle2","XCircle","badgeTone","trueTone","falseTone","label","DisplayLabel","badgeClassName","showIcon"],"sources":["../src/components/base/display/placeholder-pattern.tsx","../src/components/base/display/visually-hidden.tsx","../src/components/base/display/date-block.tsx","../src/components/base/display/content-block.strings.ts","../src/components/base/display/content-block.tsx","../src/components/base/display/boolean-indicator.tsx"],"sourcesContent":["/**\n * PlaceholderPattern — diagonal-stripe SVG fill suitable as a skeleton or\n * empty-region indicator. Uses a unique pattern id per instance so multiple\n * copies on the same page don't collide.\n */\nimport { useId } from 'react';\n\nimport { cn } from '../../../lib/utils';\nexport interface PlaceholderPatternProps {\n\tclassName?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n\tconst patternId = useId();\n\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('placeholder-pattern--component', className)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\tx=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"10\"\n\t\t\t\t\theight=\"10\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"0.75\"\n\t\t\t\t\t\tstrokeLinecap=\"square\"\n\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t/>\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect\n\t\t\t\tstroke=\"none\"\n\t\t\t\tfill={`url(#${patternId})`}\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"100%\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nPlaceholderPattern.displayName = 'PlaceholderPattern';\n\n","/**\n * VisuallyHidden — hides content from sighted users while keeping it readable\n * by assistive tech (screen readers, voice). Use to label icon-only buttons,\n * give context to status changes, or expose extra structure for AT users.\n */\nimport * as React from 'react';\n\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport interface VisuallyHiddenProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function VisuallyHidden({ children, className }: VisuallyHiddenProps) {\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t)\n\t\t\t: children;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={cn('visually-hidden--component', \n\t\t\t\t'absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0',\n\t\t\t\t'[clip:rect(0,0,0,0)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{content}\n\t\t</span>\n\t);\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","/**\n * DateBlock — a semantic calendar tile for event, schedule, and timeline rows.\n *\n * The stacked layout owns a compact fixed-format tile; the inline layout is a\n * lower-emphasis date stamp. Both share locale resolution, machine-readable\n * `<time>` semantics, size/tone variants, optional year display, and flexible\n * time metadata (including time ranges supplied as consumer content).\n */\nimport { format, type Locale } from 'date-fns';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport {\n\tparseDateInput,\n\ttype DateInput,\n} from '../../primitives';\nimport { Text } from '../../typography';\nimport {\n\ttype ComponentScale,\n\tuseDatesConfig,\n\tuseDensityConfig,\n} from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport type { SemanticTone } from '../../../lib/component-vocabulary';\nimport { toneRecipes } from '../../../lib/tone-recipes';\n\nexport type DateBlockLayout = 'stacked' | 'inline';\nexport type DateBlockTimePlacement = 'inline' | 'below' | 'hidden';\nexport type DateBlockTone = SemanticTone;\nexport type DateBlockVariant = 'default' | 'muted' | 'inverse';\nexport type DateBlockSize = ComponentScale;\n\nexport interface DateBlockStrings {\n\t/** Separator between the inline date and time metadata. */\n\tseparator: string;\n\t/** Accessible name used when `date` is empty or invalid. */\n\tunavailableLabel: string;\n}\n\nexport const defaultDateBlockStrings: DateBlockStrings = {\n\tseparator: '·',\n\tunavailableLabel: 'Date unavailable',\n};\n\nexport interface DateBlockProps\n\textends Omit<ComponentPropsWithoutRef<'time'>, 'children' | 'dateTime'> {\n\t/** Date instance, ISO string, unix timestamp, or an empty value. */\n\tdate?: DateInput;\n\t/** Time or time-range metadata, already formatted by the consumer. */\n\ttime?: ReactNode;\n\t/** Override the machine-readable value placed on the native `<time>`. */\n\tdateTime?: string;\n\t/** date-fns locale. Falls back to `<UIProvider config={{ dates: { locale } }}>`. */\n\tlocale?: Locale;\n\t/** Visual layout. @default \"stacked\" */\n\tlayout?: DateBlockLayout;\n\t/** Where time metadata renders. Defaults to `inline` for inline layout and `below` for stacked. */\n\ttimePlacement?: DateBlockTimePlacement;\n\t/** Semantic color treatment. @default \"neutral\" */\n\ttone?: DateBlockTone;\n\t/** Structural surface treatment. @default \"default\" */\n\tvariant?: DateBlockVariant;\n\t/** Structural scale. Falls back to `UIProvider.density.defaultScale`, then `md`. */\n\tsize?: DateBlockSize;\n\t/** Render a bounded surface. Defaults to `true` for stacked and `false` for inline. */\n\tboxed?: boolean;\n\t/** Show the weekday heading. @default true */\n\tshowWeekday?: boolean;\n\t/** Show the month label. @default true */\n\tshowMonth?: boolean;\n\t/** Show the year label for cross-year schedules and timelines. @default false */\n\tshowYear?: boolean;\n\t/** Visual fallback for an empty or invalid date. @default \"—\" */\n\temptyLabel?: ReactNode;\n\t/** date-fns day-of-month format. @default \"d\" */\n\tdayFormat?: string;\n\t/** date-fns weekday format. @default \"EEE\" */\n\tweekdayFormat?: string;\n\t/** date-fns month format. @default \"MMM\" */\n\tmonthFormat?: string;\n\t/** date-fns year format. @default \"yyyy\" */\n\tyearFormat?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<DateBlockStrings>;\n}\n\ninterface DateBlockToneClasses {\n\tframe: string;\n\t/** Content above the body. */\n\theader: string;\n\tprimary: string;\n\tsecondary: string;\n}\n\nconst toneClassMap: Record<DateBlockTone, DateBlockToneClasses> = {\n\tneutral: {\n\t\tframe: 'border-border bg-card',\n\t\theader: 'border-border/60 bg-muted/50 text-card-foreground',\n\t\tprimary: 'text-card-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsecondary: {\n\t\tframe: 'border-border bg-muted/30',\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tprimary: {\n\t\tframe: `${toneRecipes.primary.edge} ${toneRecipes.primary.wash}`,\n\t\theader: `${toneRecipes.primary.edge} ${toneRecipes.primary.tint} ${toneRecipes.primary.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tdestructive: {\n\t\tframe: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.wash}`,\n\t\theader: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinfo: {\n\t\tframe: `${toneRecipes.info.edge} ${toneRecipes.info.wash}`,\n\t\theader: `${toneRecipes.info.edge} ${toneRecipes.info.tint} ${toneRecipes.info.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsuccess: {\n\t\tframe: `${toneRecipes.success.edge} ${toneRecipes.success.wash}`,\n\t\theader: `${toneRecipes.success.edge} ${toneRecipes.success.tint} ${toneRecipes.success.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\twarning: {\n\t\tframe: `${toneRecipes.warning.edge} ${toneRecipes.warning.wash}`,\n\t\theader: `${toneRecipes.warning.edge} ${toneRecipes.warning.tint} ${toneRecipes.warning.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n};\n\nconst variantClassMap: Record<DateBlockVariant, DateBlockToneClasses> = {\n\tdefault: { frame: '', header: '', primary: '', secondary: '' },\n\tmuted: {\n\t\tframe: 'border-border bg-muted/30',\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinverse: {\n\t\tframe: 'border-inverse-border bg-inverse-background',\n\t\theader: 'border-inverse-border bg-inverse-surface text-inverse-muted',\n\t\tprimary: 'text-inverse-foreground',\n\t\tsecondary: 'text-inverse-muted',\n\t},\n};\n\nconst stackedSizeClass: Record<DateBlockSize, { frame: string; header: string; body: string }> = {\n\tsm: {\n\t\tframe: 'w-12',\n\t\theader: 'px-control-xs py-space-2xs',\n\t\tbody: 'min-h-control px-control-xs py-space-xs',\n\t},\n\tmd: {\n\t\tframe: 'w-14',\n\t\theader: 'px-control-sm py-space-xs',\n\t\tbody: 'min-h-control-lg px-control-sm py-space-sm',\n\t},\n\tlg: {\n\t\tframe: 'w-16',\n\t\theader: 'px-control py-space-sm',\n\t\tbody: 'min-h-control-lg px-control py-space-md',\n\t},\n};\n\nconst inlineSizeClass: Record<DateBlockSize, { gap: string; padding: string }> = {\n\tsm: { gap: 'gap-space-sm', padding: 'px-control-xs py-space-xs' },\n\tmd: { gap: 'gap-space-md', padding: 'px-control-sm py-space-sm' },\n\tlg: { gap: 'gap-space-lg', padding: 'px-control py-space-md' },\n};\n\nfunction hasContent(value: ReactNode): boolean {\n\treturn value !== null && value !== undefined && value !== '';\n}\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport function DateBlock({\n\tdate,\n\ttime,\n\tdateTime,\n\tlocale: localeProp,\n\tlayout = 'stacked',\n\ttimePlacement,\n\ttone = 'neutral',\n\tvariant = 'default',\n\tsize: sizeProp,\n\tboxed,\n\tshowWeekday = true,\n\tshowMonth = true,\n\tshowYear = false,\n\temptyLabel = '—',\n\tdayFormat = 'd',\n\tweekdayFormat = 'EEE',\n\tmonthFormat = 'MMM',\n\tyearFormat = 'yyyy',\n\tclassName,\n\tstrings: stringsProp,\n\t'aria-label': ariaLabel,\n\t...props\n}: DateBlockProps) {\n\tconst dates = useDatesConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst locale = localeProp ?? dates.locale;\n\tconst strings = useStrings(defaultDateBlockStrings, stringsProp);\n\tconst resolved = parseDateInput(date);\n\tconst tones = toneClassMap[tone];\n\tconst variants = variantClassMap[variant];\n\tconst useBox = boxed ?? layout === 'stacked';\n\tconst primaryClass = cn(tones.primary, variants.primary, !useBox && tone === 'neutral' && variant === 'default' && 'text-foreground');\n\tconst resolvedTimePlacement = timePlacement ?? (layout === 'inline' ? 'inline' : 'below');\n\tconst showsTime = hasContent(time) && resolvedTimePlacement !== 'hidden';\n\tconst formatOptions = locale ? { locale } : undefined;\n\n\tconst weekday = resolved ? format(resolved, weekdayFormat, formatOptions) : null;\n\tconst day = resolved ? format(resolved, dayFormat, formatOptions) : null;\n\tconst month = resolved ? format(resolved, monthFormat, formatOptions) : null;\n\tconst year = resolved ? format(resolved, yearFormat, formatOptions) : null;\n\tconst machineValue = dateTime ?? (resolved ? format(resolved, 'yyyy-MM-dd') : undefined);\n\tconst resolvedAriaLabel = ariaLabel ?? (resolved ? undefined : strings.unavailableLabel);\n\n\tif (layout === 'inline') {\n\t\tconst dateRow = (\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--frame box-border inline-flex min-w-0 items-center rounded-radius tabular-nums',\n\t\t\t\t\tinlineSizeClass[size].gap,\n\t\t\t\t\tuseBox && cn('border', inlineSizeClass[size].padding, tones.frame, variants.frame),\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!!showWeekday && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--weekday', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{weekday}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className={cn('date-block--day', primaryClass)}>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--month-year', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showsTime && resolvedTimePlacement === 'inline' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className={cn(tones.secondary, variants.secondary)} aria-hidden>\n\t\t\t\t\t\t\t\t\t{strings.separator}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{isSimpleText(time) ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--time tabular-nums', primaryClass)}>\n\t\t\t\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) : time}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\n\t\treturn (\n\t\t\t<time\n\t\t\t\tdateTime={machineValue}\n\t\t\t\taria-label={resolvedAriaLabel}\n\t\t\t\tdata-layout={layout}\n\t\t\t\tdata-size={size}\n\t\t\t\tdata-tone={tone}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--component inline-flex min-w-0',\n\t\t\t\t\tresolvedTimePlacement === 'below'\n\t\t\t\t\t\t? 'flex-col items-start gap-space-xs'\n\t\t\t\t\t\t: 'items-center',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{dateRow}\n\t\t\t\t{showsTime && resolvedTimePlacement === 'below' && (\n\t\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : time\n\t\t\t\t)}\n\t\t\t</time>\n\t\t);\n\t}\n\n\tconst tile = (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--frame box-border inline-flex shrink-0 flex-col overflow-hidden rounded-radius tabular-nums',\n\t\t\t\tstackedSizeClass[size].frame,\n\t\t\t\tuseBox && cn('border', tones.frame, variants.frame),\n\t\t\t)}\n\t\t>\n\t\t\t{resolved && showWeekday && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'date-block--weekday block text-center',\n\t\t\t\t\t\tstackedSizeClass[size].header,\n\t\t\t\t\t\tuseBox ? cn('border-b', tones.header, variants.header) : cn(tones.secondary, variants.secondary),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--body box-border flex flex-col items-center justify-center gap-space-2xs text-center',\n\t\t\t\t\tstackedSizeClass[size].body,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize={size === 'sm' ? 'sm' : size === 'lg' ? 'lg' : 'base'}\n\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\tlineHeight=\"none\"\n\t\t\t\t\t\t\tclassName={cn('date-block--day', primaryClass)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\t\t\t\tclassName={cn('date-block--month-year', tones.secondary, variants.secondary)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<time\n\t\t\tdateTime={machineValue}\n\t\t\taria-label={resolvedAriaLabel}\n\t\t\tdata-layout={layout}\n\t\t\tdata-size={size}\n\t\t\tdata-tone={tone}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--component inline-flex',\n\t\t\t\tshowsTime && resolvedTimePlacement === 'inline'\n\t\t\t\t\t? 'flex-row items-center gap-space-sm'\n\t\t\t\t\t: 'flex-col items-center gap-space-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{tile}\n\t\t\t{showsTime && (\n\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t{time}\n\t\t\t\t\t</Text>\n\t\t\t\t) : time\n\t\t\t)}\n\t\t</time>\n\t);\n}\n\nDateBlock.displayName = 'DateBlock';\n","export interface ContentBlockStrings {\n\tactionsLabel: string;\n\ttooltipLabel: string;\n}\n\nexport const defaultContentBlockStrings: ContentBlockStrings = {\n\tactionsLabel: 'More actions',\n\ttooltipLabel: 'More information',\n};\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { Card } from '../cards';\nimport type { ActionMenuAction } from '../action-menu';\nimport type { StructureGap } from '../structure';\nimport type { AlertTone } from '../feedback';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport type { CardSurface, ComponentScale } from '../../../lib/component-vocabulary';\nimport { cn } from '../../../lib/utils';\nimport { defaultContentBlockStrings, type ContentBlockStrings } from './content-block.strings';\nexport type ContentBlockPadding = ComponentScale;\nexport type ContentBlockSurface = CardSurface;\nexport type ContentBlockTitleSize = ComponentScale;\nexport interface ContentBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n\t/** Leading glyph on the title line, muted and shrink-proof. */\n\ticon?: ReactNode;\n\t/** Block title. */\n\ttitle?: ReactNode;\n\t/** Supporting sentence under the title. */\n\tdescription?: ReactNode;\n\t/** Content immediately after the title, before the tooltip affordance. */\n\ttitleSuffix?: ReactNode;\n\t/** Explanatory copy behind an info affordance on the title line. */\n\ttooltip?: ReactNode;\n\t/** Accessible name for the tooltip trigger. Defaults to the `tooltipLabel` string. */\n\ttooltipAriaLabel?: string;\n\t/** Full-width row above the title, inside the header. */\n\theaderStart?: ReactNode;\n\t/**\n\t * Single control at the end of the header, before the overflow menu.\n\t * Use `actions` instead for a list of commands.\n\t */\n\theaderAction?: ReactNode;\n\t/** Content at the end of the header, before `headerAction` and the overflow menu. */\n\theaderEnd?: ReactNode;\n\t/** Overflow menu at the far end of the header. */\n\tactions?: readonly ActionMenuAction[];\n\t/** Accessible name for the overflow trigger. Defaults to the `actionsLabel` string. */\n\tactionsLabel?: string;\n\t/** Content between the alert and `children`. */\n\tcontentTop?: ReactNode;\n\t/** Content after `children`. */\n\tcontentBottom?: ReactNode;\n\t/** Muted text in the footer band. Renders alongside `footerSlot`. */\n\tfooterText?: ReactNode;\n\t/** Full-width footer band under the content, for a single primary action. */\n\tfooterSlot?: ReactNode;\n\t/** Banner between the header and the content. */\n\talert?: ReactNode;\n\t/** Tone of the `alert` banner. */\n\talertTone?: AlertTone;\n\t/** Optional structural padding. Omit it to keep the block card-free. */\n\tpadding?: ContentBlockPadding;\n\t/** Optional surface chrome. Omit it to inherit the caller's surface. */\n\tsurface?: ContentBlockSurface;\n\t/** Title typography. Defaults to the compact title size. */\n\ttitleSize?: ContentBlockTitleSize;\n\t/** Draws a rule between the header and the content. */\n\theaderDivider?: boolean;\n\t/** Draws a rule between the content and the footer. */\n\tfooterDivider?: boolean;\n\t/** Merged onto the header region. */\n\theaderClassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\t/** Optional semantic spacing between direct content children. */\n\tcontentGap?: StructureGap;\n\t/** Merged onto the footer region. */\n\tfooterClassName?: string;\n\t/** Overrides the block's own copy (overflow-menu and tooltip labels). */\n\tstrings?: StringsProp<ContentBlockStrings>;\n}\n\n\n/**\n * Migration adapter only; Card owns all rendering, slots and surface recipes.\n * @deprecated Use Card with surface=\"flat\" and padding=\"none\" for unframed content.\n */\nexport const ContentBlock = forwardRef<HTMLDivElement, ContentBlockProps>(function ContentBlock({\n padding, surface, strings: stringsProp, className, headerClassName, contentClassName, footerClassName, ...props\n}, ref) {\n const strings = useStrings(defaultContentBlockStrings, stringsProp);\n return <Card\n {...props}\n ref={ref}\n surface={surface ?? 'flat'}\n padding={padding ?? (surface && surface !== 'flat' ? 'md' : 'none')}\n strings={strings}\n data-component=\"content-block\"\n data-slot=\"content-block\"\n data-padding={padding}\n className={cn('content-block--component', className)}\n headerClassName={cn('content-block--header', headerClassName)}\n contentClassName={cn('content-block--content', contentClassName)}\n footerClassName={cn('content-block--footer', footerClassName)}\n />;\n});\nContentBlock.displayName = 'ContentBlock';\nexport { defaultContentBlockStrings, type ContentBlockStrings } from './content-block.strings';\n","/**\n * BooleanIndicator — labelled yes/no chip showing the truth of a value with an\n * optional check/cross icon. Use for compact metadata grids where each row\n * answers a single boolean question. Strings overridable for i18n.\n */\nimport { CheckCircle2, XCircle } from 'lucide-react';\nimport React, { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { Badge, type BadgeTone } from '../badge';\nimport { Stack } from '../structure';\nimport { DisplayLabel, Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nexport interface BooleanIndicatorStrings {\n\ttrue: string;\n\tfalse: string;\n}\n\nexport const defaultBooleanIndicatorStrings: BooleanIndicatorStrings = {\n\ttrue: 'Yes',\n\tfalse: 'No',\n};\n\nexport interface BooleanIndicatorProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n\t/** What the flag describes, rendered as the row's `DisplayLabel`. */\n\tlabel: React.ReactNode;\n\t/** The flag. `null` reads as unknown and uses the false presentation. Defaults to `false`. */\n\tvalue?: boolean | null;\n\t/** Shows the check/cross glyph beside the badge text. Defaults to `true`. */\n\tshowIcon?: boolean;\n\t/** Badge tone when `value` is true. Defaults to `success`. */\n\ttrueTone?: BadgeTone;\n\t/** Badge tone when `value` is false. Defaults to `secondary`. */\n\tfalseTone?: BadgeTone;\n\t/** Merged onto the badge. */\n\tbadgeClassName?: string;\n\t/** Overrides the yes/no copy. */\n\tstrings?: StringsProp<BooleanIndicatorStrings>;\n}\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport const BooleanIndicator = forwardRef<HTMLDivElement, BooleanIndicatorProps>(function BooleanIndicator({\n\tlabel,\n\tvalue = false,\n\tshowIcon = true,\n\ttrueTone = 'success',\n\tfalseTone = 'secondary',\n\tclassName,\n\tbadgeClassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultBooleanIndicatorStrings, stringsProp);\n\tconst isTrue = Boolean(value);\n\tconst Icon = isTrue ? CheckCircle2 : XCircle;\n\tconst badgeTone = isTrue ? trueTone : falseTone;\n\tconst content = isTrue ? strings.true : strings.false;\n\n\treturn (\n\t\t<Stack\n\t\t\tref={ref}\n\t\t\tdirection=\"horizontal\"\n\t\t\talign=\"center\"\n\t\t\tgap=\"md\"\n\t\t\tjustify=\"between\"\n\t\t\twrap={false}\n\t\t\tclassName={cn('boolean-indicator--component', \n\t\t\t\t'min-w-0 px-row-x py-row-y',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(label) ? <DisplayLabel className=\"min-w-0 wrap-anywhere\">{label}</DisplayLabel> : label}\n\t\t\t<Badge\n\t\t\t\ttone={badgeTone}\n\t\t\t\tclassName={cn('shrink-0 whitespace-nowrap', badgeClassName)}\n\t\t\t>\n\t\t\t\t{/*\n\t\t\t\t * `size-icon-sm` pairs with the badge's 12px label, matching the\n\t\t\t\t * rest of the package's badge icons. At `size-icon` the glyph\n\t\t\t\t * outgrew the text and pushed this badge to 26px, 4px taller\n\t\t\t\t * than every other badge in the library.\n\t\t\t\t */}\n\t\t\t\t{!!showIcon && <Icon className=\"size-icon-sm\" />}\n\t\t\t\t{isSimpleText(content) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</Text>\n\t\t\t\t) : content}\n\t\t\t</Badge>\n\t\t</Stack>\n\t);\n});\n\nBooleanIndicator.displayName = 'BooleanIndicator';\n"],"mappings":";;;;;;;;;;;;;;;AAYA,SAAgBa,EAAmB,EAAE,gBAAsC;CAC1E,IAAMC,IAAYC,EAAM;CAExB,OACC,kBAAC,OAAD;EACC,WAAWV,EAAG,kCAAkCW,CAAS;EACzD,MAAK;EACL,QAAO;EACP,eAAY;EAJb,UAAA,CAMC,kBAAC,QAAD,EAAA,UACC,kBAAC,WAAD;GACC,IAAIF;GACJ,GAAE;GACF,GAAE;GACF,OAAM;GACN,QAAO;GACP,cAAa;GAEb,UAAA,kBAAC,QAAD;IACC,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,cAAa;GACb,CAAA;EACO,CAAA,EACJ,CAAA,GACN,kBAAC,QAAD;GACC,QAAO;GACP,MAAM,QAAQA,EAAU;GACxB,OAAM;GACN,QAAO;EACP,CAAA,CACG;;AAEP;AAEA,EAAmB,cAAc;;;ACnCjC,SAAgBG,EAAe,EAAE,aAAU,gBAAkC;CAC5E,IAAMC,IACL,OAAOC,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa,WAElF,kBAACb,GAAD;EAAM,KAAI;EAAO,MAAK;EAAU,YAAW;EAAO,WAAU;EAC1D;CACI,CAAA,IAELa;CAEJ,OACC,kBAAC,QAAD;EACC,WAAWd,EAAG,8BACb,2EACA,wBACAW,CACD;EAEC,UAAAE;CACI,CAAA;AAER;AAEA,EAAe,cAAc;;;ACE7B,IAAaE,IAA4C;CACxD,WAAW;CACX,kBAAkB;AACnB,GAoDMC,IAA4D;CACjE,SAAS;EACR,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;CACA,WAAW;EACV,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO,GAAGb,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EAC1D,QAAQ,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EACvF,SAAS;EACT,WAAW;CACZ;CACA,aAAa;EACZ,OAAO,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY;EAClE,QAAQ,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY;EACnG,SAAS;EACT,WAAW;CACZ;CACA,MAAM;EACL,OAAO,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK;EACpD,QAAQ,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK;EAC9E,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EAC1D,QAAQ,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EACvF,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EAC1D,QAAQ,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ;EACvF,SAAS;EACT,WAAW;CACZ;AACD,GAEMc,IAAkE;CACvE,SAAS;EAAE,OAAO;EAAI,QAAQ;EAAI,SAAS;EAAI,WAAW;CAAG;CAC7D,OAAO;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;CACA,SAAS;EACR,OAAO;EACP,QAAQ;EACR,SAAS;EACT,WAAW;CACZ;AACD,GAEMC,IAA2F;CAChG,IAAI;EACH,OAAO;EACP,QAAQ;EACR,MAAM;CACP;CACA,IAAI;EACH,OAAO;EACP,QAAQ;EACR,MAAM;CACP;CACA,IAAI;EACH,OAAO;EACP,QAAQ;EACR,MAAM;CACP;AACD,GAEMC,IAA2E;CAChF,IAAI;EAAE,KAAK;EAAgB,SAAS;CAA4B;CAChE,IAAI;EAAE,KAAK;EAAgB,SAAS;CAA4B;CAChE,IAAI;EAAE,KAAK;EAAgB,SAAS;CAAyB;AAC9D;AAEA,SAASC,GAAW,GAA2B;CAC9C,OAAOC,KAAU,QAA+BA,MAAU;AAC3D;AAEA,SAAS1B,EAAa,GAAqD;CAC1E,OAAO,OAAO0B,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAEA,SAAgBE,EAAU,EACzB,SACA,SACA,aACA,QAAQC,GACR,YAAS,WACT,kBACA,UAAO,WACP,aAAU,WACV,MAAMC,GACN,UACA,iBAAc,IACd,eAAY,IACZ,cAAW,IACX,gBAAa,KACb,eAAY,KACZ,mBAAgB,OAChB,iBAAc,OACd,iBAAa,QACb,cACA,SAASC,IACT,cAAcC,IACd,GAAGC,KACe;CAClB,IAAMC,IAAQ9B,EAAe,GACvB,EAAE,qBAAiBD,EAAiB,GACpCgC,IAAOjC,EAAsB4B,GAAUM,EAAY,GACnDC,IAASR,KAAcK,EAAM,QAC7BI,IAAUC,EAAWnB,GAAyBW,EAAW,GACzDS,IAAW9B,EAAe+B,CAAI,GAC9BC,IAAQrB,EAAasB,IACrBC,IAAWtB,EAAgBuB,IAC3BC,IAASC,KAASC,MAAW,WAC7BC,IAAe5C,EAAGqC,EAAM,SAASE,EAAS,SAAS,CAACE,KAAUH,MAAS,aAAaE,MAAY,aAAa,iBAAiB,GAC9HK,IAAwBC,MAAkBH,MAAW,WAAW,WAAW,UAC3EI,IAAY3B,GAAW4B,CAAI,KAAKH,MAA0B,UAC1DI,IAAgBjB,IAAS,EAAE,UAAO,IAAI,KAAA,GAEtCkB,IAAUf,IAAWgB,EAAOhB,GAAUiB,GAAeH,CAAa,IAAI,MACtEI,IAAMlB,IAAWgB,EAAOhB,GAAUmB,GAAWL,CAAa,IAAI,MAC9DM,IAAQpB,IAAWgB,EAAOhB,GAAUqB,GAAaP,CAAa,IAAI,MAClEQ,IAAOtB,IAAWgB,EAAOhB,GAAUuB,IAAYT,CAAa,IAAI,MAChEU,IAAeC,MAAazB,IAAWgB,EAAOhB,GAAU,YAAY,IAAI,KAAA,IACxE0B,IAAoBlC,OAAcQ,IAAW,KAAA,IAAYF,EAAQ;CAEvE,IAAIU,MAAW,UAAU;EACxB,IAAMmB,IACL,kBAAC,QAAD;GACC,WAAW9D,EACV,6FACAmB,EAAgBW,EAAK,CAAC,KACtBW,KAAUzC,EAAG,UAAUmB,EAAgBW,EAAK,CAAC,SAASO,EAAM,OAAOE,EAAS,KAAK,CAClF;GAEC,UAAAJ,IACA,kBAAAvC,GAAA,EAAA,UAAA;IACE,CAAC,CAACmE,KACF,kBAAC9D,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,QAAO;KAAS,WAAWD,EAAG,uBAAuBqC,EAAM,WAAWE,EAAS,SAAS;KACjH,UAAAW;IACI,CAAA;IAEP,kBAACjD,GAAD;KAAM,KAAI;KAAO,QAAO;KAAW,WAAWD,EAAG,mBAAmB4C,CAAY;KAC9E,UAAAS;IACI,CAAA;KACJW,KAAaC,MACd,kBAAChE,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,MAAK;KAAY,WAAWD,EAAG,0BAA0BqC,EAAM,WAAWE,EAAS,SAAS;KACrH,UAAA,CAACyB,IAAYT,IAAQ,MAAMU,IAAWR,IAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;IACvE,CAAA;IAENV,KAAaF,MAA0B,YACvC,kBAAAjD,GAAA,EAAA,UAAA,CACC,kBAACK,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,WAAWD,EAAGqC,EAAM,WAAWE,EAAS,SAAS;KAAG,eAAA;KAC7E,UAAAN,EAAQ;IACJ,CAAA,GACLtC,EAAaqD,CAAI,IACjB,kBAAC/C,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,QAAO;KAAS,WAAWD,EAAG,iCAAiC4C,CAAY;KACpG,UAAAI;IACI,CAAA,IACHA,CACH,EAAA,CAAA;GAEF,EAAA,CAAA,IAEFrD,EAAauE,CAAU,IACtB,kBAACjE,GAAD;IAAM,KAAI;IAAO,MAAK;IAAY,WAAWD,EAAG,qBAAqBqC,EAAM,WAAWE,EAAS,SAAS;IACtG,UAAA2B;GACI,CAAA,IACHA;EAEA,CAAA;EAGP,OACC,kBAAC,QAAD;GACC,UAAUP;GACV,cAAYE;GACZ,eAAalB;GACb,aAAWb;GACX,aAAWQ;GACX,gBAAcE;GACd,WAAWxC,EACV,6CACA6C,MAA0B,UACvB,sCACA,gBACHlC,CACD;GACA,GAAIiB;GAdL,UAAA,CAgBEkC,GACAf,KAAaF,MAA0B,YACvClD,EAAaqD,CAAI,IAChB,kBAAC/C,GAAD;IAAM,KAAI;IAAO,MAAK;IAAK,MAAK;IAAY,WAAWD,EAAG,iCAAiCqC,EAAM,WAAWE,EAAS,SAAS;IAC5H,UAAAS;GACI,CAAA,IACHA,EAEA;;CAER;CAEA,IAAMmB,KACL,kBAAC,QAAD;EACC,WAAWnE,EACV,0GACAkB,EAAiBY,EAAK,CAAC,OACvBW,KAAUzC,EAAG,UAAUqC,EAAM,OAAOE,EAAS,KAAK,CACnD;EALD,UAAA,CAOEJ,KAAY4B,KACZ,kBAAC9D,GAAD;GACC,KAAI;GACJ,MAAK;GACL,QAAO;GACP,YAAW;GACX,WAAWD,EACV,yCACAkB,EAAiBY,EAAK,CAAC,QACvBW,IAASzC,EAAG,YAAYqC,EAAM,QAAQE,EAAS,MAAM,IAAIvC,EAAGqC,EAAM,WAAWE,EAAS,SAAS,CAChG;GAEC,UAAAW;EACI,CAAA,GAEP,kBAAC,QAAD;GACC,WAAWlD,EACV,mGACAkB,EAAiBY,EAAK,CAAC,IACxB;GAEC,UAAAK,IACA,kBAAAvC,GAAA,EAAA,UAAA,CACC,kBAACK,GAAD;IACC,KAAI;IACJ,MAAM6B,MAAS,OAAO,OAAOA,MAAS,OAAO,OAAO;IACpD,QAAO;IACP,YAAW;IACX,WAAW9B,EAAG,mBAAmB4C,CAAY;IAE5C,UAAAS;GACI,CAAA,IACJW,KAAaC,MACd,kBAAChE,GAAD;IACC,KAAI;IACJ,MAAK;IACL,YAAW;IACX,WAAWD,EAAG,0BAA0BqC,EAAM,WAAWE,EAAS,SAAS;IAE1E,UAAA,CAACyB,IAAYT,IAAQ,MAAMU,IAAWR,IAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;GACvE,CAAA,CAEN,EAAA,CAAA,IAEF9D,EAAauE,CAAU,IACtB,kBAACjE,GAAD;IAAM,KAAI;IAAO,MAAK;IAAY,WAAWD,EAAG,qBAAqBqC,EAAM,WAAWE,EAAS,SAAS;IACtG,UAAA2B;GACI,CAAA,IACHA;EAEA,CAAA,CACD;;CAGP,OACC,kBAAC,QAAD;EACC,UAAUP;EACV,cAAYE;EACZ,eAAalB;EACb,aAAWb;EACX,aAAWQ;EACX,gBAAcE;EACd,WAAWxC,EACV,qCACA+C,KAAaF,MAA0B,WACpC,uCACA,sCACHlC,CACD;EACA,GAAIiB;EAdL,UAAA,CAgBEuC,IACApB,MACApD,EAAaqD,CAAI,IAChB,kBAAC/C,GAAD;GAAM,KAAI;GAAO,MAAK;GAAK,MAAK;GAAY,WAAWD,EAAG,iCAAiCqC,EAAM,WAAWE,EAAS,SAAS;GAC5H,UAAAS;EACI,CAAA,IACHA,EAEA;;AAER;AAEA,EAAU,cAAc;;;AC3YxB,IAAaoB,IAAkD;CAC9D,cAAc;CACd,cAAc;AACf,GCqEaC,IAAeC,EAA8C,SAAsB,EAC/F,YAAS,YAAS,SAAS5C,GAAa,cAAW,oBAAiB,qBAAkB,oBAAiB,GAAGE,KACxG,GAAK;CACP,IAAMK,IAAUC,EAAWkC,GAA4B1C,CAAW;CAClE,OAAO,kBAACtB,GAAD;EACN,GAAIwB;EACC;EACL,SAAS2C,KAAW;EACpB,SAASC,MAAYD,KAAWA,MAAY,SAAS,OAAO;EACnD;EACT,kBAAe;EACf,aAAU;EACV,gBAAcC;EACd,WAAWxE,EAAG,4BAA4BW,CAAS;EACnD,iBAAiBX,EAAG,yBAAyByE,CAAe;EAC5D,kBAAkBzE,EAAG,0BAA0B0E,CAAgB;EAC/D,iBAAiB1E,EAAG,yBAAyB2E,CAAe;CAC5D,CAAA;AACF,CAAC;AACD,EAAa,cAAc;;;AC9E3B,IAAaC,IAA0D;CACtE,MAAM;CACN,OAAO;AACR;AAmBA,SAASC,EAAa,GAA2D;CAChF,OAAO,OAAOxD,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAEA,IAAayD,IAAmBR,EAAkD,SAA0B,EAC3G,UACA,WAAQ,IACR,cAAW,IACX,cAAW,WACX,eAAY,aACZ,cACA,mBACA,SAAS5C,GACT,GAAGE,KACD,GAAK;CACP,IAAMK,IAAUC,EAAW0C,GAAgClD,CAAW,GAChEqD,IAAS,EAAQ1D,GACjB2D,IAAOD,IAASE,IAAeC,GAC/BC,IAAYJ,IAASK,IAAWC,GAChCxE,IAAUkE,IAAS9C,EAAQ,OAAOA,EAAQ;CAEhD,OACC,kBAAC/B,GAAD;EACM;EACL,WAAU;EACV,OAAM;EACN,KAAI;EACJ,SAAQ;EACR,MAAM;EACN,WAAWF,EAAG,gCACb,6BACAW,CACD;EACA,GAAIiB;EAXL,UAAA,CAaEiD,EAAaS,CAAK,IAAI,kBAACC,GAAD;GAAc,WAAU;GAAyB,UAAAD;EAAoB,CAAA,IAAIA,GAChG,kBAAChF,GAAD;GACC,MAAM6E;GACN,WAAWnF,EAAG,8BAA8BwF,CAAc;GAF3D,UAAA,CAUE,CAAC,CAACC,KAAY,kBAACT,GAAD,EAAM,WAAU,eAAgB,CAAA,GAC9CH,EAAahE,CAAO,IACpB,kBAACZ,GAAD;IAAM,KAAI;IAAO,MAAK;IAAU,QAAO;IAAS,YAAW;IAAO,WAAU;IAC1E,UAAAY;GACI,CAAA,IACHA,CACE;EACD,CAAA,CAAA;;AAET,CAAC;AAED,EAAiB,cAAc"}
@@ -0,0 +1,194 @@
1
+ "use client";
2
+ import { i as e, v as t } from "./ui-provider-C-74NVLc.js";
3
+ import { t as n } from "./utils-B6kKb8jB.js";
4
+ import { c as r } from "./typography-BQnine1k.js";
5
+ import { o as i, s as a } from "./text.styles-B64My8RZ.js";
6
+ import { t as o } from "./anchored-positioning-DPnKTvNs.js";
7
+ import { t as s } from "./portal-recipes-BpsV_iRw.js";
8
+ import { t as c } from "./motion-recipes-DitYv6P2.js";
9
+ import { i as l, n as u, r as d, t as f } from "./popover.recipes-DdiEp0rd.js";
10
+ import { n as p } from "./collection-content-gDh1v6O4.js";
11
+ import * as m from "react";
12
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
13
+ import { CheckIcon as _, ChevronRightIcon as v } from "lucide-react";
14
+ import { Menu as y } from "@base-ui/react/menu";
15
+ //#region src/components/base/navigation/dropdown-menu.tsx
16
+ var b = m.createContext("default");
17
+ function x() {
18
+ return u(m.useContext(b));
19
+ }
20
+ function S(e, t) {
21
+ return typeof e != "string" && typeof e != "number" && typeof e != "bigint" || typeof e == "string" && e.trim().length === 0 ? e : /* @__PURE__ */ h(p, {
22
+ className: n("dropdown-menu--text", t),
23
+ children: e
24
+ });
25
+ }
26
+ function C({ ...e }) {
27
+ return /* @__PURE__ */ h(y.Root, {
28
+ "data-slot": "dropdown-menu",
29
+ ...e
30
+ });
31
+ }
32
+ function w({ container: t, className: n, ...r }) {
33
+ let i = e(t);
34
+ return /* @__PURE__ */ h(y.Portal, {
35
+ "data-slot": "dropdown-menu-portal",
36
+ container: i,
37
+ className: s(n),
38
+ ...r
39
+ });
40
+ }
41
+ function T({ children: e, ...n }) {
42
+ let { defaultTextSize: r } = t();
43
+ return /* @__PURE__ */ h(y.Trigger, {
44
+ "data-slot": "dropdown-menu-trigger",
45
+ ...n,
46
+ children: S(e, a[r ?? "sm"])
47
+ });
48
+ }
49
+ function E({ positionMethod: e = o, align: r = "start", alignOffset: s = 0, side: u = "bottom", sideOffset: f = 4, className: p, density: g, ..._ }) {
50
+ let { defaultTextSize: v } = t(), x = m.useContext(b), S = g ?? x;
51
+ return /* @__PURE__ */ h(b.Provider, {
52
+ value: S,
53
+ children: /* @__PURE__ */ h(w, { children: /* @__PURE__ */ h(y.Positioner, {
54
+ positionMethod: e,
55
+ className: "isolate z-50 outline-none",
56
+ align: r,
57
+ alignOffset: s,
58
+ side: u,
59
+ sideOffset: f,
60
+ children: /* @__PURE__ */ h(y.Popup, {
61
+ "data-slot": "dropdown-menu-content",
62
+ "data-surface-type": "menu",
63
+ className: n(d.surface, d.menu, l.menuMin, c.popup, "dropdown-menu-content--component z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none", a[v ?? "sm"], i.tight, p),
64
+ ..._
65
+ })
66
+ }) })
67
+ });
68
+ }
69
+ function D({ ...e }) {
70
+ return /* @__PURE__ */ h(y.Group, {
71
+ "data-slot": "dropdown-menu-group",
72
+ ...e
73
+ });
74
+ }
75
+ function O({ className: e, inset: t, children: i, ...a }) {
76
+ let o = typeof i == "string" || typeof i == "number" || typeof i == "bigint" ? /* @__PURE__ */ h(r, {
77
+ tag: "span",
78
+ size: "xs",
79
+ type: "secondary",
80
+ weight: "medium",
81
+ lineHeight: "tight",
82
+ children: i
83
+ }) : i;
84
+ return /* @__PURE__ */ h(y.GroupLabel, {
85
+ "data-slot": "dropdown-menu-label",
86
+ "data-inset": t,
87
+ className: n("dropdown-menu-label--component px-row-x py-row-y-sm text-muted-foreground data-inset:ps-control-icon", e),
88
+ ...a,
89
+ children: o
90
+ });
91
+ }
92
+ function k({ className: e, inset: t, variant: r = "default", children: i, ...a }) {
93
+ let o = x();
94
+ return /* @__PURE__ */ h(y.Item, {
95
+ "data-slot": "dropdown-menu-item",
96
+ "data-inset": t,
97
+ "data-variant": r,
98
+ className: n("dropdown-menu-item--component group/dropdown-menu-item whitespace-nowrap data-inset:ps-control-icon", f.interactive, o, f.highlighted, f.disabled, f.icons, f.destructive, e),
99
+ ...a,
100
+ children: S(i)
101
+ });
102
+ }
103
+ function A({ className: e, inset: t, variant: r = "default", children: i, ...a }) {
104
+ let o = x();
105
+ return /* @__PURE__ */ h(y.LinkItem, {
106
+ "data-slot": "dropdown-menu-link-item",
107
+ "data-inset": t,
108
+ "data-variant": r,
109
+ className: n("dropdown-menu-link-item--component group/dropdown-menu-item whitespace-nowrap text-inherit no-underline data-inset:ps-control-icon", f.interactive, o, f.highlighted, f.disabled, f.icons, f.destructive, e),
110
+ ...a,
111
+ children: S(i)
112
+ });
113
+ }
114
+ function j({ ...e }) {
115
+ return /* @__PURE__ */ h(y.SubmenuRoot, {
116
+ "data-slot": "dropdown-menu-sub",
117
+ ...e
118
+ });
119
+ }
120
+ function M({ className: e, inset: t, children: r, ...i }) {
121
+ let a = x();
122
+ return /* @__PURE__ */ g(y.SubmenuTrigger, {
123
+ "data-slot": "dropdown-menu-sub-trigger",
124
+ "data-inset": t,
125
+ className: n("dropdown-menu-sub-trigger--component whitespace-nowrap data-inset:ps-control-icon", f.interactive, a, f.highlighted, f.disabled, f.icons, "data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground", e),
126
+ ...i,
127
+ children: [S(r), /* @__PURE__ */ h(v, { className: "ms-auto rtl:rotate-180" })]
128
+ });
129
+ }
130
+ function N({ align: e = "start", alignOffset: t = -3, side: r = "inline-end", sideOffset: i = 0, className: a, ...o }) {
131
+ return /* @__PURE__ */ h(E, {
132
+ "data-slot": "dropdown-menu-sub-content",
133
+ className: n("dropdown-menu-sub-content--component w-auto min-w-32", a),
134
+ align: e,
135
+ alignOffset: t,
136
+ side: r,
137
+ sideOffset: i,
138
+ ...o
139
+ });
140
+ }
141
+ function P({ className: e, children: t, checked: r, inset: i, ...a }) {
142
+ let o = x();
143
+ return /* @__PURE__ */ g(y.CheckboxItem, {
144
+ "data-slot": "dropdown-menu-checkbox-item",
145
+ "data-inset": i,
146
+ className: n("dropdown-menu-checkbox-item--component whitespace-nowrap data-inset:ps-control-icon", f.interactive, o, f.highlighted, f.disabled, f.icons, e),
147
+ checked: r,
148
+ ...a,
149
+ children: [S(t), /* @__PURE__ */ h("span", {
150
+ className: "pointer-events-none ms-auto flex shrink-0 items-center justify-center",
151
+ "data-slot": "dropdown-menu-checkbox-item-indicator",
152
+ children: /* @__PURE__ */ h(y.CheckboxItemIndicator, { children: /* @__PURE__ */ h(_, {}) })
153
+ })]
154
+ });
155
+ }
156
+ function F({ ...e }) {
157
+ return /* @__PURE__ */ h(y.RadioGroup, {
158
+ "data-slot": "dropdown-menu-radio-group",
159
+ ...e
160
+ });
161
+ }
162
+ function I({ className: e, children: t, inset: r, ...i }) {
163
+ let a = x();
164
+ return /* @__PURE__ */ g(y.RadioItem, {
165
+ "data-slot": "dropdown-menu-radio-item",
166
+ "data-inset": r,
167
+ className: n("dropdown-menu-radio-item--component whitespace-nowrap data-inset:ps-control-icon", f.interactive, a, f.highlighted, f.disabled, f.icons, e),
168
+ ...i,
169
+ children: [S(t), /* @__PURE__ */ h("span", {
170
+ className: "pointer-events-none ms-auto flex shrink-0 items-center justify-center",
171
+ "data-slot": "dropdown-menu-radio-item-indicator",
172
+ children: /* @__PURE__ */ h(y.RadioItemIndicator, { children: /* @__PURE__ */ h(_, {}) })
173
+ })]
174
+ });
175
+ }
176
+ function L({ className: e, ...t }) {
177
+ return /* @__PURE__ */ h(y.Separator, {
178
+ "data-slot": "dropdown-menu-separator",
179
+ className: n("dropdown-menu-separator--component", d.separator, e),
180
+ ...t
181
+ });
182
+ }
183
+ function R({ className: e, children: t, ...r }) {
184
+ return /* @__PURE__ */ h("span", {
185
+ "data-slot": "dropdown-menu-shortcut",
186
+ className: n("dropdown-menu-shortcut--component ms-auto text-xxs tracking-normal text-muted-foreground group-data-[highlighted]/dropdown-menu-item:text-accent-foreground", e),
187
+ ...r,
188
+ children: S(t)
189
+ });
190
+ }
191
+ //#endregion
192
+ export { k as a, w as c, L as d, R as f, T as g, M as h, D as i, F as l, N as m, P as n, O as o, j as p, E as r, A as s, C as t, I as u };
193
+
194
+ //# sourceMappingURL=dropdown-menu-CLs8Lihj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu-CLs8Lihj.js","names":["React","MenuPrimitive","useThemePortalContainer","useTypographyConfig","cn","Text","textLineHeights","textSizes","anchoredPositionMethod","portalClassName","motionRecipes","popoverWidthRecipes","collectionRowClasses","popoverRecipes","collectionRecipes","CollectionLabel","React$1","DropdownMenuDensityContext","useMenuRowClasses","renderMenuText","children","className","DropdownMenu","props","Menu","DropdownMenuPortal","resolvedContainer","container","DropdownMenuTrigger","defaultTextSize","DropdownMenuContent","densityProp","inheritedDensity","density","DropdownMenuGroup","DropdownMenuLabel","content","inset","DropdownMenuItem","rowClasses","variant","DropdownMenuLinkItem","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent","DropdownMenuCheckboxItem","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuSeparator","DropdownMenuShortcut"],"sources":["../src/components/base/navigation/dropdown-menu.tsx"],"sourcesContent":["import { anchoredPositionMethod } from '../../../lib/anchored-positioning';\nimport { motionRecipes } from '../../../lib/motion-recipes';\nimport * as React from 'react';\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { Text } from '../../typography';\nimport { textSizes, textLineHeights } from '../../typography/text.styles';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\nimport { collectionRecipes, collectionRowClasses, popoverRecipes, popoverWidthRecipes, type CollectionDensity } from '../popover/popover.recipes';\nimport { useThemePortalContainer } from '../../../lib/theme-scope';\nimport { portalClassName } from '../../../lib/portal-recipes';\nimport { CollectionLabel } from '../popover/collection-content';\n\nconst DropdownMenuDensityContext = React.createContext<CollectionDensity>('default');\n\nfunction useMenuRowClasses() {\n\treturn collectionRowClasses(React.useContext(DropdownMenuDensityContext));\n}\n\nfunction renderMenuText(children: React.ReactNode, className?: string) {\n\tif (\n\t\ttypeof children !== 'string'\n\t\t&& typeof children !== 'number'\n\t\t&& typeof children !== 'bigint'\n\t) return children;\n\tif (typeof children === 'string' && children.trim().length === 0) return children;\n\n\treturn (\n\t\t<CollectionLabel className={cn('dropdown-menu--text', className)}>\n\t\t\t{children}\n\t\t</CollectionLabel>\n\t);\n}\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n\treturn <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ container, className, ...props }: MenuPrimitive.Portal.Props) {\n\tconst resolvedContainer = useThemePortalContainer(container);\n\treturn <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" container={resolvedContainer} className={portalClassName(className)} {...props} />;\n}\n\nfunction DropdownMenuTrigger({ children, ...props }: MenuPrimitive.Trigger.Props) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\treturn (\n\t\t<MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props}>\n\t\t\t{renderMenuText(children, textSizes[defaultTextSize ?? 'sm'])}\n\t\t</MenuPrimitive.Trigger>\n\t);\n}\n\nfunction DropdownMenuContent({\n\tpositionMethod = anchoredPositionMethod,\n\talign = 'start',\n\talignOffset = 0,\n\tside = 'bottom',\n\tsideOffset = 4,\n\tclassName,\n\tdensity: densityProp,\n\t...props\n}: MenuPrimitive.Popup.Props &\n\tPick<\n\t\tMenuPrimitive.Positioner.Props,\n\t\t'align' | 'alignOffset' | 'side' | 'sideOffset' | 'positionMethod'\n\t> & {\n\t/** Vertical row rhythm. Inherits in submenus; defaults to default. */\n\tdensity?: CollectionDensity;\n}) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst inheritedDensity = React.useContext(DropdownMenuDensityContext);\n\tconst density = densityProp ?? inheritedDensity;\n\treturn (\n\t\t<DropdownMenuDensityContext.Provider value={density}>\n\t\t\t<DropdownMenuPortal>\n\t\t\t\t<MenuPrimitive.Positioner\n\t\t\t\t\tpositionMethod={positionMethod}\n\t\t\t\t\tclassName=\"isolate z-50 outline-none\"\n\t\t\t\t\talign={align}\n\t\t\t\t\talignOffset={alignOffset}\n\t\t\t\t\tside={side}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t>\n\t\t\t\t\t<MenuPrimitive.Popup\n\t\t\t\t\t\tdata-slot=\"dropdown-menu-content\"\n\t\t\t\t\t\tdata-surface-type=\"menu\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tpopoverRecipes.surface,\n\t\t\t\t\t\t\tpopoverRecipes.menu,\n\t\t\t\t\t\t\tpopoverWidthRecipes.menuMin,\n\t\t\t\t\t\t\tmotionRecipes.popup,\n\t\t\t\t\t\t\t'dropdown-menu-content--component z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none',\n\t\t\t\t\t\t\ttextSizes[defaultTextSize ?? 'sm'],\n\t\t\t\t\t\t\ttextLineHeights.tight,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t/>\n\t\t\t\t</MenuPrimitive.Positioner>\n\t\t\t</DropdownMenuPortal>\n\t\t</DropdownMenuDensityContext.Provider>\n\t);\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n\treturn <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuLabel({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.GroupLabel.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\t// A group caption is supporting copy, not another item: the smaller secondary\n\t// role keeps it from reading as an unclickable row.\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? <Text tag=\"span\" size=\"xs\" type=\"secondary\" weight=\"medium\" lineHeight=\"tight\">{children}</Text>\n\t\t\t: children;\n\n\treturn (\n\t\t<MenuPrimitive.GroupLabel\n\t\t\tdata-slot=\"dropdown-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-label--component px-row-x py-row-y-sm text-muted-foreground data-inset:ps-control-icon',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</MenuPrimitive.GroupLabel>\n\t);\n}\n\nfunction DropdownMenuItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.Item.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.Item\n\t\t\tdata-slot=\"dropdown-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-item--component group/dropdown-menu-item whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.Item>\n\t);\n}\n\nfunction DropdownMenuLinkItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.LinkItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.LinkItem\n\t\t\tdata-slot=\"dropdown-menu-link-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-link-item--component group/dropdown-menu-item whitespace-nowrap text-inherit no-underline data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.LinkItem>\n\t);\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n\treturn <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.SubmenuTrigger\n\t\t\tdata-slot=\"dropdown-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-sub-trigger--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\t'data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<ChevronRightIcon className=\"ms-auto rtl:rotate-180\" />\n\t\t</MenuPrimitive.SubmenuTrigger>\n\t);\n}\n\nfunction DropdownMenuSubContent({\n\talign = 'start',\n\talignOffset = -3,\n\tside = 'inline-end',\n\tsideOffset = 0,\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n\treturn (\n\t\t<DropdownMenuContent\n\t\t\tdata-slot=\"dropdown-menu-sub-content\"\n\t\t\tclassName={cn('dropdown-menu-sub-content--component w-auto min-w-32', className)}\n\t\t\talign={align}\n\t\t\talignOffset={alignOffset}\n\t\t\tside={side}\n\t\t\tsideOffset={sideOffset}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\tinset,\n\t...props\n}: MenuPrimitive.CheckboxItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"dropdown-menu-checkbox-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-checkbox-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-checkbox-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.CheckboxItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.CheckboxItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.CheckboxItem>\n\t);\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n\treturn (\n\t\t<MenuPrimitive.RadioGroup\n\t\t\tdata-slot=\"dropdown-menu-radio-group\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuRadioItem({\n\tclassName,\n\tchildren,\n\tinset,\n\t...props\n}: MenuPrimitive.RadioItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.RadioItem\n\t\t\tdata-slot=\"dropdown-menu-radio-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-radio-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-radio-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.RadioItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.RadioItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.RadioItem>\n\t);\n}\n\nfunction DropdownMenuSeparator({\n\tclassName,\n\t...props\n}: MenuPrimitive.Separator.Props) {\n\treturn (\n\t\t<MenuPrimitive.Separator\n\t\t\tdata-slot=\"dropdown-menu-separator\"\n\t\t\tclassName={cn('dropdown-menu-separator--component', popoverRecipes.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuShortcut({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"dropdown-menu-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-shortcut--component ms-auto text-xxs tracking-normal text-muted-foreground group-data-[highlighted]/dropdown-menu-item:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</span>\n\t);\n}\n\nexport {\n\tDropdownMenu,\n\tDropdownMenuPortal,\n\tDropdownMenuTrigger,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuItem,\n\tDropdownMenuLinkItem,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuSubContent,\n};\n"],"mappings":"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"}