themelia-react-ui 2.0.4 → 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 (715) hide show
  1. package/CHANGELOG.md +211 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +122 -20
  4. package/dist/{accordion-96o0pN62.js → accordion-0tQUZ20r.js} +13 -13
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-CHgs8vmj.js → action-menu-C0gjzLyE.js} +48 -45
  7. package/dist/action-menu-C0gjzLyE.js.map +1 -0
  8. package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
  9. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  10. package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-CGGpQryR.js} +281 -230
  11. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  12. package/dist/app-shell-EHuuRDGy.js +321 -0
  13. package/dist/app-shell-EHuuRDGy.js.map +1 -0
  14. package/dist/{attachment-DkoqHPPl.js → attachment-BCpA4e7i.js} +10 -10
  15. package/dist/{attachment-DkoqHPPl.js.map → attachment-BCpA4e7i.js.map} +1 -1
  16. package/dist/{auth-D2FVZ1MH.js → auth-B0girIk_.js} +49 -52
  17. package/dist/auth-B0girIk_.js.map +1 -0
  18. package/dist/{avatar-DWO_HHhB.js → avatar-B9Jnp-T-.js} +8 -8
  19. package/dist/avatar-B9Jnp-T-.js.map +1 -0
  20. package/dist/{badge-DErMA7ul.js → badge-wWauMgAt.js} +5 -5
  21. package/dist/{badge-DErMA7ul.js.map → badge-wWauMgAt.js.map} +1 -1
  22. package/dist/base/accordion.js +1 -1
  23. package/dist/base/action-menu.js +1 -1
  24. package/dist/base/attachment.js +1 -1
  25. package/dist/base/avatar.js +1 -1
  26. package/dist/base/badge.js +1 -1
  27. package/dist/base/batch-action-bar.js +1 -1
  28. package/dist/base/buttons.js +1 -1
  29. package/dist/base/cards.js +2 -2
  30. package/dist/base/carousel.js +3 -3
  31. package/dist/base/cascader.js +2 -372
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +2 -2
  34. package/dist/base/code-block.js +1 -1
  35. package/dist/base/combobox.js +2 -2
  36. package/dist/base/command.js +1 -1
  37. package/dist/base/copyable.js +1 -1
  38. package/dist/base/date-pickers.js +2 -2
  39. package/dist/base/display.js +6 -6
  40. package/dist/base/feedback.js +4 -4
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +10 -10
  44. package/dist/base/item.js +1 -1
  45. package/dist/base/media-gallery.js +1 -1
  46. package/dist/base/metadata-list.js +1 -1
  47. package/dist/base/navigation.js +7 -7
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +1 -1
  51. package/dist/base/repeaters.js +200 -193
  52. package/dist/base/repeaters.js.map +1 -1
  53. package/dist/base/sheet.js +1 -1
  54. package/dist/base/sidebar.js +2 -2
  55. package/dist/base/signature-pad.js +8 -8
  56. package/dist/base/signature-pad.js.map +1 -1
  57. package/dist/base/skeleton.js +1 -1
  58. package/dist/base/spinner.js +6 -6
  59. package/dist/base/spinner.js.map +1 -1
  60. package/dist/base/structure.js +1 -1
  61. package/dist/base/table.js +1 -1
  62. package/dist/base/text-inputs.js +2 -2
  63. package/dist/base/toaster.js +36 -36
  64. package/dist/base/toaster.js.map +1 -1
  65. package/dist/base/tree.js +1 -1
  66. package/dist/base/upload-queue.js +1 -1
  67. package/dist/base/upload.js +3 -3
  68. package/dist/base/value-inputs.js +1 -1
  69. package/dist/{batch-action-bar-CdfIkCsV.js → batch-action-bar-BoqWIIpV.js} +7 -7
  70. package/dist/batch-action-bar-BoqWIIpV.js.map +1 -0
  71. package/dist/blocks/admin.js +21 -21
  72. package/dist/blocks/admin.js.map +1 -1
  73. package/dist/blocks/ai.js +267 -247
  74. package/dist/blocks/ai.js.map +1 -1
  75. package/dist/blocks/analytics/usage-card.js +1 -1
  76. package/dist/blocks/analytics.js +537 -543
  77. package/dist/blocks/analytics.js.map +1 -1
  78. package/dist/blocks/collaboration.js +1 -1
  79. package/dist/blocks/commerce/receipt.js +1 -1
  80. package/dist/blocks/commerce.js +1330 -1250
  81. package/dist/blocks/commerce.js.map +1 -1
  82. package/dist/blocks/data-display.js +2 -2
  83. package/dist/blocks/onboarding.js +6 -6
  84. package/dist/blocks/onboarding.js.map +1 -1
  85. package/dist/blocks/planning.js +11 -11
  86. package/dist/blocks/timelines.js +1 -1
  87. package/dist/{breadcrumbs-B-WFKecD.js → breadcrumbs-Bp9Ke7kd.js} +7 -7
  88. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  89. package/dist/{button-DkmK-z8E.js → button-ChBovTx0.js} +3 -3
  90. package/dist/button-ChBovTx0.js.map +1 -0
  91. package/dist/{buttons-BbfzgczK.js → buttons-DeW0bQeK.js} +16 -16
  92. package/dist/buttons-DeW0bQeK.js.map +1 -0
  93. package/dist/cards-CNXnmvV5.js +69 -0
  94. package/dist/cards-CNXnmvV5.js.map +1 -0
  95. package/dist/cascader-CrAl9zD5.js +439 -0
  96. package/dist/cascader-CrAl9zD5.js.map +1 -0
  97. package/dist/chart-I7ROnsl8.js +162 -0
  98. package/dist/chart-I7ROnsl8.js.map +1 -0
  99. package/dist/{checkbox-CzYUTPeJ.js → checkbox-MoyHIAPs.js} +3 -3
  100. package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  101. package/dist/choice-inputs-DHGtx0QV.js +789 -0
  102. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  103. package/dist/{code-block-CGNaUtAE.js → code-block-BSJyq9e-.js} +9 -9
  104. package/dist/code-block-BSJyq9e-.js.map +1 -0
  105. package/dist/{collapsible-Do4G0zcC.js → collapsible-BzJ91LUG.js} +5 -5
  106. package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  107. package/dist/{collection-content-C0e8SsTm.js → collection-content-CSnwtOTH.js} +3 -3
  108. package/dist/{collection-content-C0e8SsTm.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  109. package/dist/combobox-Bcvu5J8O.js +363 -0
  110. package/dist/combobox-Bcvu5J8O.js.map +1 -0
  111. package/dist/combobox-C2JiSQPc.js +915 -0
  112. package/dist/combobox-C2JiSQPc.js.map +1 -0
  113. package/dist/{command-D8NrBj-b.js → command-9e52NPgK.js} +11 -11
  114. package/dist/command-9e52NPgK.js.map +1 -0
  115. package/dist/{comments-Di4w0H_S.js → comments-BsgErEqd.js} +44 -39
  116. package/dist/comments-BsgErEqd.js.map +1 -0
  117. package/dist/components/base/action-menu/action-menu.d.ts +7 -1
  118. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  119. package/dist/components/base/cards/card.recipes.d.ts +6 -4
  120. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  121. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  122. package/dist/components/base/cards/smart-card.types.d.ts +3 -4
  123. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  124. package/dist/components/base/chart/chart.d.ts +6 -1
  125. package/dist/components/base/choice-inputs/choice-types.d.ts +5 -1
  126. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  127. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  128. package/dist/components/base/combobox/index.d.ts +4 -2
  129. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  130. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  131. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  132. package/dist/components/base/feedback/alert.d.ts +1 -1
  133. package/dist/components/base/feedback/state-display.d.ts +5 -1
  134. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  135. package/dist/components/base/forms/form-field.d.ts +7 -2
  136. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  137. package/dist/components/base/forms/workflow.d.ts +7 -1
  138. package/dist/components/base/forms-numeric/coordinates-input.d.ts +8 -1
  139. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  140. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  141. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  142. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  143. package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
  144. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  145. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  146. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  147. package/dist/components/base/navigation/page-header/page-header.d.ts +10 -3
  148. package/dist/components/base/popover/popover.d.ts +3 -3
  149. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  150. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  151. package/dist/components/base/sheet/sheet.d.ts +2 -0
  152. package/dist/components/base/sidebar/index.d.ts +1 -1
  153. package/dist/components/base/sidebar/sidebar.d.ts +29 -5
  154. package/dist/components/base/toaster/index.d.ts +1 -0
  155. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  156. package/dist/components/base/upload/image-upload.d.ts +2 -1
  157. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  158. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  159. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  160. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  161. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +5 -1
  162. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  163. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  164. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +4 -0
  165. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  166. package/dist/components/blocks/analytics/types.d.ts +2 -2
  167. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  168. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  169. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  170. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  171. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  172. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  173. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  174. package/dist/components/blocks/commerce/index.d.ts +7 -6
  175. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  176. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  177. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  178. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  179. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  180. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  181. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  182. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  183. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  184. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  185. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  186. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  187. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  188. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  189. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  190. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  191. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  192. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  193. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  194. package/dist/components/features/activities/activities.types.d.ts +26 -13
  195. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  196. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  197. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  198. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  199. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  200. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  201. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  202. package/dist/components/features/combobox/combobox.d.ts +2 -2
  203. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  204. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  205. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  206. package/dist/components/features/combobox/types.d.ts +37 -8
  207. package/dist/components/features/email-composer/types.d.ts +3 -1
  208. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  209. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  210. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  211. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  212. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  213. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  214. package/dist/components/features/filters/filters.types.d.ts +6 -3
  215. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  216. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  217. package/dist/components/features/filters/partials/filter-popover-content.d.ts +5 -3
  218. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  219. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  220. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  221. package/dist/components/features/filters/utils/filter-utils.d.ts +25 -3
  222. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  223. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  224. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  225. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  226. package/dist/components/features/media-library/media-library.d.ts +1 -1
  227. package/dist/components/features/media-library/media-library.strings.d.ts +8 -0
  228. package/dist/components/features/media-library/media-library.types.d.ts +50 -12
  229. package/dist/components/features/media-library/partials/media-library-partials.d.ts +4 -4
  230. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  231. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  232. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  233. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  234. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  235. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  236. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  237. package/dist/components/features/products/products.strings.d.ts +9 -1
  238. package/dist/components/features/products/products.types.d.ts +45 -8
  239. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  240. package/dist/components/features/resource/resource.d.ts +6 -2
  241. package/dist/components/features/resource/resource.types.d.ts +14 -1
  242. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  243. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  244. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  245. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  246. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  247. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  248. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  249. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  250. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  251. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  252. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  253. package/dist/components/features/table/data-table.d.ts +1 -1
  254. package/dist/components/features/table/index.d.ts +1 -0
  255. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  256. package/dist/components/features/table/table-body.d.ts +1 -1
  257. package/dist/components/features/table/table-helpers.d.ts +6 -3
  258. package/dist/components/features/table/table.strings.d.ts +3 -0
  259. package/dist/components/features/table/table.types.d.ts +18 -2
  260. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  261. package/dist/components/layout/app-shell/index.d.ts +1 -1
  262. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  263. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  264. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  265. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  266. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  267. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  268. package/dist/components/layout/header/header.types.d.ts +9 -8
  269. package/dist/components/layout/layout.types.d.ts +5 -3
  270. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  271. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  272. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  273. package/dist/components/layout/page/index.d.ts +2 -1
  274. package/dist/components/layout/page/page.d.ts +1 -0
  275. package/dist/components/layout/page/page.strings.d.ts +11 -0
  276. package/dist/components/layout/page/page.types.d.ts +69 -17
  277. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  278. package/dist/components/layout/settings/settings.d.ts +10 -3
  279. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  280. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  281. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  282. package/dist/components/layout/sidebar/index.d.ts +2 -1
  283. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +38 -0
  284. package/dist/components/layout/sidebar/sidebar.context.d.ts +6 -7
  285. package/dist/components/layout/sidebar/sidebar.types.d.ts +50 -10
  286. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  287. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  288. package/dist/components/primitives/link.d.ts +3 -2
  289. package/dist/components/primitives/money.d.ts +1 -1
  290. package/dist/components/primitives/number.d.ts +1 -1
  291. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  292. package/dist/components/ui/alert-dialog.d.ts +2 -2
  293. package/dist/components/ui/combobox.d.ts +1 -1
  294. package/dist/components/ui/dialog.d.ts +2 -2
  295. package/dist/components/ui/overlay-layer.d.ts +18 -0
  296. package/dist/components/ui/sheet.d.ts +5 -1
  297. package/dist/components/ui/sidebar-state.d.ts +82 -0
  298. package/dist/components/ui/sidebar.d.ts +5 -17
  299. package/dist/{containers-CRmHf7GP.js → containers-CSdc32h9.js} +26 -18
  300. package/dist/containers-CSdc32h9.js.map +1 -0
  301. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  302. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  303. package/dist/{copyable-CnGCZdX4.js → copyable-3fdHfMR3.js} +7 -7
  304. package/dist/{copyable-CnGCZdX4.js.map → copyable-3fdHfMR3.js.map} +1 -1
  305. package/dist/{data-display-D4oujtx0.js → data-display-Cmj-xZYl.js} +271 -279
  306. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  307. package/dist/{date-Q7jnXxpk.js → date-Br0FicVv.js} +5 -5
  308. package/dist/{date-Q7jnXxpk.js.map → date-Br0FicVv.js.map} +1 -1
  309. package/dist/date-picker-CyQlFYsP.js +1617 -0
  310. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  311. package/dist/date-pickers-tj2MXmXd.js +185 -0
  312. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  313. package/dist/{display-BB4BL_-K.js → display-CT_N2a3w.js} +9 -9
  314. package/dist/{display-BB4BL_-K.js.map → display-CT_N2a3w.js.map} +1 -1
  315. package/dist/dropdown-menu-C08iIugv.js +194 -0
  316. package/dist/dropdown-menu-C08iIugv.js.map +1 -0
  317. package/dist/features/activities.js +388 -326
  318. package/dist/features/activities.js.map +1 -1
  319. package/dist/features/ai-chat.js +46 -32
  320. package/dist/features/ai-chat.js.map +1 -1
  321. package/dist/features/appointment-calendar.js +130 -130
  322. package/dist/features/appointment-calendar.js.map +1 -1
  323. package/dist/features/async-preview.js +11 -10
  324. package/dist/features/async-preview.js.map +1 -1
  325. package/dist/features/combobox.js +1 -1
  326. package/dist/features/comments.js +1 -1
  327. package/dist/features/data-view.js +13 -13
  328. package/dist/features/data-view.js.map +1 -1
  329. package/dist/features/email-composer.js +243 -239
  330. package/dist/features/email-composer.js.map +1 -1
  331. package/dist/features/event-calendar.js +197 -199
  332. package/dist/features/event-calendar.js.map +1 -1
  333. package/dist/features/filters.js +2 -2
  334. package/dist/features/global-search.js +168 -143
  335. package/dist/features/global-search.js.map +1 -1
  336. package/dist/features/kanban.js +19 -30
  337. package/dist/features/kanban.js.map +1 -1
  338. package/dist/features/map/style.css +15 -0
  339. package/dist/features/map.js +369 -343
  340. package/dist/features/map.js.map +1 -1
  341. package/dist/features/media-library.js +1202 -975
  342. package/dist/features/media-library.js.map +1 -1
  343. package/dist/features/mentions.js +2 -2
  344. package/dist/features/overlays.js +1 -1
  345. package/dist/features/products.js +1270 -1183
  346. package/dist/features/products.js.map +1 -1
  347. package/dist/features/questionnaire.js +160 -153
  348. package/dist/features/questionnaire.js.map +1 -1
  349. package/dist/features/resource-assignment.js +8 -8
  350. package/dist/features/resource.js +119 -113
  351. package/dist/features/resource.js.map +1 -1
  352. package/dist/features/rich-text-editor.js +28 -19
  353. package/dist/features/rich-text-editor.js.map +1 -1
  354. package/dist/features/schema-form.js +297 -256
  355. package/dist/features/schema-form.js.map +1 -1
  356. package/dist/features/suggestions.js +57 -50
  357. package/dist/features/suggestions.js.map +1 -1
  358. package/dist/features/sync.js +3 -3
  359. package/dist/features/table.js +1 -1
  360. package/dist/features/theme-tweaker.js +470 -470
  361. package/dist/features/theme-tweaker.js.map +1 -1
  362. package/dist/feedback-Dzo1xtAU.js +246 -0
  363. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  364. package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-D6H7tVJi.js} +5 -5
  365. package/dist/field-affordance-recipes-D6H7tVJi.js.map +1 -0
  366. package/dist/field-control-attributes-B6i335wr.js +18 -0
  367. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  368. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  369. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  370. package/dist/filters-Dl80yYtN.js +2415 -0
  371. package/dist/filters-Dl80yYtN.js.map +1 -0
  372. package/dist/form-field-CAPdwdnZ.js +74 -0
  373. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  374. package/dist/{form-sizing-NXgjkmBG.js → form-sizing-CgcrUbLU.js} +5 -5
  375. package/dist/form-sizing-CgcrUbLU.js.map +1 -0
  376. package/dist/{forms-BV5m5aQF.js → forms-B3W8CH7-.js} +17 -13
  377. package/dist/forms-B3W8CH7-.js.map +1 -0
  378. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  379. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  380. package/dist/{header-BA697l4a.js → header-ZIIsRKxP.js} +145 -141
  381. package/dist/header-ZIIsRKxP.js.map +1 -0
  382. package/dist/header.recipes-BigdJjw1.js +6 -0
  383. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  384. package/dist/hooks/use-files.d.ts +2 -0
  385. package/dist/{hooks-BQ-L7Uu2.js → hooks-BitHSh-Y.js} +27 -15
  386. package/dist/hooks-BitHSh-Y.js.map +1 -0
  387. package/dist/{icon-badge-COWbCCWu.js → icon-badge-npxF1SLX.js} +4 -4
  388. package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  389. package/dist/index.js +4 -5
  390. package/dist/{input-Cdw4k0fb.js → input-7KAc7XQL.js} +9 -9
  391. package/dist/{input-Cdw4k0fb.js.map → input-7KAc7XQL.js.map} +1 -1
  392. package/dist/input-DIREVYHs.js +21 -0
  393. package/dist/input-DIREVYHs.js.map +1 -0
  394. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  395. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  396. package/dist/item-FfWnaYST.js +278 -0
  397. package/dist/item-FfWnaYST.js.map +1 -0
  398. package/dist/layout/app-shell.js +1 -1
  399. package/dist/layout/auth.js +1 -1
  400. package/dist/layout/containers.js +1 -1
  401. package/dist/layout/header.js +1 -1
  402. package/dist/layout/hooks.js +1 -1
  403. package/dist/layout/navigation.js +1 -1
  404. package/dist/layout/page.js +2 -2
  405. package/dist/layout/settings.js +1 -1
  406. package/dist/layout/sidebar.js +3 -3
  407. package/dist/layout/workspace.js +1 -1
  408. package/dist/layout.js +12 -12
  409. package/dist/layout.types-E_GAApzO.js +30 -0
  410. package/dist/layout.types-E_GAApzO.js.map +1 -0
  411. package/dist/lib/affordance-geometry.generated.d.ts +35 -35
  412. package/dist/lib/control-group-recipes.d.ts +5 -5
  413. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  414. package/dist/lib/field-control-attributes.d.ts +11 -0
  415. package/dist/lib/field-state-recipes.d.ts +2 -0
  416. package/dist/lib/format.d.ts +1 -0
  417. package/dist/lib/motion-recipes.d.ts +3 -0
  418. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  419. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  420. package/dist/lib/portal-recipes.d.ts +3 -0
  421. package/dist/lib/surface-recipes.d.ts +1 -1
  422. package/dist/lib/token-merge.generated.d.ts +18 -15
  423. package/dist/lib/utils.js +1 -1
  424. package/dist/map-demo-tile.svg +1 -1
  425. package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C81DAnKI.js} +6 -6
  426. package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  427. package/dist/{mentions-RKOQaaIB.js → mentions-qOnedSt4.js} +237 -168
  428. package/dist/mentions-qOnedSt4.js.map +1 -0
  429. package/dist/message-BJHnn43M.js +135 -0
  430. package/dist/message-BJHnn43M.js.map +1 -0
  431. package/dist/{metadata-list-qVV7AVxa.js → metadata-list-XkqZ_UXH.js} +64 -64
  432. package/dist/metadata-list-XkqZ_UXH.js.map +1 -0
  433. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  434. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  435. package/dist/navigation-BgtPJAhi.js +288 -0
  436. package/dist/navigation-BgtPJAhi.js.map +1 -0
  437. package/dist/navigation-Bt-v7rWP.js +261 -0
  438. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  439. package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  440. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  441. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  442. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  443. package/dist/{number-E_OiIfJz.js → number-CYqBcrSj.js} +79 -87
  444. package/dist/number-CYqBcrSj.js.map +1 -0
  445. package/dist/overflow-tab-bar-BQCA2Zn2.js +172 -0
  446. package/dist/overflow-tab-bar-BQCA2Zn2.js.map +1 -0
  447. package/dist/overlays-CC8zI3Du.js +1017 -0
  448. package/dist/overlays-CC8zI3Du.js.map +1 -0
  449. package/dist/page-BoQ1VaFJ.js +331 -0
  450. package/dist/page-BoQ1VaFJ.js.map +1 -0
  451. package/dist/page-header-commands-DIKspJfx.js +193 -0
  452. package/dist/page-header-commands-DIKspJfx.js.map +1 -0
  453. package/dist/{pagination-Ch8X_47u.js → pagination-Br8TdV9A.js} +7 -7
  454. package/dist/{pagination-Ch8X_47u.js.map → pagination-Br8TdV9A.js.map} +1 -1
  455. package/dist/popover-k8TdUcAt.js +201 -0
  456. package/dist/popover-k8TdUcAt.js.map +1 -0
  457. package/dist/{popover-menu-BYaCdFhf.js → popover-menu-yn-o0kyA.js} +7 -7
  458. package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  459. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DJ0AkUan.js} +19 -12
  460. package/dist/popover.recipes-DJ0AkUan.js.map +1 -0
  461. package/dist/portal-recipes-DyUXqUtD.js +9 -0
  462. package/dist/portal-recipes-DyUXqUtD.js.map +1 -0
  463. package/dist/{primitives-Du64iDbb.js → primitives-BkkQjYl7.js} +23 -18
  464. package/dist/primitives-BkkQjYl7.js.map +1 -0
  465. package/dist/primitives.js +4 -4
  466. package/dist/{progress-BvF2oCdV.js → progress-DZFXXzPs.js} +9 -9
  467. package/dist/{progress-BvF2oCdV.js.map → progress-DZFXXzPs.js.map} +1 -1
  468. package/dist/{receipt-D789Jwyy.js → receipt-C7LhOg7Q.js} +7 -7
  469. package/dist/receipt-C7LhOg7Q.js.map +1 -0
  470. package/dist/rich-text-BnTzZjIo.js +45 -0
  471. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  472. package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-CAurDwT5.js} +501 -424
  473. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  474. package/dist/rich-text-editor-toolbar-DbXig7Jk.js +99 -0
  475. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  476. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  477. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  478. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  479. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  480. package/dist/{scroll-area-La5RXsEk.js → scroll-area-Bj6CRUif.js} +2 -2
  481. package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  482. package/dist/{separator-DAEV0w65.js → separator-B9ewiCGO.js} +2 -2
  483. package/dist/{separator-DAEV0w65.js.map → separator-B9ewiCGO.js.map} +1 -1
  484. package/dist/{separator-GNfPG-90.js → separator-DM6gs2vu.js} +3 -3
  485. package/dist/{separator-GNfPG-90.js.map → separator-DM6gs2vu.js.map} +1 -1
  486. package/dist/services/actions.js +1 -1
  487. package/dist/settings-DZPHgpx4.js +155 -0
  488. package/dist/settings-DZPHgpx4.js.map +1 -0
  489. package/dist/sheet-C4DHsgLk.js +250 -0
  490. package/dist/sheet-C4DHsgLk.js.map +1 -0
  491. package/dist/sidebar-C8BnDwTH.js +709 -0
  492. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  493. package/dist/sidebar-CmD6a-HK.js +1004 -0
  494. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  495. package/dist/skeleton-DDgdhmu9.js +265 -0
  496. package/dist/skeleton-DDgdhmu9.js.map +1 -0
  497. package/dist/smart-card-B6vLxqa_.js +617 -0
  498. package/dist/smart-card-B6vLxqa_.js.map +1 -0
  499. package/dist/{structure-C0V0_Fyf.js → structure-DZJ2wbAU.js} +2 -2
  500. package/dist/{structure-C0V0_Fyf.js.map → structure-DZJ2wbAU.js.map} +1 -1
  501. package/dist/style.css +1 -1
  502. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  503. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  504. package/dist/{table-DH7rozUv.js → table-CBonSdTp.js} +573 -519
  505. package/dist/table-CBonSdTp.js.map +1 -0
  506. package/dist/{table-CpvnzJn9.js → table-CXSPHH25.js} +75 -71
  507. package/dist/table-CXSPHH25.js.map +1 -0
  508. package/dist/tabs-C4Kr_hCr.js +192 -0
  509. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  510. package/dist/{text-inputs-DXItiR0O.js → text-inputs-jdkS3ReG.js} +18 -18
  511. package/dist/text-inputs-jdkS3ReG.js.map +1 -0
  512. package/dist/theme.css +40 -37
  513. package/dist/{timelines-DmtztAY_.js → timelines-CoPwdJP0.js} +13 -12
  514. package/dist/timelines-CoPwdJP0.js.map +1 -0
  515. package/dist/tooltip-31NwIpTo.js +113 -0
  516. package/dist/tooltip-31NwIpTo.js.map +1 -0
  517. package/dist/{tree-CV11PURP.js → tree-CeYVzdFE.js} +9 -9
  518. package/dist/{tree-CV11PURP.js.map → tree-CeYVzdFE.js.map} +1 -1
  519. package/dist/typography/rich-text.js +1 -1
  520. package/dist/{typography-CSyJrh28.js → typography-C7-YMW1S.js} +12 -12
  521. package/dist/{typography-CSyJrh28.js.map → typography-C7-YMW1S.js.map} +1 -1
  522. package/dist/typography.js +1 -1
  523. package/dist/ui-provider-C-74NVLc.js +178 -0
  524. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  525. package/dist/ui-provider.js +2 -3
  526. package/dist/{upload-C9SA0X-8.js → upload-Hdm5gObf.js} +309 -296
  527. package/dist/upload-Hdm5gObf.js.map +1 -0
  528. package/dist/{upload-queue-DhQJiSRc.js → upload-queue-D0sYPuqo.js} +16 -14
  529. package/dist/upload-queue-D0sYPuqo.js.map +1 -0
  530. package/dist/{usage-card-DVTRDmGz.js → usage-card-9s8hLDfn.js} +24 -17
  531. package/dist/usage-card-9s8hLDfn.js.map +1 -0
  532. package/dist/{utils-CF3c95Io.js → utils-DhuoqFy4.js} +255 -165
  533. package/dist/utils-DhuoqFy4.js.map +1 -0
  534. package/dist/value-inputs-D3aPgq9H.js +980 -0
  535. package/dist/value-inputs-D3aPgq9H.js.map +1 -0
  536. package/dist/{value-typography-ClupF0Gz.js → value-typography-uSzzG9Gf.js} +32 -26
  537. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  538. package/dist/{workspace-9EFVXUyk.js → workspace-CC8Vchiu.js} +51 -50
  539. package/dist/workspace-CC8Vchiu.js.map +1 -0
  540. package/docs/consumer-skill/SKILL.md +4 -3
  541. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  542. package/docs/consumer-skill/examples/app-layout.tsx +52 -1
  543. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  544. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  545. package/docs/consumer-skill/examples/detail.tsx +5 -4
  546. package/docs/consumer-skill/examples/edit.tsx +3 -3
  547. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  548. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  549. package/docs/consumer-skill/examples/manifest.json +38 -1
  550. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  551. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  552. package/docs/consumer-skill/examples/rhf-edit-page.tsx +1 -1
  553. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
  554. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  555. package/docs/consumer-skill/references/agents-md.md +21 -19
  556. package/docs/consumer-skill/references/analytics.md +33 -1
  557. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  558. package/docs/consumer-skill/references/component-contracts.json +21249 -14205
  559. package/docs/consumer-skill/references/composition-mapping.md +17 -3
  560. package/docs/consumer-skill/references/composition.md +177 -32
  561. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  562. package/docs/consumer-skill/references/custom-composition.md +261 -0
  563. package/docs/consumer-skill/references/data-reading.md +79 -0
  564. package/docs/consumer-skill/references/design-contract.md +12 -9
  565. package/docs/consumer-skill/references/discovery.md +27 -3
  566. package/docs/consumer-skill/references/domain-structures.md +124 -0
  567. package/docs/consumer-skill/references/installation.md +62 -8
  568. package/docs/consumer-skill/references/integration.md +59 -1
  569. package/docs/consumer-skill/references/product-composition.md +94 -0
  570. package/docs/consumer-skill/references/public-api.json +3044 -445
  571. package/docs/consumer-skill/references/review.md +87 -10
  572. package/docs/consumer-skill/references/rhf-workflows.md +79 -0
  573. package/docs/consumer-skill/references/screen-archetypes.md +19 -7
  574. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  575. package/docs/consumer-skill/references/theming.md +24 -20
  576. package/docs/consumer-skill/references/tokens.json +9 -9
  577. package/docs/consumer-skill/references/view-craft.md +153 -0
  578. package/docs/consumer-skill/references/view-spec.md +73 -0
  579. package/docs/consumer-skill/references/workflows.md +7 -1
  580. package/docs/consumer-skill/scripts/composition-policy.mjs +176 -26
  581. package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
  582. package/docs/consumer-skill/scripts/composition.mjs +61 -5
  583. package/docs/consumer-skill/scripts/discovery.mjs +54 -0
  584. package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
  585. package/docs/consumer-skill/scripts/inspection.mjs +73 -18
  586. package/docs/consumer-skill/scripts/setup-skills.mjs +79 -7
  587. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  588. package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
  589. package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
  590. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  591. package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
  592. package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
  593. package/package.json +4 -2
  594. package/templates/admin-shell-template.tsx +1 -2
  595. package/templates/customers-template.tsx +18 -16
  596. package/dist/accordion-96o0pN62.js.map +0 -1
  597. package/dist/action-menu-CHgs8vmj.js.map +0 -1
  598. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
  599. package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
  600. package/dist/app-shell-D63ATkIK.js +0 -237
  601. package/dist/app-shell-D63ATkIK.js.map +0 -1
  602. package/dist/auth-D2FVZ1MH.js.map +0 -1
  603. package/dist/avatar-DWO_HHhB.js.map +0 -1
  604. package/dist/base/cascader.js.map +0 -1
  605. package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
  606. package/dist/breadcrumbs-B-WFKecD.js.map +0 -1
  607. package/dist/button-DkmK-z8E.js.map +0 -1
  608. package/dist/buttons-BbfzgczK.js.map +0 -1
  609. package/dist/cards-4JTWqvVe.js +0 -68
  610. package/dist/cards-4JTWqvVe.js.map +0 -1
  611. package/dist/chart-C19flDQb.js +0 -155
  612. package/dist/chart-C19flDQb.js.map +0 -1
  613. package/dist/choice-inputs-JLtij2y4.js +0 -776
  614. package/dist/choice-inputs-JLtij2y4.js.map +0 -1
  615. package/dist/code-block-CGNaUtAE.js.map +0 -1
  616. package/dist/combobox-CBJDs6w_.js +0 -877
  617. package/dist/combobox-CBJDs6w_.js.map +0 -1
  618. package/dist/combobox-hbhSS18O.js +0 -355
  619. package/dist/combobox-hbhSS18O.js.map +0 -1
  620. package/dist/command-D8NrBj-b.js.map +0 -1
  621. package/dist/comments-Di4w0H_S.js.map +0 -1
  622. package/dist/containers-CRmHf7GP.js.map +0 -1
  623. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  624. package/dist/data-display-D4oujtx0.js.map +0 -1
  625. package/dist/date-picker-zOt1oNss.js +0 -1542
  626. package/dist/date-picker-zOt1oNss.js.map +0 -1
  627. package/dist/date-pickers-cj8IXbDC.js +0 -179
  628. package/dist/date-pickers-cj8IXbDC.js.map +0 -1
  629. package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
  630. package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
  631. package/dist/feedback-DZNL5Lg1.js +0 -239
  632. package/dist/feedback-DZNL5Lg1.js.map +0 -1
  633. package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
  634. package/dist/filters-BcT-uoFy.js +0 -2209
  635. package/dist/filters-BcT-uoFy.js.map +0 -1
  636. package/dist/form-field-CsgRmdit.js +0 -63
  637. package/dist/form-field-CsgRmdit.js.map +0 -1
  638. package/dist/form-sizing-NXgjkmBG.js.map +0 -1
  639. package/dist/forms-BV5m5aQF.js.map +0 -1
  640. package/dist/forms-numeric-Cd33AKbD.js +0 -906
  641. package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
  642. package/dist/header-BA697l4a.js.map +0 -1
  643. package/dist/hooks-BQ-L7Uu2.js.map +0 -1
  644. package/dist/input-DOPL5_QE.js +0 -21
  645. package/dist/input-DOPL5_QE.js.map +0 -1
  646. package/dist/item-BvZ2DR_x.js +0 -277
  647. package/dist/item-BvZ2DR_x.js.map +0 -1
  648. package/dist/layout.types-Cn7aUzJp.js +0 -20
  649. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  650. package/dist/mentions-RKOQaaIB.js.map +0 -1
  651. package/dist/message-INU2xsxu.js +0 -128
  652. package/dist/message-INU2xsxu.js.map +0 -1
  653. package/dist/metadata-list-qVV7AVxa.js.map +0 -1
  654. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  655. package/dist/navigation-BQNcg1jT.js +0 -269
  656. package/dist/navigation-BQNcg1jT.js.map +0 -1
  657. package/dist/navigation-DLF3E1IC.js +0 -145
  658. package/dist/navigation-DLF3E1IC.js.map +0 -1
  659. package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
  660. package/dist/number-E_OiIfJz.js.map +0 -1
  661. package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
  662. package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
  663. package/dist/overlays-BlKynmde.js +0 -1004
  664. package/dist/overlays-BlKynmde.js.map +0 -1
  665. package/dist/page-CIwNUtGr.js +0 -227
  666. package/dist/page-CIwNUtGr.js.map +0 -1
  667. package/dist/page-header-commands-DFMlNYzN.js +0 -128
  668. package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
  669. package/dist/popover-uwzX2vo7.js +0 -198
  670. package/dist/popover-uwzX2vo7.js.map +0 -1
  671. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  672. package/dist/primitives-Du64iDbb.js.map +0 -1
  673. package/dist/receipt-D789Jwyy.js.map +0 -1
  674. package/dist/rich-text-CLJEf76s.js +0 -78
  675. package/dist/rich-text-CLJEf76s.js.map +0 -1
  676. package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
  677. package/dist/rich-text-editor-toolbar-L__e4x47.js +0 -94
  678. package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
  679. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  680. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  681. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  682. package/dist/settings-BA2iboic.js +0 -174
  683. package/dist/settings-BA2iboic.js.map +0 -1
  684. package/dist/sheet-DoAxTb2J.js +0 -213
  685. package/dist/sheet-DoAxTb2J.js.map +0 -1
  686. package/dist/sidebar-ByqKR_W5.js +0 -512
  687. package/dist/sidebar-ByqKR_W5.js.map +0 -1
  688. package/dist/sidebar-D2iSnGJ7.js +0 -619
  689. package/dist/sidebar-D2iSnGJ7.js.map +0 -1
  690. package/dist/skeleton-CUj8O5Bd.js +0 -264
  691. package/dist/skeleton-CUj8O5Bd.js.map +0 -1
  692. package/dist/smart-card-CqkzQsK-.js +0 -614
  693. package/dist/smart-card-CqkzQsK-.js.map +0 -1
  694. package/dist/table-CpvnzJn9.js.map +0 -1
  695. package/dist/table-DH7rozUv.js.map +0 -1
  696. package/dist/tabs-eqVsJZWO.js +0 -191
  697. package/dist/tabs-eqVsJZWO.js.map +0 -1
  698. package/dist/text-inputs-DXItiR0O.js.map +0 -1
  699. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  700. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  701. package/dist/timelines-DmtztAY_.js.map +0 -1
  702. package/dist/tooltip-B4hjKtoV.js +0 -111
  703. package/dist/tooltip-B4hjKtoV.js.map +0 -1
  704. package/dist/ui-provider-CQCuCBcy.js +0 -136
  705. package/dist/ui-provider-CQCuCBcy.js.map +0 -1
  706. package/dist/upload-C9SA0X-8.js.map +0 -1
  707. package/dist/upload-queue-DhQJiSRc.js.map +0 -1
  708. package/dist/usage-card-DVTRDmGz.js.map +0 -1
  709. package/dist/use-mobile-vaLKwgyf.js +0 -15
  710. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  711. package/dist/utils-CF3c95Io.js.map +0 -1
  712. package/dist/value-inputs-C0o70p-U.js +0 -980
  713. package/dist/value-inputs-C0o70p-U.js.map +0 -1
  714. package/dist/value-typography-ClupF0Gz.js.map +0 -1
  715. package/dist/workspace-9EFVXUyk.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-C8BnDwTH.js","names":["BaseSidebar","PrimitiveSidebarProvider","React","_Fragment","_Fragment","React","_Fragment","_Fragment","React","_Fragment","_Fragment","Text","TooltipContent","TooltipProvider","Tooltip","Stack","DropdownMenuTrigger","DropdownMenuContent","DropdownMenu","ActionMenu","Skeleton","formatInitials","AvatarFallback","Avatar","AvatarImage","Input","CollapsibleContent","CollapsibleTrigger","Collapsible","ScrollArea","useBaseSidebarMenuDensity","useBaseSidebarContext","SidebarMenuSub","SidebarProvider","SidebarHeader","SidebarMenu","SidebarMenuAction","SidebarMenuItem","SidebarGroup","SidebarMenuButton","SidebarContent","SidebarGroupContent","SidebarFooter","SidebarGroupLabel","Sidebar","SidebarMenuSubButton","SidebarMenuSubItem","getCurrentNavigationHref","isPathMatch","toPath","useLayoutLinkRenderer","NavBadge","renderSidebarLink","getNavKey","DynamicIcon","getNavLabel","resolveNavBadge","React$1","Fragment$1","LayoutSidebar","props","cn","surfaceClassName","useLayoutSidebar","useDismissSidebarDrawerOnNavigate","openPanel","openMobile","panelId","previous","useRef","prior","enabled","navigationKey","setOpenMobile","LayoutSidebarProvider","className","defaultSidebarNavigationStrings","label","defaultSidebarWorkspaceDropdownStrings","filterNavigation","query","items","item","children","SidebarGroupedNavigation","stringsProp","inheritedMenuDensity","density","menuDensity","resolvedRenderLink","strings","useStrings","overrides","setOverrides","defaultExpandedItems","key","currentUrl","searchValue","isActive","href","hasActiveChild","isExpanded","expandedItems","allBranchKeys","index","groups","navigationByGroups","id","branchItems","group","currentHref","hasCurrentChild","findBranch","nested","setExpanded","keys","candidate","open","onExpandedItemsChange","renderNode","disabled","ancestorDisabled","branch","ancestor","active","expanded","badge","showBadges","liveBadges","renderChildren","child","depth","childIndex","context","renderItem","labelText","defaultContent","ChevronRight","content","renderItemContent","Row","Item","row","collapsed","target","details","setOpen","groupEntries","emptySlot","SidebarLogo","isCollapsed","collapsedLogo","logo","SidebarNavigationFooter","resolvedMenuDensity","labelNode","ExternalLink","SidebarWorkspaceDropdown","visibleLogo","actions","workspaceLinks","link","triggerElement","ChevronsUpDown","isMobile","contentClassName","linkProps","AppSidebar","navigationLabel","selectedSidebar","closeDrawerOnNavigate","localSearch","setLocalSearch","defaultSearchValue","isLoading","loading","navigationGroups","iconCollapsed","collapsible","searchRef","focusSearchAfterExpansion","input","hasWorkspaceLinks","hasHeaderStart","slots","hasHeaderEnd","branding","workspaceStrings","workspaceContentClassName","logoClassName","defaultHeader","headerContent","resolveSlot","searchInput","searchable","event","onSearchValueChange","Button","Search","header","headerClassName","defaultFooter","footerNavItems","footerLabel","footer","beforeNavigation","afterNavigation","AppSidebarSkeleton","slot","count","groupIdx","i","SidebarNavigationRail","ariaLabel","value","resolvedSide","side","surface","style","TooltipTrigger","onValueChange","NavLabel","SidebarNavigation","defaultSidebarNavigationUserStrings","SidebarNavigationUser","dropdownSide","initials","user","onProfile","User","onSettings","Settings","onLogout","LogOut","renderTrigger","contentClasses","customContent"],"sources":["../src/components/layout/sidebar/sidebar.tsx","../src/components/layout/sidebar/sidebar.context.tsx","../src/components/layout/sidebar/sidebar.types.ts","../src/components/layout/sidebar/components/sidebar-grouped-navigation.tsx","../src/components/layout/sidebar/components/sidebar-logo.tsx","../src/components/layout/sidebar/components/sidebar-navigation-footer.tsx","../src/components/layout/sidebar/components/sidebar-workspace-dropdown.tsx","../src/components/layout/sidebar/app-sidebar.tsx","../src/components/layout/sidebar/sidebar-navigation-rail.tsx","../src/components/layout/sidebar/components/sidebar-navigation.tsx","../src/components/layout/sidebar/components/sidebar-navigation-user.tsx"],"sourcesContent":["/** Sidebar — application-layout composition of the tokenized Base sidebar. */\nimport {\n\tSidebar as BaseSidebar,\n\ttype SidebarProps as BaseSidebarProps,\n} from '../../base/sidebar';\nimport { cn } from '../../../lib/utils';\n\nexport type LayoutSidebarProps = Omit<BaseSidebarProps, 'contained' | 'rootClassName'>;\n\n/**\n * Layout Sidebar keeps the shell inside its parent application frame while\n * delegating responsive behavior, strings, dimensions, and surface tokens to\n * the public Base compound primitive.\n */\nexport function LayoutSidebar({ className, surfaceClassName, ...props }: LayoutSidebarProps) {\n\treturn (\n\t\t<BaseSidebar\n\t\t\tcontained\n\t\t\trootClassName=\"layout-sidebar--component\"\n\t\t\tclassName={className}\n\t\t\tsurfaceClassName={cn('layout-sidebar--surface', surfaceClassName)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"," \n/** SidebarProvider — layout-scoped wrapper around the shadcn sidebar context. */\nimport { useEffect, useRef } from 'react';\n\nimport { TooltipProvider } from '../../base/display/tooltip';\nimport {\n\tSidebarProvider as PrimitiveSidebarProvider,\n\tuseBaseSidebarContext,\n\ttype SidebarMenuDensity,\n\ttype SidebarProviderProps,\n} from '../../base/sidebar/sidebar';\nimport { cn } from '../../../lib/utils';\n\nexport const useLayoutSidebar = useBaseSidebarContext;\nexport type LayoutSidebarContext = ReturnType<typeof useBaseSidebarContext>;\n\nexport function useDismissSidebarDrawerOnNavigate(\n\t{ openMobile, panelId, setOpenMobile }: LayoutSidebarContext,\n\tnavigationKey: string | undefined,\n\tenabled: boolean,\n) {\n\tconst openPanel = openMobile ? panelId : null;\n\tconst previous = useRef({ navigationKey, openPanel });\n\tuseEffect(() => {\n\t\tconst prior = previous.current;\n\t\tprevious.current = { navigationKey, openPanel };\n\t\t// A route change may intentionally open another panel in the same commit.\n\t\tif (enabled && openPanel !== null && prior.openPanel === openPanel && prior.navigationKey !== navigationKey) {\n\t\t\tsetOpenMobile(false);\n\t\t}\n\t}, [enabled, navigationKey, openPanel, setOpenMobile]);\n}\n\nexport type LayoutSidebarProviderProps = SidebarProviderProps & {\n\t/** Parent-driven drawer adaptation for embedded shells; defaults to viewport. */\n\tadaptTo?: 'viewport' | 'container';\n\t/** Whether the surface starts open, for uncontrolled use. */\n\tdefaultOpen?: boolean;\n\t/** Default row and child-list rhythm. @default 'default' */\n\tmenuDensity?: SidebarMenuDensity;\n\t/** Whether the surface is showing. Controlled. */\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n};\n\nexport function LayoutSidebarProvider({\n\tdefaultOpen = true,\n\tmenuDensity = 'default',\n\topen,\n\tonOpenChange,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: LayoutSidebarProviderProps) {\n\treturn (\n\t\t<TooltipProvider delayDuration={0}>\n\t\t\t<PrimitiveSidebarProvider\n\t\t\t\tdefaultOpen={defaultOpen}\n\t\t\t\tmenuDensity={menuDensity}\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={onOpenChange}\n\t\t\t\tstyle={style}\n\t\t\t\tclassName={cn('layout-sidebar-provider--component min-h-svh', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</PrimitiveSidebarProvider>\n\t\t</TooltipProvider>\n\t);\n}\n","/**\n * Sidebar types — framework-neutral navigation tree, render contexts, slots,\n * strings, and composition props.\n */\nimport type { ComponentType, ReactNode } from 'react';\n\nimport type {\n\tLayoutIconSource,\n\tLayoutLinkRenderer,\n\tLayoutNavigationAdapter,\n} from '../layout.types';\nimport type { SidebarMenuDensity, SidebarPanelId, SidebarPresentation } from '../../base/sidebar';\nimport type { StringsProp } from '../../../lib/strings';\n\nexport interface SidebarNavItem {\n\t/** Stable identity for rendering, branch expansion and live badges; precedes handle and href. */\n\tid?: string;\n\t/** Display label. */\n\tlabel: ReactNode;\n\t/** Destination for the entry, when it navigates. */\n\thref?: string;\n\thandle?: string;\n\t/** Leading glyph. */\n\ticon?: LayoutIconSource;\n\t/** Disables this entry and every descendant, including branches exposed by search. */\n\tdisabled?: boolean;\n\t/** Chip rendered beside the label. */\n\tbadge?: string | number;\n\tchildren?: SidebarNavItem[];\n\tgroup?: string;\n\texternal?: boolean;\n}\n\nexport type SidebarFlatNavItem = Omit<SidebarNavItem, 'children' | 'group'>;\n\nexport interface SidebarNavigationGroup {\n\t/** Stable identity independent of the displayed group label. */\n\tid: string;\n\t/** Optional section heading. */\n\tlabel?: ReactNode;\n\titems: SidebarNavItem[];\n}\n\nexport type SidebarNavigationGroups = Record<string, SidebarNavItem[]> | readonly SidebarNavigationGroup[];\n\nexport interface SidebarRenderItemContext {\n\tdepth: number;\n\t/** Marks the control as currently engaged. */\n\tactive: boolean;\n\t/** This branch contains the current destination, independently of disclosure state. */\n\tancestor?: boolean;\n\texpanded: boolean;\n\t/** Effective disabled state, including any disabled ancestor. */\n\tdisabled?: boolean;\n\t/** Library-owned child list when this branch is expanded. Place it after the custom row. */\n\tchildren?: ReactNode;\n\t/** Available for custom branch renderers. */\n\tsetExpanded?: (expanded: boolean) => void;\n\t/** Chip rendered beside the label. */\n\tbadge?: string | number;\n\trenderLink: LayoutLinkRenderer;\n}\n\n/** Custom row content retains the library-owned link, disclosure and child list. */\nexport interface SidebarRenderItemContentContext extends Omit<SidebarRenderItemContext, 'children' | 'setExpanded'> {\n\tdefaultContent: ReactNode;\n}\n\nexport interface SidebarSlotContext {\n\tpanelId: SidebarPanelId;\n\tcollapsed: boolean;\n\tpresentation: SidebarPresentation;\n\tisMobile: boolean;\n\trenderLink: LayoutLinkRenderer;\n\t/** Standard content for this region, without its surrounding anatomy. */\n\tdefaultContent: ReactNode;\n}\n\nexport type SidebarSlot = ReactNode | ((context: SidebarSlotContext) => ReactNode);\n\nexport interface SidebarSlots {\n\t/** A node replaces the full header; a callback supplies content inside the padded header. */\n\theader?: SidebarSlot;\n\t/** Pinned content before the standard logo/workspace region, inside its padded header. */\n\theaderStart?: ReactNode;\n\t/** Pinned content after the standard logo/workspace region. Full header replacement wins. */\n\theaderEnd?: ReactNode;\n\tbeforeNavigation?: SidebarSlot;\n\tafterNavigation?: SidebarSlot;\n\t/** Content below the body. */\n\tfooter?: SidebarSlot;\n\tempty?: ReactNode;\n\t/** Shows the pending indicator. */\n\tloading?: ReactNode;\n}\n\nexport interface SidebarExpansionProps {\n\t/** Expanded branch keys from id, handle, href, or a plain-text label. Controlled. */\n\texpandedItems?: readonly string[];\n\t/** Initially expanded branches. Active ancestors also open automatically. */\n\tdefaultExpandedItems?: readonly string[];\n\t/** Called after a disclosure changes; navigation remains independent. */\n\tonExpandedItemsChange?: (keys: string[]) => void;\n}\n\nexport interface SidebarNavigationStrings {\n\tsearch: string;\n\tnoResults: string;\n\texpand: (label: string) => string;\n\tcollapse: (label: string) => string;\n}\nexport const defaultSidebarNavigationStrings: SidebarNavigationStrings = {\n\tsearch: 'Search navigation…',\n\tnoResults: 'No matching pages.',\n\texpand: label => `Expand ${label}`,\n\tcollapse: label => `Collapse ${label}`,\n};\n\nexport interface AppSidebarProps extends LayoutNavigationAdapter, SidebarExpansionProps {\n\t/** Accessible name for the navigation landmark. Defaults to the named panel's role. */\n\t'aria-label'?: string;\n\t/** Enables the library input and local navigation filtering. */\n\tsearchable?: boolean;\n\t/** Search text. Controlled; renderNode labels use their handle as searchable text. */\n\tsearchValue?: string;\n\tdefaultSearchValue?: string;\n\tonSearchValueChange?: (value: string) => void;\n\t/** Navigation search and disclosure copy. */\n\tstrings?: StringsProp<SidebarNavigationStrings>;\n\t/** Row and child-list rhythm. Inherits the sidebar provider. */\n\tmenuDensity?: SidebarMenuDensity;\n\t/** Navigation items grouped by section heading. */\n\tnavigationGroups?: SidebarNavigationGroups;\n\t/** Navigation items pinned to the sidebar footer. */\n\tfooterNavItems?: SidebarFlatNavItem[];\n\t/** Heading above the footer navigation. */\n\tfooterLabel?: ReactNode;\n\t/** Full product mark, shown when expanded. */\n\tlogo?: ReactNode;\n\t/** Compact mark, shown when the sidebar collapses to icons. */\n\tcollapsedLogo?: ReactNode;\n\t/** Links offered in the workspace switcher. */\n\tworkspaceLinks?: WorkspaceLink[];\n\t/** Copy overrides for the workspace switcher. */\n\tworkspaceStrings?: StringsProp<SidebarWorkspaceDropdownStrings>;\n\t/** Merged onto the workspace switcher content. */\n\tworkspaceContentClassName?: string;\n\t/** Merged onto the header region. */\n\theaderClassName?: string;\n\t/** Merged onto the logo. */\n\tlogoClassName?: string;\n\t/** Resolves an item's icon name to a component, keeping navigation data serialisable. */\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\t/** URL of the active route, used to mark the current item. */\n\tcurrentUrl?: string;\n\t/** Close this already-open drawer when the app commits a new currentUrl. @default true */\n\tcloseDrawerOnNavigate?: boolean;\n\t/** Render item badges and live counts. @default true */\n\tshowBadges?: boolean;\n\t/** Live counts keyed by item id — unread totals and similar. */\n\tliveBadges?: Record<string, string | number>;\n\t/** Shows the pending indicator. */\n\tloading?: boolean;\n\t/** Desktop collapse: icon keeps a compact rail, offcanvas closes the panel, none stays expanded. */\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\t/** Named state owner; inherits the nearest shell region, then primary. */\n\tpanelId?: SidebarPanelId;\n\t/** Transparent docked surfaces share their shell canvas. Drawers remain opaque. */\n\tsurface?: 'default' | 'transparent';\n\t/** Shell treatment. */\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\t/** Which side of the trigger the surface opens on. */\n\tside?: 'left' | 'right';\n\tclassName?: string;\n\t/** Merged onto the sidebar surface. */\n\tsurfaceClassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\t/** Replaces individual regions of the shell. */\n\tslots?: SidebarSlots;\n\t/** Renders one item through the consumer's router. */\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\t/** Replaces row content while retaining the link, disclosure, focus and descendants. */\n\trenderItemContent?: (item: SidebarNavItem, context: SidebarRenderItemContentContext) => ReactNode;\n}\n\nexport interface SidebarGroupedNavigationProps extends LayoutNavigationAdapter, SidebarExpansionProps {\n\t/** Optional local filter. Matching ancestors stay visible and open. */\n\tsearchValue?: string;\n\tstrings?: StringsProp<SidebarNavigationStrings>;\n\t/** Row and child-list rhythm. Inherits the sidebar provider. */\n\tmenuDensity?: SidebarMenuDensity;\n\t/** Navigation items grouped by section heading. */\n\tnavigationByGroups: SidebarNavigationGroups;\n\t/** URL of the active route, used to mark the current item. */\n\tcurrentUrl?: string;\n\t/** Resolves an item's icon name to a component, keeping navigation data serialisable. */\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\t/** Render item badges and live counts. @default true */\n\tshowBadges?: boolean;\n\t/** Live counts keyed by item id — unread totals and similar. */\n\tliveBadges?: Record<string, string | number>;\n\t/** Shown when a group has no items. */\n\temptySlot?: ReactNode;\n\t/** Renders one item through the consumer's router. */\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\t/** Replaces row content while retaining accessible navigation anatomy. */\n\trenderItemContent?: (item: SidebarNavItem, context: SidebarRenderItemContentContext) => ReactNode;\n\tclassName?: string;\n}\n\nexport interface SidebarFlatNavigationProps extends LayoutNavigationAdapter {\n\t/** Row and child-list rhythm. Inherits the sidebar provider. */\n\tmenuDensity?: SidebarMenuDensity;\n\t/** Entries to render, in order. */\n\titems: SidebarFlatNavItem[];\n\t/** Display label. */\n\tlabel?: ReactNode;\n\t/** URL of the active route, used to mark the current item. */\n\tcurrentUrl?: string;\n\t/** Resolves an item's icon name to a component, keeping navigation data serialisable. */\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\t/** Render item badges and live counts. @default true */\n\tshowBadges?: boolean;\n\t/** Live counts keyed by item id — unread totals and similar. */\n\tliveBadges?: Record<string, string | number>;\n\t/** Renders one item through the consumer's router. */\n\trenderItem?: (item: SidebarFlatNavItem, context: SidebarRenderItemContext) => ReactNode;\n\t/** Replaces row content while retaining the accessible link and focus treatment. */\n\trenderItemContent?: (item: SidebarFlatNavItem, context: SidebarRenderItemContentContext) => ReactNode;\n\tclassName?: string;\n}\n\nexport interface WorkspaceLink {\n\t/** Display label. */\n\tlabel: ReactNode;\n\turl: string;\n\t/** Leading glyph. */\n\ticon?: ComponentType<{ className?: string }>;\n\texternal?: boolean;\n}\n\nexport interface SidebarWorkspaceDropdownStrings {\n\t/** Display label. */\n\tlabel: string;\n\tselect: string;\n}\n\nexport const defaultSidebarWorkspaceDropdownStrings: SidebarWorkspaceDropdownStrings = {\n\tlabel: 'Workspace',\n\tselect: 'Select workspace',\n};\n\nexport interface SidebarWorkspaceDropdownProps extends LayoutNavigationAdapter {\n\t/** Full product mark, shown when expanded. */\n\tlogo: ReactNode;\n\t/** Compact mark, shown when the sidebar collapses to icons. */\n\tcollapsedLogo?: ReactNode;\n\t/** Links offered in the workspace switcher. */\n\tworkspaceLinks: WorkspaceLink[];\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<SidebarWorkspaceDropdownStrings>;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n}\n\nexport type SidebarFooterNavigationItem = SidebarFlatNavItem;\n\nexport interface SidebarNavigationFooterProps extends LayoutNavigationAdapter {\n\t/** Row and child-list rhythm. Inherits the sidebar provider. */\n\tmenuDensity?: SidebarMenuDensity;\n\t/** Entries to render, in order. */\n\titems: SidebarFooterNavigationItem[];\n\t/** Display label. */\n\tlabel?: ReactNode;\n\t/** URL of the active route, used to mark the current item. */\n\tcurrentUrl?: string;\n\t/** Resolves an item's icon name to a component, keeping navigation data serialisable. */\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\t/** Render item badges and live counts. @default true */\n\tshowBadges?: boolean;\n\t/** Live counts keyed by item id — unread totals and similar. */\n\tliveBadges?: Record<string, string | number>;\n\tclassName?: string;\n}\n","/** Grouped navigation uses public disclosure and sidebar anatomy; routing stays app-owned. */\nimport * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../../base/display/collapsible';\nimport {\n\tSidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuAction,\n\tSidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton,\n\tSidebarMenuSubItem,\n} from '../../../base/sidebar';\nimport { Text } from '../../../typography';\nimport { useBaseSidebarMenuDensity } from '../../../base/sidebar/sidebar';\nimport { cn } from '../../../../lib/utils';\nimport { useStrings } from '../../../../lib/strings';\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport { useLayoutSidebar } from '../sidebar.context';\nimport { defaultSidebarNavigationStrings, type SidebarGroupedNavigationProps, type SidebarNavItem, type SidebarNavigationGroup, type SidebarRenderItemContext } from '../sidebar.types';\nimport { DynamicIcon, getCurrentNavigationHref, getNavKey, getNavLabel, isPathMatch, NavBadge, renderSidebarLink, resolveNavBadge, toPath } from '../sidebar.utils';\n\nfunction filterNavigation(items: SidebarNavItem[], query: string): SidebarNavItem[] {\n\tif (!query) return items;\n\treturn items.flatMap(item => {\n\t\tconst label = typeof item.label === 'string' || typeof item.label === 'number' ? String(item.label) : item.handle ?? '';\n\t\tif (`${label} ${item.handle ?? ''}`.toLocaleLowerCase().includes(query)) return [item];\n\t\tconst children = filterNavigation(item.children ?? [], query);\n\t\treturn children.length ? [{ ...item, children }] : [];\n\t});\n}\n\nexport function SidebarGroupedNavigation({\n\tnavigationByGroups, currentUrl = '/', iconMap = {}, liveBadges,\n\tshowBadges = true, renderLink, emptySlot, renderItem, renderItemContent, className, menuDensity,\n\texpandedItems, defaultExpandedItems = [], onExpandedItemsChange, searchValue = '', strings: stringsProp,\n}: SidebarGroupedNavigationProps) {\n\tconst inheritedMenuDensity = useBaseSidebarMenuDensity();\n\tconst { setOpen, collapsed } = useLayoutSidebar();\n\tconst density = menuDensity ?? inheritedMenuDensity ?? 'default';\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst strings = useStrings(defaultSidebarNavigationStrings, stringsProp);\n\tconst [overrides, setOverrides] = React.useState<Record<string, { open: boolean; route: string }>>(() => Object.fromEntries(defaultExpandedItems.map(key => [key, { open: true, route: currentUrl }])));\n\tconst query = searchValue.trim().toLocaleLowerCase();\n\tconst isActive = (href?: string): boolean => !!href && isPathMatch(currentUrl, toPath(href));\n\tconst hasActiveChild = (items?: SidebarNavItem[]): boolean => !!items?.some(item => isActive(item.href) || hasActiveChild(item.children));\n\tconst isExpanded = (item: SidebarNavItem, key: string) => expandedItems !== undefined\n\t\t? expandedItems.includes(key)\n\t\t: overrides[key]?.route === currentUrl ? overrides[key]!.open : !!overrides[key]?.open || isActive(item.href) || hasActiveChild(item.children);\n\tconst allBranchKeys = (items: SidebarNavItem[]): string[] => items.flatMap((item, index) => item.children?.length ? [String(getNavKey(item, index)), ...allBranchKeys(item.children)] : []);\n\tconst groups: readonly SidebarNavigationGroup[] = Array.isArray(navigationByGroups) ? navigationByGroups : Object.entries(navigationByGroups).map(([id, items]) => ({ id, label: id.startsWith('_') ? undefined : id, items }));\n\tconst branchItems = groups.flatMap(group => group.items);\n\tconst currentHref = getCurrentNavigationHref(currentUrl, branchItems);\n\tconst hasCurrentChild = (items: readonly SidebarNavItem[]): boolean => items.some(item => (!!item.href && item.href === currentHref) || hasCurrentChild(item.children ?? []));\n\tconst findBranch = (key: string, items: SidebarNavItem[]): SidebarNavItem | undefined => {\n\t\tfor (const [index, item] of items.entries()) {\n\t\t\tif (String(getNavKey(item, index)) === key) return item;\n\t\t\tconst nested = findBranch(key, item.children ?? []);\n\t\t\tif (nested) return nested;\n\t\t}\n\t};\n\tconst setExpanded = (key: string, open: boolean) => {\n\t\tif (query) return;\n\t\tconst keys = new Set(expandedItems ?? allBranchKeys(branchItems).filter(candidate => {\n\t\t\tconst item = findBranch(candidate, branchItems);\n\t\t\treturn item && isExpanded(item, candidate);\n\t\t}));\n\t\tif (open) keys.add(key); else keys.delete(key);\n\t\tif (expandedItems === undefined) setOverrides(previous => ({ ...previous, [key]: { open, route: currentUrl } }));\n\t\tonExpandedItemsChange?.([...keys]);\n\t};\n\n\tconst renderNode = (item: SidebarNavItem, depth: number, index: number, ancestorDisabled = false): React.ReactNode => {\n\t\tconst key = String(getNavKey(item, index));\n\t\tconst disabled = ancestorDisabled || !!item.disabled;\n\t\tconst children = item.children ?? [];\n\t\tconst branch = children.length > 0;\n\t\tconst ancestor = branch && hasCurrentChild(children);\n\t\tconst active = !!item.href && item.href === currentHref && !ancestor;\n\t\tconst expanded = branch && (!!query || isExpanded(item, key));\n\t\tconst badge = showBadges ? resolveNavBadge(item.handle, item.badge, liveBadges, item.id) : undefined;\n\t\tconst renderChildren = () => <SidebarMenuSub>{children.map((child, childIndex) => renderNode(child, depth + 1, childIndex, disabled))}</SidebarMenuSub>;\n\t\tconst context: SidebarRenderItemContext = {\n\t\t\tdepth, active, ancestor, expanded, disabled, badge, renderLink: resolvedRenderLink,\n\t\t\tsetExpanded: branch ? open => { if (!disabled) setExpanded(key, open); } : undefined,\n\t\t\t// A complete row override may intentionally omit descendants. Resolve\n\t\t\t// their renderers only when the consumer requests the child-list seam.\n\t\t\tget children() { return branch && expanded ? renderChildren() : undefined; },\n\t\t};\n\t\tif (renderItem) return <React.Fragment key={key}>{renderItem(item, context)}</React.Fragment>;\n\t\tconst label = getNavLabel(item);\n\t\tconst labelText = typeof label === 'string' || typeof label === 'number' ? String(label) : item.handle ?? '';\n\t\tconst defaultContent = <>\n\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-icon\" aria-hidden=\"true\" />}\n\t\t\t<Text tag=\"span\" weight=\"inherit\" className=\"min-w-0 flex-1 truncate text-start text-inherit\">{label}</Text>\n\t\t\t{badge !== undefined && <NavBadge value={badge} size={depth ? 'sm' : 'md'} />}\n\t\t\t{branch && !item.href && <ChevronRight className={cn('size-icon shrink-0 transition-transform rtl:rotate-180', expanded && 'rotate-90 rtl:rotate-90')} aria-hidden=\"true\" />}\n\t\t</>;\n\t\tconst content = renderItemContent ? renderItemContent(item, { depth, active, ancestor, expanded, disabled, badge, renderLink: resolvedRenderLink, defaultContent }) : defaultContent;\n\t\tconst Row = depth ? SidebarMenuSubButton : SidebarMenuButton;\n\t\tconst Item = depth ? SidebarMenuSubItem : SidebarMenuItem;\n\t\tconst row = <Row\n\t\t\t{...(depth === 0 ? { tooltip: { children: label } } : {})}\n\t\t\tactive={active || (depth === 0 && collapsed && ancestor)}\n\t\t\tdata-ancestor={ancestor || undefined}\n\t\t\trender={item.href && !disabled ? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement : <button type=\"button\" disabled={disabled} />}\n\t\t\taria-disabled={disabled || undefined}\n\t\t\tclassName={cn('w-full', disabled && 'cursor-not-allowed opacity-50')}\n\t\t>{content}</Row>;\n\t\tif (!branch) return <Item key={key}>{row}</Item>;\n\t\treturn <Collapsible key={key} open={expanded} onOpenChange={(open, details) => {\n\t\t\t// Icon rails hide child lists. Reveal the shell and retain an open\n\t\t\t// branch rather than toggling descendants that remain inaccessible.\n\t\t\tconst target = details.event.target;\n\t\t\tif (depth === 0 && !item.href && target instanceof Element && target.closest('[data-collapsible=\"icon\"]')) {\n\t\t\t\tsetOpen(true);\n\t\t\t\tsetExpanded(key, true);\n\t\t\t} else setExpanded(key, open);\n\t\t}} disabled={disabled || !!query} render={<Item />}>\n\t\t\t{item.href ? <>\n\t\t\t\t{row}\n\t\t\t\t{/* Inset so its chevron lines up with the row-content chevrons and counts of sibling rows. */}\n\t\t\t\t<CollapsibleTrigger render={<SidebarMenuAction className=\"end-space-sm!\" />} aria-label={expanded ? strings.collapse(labelText) : strings.expand(labelText)}>\n\t\t\t\t\t<ChevronRight className={cn('size-icon shrink-0 transition-transform rtl:rotate-180', expanded && 'rotate-90 rtl:rotate-90')} aria-hidden=\"true\" />\n\t\t\t\t</CollapsibleTrigger>\n\t\t\t</> : <CollapsibleTrigger render={row} />}\n\t\t\t<CollapsibleContent className=\"group-data-[collapsible=icon]:hidden\">{renderChildren()}</CollapsibleContent>\n\t\t</Collapsible>;\n\t};\n\tconst groupEntries = groups.map(group => ({ ...group, items: filterNavigation(group.items, query) })).filter(group => group.items.length);\n\tif (!groupEntries.length) return emptySlot ?? (query ? <SidebarGroup><Text type=\"secondary\">{strings.noResults}</Text></SidebarGroup> : null);\n\t// Group labels and one shared gap separate groups; no rule between them.\n\treturn <div className={cn('sidebar-grouped-navigation--component flex flex-col gap-space-xl', className)}>\n\t\t{groupEntries.map(({id, label, items}) => <SidebarGroup key={id} className=\"py-0\">\n\t\t\t{label != null && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarMenu menuDensity={density}>{items.map((item, index) => renderNode(item, 0, index))}</SidebarMenu>\n\t\t</SidebarGroup>)}\n\t</div>;\n}\n","/** SidebarLogo — hides its logo content when the sidebar is icon-collapsed. */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '../../../../lib/utils';\n\nimport { useLayoutSidebar } from '../sidebar.context';\n\nexport interface SidebarLogoProps {\n\t/** Full product mark, shown when expanded. */\n\tlogo: ReactNode;\n\t/** Compact mark, shown when the sidebar collapses to icons. */\n\tcollapsedLogo?: ReactNode;\n\tclassName?: string;\n}\n\nexport function SidebarLogo({ logo, collapsedLogo = null, className }: SidebarLogoProps) {\n\tconst { collapsed: isCollapsed } = useLayoutSidebar();\n\tconst content = isCollapsed ? collapsedLogo : logo;\n\tif (!content) return null;\n\treturn <div className={cn('sidebar-logo--component flex min-h-action min-w-0 items-center', className)}>{content}</div>;\n}\n","/** SidebarNavigationFooter — secondary footer navigation using renderLink. */\nimport { ExternalLink } from 'lucide-react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '../../../base/sidebar';\nimport { Text } from '../../../typography';\nimport { useBaseSidebarMenuDensity } from '../../../base/sidebar/sidebar';\nimport { cn } from '../../../../lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarNavigationFooterProps } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetCurrentNavigationHref,\n\tgetNavKey,\n\tgetNavLabel,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n} from '../sidebar.utils';\n\nexport function SidebarNavigationFooter({\n\titems,\n\tlabel,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\tshowBadges = true,\n\trenderLink,\n\tclassName,\n\tmenuDensity,\n}: SidebarNavigationFooterProps) {\n\tconst inheritedMenuDensity = useBaseSidebarMenuDensity();\n\tconst resolvedMenuDensity = menuDensity ?? inheritedMenuDensity ?? 'default';\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst currentHref = getCurrentNavigationHref(currentUrl, items);\n\n\treturn (\n\t\t<SidebarGroup className={cn('sidebar-navigation-footer--component py-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarGroupContent>\n\t\t\t\t<SidebarMenu menuDensity={resolvedMenuDensity}>\n\t\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\t\tconst active = !!item.href && item.href === currentHref;\n\t\t\t\t\t\tconst badge = showBadges ? resolveNavBadge(item.handle, item.badge, liveBadges, item.id) : undefined;\n\t\t\t\t\t\tconst labelNode = getNavLabel(item);\n\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-icon\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t{typeof labelNode === 'string' || typeof labelNode === 'number' ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"inherit\" className=\"min-w-0 flex-1 truncate text-start text-inherit\">{labelNode}</Text>\n\t\t\t\t\t\t\t\t) : labelNode}\n\t\t\t\t\t\t\t\t{badge !== undefined && <NavBadge value={badge} />}\n\t\t\t\t\t\t\t\t{!!item.external && <ExternalLink className=\"ms-auto size-icon-sm shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</SidebarMenu>\n\t\t\t</SidebarGroupContent>\n\t\t</SidebarGroup>\n\t);\n}\n","/** SidebarWorkspaceDropdown — workspace selector using consumer link rendering. */\nimport { ChevronsUpDown, ExternalLink } from 'lucide-react';\n\nimport { ActionMenu, type ActionMenuAction } from '../../../base/action-menu';\n\nimport { Text } from '../../../typography';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '../../../base/sidebar';\nimport { useStrings } from '../../../../lib/strings';\nimport { Stack } from '../../../base/structure';\nimport { cn } from '../../../../lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultSidebarWorkspaceDropdownStrings,\n\ttype SidebarWorkspaceDropdownProps,\n} from '../sidebar.types';\nimport { useLayoutSidebar } from '../sidebar.context';\n\nexport function SidebarWorkspaceDropdown({\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks,\n\trenderLink,\n\tstrings: stringsProp,\n\tcontentClassName,\n}: SidebarWorkspaceDropdownProps) {\n\tconst strings = useStrings(defaultSidebarWorkspaceDropdownStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst { collapsed: isCollapsed, isMobile } = useLayoutSidebar();\n\tconst visibleLogo = isCollapsed ? (collapsedLogo ?? logo) : logo;\n\n\t// Every entry is an external workspace link, captioned as one group.\n\tconst actions: ActionMenuAction[] = workspaceLinks.map((link) => ({\n\t\tid: link.url,\n\t\tlabel: link.label,\n\t\ticon: link.icon ?? ExternalLink,\n\t\thref: link.url,\n\t\texternal: link.external ?? true,\n\t\tgroup: strings.label,\n\t}));\n\n\tconst triggerElement = (\n\t\t<SidebarMenuButton\n\t\t\tsize={isCollapsed ? 'md' : 'lg'}\n\t\t\taria-label={strings.select}\n\t\t\tclassName=\"group-data-[collapsible=icon]:p-0! data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n\t\t>\n\t\t\t<Stack direction=\"horizontal\" align=\"center\" gap=\"md\" wrap={false} className=\"min-w-0 flex-1\">\n\t\t\t\t{visibleLogo}\n\t\t\t\t{!isCollapsed && (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"sr-only\">\n\t\t\t\t\t\t{strings.select}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</Stack>\n\t\t\t{!isCollapsed && <ChevronsUpDown className=\"ml-auto size-icon shrink-0\" aria-hidden=\"true\" />}\n\t\t</SidebarMenuButton>\n\t);\n\n\treturn (\n\t\t<SidebarMenu className=\"sidebar-workspace-dropdown--component\">\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<ActionMenu\n\t\t\t\t\tactions={actions}\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tside={isMobile ? \"bottom\" : \"right\"}\n\t\t\t\t\tcontentClassName={cn('min-w-56', contentClassName)}\n\t\t\t\t\twidth=\"w-auto\"\n\t\t\t\t\tcloseOnSelect\n\t\t\t\t\tpreserveOrder\n\t\t\t\t\trenderTrigger={triggerElement}\n\t\t\t\t\trenderLink={({ children, ...linkProps }) =>\n\t\t\t\t\t\tresolvedRenderLink({ ...linkProps, children: children ?? null }) as React.ReactElement\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n","/**\n * AppSidebar — opinionated assembly of logo/header, grouped navigation, and\n * footer links. Consumers still own framework routing through `renderLink`.\n */\nimport * as React from 'react';\nimport { Search } from 'lucide-react';\n\nimport { Button } from '../../base/buttons';\nimport { ScrollArea } from '../../base/display/scroll-area';\nimport { Skeleton } from '../../base/skeleton';\nimport { Input } from '../../base/text-inputs';\nimport {\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarHeader,\n\tSidebarMenu,\n\tSidebarMenuItem,\n} from '../../base/sidebar';\nimport { cn } from '../../../lib/utils';\nimport { useStrings } from '../../../lib/strings';\nimport { defaultSidebarNavigationStrings } from './sidebar.types';\nimport { useLayoutLinkRenderer } from '../hooks';\nimport { useDismissSidebarDrawerOnNavigate, useLayoutSidebar } from './sidebar.context';\n\nimport { SidebarGroupedNavigation } from './components/sidebar-grouped-navigation';\nimport { SidebarLogo } from './components/sidebar-logo';\nimport { SidebarNavigationFooter } from './components/sidebar-navigation-footer';\nimport { SidebarWorkspaceDropdown } from './components/sidebar-workspace-dropdown';\nimport { LayoutSidebar } from './sidebar';\nimport type { AppSidebarProps, SidebarSlot, SidebarSlotContext } from './sidebar.types';\n\nexport function AppSidebar({\n\tnavigationGroups,\n\t'aria-label': navigationLabel,\n\tfooterNavItems = [],\n\tfooterLabel,\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks = [],\n\tworkspaceStrings,\n\tworkspaceContentClassName,\n\theaderClassName,\n\tlogoClassName,\n\ticonMap,\n\tcurrentUrl = '/',\n\tcloseDrawerOnNavigate = true,\n\tliveBadges,\n\tshowBadges = true,\n\tmenuDensity,\n\trenderLink,\n\tloading,\n\tcollapsible = 'icon',\n\tpanelId,\n\tsurface,\n\tvariant = 'sidebar',\n\tside,\n\tclassName,\n\tsurfaceClassName,\n\tcontentClassName,\n\tslots,\n\trenderItem,\n\trenderItemContent,\n\tsearchable = false,\n\tsearchValue,\n\tdefaultSearchValue = '',\n\tonSearchValueChange,\n\tstrings: stringsProp,\n\texpandedItems,\n\tdefaultExpandedItems,\n\tonExpandedItemsChange,\n}: AppSidebarProps) {\n\tconst strings = useStrings(defaultSidebarNavigationStrings, stringsProp);\n\tconst selectedSidebar = useLayoutSidebar(panelId);\n\tuseDismissSidebarDrawerOnNavigate(selectedSidebar, currentUrl, closeDrawerOnNavigate);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst [localSearch, setLocalSearch] = React.useState(defaultSearchValue);\n\tconst query = searchValue ?? localSearch;\n\tconst isLoading = loading || !navigationGroups;\n\tconst iconCollapsed = collapsible === 'icon' && selectedSidebar.collapsed;\n\tconst searchRef = React.useRef<HTMLInputElement | null>(null);\n\tconst focusSearchAfterExpansion = React.useRef(false);\n\tReact.useLayoutEffect(() => {\n\t\tif (!focusSearchAfterExpansion.current || iconCollapsed) return;\n\t\tconst input = searchRef.current;\n\t\tif (!input) return;\n\t\tfocusSearchAfterExpansion.current = false;\n\t\tinput.focus({ preventScroll: true });\n\t}, [iconCollapsed]);\n\tconst hasWorkspaceLinks = workspaceLinks.length > 0;\n\tconst hasHeaderStart = slots?.headerStart != null && slots.headerStart !== false;\n\tconst hasHeaderEnd = slots?.headerEnd != null && slots.headerEnd !== false;\n\tconst context = {\n\t\tpanelId: selectedSidebar.panelId,\n\t\tcollapsed: selectedSidebar.collapsed,\n\t\tpresentation: selectedSidebar.presentation,\n\t\tisMobile: selectedSidebar.isMobile,\n\t\trenderLink: resolvedRenderLink,\n\t};\n\tconst branding = !!logo && (hasWorkspaceLinks ? <SidebarWorkspaceDropdown\n\t\t\tlogo={logo} collapsedLogo={collapsedLogo} workspaceLinks={workspaceLinks}\n\t\t\tstrings={workspaceStrings} contentClassName={workspaceContentClassName}\n\t\t\trenderLink={resolvedRenderLink}\n\t\t/> : <SidebarLogo logo={logo} collapsedLogo={collapsedLogo} className={logoClassName} />);\n\tconst defaultHeader = (!!logo || !!slots?.headerStart || !!slots?.headerEnd) ? <>\n\t\t{slots?.headerStart}\n\t\t{branding}\n\t\t{slots?.headerEnd}\n\t</> : null;\n\t// Node headers retain the original full-replacement seam. Callback headers\n\t// receive content only, so the library owns their padded, pinned region.\n\tconst headerContent = resolveSlot(slots?.header, context, defaultHeader);\n\tconst searchInput = searchable ? <div data-slot=\"sidebar-search\" className=\"relative min-w-0\">\n\t\t<div className={cn('min-w-0',iconCollapsed && 'invisible')} aria-hidden={iconCollapsed || undefined} inert={iconCollapsed || undefined}>\n\t\t<Input ref={searchRef} className=\"sidebar-input--component\" data-slot=\"sidebar-input\" data-sidebar=\"input\" aria-label={strings.search} placeholder={strings.search} value={query} disabled={isLoading} onChange={event => {\n\t\t\tif (searchValue === undefined) setLocalSearch(event.target.value);\n\t\t\tonSearchValueChange?.(event.target.value);\n\t\t}} />\n\t\t</div>\n\t\t<Button iconOnly icon={Search} tone=\"secondary\" buttonStyle=\"ghost\" aria-label={strings.search} withTooltip={strings.search}\n\t\t\tclassName={cn('absolute inset-0 h-full w-full shrink-0', !iconCollapsed && 'hidden')} disabled={isLoading} onClick={() => {\n\t\t\t\tfocusSearchAfterExpansion.current = true;\n\t\t\t\tselectedSidebar.setOpen(true);\n\t\t\t}} />\n\t</div> : null;\n\tconst replacesHeader = slots?.header != null && typeof slots.header !== 'function';\n\tconst header = replacesHeader\n\t\t? <>{headerContent}{searchInput && <SidebarHeader>{searchInput}</SidebarHeader>}</>\n\t\t: logo && slots?.header == null ? <SidebarHeader className={cn('gap-0 p-0', headerClassName)}>\n\t\t\t{hasHeaderStart && <div className=\"p-surface-xs\">{slots?.headerStart}</div>}\n\t\t\t<div data-slot=\"sidebar-brand\" className=\"box-border flex h-shell-header min-w-0 shrink-0 items-center border-b border-border px-surface-xs\">\n\t\t\t\t{branding}\n\t\t\t</div>\n\t\t\t{(hasHeaderEnd || searchInput) && <div className=\"flex min-w-0 flex-col gap-space-md p-surface-xs\">\n\t\t\t\t{slots?.headerEnd}\n\t\t\t\t{searchInput}\n\t\t\t</div>}\n\t\t</SidebarHeader> : ((headerContent != null && headerContent !== false) || searchInput) ? <SidebarHeader className={cn('gap-space-md', headerClassName)}>\n\t\t\t{headerContent}\n\t\t\t{searchInput}\n\t\t</SidebarHeader> : null;\n\tconst defaultFooter = footerNavItems.length ? <SidebarNavigationFooter\n\t\tclassName=\"p-0\" items={footerNavItems} label={footerLabel} currentUrl={currentUrl}\n\t\ticonMap={iconMap} liveBadges={liveBadges} showBadges={showBadges}\n\t\tmenuDensity={menuDensity} renderLink={resolvedRenderLink}\n\t/> : null;\n\tconst footer = resolveSlot(slots?.footer, context, defaultFooter);\n\tconst beforeNavigation = resolveSlot(slots?.beforeNavigation, context, null);\n\tconst afterNavigation = resolveSlot(slots?.afterNavigation, context, null);\n\n\treturn (\n\t\t<LayoutSidebar panelId={panelId} surface={surface} collapsible={collapsible} variant={variant} side={side} className={cn('app-sidebar--component h-full min-h-0', className)} surfaceClassName={surfaceClassName}>\n\t\t\t{header}\n\n\t\t\t<SidebarContent className={cn(\"overflow-hidden\", contentClassName)}>\n\t\t\t\t<ScrollArea className={cn('min-h-0 flex-1 pb-surface-xs', !searchable && 'pt-surface-xs')}>\n\t\t\t\t\t{/* One group gap separates slot groups and navigation groups alike. */}\n\t\t\t\t\t<nav aria-label={navigationLabel ?? (selectedSidebar.panelId === 'secondary' ? 'Contextual navigation' : selectedSidebar.panelId === 'aside' ? 'Supporting navigation' : 'Primary navigation')} className=\"app-sidebar--navigation flex flex-col gap-space-xl\">\n\t\t\t\t\t\t{beforeNavigation}\n\t\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\t\tslots?.loading ?? <AppSidebarSkeleton />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<SidebarGroupedNavigation\n\t\t\t\t\t\t\t\tnavigationByGroups={navigationGroups}\n\t\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\t\tsearchValue={query}\n\t\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t\t\texpandedItems={expandedItems}\n\t\t\t\t\t\t\t\tdefaultExpandedItems={defaultExpandedItems}\n\t\t\t\t\t\t\t\tonExpandedItemsChange={onExpandedItemsChange}\n\t\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\t\tshowBadges={showBadges}\n\t\t\t\t\t\t\t\tmenuDensity={menuDensity}\n\t\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\t\temptySlot={slots?.empty}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\trenderItemContent={renderItemContent}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{afterNavigation}\n\t\t\t\t\t</nav>\n\t\t\t\t</ScrollArea>\n\t\t\t</SidebarContent>\n\n\t\t\t{footer != null && footer !== false && <SidebarFooter>{footer}</SidebarFooter>}\n\t\t</LayoutSidebar>\n\t);\n}\n\nfunction resolveSlot(slot: SidebarSlot | undefined, context: Omit<SidebarSlotContext, 'defaultContent'>, defaultContent: React.ReactNode) {\n\treturn typeof slot === 'function' ? slot({ ...context, defaultContent }) : slot ?? defaultContent;\n}\n\nfunction AppSidebarSkeleton() {\n\tconst groups = [9, 3, 4, 2, 1];\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-space-xl\">\n\t\t\t{groups.map((count, groupIdx) => (\n\t\t\t\t<SidebarGroup key={groupIdx} className=\"py-0\">\n\t\t\t\t\t<SidebarMenu>\n\t\t\t\t\t\t{Array.from({ length: count }, (_, i) => (\n\t\t\t\t\t\t\t<SidebarMenuItem key={i}>\n\t\t\t\t\t\t\t\t<div className=\"flex h-action-sm items-center gap-space-md px-control-sm\">\n\t\t\t\t\t\t\t\t\t<Skeleton className=\"size-icon shrink-0 rounded-radius-xs\" />\n\t\t\t\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\t\t\t\tclassName=\"h-3.5 rounded-radius-xs\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ width: `${60 + ((groupIdx * 7 + i * 13) % 40)}px` }}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SidebarMenu>\n\t\t\t\t</SidebarGroup>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n","/** Primary area navigation, distinct from SidebarRail's collapse affordance. */\nimport type { ComponentType, CSSProperties, ReactElement } from 'react';\n\nimport { ScrollArea } from '../../base/display/scroll-area';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../../base/display/tooltip';\nimport { SidebarContent, SidebarFooter, SidebarGroup, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from '../../base/sidebar';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport { useLayoutLinkRenderer } from '../hooks';\nimport type { LayoutIconSource, LayoutNavigationAdapter } from '../layout.types';\nimport { LayoutSidebar, type LayoutSidebarProps } from './sidebar';\nimport { useDismissSidebarDrawerOnNavigate, useLayoutSidebar } from './sidebar.context';\nimport type { SidebarFlatNavItem, SidebarSlot, SidebarSlotContext } from './sidebar.types';\nimport { DynamicIcon, getCurrentNavigationHref, getNavKey, renderSidebarLink } from './sidebar.utils';\n\nexport type SidebarNavigationRailItem = SidebarFlatNavItem & {\n\t/** Informative area icon; the full label remains accessible. */\n\ticon: LayoutIconSource;\n} & ({ id: string } | { handle: string });\n\nexport interface SidebarNavigationRailProps extends Omit<LayoutSidebarProps, 'children' | 'collapsible'>, LayoutNavigationAdapter {\n\titems: readonly SidebarNavigationRailItem[];\n\t/** Selected item id (or its legacy handle). Controlled. */\n\tvalue?: string;\n\tonValueChange?: (id: string) => void;\n\t/** Used for native current-route indication when value is omitted. */\n\tcurrentUrl?: string;\n\t/** Close this already-open drawer when currentUrl, or the fallback value, changes. @default true */\n\tcloseDrawerOnNavigate?: boolean;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\t/** Structural content seams. Header/footer stay pinned; navigation additions scroll. The rail owns each region's insets. */\n\tslots?: {\n\t\theader?: SidebarSlot;\n\t\tbeforeNavigation?: SidebarSlot;\n\t\tafterNavigation?: SidebarSlot;\n\t\tfooter?: SidebarSlot;\n\t};\n\t/** The rail stays visible by default; offcanvas makes the entire rail hideable. */\n\tcollapsible?: 'none' | 'offcanvas';\n\t/** Accessible name for this navigation region. @default 'Primary navigation' */\n\t'aria-label'?: string;\n}\n\nexport function SidebarNavigationRail({\n\titems, value, onValueChange, currentUrl, closeDrawerOnNavigate = true, renderLink, iconMap, slots,\n\tcollapsible = 'none', 'aria-label': ariaLabel = 'Primary navigation',\n\tclassName, surface = 'default', surfaceClassName, style, side, panelId, ...props\n}: SidebarNavigationRailProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst selectedSidebar = useLayoutSidebar(panelId);\n\tuseDismissSidebarDrawerOnNavigate(selectedSidebar, currentUrl ?? value, closeDrawerOnNavigate);\n\tconst resolvedSide = side ?? selectedSidebar.side;\n\tconst currentHref = value === undefined && currentUrl ? getCurrentNavigationHref(currentUrl, items) : undefined;\n\tconst context: SidebarSlotContext = {\n\t\tpanelId: selectedSidebar.panelId,\n\t\tcollapsed: selectedSidebar.collapsed,\n\t\tpresentation: selectedSidebar.presentation,\n\t\tisMobile: selectedSidebar.isMobile,\n\t\trenderLink: resolvedRenderLink,\n\t\tdefaultContent: null,\n\t};\n\tconst resolveSlot = (slot: SidebarSlot | undefined) => typeof slot === 'function' ? slot(context) : slot;\n\tconst header = resolveSlot(slots?.header);\n\tconst footer = resolveSlot(slots?.footer);\n\tconst beforeNavigation = resolveSlot(slots?.beforeNavigation);\n\tconst afterNavigation = resolveSlot(slots?.afterNavigation);\n\treturn <LayoutSidebar\n\t\t{...props}\n\t\tpanelId={panelId}\n\t\tside={side}\n\t\tcollapsible={collapsible}\n\t\tsurface={surface}\n\t\tsurfaceClassName={cn(\n\t\t\t'border-border', resolvedSide === 'left' ? 'border-r' : 'border-l',\n\t\t\tsurface === 'default' && 'bg-background text-foreground',\n\t\t\tsurfaceClassName,\n\t\t)}\n\t\tclassName={cn('sidebar-navigation-rail--component', className)}\n\t\tstyle={{ '--sidebar-width': 'var(--shell-navigation-rail-width)', ...style } as CSSProperties}\n\t>\n\t\t{header != null && header !== false && <SidebarHeader className=\"items-center px-space-md pt-surface-xs pb-0\">{header}</SidebarHeader>}\n\t\t<SidebarContent className=\"overflow-hidden\">\n\t\t\t<ScrollArea className=\"min-h-0 flex-1\">\n\t\t\t\t<nav aria-label={ariaLabel} className={cn('flex flex-col gap-space-xl pb-surface-xs', header != null && header !== false ? 'pt-space-xs' : 'pt-surface-xs')}>\n\t\t\t\t\t{beforeNavigation}\n\t\t\t\t\t<SidebarGroup className=\"items-center px-space-md py-0\">\n\t\t\t\t\t\t<SidebarMenu menuDensity=\"comfortable\" className=\"items-center gap-space-xs\">\n\t\t\t\t\t\t\t{items.map(item => {\n\t\t\t\t\t\t\t\tconst id = String(getNavKey(item));\n\t\t\t\t\t\t\t\tconst active = value !== undefined ? value === id : !!item.href && item.href === currentHref;\n\t\t\t\t\t\t\t\tconst content = <>\n\t\t\t\t\t\t\t\t\t<DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-icon\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" className=\"sr-only\">{item.label}</Text>\n\t\t\t\t\t\t\t\t</>;\n\t\t\t\t\t\t\t\treturn <SidebarMenuItem key={id}>\n\t\t\t\t\t\t\t\t\t<Tooltip disabled={item.disabled}>\n\t\t\t\t\t\t\t\t\t\t<TooltipTrigger render={<SidebarMenuButton\n\t\t\t\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\t\t\t\taria-current={item.href && active ? 'page' : undefined}\n\t\t\t\t\t\t\t\t\t\t\taria-pressed={!item.href ? active : undefined}\n\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'relative size-action shrink-0 justify-center p-0 text-foreground hover:bg-accent hover:text-accent-foreground active:bg-accent active:text-accent-foreground data-active:bg-accent data-active:text-accent-foreground data-[active=true]:bg-accent data-[active=true]:text-accent-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\tactive && 'before:pointer-events-none before:absolute before:inset-y-space-md before:start-0 before:w-space-2xs before:rounded-full before:bg-foreground',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\trender={item.href && !item.disabled ? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as ReactElement : <button type=\"button\" />}\n\t\t\t\t\t\t\t\t\t\t\tonClickCapture={event => {\n\t\t\t\t\t\t\t\t\t\t\t\t// Observe a normal activation while preserving native and router\n\t\t\t\t\t\t\t\t\t\t\t\t// navigation, including modified clicks that open another tab.\n\t\t\t\t\t\t\t\t\t\t\t\tif (item.disabled || event.defaultPrevented || event.button !== 0 || event.ctrlKey || event.metaKey || event.altKey || event.shiftKey) return;\n\t\t\t\t\t\t\t\t\t\t\t\tonValueChange?.(id);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>{content}</SidebarMenuButton>} />\n\t\t\t\t\t\t\t\t\t\t<TooltipContent side={resolvedSide === 'left' ? 'right' : 'left'}>{item.label}</TooltipContent>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t</SidebarMenuItem>;\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{afterNavigation}\n\t\t\t\t</nav>\n\t\t\t</ScrollArea>\n\t\t</SidebarContent>\n\t\t{footer != null && footer !== false && <SidebarFooter className=\"items-center px-space-md py-surface-xs\">{footer}</SidebarFooter>}\n\t</LayoutSidebar>;\n}\n","/** SidebarNavigation — flat, framework-neutral sidebar nav list. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '../../../base/sidebar';\nimport { Text } from '../../../typography';\nimport { useBaseSidebarMenuDensity } from '../../../base/sidebar/sidebar';\nimport { cn } from '../../../../lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarFlatNavigationProps, SidebarFlatNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetCurrentNavigationHref,\n\tgetNavKey,\n\tgetNavLabel,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n} from '../sidebar.utils';\n\nfunction NavLabel({ item }: { item: SidebarFlatNavItem }) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" weight=\"inherit\" className=\"min-w-0 flex-1 truncate text-start text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarNavigation({\n\titems,\n\tlabel = 'Platform',\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\tshowBadges = true,\n\trenderLink,\n\trenderItem,\n\trenderItemContent,\n\tclassName,\n\tmenuDensity,\n}: SidebarFlatNavigationProps) {\n\tconst inheritedMenuDensity = useBaseSidebarMenuDensity();\n\tconst resolvedMenuDensity = menuDensity ?? inheritedMenuDensity ?? 'default';\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink });\n\tconst currentHref = getCurrentNavigationHref(currentUrl, items);\n\n\treturn (\n\t\t<SidebarGroup className={cn('sidebar-navigation--component py-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarMenu menuDensity={resolvedMenuDensity}>\n\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\tconst active = !!item.href && item.href === currentHref;\n\t\t\t\t\tconst badge = showBadges ? resolveNavBadge(item.handle, item.badge, liveBadges, item.id) : undefined;\n\t\t\t\t\tconst context: SidebarRenderItemContext = {\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tactive,\n\t\t\t\t\t\texpanded: false,\n\t\t\t\t\t\tdisabled: !!item.disabled,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\trenderLink: resolvedRenderLink,\n\t\t\t\t\t};\n\t\t\t\t\tconst labelNode = getNavLabel(item);\n\n\t\t\t\t\tif (renderItem) {\n\t\t\t\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst defaultContent = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-icon\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t<NavLabel item={item} />\n\t\t\t\t\t\t\t{badge !== undefined && <NavBadge value={badge} />}\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst content = renderItemContent ? renderItemContent(item, { ...context, defaultContent }) : defaultContent;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</SidebarMenu>\n\t\t</SidebarGroup>\n\t);\n}\n"," \n/** SidebarNavigationUser — user profile dropdown for sidebar footer. */\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { ActionMenu, type ActionMenuAction } from '../../../base/action-menu';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../../base/avatar';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuTrigger,\n} from '../../../base/navigation/dropdown-menu';\nimport { formatInitials } from '../../../primitives/initials-format';\nimport { Text } from '../../../typography';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '../../../base/sidebar';\nimport { useStrings, type StringsProp } from '../../../../lib/strings';\nimport { cn } from '../../../../lib/utils';\n\nimport type { LayoutUser } from '../../layout.types';\nimport { useLayoutSidebar } from '../sidebar.context';\nimport { Stack } from '../../../base/structure';\n\nexport interface SidebarNavigationUserStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultSidebarNavigationUserStrings: SidebarNavigationUserStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface SidebarNavigationUserProps {\n\t/** The signed-in user shown in the menu. */\n\tuser: LayoutUser;\n\t/** Extra content appended inside the menu. */\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<SidebarNavigationUserStrings>;\n\t/** Replaces the default trigger element. */\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nexport function SidebarNavigationUser({\n\tuser,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\tstrings: stringsProp,\n\trenderTrigger,\n}: SidebarNavigationUserProps) {\n\tconst strings = useStrings(defaultSidebarNavigationUserStrings, stringsProp);\n\tconst { collapsed, isMobile } = useLayoutSidebar();\n\tconst dropdownSide = isMobile || !collapsed ? 'bottom' : 'right';\n\tconst initials = formatInitials(user.name, { strategy: 'first-words' });\n\n\t// Profile and settings together; sign-out held apart by a captionless rule.\n\tconst actions: ActionMenuAction[] = [\n\t\t...(onProfile ? [{ id: 'profile', label: strings.profile, icon: User, onClick: onProfile }] : []),\n\t\t...(onSettings ? [{ id: 'settings', label: strings.settings, icon: Settings, onClick: onSettings }] : []),\n\t\t...(onLogout\n\t\t\t? [{\n\t\t\t\tid: 'logout',\n\t\t\t\tlabel: strings.logout,\n\t\t\t\ticon: LogOut,\n\t\t\t\tonClick: onLogout,\n\t\t\t\t...(onProfile || onSettings ? { group: true as const } : null),\n\t\t\t}]\n\t\t\t: []),\n\t];\n\n\tconst triggerElement = (\n\t\t<SidebarMenuButton\n\t\t\tsize={collapsed ? 'md' : 'lg'}\n\t\t\taria-label={user.name}\n\t\t\ttooltip={user.name}\n\t\t\tclassName={cn('group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent', collapsed && 'justify-center group-data-[collapsible=icon]:p-0!')}\n\t\t>\n\t\t\t{renderTrigger?.(user) ?? (\n\t\t\t\t<>\n\t\t\t\t\t<Stack direction=\"horizontal\" align=\"center\" gap={collapsed ? 'none' : 'md'} className={cn('min-w-0 flex-1', collapsed && 'justify-center')}>\n\t\t\t\t\t\t<Avatar className=\"size-avatar shrink-0 rounded-full\">\n\t\t\t\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t\t\t\t<AvatarFallback className=\"bg-sidebar-accent text-xs text-sidebar-accent-foreground\">\n\t\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t{!collapsed && <div className=\"flex flex-1 flex-col items-start justify-center overflow-hidden\">\n\t\t\t\t\t\t\t<Text type=\"inherit\" weight=\"medium\" className=\"w-full truncate\">{user.name}</Text>\n\t\t\t\t\t\t\t{!!user.email && <Text size=\"xs\" type=\"secondary\" className=\"w-full truncate\">{user.email}</Text>}\n\t\t\t\t\t\t</div>}\n\t\t\t\t\t</Stack>\n\t\t\t\t\t{!collapsed && <ChevronsUpDown className=\"ml-auto size-icon shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</SidebarMenuButton>\n\t);\n\n\tconst contentClasses = 'w-(--anchor-width) min-w-56 rounded-surface';\n\n\treturn (\n\t\t<SidebarMenu className=\"sidebar-navigation-user--component\">\n\t\t\t<SidebarMenuItem>\n\t\t\t\t{customContent ? (\n\t\t\t\t\t// A replaced body is a plain dropdown, not a command list, so it\n\t\t\t\t\t// keeps the primitive rather than bending ActionMenu around it.\n\t\t\t\t\t<DropdownMenu>\n\t\t\t\t\t\t<DropdownMenuTrigger render={triggerElement} />\n\t\t\t\t\t\t<DropdownMenuContent\n\t\t\t\t\t\t\tclassName={contentClasses}\n\t\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\t\tside={dropdownSide}\n\t\t\t\t\t\t\tsideOffset={4}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{customContent}\n\t\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) : (\n\t\t\t\t\t<ActionMenu\n\t\t\t\t\t\tactions={actions}\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tside={dropdownSide}\n\t\t\t\t\t\tcontentClassName={contentClasses}\n\t\t\t\t\t\twidth=\"w-auto\"\n\t\t\t\t\t\tcloseOnSelect\n\t\t\t\t\t\trenderTrigger={triggerElement}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n"],"mappings":"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"}