themelia-react-ui 2.0.5 → 2.0.6

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 (489) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +13 -6
  4. package/dist/{accordion-B9MHG0cT.js → accordion-0tQUZ20r.js} +7 -7
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-Dr8K-ghE.js → action-menu-C0gjzLyE.js} +7 -7
  7. package/dist/{action-menu-Dr8K-ghE.js.map → action-menu-C0gjzLyE.js.map} +1 -1
  8. package/dist/{ai-artifact-C58tQcBy.js → ai-artifact-CGGpQryR.js} +172 -157
  9. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  10. package/dist/{app-shell-B_IuNWOo.js → app-shell-EHuuRDGy.js} +5 -5
  11. package/dist/{app-shell-B_IuNWOo.js.map → app-shell-EHuuRDGy.js.map} +1 -1
  12. package/dist/{attachment-Dg_69lPS.js → attachment-BCpA4e7i.js} +8 -8
  13. package/dist/{attachment-Dg_69lPS.js.map → attachment-BCpA4e7i.js.map} +1 -1
  14. package/dist/{auth-DTkkshS8.js → auth-B0girIk_.js} +15 -15
  15. package/dist/auth-B0girIk_.js.map +1 -0
  16. package/dist/{avatar-CeZaFmNH.js → avatar-B9Jnp-T-.js} +3 -3
  17. package/dist/{avatar-CeZaFmNH.js.map → avatar-B9Jnp-T-.js.map} +1 -1
  18. package/dist/{badge-xIiV_E7f.js → badge-wWauMgAt.js} +3 -3
  19. package/dist/{badge-xIiV_E7f.js.map → badge-wWauMgAt.js.map} +1 -1
  20. package/dist/base/accordion.js +1 -1
  21. package/dist/base/action-menu.js +1 -1
  22. package/dist/base/attachment.js +1 -1
  23. package/dist/base/avatar.js +1 -1
  24. package/dist/base/badge.js +1 -1
  25. package/dist/base/batch-action-bar.js +1 -1
  26. package/dist/base/buttons.js +1 -1
  27. package/dist/base/cards.js +2 -2
  28. package/dist/base/carousel.js +3 -3
  29. package/dist/base/cascader.js +1 -1
  30. package/dist/base/chart.js +1 -1
  31. package/dist/base/choice-inputs.js +2 -2
  32. package/dist/base/code-block.js +1 -1
  33. package/dist/base/combobox.js +1 -1
  34. package/dist/base/command.js +1 -1
  35. package/dist/base/copyable.js +1 -1
  36. package/dist/base/date-pickers.js +2 -2
  37. package/dist/base/display.js +6 -6
  38. package/dist/base/feedback.js +4 -4
  39. package/dist/base/forms-numeric.js +1 -1
  40. package/dist/base/forms.js +2 -2
  41. package/dist/base/inline-edit.js +8 -8
  42. package/dist/base/item.js +1 -1
  43. package/dist/base/media-gallery.js +1 -1
  44. package/dist/base/metadata-list.js +1 -1
  45. package/dist/base/navigation.js +6 -6
  46. package/dist/base/popover-menu.js +1 -1
  47. package/dist/base/popover.js +1 -1
  48. package/dist/base/qr-code.js +1 -1
  49. package/dist/base/repeaters.js +195 -188
  50. package/dist/base/repeaters.js.map +1 -1
  51. package/dist/base/sheet.js +1 -1
  52. package/dist/base/sidebar.js +2 -2
  53. package/dist/base/signature-pad.js +7 -7
  54. package/dist/base/skeleton.js +1 -1
  55. package/dist/base/spinner.js +5 -5
  56. package/dist/base/spinner.js.map +1 -1
  57. package/dist/base/structure.js +1 -1
  58. package/dist/base/table.js +1 -1
  59. package/dist/base/text-inputs.js +2 -2
  60. package/dist/base/toaster.js +1 -1
  61. package/dist/base/tree.js +1 -1
  62. package/dist/base/upload-queue.js +1 -1
  63. package/dist/base/upload.js +3 -3
  64. package/dist/base/value-inputs.js +1 -1
  65. package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-BoqWIIpV.js} +5 -5
  66. package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-BoqWIIpV.js.map} +1 -1
  67. package/dist/blocks/admin.js +17 -17
  68. package/dist/blocks/ai.js +227 -221
  69. package/dist/blocks/ai.js.map +1 -1
  70. package/dist/blocks/analytics/usage-card.js +1 -1
  71. package/dist/blocks/analytics.js +424 -449
  72. package/dist/blocks/analytics.js.map +1 -1
  73. package/dist/blocks/collaboration.js +1 -1
  74. package/dist/blocks/commerce/receipt.js +1 -1
  75. package/dist/blocks/commerce.js +225 -220
  76. package/dist/blocks/commerce.js.map +1 -1
  77. package/dist/blocks/data-display.js +2 -2
  78. package/dist/blocks/onboarding.js +5 -5
  79. package/dist/blocks/planning.js +11 -11
  80. package/dist/blocks/timelines.js +1 -1
  81. package/dist/{breadcrumbs-J-K2kl4c.js → breadcrumbs-Bp9Ke7kd.js} +4 -4
  82. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  83. package/dist/{button-S2Cubiiz.js → button-ChBovTx0.js} +2 -2
  84. package/dist/{button-S2Cubiiz.js.map → button-ChBovTx0.js.map} +1 -1
  85. package/dist/{buttons-BedGfygC.js → buttons-DeW0bQeK.js} +6 -6
  86. package/dist/{buttons-BedGfygC.js.map → buttons-DeW0bQeK.js.map} +1 -1
  87. package/dist/{cards-rNX1M4Xn.js → cards-CNXnmvV5.js} +8 -8
  88. package/dist/{cards-rNX1M4Xn.js.map → cards-CNXnmvV5.js.map} +1 -1
  89. package/dist/{cascader-B1MiqkBq.js → cascader-CrAl9zD5.js} +15 -15
  90. package/dist/{cascader-B1MiqkBq.js.map → cascader-CrAl9zD5.js.map} +1 -1
  91. package/dist/{chart-Darg_0Kv.js → chart-I7ROnsl8.js} +5 -5
  92. package/dist/{chart-Darg_0Kv.js.map → chart-I7ROnsl8.js.map} +1 -1
  93. package/dist/{checkbox-fflqmODR.js → checkbox-MoyHIAPs.js} +3 -3
  94. package/dist/{checkbox-fflqmODR.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  95. package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-DHGtx0QV.js} +122 -110
  96. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  97. package/dist/{code-block-BzmM9Eig.js → code-block-BSJyq9e-.js} +7 -7
  98. package/dist/{code-block-BzmM9Eig.js.map → code-block-BSJyq9e-.js.map} +1 -1
  99. package/dist/{collapsible-BkAI_XD4.js → collapsible-BzJ91LUG.js} +3 -3
  100. package/dist/{collapsible-BkAI_XD4.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  101. package/dist/{collection-content-gDh1v6O4.js → collection-content-CSnwtOTH.js} +3 -3
  102. package/dist/{collection-content-gDh1v6O4.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  103. package/dist/{combobox-BEx0vJgF.js → combobox-Bcvu5J8O.js} +11 -10
  104. package/dist/{combobox-BEx0vJgF.js.map → combobox-Bcvu5J8O.js.map} +1 -1
  105. package/dist/combobox-C2JiSQPc.js +915 -0
  106. package/dist/combobox-C2JiSQPc.js.map +1 -0
  107. package/dist/{command-CrlPIL6m.js → command-9e52NPgK.js} +6 -6
  108. package/dist/{command-CrlPIL6m.js.map → command-9e52NPgK.js.map} +1 -1
  109. package/dist/{comments-Dmpp0YIc.js → comments-BsgErEqd.js} +33 -28
  110. package/dist/comments-BsgErEqd.js.map +1 -0
  111. package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
  112. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  113. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  114. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  115. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  116. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  117. package/dist/components/base/feedback/state-display.d.ts +5 -1
  118. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  119. package/dist/components/base/forms/form-field.d.ts +7 -2
  120. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
  121. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  122. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  123. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  124. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  125. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  126. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  127. package/dist/components/base/sidebar/sidebar.d.ts +2 -0
  128. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  129. package/dist/components/base/upload/image-upload.d.ts +2 -1
  130. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  131. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  132. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  133. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +2 -0
  134. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  135. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  136. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  137. package/dist/components/blocks/analytics/types.d.ts +2 -2
  138. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  139. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  140. package/dist/components/features/activities/activities.types.d.ts +18 -11
  141. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  142. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  143. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  144. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  145. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  146. package/dist/components/features/combobox/combobox.d.ts +2 -2
  147. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  148. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  149. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  150. package/dist/components/features/combobox/types.d.ts +37 -8
  151. package/dist/components/features/email-composer/types.d.ts +3 -1
  152. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  153. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  154. package/dist/components/features/filters/filters.types.d.ts +3 -3
  155. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  156. package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
  157. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  158. package/dist/components/features/filters/utils/filter-utils.d.ts +5 -1
  159. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  160. package/dist/components/features/media-library/media-library.d.ts +1 -1
  161. package/dist/components/features/media-library/media-library.strings.d.ts +6 -0
  162. package/dist/components/features/media-library/media-library.types.d.ts +36 -8
  163. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  164. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  165. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  166. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  167. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  168. package/dist/components/features/products/products.types.d.ts +2 -2
  169. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  170. package/dist/components/features/resource/resource.d.ts +1 -1
  171. package/dist/components/features/resource/resource.types.d.ts +2 -0
  172. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  173. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  174. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  175. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  176. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  177. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  178. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  179. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  180. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  181. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  182. package/dist/components/features/table/data-table.d.ts +1 -1
  183. package/dist/components/features/table/index.d.ts +1 -0
  184. package/dist/components/features/table/table-body.d.ts +1 -1
  185. package/dist/components/features/table/table-helpers.d.ts +6 -3
  186. package/dist/components/features/table/table.strings.d.ts +3 -0
  187. package/dist/components/features/table/table.types.d.ts +17 -1
  188. package/dist/components/layout/header/header.types.d.ts +3 -2
  189. package/dist/components/layout/layout.types.d.ts +5 -3
  190. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  191. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  192. package/dist/components/layout/settings/settings.d.ts +1 -1
  193. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  194. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +3 -1
  195. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
  196. package/dist/components/layout/sidebar/sidebar.types.d.ts +2 -0
  197. package/dist/components/primitives/link.d.ts +3 -2
  198. package/dist/components/primitives/money.d.ts +1 -1
  199. package/dist/components/primitives/number.d.ts +1 -1
  200. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  201. package/dist/{containers-CIxwbZt5.js → containers-CSdc32h9.js} +2 -2
  202. package/dist/{containers-CIxwbZt5.js.map → containers-CSdc32h9.js.map} +1 -1
  203. package/dist/{copyable-DIznBqiT.js → copyable-3fdHfMR3.js} +4 -4
  204. package/dist/{copyable-DIznBqiT.js.map → copyable-3fdHfMR3.js.map} +1 -1
  205. package/dist/{data-display-BdgCAw8T.js → data-display-Cmj-xZYl.js} +16 -15
  206. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  207. package/dist/{date-Cq8ioE4o.js → date-Br0FicVv.js} +4 -4
  208. package/dist/{date-Cq8ioE4o.js.map → date-Br0FicVv.js.map} +1 -1
  209. package/dist/date-picker-CyQlFYsP.js +1617 -0
  210. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  211. package/dist/date-pickers-tj2MXmXd.js +185 -0
  212. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  213. package/dist/{display-KsZLw9Ov.js → display-CT_N2a3w.js} +7 -7
  214. package/dist/{display-KsZLw9Ov.js.map → display-CT_N2a3w.js.map} +1 -1
  215. package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-C08iIugv.js} +6 -6
  216. package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-C08iIugv.js.map} +1 -1
  217. package/dist/features/activities.js +283 -270
  218. package/dist/features/activities.js.map +1 -1
  219. package/dist/features/ai-chat.js +40 -27
  220. package/dist/features/ai-chat.js.map +1 -1
  221. package/dist/features/appointment-calendar.js +126 -126
  222. package/dist/features/appointment-calendar.js.map +1 -1
  223. package/dist/features/async-preview.js +9 -9
  224. package/dist/features/combobox.js +1 -1
  225. package/dist/features/comments.js +1 -1
  226. package/dist/features/data-view.js +10 -10
  227. package/dist/features/email-composer.js +24 -19
  228. package/dist/features/email-composer.js.map +1 -1
  229. package/dist/features/event-calendar.js +129 -125
  230. package/dist/features/event-calendar.js.map +1 -1
  231. package/dist/features/filters.js +2 -2
  232. package/dist/features/global-search.js +16 -20
  233. package/dist/features/global-search.js.map +1 -1
  234. package/dist/features/kanban.js +18 -28
  235. package/dist/features/kanban.js.map +1 -1
  236. package/dist/features/map/style.css +15 -0
  237. package/dist/features/map.js +331 -314
  238. package/dist/features/map.js.map +1 -1
  239. package/dist/features/media-library.js +1044 -866
  240. package/dist/features/media-library.js.map +1 -1
  241. package/dist/features/mentions.js +2 -2
  242. package/dist/features/overlays.js +1 -1
  243. package/dist/features/products.js +978 -964
  244. package/dist/features/products.js.map +1 -1
  245. package/dist/features/questionnaire.js +159 -152
  246. package/dist/features/questionnaire.js.map +1 -1
  247. package/dist/features/resource-assignment.js +8 -8
  248. package/dist/features/resource.js +74 -71
  249. package/dist/features/resource.js.map +1 -1
  250. package/dist/features/rich-text-editor.js +28 -19
  251. package/dist/features/rich-text-editor.js.map +1 -1
  252. package/dist/features/schema-form.js +297 -256
  253. package/dist/features/schema-form.js.map +1 -1
  254. package/dist/features/suggestions.js +57 -50
  255. package/dist/features/suggestions.js.map +1 -1
  256. package/dist/features/sync.js +3 -3
  257. package/dist/features/table.js +1 -1
  258. package/dist/features/theme-tweaker.js +400 -399
  259. package/dist/features/theme-tweaker.js.map +1 -1
  260. package/dist/feedback-Dzo1xtAU.js +246 -0
  261. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  262. package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-D6H7tVJi.js} +2 -2
  263. package/dist/{field-affordance-recipes-DWcNcOjh.js.map → field-affordance-recipes-D6H7tVJi.js.map} +1 -1
  264. package/dist/field-control-attributes-B6i335wr.js +18 -0
  265. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  266. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  267. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  268. package/dist/{filters-DzgSJpMK.js → filters-Dl80yYtN.js} +763 -605
  269. package/dist/filters-Dl80yYtN.js.map +1 -0
  270. package/dist/form-field-CAPdwdnZ.js +74 -0
  271. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  272. package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-CgcrUbLU.js} +2 -2
  273. package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-CgcrUbLU.js.map} +1 -1
  274. package/dist/{forms-C0RGnJTe.js → forms-B3W8CH7-.js} +8 -8
  275. package/dist/{forms-C0RGnJTe.js.map → forms-B3W8CH7-.js.map} +1 -1
  276. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  277. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  278. package/dist/{header-DMMxG__r.js → header-ZIIsRKxP.js} +113 -113
  279. package/dist/header-ZIIsRKxP.js.map +1 -0
  280. package/dist/hooks/use-files.d.ts +2 -0
  281. package/dist/{hooks-DB6CJ4MR.js → hooks-BitHSh-Y.js} +3 -3
  282. package/dist/{hooks-DB6CJ4MR.js.map → hooks-BitHSh-Y.js.map} +1 -1
  283. package/dist/{icon-badge-DZF-YjQp.js → icon-badge-npxF1SLX.js} +2 -2
  284. package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  285. package/dist/index.js +1 -1
  286. package/dist/{input-CvyDQlY7.js → input-7KAc7XQL.js} +6 -6
  287. package/dist/{input-CvyDQlY7.js.map → input-7KAc7XQL.js.map} +1 -1
  288. package/dist/{input-DMBwAZmr.js → input-DIREVYHs.js} +3 -3
  289. package/dist/{input-DMBwAZmr.js.map → input-DIREVYHs.js.map} +1 -1
  290. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  291. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  292. package/dist/{item-DjCcM18E.js → item-FfWnaYST.js} +99 -98
  293. package/dist/item-FfWnaYST.js.map +1 -0
  294. package/dist/layout/app-shell.js +1 -1
  295. package/dist/layout/auth.js +1 -1
  296. package/dist/layout/containers.js +1 -1
  297. package/dist/layout/header.js +1 -1
  298. package/dist/layout/hooks.js +1 -1
  299. package/dist/layout/navigation.js +1 -1
  300. package/dist/layout/page.js +1 -1
  301. package/dist/layout/settings.js +1 -1
  302. package/dist/layout/sidebar.js +2 -2
  303. package/dist/layout/workspace.js +1 -1
  304. package/dist/layout.js +11 -11
  305. package/dist/layout.types-E_GAApzO.js +30 -0
  306. package/dist/layout.types-E_GAApzO.js.map +1 -0
  307. package/dist/lib/field-control-attributes.d.ts +11 -0
  308. package/dist/lib/field-state-recipes.d.ts +2 -0
  309. package/dist/lib/format.d.ts +1 -0
  310. package/dist/lib/surface-recipes.d.ts +1 -1
  311. package/dist/lib/token-merge.generated.d.ts +6 -6
  312. package/dist/lib/utils.js +1 -1
  313. package/dist/{media-gallery-C-vChPmE.js → media-gallery-C81DAnKI.js} +6 -6
  314. package/dist/{media-gallery-C-vChPmE.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  315. package/dist/{mentions-0_4nWuI-.js → mentions-qOnedSt4.js} +236 -167
  316. package/dist/mentions-qOnedSt4.js.map +1 -0
  317. package/dist/message-BJHnn43M.js +135 -0
  318. package/dist/message-BJHnn43M.js.map +1 -0
  319. package/dist/{metadata-list-C3MkU-Om.js → metadata-list-XkqZ_UXH.js} +11 -11
  320. package/dist/{metadata-list-C3MkU-Om.js.map → metadata-list-XkqZ_UXH.js.map} +1 -1
  321. package/dist/{navigation-DaRjthVk.js → navigation-BgtPJAhi.js} +119 -119
  322. package/dist/navigation-BgtPJAhi.js.map +1 -0
  323. package/dist/{navigation-C90-oQFq.js → navigation-Bt-v7rWP.js} +52 -46
  324. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  325. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  326. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  327. package/dist/{number-CRU3kGuk.js → number-CYqBcrSj.js} +78 -86
  328. package/dist/number-CYqBcrSj.js.map +1 -0
  329. package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-BQCA2Zn2.js} +7 -7
  330. package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-BQCA2Zn2.js.map} +1 -1
  331. package/dist/{overlays-BSgCtM2v.js → overlays-CC8zI3Du.js} +264 -260
  332. package/dist/overlays-CC8zI3Du.js.map +1 -0
  333. package/dist/{page-DUUKDAjo.js → page-BoQ1VaFJ.js} +13 -13
  334. package/dist/{page-DUUKDAjo.js.map → page-BoQ1VaFJ.js.map} +1 -1
  335. package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-DIKspJfx.js} +4 -4
  336. package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-DIKspJfx.js.map} +1 -1
  337. package/dist/{pagination-CgCjElfu.js → pagination-Br8TdV9A.js} +4 -4
  338. package/dist/{pagination-CgCjElfu.js.map → pagination-Br8TdV9A.js.map} +1 -1
  339. package/dist/{popover-B85RenIl.js → popover-k8TdUcAt.js} +10 -10
  340. package/dist/popover-k8TdUcAt.js.map +1 -0
  341. package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-yn-o0kyA.js} +7 -7
  342. package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  343. package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-DJ0AkUan.js} +2 -2
  344. package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-DJ0AkUan.js.map} +1 -1
  345. package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-DyUXqUtD.js} +2 -2
  346. package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-DyUXqUtD.js.map} +1 -1
  347. package/dist/{primitives-ByWgGUgt.js → primitives-BkkQjYl7.js} +22 -17
  348. package/dist/primitives-BkkQjYl7.js.map +1 -0
  349. package/dist/primitives.js +4 -4
  350. package/dist/{progress-BJhQP9WX.js → progress-DZFXXzPs.js} +4 -4
  351. package/dist/{progress-BJhQP9WX.js.map → progress-DZFXXzPs.js.map} +1 -1
  352. package/dist/{receipt-tOc7B3hw.js → receipt-C7LhOg7Q.js} +6 -6
  353. package/dist/{receipt-tOc7B3hw.js.map → receipt-C7LhOg7Q.js.map} +1 -1
  354. package/dist/rich-text-BnTzZjIo.js +45 -0
  355. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  356. package/dist/rich-text-editor-CAurDwT5.js +1273 -0
  357. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  358. package/dist/{rich-text-editor-toolbar-laT3tpBT.js → rich-text-editor-toolbar-DbXig7Jk.js} +36 -35
  359. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  360. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  361. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  362. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  363. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  364. package/dist/{scroll-area-B0dB2cBi.js → scroll-area-Bj6CRUif.js} +2 -2
  365. package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  366. package/dist/{separator-Bb17I4pu.js → separator-B9ewiCGO.js} +2 -2
  367. package/dist/{separator-Bb17I4pu.js.map → separator-B9ewiCGO.js.map} +1 -1
  368. package/dist/{separator-Ct_WSWTJ.js → separator-DM6gs2vu.js} +3 -3
  369. package/dist/{separator-Ct_WSWTJ.js.map → separator-DM6gs2vu.js.map} +1 -1
  370. package/dist/services/actions.js +1 -1
  371. package/dist/settings-DZPHgpx4.js +155 -0
  372. package/dist/settings-DZPHgpx4.js.map +1 -0
  373. package/dist/{sheet-BGPERY55.js → sheet-C4DHsgLk.js} +6 -6
  374. package/dist/{sheet-BGPERY55.js.map → sheet-C4DHsgLk.js.map} +1 -1
  375. package/dist/sidebar-C8BnDwTH.js +709 -0
  376. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  377. package/dist/{sidebar-f9gRWXIR.js → sidebar-CmD6a-HK.js} +16 -13
  378. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  379. package/dist/{skeleton-BapcJd9C.js → skeleton-DDgdhmu9.js} +5 -5
  380. package/dist/{skeleton-BapcJd9C.js.map → skeleton-DDgdhmu9.js.map} +1 -1
  381. package/dist/{smart-card-CW0hjetE.js → smart-card-B6vLxqa_.js} +8 -8
  382. package/dist/{smart-card-CW0hjetE.js.map → smart-card-B6vLxqa_.js.map} +1 -1
  383. package/dist/{structure-DuxKl954.js → structure-DZJ2wbAU.js} +2 -2
  384. package/dist/{structure-DuxKl954.js.map → structure-DZJ2wbAU.js.map} +1 -1
  385. package/dist/style.css +1 -1
  386. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  387. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  388. package/dist/{table-CFOWY9pQ.js → table-CBonSdTp.js} +534 -486
  389. package/dist/table-CBonSdTp.js.map +1 -0
  390. package/dist/{table-B4TE7iOV.js → table-CXSPHH25.js} +75 -71
  391. package/dist/table-CXSPHH25.js.map +1 -0
  392. package/dist/{tabs-e7ko9S2o.js → tabs-C4Kr_hCr.js} +50 -49
  393. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  394. package/dist/{text-inputs-B1culiSK.js → text-inputs-jdkS3ReG.js} +9 -9
  395. package/dist/{text-inputs-B1culiSK.js.map → text-inputs-jdkS3ReG.js.map} +1 -1
  396. package/dist/{timelines-D3Sl9ueq.js → timelines-CoPwdJP0.js} +10 -10
  397. package/dist/{timelines-D3Sl9ueq.js.map → timelines-CoPwdJP0.js.map} +1 -1
  398. package/dist/{tooltip-8wz5S_Zr.js → tooltip-31NwIpTo.js} +4 -4
  399. package/dist/{tooltip-8wz5S_Zr.js.map → tooltip-31NwIpTo.js.map} +1 -1
  400. package/dist/{tree-CzUJHnFs.js → tree-CeYVzdFE.js} +6 -6
  401. package/dist/{tree-CzUJHnFs.js.map → tree-CeYVzdFE.js.map} +1 -1
  402. package/dist/typography/rich-text.js +1 -1
  403. package/dist/{typography-BQnine1k.js → typography-C7-YMW1S.js} +2 -2
  404. package/dist/{typography-BQnine1k.js.map → typography-C7-YMW1S.js.map} +1 -1
  405. package/dist/typography.js +1 -1
  406. package/dist/{upload-BOW6U2tI.js → upload-Hdm5gObf.js} +303 -291
  407. package/dist/upload-Hdm5gObf.js.map +1 -0
  408. package/dist/{upload-queue-qUXn1ykN.js → upload-queue-D0sYPuqo.js} +8 -8
  409. package/dist/{upload-queue-qUXn1ykN.js.map → upload-queue-D0sYPuqo.js.map} +1 -1
  410. package/dist/{usage-card-BeSLY0i0.js → usage-card-9s8hLDfn.js} +9 -9
  411. package/dist/{usage-card-BeSLY0i0.js.map → usage-card-9s8hLDfn.js.map} +1 -1
  412. package/dist/{utils-B6kKb8jB.js → utils-DhuoqFy4.js} +31 -37
  413. package/dist/utils-DhuoqFy4.js.map +1 -0
  414. package/dist/{value-inputs-skdVB2zh.js → value-inputs-D3aPgq9H.js} +15 -15
  415. package/dist/{value-inputs-skdVB2zh.js.map → value-inputs-D3aPgq9H.js.map} +1 -1
  416. package/dist/{value-typography-uAmWUAL1.js → value-typography-uSzzG9Gf.js} +32 -26
  417. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  418. package/dist/{workspace-DHeHv0qw.js → workspace-CC8Vchiu.js} +12 -12
  419. package/dist/{workspace-DHeHv0qw.js.map → workspace-CC8Vchiu.js.map} +1 -1
  420. package/docs/consumer-skill/examples/edit.tsx +3 -3
  421. package/docs/consumer-skill/references/agents-md.md +19 -19
  422. package/docs/consumer-skill/references/analytics.md +15 -0
  423. package/docs/consumer-skill/references/component-contracts.json +14724 -13057
  424. package/docs/consumer-skill/references/composition.md +21 -4
  425. package/docs/consumer-skill/references/design-contract.md +1 -0
  426. package/docs/consumer-skill/references/installation.md +51 -8
  427. package/docs/consumer-skill/references/integration.md +24 -1
  428. package/docs/consumer-skill/references/public-api.json +172 -34
  429. package/docs/consumer-skill/references/review.md +51 -11
  430. package/docs/consumer-skill/references/rhf-workflows.md +72 -0
  431. package/docs/consumer-skill/references/theming.md +7 -2
  432. package/docs/consumer-skill/references/tokens.json +1 -1
  433. package/docs/consumer-skill/scripts/composition-policy.mjs +144 -30
  434. package/docs/consumer-skill/scripts/setup-skills.mjs +46 -9
  435. package/package.json +4 -2
  436. package/templates/admin-shell-template.tsx +1 -2
  437. package/templates/customers-template.tsx +18 -16
  438. package/dist/accordion-B9MHG0cT.js.map +0 -1
  439. package/dist/ai-artifact-C58tQcBy.js.map +0 -1
  440. package/dist/auth-DTkkshS8.js.map +0 -1
  441. package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
  442. package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
  443. package/dist/combobox-BwzoXFSG.js +0 -884
  444. package/dist/combobox-BwzoXFSG.js.map +0 -1
  445. package/dist/comments-Dmpp0YIc.js.map +0 -1
  446. package/dist/data-display-BdgCAw8T.js.map +0 -1
  447. package/dist/date-picker-RlIzKom_.js +0 -1551
  448. package/dist/date-picker-RlIzKom_.js.map +0 -1
  449. package/dist/date-pickers-DY-CpXS1.js +0 -179
  450. package/dist/date-pickers-DY-CpXS1.js.map +0 -1
  451. package/dist/feedback-Dm4izqFn.js +0 -240
  452. package/dist/feedback-Dm4izqFn.js.map +0 -1
  453. package/dist/filters-DzgSJpMK.js.map +0 -1
  454. package/dist/form-field-BriWAXyg.js +0 -63
  455. package/dist/form-field-BriWAXyg.js.map +0 -1
  456. package/dist/forms-numeric-DIhghX1Q.js +0 -910
  457. package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
  458. package/dist/header-DMMxG__r.js.map +0 -1
  459. package/dist/item-DjCcM18E.js.map +0 -1
  460. package/dist/layout.types-Cn7aUzJp.js +0 -20
  461. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  462. package/dist/mentions-0_4nWuI-.js.map +0 -1
  463. package/dist/message-g8p7eVtN.js +0 -128
  464. package/dist/message-g8p7eVtN.js.map +0 -1
  465. package/dist/navigation-C90-oQFq.js.map +0 -1
  466. package/dist/navigation-DaRjthVk.js.map +0 -1
  467. package/dist/number-CRU3kGuk.js.map +0 -1
  468. package/dist/overlays-BSgCtM2v.js.map +0 -1
  469. package/dist/popover-B85RenIl.js.map +0 -1
  470. package/dist/primitives-ByWgGUgt.js.map +0 -1
  471. package/dist/rich-text-Dth5E882.js +0 -78
  472. package/dist/rich-text-Dth5E882.js.map +0 -1
  473. package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
  474. package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
  475. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
  476. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  477. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  478. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  479. package/dist/settings-Bar5wiSo.js +0 -167
  480. package/dist/settings-Bar5wiSo.js.map +0 -1
  481. package/dist/sidebar-D-JYMMbY.js +0 -686
  482. package/dist/sidebar-D-JYMMbY.js.map +0 -1
  483. package/dist/sidebar-f9gRWXIR.js.map +0 -1
  484. package/dist/table-B4TE7iOV.js.map +0 -1
  485. package/dist/table-CFOWY9pQ.js.map +0 -1
  486. package/dist/tabs-e7ko9S2o.js.map +0 -1
  487. package/dist/upload-BOW6U2tI.js.map +0 -1
  488. package/dist/utils-B6kKb8jB.js.map +0 -1
  489. package/dist/value-typography-uAmWUAL1.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area-B0dB2cBi.js","names":["ScrollArea","ScrollAreaPrimitive","cn","ScrollArea$1","props","ScrollArea","className","viewportRef","focusRecipes","viewportClassName","orientation","ScrollBar","scrollbarClassName"],"sources":["../src/components/base/display/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { cn } from '../../../lib/utils';\nimport { focusRecipes } from '../../../lib/focus-recipes';\n\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props & {\n\t/** Axes with custom scrollbar chrome. Defaults to vertical. */\n\torientation?: 'vertical' | 'horizontal' | 'both';\n\tviewportRef?: React.Ref<HTMLDivElement>;\n\tviewportClassName?: string;\n\tscrollbarClassName?: string;\n};\n\nfunction ScrollArea({\n\torientation = 'vertical',\n\tclassName,\n\tviewportClassName,\n\tscrollbarClassName,\n\tviewportRef,\n\tchildren,\n\t...props\n}: ScrollAreaProps) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root\n\t\t\tdata-slot=\"scroll-area\"\n\t\t\tclassName={cn('scroll-area--component group/scroll-area relative overflow-hidden', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tref={viewportRef}\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'size-full rounded-[inherit] outline-none transition-[color,box-shadow]',\n\t\t\t\t\t// The root clips overflow, so the shared ring is drawn inside the viewport edge.\n\t\t\t\t\tfocusRecipes.inset,\n\t\t\t\t\tviewportClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t{orientation !== 'horizontal' && <ScrollBar className={scrollbarClassName} />}\n\t\t\t{orientation !== 'vertical' && <ScrollBar orientation=\"horizontal\" className={scrollbarClassName} />}\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({\n\tclassName,\n\torientation = 'vertical',\n\t...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Scrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\tdata-orientation={orientation}\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t{\n\t\t\t\t\t'h-2.5 flex-col border-t border-t-transparent': orientation === 'horizontal',\n\t\t\t\t\t'h-full w-2 border-l border-l-transparent': orientation === 'vertical',\n\t\t\t\t},\n\t\t\t\t// `rounded-full`, not a scale value: the track is 8-10px on its short\n\t\t\t\t// axis, so any radius past half of that already clamps to a pill.\n\t\t\t\t// Saying `rounded-full` states the intent and stops the value drifting\n\t\t\t\t// with the radius scale.\n\t\t\t\t'flex touch-none select-none rounded-full p-px opacity-0 transition-opacity',\n\t\t\t\t'data-hovering:opacity-100 data-scrolling:opacity-100 group-focus-within/scroll-area:opacity-100',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Thumb\n\t\t\t\tdata-slot=\"scroll-area-thumb\"\n\t\t\t\tclassName=\"relative flex-1 rounded-full bg-border\"\n\t\t\t/>\n\t\t</ScrollAreaPrimitive.Scrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":";;;;;;;AAcA,SAASA,EAAW,EACnB,iBAAc,YACd,cACA,sBACA,uBACA,gBACA,aACA,GAAGI,KACgB;CACnB,OACC,kBAACH,EAAoB,MAArB;EACC,aAAU;EACV,WAAWC,EAAG,qEAAqEI,CAAS;EAC5F,GAAIF;EAHL,UAAA;GAKC,kBAACH,EAAoB,UAArB;IACC,KAAKM;IACL,aAAU;IACV,WAAWL,EACV,0EAEAM,EAAa,OACbC,CACD;IAEC;GAC4B,CAAA;GAC7BC,MAAgB,gBAAgB,kBAACC,GAAD,EAAW,WAAWC,EAAqB,CAAA;GAC3EF,MAAgB,cAAc,kBAACC,GAAD;IAAW,aAAY;IAAa,WAAWC;GAAqB,CAAA;GACnG,kBAACX,EAAoB,QAArB,CAA6B,CAAA;EACJ;;AAE5B;AAEA,SAASU,EAAU,EAClB,cACA,iBAAc,YACd,GAAGP,KACoC;CACvC,OACC,kBAACH,EAAoB,WAArB;EACC,aAAU;EACV,oBAAkBS;EACL;EACb,WAAWR,EACV;GACC,gDAAgDQ,MAAgB;GAChE,4CAA4CA,MAAgB;EAC7D,GAKA,8EACA,mGACAJ,CACD;EACA,GAAIF;EAEJ,UAAA,kBAACH,EAAoB,OAArB;GACC,aAAU;GACV,WAAU;EACV,CAAA;CAC6B,CAAA;AAEjC"}
1
+ {"version":3,"file":"scroll-area-Bj6CRUif.js","names":["ScrollArea","ScrollAreaPrimitive","cn","ScrollArea$1","props","ScrollArea","className","viewportRef","focusRecipes","viewportClassName","orientation","ScrollBar","scrollbarClassName"],"sources":["../src/components/base/display/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { cn } from '../../../lib/utils';\nimport { focusRecipes } from '../../../lib/focus-recipes';\n\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props & {\n\t/** Axes with custom scrollbar chrome. Defaults to vertical. */\n\torientation?: 'vertical' | 'horizontal' | 'both';\n\tviewportRef?: React.Ref<HTMLDivElement>;\n\tviewportClassName?: string;\n\tscrollbarClassName?: string;\n};\n\nfunction ScrollArea({\n\torientation = 'vertical',\n\tclassName,\n\tviewportClassName,\n\tscrollbarClassName,\n\tviewportRef,\n\tchildren,\n\t...props\n}: ScrollAreaProps) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root\n\t\t\tdata-slot=\"scroll-area\"\n\t\t\tclassName={cn('scroll-area--component group/scroll-area relative overflow-hidden', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tref={viewportRef}\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'size-full rounded-[inherit] outline-none transition-[color,box-shadow]',\n\t\t\t\t\t// The root clips overflow, so the shared ring is drawn inside the viewport edge.\n\t\t\t\t\tfocusRecipes.inset,\n\t\t\t\t\tviewportClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t{orientation !== 'horizontal' && <ScrollBar className={scrollbarClassName} />}\n\t\t\t{orientation !== 'vertical' && <ScrollBar orientation=\"horizontal\" className={scrollbarClassName} />}\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({\n\tclassName,\n\torientation = 'vertical',\n\t...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Scrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\tdata-orientation={orientation}\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t{\n\t\t\t\t\t'h-2.5 flex-col border-t border-t-transparent': orientation === 'horizontal',\n\t\t\t\t\t'h-full w-2 border-l border-l-transparent': orientation === 'vertical',\n\t\t\t\t},\n\t\t\t\t// `rounded-full`, not a scale value: the track is 8-10px on its short\n\t\t\t\t// axis, so any radius past half of that already clamps to a pill.\n\t\t\t\t// Saying `rounded-full` states the intent and stops the value drifting\n\t\t\t\t// with the radius scale.\n\t\t\t\t'flex touch-none select-none rounded-full p-px opacity-0 transition-opacity',\n\t\t\t\t'data-hovering:opacity-100 data-scrolling:opacity-100 group-focus-within/scroll-area:opacity-100',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Thumb\n\t\t\t\tdata-slot=\"scroll-area-thumb\"\n\t\t\t\tclassName=\"relative flex-1 rounded-full bg-border\"\n\t\t\t/>\n\t\t</ScrollAreaPrimitive.Scrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":";;;;;;;AAcA,SAASA,EAAW,EACnB,iBAAc,YACd,cACA,sBACA,uBACA,gBACA,aACA,GAAGI,KACgB;CACnB,OACC,kBAACH,EAAoB,MAArB;EACC,aAAU;EACV,WAAWC,EAAG,qEAAqEI,CAAS;EAC5F,GAAIF;EAHL,UAAA;GAKC,kBAACH,EAAoB,UAArB;IACC,KAAKM;IACL,aAAU;IACV,WAAWL,EACV,0EAEAM,EAAa,OACbC,CACD;IAEC;GAC4B,CAAA;GAC7BC,MAAgB,gBAAgB,kBAACC,GAAD,EAAW,WAAWC,EAAqB,CAAA;GAC3EF,MAAgB,cAAc,kBAACC,GAAD;IAAW,aAAY;IAAa,WAAWC;GAAqB,CAAA;GACnG,kBAACX,EAAoB,QAArB,CAA6B,CAAA;EACJ;;AAE5B;AAEA,SAASU,EAAU,EAClB,cACA,iBAAc,YACd,GAAGP,KACoC;CACvC,OACC,kBAACH,EAAoB,WAArB;EACC,aAAU;EACV,oBAAkBS;EACL;EACb,WAAWR,EACV;GACC,gDAAgDQ,MAAgB;GAChE,4CAA4CA,MAAgB;EAC7D,GAKA,8EACA,mGACAJ,CACD;EACA,GAAIF;EAEJ,UAAA,kBAACH,EAAoB,OAArB;GACC,aAAU;GACV,WAAU;EACV,CAAA;CAC6B,CAAA;AAEjC"}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./utils-B6kKb8jB.js";
2
+ import { t as e } from "./utils-DhuoqFy4.js";
3
3
  import { jsx as t } from "react/jsx-runtime";
4
4
  import { Separator as n } from "@base-ui/react/separator";
5
5
  //#region src/components/ui/separator.tsx
@@ -14,4 +14,4 @@ function r({ className: r, orientation: i = "horizontal", ...a }) {
14
14
  //#endregion
15
15
  export { r as t };
16
16
 
17
- //# sourceMappingURL=separator-Bb17I4pu.js.map
17
+ //# sourceMappingURL=separator-B9ewiCGO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"separator-Bb17I4pu.js","names":["Separator","SeparatorPrimitive","cn","Separator$1","props","Separator","className"],"sources":["../src/components/ui/separator.tsx"],"sourcesContent":["\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n"],"mappings":";;;;;AAMA,SAASA,EAAU,EACjB,cACA,iBAAc,cACd,GAAGI,KACwB;CAC3B,OACE,kBAACH,GAAD;EACE,aAAU;EACG;EACb,WAAWC,EACT,wKACAI,CACF;EACA,GAAIF;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"separator-B9ewiCGO.js","names":["Separator","SeparatorPrimitive","cn","Separator$1","props","Separator","className"],"sources":["../src/components/ui/separator.tsx"],"sourcesContent":["\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n"],"mappings":";;;;;AAMA,SAASA,EAAU,EACjB,cACA,iBAAc,cACd,GAAGI,KACwB;CAC3B,OACE,kBAACH,GAAD;EACE,aAAU;EACG;EACb,WAAWC,EACT,wKACAI,CACF;EACA,GAAIF;CACL,CAAA;AAEL"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "./utils-B6kKb8jB.js";
3
- import { t } from "./separator-Bb17I4pu.js";
2
+ import { t as e } from "./utils-DhuoqFy4.js";
3
+ import { t } from "./separator-B9ewiCGO.js";
4
4
  import "react";
5
5
  import { jsx as n } from "react/jsx-runtime";
6
6
  //#region src/components/base/display/separator.tsx
@@ -18,4 +18,4 @@ r.displayName = "Separator";
18
18
  //#endregion
19
19
  export { r as t };
20
20
 
21
- //# sourceMappingURL=separator-Ct_WSWTJ.js.map
21
+ //# sourceMappingURL=separator-DM6gs2vu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"separator-Ct_WSWTJ.js","names":["PrimitiveSeparator","cn","Separator","props","Separator$1","dashed","className"],"sources":["../src/components/base/display/separator.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Separator as PrimitiveSeparator } from '../../ui/separator';\nimport { cn } from '../../../lib/utils';\n\nexport interface SeparatorProps extends React.ComponentPropsWithoutRef<typeof PrimitiveSeparator> {\n\t/** Render the rule as a dashed line instead of a solid border fill. */\n\tdashed?: boolean;\n}\n\nexport function Separator({\n\tclassName,\n\tdashed = false,\n\t...props\n}: SeparatorProps) {\n\treturn (\n\t\t<PrimitiveSeparator\n\t\t\tclassName={cn(\n\t\t\t\t'separator--component',\n\t\t\t\tdashed && [\n\t\t\t\t\t// `border-0` zeroes every side first: without preflight, a dashed\n\t\t\t\t\t// style would otherwise give the unset sides a 3px medium border.\n\t\t\t\t\t'bg-transparent border-0 border-border border-dashed',\n\t\t\t\t\t'data-[orientation=horizontal]:h-0 data-[orientation=horizontal]:border-t',\n\t\t\t\t\t'data-[orientation=vertical]:w-0 data-[orientation=vertical]:border-l',\n\t\t\t\t],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nSeparator.displayName = 'Separator';\n"],"mappings":";;;;;;AAUA,SAAgBE,EAAU,EACzB,cACA,YAAS,IACT,GAAGC,KACe;CAClB,OACC,kBAACH,GAAD;EACC,WAAWC,EACV,wBACAI,KAAU;GAGT;GACA;GACA;EACD,GACAC,CACD;EACA,GAAIH;CACJ,CAAA;AAEH;AAEA,EAAU,cAAc"}
1
+ {"version":3,"file":"separator-DM6gs2vu.js","names":["PrimitiveSeparator","cn","Separator","props","Separator$1","dashed","className"],"sources":["../src/components/base/display/separator.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Separator as PrimitiveSeparator } from '../../ui/separator';\nimport { cn } from '../../../lib/utils';\n\nexport interface SeparatorProps extends React.ComponentPropsWithoutRef<typeof PrimitiveSeparator> {\n\t/** Render the rule as a dashed line instead of a solid border fill. */\n\tdashed?: boolean;\n}\n\nexport function Separator({\n\tclassName,\n\tdashed = false,\n\t...props\n}: SeparatorProps) {\n\treturn (\n\t\t<PrimitiveSeparator\n\t\t\tclassName={cn(\n\t\t\t\t'separator--component',\n\t\t\t\tdashed && [\n\t\t\t\t\t// `border-0` zeroes every side first: without preflight, a dashed\n\t\t\t\t\t// style would otherwise give the unset sides a 3px medium border.\n\t\t\t\t\t'bg-transparent border-0 border-border border-dashed',\n\t\t\t\t\t'data-[orientation=horizontal]:h-0 data-[orientation=horizontal]:border-t',\n\t\t\t\t\t'data-[orientation=vertical]:w-0 data-[orientation=vertical]:border-l',\n\t\t\t\t],\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nSeparator.displayName = 'Separator';\n"],"mappings":";;;;;;AAUA,SAAgBE,EAAU,EACzB,cACA,YAAS,IACT,GAAGC,KACe;CAClB,OACC,kBAACH,GAAD;EACC,WAAWC,EACV,wBACAI,KAAU;GAGT;GACA;GACA;EACD,GACAC,CACD;EACA,GAAIH;CACJ,CAAA;AAEH;AAEA,EAAU,cAAc"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useStrings as e } from "../lib/strings.js";
3
- import { n as t, r as n, t as r } from "../overlays-BSgCtM2v.js";
3
+ import { n as t, r as n, t as r } from "../overlays-CC8zI3Du.js";
4
4
  import { createContext as i, createElement as a, useContext as o, useEffect as s, useId as c, useMemo as l, useRef as u, useSyncExternalStore as d } from "react";
5
5
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
6
6
  //#region src/services/actions/actions.types.ts
@@ -0,0 +1,155 @@
1
+ "use client";
2
+ import { useStrings as e } from "./lib/strings.js";
3
+ import { t } from "./utils-DhuoqFy4.js";
4
+ import { c as n, o as r, s as i } from "./typography-C7-YMW1S.js";
5
+ import { n as a, t as o } from "./text.styles-B64My8RZ.js";
6
+ import { t as s } from "./focus-recipes-B653VaLq.js";
7
+ import { t as c } from "./structure-DZJ2wbAU.js";
8
+ import { t as l } from "./smart-card-B6vLxqa_.js";
9
+ import { n as u, t as d } from "./composition.recipes-COdiFhxB.js";
10
+ import { t as f } from "./interaction-recipes-4wZ2tvfb.js";
11
+ import { t as p } from "./badge-wWauMgAt.js";
12
+ import { n as m, t as h } from "./page-header-commands-DIKspJfx.js";
13
+ import { n as g } from "./layout.types-E_GAApzO.js";
14
+ import { t as _ } from "./normalize-layout-path-BmEgg6fu.js";
15
+ import { Fragment as v } from "react";
16
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
17
+ //#region src/components/layout/settings/settings.tsx
18
+ var x = { navigationAriaLabel: "Settings navigation" };
19
+ function S(e, t, n) {
20
+ if (t) return e.id === t;
21
+ if (!n || !e.href) return !1;
22
+ let r = _(n), i = _(e.href);
23
+ return r === i || r.startsWith(`${i}/`);
24
+ }
25
+ function C({ title: _, description: C, groups: w, currentId: T, currentPath: E, children: D, aside: O, actions: k, primaryAction: A, secondaryActions: j, maxVisibleSecondaryActions: M, moreActionsLabel: N = "More actions", footer: P, className: F, navClassName: I, contentClassName: L, renderLink: R, strings: z }) {
26
+ let B = e(x, z), V = g({ renderLink: R }), H = m(A, j);
27
+ return /* @__PURE__ */ b("section", {
28
+ "data-component": "aside-nav-shell",
29
+ "data-slot": "aside-nav-shell",
30
+ className: t("aside-nav-shell--component grid min-w-0 lg:grid-cols-[17rem_minmax(0,1fr)]", d.subjects, F),
31
+ children: [/* @__PURE__ */ y("aside", {
32
+ "data-slot": "aside-nav-shell-aside",
33
+ className: "aside-nav-shell--aside min-w-0",
34
+ children: /* @__PURE__ */ b(l, {
35
+ surface: "card",
36
+ className: t("aside-nav-shell--nav-card sticky top-0", I),
37
+ contentClassName: "grid gap-space-xl",
38
+ children: [!!O && /* @__PURE__ */ y("div", {
39
+ className: "aside-nav-shell--aside-header",
40
+ children: O
41
+ }), /* @__PURE__ */ y(c, {
42
+ render: /* @__PURE__ */ y("nav", { "aria-label": B.navigationAriaLabel }),
43
+ gap: "xl",
44
+ children: w.map((e) => /* @__PURE__ */ b(c, {
45
+ gap: "sm",
46
+ children: [!!e.label && /* @__PURE__ */ y(r, {
47
+ className: "px-row-x text-inherit",
48
+ children: e.label
49
+ }), /* @__PURE__ */ y(c, {
50
+ gap: "2xs",
51
+ children: e.items.map((e) => {
52
+ let r = e.icon, i = e.onSelect, a = S(e, T, E), o = /* @__PURE__ */ b(c, {
53
+ direction: "horizontal",
54
+ align: "start",
55
+ gap: "md",
56
+ wrap: !1,
57
+ render: /* @__PURE__ */ y("span", {}),
58
+ className: "min-w-0 w-full",
59
+ children: [
60
+ !!r && /* @__PURE__ */ y(r, { className: t("size-icon shrink-0 mt-space-2xs", a ? "text-accent-foreground" : "text-muted-foreground") }),
61
+ /* @__PURE__ */ b(c, {
62
+ render: /* @__PURE__ */ y("span", {}),
63
+ gap: "dense",
64
+ className: "min-w-0 flex-1",
65
+ children: [/* @__PURE__ */ y(n, {
66
+ tag: "span",
67
+ type: "inherit",
68
+ weight: a ? "semibold" : "medium",
69
+ className: "[overflow-wrap:anywhere]",
70
+ children: e.label
71
+ }), !!e.description && /* @__PURE__ */ y(n, {
72
+ tag: "span",
73
+ size: "xs",
74
+ type: "secondary",
75
+ className: "[overflow-wrap:anywhere]",
76
+ children: e.description
77
+ })]
78
+ }),
79
+ !!e.badge && /* @__PURE__ */ y(p, {
80
+ tone: "secondary",
81
+ className: "shrink-0",
82
+ children: e.badge
83
+ })
84
+ ]
85
+ });
86
+ return /* @__PURE__ */ y(v, { children: V({
87
+ href: e.href,
88
+ children: o,
89
+ active: a,
90
+ disabled: e.disabled,
91
+ external: e.external,
92
+ onClick: i && !e.disabled ? () => i(e.id) : void 0,
93
+ className: t("aside-nav-shell--item flex min-w-0 rounded-radius px-row-x py-row-y transition-colors", `focus-visible:outline-none ${s.edge}`, a ? f.rowSelected : `text-inherit ${f.rowHover}`, e.disabled && "pointer-events-none opacity-50"),
94
+ "aria-label": typeof e.label == "string" ? e.label : void 0
95
+ }) }, e.id);
96
+ })
97
+ })]
98
+ }, e.id))
99
+ })]
100
+ })
101
+ }), /* @__PURE__ */ b(c, {
102
+ gap: u.subjects,
103
+ "data-slot": "aside-nav-shell-main",
104
+ className: t("aside-nav-shell--main", L),
105
+ children: [
106
+ (_ || C || k || H) && /* @__PURE__ */ b("header", {
107
+ className: "aside-nav-shell--header page-header--component @container/page-header flex min-w-0 flex-wrap items-start justify-between gap-x-space-xl gap-y-space-lg",
108
+ children: [/* @__PURE__ */ b(c, {
109
+ gap: "normal",
110
+ className: "aside-nav-shell--copy min-w-0 flex-1 basis-48 @min-[40rem]/page-header:basis-96",
111
+ children: [!!_ && /* @__PURE__ */ y(i, {
112
+ tag: "h2",
113
+ size: a.subject,
114
+ className: "border-0 pb-0",
115
+ children: _
116
+ }), !!C && /* @__PURE__ */ y(n, {
117
+ ...o.structuralDescription,
118
+ className: "aside-nav-shell--description max-w-3xl",
119
+ children: C
120
+ })]
121
+ }), !!(k || H) && /* @__PURE__ */ b(c, {
122
+ direction: "horizontal",
123
+ wrap: !0,
124
+ align: "center",
125
+ justify: H ? "end" : void 0,
126
+ gap: u.commands,
127
+ className: "aside-nav-shell--actions max-w-full shrink-0",
128
+ children: [k, H && /* @__PURE__ */ y(h, {
129
+ primaryAction: A,
130
+ secondaryActions: j,
131
+ maxVisibleSecondaryActions: M,
132
+ moreActionsLabel: N,
133
+ renderLink: V
134
+ })]
135
+ })]
136
+ }),
137
+ /* @__PURE__ */ y("div", {
138
+ "data-slot": "aside-nav-shell-content",
139
+ className: t("aside-nav-shell--content flex min-w-0 flex-col", d.subjects),
140
+ children: D
141
+ }),
142
+ !!P && /* @__PURE__ */ y("footer", {
143
+ className: "aside-nav-shell--footer",
144
+ children: P
145
+ })
146
+ ]
147
+ })]
148
+ });
149
+ }
150
+ var w = C;
151
+ C.displayName = "AsideNavShell";
152
+ //#endregion
153
+ export { w as n, x as r, C as t };
154
+
155
+ //# sourceMappingURL=settings-DZPHgpx4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-DZPHgpx4.js","names":["Text","DisplayLabel","Heading","headingRoleSizes","copyRoleProps","focusRecipes","Stack","Card","compositionRhythm","compositionClasses","interactionRecipes","Badge","hasPageHeaderCommands","PageHeaderCommands","resolveLayoutLinkRenderer","normalizeLayoutPath","defaultAsideNavShellStrings","isActiveItem","currentId","item","currentPath","activePath","itemPath","AsideNavShell","stringsProp","strings","useStrings","linkRenderer","hasCommands","primaryAction","secondaryActions","cn","className","navClassName","aside","groups","group","Icon","onSelect","active","content","Fragment","contentClassName","title","description","actions","footer","SettingsShell"],"sources":["../src/components/layout/settings/settings.tsx"],"sourcesContent":["import { Fragment, type ComponentType, type ReactNode } from 'react';\n\nimport { Badge } from '../../base/badge';\nimport { Card } from '../../base/cards';\nimport { Stack } from '../../base/structure';\nimport {compositionClasses, compositionRhythm} from '../../base/structure/composition.recipes';\nimport { hasPageHeaderCommands, PageHeaderCommands, type PageHeaderAction } from '../../base/navigation/page-header/page-header-commands';\nimport { DisplayLabel, Heading, Text } from '../../typography';\nimport {copyRoleProps, headingRoleSizes} from '../../typography/text.styles';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\nimport { normalizeLayoutPath } from '../normalize-layout-path';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { interactionRecipes } from '../../../lib/interaction-recipes';\n\nexport interface AsideNavShellStrings {\n\tnavigationAriaLabel: string;\n}\n\nexport const defaultAsideNavShellStrings: AsideNavShellStrings = {\n\tnavigationAriaLabel: 'Settings navigation',\n};\n\nexport interface AsideNavItem {\n\tid: string;\n\t/** Display label. */\n\tlabel: ReactNode;\n\t/** Destination for the entry, when it navigates. */\n\thref?: string;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Leading glyph. */\n\ticon?: ComponentType<{ className?: string }>;\n\t/** Chip rendered beside the label. */\n\tbadge?: ReactNode;\n\t/** Disables the control. */\n\tdisabled?: boolean;\n\texternal?: boolean;\n\tonSelect?: (id: string) => void;\n}\n\nexport interface AsideNavGroup {\n\tid: string;\n\t/** Display label. */\n\tlabel?: ReactNode;\n\t/** Entries to render, in order. */\n\titems: AsideNavItem[];\n}\n\nexport interface AsideNavShellProps extends LayoutNavigationAdapter {\n\t/** Surface title. */\n\ttitle?: ReactNode;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Sections of the settings navigation. */\n\tgroups: AsideNavGroup[];\n\t/** Id of the active entry. */\n\tcurrentId?: string;\n\t/** Path of the active route. */\n\tcurrentPath?: string;\n\tchildren?: ReactNode;\n\t/** Content beside the main settings panel. */\n\taside?: ReactNode;\n\t/**\n\t * Non-command controls beside the title, such as a scope select. They\n\t * render before the role-based commands.\n\t */\n\tactions?: ReactNode;\n\t/** The page's one main command: a solid primary button, available in the compact header menu. */\n\tprimaryAction?: PageHeaderAction;\n\t/**\n\t * Supporting commands in priority order, as in Page headers: the first two\n\t * render as outline buttons before the primary command; the rest, and every\n\t * destructive command, move into the More actions menu, which closes the row.\n\t */\n\tsecondaryActions?: readonly PageHeaderAction[];\n\t/**\n\t * How many routine secondary commands render as outline buttons on wide\n\t * headers; later ones join the More actions menu. Use `1` or `0` when long\n\t * labels beside the primary command would crowd the header; `Infinity`\n\t * keeps every routine command inline. @default 2\n\t */\n\tmaxVisibleSecondaryActions?: number;\n\t/** Accessible name of the More actions menu trigger. Default: `'More actions'`. */\n\tmoreActionsLabel?: string;\n\t/** Content below the body. */\n\tfooter?: ReactNode;\n\tclassName?: string;\n\t/** Merged onto the navigation region. */\n\tnavClassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<AsideNavShellStrings>;\n}\n\nexport type SettingsShellProps = AsideNavShellProps;\n\nfunction isActiveItem(item: AsideNavItem, currentId?: string, currentPath?: string): boolean {\n\tif (currentId) return item.id === currentId;\n\tif (!currentPath || !item.href) return false;\n\tconst activePath = normalizeLayoutPath(currentPath);\n\tconst itemPath = normalizeLayoutPath(item.href);\n\treturn activePath === itemPath || activePath.startsWith(`${itemPath}/`);\n}\n\nexport function AsideNavShell({\n\ttitle,\n\tdescription,\n\tgroups,\n\tcurrentId,\n\tcurrentPath,\n\tchildren,\n\taside,\n\tactions,\n\tprimaryAction,\n\tsecondaryActions,\n\tmaxVisibleSecondaryActions,\n\tmoreActionsLabel = 'More actions',\n\tfooter,\n\tclassName,\n\tnavClassName,\n\tcontentClassName,\n\trenderLink,\n\tstrings: stringsProp,\n}: AsideNavShellProps) {\n\tconst strings = useStrings(defaultAsideNavShellStrings, stringsProp);\n\tconst linkRenderer = resolveLayoutLinkRenderer({ renderLink });\n\tconst hasCommands = hasPageHeaderCommands(primaryAction, secondaryActions);\n\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"aside-nav-shell\"\n\t\t\tdata-slot=\"aside-nav-shell\"\n\t\t\tclassName={cn('aside-nav-shell--component grid min-w-0 lg:grid-cols-[17rem_minmax(0,1fr)]', compositionClasses.subjects, className)}\n\t\t>\n\t\t\t<aside data-slot=\"aside-nav-shell-aside\" className=\"aside-nav-shell--aside min-w-0\">\n\t\t\t\t{/* PageViewport scrolls below the application header, so no header offset\n\t\t\t\t applies. A zero offset keeps the card level with the section header at\n\t\t\t\t rest even when the shell starts its scroll container: any larger offset\n\t\t\t\t would push the card down there before anything scrolled. */}\n\t\t\t\t<Card\n\t\t\t\t\tsurface=\"card\"\n\t\t\t\t\tclassName={cn('aside-nav-shell--nav-card sticky top-0', navClassName)}\n\t\t\t\t\tcontentClassName=\"grid gap-space-xl\"\n\t\t\t\t>\n\t\t\t\t\t{!!aside && <div className=\"aside-nav-shell--aside-header\">{aside}</div>}\n\t\t\t\t\t<Stack render={<nav aria-label={strings.navigationAriaLabel} />} gap=\"xl\">\n\t\t\t\t\t\t{groups.map((group) => (\n\t\t\t\t\t\t\t<Stack key={group.id} gap=\"sm\">\n\t\t\t\t\t\t\t\t{!!group.label && (\n\t\t\t\t\t\t\t\t\t<DisplayLabel className=\"px-row-x text-inherit\">\n\t\t\t\t\t\t\t\t\t\t{group.label}\n\t\t\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Stack gap=\"2xs\">\n\t\t\t\t\t\t\t\t\t{group.items.map((item) => {\n\t\t\t\t\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\t\t\t\t\tconst onSelect = item.onSelect;\n\t\t\t\t\t\t\t\t\t\tconst active = isActiveItem(item, currentId, currentPath);\n\t\t\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"start\" gap=\"md\" wrap={false} render={<span />} className=\"min-w-0 w-full\">\n\t\t\t\t\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'size-icon shrink-0 mt-space-2xs',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive ? 'text-accent-foreground' : 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Labels and descriptions wrap: the navigation column is narrow,\n\t\t\t\t\t\t\t\t\t\t\t\t and a clipped description loses the copy it exists for. */}\n\t\t\t\t\t\t\t\t\t\t\t\t<Stack render={<span />} gap=\"dense\" className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" type=\"inherit\" weight={active ? 'semibold' : 'medium'} className=\"[overflow-wrap:anywhere]\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"[overflow-wrap:anywhere]\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Badge tone=\"secondary\" className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<Fragment key={item.id}>\n\t\t\t\t\t\t\t\t\t\t\t\t{linkRenderer({\n\t\t\t\t\t\t\t\t\t\t\t\t\thref: item.href,\n\t\t\t\t\t\t\t\t\t\t\t\t\tchildren: content,\n\t\t\t\t\t\t\t\t\t\t\t\t\tactive,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled: item.disabled,\n\t\t\t\t\t\t\t\t\t\t\t\t\texternal: item.external,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick: onSelect && !item.disabled ? () => onSelect(item.id) : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'aside-nav-shell--item flex min-w-0 rounded-radius px-row-x py-row-y transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`focus-visible:outline-none ${focusRecipes.edge}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? interactionRecipes.rowSelected\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `text-inherit ${interactionRecipes.rowHover}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t'aria-label': typeof item.label === 'string' ? item.label : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Stack>\n\t\t\t\t</Card>\n\t\t\t</aside>\n\n\t\t\t\t<Stack gap={compositionRhythm.subjects} data-slot=\"aside-nav-shell-main\" className={cn('aside-nav-shell--main', contentClassName)}>\n\t\t\t\t{(title || description || actions || hasCommands) && (\n\t\t\t\t\t// The header is the commands' `page-header` container, as in PageHeader:\n\t\t\t\t\t// below 40rem of its own width the commands collapse into More actions.\n\t\t\t\t\t// Actions sit beside the copy only while the copy keeps a readable\n\t\t\t\t\t// measure (12rem, or 24rem once inline commands show); otherwise they\n\t\t\t\t\t// wrap below it instead of squeezing the description.\n\t\t\t\t\t<header className=\"aside-nav-shell--header page-header--component @container/page-header flex min-w-0 flex-wrap items-start justify-between gap-x-space-xl gap-y-space-lg\">\n\t\t\t\t\t\t<Stack gap=\"normal\" className=\"aside-nav-shell--copy min-w-0 flex-1 basis-48 @min-[40rem]/page-header:basis-96\">\n\t\t\t\t\t\t\t{!!title && <Heading tag=\"h2\" size={headingRoleSizes.subject} className=\"border-0 pb-0\">{title}</Heading>}\n\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t<Text {...copyRoleProps.structuralDescription} className=\"aside-nav-shell--description max-w-3xl\">\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{!!(actions || hasCommands) && (\n\t\t\t\t\t\t\t<Stack direction=\"horizontal\" wrap align=\"center\" justify={hasCommands ? 'end' : undefined} gap={compositionRhythm.commands} className=\"aside-nav-shell--actions max-w-full shrink-0\">\n\t\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t\t\t{hasCommands && (\n\t\t\t\t\t\t\t\t\t<PageHeaderCommands\n\t\t\t\t\t\t\t\t\t\tprimaryAction={primaryAction}\n\t\t\t\t\t\t\t\t\t\tsecondaryActions={secondaryActions}\n\t\t\t\t\t\t\t\t\t\tmaxVisibleSecondaryActions={maxVisibleSecondaryActions}\n\t\t\t\t\t\t\t\t\t\tmoreActionsLabel={moreActionsLabel}\n\t\t\t\t\t\t\t\t\t\trenderLink={linkRenderer}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</header>\n\t\t\t\t)}\n\t\t\t\t\t<div data-slot=\"aside-nav-shell-content\" className={cn('aside-nav-shell--content flex min-w-0 flex-col', compositionClasses.subjects)}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!footer && <footer className=\"aside-nav-shell--footer\">{footer}</footer>}\n\t\t\t\t</Stack>\n\t\t</section>\n\t);\n}\n\nexport const SettingsShell = AsideNavShell;\n\nAsideNavShell.displayName = 'AsideNavShell';\n"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { i as e } from "./ui-provider-C-74NVLc.js";
3
- import { t } from "./utils-B6kKb8jB.js";
3
+ import { t } from "./utils-DhuoqFy4.js";
4
4
  import { t as n } from "./affordance-geometry.generated-P-aVJisu.js";
5
- import { c as r } from "./typography-BQnine1k.js";
5
+ import { c as r } from "./typography-C7-YMW1S.js";
6
6
  import { l as i, o as a, s as o } from "./text.styles-B64My8RZ.js";
7
- import { t as s } from "./portal-recipes-BpsV_iRw.js";
7
+ import { t as s } from "./portal-recipes-DyUXqUtD.js";
8
8
  import { t as c } from "./motion-recipes-DitYv6P2.js";
9
9
  import { t as l } from "./slot-CLF9kLrS.js";
10
- import { t as u } from "./button-S2Cubiiz.js";
11
- import { a as d, r as f } from "./surface-recipes-BKRVW8Os.js";
10
+ import { t as u } from "./button-ChBovTx0.js";
11
+ import { a as d, r as f } from "./surface-recipes-C8mNycaY.js";
12
12
  import { t as p } from "./overlay.recipes-8GHqmlb4.js";
13
13
  import { t as m } from "./use-popup-focus-recovery-C0QPvgOR.js";
14
14
  import * as h from "react";
@@ -247,4 +247,4 @@ K.displayName = "SheetDescription";
247
247
  //#endregion
248
248
  export { K as a, G as c, C as d, T as f, V as i, z as l, U as n, W as o, b as p, B as r, H as s, R as t, S as u };
249
249
 
250
- //# sourceMappingURL=sheet-BGPERY55.js.map
250
+ //# sourceMappingURL=sheet-C4DHsgLk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet-BGPERY55.js","names":["React","Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription","SheetPrimitive","React","SheetTriggerPrimitive","SheetClosePrimitive","SheetContentPrimitive","SheetHeaderPrimitive","SheetFooterPrimitive","SheetTitlePrimitive","SheetDescriptionPrimitive","useThemePortalContainer","affordanceGeometry","Text","textWeights","textLineHeights","textSizes","portalClassName","motionRecipes","Slot","Button","surfaceDividerRecipes","modalRegionRecipes","modalBackdropRecipe","usePopupFocusRecovery","React$1","overlayAnatomyRecipes","OverlayLayerContext","OverlayLayer","useInsideOverlayLayer","OpenerCapture","active","useOpenerFinalFocus","opener","restore","target","finalFocus","Sheet$1","props","Dialog","SheetTrigger$1","renderSlot","asChild","SheetClose$1","SheetPortal","resolvedContainer","container","className","SheetOverlay","cn","SheetContent$1","finalFocusProp","recoverFocus","onFocusCapture","insideOverlay","forceRenderBackdrop","backdropClassName","side","capture","showCloseButton","XIcon","SheetHeader$1","SheetFooter$1","SheetTitle$1","SheetDescription$1","isSimpleText","value","titleTypography","Sheet","SheetTrigger","SheetClose","SheetContent","SheetHeader","textGap","SheetBody","SheetFooter","SheetTitle","children","SheetDescription"],"sources":["../src/lib/overlay-anatomy-recipes.ts","../src/components/ui/overlay-layer.tsx","../src/components/ui/sheet.tsx","../src/components/base/sheet/sheet.tsx"],"sourcesContent":["import { affordanceGeometry } from './affordance-geometry.generated';\n/** Dismiss controls follow the surface's logical inset; headers reserve the\n * actual small-action width plus an action gap only when a close control exists.\n * These are derived recipes, not additional theme settings.\n */\nexport const overlayAnatomyRecipes = {\n\tclose: affordanceGeometry.overlayClose,\n\theader: affordanceGeometry.overlayHeader,\n\theaderCentered: affordanceGeometry.overlayHeaderCentered,\n} as const;\n","\"use client\";\n\nimport * as React from \"react\"\n\n/**\n * Whether a subtree renders inside another modal's popup. Base UI counts every\n * dialog below any Dialog root as nested and skips its backdrop, and the\n * AppSidebar drawer owner is a Dialog root around the whole application. The\n * scrim therefore follows this React-tree layer instead: a modal draws its own\n * backdrop unless it opens from inside another modal's content.\n */\nconst OverlayLayerContext = React.createContext(false)\n\nfunction OverlayLayer({ children }: { children?: React.ReactNode }) {\n return <OverlayLayerContext.Provider value={true}>{children}</OverlayLayerContext.Provider>\n}\n\nfunction useInsideOverlayLayer() {\n return React.useContext(OverlayLayerContext)\n}\n\ntype FinalFocus = boolean | React.RefObject<HTMLElement | null> | ((closeType: never) => boolean | HTMLElement | null | void)\n\n// Renders inside the popup, which mounts on each open, so it reads the element\n// that had focus before the popup moved it.\nfunction OpenerCapture({ target }: { target: React.RefObject<HTMLElement | null> }) {\n React.useState(() => {\n const active = typeof document === \"undefined\" ? null : document.activeElement\n target.current = active instanceof HTMLElement && active !== active.ownerDocument.body ? active : null\n return null\n })\n return null\n}\n\n/**\n * Returns focus to the element that opened the modal. Base UI returns it to the\n * nested parent instead, and under the sidebar drawer owner that parent is closed,\n * so focus fell to the body. Like the default, it leaves focus alone when the app\n * already moved it outside the popup (a confirm that focuses an editor). An\n * explicit `finalFocus` still wins.\n */\nfunction useOpenerFinalFocus<T extends FinalFocus | undefined>(finalFocus: T) {\n const opener = React.useRef<HTMLElement | null>(null)\n const restore = React.useCallback(() => {\n const target = opener.current\n if (!target?.isConnected) return true\n const active = target.ownerDocument.activeElement\n const movedByApp = active instanceof HTMLElement && active !== target.ownerDocument.body && !active.closest('[role=dialog],[role=alertdialog]')\n return movedByApp ? false : target\n }, [])\n return { capture: <OpenerCapture target={opener} />, finalFocus: finalFocus ?? restore }\n}\n\nexport { OverlayLayer, useInsideOverlayLayer, useOpenerFinalFocus }\n","\"use client\";\n\nimport { overlayAnatomyRecipes } from '../../lib/overlay-anatomy-recipes';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { portalClassName } from '../../lib/portal-recipes';\nimport { modalBackdropRecipe } from './overlay.recipes';\nimport { OverlayLayer, useInsideOverlayLayer, useOpenerFinalFocus } from './overlay-layer';\nimport { usePopupFocusRecovery } from '../../lib/use-popup-focus-recovery';\n\nimport { useThemePortalContainer, type ThemePortalContainer } from '../../lib/theme-scope';\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"./button\"\nimport { Slot } from \"./slot\"\nimport { cn } from \"../../lib/utils\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" modal=\"trap-focus\" {...props} />\n}\n\nfunction SheetTrigger({\n asChild = false,\n ...props\n}: SheetPrimitive.Trigger.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Trigger\n data-slot=\"sheet-trigger\"\n render={renderSlot}\n {...props}\n />\n )\n}\n\nfunction SheetClose({\n asChild = false,\n ...props\n}: SheetPrimitive.Close.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={renderSlot}\n {...props}\n />\n )\n}\n\nfunction SheetPortal({ container, className, ...props }: SheetPrimitive.Portal.Props) {\n const resolvedContainer = useThemePortalContainer(container)\n return <SheetPrimitive.Portal container={resolvedContainer} data-slot=\"sheet-portal\" className={portalClassName(className)} {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(modalBackdropRecipe, motionRecipes.backdrop, className)}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n container,\n children,\n side = \"right\",\n showCloseButton = true,\n forceRenderBackdrop = false,\n backdropClassName,\n onFocusCapture,\n finalFocus: finalFocusProp,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n /** @internal Render the native backdrop for an embedded sidebar root. */\n forceRenderBackdrop?: boolean\n /** @internal Position the existing native backdrop within a sidebar frame. */\n backdropClassName?: string\n} & { container?: ThemePortalContainer }) {\n const resolvedContainer = useThemePortalContainer(container)\n const recoverFocus = usePopupFocusRecovery(onFocusCapture)\n const insideOverlay = useInsideOverlayLayer()\n const { capture, finalFocus } = useOpenerFinalFocus(finalFocusProp)\n return (\n <SheetPortal container={resolvedContainer}>\n <SheetOverlay forceRender={forceRenderBackdrop || !insideOverlay} className={backdropClassName} />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n motionRecipes.drawer,\n \"border-border bg-background fixed z-50 flex flex-col gap-space-xl bg-clip-padding text-sm shadow-lg data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n finalFocus={finalFocus}\n onFocusCapture={recoverFocus}\n >\n {capture}\n <OverlayLayer>{children}</OverlayLayer>\n {!!showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n data-overlay-close=\"\"\n className={overlayAnatomyRecipes.close}\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({\n className,\n asChild = false,\n ...props\n}: SheetPrimitive.Title.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n render={renderSlot}\n className={cn(\"text-foreground font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n asChild = false,\n ...props\n}: SheetPrimitive.Description.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n render={renderSlot}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import { modalRegionRecipes, surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport { overlayAnatomyRecipes } from '../../../lib/overlay-anatomy-recipes';\nimport type { TextGap } from '../structure';\n/**\n * Sheet — internal edge-anchored modal anatomy behind `ActionDrawer` and the\n * mobile sidebar drawer.\n *\n * Applications use `ActionDrawer` from `themelia-react-ui/features/overlays`,\n * which owns the lifecycle, focus, dismissal and action contract; the\n * `themelia-react-ui/base/sheet` entrypoint remains only as a deprecated\n * compatibility surface. The panel shares the modal geometry of the internal\n * Dialog wrapper: header, scrolling body and footer each own their inset, one\n * rule separates adjacent visible regions, and one edge rule separates the\n * panel from the page.\n */\nimport * as React from 'react';\n\nimport {\n\tSheet as SheetPrimitive,\n\tSheetClose as SheetClosePrimitive,\n\tSheetContent as SheetContentPrimitive,\n\tSheetDescription as SheetDescriptionPrimitive,\n\tSheetFooter as SheetFooterPrimitive,\n\tSheetHeader as SheetHeaderPrimitive,\n\tSheetTitle as SheetTitlePrimitive,\n\tSheetTrigger as SheetTriggerPrimitive,\n} from '../../ui/sheet';\nimport { Text } from '../../typography';\nimport { textLineHeights, textSizes, textWeights } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Same title role as Dialog, set on the element so its line box matches the Text inside. */\nconst titleTypography = cn(textSizes.base, textWeights.semibold, textLineHeights.snug);\n\nexport const Sheet = SheetPrimitive;\n\nexport const SheetTrigger = React.forwardRef<\n\tReact.ElementRef<typeof SheetTriggerPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetTriggerPrimitive>\n>(function SheetTrigger({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetTriggerPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-trigger--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetTrigger.displayName = 'SheetTrigger';\n\nexport const SheetClose = React.forwardRef<\n\tReact.ElementRef<typeof SheetClosePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetClosePrimitive>\n>(function SheetClose({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetClosePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-close--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetClose.displayName = 'SheetClose';\n\nexport const SheetContent = React.forwardRef<\n\tReact.ElementRef<typeof SheetContentPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetContentPrimitive>\n>(function SheetContent({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetContentPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t// The shell is flush: each region owns its inset once and the rules\n\t\t\t\t// between regions run edge to edge. One rule marks the open edge.\n\t\t\t\t'sheet-content--component min-h-0 gap-0 overflow-hidden bg-popover p-0 text-popover-foreground',\n\t\t\t\tsurfaceDividerRecipes.modal.edge,\n\t\t\t\t'data-[side=top]:max-h-[85vh] data-[side=bottom]:max-h-[85vh]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetContent.displayName = 'SheetContent';\n\nexport const SheetHeader = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof SheetHeaderPrimitive> & { textGap?: TextGap }\n>(function SheetHeader({ className, textGap = 'normal', ...props }, ref) {\n\treturn (\n\t\t<SheetHeaderPrimitive\n\t\t\tref={ref}\n\t\t\tdata-modal-region=\"\"\n\t\t\tclassName={cn(\n\t\t\t\t'sheet-header--component', modalRegionRecipes.header,\n\t\t\t\toverlayAnatomyRecipes.header,\n\t\t\t\ttextGap === 'dense' ? 'gap-dense' : 'gap-normal',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetHeader.displayName = 'SheetHeader';\n\n/** Scroll-owning content region between the pinned sheet header and footer. */\nexport const SheetBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\tfunction SheetBody({ className, ...props }, ref) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"sheet-body\"\n\t\t\t\tdata-modal-region=\"\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'sheet-body--component', modalRegionRecipes.body,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nSheetBody.displayName = 'SheetBody';\n\nexport const SheetFooter = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof SheetFooterPrimitive>\n>(function SheetFooter({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetFooterPrimitive\n\t\t\tref={ref}\n\t\t\tdata-modal-region=\"\"\n\t\t\tclassName={cn(\n\t\t\t\t'sheet-footer--component mt-auto flex-row items-center justify-end', modalRegionRecipes.footer,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetFooter.displayName = 'SheetFooter';\n\nexport const SheetTitle = React.forwardRef<\n\tReact.ElementRef<typeof SheetTitlePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetTitlePrimitive>\n>(function SheetTitle({ children, className, ...props }, ref) {\n\treturn (\n\t\t<SheetTitlePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-title--component m-0 text-inherit', titleTypography, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\ttype=\"inherit\"\n\t\t\t\t\tsize=\"base\"\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tlineHeight=\"snug\"\n\t\t\t\t\tclassName=\"sheet-title--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</SheetTitlePrimitive>\n\t);\n});\n\nSheetTitle.displayName = 'SheetTitle';\n\nexport const SheetDescription = React.forwardRef<\n\tReact.ElementRef<typeof SheetDescriptionPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetDescriptionPrimitive>\n>(function SheetDescription({ children, className, ...props }, ref) {\n\treturn (\n\t\t<SheetDescriptionPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-description--component m-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tlineHeight=\"relaxed\"\n\t\t\t\t\tclassName=\"sheet-description--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</SheetDescriptionPrimitive>\n\t);\n});\n\nSheetDescription.displayName = 'SheetDescription';\n"],"mappings":"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"}
1
+ {"version":3,"file":"sheet-C4DHsgLk.js","names":["React","Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription","SheetPrimitive","React","SheetTriggerPrimitive","SheetClosePrimitive","SheetContentPrimitive","SheetHeaderPrimitive","SheetFooterPrimitive","SheetTitlePrimitive","SheetDescriptionPrimitive","useThemePortalContainer","affordanceGeometry","Text","textWeights","textLineHeights","textSizes","portalClassName","motionRecipes","Slot","Button","surfaceDividerRecipes","modalRegionRecipes","modalBackdropRecipe","usePopupFocusRecovery","React$1","overlayAnatomyRecipes","OverlayLayerContext","OverlayLayer","useInsideOverlayLayer","OpenerCapture","active","useOpenerFinalFocus","opener","restore","target","finalFocus","Sheet$1","props","Dialog","SheetTrigger$1","renderSlot","asChild","SheetClose$1","SheetPortal","resolvedContainer","container","className","SheetOverlay","cn","SheetContent$1","finalFocusProp","recoverFocus","onFocusCapture","insideOverlay","forceRenderBackdrop","backdropClassName","side","capture","showCloseButton","XIcon","SheetHeader$1","SheetFooter$1","SheetTitle$1","SheetDescription$1","isSimpleText","value","titleTypography","Sheet","SheetTrigger","SheetClose","SheetContent","SheetHeader","textGap","SheetBody","SheetFooter","SheetTitle","children","SheetDescription"],"sources":["../src/lib/overlay-anatomy-recipes.ts","../src/components/ui/overlay-layer.tsx","../src/components/ui/sheet.tsx","../src/components/base/sheet/sheet.tsx"],"sourcesContent":["import { affordanceGeometry } from './affordance-geometry.generated';\n/** Dismiss controls follow the surface's logical inset; headers reserve the\n * actual small-action width plus an action gap only when a close control exists.\n * These are derived recipes, not additional theme settings.\n */\nexport const overlayAnatomyRecipes = {\n\tclose: affordanceGeometry.overlayClose,\n\theader: affordanceGeometry.overlayHeader,\n\theaderCentered: affordanceGeometry.overlayHeaderCentered,\n} as const;\n","\"use client\";\n\nimport * as React from \"react\"\n\n/**\n * Whether a subtree renders inside another modal's popup. Base UI counts every\n * dialog below any Dialog root as nested and skips its backdrop, and the\n * AppSidebar drawer owner is a Dialog root around the whole application. The\n * scrim therefore follows this React-tree layer instead: a modal draws its own\n * backdrop unless it opens from inside another modal's content.\n */\nconst OverlayLayerContext = React.createContext(false)\n\nfunction OverlayLayer({ children }: { children?: React.ReactNode }) {\n return <OverlayLayerContext.Provider value={true}>{children}</OverlayLayerContext.Provider>\n}\n\nfunction useInsideOverlayLayer() {\n return React.useContext(OverlayLayerContext)\n}\n\ntype FinalFocus = boolean | React.RefObject<HTMLElement | null> | ((closeType: never) => boolean | HTMLElement | null | void)\n\n// Renders inside the popup, which mounts on each open, so it reads the element\n// that had focus before the popup moved it.\nfunction OpenerCapture({ target }: { target: React.RefObject<HTMLElement | null> }) {\n React.useState(() => {\n const active = typeof document === \"undefined\" ? null : document.activeElement\n target.current = active instanceof HTMLElement && active !== active.ownerDocument.body ? active : null\n return null\n })\n return null\n}\n\n/**\n * Returns focus to the element that opened the modal. Base UI returns it to the\n * nested parent instead, and under the sidebar drawer owner that parent is closed,\n * so focus fell to the body. Like the default, it leaves focus alone when the app\n * already moved it outside the popup (a confirm that focuses an editor). An\n * explicit `finalFocus` still wins.\n */\nfunction useOpenerFinalFocus<T extends FinalFocus | undefined>(finalFocus: T) {\n const opener = React.useRef<HTMLElement | null>(null)\n const restore = React.useCallback(() => {\n const target = opener.current\n if (!target?.isConnected) return true\n const active = target.ownerDocument.activeElement\n const movedByApp = active instanceof HTMLElement && active !== target.ownerDocument.body && !active.closest('[role=dialog],[role=alertdialog]')\n return movedByApp ? false : target\n }, [])\n return { capture: <OpenerCapture target={opener} />, finalFocus: finalFocus ?? restore }\n}\n\nexport { OverlayLayer, useInsideOverlayLayer, useOpenerFinalFocus }\n","\"use client\";\n\nimport { overlayAnatomyRecipes } from '../../lib/overlay-anatomy-recipes';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { portalClassName } from '../../lib/portal-recipes';\nimport { modalBackdropRecipe } from './overlay.recipes';\nimport { OverlayLayer, useInsideOverlayLayer, useOpenerFinalFocus } from './overlay-layer';\nimport { usePopupFocusRecovery } from '../../lib/use-popup-focus-recovery';\n\nimport { useThemePortalContainer, type ThemePortalContainer } from '../../lib/theme-scope';\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"./button\"\nimport { Slot } from \"./slot\"\nimport { cn } from \"../../lib/utils\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" modal=\"trap-focus\" {...props} />\n}\n\nfunction SheetTrigger({\n asChild = false,\n ...props\n}: SheetPrimitive.Trigger.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Trigger\n data-slot=\"sheet-trigger\"\n render={renderSlot}\n {...props}\n />\n )\n}\n\nfunction SheetClose({\n asChild = false,\n ...props\n}: SheetPrimitive.Close.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={renderSlot}\n {...props}\n />\n )\n}\n\nfunction SheetPortal({ container, className, ...props }: SheetPrimitive.Portal.Props) {\n const resolvedContainer = useThemePortalContainer(container)\n return <SheetPrimitive.Portal container={resolvedContainer} data-slot=\"sheet-portal\" className={portalClassName(className)} {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(modalBackdropRecipe, motionRecipes.backdrop, className)}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n container,\n children,\n side = \"right\",\n showCloseButton = true,\n forceRenderBackdrop = false,\n backdropClassName,\n onFocusCapture,\n finalFocus: finalFocusProp,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n /** @internal Render the native backdrop for an embedded sidebar root. */\n forceRenderBackdrop?: boolean\n /** @internal Position the existing native backdrop within a sidebar frame. */\n backdropClassName?: string\n} & { container?: ThemePortalContainer }) {\n const resolvedContainer = useThemePortalContainer(container)\n const recoverFocus = usePopupFocusRecovery(onFocusCapture)\n const insideOverlay = useInsideOverlayLayer()\n const { capture, finalFocus } = useOpenerFinalFocus(finalFocusProp)\n return (\n <SheetPortal container={resolvedContainer}>\n <SheetOverlay forceRender={forceRenderBackdrop || !insideOverlay} className={backdropClassName} />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n motionRecipes.drawer,\n \"border-border bg-background fixed z-50 flex flex-col gap-space-xl bg-clip-padding text-sm shadow-lg data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n finalFocus={finalFocus}\n onFocusCapture={recoverFocus}\n >\n {capture}\n <OverlayLayer>{children}</OverlayLayer>\n {!!showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n data-overlay-close=\"\"\n className={overlayAnatomyRecipes.close}\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({\n className,\n asChild = false,\n ...props\n}: SheetPrimitive.Title.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n render={renderSlot}\n className={cn(\"text-foreground font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n asChild = false,\n ...props\n}: SheetPrimitive.Description.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n render={renderSlot}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import { modalRegionRecipes, surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport { overlayAnatomyRecipes } from '../../../lib/overlay-anatomy-recipes';\nimport type { TextGap } from '../structure';\n/**\n * Sheet — internal edge-anchored modal anatomy behind `ActionDrawer` and the\n * mobile sidebar drawer.\n *\n * Applications use `ActionDrawer` from `themelia-react-ui/features/overlays`,\n * which owns the lifecycle, focus, dismissal and action contract; the\n * `themelia-react-ui/base/sheet` entrypoint remains only as a deprecated\n * compatibility surface. The panel shares the modal geometry of the internal\n * Dialog wrapper: header, scrolling body and footer each own their inset, one\n * rule separates adjacent visible regions, and one edge rule separates the\n * panel from the page.\n */\nimport * as React from 'react';\n\nimport {\n\tSheet as SheetPrimitive,\n\tSheetClose as SheetClosePrimitive,\n\tSheetContent as SheetContentPrimitive,\n\tSheetDescription as SheetDescriptionPrimitive,\n\tSheetFooter as SheetFooterPrimitive,\n\tSheetHeader as SheetHeaderPrimitive,\n\tSheetTitle as SheetTitlePrimitive,\n\tSheetTrigger as SheetTriggerPrimitive,\n} from '../../ui/sheet';\nimport { Text } from '../../typography';\nimport { textLineHeights, textSizes, textWeights } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Same title role as Dialog, set on the element so its line box matches the Text inside. */\nconst titleTypography = cn(textSizes.base, textWeights.semibold, textLineHeights.snug);\n\nexport const Sheet = SheetPrimitive;\n\nexport const SheetTrigger = React.forwardRef<\n\tReact.ElementRef<typeof SheetTriggerPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetTriggerPrimitive>\n>(function SheetTrigger({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetTriggerPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-trigger--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetTrigger.displayName = 'SheetTrigger';\n\nexport const SheetClose = React.forwardRef<\n\tReact.ElementRef<typeof SheetClosePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetClosePrimitive>\n>(function SheetClose({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetClosePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-close--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetClose.displayName = 'SheetClose';\n\nexport const SheetContent = React.forwardRef<\n\tReact.ElementRef<typeof SheetContentPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetContentPrimitive>\n>(function SheetContent({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetContentPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t// The shell is flush: each region owns its inset once and the rules\n\t\t\t\t// between regions run edge to edge. One rule marks the open edge.\n\t\t\t\t'sheet-content--component min-h-0 gap-0 overflow-hidden bg-popover p-0 text-popover-foreground',\n\t\t\t\tsurfaceDividerRecipes.modal.edge,\n\t\t\t\t'data-[side=top]:max-h-[85vh] data-[side=bottom]:max-h-[85vh]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetContent.displayName = 'SheetContent';\n\nexport const SheetHeader = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof SheetHeaderPrimitive> & { textGap?: TextGap }\n>(function SheetHeader({ className, textGap = 'normal', ...props }, ref) {\n\treturn (\n\t\t<SheetHeaderPrimitive\n\t\t\tref={ref}\n\t\t\tdata-modal-region=\"\"\n\t\t\tclassName={cn(\n\t\t\t\t'sheet-header--component', modalRegionRecipes.header,\n\t\t\t\toverlayAnatomyRecipes.header,\n\t\t\t\ttextGap === 'dense' ? 'gap-dense' : 'gap-normal',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetHeader.displayName = 'SheetHeader';\n\n/** Scroll-owning content region between the pinned sheet header and footer. */\nexport const SheetBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\tfunction SheetBody({ className, ...props }, ref) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"sheet-body\"\n\t\t\t\tdata-modal-region=\"\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'sheet-body--component', modalRegionRecipes.body,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nSheetBody.displayName = 'SheetBody';\n\nexport const SheetFooter = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof SheetFooterPrimitive>\n>(function SheetFooter({ className, ...props }, ref) {\n\treturn (\n\t\t<SheetFooterPrimitive\n\t\t\tref={ref}\n\t\t\tdata-modal-region=\"\"\n\t\t\tclassName={cn(\n\t\t\t\t'sheet-footer--component mt-auto flex-row items-center justify-end', modalRegionRecipes.footer,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSheetFooter.displayName = 'SheetFooter';\n\nexport const SheetTitle = React.forwardRef<\n\tReact.ElementRef<typeof SheetTitlePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetTitlePrimitive>\n>(function SheetTitle({ children, className, ...props }, ref) {\n\treturn (\n\t\t<SheetTitlePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-title--component m-0 text-inherit', titleTypography, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\ttype=\"inherit\"\n\t\t\t\t\tsize=\"base\"\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tlineHeight=\"snug\"\n\t\t\t\t\tclassName=\"sheet-title--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</SheetTitlePrimitive>\n\t);\n});\n\nSheetTitle.displayName = 'SheetTitle';\n\nexport const SheetDescription = React.forwardRef<\n\tReact.ElementRef<typeof SheetDescriptionPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof SheetDescriptionPrimitive>\n>(function SheetDescription({ children, className, ...props }, ref) {\n\treturn (\n\t\t<SheetDescriptionPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('sheet-description--component m-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tlineHeight=\"relaxed\"\n\t\t\t\t\tclassName=\"sheet-description--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</SheetDescriptionPrimitive>\n\t);\n});\n\nSheetDescription.displayName = 'SheetDescription';\n"],"mappings":"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"}