themelia-react-ui 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/README.md +113 -18
  3. package/dist/{accordion-96o0pN62.js → accordion-B9MHG0cT.js} +11 -11
  4. package/dist/accordion-B9MHG0cT.js.map +1 -0
  5. package/dist/{action-menu-CHgs8vmj.js → action-menu-Dr8K-ghE.js} +48 -45
  6. package/dist/action-menu-Dr8K-ghE.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
  8. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  9. package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-C58tQcBy.js} +210 -174
  10. package/dist/ai-artifact-C58tQcBy.js.map +1 -0
  11. package/dist/app-shell-B_IuNWOo.js +321 -0
  12. package/dist/app-shell-B_IuNWOo.js.map +1 -0
  13. package/dist/{attachment-DkoqHPPl.js → attachment-Dg_69lPS.js} +9 -9
  14. package/dist/{attachment-DkoqHPPl.js.map → attachment-Dg_69lPS.js.map} +1 -1
  15. package/dist/{auth-D2FVZ1MH.js → auth-DTkkshS8.js} +43 -46
  16. package/dist/auth-DTkkshS8.js.map +1 -0
  17. package/dist/{avatar-DWO_HHhB.js → avatar-CeZaFmNH.js} +8 -8
  18. package/dist/avatar-CeZaFmNH.js.map +1 -0
  19. package/dist/{badge-DErMA7ul.js → badge-xIiV_E7f.js} +5 -5
  20. package/dist/{badge-DErMA7ul.js.map → badge-xIiV_E7f.js.map} +1 -1
  21. package/dist/base/accordion.js +1 -1
  22. package/dist/base/action-menu.js +1 -1
  23. package/dist/base/attachment.js +1 -1
  24. package/dist/base/avatar.js +1 -1
  25. package/dist/base/badge.js +1 -1
  26. package/dist/base/batch-action-bar.js +1 -1
  27. package/dist/base/buttons.js +1 -1
  28. package/dist/base/cards.js +2 -2
  29. package/dist/base/carousel.js +3 -3
  30. package/dist/base/cascader.js +2 -372
  31. package/dist/base/chart.js +1 -1
  32. package/dist/base/choice-inputs.js +2 -2
  33. package/dist/base/code-block.js +1 -1
  34. package/dist/base/combobox.js +2 -2
  35. package/dist/base/command.js +1 -1
  36. package/dist/base/copyable.js +1 -1
  37. package/dist/base/date-pickers.js +2 -2
  38. package/dist/base/display.js +6 -6
  39. package/dist/base/feedback.js +3 -3
  40. package/dist/base/forms-numeric.js +1 -1
  41. package/dist/base/forms.js +2 -2
  42. package/dist/base/inline-edit.js +10 -10
  43. package/dist/base/item.js +1 -1
  44. package/dist/base/media-gallery.js +1 -1
  45. package/dist/base/metadata-list.js +1 -1
  46. package/dist/base/navigation.js +7 -7
  47. package/dist/base/popover-menu.js +1 -1
  48. package/dist/base/popover.js +1 -1
  49. package/dist/base/qr-code.js +1 -1
  50. package/dist/base/repeaters.js +12 -12
  51. package/dist/base/repeaters.js.map +1 -1
  52. package/dist/base/sheet.js +1 -1
  53. package/dist/base/sidebar.js +2 -2
  54. package/dist/base/signature-pad.js +7 -7
  55. package/dist/base/signature-pad.js.map +1 -1
  56. package/dist/base/skeleton.js +1 -1
  57. package/dist/base/spinner.js +4 -4
  58. package/dist/base/structure.js +1 -1
  59. package/dist/base/table.js +1 -1
  60. package/dist/base/text-inputs.js +2 -2
  61. package/dist/base/toaster.js +36 -36
  62. package/dist/base/toaster.js.map +1 -1
  63. package/dist/base/tree.js +1 -1
  64. package/dist/base/upload-queue.js +1 -1
  65. package/dist/base/upload.js +3 -3
  66. package/dist/base/value-inputs.js +1 -1
  67. package/dist/{batch-action-bar-CdfIkCsV.js → batch-action-bar-Cb8cuvyy.js} +6 -6
  68. package/dist/batch-action-bar-Cb8cuvyy.js.map +1 -0
  69. package/dist/blocks/admin.js +21 -21
  70. package/dist/blocks/admin.js.map +1 -1
  71. package/dist/blocks/ai.js +230 -216
  72. package/dist/blocks/ai.js.map +1 -1
  73. package/dist/blocks/analytics/usage-card.js +1 -1
  74. package/dist/blocks/analytics.js +325 -306
  75. package/dist/blocks/analytics.js.map +1 -1
  76. package/dist/blocks/collaboration.js +1 -1
  77. package/dist/blocks/commerce/receipt.js +1 -1
  78. package/dist/blocks/commerce.js +1259 -1184
  79. package/dist/blocks/commerce.js.map +1 -1
  80. package/dist/blocks/data-display.js +2 -2
  81. package/dist/blocks/onboarding.js +6 -6
  82. package/dist/blocks/onboarding.js.map +1 -1
  83. package/dist/blocks/planning.js +11 -11
  84. package/dist/blocks/timelines.js +1 -1
  85. package/dist/{breadcrumbs-B-WFKecD.js → breadcrumbs-J-K2kl4c.js} +6 -6
  86. package/dist/{breadcrumbs-B-WFKecD.js.map → breadcrumbs-J-K2kl4c.js.map} +1 -1
  87. package/dist/{button-DkmK-z8E.js → button-S2Cubiiz.js} +3 -3
  88. package/dist/button-S2Cubiiz.js.map +1 -0
  89. package/dist/{buttons-BbfzgczK.js → buttons-BedGfygC.js} +16 -16
  90. package/dist/buttons-BedGfygC.js.map +1 -0
  91. package/dist/cards-rNX1M4Xn.js +69 -0
  92. package/dist/cards-rNX1M4Xn.js.map +1 -0
  93. package/dist/cascader-B1MiqkBq.js +439 -0
  94. package/dist/cascader-B1MiqkBq.js.map +1 -0
  95. package/dist/chart-Darg_0Kv.js +162 -0
  96. package/dist/chart-Darg_0Kv.js.map +1 -0
  97. package/dist/{checkbox-CzYUTPeJ.js → checkbox-fflqmODR.js} +2 -2
  98. package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-fflqmODR.js.map} +1 -1
  99. package/dist/{choice-inputs-JLtij2y4.js → choice-inputs-zUgBZfE4.js} +258 -257
  100. package/dist/choice-inputs-zUgBZfE4.js.map +1 -0
  101. package/dist/{code-block-CGNaUtAE.js → code-block-BzmM9Eig.js} +8 -8
  102. package/dist/code-block-BzmM9Eig.js.map +1 -0
  103. package/dist/{collapsible-Do4G0zcC.js → collapsible-BkAI_XD4.js} +5 -5
  104. package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BkAI_XD4.js.map} +1 -1
  105. package/dist/{collection-content-C0e8SsTm.js → collection-content-gDh1v6O4.js} +3 -3
  106. package/dist/{collection-content-C0e8SsTm.js.map → collection-content-gDh1v6O4.js.map} +1 -1
  107. package/dist/combobox-BEx0vJgF.js +362 -0
  108. package/dist/combobox-BEx0vJgF.js.map +1 -0
  109. package/dist/{combobox-CBJDs6w_.js → combobox-BwzoXFSG.js} +254 -247
  110. package/dist/combobox-BwzoXFSG.js.map +1 -0
  111. package/dist/{command-D8NrBj-b.js → command-CrlPIL6m.js} +11 -11
  112. package/dist/command-CrlPIL6m.js.map +1 -0
  113. package/dist/{comments-Di4w0H_S.js → comments-Dmpp0YIc.js} +29 -29
  114. package/dist/{comments-Di4w0H_S.js.map → comments-Dmpp0YIc.js.map} +1 -1
  115. package/dist/components/base/action-menu/action-menu.d.ts +7 -1
  116. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  117. package/dist/components/base/cards/card.recipes.d.ts +6 -4
  118. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  119. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  120. package/dist/components/base/cards/smart-card.types.d.ts +3 -4
  121. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  122. package/dist/components/base/chart/chart.d.ts +6 -1
  123. package/dist/components/base/choice-inputs/choice-types.d.ts +1 -1
  124. package/dist/components/base/combobox/index.d.ts +4 -2
  125. package/dist/components/base/feedback/alert.d.ts +1 -1
  126. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  127. package/dist/components/base/forms/workflow.d.ts +7 -1
  128. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -0
  129. package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
  130. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  131. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  132. package/dist/components/base/navigation/page-header/page-header.d.ts +10 -3
  133. package/dist/components/base/popover/popover.d.ts +3 -3
  134. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  135. package/dist/components/base/sheet/sheet.d.ts +2 -0
  136. package/dist/components/base/sidebar/index.d.ts +1 -1
  137. package/dist/components/base/sidebar/sidebar.d.ts +27 -5
  138. package/dist/components/base/toaster/index.d.ts +1 -0
  139. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  140. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +3 -1
  141. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  142. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  143. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  144. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  145. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  146. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  147. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  148. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  149. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  150. package/dist/components/blocks/commerce/index.d.ts +7 -6
  151. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  152. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  153. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  154. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  155. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  156. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  157. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  158. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  159. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  160. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  161. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  162. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  163. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  164. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  165. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  166. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  167. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  168. package/dist/components/features/activities/activities.types.d.ts +8 -2
  169. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  170. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  171. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  172. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  173. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  174. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  175. package/dist/components/features/filters/filters.types.d.ts +3 -0
  176. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  177. package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
  178. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  179. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  180. package/dist/components/features/filters/utils/filter-utils.d.ts +21 -3
  181. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  182. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  183. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  184. package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
  185. package/dist/components/features/media-library/media-library.types.d.ts +14 -4
  186. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  187. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  188. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  189. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  190. package/dist/components/features/products/products.strings.d.ts +9 -1
  191. package/dist/components/features/products/products.types.d.ts +43 -6
  192. package/dist/components/features/resource/resource.d.ts +5 -1
  193. package/dist/components/features/resource/resource.types.d.ts +12 -1
  194. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  195. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  196. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  197. package/dist/components/features/table/table.types.d.ts +1 -1
  198. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  199. package/dist/components/layout/app-shell/index.d.ts +1 -1
  200. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  201. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  202. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  203. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  204. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  205. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  206. package/dist/components/layout/header/header.types.d.ts +6 -6
  207. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  208. package/dist/components/layout/page/index.d.ts +2 -1
  209. package/dist/components/layout/page/page.d.ts +1 -0
  210. package/dist/components/layout/page/page.strings.d.ts +11 -0
  211. package/dist/components/layout/page/page.types.d.ts +69 -17
  212. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  213. package/dist/components/layout/settings/settings.d.ts +9 -2
  214. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  215. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  216. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  217. package/dist/components/layout/sidebar/index.d.ts +2 -1
  218. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +36 -0
  219. package/dist/components/layout/sidebar/sidebar.context.d.ts +5 -7
  220. package/dist/components/layout/sidebar/sidebar.types.d.ts +48 -10
  221. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  222. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  223. package/dist/components/ui/alert-dialog.d.ts +2 -2
  224. package/dist/components/ui/combobox.d.ts +1 -1
  225. package/dist/components/ui/dialog.d.ts +2 -2
  226. package/dist/components/ui/overlay-layer.d.ts +18 -0
  227. package/dist/components/ui/sheet.d.ts +5 -1
  228. package/dist/components/ui/sidebar-state.d.ts +82 -0
  229. package/dist/components/ui/sidebar.d.ts +5 -17
  230. package/dist/{containers-CRmHf7GP.js → containers-CIxwbZt5.js} +26 -18
  231. package/dist/containers-CIxwbZt5.js.map +1 -0
  232. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  233. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  234. package/dist/{copyable-CnGCZdX4.js → copyable-DIznBqiT.js} +7 -7
  235. package/dist/{copyable-CnGCZdX4.js.map → copyable-DIznBqiT.js.map} +1 -1
  236. package/dist/{data-display-D4oujtx0.js → data-display-BdgCAw8T.js} +268 -277
  237. package/dist/data-display-BdgCAw8T.js.map +1 -0
  238. package/dist/{date-Q7jnXxpk.js → date-Cq8ioE4o.js} +5 -5
  239. package/dist/{date-Q7jnXxpk.js.map → date-Cq8ioE4o.js.map} +1 -1
  240. package/dist/{date-picker-zOt1oNss.js → date-picker-RlIzKom_.js} +446 -437
  241. package/dist/date-picker-RlIzKom_.js.map +1 -0
  242. package/dist/{date-pickers-cj8IXbDC.js → date-pickers-DY-CpXS1.js} +12 -12
  243. package/dist/{date-pickers-cj8IXbDC.js.map → date-pickers-DY-CpXS1.js.map} +1 -1
  244. package/dist/{display-BB4BL_-K.js → display-KsZLw9Ov.js} +9 -9
  245. package/dist/{display-BB4BL_-K.js.map → display-KsZLw9Ov.js.map} +1 -1
  246. package/dist/dropdown-menu-CLs8Lihj.js +194 -0
  247. package/dist/dropdown-menu-CLs8Lihj.js.map +1 -0
  248. package/dist/features/activities.js +302 -253
  249. package/dist/features/activities.js.map +1 -1
  250. package/dist/features/ai-chat.js +15 -14
  251. package/dist/features/ai-chat.js.map +1 -1
  252. package/dist/features/appointment-calendar.js +22 -22
  253. package/dist/features/appointment-calendar.js.map +1 -1
  254. package/dist/features/async-preview.js +11 -10
  255. package/dist/features/async-preview.js.map +1 -1
  256. package/dist/features/combobox.js +1 -1
  257. package/dist/features/comments.js +1 -1
  258. package/dist/features/data-view.js +13 -13
  259. package/dist/features/data-view.js.map +1 -1
  260. package/dist/features/email-composer.js +237 -238
  261. package/dist/features/email-composer.js.map +1 -1
  262. package/dist/features/event-calendar.js +140 -146
  263. package/dist/features/event-calendar.js.map +1 -1
  264. package/dist/features/filters.js +1 -1
  265. package/dist/features/global-search.js +167 -138
  266. package/dist/features/global-search.js.map +1 -1
  267. package/dist/features/kanban.js +6 -7
  268. package/dist/features/kanban.js.map +1 -1
  269. package/dist/features/map.js +269 -260
  270. package/dist/features/map.js.map +1 -1
  271. package/dist/features/media-library.js +375 -326
  272. package/dist/features/media-library.js.map +1 -1
  273. package/dist/features/mentions.js +1 -1
  274. package/dist/features/overlays.js +1 -1
  275. package/dist/features/products.js +1266 -1193
  276. package/dist/features/products.js.map +1 -1
  277. package/dist/features/questionnaire.js +13 -13
  278. package/dist/features/questionnaire.js.map +1 -1
  279. package/dist/features/resource-assignment.js +8 -8
  280. package/dist/features/resource.js +69 -66
  281. package/dist/features/resource.js.map +1 -1
  282. package/dist/features/rich-text-editor.js +2 -2
  283. package/dist/features/schema-form.js +13 -13
  284. package/dist/features/suggestions.js +3 -3
  285. package/dist/features/sync.js +3 -3
  286. package/dist/features/table.js +1 -1
  287. package/dist/features/theme-tweaker.js +94 -95
  288. package/dist/features/theme-tweaker.js.map +1 -1
  289. package/dist/{feedback-DZNL5Lg1.js → feedback-Dm4izqFn.js} +80 -79
  290. package/dist/feedback-Dm4izqFn.js.map +1 -0
  291. package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-DWcNcOjh.js} +4 -4
  292. package/dist/field-affordance-recipes-DWcNcOjh.js.map +1 -0
  293. package/dist/{filters-BcT-uoFy.js → filters-DzgSJpMK.js} +693 -645
  294. package/dist/filters-DzgSJpMK.js.map +1 -0
  295. package/dist/{form-field-CsgRmdit.js → form-field-BriWAXyg.js} +6 -6
  296. package/dist/{form-field-CsgRmdit.js.map → form-field-BriWAXyg.js.map} +1 -1
  297. package/dist/{form-sizing-NXgjkmBG.js → form-sizing-Bs2qFUeE.js} +4 -4
  298. package/dist/form-sizing-Bs2qFUeE.js.map +1 -0
  299. package/dist/{forms-BV5m5aQF.js → forms-C0RGnJTe.js} +17 -13
  300. package/dist/forms-C0RGnJTe.js.map +1 -0
  301. package/dist/{forms-numeric-Cd33AKbD.js → forms-numeric-DIhghX1Q.js} +86 -82
  302. package/dist/forms-numeric-DIhghX1Q.js.map +1 -0
  303. package/dist/{header-BA697l4a.js → header-DMMxG__r.js} +67 -63
  304. package/dist/header-DMMxG__r.js.map +1 -0
  305. package/dist/header.recipes-BigdJjw1.js +6 -0
  306. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  307. package/dist/{hooks-BQ-L7Uu2.js → hooks-DB6CJ4MR.js} +26 -14
  308. package/dist/hooks-DB6CJ4MR.js.map +1 -0
  309. package/dist/{icon-badge-COWbCCWu.js → icon-badge-DZF-YjQp.js} +4 -4
  310. package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-DZF-YjQp.js.map} +1 -1
  311. package/dist/index.js +4 -5
  312. package/dist/{input-Cdw4k0fb.js → input-CvyDQlY7.js} +8 -8
  313. package/dist/{input-Cdw4k0fb.js.map → input-CvyDQlY7.js.map} +1 -1
  314. package/dist/input-DMBwAZmr.js +21 -0
  315. package/dist/input-DMBwAZmr.js.map +1 -0
  316. package/dist/{item-BvZ2DR_x.js → item-DjCcM18E.js} +16 -16
  317. package/dist/item-DjCcM18E.js.map +1 -0
  318. package/dist/layout/app-shell.js +1 -1
  319. package/dist/layout/auth.js +1 -1
  320. package/dist/layout/containers.js +1 -1
  321. package/dist/layout/header.js +1 -1
  322. package/dist/layout/hooks.js +1 -1
  323. package/dist/layout/navigation.js +1 -1
  324. package/dist/layout/page.js +2 -2
  325. package/dist/layout/settings.js +1 -1
  326. package/dist/layout/sidebar.js +3 -3
  327. package/dist/layout/workspace.js +1 -1
  328. package/dist/layout.js +11 -11
  329. package/dist/lib/affordance-geometry.generated.d.ts +35 -35
  330. package/dist/lib/control-group-recipes.d.ts +5 -5
  331. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  332. package/dist/lib/motion-recipes.d.ts +3 -0
  333. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  334. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  335. package/dist/lib/portal-recipes.d.ts +3 -0
  336. package/dist/lib/token-merge.generated.d.ts +13 -10
  337. package/dist/lib/utils.js +1 -1
  338. package/dist/map-demo-tile.svg +1 -1
  339. package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C-vChPmE.js} +6 -6
  340. package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C-vChPmE.js.map} +1 -1
  341. package/dist/{mentions-RKOQaaIB.js → mentions-0_4nWuI-.js} +10 -10
  342. package/dist/{mentions-RKOQaaIB.js.map → mentions-0_4nWuI-.js.map} +1 -1
  343. package/dist/{message-INU2xsxu.js → message-g8p7eVtN.js} +7 -7
  344. package/dist/message-g8p7eVtN.js.map +1 -0
  345. package/dist/{metadata-list-qVV7AVxa.js → metadata-list-C3MkU-Om.js} +64 -64
  346. package/dist/metadata-list-C3MkU-Om.js.map +1 -0
  347. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  348. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  349. package/dist/navigation-C90-oQFq.js +255 -0
  350. package/dist/navigation-C90-oQFq.js.map +1 -0
  351. package/dist/{navigation-BQNcg1jT.js → navigation-DaRjthVk.js} +101 -82
  352. package/dist/navigation-DaRjthVk.js.map +1 -0
  353. package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  354. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  355. package/dist/{number-E_OiIfJz.js → number-CRU3kGuk.js} +5 -5
  356. package/dist/{number-E_OiIfJz.js.map → number-CRU3kGuk.js.map} +1 -1
  357. package/dist/overflow-tab-bar-IVFVQFV6.js +172 -0
  358. package/dist/overflow-tab-bar-IVFVQFV6.js.map +1 -0
  359. package/dist/overlays-BSgCtM2v.js +1013 -0
  360. package/dist/overlays-BSgCtM2v.js.map +1 -0
  361. package/dist/page-DUUKDAjo.js +331 -0
  362. package/dist/page-DUUKDAjo.js.map +1 -0
  363. package/dist/page-header-commands-7P3sfE9u.js +193 -0
  364. package/dist/page-header-commands-7P3sfE9u.js.map +1 -0
  365. package/dist/{pagination-Ch8X_47u.js → pagination-CgCjElfu.js} +7 -7
  366. package/dist/{pagination-Ch8X_47u.js.map → pagination-CgCjElfu.js.map} +1 -1
  367. package/dist/popover-B85RenIl.js +201 -0
  368. package/dist/popover-B85RenIl.js.map +1 -0
  369. package/dist/{popover-menu-BYaCdFhf.js → popover-menu-DlnQ2zlR.js} +7 -7
  370. package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-DlnQ2zlR.js.map} +1 -1
  371. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DdiEp0rd.js} +18 -11
  372. package/dist/popover.recipes-DdiEp0rd.js.map +1 -0
  373. package/dist/portal-recipes-BpsV_iRw.js +9 -0
  374. package/dist/portal-recipes-BpsV_iRw.js.map +1 -0
  375. package/dist/{primitives-Du64iDbb.js → primitives-ByWgGUgt.js} +5 -5
  376. package/dist/{primitives-Du64iDbb.js.map → primitives-ByWgGUgt.js.map} +1 -1
  377. package/dist/primitives.js +4 -4
  378. package/dist/{progress-BvF2oCdV.js → progress-BJhQP9WX.js} +9 -9
  379. package/dist/{progress-BvF2oCdV.js.map → progress-BJhQP9WX.js.map} +1 -1
  380. package/dist/{receipt-D789Jwyy.js → receipt-tOc7B3hw.js} +7 -7
  381. package/dist/receipt-tOc7B3hw.js.map +1 -0
  382. package/dist/{rich-text-CLJEf76s.js → rich-text-Dth5E882.js} +3 -3
  383. package/dist/{rich-text-CLJEf76s.js.map → rich-text-Dth5E882.js.map} +1 -1
  384. package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-C1fOjBTd.js} +429 -430
  385. package/dist/rich-text-editor-C1fOjBTd.js.map +1 -0
  386. package/dist/{rich-text-editor-toolbar-L__e4x47.js → rich-text-editor-toolbar-laT3tpBT.js} +32 -28
  387. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +1 -0
  388. package/dist/{scroll-area-La5RXsEk.js → scroll-area-B0dB2cBi.js} +2 -2
  389. package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-B0dB2cBi.js.map} +1 -1
  390. package/dist/{separator-DAEV0w65.js → separator-Bb17I4pu.js} +2 -2
  391. package/dist/{separator-DAEV0w65.js.map → separator-Bb17I4pu.js.map} +1 -1
  392. package/dist/{separator-GNfPG-90.js → separator-Ct_WSWTJ.js} +3 -3
  393. package/dist/{separator-GNfPG-90.js.map → separator-Ct_WSWTJ.js.map} +1 -1
  394. package/dist/services/actions.js +1 -1
  395. package/dist/{settings-BA2iboic.js → settings-Bar5wiSo.js} +31 -38
  396. package/dist/settings-Bar5wiSo.js.map +1 -0
  397. package/dist/sheet-BGPERY55.js +250 -0
  398. package/dist/sheet-BGPERY55.js.map +1 -0
  399. package/dist/sidebar-D-JYMMbY.js +686 -0
  400. package/dist/sidebar-D-JYMMbY.js.map +1 -0
  401. package/dist/sidebar-f9gRWXIR.js +1001 -0
  402. package/dist/sidebar-f9gRWXIR.js.map +1 -0
  403. package/dist/skeleton-BapcJd9C.js +265 -0
  404. package/dist/skeleton-BapcJd9C.js.map +1 -0
  405. package/dist/smart-card-CW0hjetE.js +617 -0
  406. package/dist/smart-card-CW0hjetE.js.map +1 -0
  407. package/dist/{structure-C0V0_Fyf.js → structure-DuxKl954.js} +2 -2
  408. package/dist/{structure-C0V0_Fyf.js.map → structure-DuxKl954.js.map} +1 -1
  409. package/dist/style.css +1 -1
  410. package/dist/{table-CpvnzJn9.js → table-B4TE7iOV.js} +3 -3
  411. package/dist/{table-CpvnzJn9.js.map → table-B4TE7iOV.js.map} +1 -1
  412. package/dist/{table-DH7rozUv.js → table-CFOWY9pQ.js} +394 -388
  413. package/dist/table-CFOWY9pQ.js.map +1 -0
  414. package/dist/{tabs-eqVsJZWO.js → tabs-e7ko9S2o.js} +11 -11
  415. package/dist/tabs-e7ko9S2o.js.map +1 -0
  416. package/dist/{text-inputs-DXItiR0O.js → text-inputs-B1culiSK.js} +17 -17
  417. package/dist/text-inputs-B1culiSK.js.map +1 -0
  418. package/dist/theme.css +40 -37
  419. package/dist/{timelines-DmtztAY_.js → timelines-D3Sl9ueq.js} +13 -12
  420. package/dist/timelines-D3Sl9ueq.js.map +1 -0
  421. package/dist/tooltip-8wz5S_Zr.js +113 -0
  422. package/dist/tooltip-8wz5S_Zr.js.map +1 -0
  423. package/dist/{tree-CV11PURP.js → tree-CzUJHnFs.js} +8 -8
  424. package/dist/{tree-CV11PURP.js.map → tree-CzUJHnFs.js.map} +1 -1
  425. package/dist/typography/rich-text.js +1 -1
  426. package/dist/{typography-CSyJrh28.js → typography-BQnine1k.js} +12 -12
  427. package/dist/{typography-CSyJrh28.js.map → typography-BQnine1k.js.map} +1 -1
  428. package/dist/typography.js +1 -1
  429. package/dist/ui-provider-C-74NVLc.js +178 -0
  430. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  431. package/dist/ui-provider.js +2 -3
  432. package/dist/{upload-C9SA0X-8.js → upload-BOW6U2tI.js} +25 -24
  433. package/dist/upload-BOW6U2tI.js.map +1 -0
  434. package/dist/{upload-queue-DhQJiSRc.js → upload-queue-qUXn1ykN.js} +16 -14
  435. package/dist/upload-queue-qUXn1ykN.js.map +1 -0
  436. package/dist/{usage-card-DVTRDmGz.js → usage-card-BeSLY0i0.js} +24 -17
  437. package/dist/usage-card-BeSLY0i0.js.map +1 -0
  438. package/dist/{utils-CF3c95Io.js → utils-B6kKb8jB.js} +237 -141
  439. package/dist/utils-B6kKb8jB.js.map +1 -0
  440. package/dist/value-inputs-skdVB2zh.js +980 -0
  441. package/dist/value-inputs-skdVB2zh.js.map +1 -0
  442. package/dist/{value-typography-ClupF0Gz.js → value-typography-uAmWUAL1.js} +2 -2
  443. package/dist/{value-typography-ClupF0Gz.js.map → value-typography-uAmWUAL1.js.map} +1 -1
  444. package/dist/{workspace-9EFVXUyk.js → workspace-DHeHv0qw.js} +50 -49
  445. package/dist/workspace-DHeHv0qw.js.map +1 -0
  446. package/docs/consumer-skill/SKILL.md +4 -3
  447. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  448. package/docs/consumer-skill/examples/app-layout.tsx +52 -1
  449. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  450. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  451. package/docs/consumer-skill/examples/detail.tsx +5 -4
  452. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  453. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  454. package/docs/consumer-skill/examples/manifest.json +38 -1
  455. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  456. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  457. package/docs/consumer-skill/examples/rhf-edit-page.tsx +1 -1
  458. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
  459. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  460. package/docs/consumer-skill/references/agents-md.md +19 -17
  461. package/docs/consumer-skill/references/analytics.md +18 -1
  462. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  463. package/docs/consumer-skill/references/component-contracts.json +7131 -1754
  464. package/docs/consumer-skill/references/composition-mapping.md +17 -3
  465. package/docs/consumer-skill/references/composition.md +159 -31
  466. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  467. package/docs/consumer-skill/references/custom-composition.md +261 -0
  468. package/docs/consumer-skill/references/data-reading.md +79 -0
  469. package/docs/consumer-skill/references/design-contract.md +11 -9
  470. package/docs/consumer-skill/references/discovery.md +27 -3
  471. package/docs/consumer-skill/references/domain-structures.md +124 -0
  472. package/docs/consumer-skill/references/installation.md +15 -4
  473. package/docs/consumer-skill/references/integration.md +35 -0
  474. package/docs/consumer-skill/references/product-composition.md +94 -0
  475. package/docs/consumer-skill/references/public-api.json +2881 -420
  476. package/docs/consumer-skill/references/review.md +39 -2
  477. package/docs/consumer-skill/references/rhf-workflows.md +7 -0
  478. package/docs/consumer-skill/references/screen-archetypes.md +19 -7
  479. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  480. package/docs/consumer-skill/references/theming.md +17 -18
  481. package/docs/consumer-skill/references/tokens.json +9 -9
  482. package/docs/consumer-skill/references/view-craft.md +153 -0
  483. package/docs/consumer-skill/references/view-spec.md +73 -0
  484. package/docs/consumer-skill/references/workflows.md +7 -1
  485. package/docs/consumer-skill/scripts/composition-policy.mjs +39 -3
  486. package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
  487. package/docs/consumer-skill/scripts/composition.mjs +61 -5
  488. package/docs/consumer-skill/scripts/discovery.mjs +54 -0
  489. package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
  490. package/docs/consumer-skill/scripts/inspection.mjs +73 -18
  491. package/docs/consumer-skill/scripts/setup-skills.mjs +41 -6
  492. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  493. package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
  494. package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
  495. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  496. package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
  497. package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
  498. package/package.json +1 -1
  499. package/dist/accordion-96o0pN62.js.map +0 -1
  500. package/dist/action-menu-CHgs8vmj.js.map +0 -1
  501. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
  502. package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
  503. package/dist/app-shell-D63ATkIK.js +0 -237
  504. package/dist/app-shell-D63ATkIK.js.map +0 -1
  505. package/dist/auth-D2FVZ1MH.js.map +0 -1
  506. package/dist/avatar-DWO_HHhB.js.map +0 -1
  507. package/dist/base/cascader.js.map +0 -1
  508. package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
  509. package/dist/button-DkmK-z8E.js.map +0 -1
  510. package/dist/buttons-BbfzgczK.js.map +0 -1
  511. package/dist/cards-4JTWqvVe.js +0 -68
  512. package/dist/cards-4JTWqvVe.js.map +0 -1
  513. package/dist/chart-C19flDQb.js +0 -155
  514. package/dist/chart-C19flDQb.js.map +0 -1
  515. package/dist/choice-inputs-JLtij2y4.js.map +0 -1
  516. package/dist/code-block-CGNaUtAE.js.map +0 -1
  517. package/dist/combobox-CBJDs6w_.js.map +0 -1
  518. package/dist/combobox-hbhSS18O.js +0 -355
  519. package/dist/combobox-hbhSS18O.js.map +0 -1
  520. package/dist/command-D8NrBj-b.js.map +0 -1
  521. package/dist/containers-CRmHf7GP.js.map +0 -1
  522. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  523. package/dist/data-display-D4oujtx0.js.map +0 -1
  524. package/dist/date-picker-zOt1oNss.js.map +0 -1
  525. package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
  526. package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
  527. package/dist/feedback-DZNL5Lg1.js.map +0 -1
  528. package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
  529. package/dist/filters-BcT-uoFy.js.map +0 -1
  530. package/dist/form-sizing-NXgjkmBG.js.map +0 -1
  531. package/dist/forms-BV5m5aQF.js.map +0 -1
  532. package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
  533. package/dist/header-BA697l4a.js.map +0 -1
  534. package/dist/hooks-BQ-L7Uu2.js.map +0 -1
  535. package/dist/input-DOPL5_QE.js +0 -21
  536. package/dist/input-DOPL5_QE.js.map +0 -1
  537. package/dist/item-BvZ2DR_x.js.map +0 -1
  538. package/dist/message-INU2xsxu.js.map +0 -1
  539. package/dist/metadata-list-qVV7AVxa.js.map +0 -1
  540. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  541. package/dist/navigation-BQNcg1jT.js.map +0 -1
  542. package/dist/navigation-DLF3E1IC.js +0 -145
  543. package/dist/navigation-DLF3E1IC.js.map +0 -1
  544. package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
  545. package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
  546. package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
  547. package/dist/overlays-BlKynmde.js +0 -1004
  548. package/dist/overlays-BlKynmde.js.map +0 -1
  549. package/dist/page-CIwNUtGr.js +0 -227
  550. package/dist/page-CIwNUtGr.js.map +0 -1
  551. package/dist/page-header-commands-DFMlNYzN.js +0 -128
  552. package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
  553. package/dist/popover-uwzX2vo7.js +0 -198
  554. package/dist/popover-uwzX2vo7.js.map +0 -1
  555. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  556. package/dist/receipt-D789Jwyy.js.map +0 -1
  557. package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
  558. package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
  559. package/dist/settings-BA2iboic.js.map +0 -1
  560. package/dist/sheet-DoAxTb2J.js +0 -213
  561. package/dist/sheet-DoAxTb2J.js.map +0 -1
  562. package/dist/sidebar-ByqKR_W5.js +0 -512
  563. package/dist/sidebar-ByqKR_W5.js.map +0 -1
  564. package/dist/sidebar-D2iSnGJ7.js +0 -619
  565. package/dist/sidebar-D2iSnGJ7.js.map +0 -1
  566. package/dist/skeleton-CUj8O5Bd.js +0 -264
  567. package/dist/skeleton-CUj8O5Bd.js.map +0 -1
  568. package/dist/smart-card-CqkzQsK-.js +0 -614
  569. package/dist/smart-card-CqkzQsK-.js.map +0 -1
  570. package/dist/table-DH7rozUv.js.map +0 -1
  571. package/dist/tabs-eqVsJZWO.js.map +0 -1
  572. package/dist/text-inputs-DXItiR0O.js.map +0 -1
  573. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  574. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  575. package/dist/timelines-DmtztAY_.js.map +0 -1
  576. package/dist/tooltip-B4hjKtoV.js +0 -111
  577. package/dist/tooltip-B4hjKtoV.js.map +0 -1
  578. package/dist/ui-provider-CQCuCBcy.js +0 -136
  579. package/dist/ui-provider-CQCuCBcy.js.map +0 -1
  580. package/dist/upload-C9SA0X-8.js.map +0 -1
  581. package/dist/upload-queue-DhQJiSRc.js.map +0 -1
  582. package/dist/usage-card-DVTRDmGz.js.map +0 -1
  583. package/dist/use-mobile-vaLKwgyf.js +0 -15
  584. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  585. package/dist/utils-CF3c95Io.js.map +0 -1
  586. package/dist/value-inputs-C0o70p-U.js +0 -980
  587. package/dist/value-inputs-C0o70p-U.js.map +0 -1
  588. package/dist/workspace-9EFVXUyk.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-DTkkshS8.js","names":["_Fragment","_Fragment","React","_Fragment","resolveComponentScale","useDensityConfig","cn","buttonVariants","Button","Text","DisplayLabel","Heading","resolveTextClassNames","focusRecipes","Grid","Stack","CardContent","CardShell","CardFooter","interactionRecipes","ItemMedia","ItemDescription","ItemGroup","ItemContent","Item","ItemTitle","useLayoutLinkRenderer","containerRecipe","React$1","Fragment$1","AuthCard","props","hasHeader","eyebrow","title","description","headerEnd","surface","className","media","mediaClassName","headerClassName","contentClassName","banner","children","footer","footerClassName","isAuthBrandConfig","brand","isValidElement","useAuthLinks","resolvedRenderLink","useMemo","links","link","useAuthShell","visibleFooterLinks","footerLinks","visiblePolicyLinks","policyLinks","visibleLanguageLinks","languageLinks","visibleSocialProviders","socialProviders","provider","hasBrand","hasAfterCard","postCard","languageSwitcher","hasSplitPanel","splitPanel","variant","defaultAuthShellStrings","defaultAuthFooterLinksStrings","defaultAuthSocialProvidersStrings","defaultAuthMethodSwitchStrings","AuthFooterLinks","stringsProp","strings","useStrings","visibleLinks","leadingIcon","linkNode","Fragment","index","separator","PROVIDER_BUTTON_CLASS","GoogleMark","MicrosoftMark","GithubMark","AppleMark","ProviderIcon","KeyRound","AuthSocialProviderButton","size","defaultScale","content","buttonClassName","event","AuthSocialProviders","visibleProviders","providers","layout","SURFACE_CLASS","AuthSplitPanel","hasIntro","visibleFeatures","features","feature","SIZE_CLASS","isSplitPanelProps","panel","renderBrandContent","hasText","renderBrand","renderLink","renderSplitPanel","AuthShell","variantProp","isSplit","panelFirst","splitSide","showStackedPanel","splitMobile","panelClassName","splitPanelClassName","brandNode","main","align","mainClassName","stackClassName","cardMedia","cardMediaClassName","cardFooter","cardClassName","cardContentClassName","hasSocialProviders","socialProvidersLayout","socialDivider","Globe2","splitGridClassName","AuthForm","formProps","renderProps","AuthFormRow","firstEnabledOption","options","option","useAuthMethodSwitch","visibleOptions","fallbackValue","defaultValue","internalValue","setInternalValue","isControlled","value","selectedValue","selectedOption","setValue","nextOption","nextValue","onValueChange","AuthMethodSwitch","ariaLabel","rootProps","segmented","optionButtons","selected","optionContent","divider"],"sources":["../src/components/layout/auth/auth-card.tsx","../src/components/layout/auth/auth-hooks.tsx","../src/components/layout/auth/auth.strings.ts","../src/components/layout/auth/auth-footer-links.tsx","../src/components/layout/auth/auth-social-providers.tsx","../src/components/layout/auth/auth-split-panel.tsx","../src/components/layout/auth/auth-shell.tsx","../src/components/layout/auth/auth-form.tsx","../src/components/layout/auth/auth-method-switch.tsx"],"sourcesContent":["import { CardContent, CardFooter, CardShell } from '../../base/cards';\nimport { Stack } from '../../base/structure';\nimport { DisplayLabel, Heading, Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nimport type { AuthCardProps } from './auth.types';\n\nexport function AuthCard({\n\tsurface = 'card',\n\teyebrow,\n\ttitle,\n\tdescription,\n\theaderEnd,\n\tbanner,\n\tmedia,\n\tfooter,\n\tchildren,\n\tclassName,\n\theaderClassName,\n\tmediaClassName,\n\tcontentClassName,\n\tfooterClassName,\n\t...props\n}: AuthCardProps) {\n\tconst hasHeader = Boolean(eyebrow || title || description || headerEnd);\n\n\treturn (\n\t\t<CardShell\n\t\t\tdata-slot=\"auth-card\"\n\t\t\tdata-surface={surface}\n\t\t\tclassName={cn(\n\t\t\t\t'auth-card--component',\n\t\t\t\t'w-full min-w-0 gap-0 py-0',\n\t\t\t\t// `bare` keeps the header/body/footer rhythm and drops only the\n\t\t\t\t// framing, so the same composition works on a page that is itself\n\t\t\t\t// the surface. Padding goes too — without a frame it reads as drift.\n\t\t\t\tsurface === 'card'\n\t\t\t\t\t? 'overflow-hidden rounded-surface border border-border bg-card text-card-foreground shadow-sm'\n\t\t\t\t\t: 'border-0 bg-transparent text-inherit shadow-none',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{!!media && (\n\t\t\t\t<div className={cn('auth-card--media', 'min-h-12 border-b border-border/60 bg-muted/50', mediaClassName)}>\n\t\t\t\t\t{media}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!!hasHeader && (\n\t\t\t\t<header className={cn('auth-card--header min-w-0', surface === 'card' ? 'p-surface pb-0' : 'p-0', headerClassName)}>\n\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"xl\" align=\"start\" justify=\"between\" className=\"auth-card--header-layout min-w-0\">\n\t\t\t\t\t\t<Stack gap=\"normal\" className=\"min-w-0\">\n\t\t\t\t\t\t\t{!!eyebrow && (\n\t\t\t\t\t\t\t\t<DisplayLabel tag=\"div\" className=\"auth-card--eyebrow text-inherit\">\n\t\t\t\t\t\t\t\t\t{eyebrow}\n\t\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\ttag=\"h1\"\n\t\t\t\t\t\t\t\t\tcontainerClassName=\"space-y-0\"\n\t\t\t\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\t\t\t\tclassName=\"auth-card--title text-inherit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t<Text tag=\"div\" type=\"secondary\" lineHeight=\"relaxed\" className=\"auth-card--description max-w-prose\">\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t{!!headerEnd && <div className=\"auth-card--header-end shrink-0\">{headerEnd}</div>}\n\t\t\t\t\t</Stack>\n\t\t\t\t</header>\n\t\t\t)}\n\n\t\t\t<CardContent\n\t\t\t\tpadding={surface === 'card' ? 'md' : 'none'}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'auth-card--content',\n\t\t\t\t\t'min-w-0',\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className={cn('auth-card--body min-w-0', surface === 'bare' && 'py-space-xl')}>\n\t\t\t\t{!!banner && <div className=\"auth-card--banner mb-space-xl min-w-0\">{banner}</div>}\n\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</CardContent>\n\n\t\t\t{!!footer && (\n\t\t\t\t<CardFooter\n\t\t\t\t\tpadding=\"md\"\n\t\t\t\t\tclassName={cn('auth-card--footer', 'min-w-0 flex-wrap border-t border-border/60', footerClassName)}\n\t\t\t\t>\n\t\t\t\t\t{footer}\n\t\t\t\t</CardFooter>\n\t\t\t)}\n\t\t</CardShell>\n\t);\n}\n","import { isValidElement, useMemo } from 'react';\n\nimport { useLayoutLinkRenderer } from '../hooks';\nimport type {\n\tAuthBrand,\n\tAuthBrandConfig,\n\tUseAuthLinksOptions,\n\tUseAuthLinksReturn,\n\tUseAuthShellOptions,\n\tUseAuthShellReturn,\n} from './auth.types';\n\nexport function isAuthBrandConfig(brand: AuthBrand | undefined): brand is AuthBrandConfig {\n\treturn Boolean(\n\t\tbrand &&\n\t\t\ttypeof brand === 'object' &&\n\t\t\t!isValidElement(brand) &&\n\t\t\t('logo' in brand || 'label' in brand || 'description' in brand || 'href' in brand),\n\t);\n}\n\nexport function useAuthLinks({\n\tlinks = [],\n\trenderLink,\n}: UseAuthLinksOptions = {}): UseAuthLinksReturn {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst visibleLinks = useMemo(\n\t\t() => links.filter((link) => link.visible !== false),\n\t\t[links],\n\t);\n\n\treturn {\n\t\tlinks: visibleLinks,\n\t\trenderLink: resolvedRenderLink,\n\t};\n}\n\nexport function useAuthShell({\n\tvariant = 'card',\n\tbrand,\n\tfooter,\n\tfooterLinks = [],\n\tpolicyLinks = [],\n\tlanguageLinks = [],\n\tlanguageSwitcher,\n\tpostCard,\n\tsocialProviders = [],\n\tsplitPanel,\n\trenderLink,\n}: UseAuthShellOptions = {}): UseAuthShellReturn {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst visibleFooterLinks = useMemo(\n\t\t() => footerLinks.filter((link) => link.visible !== false),\n\t\t[footerLinks],\n\t);\n\tconst visiblePolicyLinks = useMemo(\n\t\t() => policyLinks.filter((link) => link.visible !== false),\n\t\t[policyLinks],\n\t);\n\tconst visibleLanguageLinks = useMemo(\n\t\t() => languageLinks.filter((link) => link.visible !== false),\n\t\t[languageLinks],\n\t);\n\tconst visibleSocialProviders = useMemo(\n\t\t() => socialProviders.filter((provider) => provider.visible !== false),\n\t\t[socialProviders],\n\t);\n\tconst hasBrand = Boolean(\n\t\tbrand &&\n\t\t\t(isAuthBrandConfig(brand)\n\t\t\t\t? brand.logo || brand.label || brand.description\n\t\t\t\t: brand),\n\t);\n\tconst hasAfterCard = Boolean(\n\t\tpostCard ||\n\t\t\tfooter ||\n\t\t\tlanguageSwitcher ||\n\t\t\tvisibleFooterLinks.length > 0 ||\n\t\t\tvisiblePolicyLinks.length > 0 ||\n\t\t\tvisibleLanguageLinks.length > 0,\n\t);\n\tconst hasSplitPanel = Boolean(splitPanel);\n\n\treturn {\n\t\t// Only `split` depends on a panel being supplied; falling back to `card`\n\t\t// for every other variant would silently flatten them. `bare` in\n\t\t// particular has nothing to do with the split panel, so clamping on\n\t\t// `hasSplitPanel` alone discarded it.\n\t\tvariant: variant === 'split' && !hasSplitPanel ? 'card' : variant,\n\t\thasBrand,\n\t\thasAfterCard,\n\t\thasSplitPanel,\n\t\thasSocialProviders: visibleSocialProviders.length > 0,\n\t\trenderLink: resolvedRenderLink,\n\t\tfooterLinks: visibleFooterLinks,\n\t\tpolicyLinks: visiblePolicyLinks,\n\t\tlanguageLinks: visibleLanguageLinks,\n\t\tsocialProviders: visibleSocialProviders,\n\t};\n}\n","export interface AuthShellStrings {\n\tsocialDivider: string;\n\tsocialProvidersLabel: string;\n\tfooterLinksLabel: string;\n\tpolicyLinksLabel: string;\n\tlanguageLinksLabel: string;\n}\n\nexport const defaultAuthShellStrings: AuthShellStrings = {\n\tsocialDivider: 'or continue with email',\n\tsocialProvidersLabel: 'Social sign-in options',\n\tfooterLinksLabel: 'Authentication links',\n\tpolicyLinksLabel: 'Policies',\n\tlanguageLinksLabel: 'Language options',\n};\n\nexport interface AuthFooterLinksStrings {\n\tlabel: string;\n}\n\nexport const defaultAuthFooterLinksStrings: AuthFooterLinksStrings = {\n\tlabel: 'Authentication links',\n};\n\nexport interface AuthSocialProvidersStrings {\n\tlabel: string;\n}\n\nexport const defaultAuthSocialProvidersStrings: AuthSocialProvidersStrings = {\n\tlabel: 'Social sign-in options',\n};\n\nexport interface AuthMethodSwitchStrings {\n\tlabel: string;\n\tdivider: string;\n}\n\nexport const defaultAuthMethodSwitchStrings: AuthMethodSwitchStrings = {\n\tlabel: 'Authentication method',\n\tdivider: 'or',\n};\n","import { Fragment } from 'react';\n\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { useAuthLinks } from './auth-hooks';\nimport { defaultAuthFooterLinksStrings } from './auth.strings';\nimport type { AuthFooterLinksProps } from './auth.types';\n\nexport function AuthFooterLinks({\n\tlinks,\n\tleadingIcon,\n\tseparator = '·',\n\trenderLink,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}: AuthFooterLinksProps) {\n\tconst strings = useStrings(defaultAuthFooterLinksStrings, stringsProp);\n\tconst { links: visibleLinks, renderLink: resolvedRenderLink } = useAuthLinks({\n\t\tlinks,\n\t\trenderLink,\n\t});\n\n\tif (visibleLinks.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<nav\n\t\t\taria-label={props['aria-label'] ?? strings.label}\n\t\t\tclassName={cn(\n\t\t\t\t'auth-footer-links--component',\n\t\t\t\t'flex flex-wrap items-center justify-center gap-x-space-md gap-y-space-xs text-center',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{!!leadingIcon && (\n\t\t\t\t<span className=\"auth-footer-links--icon flex shrink-0 items-center text-muted-foreground\" aria-hidden=\"true\">\n\t\t\t\t\t{leadingIcon}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t{visibleLinks.map((link, index) => {\n\t\t\t\tconst linkNode = resolvedRenderLink({\n\t\t\t\t\thref: link.href,\n\t\t\t\t\ttarget: link.target,\n\t\t\t\t\trel: link.rel,\n\t\t\t\t\texternal: link.external,\n\t\t\t\t\tdisabled: link.disabled,\n\t\t\t\t\tonClick: link.onClick,\n\t\t\t\t\tclassName: cn(\n\t\t\t\t\t\t'auth-footer-links--item',\n\t\t\t\t\t\t'text-muted-foreground transition-colors hover:text-foreground',\n\t\t\t\t\t\tlink.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t),\n\t\t\t\t\tchildren: (\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">\n\t\t\t\t\t\t\t{link.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t),\n\t\t\t\t});\n\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={link.id ?? index}>\n\t\t\t\t\t\t{index > 0 && (\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\ttype=\"secondary\"\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName=\"auth-footer-links--separator\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{separator}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{linkNode}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</nav>\n\t);\n}\n","/* oxlint-disable shadcn/no-raw-colors -- Official provider logos are external brand artwork, not themeable UI states. */\nimport { KeyRound } from 'lucide-react';\n\nimport { Button } from '../../base/buttons';\nimport { buttonVariants } from '../../base/buttons/button.variants';\nimport { useDensityConfig } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { Grid } from '../../base/structure';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { useLayoutLinkRenderer } from '../hooks';\nimport { defaultAuthSocialProvidersStrings } from './auth.strings';\nimport type {\n\tAuthSocialProvider,\n\tAuthSocialProviderButtonProps,\n\tAuthSocialProvidersProps,\n} from './auth.types';\n\nconst PROVIDER_BUTTON_CLASS = 'auth-social-provider-button--component';\n\nfunction GoogleMark() {\n\treturn (\n\t\t<svg data-artwork=\"auth-provider-logo\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName=\"size-icon\"\n\t\t\tviewBox=\"0 0 256 262\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<path fill=\"#4285F4\" d=\"M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027\" />\n\t\t\t<path fill=\"#34A853\" d=\"M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1\" />\n\t\t\t<path fill=\"#FBBC05\" d=\"M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782\" />\n\t\t\t<path fill=\"#EB4335\" d=\"M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251\" />\n\t\t</svg>\n\t);\n}\n\nfunction MicrosoftMark() {\n\treturn (\n\t\t<svg data-artwork=\"auth-provider-logo\" aria-hidden=\"true\" className=\"size-icon\" viewBox=\"0 0 23 23\">\n\t\t\t<path fill=\"#f25022\" d=\"M1 1h10v10H1z\" />\n\t\t\t<path fill=\"#7fba00\" d=\"M12 1h10v10H12z\" />\n\t\t\t<path fill=\"#00a4ef\" d=\"M1 12h10v10H1z\" />\n\t\t\t<path fill=\"#ffb900\" d=\"M12 12h10v10H12z\" />\n\t\t</svg>\n\t);\n}\n\nfunction GithubMark() {\n\treturn (\n\t\t<svg data-artwork=\"auth-provider-logo\" aria-hidden=\"true\" className=\"size-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n\t\t\t<path d=\"M12 2C6.48 2 2 6.58 2 12.24c0 4.53 2.87 8.37 6.84 9.73.5.09.68-.22.68-.49 0-.24-.01-.88-.01-1.73-2.78.62-3.37-1.37-3.37-1.37-.45-1.18-1.11-1.5-1.11-1.5-.91-.64.07-.63.07-.63 1 .07 1.53 1.06 1.53 1.06.9 1.57 2.36 1.12 2.93.86.09-.67.35-1.12.64-1.38-2.22-.26-4.56-1.14-4.56-5.07 0-1.12.39-2.04 1.03-2.76-.1-.26-.45-1.31.1-2.72 0 0 .84-.28 2.75 1.05A9.32 9.32 0 0 1 12 6.95c.85 0 1.7.12 2.5.35 1.9-1.33 2.74-1.05 2.74-1.05.55 1.41.2 2.46.1 2.72.64.72 1.03 1.64 1.03 2.76 0 3.94-2.34 4.8-4.57 5.06.36.32.68.95.68 1.91 0 1.38-.01 2.49-.01 2.83 0 .27.18.59.69.49A10.12 10.12 0 0 0 22 12.24C22 6.58 17.52 2 12 2Z\" />\n\t\t</svg>\n\t);\n}\n\nfunction AppleMark() {\n\treturn (\n\t\t<svg data-artwork=\"auth-provider-logo\" aria-hidden=\"true\" className=\"size-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n\t\t\t<path d=\"M16.37 12.05c-.02-2.26 1.85-3.35 1.94-3.4-1.06-1.55-2.69-1.76-3.26-1.78-1.37-.14-2.7.82-3.39.82-.71 0-1.78-.8-2.93-.78-1.5.02-2.9.89-3.67 2.25-1.57 2.72-.4 6.72 1.1 8.92.76 1.08 1.64 2.29 2.79 2.25 1.13-.05 1.55-.72 2.91-.72 1.35 0 1.75.72 2.93.69 1.21-.02 1.98-1.09 2.71-2.18.87-1.24 1.22-2.46 1.23-2.52-.03-.01-2.34-.9-2.36-3.55ZM14.16 5.42c.61-.76 1.03-1.8.91-2.85-.88.04-1.98.61-2.62 1.35-.57.65-1.08 1.73-.95 2.74.99.08 2.02-.5 2.66-1.24Z\" />\n\t\t</svg>\n\t);\n}\n\nfunction ProviderIcon({ provider }: { provider: AuthSocialProvider }) {\n\tif (provider.icon) return <>{provider.icon}</>;\n\tswitch (provider.provider) {\n\t\tcase 'google':\n\t\t\treturn <GoogleMark />;\n\t\tcase 'github':\n\t\t\treturn <GithubMark />;\n\t\tcase 'microsoft':\n\t\t\treturn <MicrosoftMark />;\n\t\tcase 'apple':\n\t\t\treturn <AppleMark />;\n\t\tdefault:\n\t\t\treturn <KeyRound className=\"size-icon\" aria-hidden=\"true\" />;\n\t}\n}\n\nexport function AuthSocialProviderButton({\n\tprovider,\n\trenderLink,\n\tclassName,\n}: AuthSocialProviderButtonProps) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(undefined, defaultScale);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst content = (\n\t\t<>\n\t\t\t<ProviderIcon provider={provider} />\n\t\t\t<Text tag=\"span\" className=\"text-inherit\">\n\t\t\t\t{provider.label}\n\t\t\t</Text>\n\t\t</>\n\t);\n\tconst buttonClassName = cn(\n\t\tPROVIDER_BUTTON_CLASS,\n\t\tbuttonVariants({size, tone: 'secondary', buttonStyle: 'outline', fullWidth: true}),\n\t\tprovider.disabled && 'pointer-events-none opacity-50',\n\t\tclassName,\n\t);\n\n\tif (provider.href) {\n\t\treturn resolvedRenderLink({\n\t\t\thref: provider.href,\n\t\t\ttarget: provider.target,\n\t\t\trel: provider.rel,\n\t\t\texternal: provider.external,\n\t\t\tdisabled: provider.disabled,\n\t\t\tonClick: provider.onClick,\n\t\t\tclassName: buttonClassName,\n\t\t\tchildren: content,\n\t\t});\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ttype=\"button\"\n\t\t\ttone=\"secondary\"\n\t\t\tbuttonStyle=\"outline\"\n\t\t\tfullWidth\n\t\t\tdisabled={provider.disabled}\n\t\t\tclassName={cn('auth-social-provider-button--component', className)}\n\t\t\tonClick={(event) => provider.onClick?.(event)}\n\t\t>\n\t\t\t{content}\n\t\t</Button>\n\t);\n}\n\nexport function AuthSocialProviders({\n\tproviders,\n\tlayout = 'stack',\n\trenderLink,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}: AuthSocialProvidersProps) {\n\tconst strings = useStrings(defaultAuthSocialProvidersStrings, stringsProp);\n\tconst visibleProviders = providers?.filter((provider) => provider.visible !== false) ?? [];\n\n\tif (visibleProviders.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Grid\n\t\t\tcolumns={layout === 'grid' ? { base: 1, sm: 2 } : 1}\n\t\t\tgap=\"md\"\n\t\t\trole=\"group\"\n\t\t\taria-label={props['aria-label'] ?? strings.label}\n\t\t\tdata-layout={layout}\n\t\t\tclassName={cn(\n\t\t\t\t'auth-social-providers--component',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{visibleProviders.map((provider) => (\n\t\t\t\t<AuthSocialProviderButton\n\t\t\t\t\tkey={provider.id ?? String(provider.label)}\n\t\t\t\t\tprovider={provider}\n\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</Grid>\n\t);\n}\n","import {\n\tItem,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '../../base/item';\nimport { Stack } from '../../base/structure';\nimport { DisplayLabel, Heading, Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nimport type { AuthSplitPanelProps } from './auth.types';\n\nconst SURFACE_CLASS: Record<NonNullable<AuthSplitPanelProps['surface']>, string> = {\n\tcard: 'border-border bg-card text-card-foreground',\n\tmuted: 'border-border bg-muted/30',\n};\n\nexport function AuthSplitPanel({\n\teyebrow,\n\ttitle,\n\tdescription,\n\tmedia,\n\tfeatures,\n\tfooter,\n\tchildren,\n\tsurface = 'muted',\n\tclassName,\n\tcontentClassName,\n\t...props\n}: AuthSplitPanelProps) {\n\tconst hasIntro = Boolean(eyebrow || title || description);\n\tconst visibleFeatures = features?.filter((feature) => feature.title) ?? [];\n\n\treturn (\n\t\t<Stack\n\t\t\trender={<aside />}\n\t\t\tgap=\"none\"\n\t\t\tjustify=\"between\"\n\t\t\tdata-slot=\"auth-split-panel\"\n\t\t\tdata-surface={surface}\n\t\t\tclassName={cn(\n\t\t\t\t'auth-split-panel--component',\n\t\t\t\t'box-border min-h-full w-full overflow-hidden border',\n\t\t\t\tSURFACE_CLASS[surface],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Stack\n\t\t\t\tgap=\"2xl\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'auth-split-panel--content',\n\t\t\t\t\t'min-h-full p-surface md:p-surface-lg',\n\t\t\t\t\tcontentClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!media && (\n\t\t\t\t\t<div className=\"auth-split-panel--media overflow-hidden rounded-surface border border-border/60 bg-card text-card-foreground\">\n\t\t\t\t\t\t{media}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasIntro && (\n\t\t\t\t\t<Stack gap=\"md\" className=\"auth-split-panel--intro max-w-xl\">\n\t\t\t\t\t\t{!!eyebrow && (\n\t\t\t\t\t\t\t<DisplayLabel tag=\"div\" className=\"auth-split-panel--eyebrow text-inherit\">\n\t\t\t\t\t\t\t\t{eyebrow}\n\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\ttag=\"h2\"\n\t\t\t\t\t\t\t\tcontainerClassName=\"space-y-0\"\n\t\t\t\t\t\t\t\tsize=\"base\"\n\t\t\t\t\t\t\t\tclassName=\"auth-split-panel--title text-inherit\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tlineHeight=\"relaxed\"\n\t\t\t\t\t\t\t\tclassName=\"auth-split-panel--description max-w-prose\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\n\t\t\t\t{visibleFeatures.length > 0 && (\n\t\t\t\t\t<ItemGroup className=\"auth-split-panel--features\">\n\t\t\t\t\t\t{visibleFeatures.map((feature, index) => (\n\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\tkey={feature.id ?? index}\n\t\t\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\t\t\tclassName=\"auth-split-panel--feature bg-card text-card-foreground\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!feature.icon && (\n\t\t\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t{feature.icon}\n\t\t\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<ItemContent className=\"min-w-0\">\n\t\t\t\t\t\t\t\t\t<ItemTitle>{feature.title}</ItemTitle>\n\t\t\t\t\t\t\t\t\t{!!feature.description && (\n\t\t\t\t\t\t\t\t\t\t<ItemDescription clamp=\"none\">{feature.description}</ItemDescription>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t)}\n\n\t\t\t\t{children}\n\n\t\t\t\t{!!footer && (\n\t\t\t\t\t<div className=\"auth-split-panel--footer\">\n\t\t\t\t\t\t{footer}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Stack>\n\t\t</Stack>\n\t);\n}\n","import { Globe2 } from 'lucide-react';\nimport { isValidElement, type ReactNode } from 'react';\n\nimport { Text } from '../../typography';\nimport { Stack } from '../../base/structure';\nimport { containerRecipe } from '../containers/container.recipes';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { AuthCard } from './auth-card';\nimport { AuthFooterLinks } from './auth-footer-links';\nimport { isAuthBrandConfig, useAuthShell } from './auth-hooks';\nimport { defaultAuthShellStrings } from './auth.strings';\nimport { AuthSocialProviders } from './auth-social-providers';\nimport { AuthSplitPanel } from './auth-split-panel';\nimport type {\n\tAuthBrand,\n\tAuthBrandConfig,\n\tAuthShellProps,\n\tAuthSplitPanelProps,\n} from './auth.types';\n\nconst SIZE_CLASS: Record<NonNullable<AuthShellProps['size']>, string> = {\n\tsm: 'max-w-sm',\n\tmd: 'max-w-md',\n\tlg: 'max-w-lg',\n};\n\nfunction isSplitPanelProps(panel: AuthShellProps['splitPanel']): panel is AuthSplitPanelProps {\n\treturn Boolean(panel && typeof panel === 'object' && !isValidElement(panel));\n}\n\nfunction renderBrandContent(brand: AuthBrandConfig): ReactNode {\n\tconst hasText = Boolean(brand.label || brand.description);\n\n\treturn (\n\t\t<>\n\t\t\t{!!brand.logo && (\n\t\t\t\t<div className=\"auth-shell--brand-logo shrink-0\">\n\t\t\t\t\t{brand.logo}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!hasText && (\n\t\t\t\t<div className=\"auth-shell--brand-text min-w-0\">\n\t\t\t\t\t{!!brand.label && (\n\t\t\t\t\t\t<Text tag=\"div\" weight=\"semibold\" className=\"auth-shell--brand-label\">\n\t\t\t\t\t\t\t{brand.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!brand.description && (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\tclassName=\"auth-shell--brand-description\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{brand.description}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nfunction renderBrand({\n\tbrand,\n\trenderLink,\n}: {\n\t/** Logo, name, and href for the product mark. */\n\tbrand?: AuthBrand;\n\trenderLink: NonNullable<AuthShellProps['renderLink']>;\n}) {\n\tif (!brand) return null;\n\n\tif (!isAuthBrandConfig(brand)) {\n\t\treturn (\n\t\t\t<div className=\"auth-shell--brand flex items-center justify-center\">\n\t\t\t\t{brand}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst content = renderBrandContent(brand);\n\tconst className = cn(\n\t\t'auth-shell--brand',\n\t\t'inline-flex items-center justify-center gap-space-md self-center rounded-radius text-foreground',\n\t\tbrand.href && 'transition-opacity hover:opacity-80',\n\t);\n\n\tif (brand.href) {\n\t\treturn renderLink({\n\t\t\thref: brand.href,\n\t\t\t'aria-label': brand.ariaLabel,\n\t\t\tclassName,\n\t\t\tchildren: content,\n\t\t});\n\t}\n\n\treturn <div className={className}>{content}</div>;\n}\n\nfunction renderSplitPanel(panel: AuthShellProps['splitPanel']) {\n\tif (!panel) return null;\n\tif (isValidElement(panel)) return panel;\n\tif (isSplitPanelProps(panel)) return <AuthSplitPanel {...panel} />;\n\treturn null;\n}\n\nexport function AuthShell({\n\tchildren,\n\tvariant: variantProp = 'card',\n\tsize = 'md',\n\talign = 'center',\n\tbrand,\n\teyebrow,\n\ttitle,\n\tdescription,\n\theaderEnd,\n\tbanner,\n\tcardMedia,\n\tcardMediaClassName,\n\tcardFooter,\n\tpostCard,\n\tfooter,\n\tfooterLinks,\n\tpolicyLinks,\n\tlanguageLinks,\n\tlanguageSwitcher,\n\tsocialProviders,\n\tsocialProvidersLayout = 'stack',\n\tsocialDivider,\n\tsplitPanel,\n\tsplitSide = 'left',\n\tsplitMobile = 'hidden',\n\trenderLink,\n\tclassName,\n\tmainClassName,\n\tstackClassName,\n\tcardClassName,\n\tcardContentClassName,\n\tsplitGridClassName,\n\tsplitPanelClassName,\n\tfooterClassName,\n\tstrings: stringsProp,\n\t...props\n}: AuthShellProps) {\n\tconst strings = useStrings(defaultAuthShellStrings, stringsProp);\n\tconst {\n\t\tvariant,\n\t\thasBrand,\n\t\thasAfterCard,\n\t\thasSplitPanel,\n\t\thasSocialProviders,\n\t\trenderLink: resolvedRenderLink,\n\t\tfooterLinks: visibleFooterLinks,\n\t\tpolicyLinks: visiblePolicyLinks,\n\t\tlanguageLinks: visibleLanguageLinks,\n\t\tsocialProviders: visibleSocialProviders,\n\t} = useAuthShell({\n\t\tvariant: variantProp,\n\t\tbrand,\n\t\tfooter,\n\t\tfooterLinks,\n\t\tpolicyLinks,\n\t\tlanguageLinks,\n\t\tlanguageSwitcher,\n\t\tpostCard,\n\t\tsocialProviders,\n\t\tsplitPanel,\n\t\trenderLink,\n\t});\n\tconst isSplit = variant === 'split' && hasSplitPanel;\n\tconst panel = renderSplitPanel(splitPanel);\n\tconst panelFirst = splitSide === 'left';\n\tconst showStackedPanel = splitMobile === 'stacked';\n\t// Stacked below the split width, the form leads and the context panel follows,\n\t// whichever side the panel takes in columns. DOM order (and so form state and\n\t// focus order) never changes; only the stacked visual order does.\n\tconst panelClassName = cn(\n\t\t'auth-shell--split-panel',\n\t\tshowStackedPanel ? 'block' : 'hidden @5xl/auth-shell:block',\n\t\tshowStackedPanel && panelFirst && 'order-last @5xl/auth-shell:order-none',\n\t\tsplitPanelClassName,\n\t);\n\tconst brandNode = hasBrand ? renderBrand({ brand, renderLink: resolvedRenderLink }) : null;\n\n\tconst main = (\n\t\t<Stack\n\t\t\trender={<main />}\n\t\t\tgap=\"none\"\n\t\t\talign={align === 'start' ? 'start' : 'center'}\n\t\t\tjustify=\"center\"\n\t\t\tclassName={cn(\n\t\t\t\t'auth-shell--main',\n\t\t\t\tcontainerRecipe({ maxWidth: 'full', gutter: 'md' }),\n\t\t\t\t'min-h-svh py-surface-lg sm:px-surface-lg',\n\t\t\t\tmainClassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Stack\n\t\t\t\tgap=\"xl\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'auth-shell--stack',\n\t\t\t\t\t'w-full',\n\t\t\t\t\tSIZE_CLASS[size],\n\t\t\t\t\tstackClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{brandNode}\n\n\t\t\t\t<AuthCard\n\t\t\t\t\tsurface={variant === 'bare' ? 'bare' : 'card'}\n\t\t\t\t\teyebrow={eyebrow}\n\t\t\t\t\ttitle={title}\n\t\t\t\t\tdescription={description}\n\t\t\t\t\theaderEnd={headerEnd}\n\t\t\t\t\tbanner={banner}\n\t\t\t\t\tmedia={cardMedia}\n\t\t\t\t\tmediaClassName={cardMediaClassName}\n\t\t\t\t\tfooter={cardFooter}\n\t\t\t\t\tclassName={cardClassName}\n\t\t\t\t\tcontentClassName={cardContentClassName}\n\t\t\t\t>\n\t\t\t\t\t{!!hasSocialProviders && (\n\t\t\t\t\t\t<Stack gap=\"xl\" className=\"auth-shell--social mb-space-xl\">\n\t\t\t\t\t\t\t<AuthSocialProviders\n\t\t\t\t\t\t\t\tproviders={visibleSocialProviders}\n\t\t\t\t\t\t\t\tlayout={socialProvidersLayout}\n\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\tstrings={{ label: strings.socialProvidersLabel }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div className=\"auth-shell--social-divider flex items-center gap-space-lg\">\n\t\t\t\t\t\t\t\t<span className=\"h-px min-w-0 flex-1 bg-border\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t{socialDivider ?? strings.socialDivider}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<span className=\"h-px min-w-0 flex-1 bg-border\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t)}\n\t\t\t\t\t{children}\n\t\t\t\t</AuthCard>\n\n\t\t\t\t{!!hasAfterCard && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'auth-shell--after-card',\n\t\t\t\t\t\t\t'text-center',\n\t\t\t\t\t\t\tfooterClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!postCard && <div className=\"auth-shell--post-card\">{postCard}</div>}\n\t\t\t\t\t\t{!!languageSwitcher && (\n\t\t\t\t\t\t\t<div className=\"auth-shell--language-switcher\">\n\t\t\t\t\t\t\t\t{languageSwitcher}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{visibleLanguageLinks.length > 0 && (\n\t\t\t\t\t\t\t<AuthFooterLinks\n\t\t\t\t\t\t\t\tclassName=\"auth-shell--language-links\"\n\t\t\t\t\t\t\t\tlinks={visibleLanguageLinks}\n\t\t\t\t\t\t\t\tleadingIcon={<Globe2 className=\"size-icon-md\" />}\n\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\tstrings={{ label: strings.languageLinksLabel }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{visibleFooterLinks.length > 0 && (\n\t\t\t\t\t\t\t<AuthFooterLinks\n\t\t\t\t\t\t\t\tclassName=\"auth-shell--footer-links\"\n\t\t\t\t\t\t\t\tlinks={visibleFooterLinks}\n\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\tstrings={{ label: strings.footerLinksLabel }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{visiblePolicyLinks.length > 0 && (\n\t\t\t\t\t\t\t<AuthFooterLinks\n\t\t\t\t\t\t\t\tclassName=\"auth-shell--policy-links\"\n\t\t\t\t\t\t\t\tlinks={visiblePolicyLinks}\n\t\t\t\t\t\t\t\trenderLink={resolvedRenderLink}\n\t\t\t\t\t\t\t\tstrings={{ label: strings.policyLinksLabel }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!footer && <div className=\"auth-shell--footer\">{footer}</div>}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</Stack>\n\t\t</Stack>\n\t);\n\n\tif (!isSplit) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"auth-shell\"\n\t\t\t\tdata-variant={variant === 'bare' ? 'bare' : 'card'}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'auth-shell--component',\n\t\t\t\t\t'@container/auth-shell min-h-svh bg-background text-foreground',\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{main}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"auth-shell\"\n\t\t\tdata-variant=\"split\"\n\t\t\tdata-split-side={splitSide}\n\t\t\tdata-split-mobile={splitMobile}\n\t\t\tclassName={cn(\n\t\t\t\t'auth-shell--component',\n\t\t\t\t'@container/auth-shell min-h-svh bg-background text-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'auth-shell--split-grid flex min-h-svh flex-col @5xl/auth-shell:grid',\n\t\t\t\t\tpanelFirst\n\t\t\t\t\t\t? '@5xl/auth-shell:grid-cols-[minmax(0,1fr)_minmax(24rem,34rem)]'\n\t\t\t\t\t\t: '@5xl/auth-shell:grid-cols-[minmax(24rem,34rem)_minmax(0,1fr)]',\n\t\t\t\t\tsplitGridClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!panelFirst && <div className={panelClassName}>{panel}</div>}\n\t\t\t\t{main}\n\t\t\t\t{!panelFirst && <div className={panelClassName}>{panel}</div>}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import { cn } from '../../../lib/utils';\nimport { Grid } from '../../base/structure';\n\nimport type { AuthFormProps, AuthFormRowProps } from './auth.types';\n\n/**\n * Canonical auth form track. The explicit minmax(0, 1fr) column prevents\n * nowrap controls from widening a narrow auth card through grid min-content.\n */\nexport function AuthForm({ className, ...props }: AuthFormProps) {\n\tconst { children, ...formProps } = props;\n\n\treturn (\n\t\t<Grid\n\t\t\trender={(renderProps) => <form {...formProps} {...renderProps} />}\n\t\t\tcolumns={1}\n\t\t\tgap=\"xl\"\n\t\t\tdata-slot=\"auth-form\"\n\t\t\tclassName={cn('auth-form--component', className)}\n\t\t>\n\t\t\t{children}\n\t\t</Grid>\n\t);\n}\n\n/**\n * Auxiliary auth row for controls such as \"remember me\" and recovery links.\n * Items remain side by side when they fit and wrap without widening the card.\n */\nexport function AuthFormRow({ className, ...props }: AuthFormRowProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"auth-form-row\"\n\t\t\tclassName={cn(\n\t\t\t\t'auth-form-row--component',\n\t\t\t\t'flex min-w-0 flex-wrap items-center justify-between gap-x-space-lg gap-y-space-md',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","import * as React from 'react';\n\nimport { Grid, Stack } from '../../base/structure';\nimport { Text } from '../../typography';\nimport { resolveTextClassNames } from '../../typography/text.styles';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultAuthMethodSwitchStrings } from './auth.strings';\nimport type {\n\tAuthMethodOption,\n\tAuthMethodSwitchProps,\n\tUseAuthMethodSwitchOptions,\n\tUseAuthMethodSwitchReturn,\n} from './auth.types';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { interactionRecipes } from '../../../lib/interaction-recipes';\n\nfunction firstEnabledOption(options: AuthMethodOption[]) {\n\treturn options.find((option) => !option.disabled);\n}\n\nexport function useAuthMethodSwitch({\n\toptions = [],\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n}: UseAuthMethodSwitchOptions = {}): UseAuthMethodSwitchReturn {\n\tconst visibleOptions = React.useMemo(() => options.filter((option) => option.visible !== false), [options]);\n\tconst fallbackValue = defaultValue ?? firstEnabledOption(visibleOptions)?.id;\n\tconst [internalValue, setInternalValue] = React.useState<string | undefined>(fallbackValue);\n\tconst isControlled = value !== undefined;\n\tconst selectedValue = isControlled ? value : internalValue;\n\tconst selectedOption = visibleOptions.find((option) => option.id === selectedValue);\n\n\tconst setValue = React.useCallback(\n\t\t(nextValue: string) => {\n\t\t\tconst nextOption = visibleOptions.find((option) => option.id === nextValue);\n\t\t\tif (!nextOption || nextOption.disabled) return;\n\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue(nextValue);\n\t\t\t}\n\n\t\t\tonValueChange?.(nextValue, nextOption);\n\t\t},\n\t\t[isControlled, onValueChange, visibleOptions],\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (isControlled || selectedOption || visibleOptions.length === 0) return;\n\t\tsetInternalValue(firstEnabledOption(visibleOptions)?.id);\n\t}, [isControlled, selectedOption, visibleOptions]);\n\n\treturn {\n\t\tvalue: selectedValue,\n\t\tselectedOption,\n\t\toptions: visibleOptions,\n\t\tsetValue,\n\t};\n}\n\nexport function AuthMethodSwitch({\n\toptions = [],\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\tlayout = 'stack',\n\tdivider,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}: AuthMethodSwitchProps) {\n\tconst strings = useStrings(defaultAuthMethodSwitchStrings, stringsProp);\n\tconst { ['aria-label']: ariaLabel, ...rootProps } = props;\n\tconst {\n\t\tvalue: selectedValue,\n\t\toptions: visibleOptions,\n\t\tsetValue,\n\t} = useAuthMethodSwitch({\n\t\toptions,\n\t\tvalue,\n\t\tdefaultValue,\n\t\tonValueChange,\n\t});\n\n\tif (visibleOptions.length === 0) {\n\t\treturn null;\n\t}\n\tconst segmented = layout === 'segmented';\n\tconst optionButtons = visibleOptions.map((option) => {\n\t\tconst selected = option.id === selectedValue;\n\t\tconst optionContent = (\n\t\t\t<>\n\t\t\t\t{!!option.icon && (\n\t\t\t\t\t<span className=\"auth-method-switch--option-icon shrink-0\" aria-hidden=\"true\">\n\t\t\t\t\t\t{option.icon}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t<Stack render={<span />} gap=\"dense\" className=\"auth-method-switch--option-copy w-full\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'max-w-full whitespace-normal break-words text-inherit',\n\t\t\t\t\t\t\tsegmented ? 'text-center @md/auth-method-switch:truncate @md/auth-method-switch:text-start' : 'text-start',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{option.label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!option.description && (\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=\"xs\"\n\t\t\t\t\t\t\tlineHeight={segmented ? undefined : 'snug'}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'whitespace-normal break-words text-muted-foreground',\n\t\t\t\t\t\t\t\tsegmented ? 'hidden @md/auth-method-switch:block @md/auth-method-switch:truncate' : 'text-start',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.description}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t</>\n\t\t);\n\t\treturn (\n\t\t\t<button\n\t\t\t\tkey={option.id}\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-pressed={selected}\n\t\t\t\tdisabled={option.disabled}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'auth-method-switch--option',\n\t\t\t\t\t`box-border m-0 inline-flex min-h-action-lg min-w-0 w-full cursor-pointer items-center justify-start gap-space-sm whitespace-normal rounded-radius border px-control py-row-y-lg text-start outline-none transition-[color,background-color,border-color,box-shadow] ${focusRecipes.frame} disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,\n\t\t\t\t\tresolveTextClassNames({type: null, size: 'sm', weight: 'medium', align: null, lineHeight: 'none'}),\n\t\t\t\t\t// Selection never reads as a second primary command beside the form's\n\t\t\t\t\t// submit: segments lift on their muted track, and option tiles take the\n\t\t\t\t\t// choice-tile recipe (resting edge, control-boundary hover, primary edge).\n\t\t\t\t\tsegmented\n\t\t\t\t\t\t? cn(\n\t\t\t\t\t\t\t'min-h-action justify-center border-0 px-control-sm py-row-y text-center @md/auth-method-switch:px-control @md/auth-method-switch:text-start',\n\t\t\t\t\t\t\tselected ? interactionRecipes.segmentActive : `bg-transparent ${interactionRecipes.segmentInactive}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t: cn('bg-background text-foreground', selected ? 'border-primary' : `border-border ${interactionRecipes.tileHover}`),\n\t\t\t\t\tselected && 'auth-method-switch--option-selected',\n\t\t\t\t)}\n\t\t\t\tonClick={() => setValue(option.id)}\n\t\t\t>\n\t\t\t\t{segmented ? (\n\t\t\t\t\t<span className=\"auth-method-switch--option-inner flex w-full min-w-0 max-w-full flex-col justify-center gap-space-xs @md/auth-method-switch:w-auto @md/auth-method-switch:flex-row @md/auth-method-switch:justify-start @md/auth-method-switch:gap-space-md\">\n\t\t\t\t\t\t{optionContent}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<Stack render={<span />} direction=\"horizontal\" gap=\"md\" wrap={false} className=\"auth-method-switch--option-inner w-full\">\n\t\t\t\t\t\t{optionContent}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</button>\n\t\t);\n\t});\n\n\treturn (\n\t\t// The options adapt to the switch's own width, not the viewport, so a card,\n\t\t// drawer or split column of any size gets the layout that fits it.\n\t\t<Stack gap=\"lg\" className={cn('auth-method-switch--component @container/auth-method-switch', className)} {...rootProps}>\n\t\t\t{divider !== null && divider !== false && (\n\t\t\t\t<div className=\"auth-method-switch--divider flex items-center gap-space-lg\">\n\t\t\t\t\t<span className=\"h-px min-w-0 flex-1 bg-border\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t{divider ?? strings.divider}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<span className=\"h-px min-w-0 flex-1 bg-border\" aria-hidden=\"true\" />\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{layout === 'segmented' ? (\n\t\t\t\t<div\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\taria-label={ariaLabel ?? strings.label}\n\t\t\t\t\tdata-layout={layout}\n\t\t\t\t\tclassName=\"auth-method-switch--options grid min-w-0 grid-cols-[repeat(auto-fit,minmax(0,1fr))] gap-space-xs rounded-radius border border-border bg-muted p-space-xs\"\n\t\t\t\t>\n\t\t\t\t\t{optionButtons}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns={1}\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\taria-label={ariaLabel ?? strings.label}\n\t\t\t\t\tdata-layout={layout}\n\t\t\t\t\tclassName={cn('auth-method-switch--options', layout === 'grid' && '@md/auth-method-switch:grid-cols-2')}\n\t\t\t\t>\n\t\t\t\t\t{optionButtons}\n\t\t\t\t</Grid>\n\t\t\t)}\n\t\t</Stack>\n\t);\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { s as e, v as t } from "./ui-provider-CQCuCBcy.js";
3
- import { t as n } from "./utils-CF3c95Io.js";
4
- import { t as r } from "./affordance-geometry.generated-B8yGOr8-.js";
5
- import { c as i } from "./typography-CSyJrh28.js";
2
+ import { S as e, d as t } from "./ui-provider-C-74NVLc.js";
3
+ import { t as n } from "./utils-B6kKb8jB.js";
4
+ import { t as r } from "./affordance-geometry.generated-P-aVJisu.js";
5
+ import { c as i } from "./typography-BQnine1k.js";
6
6
  import { i as a } from "./tone-recipes-BPsRAvhu.js";
7
7
  import { t as o } from "./initials-format-CDoQEOd_.js";
8
8
  import * as s from "react";
@@ -63,7 +63,7 @@ function v(e) {
63
63
  return e === "sm" ? "sm" : e === "lg" ? "lg" : "default";
64
64
  }
65
65
  var y = s.forwardRef(({ size: r, className: i, ...a }, o) => {
66
- let { defaultScale: s } = e(), l = t(r, s);
66
+ let { defaultScale: s } = t(), l = e(r, s);
67
67
  return /* @__PURE__ */ c(d, {
68
68
  ref: o,
69
69
  size: v(l),
@@ -101,7 +101,7 @@ var S = s.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ c(m, {
101
101
  S.displayName = "AvatarBadge";
102
102
  var C = s.forwardRef(({ className: e, ...t }, i) => /* @__PURE__ */ c(h, {
103
103
  ref: i,
104
- className: n("avatar-group--component isolate items-center", r.avatarOverlap.md, r.avatarOverlap.sm, r.avatarOverlap.lg, e),
104
+ className: n("avatar-group--component isolate items-center", r.avatarOverlap.md, r.avatarOverlap.sm, r.avatarOverlap.lg, "*:data-[slot=avatar]:has-data-[slot=avatar-badge]:z-10", e),
105
105
  ...t
106
106
  }));
107
107
  C.displayName = "AvatarGroup";
@@ -140,7 +140,7 @@ function D(e) {
140
140
  return typeof e == "string" ? e : typeof e == "number" ? T[Math.abs(e) % T.length] : "neutral";
141
141
  }
142
142
  function O({ users: r, max: a = 4, size: s, className: u, showOverflow: d = !0, overflowFormatter: f, avatarClassName: p }) {
143
- let { defaultScale: m } = e(), h = t(s, m), g = r.slice(0, a), _ = Math.max(0, r.length - a), v = f ? f(_) : `+${_}`;
143
+ let { defaultScale: m } = t(), h = e(s, m), g = r.slice(0, a), _ = Math.max(0, r.length - a), v = f ? f(_) : `+${_}`;
144
144
  return /* @__PURE__ */ l(C, {
145
145
  className: n("stacked-avatars--component", u),
146
146
  children: [g.map((e, t) => {
@@ -178,4 +178,4 @@ O.displayName = "StackedAvatars";
178
178
  //#endregion
179
179
  export { C as a, x as i, y as n, w as o, S as r, b as s, O as t };
180
180
 
181
- //# sourceMappingURL=avatar-DWO_HHhB.js.map
181
+ //# sourceMappingURL=avatar-CeZaFmNH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-CeZaFmNH.js","names":["Avatar","AvatarPrimitive","AvatarImage","AvatarFallback","AvatarBadge","AvatarGroup","AvatarGroupCount","Avatar","React","PrimitiveAvatar","PrimitiveAvatarImage","PrimitiveAvatarFallback","PrimitiveAvatarBadge","PrimitiveAvatarGroup","PrimitiveAvatarGroupCount","Avatar","resolveComponentScale","useDensityConfig","cn","affordanceGeometry","Text","toneRecipes","formatInitials","React$1","Avatar$2","props","Avatar","size","className","AvatarImage$1","AvatarFallback$1","AvatarBadge$1","AvatarGroup$1","AvatarGroupCount$1","AVATAR_SIZE_CLASSNAMES","getPrimitiveSize","Avatar$1","sizeProp","defaultScale","AvatarImage","AvatarFallback","children","AvatarBadge","AvatarGroup","AvatarGroupCount","FALLBACK_TONES","FALLBACK_TONE_CLASSNAMES","pickFallbackTone","override","StackedAvatars","visible","users","max","overflow","overflowContent","overflowFormatter","initials","user","fallbackTone","avatarClassName","index","showOverflow"],"sources":["../src/components/ui/avatar.tsx","../src/components/base/avatar/avatar.tsx","../src/components/base/avatar/stacked-avatars.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6 after:border-border group/avatar relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\n \"rounded-full aspect-square size-full object-cover\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"bg-primary text-primary-foreground ring-background absolute end-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\"bg-muted text-muted-foreground size-8 rounded-full text-sm group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-icon group-has-data-[size=lg]/avatar-group:[&>svg]:size-icon-lg group-has-data-[size=sm]/avatar-group:[&>svg]:size-icon-sm ring-background relative flex shrink-0 items-center justify-center ring-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarBadge,\n}\n","/**\n * Avatar — tokenized base wrapper around the shadcn/Base UI avatar primitive.\n * Public sizing uses the shared component scale.\n */\nimport * as React from 'react';\n\nimport {\n\tAvatar as PrimitiveAvatar,\n\tAvatarBadge as PrimitiveAvatarBadge,\n\tAvatarFallback as PrimitiveAvatarFallback,\n\tAvatarGroup as PrimitiveAvatarGroup,\n\tAvatarGroupCount as PrimitiveAvatarGroupCount,\n\tAvatarImage as PrimitiveAvatarImage,\n} from '../../ui/avatar';\nimport { useDensityConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\n\nexport type AvatarSize = ComponentScale;\n\nexport interface AvatarProps\n\textends Omit<React.ComponentPropsWithoutRef<typeof PrimitiveAvatar>, 'size'> {\n\t/** Size preset. */\n\tsize?: AvatarSize;\n}\n\nexport type AvatarImageProps = React.ComponentPropsWithoutRef<typeof PrimitiveAvatarImage>;\nexport type AvatarFallbackProps = React.ComponentPropsWithoutRef<typeof PrimitiveAvatarFallback>;\nexport type AvatarBadgeProps = React.ComponentPropsWithoutRef<typeof PrimitiveAvatarBadge>;\nexport type AvatarGroupProps = React.ComponentPropsWithoutRef<typeof PrimitiveAvatarGroup>;\nexport type AvatarGroupCountProps = React.ComponentPropsWithoutRef<typeof PrimitiveAvatarGroupCount>;\n\nconst AVATAR_SIZE_CLASSNAMES: Record<AvatarSize, string> = {\n\tsm: 'size-avatar-sm data-[size=sm]:size-avatar-sm',\n\tmd: 'size-avatar',\n\tlg: 'size-avatar-lg data-[size=lg]:size-avatar-lg',\n};\n\nfunction getPrimitiveSize(size: AvatarSize): NonNullable<React.ComponentPropsWithoutRef<typeof PrimitiveAvatar>['size']> {\n\tif (size === 'sm') return 'sm';\n\tif (size === 'lg') return 'lg';\n\treturn 'default';\n}\n\nconst Avatar = React.forwardRef<React.ElementRef<typeof PrimitiveAvatar>, AvatarProps>(\n\t({ size: sizeProp, className, ...props }, ref) => {\n\t\tconst { defaultScale } = useDensityConfig();\n\t\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\t\treturn (\n\t\t\t<PrimitiveAvatar\n\t\t\t\tref={ref}\n\t\t\t\tsize={getPrimitiveSize(size)}\n\t\t\t\tdata-scale={size}\n\t\t\t\tclassName={cn('avatar--component', AVATAR_SIZE_CLASSNAMES[size], className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nAvatar.displayName = 'Avatar';\n\nconst AvatarImage = React.forwardRef<React.ElementRef<typeof PrimitiveAvatarImage>, AvatarImageProps>(\n\t({ className, ...props }, ref) => (\n\t\t<PrimitiveAvatarImage\n\t\t\tref={ref}\n\t\t\tclassName={cn('avatar--image', className)}\n\t\t\t{...props}\n\t\t/>\n\t),\n);\nAvatarImage.displayName = 'AvatarImage';\n\nconst AvatarFallback = React.forwardRef<React.ElementRef<typeof PrimitiveAvatarFallback>, AvatarFallbackProps>(\n\t({ className, children, ...props }, ref) => (\n\t\t<PrimitiveAvatarFallback\n\t\t\tref={ref}\n\t\t\tclassName={cn('avatar--fallback text-xs font-medium leading-none', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint' ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</PrimitiveAvatarFallback>\n\t),\n);\nAvatarFallback.displayName = 'AvatarFallback';\n\nconst AvatarBadge = React.forwardRef<React.ElementRef<typeof PrimitiveAvatarBadge>, AvatarBadgeProps>(\n\t({ className, ...props }, ref) => (\n\t\t<PrimitiveAvatarBadge\n\t\t\tref={ref}\n\t\t\tclassName={cn('avatar--badge', className)}\n\t\t\t{...props}\n\t\t/>\n\t),\n);\nAvatarBadge.displayName = 'AvatarBadge';\n\nconst AvatarGroup = React.forwardRef<React.ElementRef<typeof PrimitiveAvatarGroup>, AvatarGroupProps>(\n\t({ className, ...props }, ref) => (\n\t\t<PrimitiveAvatarGroup\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'avatar-group--component isolate items-center',\n\t\t\t\taffordanceGeometry.avatarOverlap.md,\n\t\t\t\taffordanceGeometry.avatarOverlap.sm,\n\t\t\t\taffordanceGeometry.avatarOverlap.lg,\n\t\t\t\t// A presence badge sits on the overlap seam. Its avatar stacks above the\n\t\t\t\t// next one, so the badge reads as part of its own circle instead of\n\t\t\t\t// floating over the neighbour.\n\t\t\t\t'*:data-[slot=avatar]:has-data-[slot=avatar-badge]:z-10',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t),\n);\nAvatarGroup.displayName = 'AvatarGroup';\n\nconst AvatarGroupCount = React.forwardRef<React.ElementRef<typeof PrimitiveAvatarGroupCount>, AvatarGroupCountProps>(\n\t({ className, children, ...props }, ref) => (\n\t\t<PrimitiveAvatarGroupCount\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'avatar-group-count--component size-avatar text-xs',\n\t\t\t\t'group-has-data-[size=sm]/avatar-group:size-avatar-sm',\n\t\t\t\t'group-has-data-[size=lg]/avatar-group:size-avatar-lg',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint' ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</PrimitiveAvatarGroupCount>\n\t),\n);\nAvatarGroupCount.displayName = 'AvatarGroupCount';\n\nexport {\n\tAvatar,\n\tAvatarImage,\n\tAvatarFallback,\n\tAvatarGroup,\n\tAvatarGroupCount,\n\tAvatarBadge,\n};\n","/**\n * StackedAvatars — overlapping avatar group with optional `+N` overflow chip,\n * configurable size, and an optional semantic `tone` for fallbacks (initials)\n * when the consumer hasn't passed `imageUrl`.\n *\n * Fallbacks are neutral by default: colour states meaning, so a person's\n * initials are not tinted by a hash of their name. Pass `tone` per user when a\n * fallback does carry meaning; numeric tones map onto the semantic token set.\n */\nimport * as React from 'react';\nimport {\n\tAvatar,\n\tAvatarFallback,\n\tAvatarGroup,\n\tAvatarGroupCount,\n\tAvatarImage,\n} from './avatar';\nimport { formatInitials } from '../../primitives/initials-format';\nimport { Text } from '../../typography';\nimport { useDensityConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\nimport type { SemanticTone } from '../../../lib/component-vocabulary';\nimport { toneRecipes } from '../../../lib/tone-recipes';\n\nexport type StackedAvatarsSize = ComponentScale;\nexport type StackedAvatarTone = SemanticTone;\n\nexport interface StackedAvatarUser {\n\t/** Stable identity for this entry. */\n\tid?: string;\n\t/** The person's name; supplies the initials and the hover title. */\n\tname: string;\n\timageUrl?: string;\n\t/** Semantic tone for this user's fallback. Defaults to `neutral`. Numeric values map to the token set. */\n\ttone?: StackedAvatarTone | number;\n}\n\nexport interface StackedAvatarsProps {\n\tusers: StackedAvatarUser[];\n\tmax?: number;\n\t/** Size preset. */\n\tsize?: StackedAvatarsSize;\n\tclassName?: string;\n\t/** Whether to render a `+N` count when `users.length > max`. Default `true`. */\n\tshowOverflow?: boolean;\n\t/** Provide custom overflow text (e.g. \"+12 more\"). Default `+N`. */\n\toverflowFormatter?: (overflow: number) => React.ReactNode;\n\t/** Extra class names applied to each avatar root. */\n\tavatarClassName?: string;\n}\n\nconst FALLBACK_TONES: StackedAvatarTone[] = [\n\t'neutral',\n\t'primary',\n\t'secondary',\n\t'info',\n\t'success',\n];\n\nconst FALLBACK_TONE_CLASSNAMES: Record<StackedAvatarTone, string> = {\n\tneutral: 'bg-muted text-muted-foreground',\n\tprimary: `${toneRecipes.primary.tint} ${toneRecipes.primary.ink}`,\n\tsecondary: 'bg-secondary text-secondary-foreground',\n\tinfo: `${toneRecipes.info.tint} ${toneRecipes.info.ink}`,\n\tsuccess: `${toneRecipes.success.tint} ${toneRecipes.success.ink}`,\n\twarning: `${toneRecipes.warning.tint} ${toneRecipes.warning.ink}`,\n\tdestructive: `${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink}`,\n};\n\nfunction pickFallbackTone(override?: StackedAvatarTone | number): StackedAvatarTone {\n\tif (typeof override === 'string') {\n\t\treturn override;\n\t}\n\tif (typeof override === 'number') {\n\t\treturn FALLBACK_TONES[Math.abs(override) % FALLBACK_TONES.length];\n\t}\n\treturn 'neutral';\n}\n\nexport function StackedAvatars({\n\tusers,\n\tmax = 4,\n\tsize: sizeProp,\n\tclassName,\n\tshowOverflow = true,\n\toverflowFormatter,\n\tavatarClassName,\n}: StackedAvatarsProps) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst visible = users.slice(0, max);\n\tconst overflow = Math.max(0, users.length - max);\n\tconst overflowContent = overflowFormatter ? overflowFormatter(overflow) : `+${overflow}`;\n\n\treturn (\n\t\t<AvatarGroup className={cn('stacked-avatars--component', className)}>\n\t\t\t{visible.map((user, index) => {\n\t\t\t\tconst initials = formatInitials(user.name, {\n\t\t\t\t\tmaxCharacters: size === 'sm' ? 1 : 2,\n\t\t\t\t\tfallback: '?',\n\t\t\t\t});\n\t\t\t\tconst fallbackTone = pickFallbackTone(user.tone);\n\t\t\t\treturn (\n\t\t\t\t\t<Avatar\n\t\t\t\t\t\tkey={user.id ?? `${user.name}-${index}`}\n\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\tclassName={cn('ring-background', avatarClassName)}\n\t\t\t\t\t\ttitle={user.name}\n\t\t\t\t\t>\n\t\t\t\t\t\t{user.imageUrl ? (\n\t\t\t\t\t\t\t<AvatarImage src={user.imageUrl} alt={user.name} />\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<AvatarFallback className={FALLBACK_TONE_CLASSNAMES[fallbackTone]}>\n\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t</Avatar>\n\t\t\t\t);\n\t\t\t})}\n\t\t\t{!!showOverflow && overflow > 0 && (\n\t\t\t\t<AvatarGroupCount data-scale={size} data-size={size === 'md' ? 'default' : size}>\n\t\t\t\t\t{typeof overflowContent === 'string' || typeof overflowContent === 'number' || typeof overflowContent === 'bigint' ? (\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t\t\t{overflowContent}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : overflowContent}\n\t\t\t\t</AvatarGroupCount>\n\t\t\t)}\n\t\t</AvatarGroup>\n\t);\n}\n\nStackedAvatars.displayName = 'StackedAvatars';\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { n as e, s as t, v as n } from "./ui-provider-CQCuCBcy.js";
3
- import { t as r } from "./utils-CF3c95Io.js";
4
- import { c as i } from "./typography-CSyJrh28.js";
2
+ import { S as e, d as t, o as n } from "./ui-provider-C-74NVLc.js";
3
+ import { t as r } from "./utils-B6kKb8jB.js";
4
+ import { c as i } from "./typography-BQnine1k.js";
5
5
  import { i as a, t as o } from "./tone-recipes-BPsRAvhu.js";
6
6
  import * as s from "react";
7
7
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
@@ -53,7 +53,7 @@ var p = {
53
53
  md: p.sizeMd,
54
54
  lg: p.sizeLg
55
55
  }, g = s.forwardRef(function({ tone: a, className: o, size: s, inline: d = !1, dot: g = !1, pending: _ = !1, pulse: v = !1, important: y = !1, children: b, ...x }, S) {
56
- let { defaultTone: C } = e(), { defaultScale: w } = t(), T = n(s, w), E = a ?? C ?? "neutral", D = typeof b == "string" || typeof b == "number" || typeof b == "bigint";
56
+ let { defaultTone: C } = n(), { defaultScale: w } = t(), T = e(s, w), E = a ?? C ?? "neutral", D = typeof b == "string" || typeof b == "number" || typeof b == "bigint";
57
57
  return /* @__PURE__ */ l(f, {
58
58
  ref: S,
59
59
  "data-slot": "badge",
@@ -90,4 +90,4 @@ g.displayName = "Badge";
90
90
  //#endregion
91
91
  export { g as t };
92
92
 
93
- //# sourceMappingURL=badge-DErMA7ul.js.map
93
+ //# sourceMappingURL=badge-xIiV_E7f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge-DErMA7ul.js","names":["Badge","React","styles","React","BaseBadge","useBadgeConfig","useDensityConfig","resolveComponentScale","cn","Text","toneRecipes","dotRecipes","React$1","Badge$1","props","useRender","asChild","children","className","badgeRecipes","toneClassMap","sizeClassMap","Badge","toneProp","sizeProp","resolvedSize","defaultScale","tone","defaultTone","isSimpleText","inline","pending","pulse","dot","important","TriangleAlert"],"sources":["../src/components/ui/badge.tsx","../src/components/base/badge/badge.recipes.ts","../src/components/base/badge/badge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\n\nfunction Badge({ className, asChild = false, children, ...props }:\n\tReact.ComponentProps<'span'> & { asChild?: boolean }) {\n\treturn useRender({\n\t\tdefaultTagName: 'span',\n\t\trender: asChild && React.isValidElement(children) ? children : undefined,\n\t\tprops: { ...props, 'data-slot': 'badge', className: cn(className), ...(asChild ? {} : { children }) },\n\t});\n}\n\nexport { Badge };\n","import { dotRecipes, toneRecipes } from '../../../lib/tone-recipes';\n\n/** Private Tailwind recipes; public props and DOM hooks remain owned by the component. */\nexport const badgeRecipes = {\n\t// Content-sized in both axes (`w-fit h-fit`) so the badge never stretches yet\n\t// follows its parent's alignment: centred in an `items-center` row, at the\n\t// start edge of a left-aligned column. No `self-*` override of the parent.\n\troot: \"inline-flex items-center justify-center shrink-0 h-fit rounded-radius font-sans font-medium border border-transparent w-fit max-w-full whitespace-nowrap overflow-visible box-border align-middle\",\n\t// The two text-xs sizes take one and a half 2xs steps of block padding (3px at\n\t// the default space scale): taller chips at the same type size, so sm reads 20px\n\t// and md 23px. Written from the root space scale so scoped spacing applies.\n\t// Inline badges keep the 2xs step to sit inside a running line of text.\n\tsizeSm: \"min-h-0 py-[calc(0.1875rem*var(--space-scale))] px-control-xs gap-space-xs text-xs leading-none\",\n\tsizeMd: \"min-h-0 py-[calc(0.1875rem*var(--space-scale))] px-control-xs gap-space-xs text-xs leading-tight\",\n\tsizeLg: \"min-h-0 py-space-xs px-control-sm gap-space-sm text-sm leading-tight\",\n\tisInline: \"inline-flex align-baseline text-xs py-space-2xs px-control-xs leading-none\",\n\tisPending: \"[&_.badge-dot]:bg-transparent [&_.badge-dot]:border-[1.5px] [&_.badge-dot]:border-current\",\n\tisPulse: \"[&_.badge-dot]:animate-badge-pulse motion-reduce:[&_.badge-dot]:animate-none\",\n\tdot: `badge-dot ${dotRecipes.inline} bg-current`,\n\ticon: \"size-icon-sm shrink-0\",\n\tlabel: \"inline-flex min-w-0 max-w-full items-center gap-space-xs overflow-hidden text-ellipsis whitespace-nowrap\",\n\ttonePrimary: \"bg-primary text-primary-foreground border-primary\",\n\ttoneNeutral: \"bg-foreground/8 text-foreground border-transparent\",\n\ttoneSecondary: \"bg-foreground/8 text-foreground border-transparent\",\n\ttoneSuccess: `${toneRecipes.success.tint} ${toneRecipes.success.ink} ${toneRecipes.success.edge}`,\n\ttoneInfo: `${toneRecipes.info.tint} ${toneRecipes.info.ink} ${toneRecipes.info.edge}`,\n\ttoneWarning: `${toneRecipes.warning.tint} ${toneRecipes.warning.ink} ${toneRecipes.warning.edge}`,\n\ttoneDestructive: `${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink} ${toneRecipes.destructive.edge}`,\n} as const satisfies Record<string, string>;\n","/**\n * Badge — blocks badge with canonical semantic tones, package display scale, optional dot indicator\n * (with pulse + pending states), inline mode, and an `important` flag that swaps in a warning icon.\n */\nimport { TriangleAlert } from 'lucide-react';\nimport * as React from \"react\"\n\nimport { Badge as BaseBadge } from \"../../ui/badge\"\nimport { Text } from '../../typography';\nimport {\n\tuseBadgeConfig,\n\tuseDensityConfig,\n\ttype BadgeSize,\n\ttype BadgeTone,\n} from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\nimport { badgeRecipes as styles } from './badge.recipes';\n\nexport interface BadgeProps extends Omit<React.ComponentProps<'span'>, 'content'> {\n\t/** Semantic tone. Falls back to `UIProvider.badge.defaultTone`, then `neutral`: an untoned badge carries no state. */\n\ttone?: BadgeTone\n\t/** Display scale. Falls back to `UIProvider.density.defaultScale`. */\n\tsize?: BadgeSize\n\t/** Renders inline with surrounding text rather than as a standalone chip. */\n\tinline?: boolean;\n\t/** Shows a status dot before the label. */\n\tdot?: boolean;\n\t/** Animates the dot, for live or in-progress states. Requires `dot`. */\n\tpulse?: boolean;\n\t/** Draws the dot hollow, marking a state that has not started. Requires `dot`. */\n\tpending?: boolean;\n\t/** Swaps in a warning icon ahead of the label. */\n\timportant?: boolean;\n}\n\nconst toneClassMap: Record<BadgeTone, string> = {\n\tneutral: styles.toneNeutral,\n\tprimary: styles.tonePrimary,\n\tsecondary: styles.toneSecondary,\n\tdestructive: styles.toneDestructive,\n\tsuccess: styles.toneSuccess,\n\twarning: styles.toneWarning,\n\tinfo: styles.toneInfo,\n};\n\nconst sizeClassMap: Record<BadgeSize, string> = {\n\tsm: styles.sizeSm,\n\tmd: styles.sizeMd,\n\tlg: styles.sizeLg,\n};\n\n/**\n * Blocks Badge using shared Tailwind recipes and stable semantic BEM hooks.\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(function Badge({\n\ttone: toneProp,\n\tclassName,\n\tsize: sizeProp,\n\tinline = false,\n\tdot = false,\n\tpending = false,\n\tpulse = false,\n\timportant = false,\n\tchildren,\n\t...props\n}: BadgeProps, ref) {\n\tconst { defaultTone } = useBadgeConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst resolvedSize = resolveComponentScale(sizeProp, defaultScale);\n\tconst tone = toneProp ?? defaultTone ?? 'neutral';\n\tconst isSimpleText = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint';\n\n\treturn (\n\t\t<BaseBadge\n\t\t\tref={ref}\n\t\t\tdata-slot=\"badge\"\n\t\t\tdata-tone={tone}\n\t\t\tdata-size={resolvedSize}\n\t\t\tdata-inline={inline || undefined}\n\t\t\tdata-pending={pending || undefined}\n\t\t\tclassName={cn(\n\t\t\t\t'badge--component',\n\t\t\t\tstyles.root,\n\t\t\t\ttoneClassMap[tone],\n\t\t\t\tsizeClassMap[resolvedSize],\n\t\t\t\tinline && styles.isInline,\n\t\t\t\tpending && styles.isPending,\n\t\t\t\tpulse && styles.isPulse,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{!!dot && <span aria-hidden=\"true\" className={styles.dot} />}\n\t\t\t{!!important && !dot && <TriangleAlert aria-hidden=\"true\" className={styles.icon} />}\n\t\t\t<span className={styles.label}>\n\t\t\t\t{isSimpleText ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight={resolvedSize === 'sm' || inline ? 'none' : 'tight'} className=\"text-inherit\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</Text>\n\t\t\t\t) : children}\n\t\t\t</span>\n\t\t</BaseBadge>\n\t);\n});\n\nBadge.displayName = 'Badge';\n"],"mappings":";;;;;;;;;;AAIA,SAASA,EAAM,EAAE,cAAW,aAAU,IAAO,aAAU,GAAGc,KACH;CACtD,OAAOC,EAAU;EAChB,gBAAgB;EAChB,QAAQC,KAAWf,EAAM,eAAegB,CAAQ,IAAIA,IAAW,KAAA;EAC/D,OAAO;GAAE,GAAGH;GAAO,aAAa;GAAS,WAAWN,EAAGU,CAAS;GAAG,GAAIF,IAAU,CAAC,IAAI,EAAE,YAAS;EAAG;CACrG,CAAC;AACF;;;ACRA,IAAaG,IAAe;CAI3B,MAAM;CAKN,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,WAAW;CACX,SAAS;CACT,KAAK,aAAaR,EAAW,OAAO;CACpC,MAAM;CACN,OAAO;CACP,aAAa;CACb,aAAa;CACb,eAAe;CACf,aAAa,GAAGD,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,IAAI,GAAGA,EAAY,QAAQ;CAC3F,UAAU,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK,IAAI,GAAGA,EAAY,KAAK;CAC/E,aAAa,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,IAAI,GAAGA,EAAY,QAAQ;CAC3F,iBAAiB,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY,IAAI,GAAGA,EAAY,YAAY;AAC5G,GCQMU,IAA0C;CAC/C,SAASlB,EAAO;CAChB,SAASA,EAAO;CAChB,WAAWA,EAAO;CAClB,aAAaA,EAAO;CACpB,SAASA,EAAO;CAChB,SAASA,EAAO;CAChB,MAAMA,EAAO;AACd,GAEMmB,IAA0C;CAC/C,IAAInB,EAAO;CACX,IAAIA,EAAO;CACX,IAAIA,EAAO;AACZ,GAKaoB,IAAQnB,EAAM,WAAwC,SAAe,EACjF,MAAMoB,GACN,cACA,MAAMC,GACN,YAAS,IACT,SAAM,IACN,aAAU,IACV,WAAQ,IACR,eAAY,IACZ,aACA,GAAGV,KACW,GAAK;CACnB,IAAM,EAAE,mBAAgBT,EAAe,GACjC,EAAE,oBAAiBC,EAAiB,GACpCmB,IAAelB,EAAsBiB,GAAUE,CAAY,GAC3DC,IAAOJ,KAAYK,KAAe,WAClCC,IAAe,OAAOZ,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa;CAEzG,OACC,kBAACb,GAAD;EACM;EACL,aAAU;EACV,aAAWuB;EACX,aAAWF;EACX,eAAaK,KAAU,KAAA;EACvB,gBAAcC,KAAW,KAAA;EACzB,WAAWvB,EACV,oBACAN,EAAO,MACPkB,EAAaO,IACbN,EAAaI,IACbK,KAAU5B,EAAO,UACjB6B,KAAW7B,EAAO,WAClB8B,KAAS9B,EAAO,SAChBgB,CACD;EACA,GAAIJ;EAjBL,UAAA;GAmBE,CAAC,CAACmB,KAAO,kBAAC,QAAD;IAAM,eAAY;IAAO,WAAW/B,EAAO;GAAM,CAAA;GAC1D,CAAC,CAACgC,KAAa,CAACD,KAAO,kBAACE,GAAD;IAAe,eAAY;IAAO,WAAWjC,EAAO;GAAO,CAAA;GACnF,kBAAC,QAAD;IAAM,WAAWA,EAAO;IACtB,UAAA2B,IACA,kBAACpB,GAAD;KAAM,KAAI;KAAO,MAAK;KAAU,QAAO;KAAS,YAAYgB,MAAiB,QAAQK,IAAS,SAAS;KAAS,WAAU;KACxH;IACI,CAAA,IACHb;GACC,CAAA;EACI;;AAEb,CAAC;AAED,EAAM,cAAc"}
1
+ {"version":3,"file":"badge-xIiV_E7f.js","names":["Badge","React","styles","React","BaseBadge","resolveComponentScale","useDensityConfig","useBadgeConfig","cn","Text","toneRecipes","dotRecipes","React$1","Badge$1","props","useRender","asChild","children","className","badgeRecipes","toneClassMap","sizeClassMap","Badge","toneProp","sizeProp","resolvedSize","defaultScale","tone","defaultTone","isSimpleText","inline","pending","pulse","dot","important","TriangleAlert"],"sources":["../src/components/ui/badge.tsx","../src/components/base/badge/badge.recipes.ts","../src/components/base/badge/badge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\n\nfunction Badge({ className, asChild = false, children, ...props }:\n\tReact.ComponentProps<'span'> & { asChild?: boolean }) {\n\treturn useRender({\n\t\tdefaultTagName: 'span',\n\t\trender: asChild && React.isValidElement(children) ? children : undefined,\n\t\tprops: { ...props, 'data-slot': 'badge', className: cn(className), ...(asChild ? {} : { children }) },\n\t});\n}\n\nexport { Badge };\n","import { dotRecipes, toneRecipes } from '../../../lib/tone-recipes';\n\n/** Private Tailwind recipes; public props and DOM hooks remain owned by the component. */\nexport const badgeRecipes = {\n\t// Content-sized in both axes (`w-fit h-fit`) so the badge never stretches yet\n\t// follows its parent's alignment: centred in an `items-center` row, at the\n\t// start edge of a left-aligned column. No `self-*` override of the parent.\n\troot: \"inline-flex items-center justify-center shrink-0 h-fit rounded-radius font-sans font-medium border border-transparent w-fit max-w-full whitespace-nowrap overflow-visible box-border align-middle\",\n\t// The two text-xs sizes take one and a half 2xs steps of block padding (3px at\n\t// the default space scale): taller chips at the same type size, so sm reads 20px\n\t// and md 23px. Written from the root space scale so scoped spacing applies.\n\t// Inline badges keep the 2xs step to sit inside a running line of text.\n\tsizeSm: \"min-h-0 py-[calc(0.1875rem*var(--space-scale))] px-control-xs gap-space-xs text-xs leading-none\",\n\tsizeMd: \"min-h-0 py-[calc(0.1875rem*var(--space-scale))] px-control-xs gap-space-xs text-xs leading-tight\",\n\tsizeLg: \"min-h-0 py-space-xs px-control-sm gap-space-sm text-sm leading-tight\",\n\tisInline: \"inline-flex align-baseline text-xs py-space-2xs px-control-xs leading-none\",\n\tisPending: \"[&_.badge-dot]:bg-transparent [&_.badge-dot]:border-[1.5px] [&_.badge-dot]:border-current\",\n\tisPulse: \"[&_.badge-dot]:animate-badge-pulse motion-reduce:[&_.badge-dot]:animate-none\",\n\tdot: `badge-dot ${dotRecipes.inline} bg-current`,\n\ticon: \"size-icon-sm shrink-0\",\n\tlabel: \"inline-flex min-w-0 max-w-full items-center gap-space-xs overflow-hidden text-ellipsis whitespace-nowrap\",\n\ttonePrimary: \"bg-primary text-primary-foreground border-primary\",\n\ttoneNeutral: \"bg-foreground/8 text-foreground border-transparent\",\n\ttoneSecondary: \"bg-foreground/8 text-foreground border-transparent\",\n\ttoneSuccess: `${toneRecipes.success.tint} ${toneRecipes.success.ink} ${toneRecipes.success.edge}`,\n\ttoneInfo: `${toneRecipes.info.tint} ${toneRecipes.info.ink} ${toneRecipes.info.edge}`,\n\ttoneWarning: `${toneRecipes.warning.tint} ${toneRecipes.warning.ink} ${toneRecipes.warning.edge}`,\n\ttoneDestructive: `${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink} ${toneRecipes.destructive.edge}`,\n} as const satisfies Record<string, string>;\n","/**\n * Badge — blocks badge with canonical semantic tones, package display scale, optional dot indicator\n * (with pulse + pending states), inline mode, and an `important` flag that swaps in a warning icon.\n */\nimport { TriangleAlert } from 'lucide-react';\nimport * as React from \"react\"\n\nimport { Badge as BaseBadge } from \"../../ui/badge\"\nimport { Text } from '../../typography';\nimport {\n\tuseBadgeConfig,\n\tuseDensityConfig,\n\ttype BadgeSize,\n\ttype BadgeTone,\n} from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\nimport { badgeRecipes as styles } from './badge.recipes';\n\nexport interface BadgeProps extends Omit<React.ComponentProps<'span'>, 'content'> {\n\t/** Semantic tone. Falls back to `UIProvider.badge.defaultTone`, then `neutral`: an untoned badge carries no state. */\n\ttone?: BadgeTone\n\t/** Display scale. Falls back to `UIProvider.density.defaultScale`. */\n\tsize?: BadgeSize\n\t/** Renders inline with surrounding text rather than as a standalone chip. */\n\tinline?: boolean;\n\t/** Shows a status dot before the label. */\n\tdot?: boolean;\n\t/** Animates the dot, for live or in-progress states. Requires `dot`. */\n\tpulse?: boolean;\n\t/** Draws the dot hollow, marking a state that has not started. Requires `dot`. */\n\tpending?: boolean;\n\t/** Swaps in a warning icon ahead of the label. */\n\timportant?: boolean;\n}\n\nconst toneClassMap: Record<BadgeTone, string> = {\n\tneutral: styles.toneNeutral,\n\tprimary: styles.tonePrimary,\n\tsecondary: styles.toneSecondary,\n\tdestructive: styles.toneDestructive,\n\tsuccess: styles.toneSuccess,\n\twarning: styles.toneWarning,\n\tinfo: styles.toneInfo,\n};\n\nconst sizeClassMap: Record<BadgeSize, string> = {\n\tsm: styles.sizeSm,\n\tmd: styles.sizeMd,\n\tlg: styles.sizeLg,\n};\n\n/**\n * Blocks Badge using shared Tailwind recipes and stable semantic BEM hooks.\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(function Badge({\n\ttone: toneProp,\n\tclassName,\n\tsize: sizeProp,\n\tinline = false,\n\tdot = false,\n\tpending = false,\n\tpulse = false,\n\timportant = false,\n\tchildren,\n\t...props\n}: BadgeProps, ref) {\n\tconst { defaultTone } = useBadgeConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst resolvedSize = resolveComponentScale(sizeProp, defaultScale);\n\tconst tone = toneProp ?? defaultTone ?? 'neutral';\n\tconst isSimpleText = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint';\n\n\treturn (\n\t\t<BaseBadge\n\t\t\tref={ref}\n\t\t\tdata-slot=\"badge\"\n\t\t\tdata-tone={tone}\n\t\t\tdata-size={resolvedSize}\n\t\t\tdata-inline={inline || undefined}\n\t\t\tdata-pending={pending || undefined}\n\t\t\tclassName={cn(\n\t\t\t\t'badge--component',\n\t\t\t\tstyles.root,\n\t\t\t\ttoneClassMap[tone],\n\t\t\t\tsizeClassMap[resolvedSize],\n\t\t\t\tinline && styles.isInline,\n\t\t\t\tpending && styles.isPending,\n\t\t\t\tpulse && styles.isPulse,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{!!dot && <span aria-hidden=\"true\" className={styles.dot} />}\n\t\t\t{!!important && !dot && <TriangleAlert aria-hidden=\"true\" className={styles.icon} />}\n\t\t\t<span className={styles.label}>\n\t\t\t\t{isSimpleText ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight={resolvedSize === 'sm' || inline ? 'none' : 'tight'} className=\"text-inherit\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</Text>\n\t\t\t\t) : children}\n\t\t\t</span>\n\t\t</BaseBadge>\n\t);\n});\n\nBadge.displayName = 'Badge';\n"],"mappings":";;;;;;;;;;AAIA,SAASA,EAAM,EAAE,cAAW,aAAU,IAAO,aAAU,GAAGc,KACH;CACtD,OAAOC,EAAU;EAChB,gBAAgB;EAChB,QAAQC,KAAWf,EAAM,eAAegB,CAAQ,IAAIA,IAAW,KAAA;EAC/D,OAAO;GAAE,GAAGH;GAAO,aAAa;GAAS,WAAWN,EAAGU,CAAS;GAAG,GAAIF,IAAU,CAAC,IAAI,EAAE,YAAS;EAAG;CACrG,CAAC;AACF;;;ACRA,IAAaG,IAAe;CAI3B,MAAM;CAKN,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,UAAU;CACV,WAAW;CACX,SAAS;CACT,KAAK,aAAaR,EAAW,OAAO;CACpC,MAAM;CACN,OAAO;CACP,aAAa;CACb,aAAa;CACb,eAAe;CACf,aAAa,GAAGD,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,IAAI,GAAGA,EAAY,QAAQ;CAC3F,UAAU,GAAGA,EAAY,KAAK,KAAK,GAAGA,EAAY,KAAK,IAAI,GAAGA,EAAY,KAAK;CAC/E,aAAa,GAAGA,EAAY,QAAQ,KAAK,GAAGA,EAAY,QAAQ,IAAI,GAAGA,EAAY,QAAQ;CAC3F,iBAAiB,GAAGA,EAAY,YAAY,KAAK,GAAGA,EAAY,YAAY,IAAI,GAAGA,EAAY,YAAY;AAC5G,GCQMU,IAA0C;CAC/C,SAASlB,EAAO;CAChB,SAASA,EAAO;CAChB,WAAWA,EAAO;CAClB,aAAaA,EAAO;CACpB,SAASA,EAAO;CAChB,SAASA,EAAO;CAChB,MAAMA,EAAO;AACd,GAEMmB,IAA0C;CAC/C,IAAInB,EAAO;CACX,IAAIA,EAAO;CACX,IAAIA,EAAO;AACZ,GAKaoB,IAAQnB,EAAM,WAAwC,SAAe,EACjF,MAAMoB,GACN,cACA,MAAMC,GACN,YAAS,IACT,SAAM,IACN,aAAU,IACV,WAAQ,IACR,eAAY,IACZ,aACA,GAAGV,KACW,GAAK;CACnB,IAAM,EAAE,mBAAgBP,EAAe,GACjC,EAAE,oBAAiBD,EAAiB,GACpCmB,IAAepB,EAAsBmB,GAAUE,CAAY,GAC3DC,IAAOJ,KAAYK,KAAe,WAClCC,IAAe,OAAOZ,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa;CAEzG,OACC,kBAACb,GAAD;EACM;EACL,aAAU;EACV,aAAWuB;EACX,aAAWF;EACX,eAAaK,KAAU,KAAA;EACvB,gBAAcC,KAAW,KAAA;EACzB,WAAWvB,EACV,oBACAN,EAAO,MACPkB,EAAaO,IACbN,EAAaI,IACbK,KAAU5B,EAAO,UACjB6B,KAAW7B,EAAO,WAClB8B,KAAS9B,EAAO,SAChBgB,CACD;EACA,GAAIJ;EAjBL,UAAA;GAmBE,CAAC,CAACmB,KAAO,kBAAC,QAAD;IAAM,eAAY;IAAO,WAAW/B,EAAO;GAAM,CAAA;GAC1D,CAAC,CAACgC,KAAa,CAACD,KAAO,kBAACE,GAAD;IAAe,eAAY;IAAO,WAAWjC,EAAO;GAAO,CAAA;GACnF,kBAAC,QAAD;IAAM,WAAWA,EAAO;IACtB,UAAA2B,IACA,kBAACpB,GAAD;KAAM,KAAI;KAAO,MAAK;KAAU,QAAO;KAAS,YAAYgB,MAAiB,QAAQK,IAAS,SAAS;KAAS,WAAU;KACxH;IACI,CAAA,IACHb;GACC,CAAA;EACI;;AAEb,CAAC;AAED,EAAM,cAAc"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { c as e, l as t, n, s as r, t as i, u as a } from "../accordion-96o0pN62.js";
2
+ import { c as e, l as t, n, s as r, t as i, u as a } from "../accordion-B9MHG0cT.js";
3
3
  export { r as Accordion, e as AccordionContent, t as AccordionItem, a as AccordionTrigger, i as SmartAccordion, n as defaultSmartAccordionStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { n as e, r as t, t as n } from "../action-menu-CHgs8vmj.js";
2
+ import { n as e, r as t, t as n } from "../action-menu-Dr8K-ghE.js";
3
3
  export { n as ActionButtons, e as ActionMenu, t as defaultActionMenuStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../attachment-DkoqHPPl.js";
2
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../attachment-Dg_69lPS.js";
3
3
  export { c as Attachment, i as AttachmentActions, o as AttachmentContent, n as AttachmentDescription, e as AttachmentFileIcon, a as AttachmentMedia, s as AttachmentProgress, t as AttachmentTitle, l as defaultAttachmentStrings, r as getAttachmentKind };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../avatar-DWO_HHhB.js";
2
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../avatar-CeZaFmNH.js";
3
3
  export { n as Avatar, i as AvatarBadge, t as AvatarFallback, e as AvatarGroup, r as AvatarGroupCount, a as AvatarImage, o as StackedAvatars };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { t as e } from "../badge-DErMA7ul.js";
2
+ import { t as e } from "../badge-xIiV_E7f.js";
3
3
  export { e as Badge };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { n as e, t } from "../batch-action-bar-CdfIkCsV.js";
2
+ import { n as e, t } from "../batch-action-bar-Cb8cuvyy.js";
3
3
  export { t as BatchActionBar, e as defaultBatchActionBarStrings };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { c as e, i as t, l as n, n as r, o as i, r as a, s as o, t as s } from "../buttons-BbfzgczK.js";
2
+ import { c as e, i as t, l as n, n as r, o as i, r as a, s as o, t as s } from "../buttons-BedGfygC.js";
3
3
  export { a as BaseButton, t as BaseButtonLink, r as Button, i as ButtonGroup, o as ButtonGroupSeparator, e as ButtonGroupText, s as TextButton, n as buttonGroupVariants };
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- import { a as e, c as t, d as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../smart-card-CqkzQsK-.js";
3
- import { n as u, r as d, t as f } from "../cards-4JTWqvVe.js";
2
+ import { a as e, c as t, d as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../smart-card-CW0hjetE.js";
3
+ import { n as u, r as d, t as f } from "../cards-rNX1M4Xn.js";
4
4
  export { c as Card, f as CardActionStrip, e as CardContent, a as CardDescription, s as CardFooter, t as CardHeader, u as CardPrimaryAction, r as CardShell, d as CardSkeleton, d as SmartCardSkeleton, l as CardTitle, i as SmartCard, o as defaultCardStrings, o as defaultSmartCardStrings, n as hasRenderableContent };
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { useStrings as e } from "../lib/strings.js";
3
- import { t } from "../utils-CF3c95Io.js";
4
- import { n } from "../buttons-BbfzgczK.js";
5
- import { c as r } from "../typography-CSyJrh28.js";
3
+ import { t } from "../utils-B6kKb8jB.js";
4
+ import { n } from "../buttons-BedGfygC.js";
5
+ import { c as r } from "../typography-BQnine1k.js";
6
6
  import { r as i } from "../icon-size-B6PVwjbC.js";
7
7
  import { createContext as a, forwardRef as o, useCallback as s, useContext as c, useEffect as l, useState as u } from "react";
8
8
  import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";