themelia-react-ui 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (648) hide show
  1. package/CHANGELOG.md +185 -0
  2. package/README.md +168 -36
  3. package/dist/{accordion-Cjb6sx0G.js → accordion-B9MHG0cT.js} +11 -11
  4. package/dist/accordion-B9MHG0cT.js.map +1 -0
  5. package/dist/action-menu-Dr8K-ghE.js +284 -0
  6. package/dist/action-menu-Dr8K-ghE.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-tF36bREk.js → affordance-geometry.generated-P-aVJisu.js} +42 -36
  8. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  9. package/dist/{ai-artifact-DvTwDVyL.js → ai-artifact-C58tQcBy.js} +387 -350
  10. package/dist/ai-artifact-C58tQcBy.js.map +1 -0
  11. package/dist/app-shell-B_IuNWOo.js +321 -0
  12. package/dist/app-shell-B_IuNWOo.js.map +1 -0
  13. package/dist/{attachment-BxDfL2mw.js → attachment-Dg_69lPS.js} +9 -9
  14. package/dist/{attachment-BxDfL2mw.js.map → attachment-Dg_69lPS.js.map} +1 -1
  15. package/dist/{auth-BGua8ouh.js → auth-DTkkshS8.js} +44 -47
  16. package/dist/auth-DTkkshS8.js.map +1 -0
  17. package/dist/{avatar-DAPlDvhJ.js → avatar-CeZaFmNH.js} +8 -8
  18. package/dist/avatar-CeZaFmNH.js.map +1 -0
  19. package/dist/{badge-HpFqoqSY.js → badge-xIiV_E7f.js} +5 -5
  20. package/dist/{badge-HpFqoqSY.js.map → badge-xIiV_E7f.js.map} +1 -1
  21. package/dist/base/accordion.js +1 -1
  22. package/dist/base/action-menu.js +1 -1
  23. package/dist/base/attachment.js +1 -1
  24. package/dist/base/avatar.js +1 -1
  25. package/dist/base/badge.js +1 -1
  26. package/dist/base/batch-action-bar.js +1 -1
  27. package/dist/base/buttons.js +1 -1
  28. package/dist/base/cards.js +2 -2
  29. package/dist/base/carousel.js +3 -3
  30. package/dist/base/cascader.js +2 -372
  31. package/dist/base/chart.js +1 -1
  32. package/dist/base/choice-inputs.js +2 -2
  33. package/dist/base/code-block.js +1 -1
  34. package/dist/base/combobox.js +2 -2
  35. package/dist/base/command.js +1 -1
  36. package/dist/base/copyable.js +1 -1
  37. package/dist/base/date-pickers.js +2 -2
  38. package/dist/base/display.js +6 -6
  39. package/dist/base/feedback.js +3 -3
  40. package/dist/base/forms-numeric.js +1 -1
  41. package/dist/base/forms.js +3 -3
  42. package/dist/base/inline-edit.js +10 -10
  43. package/dist/base/item.js +1 -1
  44. package/dist/base/media-gallery.js +1 -1
  45. package/dist/base/metadata-list.js +1 -1
  46. package/dist/base/navigation.js +7 -7
  47. package/dist/base/popover-menu.js +1 -1
  48. package/dist/base/popover.js +1 -1
  49. package/dist/base/qr-code.js +1 -1
  50. package/dist/base/repeaters.js +12 -12
  51. package/dist/base/repeaters.js.map +1 -1
  52. package/dist/base/sheet.js +1 -1
  53. package/dist/base/sidebar.js +2 -2
  54. package/dist/base/signature-pad.js +7 -7
  55. package/dist/base/signature-pad.js.map +1 -1
  56. package/dist/base/skeleton.js +1 -1
  57. package/dist/base/spinner.js +4 -4
  58. package/dist/base/structure.js +1 -1
  59. package/dist/base/table.js +1 -1
  60. package/dist/base/text-inputs.js +2 -2
  61. package/dist/base/toaster.js +36 -36
  62. package/dist/base/toaster.js.map +1 -1
  63. package/dist/base/tree.js +1 -1
  64. package/dist/base/upload-queue.js +1 -1
  65. package/dist/base/upload.js +3 -3
  66. package/dist/base/value-inputs.js +1 -1
  67. package/dist/{batch-action-bar-DnUJ21NQ.js → batch-action-bar-Cb8cuvyy.js} +6 -6
  68. package/dist/batch-action-bar-Cb8cuvyy.js.map +1 -0
  69. package/dist/blocks/admin.js +23 -23
  70. package/dist/blocks/admin.js.map +1 -1
  71. package/dist/blocks/ai.js +230 -216
  72. package/dist/blocks/ai.js.map +1 -1
  73. package/dist/blocks/analytics/usage-card.js +1 -1
  74. package/dist/blocks/analytics.js +326 -307
  75. package/dist/blocks/analytics.js.map +1 -1
  76. package/dist/blocks/collaboration.js +1 -1
  77. package/dist/blocks/commerce/receipt.js +1 -1
  78. package/dist/blocks/commerce.js +1247 -1169
  79. package/dist/blocks/commerce.js.map +1 -1
  80. package/dist/blocks/data-display.js +2 -2
  81. package/dist/blocks/onboarding.js +6 -6
  82. package/dist/blocks/onboarding.js.map +1 -1
  83. package/dist/blocks/planning.js +11 -11
  84. package/dist/blocks/timelines.js +1 -1
  85. package/dist/{breadcrumbs-C-oqs1sQ.js → breadcrumbs-J-K2kl4c.js} +6 -6
  86. package/dist/{breadcrumbs-C-oqs1sQ.js.map → breadcrumbs-J-K2kl4c.js.map} +1 -1
  87. package/dist/{button-DVzspB_G.js → button-S2Cubiiz.js} +3 -3
  88. package/dist/button-S2Cubiiz.js.map +1 -0
  89. package/dist/{buttons-DPZekJFu.js → buttons-BedGfygC.js} +16 -16
  90. package/dist/buttons-BedGfygC.js.map +1 -0
  91. package/dist/cards-rNX1M4Xn.js +69 -0
  92. package/dist/cards-rNX1M4Xn.js.map +1 -0
  93. package/dist/cascader-B1MiqkBq.js +439 -0
  94. package/dist/cascader-B1MiqkBq.js.map +1 -0
  95. package/dist/chart-Darg_0Kv.js +162 -0
  96. package/dist/chart-Darg_0Kv.js.map +1 -0
  97. package/dist/{checkbox-AWIhNhmo.js → checkbox-fflqmODR.js} +9 -5
  98. package/dist/checkbox-fflqmODR.js.map +1 -0
  99. package/dist/choice-inputs-zUgBZfE4.js +777 -0
  100. package/dist/choice-inputs-zUgBZfE4.js.map +1 -0
  101. package/dist/{code-block-DeneBJR_.js → code-block-BzmM9Eig.js} +9 -9
  102. package/dist/code-block-BzmM9Eig.js.map +1 -0
  103. package/dist/{collapsible-C-_l4hpy.js → collapsible-BkAI_XD4.js} +5 -5
  104. package/dist/{collapsible-C-_l4hpy.js.map → collapsible-BkAI_XD4.js.map} +1 -1
  105. package/dist/{collection-content-By56pLog.js → collection-content-gDh1v6O4.js} +3 -3
  106. package/dist/{collection-content-By56pLog.js.map → collection-content-gDh1v6O4.js.map} +1 -1
  107. package/dist/combobox-BEx0vJgF.js +362 -0
  108. package/dist/combobox-BEx0vJgF.js.map +1 -0
  109. package/dist/{combobox-Dxo2fAYQ.js → combobox-BwzoXFSG.js} +254 -247
  110. package/dist/combobox-BwzoXFSG.js.map +1 -0
  111. package/dist/{command-C25VMRII.js → command-CrlPIL6m.js} +12 -12
  112. package/dist/command-CrlPIL6m.js.map +1 -0
  113. package/dist/{comments-DD0DUPwJ.js → comments-Dmpp0YIc.js} +380 -379
  114. package/dist/comments-Dmpp0YIc.js.map +1 -0
  115. package/dist/components/base/action-menu/action-menu.d.ts +9 -1
  116. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  117. package/dist/components/base/cards/card.recipes.d.ts +16 -7
  118. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  119. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  120. package/dist/components/base/cards/smart-card.types.d.ts +11 -7
  121. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  122. package/dist/components/base/chart/chart.d.ts +6 -1
  123. package/dist/components/base/choice-inputs/checkbox.d.ts +7 -2
  124. package/dist/components/base/choice-inputs/choice-types.d.ts +1 -1
  125. package/dist/components/base/choice-inputs/switch-card.d.ts +7 -0
  126. package/dist/components/base/choice-inputs/toggle-field.d.ts +7 -0
  127. package/dist/components/base/combobox/index.d.ts +4 -2
  128. package/dist/components/base/date-pickers/datepicker.types.d.ts +7 -0
  129. package/dist/components/base/feedback/alert.d.ts +1 -1
  130. package/dist/components/base/forms/controlled-form-field.d.ts +6 -6
  131. package/dist/components/base/forms/form-field.d.ts +5 -3
  132. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  133. package/dist/components/base/forms/index.d.ts +1 -0
  134. package/dist/components/base/forms/server-errors.d.ts +16 -0
  135. package/dist/components/base/forms/workflow.d.ts +11 -2
  136. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -0
  137. package/dist/components/base/metadata-list/metadata-list.d.ts +3 -1
  138. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  139. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  140. package/dist/components/base/navigation/page-header/page-header.d.ts +13 -4
  141. package/dist/components/base/popover/popover.d.ts +3 -3
  142. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  143. package/dist/components/base/sheet/sheet.d.ts +2 -0
  144. package/dist/components/base/sidebar/index.d.ts +1 -1
  145. package/dist/components/base/sidebar/sidebar.d.ts +27 -5
  146. package/dist/components/base/structure/composition.recipes.d.ts +17 -0
  147. package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +7 -2
  148. package/dist/components/base/text-inputs/input.d.ts +4 -2
  149. package/dist/components/base/text-inputs/textarea.d.ts +4 -2
  150. package/dist/components/base/toaster/index.d.ts +1 -0
  151. package/dist/components/base/value-inputs/date-time-input.d.ts +2 -1
  152. package/dist/components/base/value-inputs/slider.d.ts +5 -1
  153. package/dist/components/base/value-inputs/tags-input.d.ts +5 -1
  154. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  155. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +3 -1
  156. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  157. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  158. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  159. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  160. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  161. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  162. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  163. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  164. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  165. package/dist/components/blocks/commerce/index.d.ts +7 -6
  166. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  167. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  168. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  169. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  170. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  171. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  172. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  173. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  174. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  175. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  176. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  177. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  178. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  179. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  180. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  181. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  182. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  183. package/dist/components/features/activities/activities.types.d.ts +8 -2
  184. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  185. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  186. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  187. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  188. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  189. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  190. package/dist/components/features/filters/filters.types.d.ts +3 -0
  191. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  192. package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
  193. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  194. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  195. package/dist/components/features/filters/utils/filter-utils.d.ts +21 -3
  196. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  197. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  198. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  199. package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
  200. package/dist/components/features/media-library/media-library.types.d.ts +14 -4
  201. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  202. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  203. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  204. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  205. package/dist/components/features/products/products.strings.d.ts +9 -1
  206. package/dist/components/features/products/products.types.d.ts +43 -6
  207. package/dist/components/features/resource/resource.d.ts +5 -1
  208. package/dist/components/features/resource/resource.types.d.ts +12 -1
  209. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  210. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  211. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  212. package/dist/components/features/table/table.types.d.ts +1 -1
  213. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  214. package/dist/components/layout/app-shell/index.d.ts +1 -1
  215. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  216. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  217. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  218. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  219. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  220. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  221. package/dist/components/layout/header/header.types.d.ts +6 -6
  222. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  223. package/dist/components/layout/page/index.d.ts +2 -1
  224. package/dist/components/layout/page/page.d.ts +1 -0
  225. package/dist/components/layout/page/page.strings.d.ts +11 -0
  226. package/dist/components/layout/page/page.types.d.ts +69 -17
  227. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  228. package/dist/components/layout/settings/settings.d.ts +9 -2
  229. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  230. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  231. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  232. package/dist/components/layout/sidebar/index.d.ts +2 -1
  233. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +36 -0
  234. package/dist/components/layout/sidebar/sidebar.context.d.ts +5 -7
  235. package/dist/components/layout/sidebar/sidebar.types.d.ts +48 -10
  236. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  237. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  238. package/dist/components/typography/text.styles.d.ts +26 -1
  239. package/dist/components/ui/alert-dialog.d.ts +2 -2
  240. package/dist/components/ui/combobox.d.ts +1 -1
  241. package/dist/components/ui/dialog.d.ts +2 -2
  242. package/dist/components/ui/overlay-layer.d.ts +18 -0
  243. package/dist/components/ui/sheet.d.ts +5 -1
  244. package/dist/components/ui/sidebar-state.d.ts +82 -0
  245. package/dist/components/ui/sidebar.d.ts +5 -17
  246. package/dist/composition.recipes-COdiFhxB.js +19 -0
  247. package/dist/composition.recipes-COdiFhxB.js.map +1 -0
  248. package/dist/containers-CIxwbZt5.js +112 -0
  249. package/dist/containers-CIxwbZt5.js.map +1 -0
  250. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  251. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  252. package/dist/{copyable-ClBuk_UK.js → copyable-DIznBqiT.js} +7 -7
  253. package/dist/{copyable-ClBuk_UK.js.map → copyable-DIznBqiT.js.map} +1 -1
  254. package/dist/{data-display-DT_khPl_.js → data-display-BdgCAw8T.js} +277 -285
  255. package/dist/data-display-BdgCAw8T.js.map +1 -0
  256. package/dist/{date-DCrsDTZc.js → date-Cq8ioE4o.js} +5 -5
  257. package/dist/{date-DCrsDTZc.js.map → date-Cq8ioE4o.js.map} +1 -1
  258. package/dist/{date-picker-B2K3ucWn.js → date-picker-RlIzKom_.js} +501 -480
  259. package/dist/date-picker-RlIzKom_.js.map +1 -0
  260. package/dist/date-pickers-DY-CpXS1.js +179 -0
  261. package/dist/date-pickers-DY-CpXS1.js.map +1 -0
  262. package/dist/{display-hAc1HjpI.js → display-KsZLw9Ov.js} +9 -9
  263. package/dist/{display-hAc1HjpI.js.map → display-KsZLw9Ov.js.map} +1 -1
  264. package/dist/dropdown-menu-CLs8Lihj.js +194 -0
  265. package/dist/dropdown-menu-CLs8Lihj.js.map +1 -0
  266. package/dist/features/activities.js +302 -253
  267. package/dist/features/activities.js.map +1 -1
  268. package/dist/features/ai-chat.js +15 -14
  269. package/dist/features/ai-chat.js.map +1 -1
  270. package/dist/features/appointment-calendar.js +222 -220
  271. package/dist/features/appointment-calendar.js.map +1 -1
  272. package/dist/features/async-preview.js +11 -10
  273. package/dist/features/async-preview.js.map +1 -1
  274. package/dist/features/combobox.js +1 -1
  275. package/dist/features/comments.js +1 -1
  276. package/dist/features/data-view.js +13 -13
  277. package/dist/features/data-view.js.map +1 -1
  278. package/dist/features/email-composer.js +249 -249
  279. package/dist/features/email-composer.js.map +1 -1
  280. package/dist/features/event-calendar.js +264 -269
  281. package/dist/features/event-calendar.js.map +1 -1
  282. package/dist/features/filters.js +1 -1
  283. package/dist/features/global-search.js +167 -138
  284. package/dist/features/global-search.js.map +1 -1
  285. package/dist/features/kanban.js +6 -7
  286. package/dist/features/kanban.js.map +1 -1
  287. package/dist/features/map.js +269 -260
  288. package/dist/features/map.js.map +1 -1
  289. package/dist/features/media-library.js +827 -777
  290. package/dist/features/media-library.js.map +1 -1
  291. package/dist/features/mentions.js +1 -1
  292. package/dist/features/overlays.js +1 -1
  293. package/dist/features/products.js +1246 -1169
  294. package/dist/features/products.js.map +1 -1
  295. package/dist/features/questionnaire.js +13 -13
  296. package/dist/features/questionnaire.js.map +1 -1
  297. package/dist/features/resource-assignment.js +8 -8
  298. package/dist/features/resource.js +127 -123
  299. package/dist/features/resource.js.map +1 -1
  300. package/dist/features/rich-text-editor.js +2 -2
  301. package/dist/features/schema-form.js +254 -253
  302. package/dist/features/schema-form.js.map +1 -1
  303. package/dist/features/suggestions.js +3 -3
  304. package/dist/features/sync.js +3 -3
  305. package/dist/features/table.js +1 -1
  306. package/dist/features/theme-tweaker.js +95 -96
  307. package/dist/features/theme-tweaker.js.map +1 -1
  308. package/dist/{feedback-BYIhtitP.js → feedback-Dm4izqFn.js} +81 -80
  309. package/dist/feedback-Dm4izqFn.js.map +1 -0
  310. package/dist/{field-affordance-recipes-DZhnIL_Y.js → field-affordance-recipes-DWcNcOjh.js} +4 -4
  311. package/dist/field-affordance-recipes-DWcNcOjh.js.map +1 -0
  312. package/dist/{filters-DJVAveHA.js → filters-DzgSJpMK.js} +693 -645
  313. package/dist/filters-DzgSJpMK.js.map +1 -0
  314. package/dist/{form-field-CwH9y77i.js → form-field-BriWAXyg.js} +14 -8
  315. package/dist/form-field-BriWAXyg.js.map +1 -0
  316. package/dist/{form-sizing-BdP_Mf5p.js → form-sizing-Bs2qFUeE.js} +4 -4
  317. package/dist/form-sizing-Bs2qFUeE.js.map +1 -0
  318. package/dist/forms-C0RGnJTe.js +216 -0
  319. package/dist/forms-C0RGnJTe.js.map +1 -0
  320. package/dist/{forms-numeric-B_jraJaQ.js → forms-numeric-DIhghX1Q.js} +295 -291
  321. package/dist/forms-numeric-DIhghX1Q.js.map +1 -0
  322. package/dist/{header-BSfIEWbI.js → header-DMMxG__r.js} +67 -63
  323. package/dist/header-DMMxG__r.js.map +1 -0
  324. package/dist/header.recipes-BigdJjw1.js +6 -0
  325. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  326. package/dist/hooks/useFormErrors.d.ts +1 -1
  327. package/dist/{hooks-ClH9thn4.js → hooks-DB6CJ4MR.js} +26 -14
  328. package/dist/hooks-DB6CJ4MR.js.map +1 -0
  329. package/dist/{icon-badge-DYKIwvOV.js → icon-badge-DZF-YjQp.js} +4 -4
  330. package/dist/{icon-badge-DYKIwvOV.js.map → icon-badge-DZF-YjQp.js.map} +1 -1
  331. package/dist/index.js +4 -5
  332. package/dist/input-CvyDQlY7.js +289 -0
  333. package/dist/input-CvyDQlY7.js.map +1 -0
  334. package/dist/input-DMBwAZmr.js +21 -0
  335. package/dist/input-DMBwAZmr.js.map +1 -0
  336. package/dist/item-DjCcM18E.js +277 -0
  337. package/dist/item-DjCcM18E.js.map +1 -0
  338. package/dist/layout/app-shell.js +1 -1
  339. package/dist/layout/auth.js +1 -1
  340. package/dist/layout/containers.js +1 -1
  341. package/dist/layout/header.js +1 -1
  342. package/dist/layout/hooks.js +1 -1
  343. package/dist/layout/navigation.js +1 -1
  344. package/dist/layout/page.js +2 -2
  345. package/dist/layout/settings.js +1 -1
  346. package/dist/layout/sidebar.js +3 -3
  347. package/dist/layout/workspace.js +1 -1
  348. package/dist/layout.js +11 -11
  349. package/dist/lib/affordance-geometry.generated.d.ts +41 -35
  350. package/dist/lib/control-group-recipes.d.ts +5 -5
  351. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  352. package/dist/lib/motion-recipes.d.ts +3 -0
  353. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  354. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  355. package/dist/lib/portal-recipes.d.ts +3 -0
  356. package/dist/lib/token-merge.generated.d.ts +13 -10
  357. package/dist/lib/ui-provider/types.d.ts +1 -1
  358. package/dist/lib/utils.js +1 -1
  359. package/dist/map-demo-tile.svg +1 -1
  360. package/dist/{media-gallery-3zIVLMWH.js → media-gallery-C-vChPmE.js} +6 -6
  361. package/dist/{media-gallery-3zIVLMWH.js.map → media-gallery-C-vChPmE.js.map} +1 -1
  362. package/dist/{mentions-CGlEJ15c.js → mentions-0_4nWuI-.js} +10 -10
  363. package/dist/{mentions-CGlEJ15c.js.map → mentions-0_4nWuI-.js.map} +1 -1
  364. package/dist/{message-DZ_ruyUV.js → message-g8p7eVtN.js} +7 -7
  365. package/dist/message-g8p7eVtN.js.map +1 -0
  366. package/dist/metadata-list-C3MkU-Om.js +443 -0
  367. package/dist/metadata-list-C3MkU-Om.js.map +1 -0
  368. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  369. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  370. package/dist/navigation-C90-oQFq.js +255 -0
  371. package/dist/navigation-C90-oQFq.js.map +1 -0
  372. package/dist/{navigation-BzhHI3lo.js → navigation-DaRjthVk.js} +101 -82
  373. package/dist/navigation-DaRjthVk.js.map +1 -0
  374. package/dist/{navigation-row-recipes-BFLCk_Aq.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  375. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  376. package/dist/{number-DbV1Dija.js → number-CRU3kGuk.js} +5 -5
  377. package/dist/{number-DbV1Dija.js.map → number-CRU3kGuk.js.map} +1 -1
  378. package/dist/overflow-tab-bar-IVFVQFV6.js +172 -0
  379. package/dist/overflow-tab-bar-IVFVQFV6.js.map +1 -0
  380. package/dist/overlays-BSgCtM2v.js +1013 -0
  381. package/dist/overlays-BSgCtM2v.js.map +1 -0
  382. package/dist/page-DUUKDAjo.js +331 -0
  383. package/dist/page-DUUKDAjo.js.map +1 -0
  384. package/dist/page-header-commands-7P3sfE9u.js +193 -0
  385. package/dist/page-header-commands-7P3sfE9u.js.map +1 -0
  386. package/dist/{pagination-BL25hu2s.js → pagination-CgCjElfu.js} +7 -7
  387. package/dist/{pagination-BL25hu2s.js.map → pagination-CgCjElfu.js.map} +1 -1
  388. package/dist/popover-B85RenIl.js +201 -0
  389. package/dist/popover-B85RenIl.js.map +1 -0
  390. package/dist/{popover-menu-Cn9rUkdc.js → popover-menu-DlnQ2zlR.js} +7 -7
  391. package/dist/{popover-menu-Cn9rUkdc.js.map → popover-menu-DlnQ2zlR.js.map} +1 -1
  392. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DdiEp0rd.js} +18 -11
  393. package/dist/popover.recipes-DdiEp0rd.js.map +1 -0
  394. package/dist/portal-recipes-BpsV_iRw.js +9 -0
  395. package/dist/portal-recipes-BpsV_iRw.js.map +1 -0
  396. package/dist/{primitives-BFK08r9M.js → primitives-ByWgGUgt.js} +6 -6
  397. package/dist/{primitives-BFK08r9M.js.map → primitives-ByWgGUgt.js.map} +1 -1
  398. package/dist/primitives.js +4 -4
  399. package/dist/{progress-B1VnCT0K.js → progress-BJhQP9WX.js} +9 -9
  400. package/dist/{progress-B1VnCT0K.js.map → progress-BJhQP9WX.js.map} +1 -1
  401. package/dist/{receipt-BVSOH3Xo.js → receipt-tOc7B3hw.js} +7 -7
  402. package/dist/receipt-tOc7B3hw.js.map +1 -0
  403. package/dist/{rich-text-GOUyKQ-s.js → rich-text-Dth5E882.js} +4 -4
  404. package/dist/{rich-text-GOUyKQ-s.js.map → rich-text-Dth5E882.js.map} +1 -1
  405. package/dist/{rich-text-editor-cRLC-eBK.js → rich-text-editor-C1fOjBTd.js} +429 -430
  406. package/dist/rich-text-editor-C1fOjBTd.js.map +1 -0
  407. package/dist/{rich-text-editor-toolbar-DfXg0-VC.js → rich-text-editor-toolbar-laT3tpBT.js} +33 -29
  408. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +1 -0
  409. package/dist/{scroll-area-DcI-M1UT.js → scroll-area-B0dB2cBi.js} +2 -2
  410. package/dist/{scroll-area-DcI-M1UT.js.map → scroll-area-B0dB2cBi.js.map} +1 -1
  411. package/dist/{separator-Bom7NsGO.js → separator-Bb17I4pu.js} +2 -2
  412. package/dist/{separator-Bom7NsGO.js.map → separator-Bb17I4pu.js.map} +1 -1
  413. package/dist/{separator-BDV-Y648.js → separator-Ct_WSWTJ.js} +3 -3
  414. package/dist/{separator-BDV-Y648.js.map → separator-Ct_WSWTJ.js.map} +1 -1
  415. package/dist/services/actions.js +1 -1
  416. package/dist/settings-Bar5wiSo.js +167 -0
  417. package/dist/settings-Bar5wiSo.js.map +1 -0
  418. package/dist/sheet-BGPERY55.js +250 -0
  419. package/dist/sheet-BGPERY55.js.map +1 -0
  420. package/dist/sidebar-D-JYMMbY.js +686 -0
  421. package/dist/sidebar-D-JYMMbY.js.map +1 -0
  422. package/dist/sidebar-f9gRWXIR.js +1001 -0
  423. package/dist/sidebar-f9gRWXIR.js.map +1 -0
  424. package/dist/skeleton-BapcJd9C.js +265 -0
  425. package/dist/skeleton-BapcJd9C.js.map +1 -0
  426. package/dist/smart-card-CW0hjetE.js +617 -0
  427. package/dist/smart-card-CW0hjetE.js.map +1 -0
  428. package/dist/{structure-BmisBK-3.js → structure-DuxKl954.js} +3 -3
  429. package/dist/{structure-BmisBK-3.js.map → structure-DuxKl954.js.map} +1 -1
  430. package/dist/{structure.recipes-EPz60cU8.js → structure.recipes-BB4-n58V.js} +2 -2
  431. package/dist/{structure.recipes-EPz60cU8.js.map → structure.recipes-BB4-n58V.js.map} +1 -1
  432. package/dist/style.css +1 -1
  433. package/dist/{table-DsfzoUia.js → table-B4TE7iOV.js} +3 -3
  434. package/dist/{table-DsfzoUia.js.map → table-B4TE7iOV.js.map} +1 -1
  435. package/dist/{table-BweFy_P9.js → table-CFOWY9pQ.js} +394 -388
  436. package/dist/table-CFOWY9pQ.js.map +1 -0
  437. package/dist/{tabs-CDocW5D1.js → tabs-e7ko9S2o.js} +11 -11
  438. package/dist/tabs-e7ko9S2o.js.map +1 -0
  439. package/dist/{text-inputs-f9Ia-aCi.js → text-inputs-B1culiSK.js} +107 -104
  440. package/dist/text-inputs-B1culiSK.js.map +1 -0
  441. package/dist/{text.styles-g4He6UIW.js → text.styles-B64My8RZ.js} +25 -10
  442. package/dist/text.styles-B64My8RZ.js.map +1 -0
  443. package/dist/theme.css +192 -149
  444. package/dist/{timelines-CwM_9IhD.js → timelines-D3Sl9ueq.js} +13 -12
  445. package/dist/timelines-D3Sl9ueq.js.map +1 -0
  446. package/dist/tooltip-8wz5S_Zr.js +113 -0
  447. package/dist/tooltip-8wz5S_Zr.js.map +1 -0
  448. package/dist/{tree-WnKQzwbq.js → tree-CzUJHnFs.js} +9 -9
  449. package/dist/{tree-WnKQzwbq.js.map → tree-CzUJHnFs.js.map} +1 -1
  450. package/dist/typography/rich-text.js +1 -1
  451. package/dist/typography-BQnine1k.js +117 -0
  452. package/dist/typography-BQnine1k.js.map +1 -0
  453. package/dist/typography.js +1 -1
  454. package/dist/ui-provider-C-74NVLc.js +178 -0
  455. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  456. package/dist/ui-provider.js +2 -3
  457. package/dist/{upload-CXyxmQBP.js → upload-BOW6U2tI.js} +25 -24
  458. package/dist/upload-BOW6U2tI.js.map +1 -0
  459. package/dist/{upload-queue-Boscubn9.js → upload-queue-qUXn1ykN.js} +16 -14
  460. package/dist/upload-queue-qUXn1ykN.js.map +1 -0
  461. package/dist/{usage-card-BhO5eqkX.js → usage-card-BeSLY0i0.js} +145 -137
  462. package/dist/usage-card-BeSLY0i0.js.map +1 -0
  463. package/dist/{utils-BRhFDwuU.js → utils-B6kKb8jB.js} +303 -144
  464. package/dist/utils-B6kKb8jB.js.map +1 -0
  465. package/dist/value-inputs-skdVB2zh.js +980 -0
  466. package/dist/value-inputs-skdVB2zh.js.map +1 -0
  467. package/dist/{value-typography-BP8OG6h5.js → value-typography-uAmWUAL1.js} +2 -2
  468. package/dist/{value-typography-BP8OG6h5.js.map → value-typography-uAmWUAL1.js.map} +1 -1
  469. package/dist/workspace-DHeHv0qw.js +411 -0
  470. package/dist/workspace-DHeHv0qw.js.map +1 -0
  471. package/docs/consumer-skill/SKILL.md +15 -129
  472. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  473. package/docs/consumer-skill/examples/app-layout.tsx +74 -13
  474. package/docs/consumer-skill/examples/authentication.tsx +77 -0
  475. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  476. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  477. package/docs/consumer-skill/examples/detail.tsx +5 -4
  478. package/docs/consumer-skill/examples/edit.tsx +30 -38
  479. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  480. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  481. package/docs/consumer-skill/examples/manifest.json +88 -1
  482. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  483. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  484. package/docs/consumer-skill/examples/rhf-bindings.tsx +86 -0
  485. package/docs/consumer-skill/examples/rhf-edit-page.tsx +141 -0
  486. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +105 -0
  487. package/docs/consumer-skill/examples/rhf-transport.tsx +28 -0
  488. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  489. package/docs/consumer-skill/references/agents-md.md +23 -11
  490. package/docs/consumer-skill/references/analytics.md +18 -1
  491. package/docs/consumer-skill/references/authentication.md +42 -0
  492. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  493. package/docs/consumer-skill/references/component-contracts.json +325201 -0
  494. package/docs/consumer-skill/references/composition-mapping.md +106 -0
  495. package/docs/consumer-skill/references/composition.md +198 -46
  496. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  497. package/docs/consumer-skill/references/custom-composition.md +261 -0
  498. package/docs/consumer-skill/references/data-reading.md +79 -0
  499. package/docs/consumer-skill/references/design-contract.md +43 -9
  500. package/docs/consumer-skill/references/discovery.md +109 -8
  501. package/docs/consumer-skill/references/domain-structures.md +124 -0
  502. package/docs/consumer-skill/references/installation.md +51 -36
  503. package/docs/consumer-skill/references/integration.md +41 -2
  504. package/docs/consumer-skill/references/product-composition.md +94 -0
  505. package/docs/consumer-skill/references/public-api.json +4390 -475
  506. package/docs/consumer-skill/references/review.md +47 -5
  507. package/docs/consumer-skill/references/rhf-workflows.md +93 -0
  508. package/docs/consumer-skill/references/screen-archetypes.md +34 -0
  509. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  510. package/docs/consumer-skill/references/theming.md +25 -27
  511. package/docs/consumer-skill/references/tokens.json +20 -11
  512. package/docs/consumer-skill/references/view-craft.md +153 -0
  513. package/docs/consumer-skill/references/view-spec.md +73 -0
  514. package/docs/consumer-skill/references/workflows.md +9 -2
  515. package/docs/consumer-skill/scripts/composition-policy.mjs +39 -3
  516. package/docs/consumer-skill/scripts/composition-schema.d.mts +2 -0
  517. package/docs/consumer-skill/scripts/composition-schema.mjs +32 -0
  518. package/docs/consumer-skill/scripts/composition.mjs +254 -0
  519. package/docs/consumer-skill/scripts/discovery.mjs +96 -10
  520. package/docs/consumer-skill/scripts/inspect-component.mjs +11 -0
  521. package/docs/consumer-skill/scripts/inspect-tokens.mjs +11 -0
  522. package/docs/consumer-skill/scripts/inspection.mjs +193 -0
  523. package/docs/consumer-skill/scripts/map-composition.mjs +12 -0
  524. package/docs/consumer-skill/scripts/setup-skills.mjs +111 -0
  525. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  526. package/docs/consumer-skills/themelia-components/SKILL.md +31 -0
  527. package/docs/consumer-skills/themelia-composition/SKILL.md +34 -0
  528. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  529. package/docs/consumer-skills/themelia-forms/SKILL.md +12 -0
  530. package/docs/consumer-skills/themelia-foundation/SKILL.md +15 -0
  531. package/docs/consumer-skills/themelia-tokenization/SKILL.md +42 -0
  532. package/package.json +4 -2
  533. package/templates/README.md +39 -0
  534. package/templates/admin-shell-template.tsx +382 -0
  535. package/templates/analytics-operations-template.tsx +376 -0
  536. package/templates/customers-template.tsx +509 -0
  537. package/templates/index.ts +29 -0
  538. package/templates/orders-template.tsx +1102 -0
  539. package/templates/products-template.tsx +834 -0
  540. package/templates/user-permissions-template.tsx +450 -0
  541. package/dist/accordion-Cjb6sx0G.js.map +0 -1
  542. package/dist/action-menu-CllU52Mm.js +0 -280
  543. package/dist/action-menu-CllU52Mm.js.map +0 -1
  544. package/dist/affordance-geometry.generated-tF36bREk.js.map +0 -1
  545. package/dist/ai-artifact-DvTwDVyL.js.map +0 -1
  546. package/dist/app-shell-C4FhvCqF.js +0 -236
  547. package/dist/app-shell-C4FhvCqF.js.map +0 -1
  548. package/dist/auth-BGua8ouh.js.map +0 -1
  549. package/dist/avatar-DAPlDvhJ.js.map +0 -1
  550. package/dist/base/cascader.js.map +0 -1
  551. package/dist/batch-action-bar-DnUJ21NQ.js.map +0 -1
  552. package/dist/button-DVzspB_G.js.map +0 -1
  553. package/dist/buttons-DPZekJFu.js.map +0 -1
  554. package/dist/cards-BaBZR-AU.js +0 -68
  555. package/dist/cards-BaBZR-AU.js.map +0 -1
  556. package/dist/chart-ZOYyK2xG.js +0 -155
  557. package/dist/chart-ZOYyK2xG.js.map +0 -1
  558. package/dist/checkbox-AWIhNhmo.js.map +0 -1
  559. package/dist/choice-inputs-CNHvARCJ.js +0 -770
  560. package/dist/choice-inputs-CNHvARCJ.js.map +0 -1
  561. package/dist/code-block-DeneBJR_.js.map +0 -1
  562. package/dist/combobox-DaHESuiL.js +0 -355
  563. package/dist/combobox-DaHESuiL.js.map +0 -1
  564. package/dist/combobox-Dxo2fAYQ.js.map +0 -1
  565. package/dist/command-C25VMRII.js.map +0 -1
  566. package/dist/comments-DD0DUPwJ.js.map +0 -1
  567. package/dist/containers-Mu1LMGV1.js +0 -103
  568. package/dist/containers-Mu1LMGV1.js.map +0 -1
  569. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  570. package/dist/data-display-DT_khPl_.js.map +0 -1
  571. package/dist/date-picker-B2K3ucWn.js.map +0 -1
  572. package/dist/date-pickers-Ds8gLaoP.js +0 -175
  573. package/dist/date-pickers-Ds8gLaoP.js.map +0 -1
  574. package/dist/dropdown-menu-Cl4X7L5S.js +0 -193
  575. package/dist/dropdown-menu-Cl4X7L5S.js.map +0 -1
  576. package/dist/feedback-BYIhtitP.js.map +0 -1
  577. package/dist/field-affordance-recipes-DZhnIL_Y.js.map +0 -1
  578. package/dist/filters-DJVAveHA.js.map +0 -1
  579. package/dist/form-field-CwH9y77i.js.map +0 -1
  580. package/dist/form-sizing-BdP_Mf5p.js.map +0 -1
  581. package/dist/forms-B9G_xwzi.js +0 -194
  582. package/dist/forms-B9G_xwzi.js.map +0 -1
  583. package/dist/forms-numeric-B_jraJaQ.js.map +0 -1
  584. package/dist/header-BSfIEWbI.js.map +0 -1
  585. package/dist/hooks-ClH9thn4.js.map +0 -1
  586. package/dist/input-CZw8iU99.js +0 -21
  587. package/dist/input-CZw8iU99.js.map +0 -1
  588. package/dist/input-DQdEd0YD.js +0 -263
  589. package/dist/input-DQdEd0YD.js.map +0 -1
  590. package/dist/item-K5_ghvze.js +0 -275
  591. package/dist/item-K5_ghvze.js.map +0 -1
  592. package/dist/message-DZ_ruyUV.js.map +0 -1
  593. package/dist/metadata-list-8N16ZMW_.js +0 -405
  594. package/dist/metadata-list-8N16ZMW_.js.map +0 -1
  595. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  596. package/dist/navigation-Bnotn4AQ.js +0 -145
  597. package/dist/navigation-Bnotn4AQ.js.map +0 -1
  598. package/dist/navigation-BzhHI3lo.js.map +0 -1
  599. package/dist/navigation-row-recipes-BFLCk_Aq.js.map +0 -1
  600. package/dist/overflow-tab-bar-CWY7Nogn.js +0 -282
  601. package/dist/overflow-tab-bar-CWY7Nogn.js.map +0 -1
  602. package/dist/overlays-tMkF-VAN.js +0 -1003
  603. package/dist/overlays-tMkF-VAN.js.map +0 -1
  604. package/dist/page-CL9YeH_V.js +0 -224
  605. package/dist/page-CL9YeH_V.js.map +0 -1
  606. package/dist/page-header-commands-DOb6WsfD.js +0 -126
  607. package/dist/page-header-commands-DOb6WsfD.js.map +0 -1
  608. package/dist/popover-gnTOhbFM.js +0 -198
  609. package/dist/popover-gnTOhbFM.js.map +0 -1
  610. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  611. package/dist/receipt-BVSOH3Xo.js.map +0 -1
  612. package/dist/rich-text-editor-cRLC-eBK.js.map +0 -1
  613. package/dist/rich-text-editor-toolbar-DfXg0-VC.js.map +0 -1
  614. package/dist/settings-ybnjVwbd.js +0 -171
  615. package/dist/settings-ybnjVwbd.js.map +0 -1
  616. package/dist/sheet-ijlsjq-n.js +0 -213
  617. package/dist/sheet-ijlsjq-n.js.map +0 -1
  618. package/dist/sidebar-Db6gkh3U.js +0 -619
  619. package/dist/sidebar-Db6gkh3U.js.map +0 -1
  620. package/dist/sidebar-DkTO4VTO.js +0 -512
  621. package/dist/sidebar-DkTO4VTO.js.map +0 -1
  622. package/dist/skeleton-Byjnt7qr.js +0 -264
  623. package/dist/skeleton-Byjnt7qr.js.map +0 -1
  624. package/dist/smart-card-DiC5aac3.js +0 -604
  625. package/dist/smart-card-DiC5aac3.js.map +0 -1
  626. package/dist/table-BweFy_P9.js.map +0 -1
  627. package/dist/tabs-CDocW5D1.js.map +0 -1
  628. package/dist/text-inputs-f9Ia-aCi.js.map +0 -1
  629. package/dist/text.styles-g4He6UIW.js.map +0 -1
  630. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  631. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  632. package/dist/timelines-CwM_9IhD.js.map +0 -1
  633. package/dist/tooltip-yiRJUFjp.js +0 -111
  634. package/dist/tooltip-yiRJUFjp.js.map +0 -1
  635. package/dist/typography-UTnveOEy.js +0 -117
  636. package/dist/typography-UTnveOEy.js.map +0 -1
  637. package/dist/ui-provider-C_U0Xma4.js +0 -136
  638. package/dist/ui-provider-C_U0Xma4.js.map +0 -1
  639. package/dist/upload-CXyxmQBP.js.map +0 -1
  640. package/dist/upload-queue-Boscubn9.js.map +0 -1
  641. package/dist/usage-card-BhO5eqkX.js.map +0 -1
  642. package/dist/use-mobile-vaLKwgyf.js +0 -15
  643. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  644. package/dist/utils-BRhFDwuU.js.map +0 -1
  645. package/dist/value-inputs-TaX4OjNk.js +0 -963
  646. package/dist/value-inputs-TaX4OjNk.js.map +0 -1
  647. package/dist/workspace-B-OEm3Kf.js +0 -408
  648. package/dist/workspace-B-OEm3Kf.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-f9gRWXIR.js","names":["React","SidebarProvider","SidebarTrigger","_Fragment","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuButton","React","SidebarMenuAction","SidebarMenuBadge","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","React","SidebarProviderPrimitive","useSidebarPrimitive","SidebarHeaderPrimitive","SidebarFooterPrimitive","SidebarContentPrimitive","SidebarGroupPrimitive","SidebarGroupContentPrimitive","SidebarGroupActionPrimitive","SidebarInputPrimitive","SidebarSeparatorPrimitive","SidebarMenuPrimitive","SidebarMenuItemPrimitive","SidebarMenuActionPrimitive","SidebarMenuBadgePrimitive","SidebarMenuSubPrimitive","SidebarMenuSubItemPrimitive","SidebarInsetPrimitive","SidebarRailPrimitive","SidebarTriggerPrimitive","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive","SidebarGroupLabelPrimitive","useDensityConfig","useThemePortalContainer","ThemeScopeHostProvider","cn","affordanceGeometry","SheetDescription","SheetTitle","SheetContent","SheetHeader","Sheet","Separator","Text","DisplayLabel","focusRecipes","motionRecipes","Tooltip","TooltipContent","TooltipTrigger","Button","surfaceDividerRecipes","Skeleton","formFieldFrameClasses","resolveFormControlSize","Input","navigationRowDensityRecipes","navigationRowInlineClasses","navigationChildInsetClasses","React$1","Fragment$1","sidebarDockThresholds","SidebarScopeContext","SidebarScope","SidebarContext","useSidebarStore","useSidebar","store","scope","selected","panelId","open","presentation","isMobile","value","SidebarProvider$1","controlledMobilePanel","forwardedRef","props","hostRef","viewportWidth","setViewportWidth","containerWidth","setContainerWidth","regions","setRegions","internalPanels","setInternalPanels","defaultOpenPanels","defaultOpen","internalMobilePanel","setInternalMobilePanel","panels","openPanels","panel","currentPanels","currentMobile","currentMobileRef","triggers","rememberTrigger","element","triggerFor","visible","current","style","remembered","candidates","update","query","host","adaptTo","width","observer","registerRegion","existing","previous","registration","next","getPresentation","region","getCollapseMode","setPanelOpen","wasOpen","nextOpen","onOpenPanelsChange","onOpenChange","setMobilePanel","onMobilePanelChange","setPanelOpenMobile","togglePanel","mobilePanel","navigationPanel","keyboardShortcut","handler","event","target","activeHost","hosts","useRender","className","SidebarTrigger$1","openMobile","onClick","toggleSidebar","children","jsx","PanelRightIcon","PanelLeftIcon","SidebarRail$1","SidebarInset$1","SidebarInput$1","SidebarHeader$1","SidebarFooter$1","SidebarSeparator$1","SidebarContent$1","SidebarGroup$1","SidebarGroupLabel$1","mergeProps","SidebarGroupAction$1","SidebarGroupContent$1","SidebarMenu$1","SidebarMenuItem$1","sidebarMenuButtonVariants","cva","SidebarMenuButton$1","isDisabled","disabled","comp","isActive","preventDisabledSidebarActivation","preventDisabledSidebarKey","tooltip","collapsed","SidebarMenuAction$1","showOnHover","SidebarMenuBadge$1","SidebarMenuSub$1","SidebarMenuSubItem$1","SidebarMenuSubButton$1","defaultSidebarStrings","defaultInspectorSidebarStrings","sidebarMenuButtonStateClasses","sidebarMenuSubButtonStateClasses","SidebarMenuDensityContext","SidebarFooterInsetContext","sidebarMenuDensityRecipes","paddedCollapsedSidebarWidthClass","renderSidebarMenuText","renderSidebarTooltipText","normalizeSidebarMenuTooltip","getSidebarMenuButtonHeightClass","size","SidebarProvider","menuDensity","SidebarDrawerOwner","SidebarDrawerContext","equalProperties","keys","first","second","key","registrations","setRegistrations","registeredPanels","selection","mounted","setTarget","lastPanel","lastRegistration","register","wasRegistered","active","context","capturedHost","container","localDrawer","drawerContainer","SidebarRegion","availableWidth","setAvailableWidth","collapse","setCollapse","shell","measuredHost","parentWidth","dockAt","docked","hidden","suppressContents","concealed","rail","side","effectiveWidth","node","Sidebar","inherited","SidebarPanel","sideProp","stringsProp","regionOwnsWidth","drawer","inheritedThemeContainer","themeHost","themeContainer","themeScope","drawerThemeScope","strings","useStrings","rootRef","collapsible","variant","popup","registerDrawer","attachRoot","root","state","styles","permanent","sidebarWidth","createPortal","positioningProps","permanentBoundaryProps","contained","rootClassName","surface","surfaceClassName","SidebarHeader","SidebarFooter","SidebarContent","SidebarGroup","footerOwnsInset","SidebarGroupContent","SidebarGroupAction","SidebarInput","defaultScale","SidebarSeparator","SidebarMenu","inheritedDensity","density","recipe","SidebarMenuItem","SidebarMenuAction","SidebarMenuBadge","content","inline","SidebarMenuSkeleton","resolvedWidth","showIcon","SidebarMenuSub","SidebarMenuSubItem","SidebarInset","SidebarRail","SidebarTrigger","SidebarMenuButton","normalizedRender","render","normalizedTooltip","resolvedSize","primitiveSize","SidebarMenuSubButton","SidebarGroupLabel","useBaseSidebarContext","useBaseSidebarMenuDensity"],"sources":["../src/components/ui/sidebar-state.tsx","../src/components/ui/sidebar.tsx","../src/components/base/sidebar/sidebar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\nimport { cn } from '../../lib/utils';\n\nexport type SidebarPanelId = 'primary' | 'secondary' | 'aside';\nexport type SidebarPresentation = 'docked' | 'drawer';\nexport type SidebarCollapseMode = 'offcanvas' | 'icon' | 'none';\nexport const sidebarDockThresholds = { primary: 768, secondary: 1024, aside: 1440 } as const;\n\nexport interface SidebarStateProps {\n defaultOpen?: boolean;\n adaptTo?: 'viewport' | 'container';\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Controlled expanded desktop panels. Takes precedence over the legacy primary `open` prop. */\n openPanels?: readonly SidebarPanelId[];\n /** Initial uncontrolled desktop panels. Otherwise `defaultOpen` initializes primary only. */\n defaultOpenPanels?: readonly SidebarPanelId[];\n /** Receives an isolated desktop-state proposal; primary changes also notify `onOpenChange`. */\n onOpenPanelsChange?: (panels: SidebarPanelId[]) => void;\n /** Controlled active undocked panel, or null. Independent of remembered desktop expansion. */\n mobilePanel?: SidebarPanelId | null;\n /** Receives drawer selection and dismissal proposals, including removal or return to docked presentation. */\n onMobilePanelChange?: (panel: SidebarPanelId | null) => void;\n /** Default target for untargeted triggers and the keyboard shortcut. @default 'primary' */\n navigationPanel?: 'primary' | 'secondary';\n /** Ctrl/Command key for navigationPanel; false disables it. Editable fields and overlays retain their shortcuts. @default 'b' */\n keyboardShortcut?: string | false;\n}\n\ntype RegionRegistration = { dockAt: number; width?: number; collapsible?: SidebarCollapseMode };\nexport interface SidebarScopeValue {\n panelId: SidebarPanelId;\n geometry?: 'panel' | 'rail';\n side?: 'left' | 'right';\n setCollapse?: (value: { collapsible: SidebarCollapseMode; variant: 'sidebar' | 'floating' | 'inset' } | null) => void;\n}\nexport const SidebarScopeContext = React.createContext<SidebarScopeValue | null>(null);\nexport const SidebarScope = SidebarScopeContext.Provider;\n\ntype SidebarStore = {\n openPanels: readonly SidebarPanelId[];\n mobilePanel: SidebarPanelId | null;\n navigationPanel: SidebarPanelId;\n adaptTo: 'viewport' | 'container';\n hostRef: React.RefObject<HTMLDivElement | null>;\n getPresentation: (panelId: SidebarPanelId) => SidebarPresentation;\n getCollapseMode: (panelId: SidebarPanelId) => SidebarCollapseMode | undefined;\n setPanelOpen: (panelId: SidebarPanelId, value: boolean | ((open: boolean) => boolean)) => void;\n setPanelOpenMobile: (panelId: SidebarPanelId, value: React.SetStateAction<boolean>) => void;\n setMobilePanel: (value: SidebarPanelId | null) => void;\n togglePanel: (panelId: SidebarPanelId) => void;\n registerRegion: (panelId: SidebarPanelId, region: RegionRegistration | null) => void;\n triggerFor: (panelId: SidebarPanelId) => HTMLElement | null;\n rememberTrigger: (panelId: SidebarPanelId, element: HTMLElement) => void;\n};\nconst SidebarContext = React.createContext<SidebarStore | null>(null);\nexport function useSidebarStore() { return React.useContext(SidebarContext); }\n\nexport function useSidebar(panelId?: SidebarPanelId) {\n const store = useSidebarStore();\n const scope = React.useContext(SidebarScopeContext);\n if (!store) throw new Error('useSidebar must be used within a SidebarProvider.');\n const selected = panelId ?? scope?.panelId ?? 'primary';\n const open = store.openPanels.includes(selected);\n const presentation = store.getPresentation(selected);\n const isMobile = presentation === 'drawer';\n const setOpen = (value: boolean | ((open: boolean) => boolean)) => store.setPanelOpen(selected, value);\n const setOpenMobile = (value: React.SetStateAction<boolean>) => store.setPanelOpenMobile(selected, value);\n return {\n panelId: selected,\n side: (scope?.panelId === selected ? scope.side ?? 'left' : 'left') as 'left' | 'right',\n state: open ? 'expanded' as const : 'collapsed' as const,\n open, setOpen,\n /** Whether the selected desktop panel is collapsed; drawers expose expanded content. */\n collapsed: !open && !isMobile && store.getCollapseMode(selected) !== 'none',\n /** Effective presentation for the selected panel, including its own docking threshold. */\n presentation, isMobile,\n openMobile: store.mobilePanel === selected,\n setOpenMobile,\n toggleSidebar: () => store.togglePanel(selected),\n openPanels: store.openPanels,\n mobilePanel: store.mobilePanel,\n setMobilePanel: store.setMobilePanel,\n };\n}\n\nexport function SidebarProvider({\n defaultOpen = true, adaptTo = 'viewport', open, onOpenChange,\n openPanels, defaultOpenPanels, onOpenPanelsChange,\n mobilePanel: controlledMobilePanel, onMobilePanelChange,\n navigationPanel = 'primary', keyboardShortcut = 'b',\n ref: forwardedRef, className, style, children, ...props\n}: React.ComponentProps<'div'> & SidebarStateProps) {\n const hostRef = React.useRef<HTMLDivElement>(null);\n // The server and first client render share the same desktop snapshot.\n const [viewportWidth, setViewportWidth] = React.useState(Number.POSITIVE_INFINITY);\n const [containerWidth, setContainerWidth] = React.useState<number>();\n const [regions, setRegions] = React.useState<Partial<Record<SidebarPanelId, RegionRegistration>>>({});\n const [internalPanels, setInternalPanels] = React.useState<readonly SidebarPanelId[]>(() => defaultOpenPanels ? [...defaultOpenPanels] : (defaultOpen ? ['primary'] : []));\n const [internalMobilePanel, setInternalMobilePanel] = React.useState<SidebarPanelId | null>(null);\n const panels = openPanels ?? (open === undefined ? internalPanels : [...internalPanels.filter(panel => panel !== 'primary'), ...(open ? ['primary' as const] : [])]);\n const currentPanels = React.useRef(panels);\n currentPanels.current = panels;\n const currentMobile = controlledMobilePanel === undefined ? internalMobilePanel : controlledMobilePanel;\n const currentMobileRef = React.useRef(currentMobile);\n currentMobileRef.current = currentMobile;\n const triggers = React.useRef<Partial<Record<SidebarPanelId, HTMLElement>>>({});\n const rememberTrigger = React.useCallback((panelId: SidebarPanelId, element: HTMLElement) => { triggers.current[panelId] = element; }, []);\n const triggerFor = React.useCallback((panelId: SidebarPanelId) => {\n const visible = (element: HTMLElement) => {\n if (!element.isConnected) return false;\n for (let current: HTMLElement | null = element; current; current = current.parentElement) {\n const style = window.getComputedStyle(current);\n if (current.hidden || current.hasAttribute('inert') || style.display === 'none' || style.visibility === 'hidden') return false;\n }\n return true;\n };\n const remembered = triggers.current[panelId];\n if (remembered && visible(remembered)) return remembered;\n const candidates = hostRef.current?.querySelectorAll<HTMLElement>(`[data-sidebar-trigger-panel=\"${panelId}\"]`);\n return candidates ? Array.from(candidates).find(visible) ?? null : null;\n }, []);\n React.useEffect(() => {\n const update = () => setViewportWidth(window.innerWidth);\n const query = window.matchMedia?.('(max-width: 767px)');\n window.addEventListener('resize', update);\n query?.addEventListener('change', update);\n update();\n return () => { window.removeEventListener('resize', update); query?.removeEventListener('change', update); };\n }, []);\n React.useEffect(() => {\n const host = hostRef.current;\n if (adaptTo !== 'container' || !host) return;\n const update = () => { const width = host.getBoundingClientRect().width; if (width > 0) setContainerWidth(width); };\n update();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(update); observer.observe(host);\n return () => observer.disconnect();\n }, [adaptTo]);\n const registerRegion = React.useCallback((panelId: SidebarPanelId, registration: RegionRegistration | null) => {\n setRegions(previous => {\n const existing = previous[panelId];\n if (!registration && !existing) return previous;\n if (registration && existing?.dockAt === registration.dockAt && existing?.width === registration.width && existing?.collapsible === registration.collapsible) return previous;\n const next = {...previous};\n if (registration) next[panelId] = registration; else delete next[panelId];\n return next;\n });\n }, []);\n const getPresentation = React.useCallback((panelId: SidebarPanelId): SidebarPresentation => {\n const region = regions[panelId];\n if (region?.collapsible === 'none') return 'docked';\n const width = Math.min(viewportWidth, region?.width ?? Number.POSITIVE_INFINITY, adaptTo === 'container' ? containerWidth ?? Number.POSITIVE_INFINITY : Number.POSITIVE_INFINITY);\n return width < (region?.dockAt ?? sidebarDockThresholds[panelId]) ? 'drawer' : 'docked';\n }, [regions, viewportWidth, containerWidth, adaptTo]);\n const getCollapseMode = React.useCallback((panelId: SidebarPanelId) => regions[panelId]?.collapsible, [regions]);\n const setPanelOpen = React.useCallback((panelId: SidebarPanelId, value: boolean | ((value: boolean) => boolean)) => {\n const previous = currentPanels.current;\n const wasOpen = previous.includes(panelId);\n const nextOpen = typeof value === 'function' ? value(wasOpen) : value;\n if (nextOpen === wasOpen) return;\n const next = previous.filter(panel => panel !== panelId);\n if (nextOpen) next.push(panelId);\n // Controlled proposals are not accepted state. Uncontrolled panels still\n // compose multiple updates made before React commits the next render.\n if (openPanels === undefined && (panelId !== 'primary' || open === undefined)) currentPanels.current = next;\n if (openPanels === undefined) setInternalPanels(next);\n onOpenPanelsChange?.([...next]);\n if (panelId === 'primary') {\n onOpenChange?.(nextOpen);\n document.cookie = `sidebar_state=${nextOpen}; path=/; max-age=${60 * 60 * 24 * 7}`;\n }\n }, [openPanels, open, onOpenPanelsChange, onOpenChange]);\n const setMobilePanel = React.useCallback((next: SidebarPanelId | null) => {\n if (currentMobileRef.current === next) return;\n if (controlledMobilePanel === undefined) {\n currentMobileRef.current = next;\n setInternalMobilePanel(next);\n }\n onMobilePanelChange?.(next);\n }, [controlledMobilePanel, onMobilePanelChange]);\n const setPanelOpenMobile = React.useCallback((panelId: SidebarPanelId, value: React.SetStateAction<boolean>) => {\n const wasOpen = currentMobileRef.current === panelId;\n const nextOpen = typeof value === 'function' ? value(wasOpen) : value;\n if (nextOpen !== wasOpen) setMobilePanel(nextOpen ? panelId : null);\n }, [setMobilePanel]);\n const togglePanel = React.useCallback((panelId: SidebarPanelId) => {\n if (getPresentation(panelId) === 'drawer') setMobilePanel(currentMobileRef.current === panelId ? null : panelId);\n else setPanelOpen(panelId, value => !value);\n }, [getPresentation,setMobilePanel,setPanelOpen]);\n const mobilePanel = currentMobile && getPresentation(currentMobile) === 'drawer' ? currentMobile : null;\n React.useEffect(() => {\n if (Number.isFinite(viewportWidth) && currentMobile && getPresentation(currentMobile) === 'docked') {\n setMobilePanel(null);\n triggerFor(currentMobile)?.focus();\n }\n }, [currentMobile, getPresentation, setMobilePanel, triggerFor, viewportWidth]);\n const value = React.useMemo<SidebarStore>(() => ({openPanels: panels, mobilePanel, navigationPanel, adaptTo, hostRef, getPresentation, getCollapseMode, setPanelOpen, setPanelOpenMobile, setMobilePanel, togglePanel, registerRegion, triggerFor, rememberTrigger}), [panels, mobilePanel, navigationPanel, adaptTo, getPresentation, getCollapseMode, setPanelOpen, setPanelOpenMobile, setMobilePanel, togglePanel, registerRegion, triggerFor, rememberTrigger]);\n React.useEffect(() => {\n if (keyboardShortcut === false) return;\n const handler = (event: KeyboardEvent) => {\n if (event.defaultPrevented || event.repeat || event.altKey || event.shiftKey || !(event.metaKey || event.ctrlKey) || event.key.toLowerCase() !== keyboardShortcut.toLowerCase()) return;\n const target = event.target instanceof Element ? event.target : document.activeElement;\n if (target?.closest('input,textarea,select,[contenteditable]:not([contenteditable=\"false\"]),[role=\"textbox\"],[role=\"dialog\"],[role=\"alertdialog\"],[role=\"menu\"],[role=\"listbox\"]')) return;\n const activeHost = target?.closest('[data-slot=\"sidebar-wrapper\"]');\n const hosts = document.querySelectorAll('[data-slot=\"sidebar-wrapper\"]');\n if (activeHost ? activeHost !== hostRef.current : hosts.length !== 1) return;\n event.preventDefault();\n if (getPresentation(navigationPanel) === 'drawer') setMobilePanel(currentMobileRef.current === navigationPanel ? null : navigationPanel);\n else setPanelOpen(navigationPanel, current => !current);\n };\n window.addEventListener('keydown', handler);\n return () => window.removeEventListener('keydown', handler);\n }, [keyboardShortcut, navigationPanel, getPresentation, setMobilePanel, setPanelOpen]);\n const host = useRender({defaultTagName:'div', ref:forwardedRef ? [hostRef,forwardedRef] : hostRef, props:{...props, 'data-slot':'sidebar-wrapper', 'data-mobile':getPresentation('primary') === 'drawer', style:{'--sidebar-width':'16rem','--sidebar-width-icon':'3rem',...style} as React.CSSProperties, className:cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar relative flex min-h-svh w-full',adaptTo === 'container' && 'isolate [contain:paint]',className), children}});\n return <SidebarContext.Provider value={value}>{host}</SidebarContext.Provider>;\n}\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { PanelLeftIcon, PanelRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Separator } from \"./separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"./sheet\"\nimport { Skeleton } from \"./skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"./tooltip\"\nimport { cn } from \"../../lib/utils\"\nimport { navigationRowInlineClasses } from \"../../lib/navigation-row-recipes\"\nimport { focusRecipes } from \"../../lib/focus-recipes\"\n\nimport { SidebarProvider, useSidebar } from \"./sidebar-state\"\nimport { useSidebarStore, type SidebarPanelId } from \"./sidebar-state\"\n\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-shell-sidebar-icon-padded\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-space-md group-data-[collapsible=icon]:w-shell-sidebar-icon-padded\"\n : \"border-border group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-surface group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n panelId,\n children,\n ...props\n}: React.ComponentProps<typeof Button> & { panelId?: SidebarPanelId }) {\n const store = useSidebarStore()\n const target = panelId ?? store?.navigationPanel ?? \"primary\"\n const { toggleSidebar, open, openMobile, isMobile } = useSidebar(target)\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n data-sidebar-trigger-panel={target}\n aria-expanded={isMobile ? openMobile : open}\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n if (!event.defaultPrevented) {\n store?.rememberTrigger(target, event.currentTarget)\n toggleSidebar()\n }\n }}\n {...props}\n >\n {children ?? <>\n {target === \"aside\" ? <PanelRightIcon /> : <PanelLeftIcon />}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </>}\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background md:peer-data-[variant=inset]:m-space-md md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-surface md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-space-md relative flex w-full flex-1 flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"w-full\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-space-md w-auto\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"gap-space-md flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & React.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n `text-sidebar-foreground/70 h-8 rounded-radius text-xs font-medium transition-opacity duration-150 group-data-[collapsible=icon]:opacity-0 ${focusRecipes.sidebar} [&>svg]:size-icon flex shrink-0 items-center outline-hidden [&>svg]:shrink-0`,\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-label\",\n sidebar: \"group-label\",\n },\n })\n}\n\nfunction SidebarGroupAction({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"button\"> & React.ComponentProps<\"button\">) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n `box-border border-0 bg-transparent font-sans text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-radius p-0 ${focusRecipes.sidebar} [&>svg]:size-icon flex aspect-square items-center justify-center outline-hidden transition-transform [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden`,\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-group-action\",\n sidebar: \"group-action\",\n },\n })\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"text-sm w-full\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"m-0 p-0 list-none flex w-full min-w-0 flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n cn(`box-border border-0 bg-transparent py-0 font-sans no-underline hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground text-left transition-[background-color,color] ${focusRecipes.sidebar} data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button disabled:opacity-50 aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-icon [&_svg]:shrink-0`, navigationRowInlineClasses),\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline: \"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground ring-1 ring-sidebar-border hover:ring-sidebar-accent\",\n },\n size: {\n default: \"h-action\",\n sm: \"h-action-sm\",\n lg: \"h-action-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction SidebarMenuButton({\n render,\n disabled = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>) {\n const { isMobile, collapsed } = useSidebar()\n const isDisabled = disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\"\n\n const comp = useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-button\",\n sidebar: \"menu-button\",\n size,\n active: isActive,\n },\n })\n\n // Tooltip.Trigger's disabled prop disables the tooltip, not its DOM target.\n // Own the target state after render composition so a render element cannot\n // re-enable the row; links retain their native role and destination.\n const target = isDisabled ? React.cloneElement(comp as React.ReactElement<React.HTMLAttributes<HTMLElement> & { disabled?: boolean }>, {\n disabled: comp.type === \"a\" ? undefined : true,\n \"aria-disabled\": true,\n tabIndex: -1,\n onClickCapture: preventDisabledSidebarActivation,\n onClick: preventDisabledSidebarActivation,\n onPointerDownCapture: preventDisabledSidebarActivation,\n onKeyDownCapture: preventDisabledSidebarKey,\n onKeyUpCapture: preventDisabledSidebarKey,\n }) : comp\n\n if (!tooltip) {\n return target\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip disabled={isDisabled || !collapsed || isMobile}>\n <TooltipTrigger disabled={isDisabled} render={target} />\n <TooltipContent\n side=\"right\"\n align=\"center\"\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\nfunction preventDisabledSidebarActivation(event: React.SyntheticEvent) {\n event.preventDefault()\n event.stopPropagation()\n}\n\nfunction preventDisabledSidebarKey(event: React.KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") preventDisabledSidebarActivation(event)\n}\n\nfunction SidebarMenuAction({\n className,\n render,\n showOnHover = false,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n showOnHover?: boolean\n }) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n `box-border border-0 bg-transparent font-sans text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-radius p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 ${focusRecipes.sidebar} [&>svg]:size-icon flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&_svg]:shrink-0`,\n showOnHover &&\n \"peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-action\",\n sidebar: \"menu-action\",\n },\n })\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 rounded-radius px-space-xs text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"h-action flex items-center\", navigationRowInlineClasses, className)}\n {...props}\n >\n {!!showIcon && (\n <Skeleton\n className=\"size-4 rounded-radius-xs\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\"m-0 p-0 list-none border-sidebar-border mx-space-lg translate-x-px gap-space-xs border-l px-row-x py-row-y group-data-[collapsible=icon]:hidden flex min-w-0 flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n render,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: useRender.ComponentProps<\"a\"> &\n React.ComponentProps<\"a\"> & {\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n `text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-action-xs ${focusRecipes.sidebar} data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-icon flex -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0`,\n navigationRowInlineClasses,\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"sidebar-menu-sub-button\",\n sidebar: \"menu-sub-button\",\n size,\n active: isActive,\n },\n })\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","/**\n * base/sidebar — tokenized wrapper around the shadcn `Sidebar` compound component.\n *\n * The internal Base UI owner supplies shared state. This layer applies the package shell,\n * density, spacing, typography, focus, and stable DOM-hook contracts while\n * preserving every compound part and polymorphic `render` seam.\n */\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { ThemeScopeHostProvider, useThemePortalContainer, type ThemePortalContainer } from '../../../lib/theme-scope';\nimport { SidebarScope, SidebarScopeContext, sidebarDockThresholds, useSidebarStore, type SidebarPanelId, type SidebarPresentation, type SidebarStateProps } from '../../ui/sidebar-state';\n\nimport {\n\tSidebarContent as SidebarContentPrimitive,\n\tSidebarFooter as SidebarFooterPrimitive,\n\tSidebarGroup as SidebarGroupPrimitive,\n\tSidebarGroupAction as SidebarGroupActionPrimitive,\n\tSidebarGroupContent as SidebarGroupContentPrimitive,\n\tSidebarGroupLabel as SidebarGroupLabelPrimitive,\n\tSidebarHeader as SidebarHeaderPrimitive,\n\tSidebarInput as SidebarInputPrimitive,\n\tSidebarInset as SidebarInsetPrimitive,\n\tSidebarMenu as SidebarMenuPrimitive,\n\tSidebarMenuAction as SidebarMenuActionPrimitive,\n\tSidebarMenuBadge as SidebarMenuBadgePrimitive,\n\tSidebarMenuButton as SidebarMenuButtonPrimitive,\n\tSidebarMenuItem as SidebarMenuItemPrimitive,\n\tSidebarMenuSub as SidebarMenuSubPrimitive,\n\tSidebarMenuSubButton as SidebarMenuSubButtonPrimitive,\n\tSidebarMenuSubItem as SidebarMenuSubItemPrimitive,\n\tSidebarProvider as SidebarProviderPrimitive,\n\tSidebarRail as SidebarRailPrimitive,\n\tSidebarSeparator as SidebarSeparatorPrimitive,\n\tSidebarTrigger as SidebarTriggerPrimitive,\n\tuseSidebar as useSidebarPrimitive,\n} from '../../ui/sidebar';\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from '../sheet/sheet';\nimport { Skeleton } from '../skeleton';\nimport { DisplayLabel, Text } from '../../typography';\nimport type { ComponentScale } from '../../../lib/component-vocabulary';\nimport { useDensityConfig } from '../../../lib/ui-provider';\nimport { formFieldFrameClasses, resolveFormControlSize } from '../forms/form-sizing';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport { surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport { navigationChildInsetClasses, navigationRowDensityRecipes, navigationRowInlineClasses } from '../../../lib/navigation-row-recipes';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\nimport { motionRecipes } from '../../../lib/motion-recipes';\n\nexport interface SidebarStrings {\n\tmobileTitle: string;\n\tmobileDescription: string;\n}\n\nexport const defaultSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Navigation',\n\tmobileDescription: 'Navigation for this application.',\n};\n\nconst defaultInspectorSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Inspector',\n\tmobileDescription: 'Supporting tools and details.',\n};\n\nexport interface SidebarProps extends React.ComponentProps<'div'> {\n\t/** Explicit state identity; otherwise inherits the nearest shell region. */\n\tpanelId?: SidebarPanelId;\n\t/** Desktop canvas treatment. Drawers always retain their opaque sidebar surface. */\n\tsurface?: 'default' | 'transparent';\n\t/** Edge where the desktop rail and mobile sheet are anchored. */\n\tside?: 'left' | 'right';\n\t/** Surface treatment and inset behavior for the desktop shell. */\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\t/** Desktop collapse mode. `none` renders a permanently expanded panel. */\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\t/** Keeps the desktop sidebar in its parent layout instead of fixing it to the viewport. */\n\tcontained?: boolean;\n\t/** Classes for the visible sidebar surface, separate from the positioning container. */\n\tsurfaceClassName?: string;\n\t/** Classes for the responsive positioning root. */\n\trootClassName?: string;\n\t/** Copy for the mobile drawer heading and accessible description. */\n\tstrings?: StringsProp<SidebarStrings>;\n}\ntype SidebarContentProps = React.ComponentProps<typeof SidebarContentPrimitive>;\ntype SidebarFooterProps = React.ComponentProps<typeof SidebarFooterPrimitive>;\ntype SidebarGroupProps = React.ComponentProps<typeof SidebarGroupPrimitive>;\ntype SidebarGroupActionProps = React.ComponentProps<typeof SidebarGroupActionPrimitive>;\ntype SidebarGroupContentProps = React.ComponentProps<typeof SidebarGroupContentPrimitive>;\ntype SidebarGroupLabelProps = React.ComponentProps<typeof SidebarGroupLabelPrimitive>;\ntype SidebarHeaderProps = React.ComponentProps<typeof SidebarHeaderPrimitive>;\nexport interface SidebarInputProps extends React.ComponentProps<typeof SidebarInputPrimitive> {\n\t/** Accessible name when no visible label is associated with the navigation search. */\n\t'aria-label'?: string;\n\t/** Search or filter hint. */\n\tplaceholder?: string;\n\t/** Controlled input value. */\n\tvalue?: React.InputHTMLAttributes<HTMLInputElement>['value'];\n\t/** Disables the navigation input. */\n\tdisabled?: boolean;\n\t/** Native input change callback. */\n\tonChange?: React.ChangeEventHandler<HTMLInputElement>;\n\t/** Additional classes merged with the tokenized control defaults. */\n\tclassName?: string;\n}\ntype SidebarInsetProps = React.ComponentProps<typeof SidebarInsetPrimitive>;\nexport type SidebarMenuDensity = 'compact' | 'default' | 'comfortable';\n\nexport interface SidebarMenuProps extends React.ComponentProps<typeof SidebarMenuPrimitive> {\n\t/** Row and child-list rhythm. Inherits the nearest sidebar menu/provider. */\n\tmenuDensity?: SidebarMenuDensity;\n}\ntype SidebarMenuActionProps = React.ComponentProps<typeof SidebarMenuActionPrimitive>;\nexport interface SidebarMenuBadgeProps extends React.ComponentProps<typeof SidebarMenuBadgePrimitive> {\n\t/** Render in normal flow, for example inside a nested menu button. */\n\tinline?: boolean;\n\t/** Count-bubble size. @default \"md\" */\n\tsize?: ComponentScale;\n}\nexport interface SidebarMenuButtonProps extends Omit<React.ComponentProps<typeof SidebarMenuButtonPrimitive>, 'size' | 'isActive'> {\n\t/** Explicit row scale. Otherwise follows menuDensity, or md in an unconfigured base menu. */\n\tsize?: ComponentScale;\n\t/** Marks the navigation item as current. */\n\tactive?: boolean;\n}\ntype SidebarMenuItemProps = React.ComponentProps<typeof SidebarMenuItemPrimitive>;\nexport interface SidebarMenuSkeletonProps extends React.ComponentProps<'div'> {\n\t/** Show the leading icon placeholder. */\n\tshowIcon?: boolean;\n\t/** Deterministic text-bar width. @default \"72%\" */\n\twidth?: string;\n}\ntype SidebarMenuSubProps = React.ComponentProps<typeof SidebarMenuSubPrimitive>;\nexport interface SidebarMenuSubButtonProps extends Omit<React.ComponentProps<typeof SidebarMenuSubButtonPrimitive>, 'isActive'> {\n\t/** Marks the nested navigation item as current. */\n\tactive?: boolean;\n}\ntype SidebarMenuSubItemProps = React.ComponentProps<typeof SidebarMenuSubItemPrimitive>;\nexport interface SidebarProviderProps extends React.ComponentProps<'div'>, SidebarStateProps {\n\t/** Use the provider width for drawers in embedded workspaces; viewport remains the default. */\n\tadaptTo?: 'viewport' | 'container';\n\t/** Initial expanded state for uncontrolled sidebars. @default true */\n\tdefaultOpen?: boolean;\n\t/** Controlled expanded state. */\n\topen?: boolean;\n\t/** Controlled state callback. */\n\tonOpenChange?: (open: boolean) => void;\n\t/** Default menu rhythm; individual menus may override it. */\n\tmenuDensity?: SidebarMenuDensity;\n\t/** Sidebar shell contents. */\n\tchildren?: React.ReactNode;\n\t/** Scoped shell token overrides and other root styles. */\n\tstyle?: React.CSSProperties;\n\t/** Additional classes merged with the provider root. */\n\tclassName?: string;\n}\ntype SidebarRailProps = React.ComponentProps<typeof SidebarRailPrimitive>;\ntype SidebarSeparatorProps = React.ComponentProps<typeof SidebarSeparatorPrimitive>;\ntype SidebarTriggerProps = React.ComponentProps<typeof SidebarTriggerPrimitive>;\n\n// Navigation labels are medium throughout; the current entry is marked by its fill.\nconst sidebarMenuButtonStateClasses =\n\t`font-medium text-sidebar-foreground transition-[background-color,color] hover:bg-sidebar-accent hover:text-sidebar-foreground ${focusRecipes.sidebar} data-active:bg-sidebar-accent data-active:text-sidebar-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-foreground`;\n\nconst sidebarMenuSubButtonStateClasses = sidebarMenuButtonStateClasses;\n\n// One token-backed recipe covers both composed navigation and raw menu anatomy.\n// No density configured falls back to the default density, like the rest of the menu.\nconst SidebarMenuDensityContext = React.createContext<SidebarMenuDensity | undefined>(undefined);\n// A footer already owns the surface inset. Groups nested in that region keep\n// their navigation anatomy while delegating the surrounding inset to it.\nconst SidebarFooterInsetContext = React.createContext(false);\nconst sidebarMenuDensityRecipes = navigationRowDensityRecipes;\n\nconst paddedCollapsedSidebarWidthClass =\n\t'group-data-[collapsible=icon]:w-shell-sidebar-icon-padded';\n\nfunction renderSidebarMenuText(children: React.ReactNode) {\n\tif (typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint') {\n\t\treturn (\n\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"inherit\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t);\n\t}\n\treturn children;\n}\n\nfunction renderSidebarTooltipText(children: React.ReactNode) {\n\tif (typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint') {\n\t\treturn (\n\t\t\t<Text\n\t\t\t\ttag=\"span\"\n\t\t\t\tsize=\"inherit\"\n\t\t\t\tlineHeight=\"snug\"\n\t\t\t\tclassName=\"sidebar-menu-button--tooltip-text text-inherit\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t);\n\t}\n\treturn children;\n}\n\nfunction normalizeSidebarMenuTooltip(tooltip: SidebarMenuButtonProps['tooltip']) {\n\tif (!tooltip) return tooltip;\n\n\tif (typeof tooltip === 'string') {\n\t\treturn { children: renderSidebarTooltipText(tooltip) };\n\t}\n\n\treturn {\n\t\t...tooltip,\n\t\tchildren: renderSidebarTooltipText(tooltip.children),\n\t};\n}\n\n/** Row height, and the matching square when the sidebar collapses to icons. */\nfunction getSidebarMenuButtonHeightClass(size: SidebarMenuButtonProps['size']) {\n\tif (size === 'sm') {\n\t\treturn 'h-action-sm group-data-[collapsible=icon]:size-action-sm!';\n\t}\n\tif (size === 'lg') {\n\t\treturn 'h-action-lg group-data-[collapsible=icon]:size-action-lg!';\n\t}\n\treturn 'h-action group-data-[collapsible=icon]:size-action!';\n}\n\nfunction SidebarProvider({ className, style, menuDensity, ...props }: SidebarProviderProps) {\n\treturn (\n\t\t<SidebarMenuDensityContext.Provider value={menuDensity}>\n\t\t\t<SidebarProviderPrimitive\n\t\t\t\tclassName={cn('sidebar-provider--component shell-sidebar-vars box-border', className)}\n\t\t\t\tstyle={{\n\t\t\t\t\t'--sidebar-width': 'var(--shell-sidebar-width)',\n\t\t\t\t\t'--sidebar-width-icon': 'var(--shell-sidebar-width-icon)',\n\t\t\t\t\t...style,\n\t\t\t\t} as React.CSSProperties}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<SidebarDrawerOwner>{props.children}</SidebarDrawerOwner>\n\t\t\t</SidebarProviderPrimitive>\n\t\t</SidebarMenuDensityContext.Provider>\n\t);\n}\n\ntype SidebarDrawerRegistration = {\n\tcontained: boolean;\n\tside: 'left' | 'right';\n\tdir?: string;\n\tclassName?: string;\n\tsurfaceClassName?: string;\n\trootClassName?: string;\n\ttitle: string;\n\tdescription: string;\n\tthemeContainer: ThemePortalContainer;\n\tthemeScope: React.ComponentProps<typeof ThemeScopeHostProvider>['value'];\n\tprops: React.ComponentProps<'div'>;\n};\ntype SidebarDrawerContextValue = {\n\ttarget: HTMLDivElement | null;\n\tregister: (panelId: SidebarPanelId, registration: SidebarDrawerRegistration | null) => void;\n};\nconst SidebarDrawerContext = React.createContext<SidebarDrawerContextValue | null>(null);\n\nfunction equalProperties(first: object, second: object) {\n\tconst keys = Object.keys(first);\n\treturn keys.length === Object.keys(second).length && keys.every(key => Reflect.get(first, key) === Reflect.get(second, key));\n}\n\n/** One Base UI modal owner for every named undocked region in this provider. */\nfunction SidebarDrawerOwner({ children }: { children: React.ReactNode }) {\n\tconst { mobilePanel, setMobilePanel } = useSidebarPrimitive();\n\tconst store = useSidebarStore()!;\n\tconst [registrations, setRegistrations] = React.useState<Partial<Record<SidebarPanelId, SidebarDrawerRegistration>>>({});\n\tconst registeredPanels = React.useRef<Partial<Record<SidebarPanelId, SidebarDrawerRegistration>>>({});\n\tconst selection = React.useRef({mobilePanel,setMobilePanel});\n\tselection.current = {mobilePanel,setMobilePanel};\n\tconst mounted = React.useRef(true);\n\tReact.useLayoutEffect(() => {mounted.current = true; return () => {mounted.current = false;};}, []);\n\tconst [target, setTarget] = React.useState<HTMLDivElement | null>(null);\n\tconst lastPanel = React.useRef<SidebarPanelId>('primary');\n\tconst lastRegistration = React.useRef<SidebarDrawerRegistration | null>(null);\n\tif (mobilePanel) lastPanel.current = mobilePanel;\n\tconst register = React.useCallback((panelId: SidebarPanelId, registration: SidebarDrawerRegistration | null) => {\n\t\tconst wasRegistered = !!registeredPanels.current[panelId];\n\t\tif (registration) registeredPanels.current[panelId] = registration; else delete registeredPanels.current[panelId];\n\t\tif (!registration && wasRegistered) {\n\t\t\tif (lastPanel.current === panelId) lastRegistration.current = null;\n\t\t\t// Wait for this commit's registrations: StrictMode can unregister and\n\t\t\t// immediately restore a panel without removing its rendered owner.\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tif (mounted.current && !registeredPanels.current[panelId] && selection.current.mobilePanel === panelId) selection.current.setMobilePanel(null);\n\t\t\t});\n\t\t}\n\t\tsetRegistrations(previous => {\n\t\t\tconst existing = previous[panelId];\n\t\t\tif (!registration && !existing) return previous;\n\t\t\tif (existing && registration && equalProperties(existing.props, registration.props) && equalProperties({...existing,props:undefined}, {...registration,props:undefined})) return previous;\n\t\t\tconst next = {...previous};\n\t\t\tif (registration) next[panelId] = registration; else delete next[panelId];\n\t\t\treturn next;\n\t\t});\n\t}, []);\n\tconst active = mobilePanel ? registrations[mobilePanel] : lastRegistration.current;\n\tif (mobilePanel) lastRegistration.current = active ?? null;\n\tconst context = React.useMemo(() => ({target, register}), [target,register]);\n\tlet capturedHost: HTMLElement | ShadowRoot | null = null;\n\tif (active?.themeContainer) {\n\t\tconst container = active.themeContainer;\n\t\tcapturedHost = 'current' in container ? container.current : container;\n\t}\n\t// An ancestor theme already reaches the application through CSS inheritance;\n\t// keep the native portal inside the frame that owns container adaptation.\n\tconst localDrawer = !!active?.contained || store.adaptTo === 'container';\n\tconst drawerContainer = localDrawer && capturedHost && !store.hostRef.current?.contains(capturedHost)\n\t\t? store.hostRef : active?.themeContainer;\n\treturn <Sheet modal={true} open={!!mobilePanel && !!active} onOpenChange={next => {if (!next) setMobilePanel(null);}}>\n\t\t<SidebarDrawerContext.Provider value={context}>\n\t\t\t{children}\n\t\t\t{active && <ThemeScopeHostProvider value={active.themeScope}><SheetContent\n\t\t\t\t{...active.props}\n\t\t\t\tcontainer={drawerContainer}\n\t\t\t\tforceRenderBackdrop\n\t\t\t\tbackdropClassName={active.contained ? 'absolute' : undefined}\n\t\t\t\tdir={active.dir}\n\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tdata-panel-id={mobilePanel ?? lastPanel.current}\n\t\t\t\tdata-mobile=\"true\"\n\t\t\t\tdata-presentation=\"drawer\"\n\t\t\t\tside={active.side}\n\t\t\t\tfinalFocus={() => store.triggerFor(lastPanel.current)}\n\t\t\t\tclassName={cn('sidebar--component shell-sidebar-vars box-border data-[side=left]:w-(--sidebar-width) data-[side=right]:w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&_[data-overlay-close]]:top-[calc(var(--surface-y)*var(--space-scale)/2+(var(--text-base)*var(--leading-snug)-var(--height-action)*7/8*var(--density-scale))/2)]! [&_[data-overlay-close]]:end-[calc(var(--surface-x)*var(--space-scale)/2)]!', active.contained && 'absolute', active.surfaceClassName, active.className, active.rootClassName)}\n\t\t\t\tstyle={{...active.props.style, '--sidebar-width':'var(--shell-sidebar-width-offcanvas)', ...(localDrawer ? {maxWidth:'calc(100% - var(--control-x) * var(--space-scale))'} : {})} as React.CSSProperties}\n\t\t\t>\n\t\t\t\t<SheetHeader className=\"min-h-[calc(var(--height-action)*var(--density-scale)+var(--surface-y)*var(--space-scale))] p-surface-xs pe-[calc(var(--height-action)*var(--density-scale)+var(--surface-x)*var(--space-scale))]\"><SheetTitle>{active.title}</SheetTitle><SheetDescription className=\"sr-only\">{active.description}</SheetDescription></SheetHeader>\n\t\t\t\t<div ref={setTarget} className=\"sidebar--surface flex min-h-0 w-full flex-1 flex-col\" />\n\t\t\t</SheetContent></ThemeScopeHostProvider>}\n\t\t</SidebarDrawerContext.Provider>\n\t</Sheet>;\n}\n\nexport interface SidebarRegionProps extends Omit<React.ComponentProps<'div'>, 'ref'> {\n\t/** Ref to the semantic aside boundary. */\n\tref?: React.Ref<HTMLElement>;\n\t/** Named desktop/drawer state and descendant scope owned by this region. */\n\tpanelId: SidebarPanelId;\n\t/** Minimum available width for docking; primary/secondary/aside default to 768/1024/1440. Zero stays docked. */\n\tdockAt?: number;\n\t/** Persistent region geometry, separate from docked/drawer presentation. */\n\tpresentation?: 'panel' | 'rail';\n\t/** Physical edge inherited by the scoped Sidebar and its drawer. @default 'left' */\n\tside?: 'left' | 'right';\n\t/** Expanded CSS length; defaults to --shell-sidebar-width. Rail widths derive from existing density roots. */\n\twidth?: string;\n}\n\n/** A named state and width boundary. Shells can also use static content without a provider. */\nfunction SidebarRegion({panelId, dockAt = sidebarDockThresholds[panelId], presentation = 'panel', side = 'left', width, className, style, ref: forwardedRef, children, ...props}: SidebarRegionProps) {\n\tconst store = useSidebarStore();\n\tconst hostRef = React.useRef<HTMLElement | null>(null);\n\tconst [availableWidth, setAvailableWidth] = React.useState(Number.POSITIVE_INFINITY);\n\tconst [collapse, setCollapse] = React.useState<{collapsible: 'offcanvas' | 'icon' | 'none';variant:'sidebar'|'floating'|'inset'} | null>(null);\n\tconst registerRegion = store?.registerRegion;\n\tReact.useLayoutEffect(() => {\n\t\tconst host = hostRef.current;\n\t\tif (!host) return;\n\t\tconst shell = host.closest('[data-shell-regions]');\n\t\tconst measuredHost = !store || store.adaptTo === 'container' ? shell ?? store?.hostRef.current : null;\n\t\tconst update = () => {\n\t\t\tconst parentWidth = measuredHost?.getBoundingClientRect().width;\n\t\t\tsetAvailableWidth(Math.min(window.innerWidth, parentWidth && parentWidth > 0 ? parentWidth : Number.POSITIVE_INFINITY));\n\t\t};\n\t\tupdate();\n\t\twindow.addEventListener('resize', update);\n\t\tconst observer = measuredHost && typeof ResizeObserver !== 'undefined' ? new ResizeObserver(update) : null;\n\t\tif (measuredHost) observer?.observe(measuredHost);\n\t\treturn () => {window.removeEventListener('resize', update); observer?.disconnect();};\n\t}, [store?.adaptTo, store?.hostRef]);\n\tReact.useLayoutEffect(() => {registerRegion?.(panelId,{dockAt,width:availableWidth,collapsible:collapse?.collapsible});}, [registerRegion,panelId,dockAt,availableWidth,collapse?.collapsible]);\n\tReact.useLayoutEffect(() => () => {registerRegion?.(panelId,null);}, [registerRegion,panelId]);\n\tconst docked = store ? store.getPresentation(panelId) === 'docked' : availableWidth >= dockAt;\n\tconst open = store?.openPanels.includes(panelId) ?? true;\n\tconst collapsed = !open && collapse?.collapsible !== 'none';\n\tconst hidden = !docked || (collapsed && collapse?.collapsible === 'offcanvas');\n\t// Native ThemeScope hosts must stay live while their Sidebar portals into the shared drawer.\n\tconst suppressContents = !docked && !collapse;\n\tconst concealed = docked && collapsed && collapse?.collapsible === 'offcanvas';\n\tconst rail = presentation === 'rail' || (collapsed && collapse?.collapsible === 'icon');\n\tconst scope = React.useMemo(() => ({panelId,geometry:presentation,side,setCollapse}), [panelId,presentation,side]);\n\tlet effectiveWidth = presentation === 'rail' ? 'var(--shell-navigation-rail-width)' : rail ? 'var(--shell-sidebar-width-icon)' : 'var(--sidebar-width)';\n\tif (collapsed && collapse?.collapsible === 'icon' && collapse.variant !== 'sidebar' && presentation !== 'rail') effectiveWidth = 'calc(var(--shell-sidebar-width-icon) + 1rem * var(--space-scale))';\n\treturn <SidebarScope value={scope}><aside\n\t\t{...props}\n\t\tref={node => {hostRef.current = node; if(typeof forwardedRef === 'function') forwardedRef(node); else if(forwardedRef) forwardedRef.current = node;}}\n\t\tdata-slot=\"sidebar-region\"\n\t\tdata-panel-id={panelId}\n\t\tdata-presentation={docked ? 'docked' : 'drawer'}\n\t\tdata-region-presentation={presentation}\n\t\tdata-state={open ? 'expanded' : 'collapsed'}\n\t\tdata-collapsible={collapsed ? collapse?.collapsible : ''}\n\t\tdata-side={side}\n\t\taria-hidden={concealed || undefined}\n\t\tinert={concealed || undefined}\n\t\tclassName={cn('sidebar-region--component shell-sidebar-vars box-border relative min-h-0 shrink-0', collapse?.collapsible === 'offcanvas' && 'overflow-hidden', docked && motionRecipes.sidebar, className)}\n\t\tstyle={{...style, '--sidebar-width':width ?? 'var(--shell-sidebar-width)', width:hidden ? 0 : effectiveWidth, position:docked ? undefined : 'static', display:suppressContents ? 'none' : undefined} as React.CSSProperties}\n\t>{children}</aside></SidebarScope>;\n}\n\n/** Tokenized responsive sidebar shell with contained and viewport-fixed modes. */\nfunction Sidebar(props: SidebarProps) {\n\tconst inherited = React.useContext(SidebarScopeContext);\n\tconst selected = props.panelId ?? inherited?.panelId ?? 'primary';\n\tconst scope = React.useMemo(() => ({...(inherited?.panelId === selected ? inherited : {}),panelId:selected,side:props.side ?? (inherited?.panelId === selected ? inherited.side : undefined) ?? 'left'}), [inherited,selected,props.side]);\n\treturn <SidebarScope value={scope}><SidebarPanel {...props} panelId={selected} /></SidebarScope>;\n}\n\nfunction SidebarPanel({\n\tpanelId = 'primary', surface = 'default', side: sideProp,\n\tvariant = 'sidebar', collapsible = 'offcanvas', contained = false,\n\tclassName, surfaceClassName, rootClassName, children, dir,\n\tstrings: stringsProp, ref: forwardedRef, ...props\n}: SidebarProps) {\n\tconst scope = React.useContext(SidebarScopeContext);\n\tconst regionOwnsWidth = !!scope?.setCollapse;\n\tconst side = sideProp ?? scope?.side ?? 'left';\n\tconst { isMobile, state } = useSidebarPrimitive(panelId);\n\tconst store = useSidebarStore()!;\n\tconst drawer = React.useContext(SidebarDrawerContext);\n\tconst inheritedThemeContainer = useThemePortalContainer();\n\t// Without an explicit container the theme hook returns its native host ref.\n\tconst themeHost = inheritedThemeContainer && 'current' in inheritedThemeContainer\n\t\t? inheritedThemeContainer as React.RefObject<HTMLElement | null> : store.hostRef;\n\tconst themeContainer = inheritedThemeContainer === undefined ? store.hostRef : inheritedThemeContainer;\n\tconst themeScope = React.useMemo(() => ({host:themeHost,mounted:inheritedThemeContainer !== null}), [themeHost,inheritedThemeContainer]);\n\tconst drawerThemeScope = React.useMemo(() => ({host:{current:drawer?.target ?? null},mounted:!!drawer?.target}), [drawer?.target]);\n\tconst strings = useStrings(panelId === 'aside' ? defaultInspectorSidebarStrings : defaultSidebarStrings, stringsProp);\n\tconst rootRef = React.useRef<HTMLDivElement | null>(null);\n\tconst setCollapse = scope?.setCollapse;\n\tReact.useLayoutEffect(() => {setCollapse?.({collapsible,variant}); return () => setCollapse?.(null);}, [setCollapse,collapsible,variant]);\n\tReact.useLayoutEffect(() => {\n\t\tif (regionOwnsWidth) return;\n\t\tstore.registerRegion(panelId,{dockAt:sidebarDockThresholds[panelId],collapsible});\n\t\treturn () => store.registerRegion(panelId,null);\n\t}, [regionOwnsWidth,store.registerRegion,panelId,collapsible]);\n\tReact.useLayoutEffect(() => {\n\t\tdrawer?.register(panelId,{contained,side,dir,className,surfaceClassName,rootClassName,title:strings.mobileTitle,description:strings.mobileDescription,themeContainer,themeScope,props:{...props,ref:forwardedRef}});\n\t});\n\tReact.useLayoutEffect(() => {\n\t\tconst target = drawer?.target;\n\t\tconst popup = target?.parentElement;\n\t\tif (!isMobile || store.mobilePanel !== panelId || !target || !popup || popup.contains(document.activeElement)) return;\n\t\t// Switching panels keeps the same modal owner; its old focused child may\n\t\t// have unmounted, so place focus in the newly selected content.\n\t\tconst first = target.querySelector<HTMLElement>('button:not(:disabled),a[href],input:not(:disabled),textarea:not(:disabled),select:not(:disabled),[tabindex]:not([tabindex=\"-1\"])');\n\t\t(first ?? popup).focus({preventScroll:true});\n\t}, [isMobile,store.mobilePanel,drawer?.target,panelId]);\n\tconst registerDrawer = drawer?.register;\n\tReact.useLayoutEffect(() => () => registerDrawer?.(panelId,null), [registerDrawer,panelId]);\n\tconst attachRoot = React.useCallback((node: HTMLDivElement | null) => {\n\t\tconst previous = rootRef.current;\n\t\tif (!node && previous?.contains(document.activeElement)) {\n\t\t\tqueueMicrotask(() => {if (!previous.isConnected) store.triggerFor(panelId)?.focus();});\n\t\t}\n\t\trootRef.current = node;\n\t}, [store.triggerFor,panelId]);\n\tReact.useLayoutEffect(() => {\n\t\tconst root = rootRef.current;\n\t\tconst active = document.activeElement;\n\t\tif (state !== 'collapsed' || collapsible === 'none' || !root || !(active instanceof HTMLElement) || !root.contains(active)) return;\n\t\tlet concealed = collapsible === 'offcanvas';\n\t\tfor (let node: HTMLElement | null = active; !concealed && node && root.contains(node); node = node.parentElement) {\n\t\t\tconst styles = window.getComputedStyle(node);\n\t\t\tconcealed = node.hidden || styles.display === 'none' || styles.visibility === 'hidden';\n\t\t}\n\t\tif (concealed) store.triggerFor(panelId)?.focus();\n\t}, [state,collapsible,panelId,store]);\n\tconst concealed = !isMobile && state === 'collapsed' && collapsible === 'offcanvas';\n\tconst permanent = collapsible === 'none';\n\tconst sidebarWidth = (props.style as React.CSSProperties & {'--sidebar-width'?: string})?.['--sidebar-width']\n\t\t?? (scope?.geometry === 'rail' ? 'var(--shell-navigation-rail-width)' : undefined);\n\tif (isMobile && collapsible !== 'none') {\n\t\t// Nested surfaces stay within the visible modal boundary and inherit its\n\t\t// selected CSS scope through the native drawer host.\n\t\treturn drawer?.target && store.mobilePanel === panelId ? createPortal(<ThemeScopeHostProvider value={drawerThemeScope}>{children}</ThemeScopeHostProvider>, drawer.target) : null;\n\t}\n\t// Keep one desktop content tree across collapse modes. A permanent panel's\n\t// transparent group lets native widths resolve against its original parent.\n\tconst positioningProps = {...props,ref:forwardedRef};\n\tconst permanentBoundaryProps = permanent ? {\n\t\t'data-panel-id':panelId, 'data-presentation':'docked', 'data-state':state,\n\t\t'data-collapsible':'', 'data-variant':variant, 'data-side':side, dir,\n\t} : {};\n\tif (contained) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'shell-sidebar-vars group peer text-sidebar-foreground',\n\t\t\t\t\tpermanent ? 'contents' : 'sidebar--component sticky top-0 block h-full shrink-0',\n\t\t\t\t\t!permanent && (regionOwnsWidth ? 'w-full' : 'w-(--sidebar-width) transition-[width] duration-200 ease-linear data-[collapsible=offcanvas]:w-0'),\n\t\t\t\t\t!permanent && !regionOwnsWidth && (variant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? 'data-[collapsible=icon]:w-shell-sidebar-icon-padded'\n\t\t\t\t\t\t: 'data-[collapsible=icon]:w-(--sidebar-width-icon)'),\n\t\t\t\t\t!permanent && rootClassName,\n\t\t\t\t)}\n\t\t\t\tstyle={{'--sidebar-width': sidebarWidth} as React.CSSProperties}\n\t\t\t\tdata-panel-id={panelId}\n\t\t\tdata-presentation=\"docked\"\n\t\t\t\t\taria-hidden={concealed || undefined}\n\t\t\t\t\tinert={concealed || undefined}\n\t\t\tref={attachRoot}\n\t\t\tdata-state={state}\n\t\t\t\t\tdata-collapsible={!permanent && state === 'collapsed' ? collapsible : ''}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tdata-side={side}\n\t\t\t\t\tdata-slot={permanent ? undefined : 'sidebar'}\n\t\t\t\tdir={dir}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot={permanent ? 'sidebar' : undefined}\n\t\t\t\t\t{...permanentBoundaryProps}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'box-border flex h-full', permanent ? 'relative' : 'absolute inset-y-0 z-10',\n\t\t\t\t\t\tpermanent && 'sidebar--component',\n\t\t\t\t\t\tregionOwnsWidth ? collapsible === 'offcanvas' ? 'w-(--sidebar-width)' : 'w-full' : 'w-(--sidebar-width) transition-[transform,width] duration-200 ease-linear',\n\t\t\t\t\t\t!regionOwnsWidth && (side === 'left'\n\t\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:-translate-x-full'\n\t\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:translate-x-full'),\n\t\t\t\t\t\tregionOwnsWidth && (side === 'left' ? 'left-0' : 'right-0'),\n\t\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t\t? cn(variant === 'floating' ? 'p-space-md' : 'px-space-md py-space-lg', paddedCollapsedSidebarWidthClass)\n\t\t\t\t\t\t\t: !regionOwnsWidth && 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n\t\t\t\t\t\tpermanent && rootClassName, className,\n\t\t\t\t\t)}\n\t\t\t\t\t{...positioningProps}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'sidebar--surface box-border flex size-full flex-col group-data-[variant=floating]:rounded-surface group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border',\n\t\t\t\t\t\t\tsurface === 'transparent' ? 'bg-transparent' : 'bg-sidebar',\n\t\t\t\t\t\t\tsurfaceClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\t\tclassName={cn('shell-sidebar-vars group peer text-sidebar-foreground', permanent ? 'contents' : 'sidebar--component block', !permanent && rootClassName)}\n\t\t\t\tstyle={{'--sidebar-width': sidebarWidth} as React.CSSProperties}\n\t\t\tdata-panel-id={panelId}\n\t\t\tdata-presentation=\"docked\"\n\t\t\t\taria-hidden={concealed || undefined}\n\t\t\t\tinert={concealed || undefined}\n\t\t\tref={attachRoot}\n\t\t\tdata-state={state}\n\t\t\t\tdata-collapsible={!permanent && state === 'collapsed' ? collapsible : ''}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot={permanent ? undefined : 'sidebar'}\n\t\t\tdir={dir}\n\t\t>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n\t\t\t\t\t\tpermanent && 'hidden',\n\t\t\t\t\t'group-data-[collapsible=offcanvas]:w-0',\n\t\t\t\t\t'group-data-[side=right]:rotate-180',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? paddedCollapsedSidebarWidthClass\n\t\t\t\t\t\t: 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot={permanent ? 'sidebar' : 'sidebar-container'}\n\t\t\t\tdata-side={side}\n\t\t\t\t{...permanentBoundaryProps}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\tpermanent ? 'box-border relative flex h-full w-(--sidebar-width)' : 'box-border fixed inset-y-0 z-10 flex h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n\t\t\t\t\tpermanent && 'sidebar--component',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? cn('p-space-md', paddedCollapsedSidebarWidthClass)\n\t\t\t\t\t\t: 'border-border group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n\t\t\t\t\tpermanent && rootClassName, className,\n\t\t\t\t)}\n\t\t\t\t{...positioningProps}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'sidebar--surface box-border flex size-full flex-col group-data-[variant=floating]:rounded-surface group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border',\n\t\t\t\t\t\tsurface === 'transparent' ? 'bg-transparent' : 'bg-sidebar',\n\t\t\t\t\tsurfaceClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: SidebarHeaderProps) {\n\treturn <SidebarHeaderPrimitive className={cn('sidebar-header--component box-border min-w-0 shrink-0 gap-space-sm p-surface-xs', className)} {...props} />;\n}\n\nfunction SidebarFooter({ className, ...props }: SidebarFooterProps) {\n\treturn <SidebarFooterInsetContext.Provider value={true}>\n\t\t<SidebarFooterPrimitive className={cn('sidebar-footer--component box-border min-w-0 shrink-0 gap-space-md p-surface-xs', surfaceDividerRecipes.sidebar.footer, className)} {...props} />\n\t</SidebarFooterInsetContext.Provider>;\n}\n\nfunction SidebarContent({ className, ...props }: SidebarContentProps) {\n\treturn <SidebarContentPrimitive className={cn('sidebar-content--component min-w-0 gap-space-sm overflow-x-hidden', className)} {...props} />;\n}\n\nfunction SidebarGroup({ className, ...props }: SidebarGroupProps) {\n\tconst footerOwnsInset = React.useContext(SidebarFooterInsetContext);\n\treturn <SidebarGroupPrimitive className={cn('sidebar-group--component box-border', footerOwnsInset ? 'p-0' : 'px-surface-xs py-space-2xs', className)} {...props} />;\n}\n\nfunction SidebarGroupContent({ className, ...props }: SidebarGroupContentProps) {\n\treturn <SidebarGroupContentPrimitive className={cn('sidebar-group-content--component', className)} {...props} />;\n}\n\nfunction SidebarGroupAction({ className, ...props }: SidebarGroupActionProps) {\n\treturn <SidebarGroupActionPrimitive className={cn('sidebar-group-action--component top-space-xs size-action-xs', className)} {...props} />;\n}\n\nfunction SidebarInput({ className, ...props }: SidebarInputProps) {\n\tconst {defaultScale} = useDensityConfig();\n\tconst size = resolveFormControlSize(undefined,defaultScale);\n\treturn <SidebarInputPrimitive className={cn('sidebar-input--component',formFieldFrameClasses(size),className)} {...props} />;\n}\n\nfunction SidebarSeparator({ className, ...props }: SidebarSeparatorProps) {\n\treturn <SidebarSeparatorPrimitive className={cn('sidebar-separator--component mx-space-lg', className)} {...props} />;\n}\n\nfunction SidebarMenu({ className, menuDensity, ...props }: SidebarMenuProps) {\n\tconst inheritedDensity = React.useContext(SidebarMenuDensityContext);\n\tconst density = menuDensity ?? inheritedDensity;\n\tconst recipe = sidebarMenuDensityRecipes[density ?? 'default'];\n\treturn (\n\t\t<SidebarMenuDensityContext.Provider value={density}>\n\t\t\t<SidebarMenuPrimitive className={cn('sidebar-menu--component', recipe.gap, className)} {...props} />\n\t\t</SidebarMenuDensityContext.Provider>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: SidebarMenuItemProps) {\n\treturn <SidebarMenuItemPrimitive className={cn('sidebar-menu-item--component group-data-[collapsible=icon]:flex group-data-[collapsible=icon]:justify-center', className)} {...props} />;\n}\n\nfunction SidebarMenuAction({ className, ...props }: SidebarMenuActionProps) {\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\treturn <SidebarMenuActionPrimitive className={cn(\n\t\t'sidebar-menu-action--component size-action-xs right-auto end-space-2xs! top-action-center! -translate-y-1/2 peer-data-[size=sm]/menu-button:top-action-sm-center! peer-data-[size=lg]/menu-button:top-action-lg-center!',\n\t\tdensity === 'comfortable'\n\t\t\t? 'peer-data-[sidebar=menu-sub-button]/menu-sub-button:top-action-sm-center!'\n\t\t\t: 'peer-data-[sidebar=menu-sub-button]/menu-sub-button:top-action-xs-center!',\n\t\tclassName,\n\t)} {...props} />;\n}\n\nfunction SidebarMenuBadge({ className, inline = false, size = 'md', children, ...props }: SidebarMenuBadgeProps) {\n\tconst content = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t? (\n\t\t\t<Text tag=\"span\" size=\"xxs\" weight=\"semibold\" lineHeight=\"none\" className=\"text-inherit tabular-nums\">\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t)\n\t\t: children;\n\n\treturn (\n\t\t<SidebarMenuBadgePrimitive\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-badge--component shrink-0 text-sidebar-foreground',\n\t\t\t\tsize === 'sm' ? 'h-4 min-w-4' : size === 'lg' ? 'h-6 min-w-6' : 'h-5 min-w-5',\n\t\t\t\tinline\n\t\t\t\t\t? 'static ms-auto translate-y-0'\n\t\t\t\t\t: 'top-action-center! -translate-y-1/2 peer-data-[size=sm]/menu-button:top-action-sm-center! peer-data-[size=lg]/menu-button:top-action-lg-center!',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</SidebarMenuBadgePrimitive>\n\t);\n}\n\nfunction SidebarMenuSkeleton({ className, showIcon = false, style, width, ...props }: SidebarMenuSkeletonProps) {\n\tconst resolvedWidth = width ?? '72%';\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-skeleton--component flex h-action items-center gap-space-md rounded-radius px-control-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon ? (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-icon rounded-radius-sm\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-icon-sm flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={{ maxWidth: resolvedWidth }}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: SidebarMenuSubProps) {\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\treturn <SidebarMenuSubPrimitive className={cn('sidebar-menu-sub--component border-l-0 border-s! border-sidebar-border', navigationChildInsetClasses, sidebarMenuDensityRecipes[density].childGap, className)} {...props} />;\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: SidebarMenuSubItemProps) {\n\treturn <SidebarMenuSubItemPrimitive className={cn('sidebar-menu-sub-item--component', className)} {...props} />;\n}\n\nfunction SidebarInset({ className, ...props }: SidebarInsetProps) {\n\treturn <SidebarInsetPrimitive className={cn('sidebar-inset--component', className)} {...props} />;\n}\n\nfunction SidebarRail({ className, ...props }: SidebarRailProps) {\n\treturn <SidebarRailPrimitive className={cn('sidebar-rail--component', className)} {...props} />;\n}\n\nfunction SidebarTrigger({ className, ...props }: SidebarTriggerProps) {\n\t// Triggers sit in header rows beside search, tools and account controls, so they share their height.\n\treturn <SidebarTriggerPrimitive className={cn('sidebar-trigger--component size-action', className)} {...props} />;\n}\n\nfunction SidebarMenuButton({\n\tclassName,\n\trender,\n\tsize,\n\ttooltip,\n\tchildren,\n\tactive = false,\n\t...props\n}: SidebarMenuButtonProps) {\n\tconst normalizedRender = tooltip && !render\n\t\t? <button type=\"button\" />\n\t\t: render;\n\tconst normalizedTooltip = normalizeSidebarMenuTooltip(tooltip);\n\t// Without a scope, rows take the default density like the menu gap, child rows\n\t// and actions do, so an unscoped sidebar is not taller than its own rhythm.\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\tconst resolvedSize = size ?? sidebarMenuDensityRecipes[density].size;\n\tconst primitiveSize = resolvedSize === 'md' ? 'default' : resolvedSize;\n\n\treturn (\n\t\t<SidebarMenuButtonPrimitive\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-button--component group-data-[collapsible=icon]:px-control-sm! group-data-[collapsible=icon]:py-0!',\n\t\t\t\tnavigationRowInlineClasses,\n\t\t\t\t// Reserve the trailing action (action-xs) plus the control inset: the\n\t\t\t\t// generated recipe is written from the root knobs, because the derived\n\t\t\t\t// --spacing-* aliases are fixed at :root and a scoped density would\n\t\t\t\t// otherwise resolve with the root scale.\n\t\t\t\t'group-has-data-[sidebar=menu-action]/menu-item:px-control-sm!',\n\t\t\t\taffordanceGeometry.menuActionReserve.item,\n\t\t\t\tgetSidebarMenuButtonHeightClass(resolvedSize),\n\t\t\t\tsidebarMenuButtonStateClasses,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\trender={normalizedRender}\n\t\t\tsize={primitiveSize}\n\t\t\ttooltip={normalizedTooltip}\n\t\t\tisActive={active}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderSidebarMenuText(children)}\n\t\t</SidebarMenuButtonPrimitive>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tclassName,\n\tchildren,\n\tactive = false,\n\t...props\n}: SidebarMenuSubButtonProps) {\n\tconst density = React.useContext(SidebarMenuDensityContext) ?? 'default';\n\treturn (\n\t\t<SidebarMenuSubButtonPrimitive\n\t\t\tclassName={cn(\n\t\t\t\t'sidebar-menu-sub-button--component peer/menu-sub-button translate-x-0',\n\t\t\t\taffordanceGeometry.menuActionReserve.subItem,\n\t\t\t\tnavigationRowInlineClasses,\n\t\t\t\tsidebarMenuDensityRecipes[density].childHeight,\n\t\t\t\tsidebarMenuSubButtonStateClasses,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tisActive={active}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderSidebarMenuText(children)}\n\t\t</SidebarMenuSubButtonPrimitive>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tchildren,\n\t...props\n}: SidebarGroupLabelProps) {\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? <DisplayLabel>{children}</DisplayLabel>\n\t\t\t: children;\n\n\treturn (\n\t\t<SidebarGroupLabelPrimitive\n\t\t\tclassName={cn('sidebar-group-label--component mb-space-md h-action-sm px-control-sm group-data-[collapsible=icon]:hidden', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</SidebarGroupLabelPrimitive>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRegion,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n};\n\n/** Internal bridge for the layout layer; not part of the base package entrypoint. */\nexport const useBaseSidebarContext = useSidebarPrimitive;\n\n/** Internal density bridge for composed navigation; not a base entrypoint export. */\nexport function useBaseSidebarMenuDensity() {\n\treturn React.useContext(SidebarMenuDensityContext);\n}\n\nexport type { SidebarPanelId, SidebarPresentation };\n"],"mappings":"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"}
@@ -0,0 +1,265 @@
1
+ "use client";
2
+ import { t as e } from "./utils-B6kKb8jB.js";
3
+ import { t } from "./smart-card-CW0hjetE.js";
4
+ import { i as n } from "./surface-recipes-BKRVW8Os.js";
5
+ import * as r from "react";
6
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
+ //#region src/components/ui/skeleton.tsx
8
+ function o({ className: t, ...r }) {
9
+ return /* @__PURE__ */ i("div", {
10
+ "data-slot": "skeleton",
11
+ className: e(n.chip, "rounded-radius animate-pulse", t),
12
+ ...r
13
+ });
14
+ }
15
+ //#endregion
16
+ //#region src/components/base/skeleton/skeleton.tsx
17
+ var s = [
18
+ "w-full",
19
+ "w-11/12",
20
+ "w-10/12",
21
+ "w-9/12",
22
+ "w-8/12",
23
+ "w-7/12"
24
+ ], c = [
25
+ "w-24",
26
+ "w-36",
27
+ "w-28",
28
+ "w-20",
29
+ "w-32",
30
+ "w-16"
31
+ ], l = (e, t, n = 12, r = !1) => Number.isFinite(e) ? Math.max(+!r, Math.min(Math.floor(e ?? t), n)) : t, u = (e, t) => t?.[e % t.length] ?? s[e % s.length], d = (e) => e["aria-label"] || e["aria-labelledby"] ? void 0 : !0;
32
+ function f({ className: n, contentClassName: r, children: a }) {
33
+ return /* @__PURE__ */ i(t, {
34
+ surface: "framed",
35
+ className: n,
36
+ contentClassName: e("skeleton-frame--content min-w-0", r),
37
+ children: a
38
+ });
39
+ }
40
+ function p({ description: t = !0, action: n = !0, className: r }) {
41
+ return /* @__PURE__ */ a("div", {
42
+ className: e("flex min-w-0 items-start justify-between gap-space-md", r),
43
+ children: [/* @__PURE__ */ a("div", {
44
+ className: "flex min-w-0 flex-1 flex-col gap-space-sm",
45
+ children: [/* @__PURE__ */ i(y, { className: "h-4 w-36 max-w-full" }), !!t && /* @__PURE__ */ i(y, { className: "h-3 w-56 max-w-full" })]
46
+ }), !!n && /* @__PURE__ */ i(y, { className: "h-action-sm w-20 shrink-0" })]
47
+ });
48
+ }
49
+ function m({ index: t }) {
50
+ return /* @__PURE__ */ a(f, {
51
+ contentClassName: "flex min-w-0 flex-col gap-space-md",
52
+ children: [/* @__PURE__ */ a("div", {
53
+ className: "flex items-start justify-between gap-space-md",
54
+ children: [/* @__PURE__ */ a("div", {
55
+ className: "flex min-w-0 flex-col gap-space-sm",
56
+ children: [/* @__PURE__ */ i(y, { className: e("h-3 w-20", t % 2 == 0 && "w-24") }), /* @__PURE__ */ i(y, { className: e("h-5 w-24", t % 3 == 0 && "w-28") })]
57
+ }), /* @__PURE__ */ i(y, { className: "size-8 rounded-radius-md" })]
58
+ }), /* @__PURE__ */ a("div", {
59
+ className: "flex items-center gap-space-sm",
60
+ children: [/* @__PURE__ */ i(y, { className: "h-5 w-16" }), /* @__PURE__ */ i(y, { className: "h-3 w-24" })]
61
+ })]
62
+ });
63
+ }
64
+ function h({ index: t }) {
65
+ return /* @__PURE__ */ a("div", {
66
+ className: "flex min-w-0 flex-col gap-space-xs",
67
+ children: [/* @__PURE__ */ i(y, { className: e("h-3 w-20", t % 2 == 0 && "w-24") }), /* @__PURE__ */ i(y, { className: e("h-4 w-36 max-w-full", t % 3 == 0 && "w-44") })]
68
+ });
69
+ }
70
+ function g({ lines: e = 4, dense: t = !1 }) {
71
+ let n = l(e, 4, 8);
72
+ return /* @__PURE__ */ a(f, {
73
+ contentClassName: "flex min-w-0 flex-col gap-space-lg",
74
+ children: [/* @__PURE__ */ i(p, {
75
+ description: !t,
76
+ action: !t
77
+ }), /* @__PURE__ */ i("div", {
78
+ className: "grid min-w-0 gap-space-md sm:grid-cols-2",
79
+ children: Array.from({ length: n }, (e, t) => /* @__PURE__ */ i(h, { index: t }, `detail-row-${String(t)}`))
80
+ })]
81
+ });
82
+ }
83
+ function _({ lines: t = 3 }) {
84
+ let n = l(t, 3, 5);
85
+ return /* @__PURE__ */ a(f, {
86
+ contentClassName: "flex min-w-0 flex-col gap-space-md",
87
+ children: [/* @__PURE__ */ i(p, {
88
+ description: !1,
89
+ action: !1
90
+ }), /* @__PURE__ */ i("div", {
91
+ className: "grid min-w-0 gap-space-sm",
92
+ children: Array.from({ length: n }, (t, n) => /* @__PURE__ */ a("div", {
93
+ className: "flex min-w-0 items-center justify-between gap-space-md",
94
+ children: [/* @__PURE__ */ i(y, { className: e("h-3 w-20", n % 2 == 0 && "w-24") }), /* @__PURE__ */ i(y, { className: e("h-4 w-16", n % 3 == 0 && "w-20") })]
95
+ }, `sidebar-line-${String(n)}`))
96
+ })]
97
+ });
98
+ }
99
+ function v({ row: t }) {
100
+ return /* @__PURE__ */ a("div", {
101
+ className: "flex min-w-0 items-center gap-space-sm",
102
+ children: [/* @__PURE__ */ i(y, { className: "size-avatar rounded-full shrink-0" }), /* @__PURE__ */ a("div", {
103
+ className: "flex min-w-0 flex-1 flex-col gap-space-xs",
104
+ children: [/* @__PURE__ */ i(y, { className: e("h-4 w-32 max-w-full", t % 2 == 0 && "w-40") }), /* @__PURE__ */ i(y, { className: "h-3 w-24 max-w-full" })]
105
+ })]
106
+ });
107
+ }
108
+ function y({ className: t, ...n }) {
109
+ return /* @__PURE__ */ i(o, {
110
+ "aria-hidden": d(n),
111
+ className: e("skeleton--component max-w-full rounded-radius-sm motion-reduce:animate-none", t),
112
+ ...n
113
+ });
114
+ }
115
+ y.displayName = "Skeleton";
116
+ var b = r.forwardRef(function({ lines: t = 3, avatar: n = !1, action: r = !1, lineWidths: o, className: s, ...c }, f) {
117
+ let p = l(t, 3);
118
+ return /* @__PURE__ */ a("div", {
119
+ ref: f,
120
+ "aria-hidden": d(c),
121
+ className: e("content-skeleton--component", "flex w-full min-w-0 items-start gap-space-md", s),
122
+ ...c,
123
+ children: [
124
+ !!n && /* @__PURE__ */ i(y, { className: "size-avatar rounded-full shrink-0" }),
125
+ /* @__PURE__ */ i("div", {
126
+ className: "content-skeleton--body flex min-w-0 flex-1 flex-col gap-space-sm",
127
+ children: Array.from({ length: p }, (t, n) => /* @__PURE__ */ i(y, { className: e("content-skeleton--line h-4", u(n, o)) }, `content-line-${String(n)}`))
128
+ }),
129
+ !!r && /* @__PURE__ */ i(y, { className: "content-skeleton--action h-action-sm w-16 shrink-0" })
130
+ ]
131
+ });
132
+ });
133
+ b.displayName = "ContentSkeleton";
134
+ var x = r.forwardRef(function({ stats: t = 3, sections: n = 2, sectionLines: r = 4, tabs: o = !0, actions: s = 2, className: c, children: u, ...f }, p) {
135
+ let h = l(t, 3, 6, !0), _ = l(n, 2, 6, !0), v = l(s, 2, 4, !0);
136
+ return /* @__PURE__ */ a("div", {
137
+ ref: p,
138
+ "aria-hidden": d(f),
139
+ className: e("page-skeleton--component flex w-full min-w-0 flex-col gap-space-2xl", c),
140
+ ...f,
141
+ children: [
142
+ /* @__PURE__ */ a("div", {
143
+ className: "page-skeleton--header flex min-w-0 flex-col gap-space-lg md:flex-row md:items-start md:justify-between",
144
+ children: [/* @__PURE__ */ a("div", {
145
+ className: "flex min-w-0 flex-1 items-start gap-space-md",
146
+ children: [/* @__PURE__ */ i(y, { className: "size-avatar-lg rounded-full shrink-0" }), /* @__PURE__ */ a("div", {
147
+ className: "flex min-w-0 flex-1 flex-col gap-space-sm",
148
+ children: [
149
+ /* @__PURE__ */ i(y, { className: "h-5 w-56 max-w-full" }),
150
+ /* @__PURE__ */ i(y, { className: "h-4 w-80 max-w-full" }),
151
+ /* @__PURE__ */ a("div", {
152
+ className: "flex flex-wrap gap-space-sm pt-space-2xs",
153
+ children: [
154
+ /* @__PURE__ */ i(y, { className: "h-6 w-16" }),
155
+ /* @__PURE__ */ i(y, { className: "h-6 w-20" }),
156
+ /* @__PURE__ */ i(y, { className: "h-6 w-14" })
157
+ ]
158
+ })
159
+ ]
160
+ })]
161
+ }), /* @__PURE__ */ i("div", {
162
+ className: "flex min-w-0 flex-wrap items-center gap-space-sm",
163
+ children: Array.from({ length: v }, (t, n) => /* @__PURE__ */ i(y, { className: e("h-action-sm", n === 0 ? "w-24" : "size-action-sm") }, `page-action-${String(n)}`))
164
+ })]
165
+ }),
166
+ !!o && /* @__PURE__ */ a("div", {
167
+ className: "page-skeleton--tabs flex min-w-0 flex-wrap gap-space-sm rounded-surface border border-border bg-card p-surface-xs",
168
+ children: [
169
+ /* @__PURE__ */ i(y, { className: "h-action-sm w-32" }),
170
+ /* @__PURE__ */ i(y, { className: "h-action-sm w-28" }),
171
+ /* @__PURE__ */ i(y, { className: "h-action-sm w-36" })
172
+ ]
173
+ }),
174
+ h > 0 && /* @__PURE__ */ i("div", {
175
+ className: "page-skeleton--stats grid min-w-0 gap-space-lg sm:grid-cols-2 lg:grid-cols-3",
176
+ children: Array.from({ length: h }, (e, t) => /* @__PURE__ */ i(m, { index: t }, `page-stat-${String(t)}`))
177
+ }),
178
+ _ > 0 && /* @__PURE__ */ i("div", {
179
+ className: "page-skeleton--sections grid min-w-0 gap-space-lg",
180
+ children: Array.from({ length: _ }, (e, t) => /* @__PURE__ */ i(g, { lines: r }, `page-section-${String(t)}`))
181
+ }),
182
+ u
183
+ ]
184
+ });
185
+ });
186
+ x.displayName = "PageSkeleton";
187
+ var S = r.forwardRef(function({ mainSections: t = 2, sidebarSections: n = 3, mainLines: r = 5, sidebarLines: o = 3, className: s, ...c }, u) {
188
+ let d = l(t, 2, 5), f = l(n, 3, 5);
189
+ return /* @__PURE__ */ i(x, {
190
+ ref: u,
191
+ stats: 0,
192
+ sections: 0,
193
+ tabs: !1,
194
+ className: e("two-column-page-skeleton--component", s),
195
+ ...c,
196
+ children: /* @__PURE__ */ a("div", {
197
+ className: "two-column-page-skeleton--layout grid min-w-0 gap-space-lg lg:grid-cols-3",
198
+ children: [/* @__PURE__ */ i("div", {
199
+ className: "two-column-page-skeleton--main grid min-w-0 gap-space-lg lg:col-span-2",
200
+ children: Array.from({ length: d }, (e, t) => /* @__PURE__ */ i(g, { lines: r }, `two-column-main-${String(t)}`))
201
+ }), /* @__PURE__ */ i("div", {
202
+ className: "two-column-page-skeleton--sidebar grid min-w-0 gap-space-lg self-start",
203
+ children: Array.from({ length: f }, (e, t) => /* @__PURE__ */ i(_, { lines: o }, `two-column-sidebar-${String(t)}`))
204
+ })]
205
+ })
206
+ });
207
+ });
208
+ S.displayName = "TwoColumnPageSkeleton";
209
+ var C = "first:ps-surface last:pe-surface", w = r.forwardRef(function({ rows: n = 6, columns: r = 5, toolbar: o = !0, footer: s = !0, className: u, ...f }, p) {
210
+ let m = l(n, 6, 20), h = l(r, 5, 8), g = Array.from({ length: h }, (e, t) => t);
211
+ return /* @__PURE__ */ i("div", {
212
+ ref: p,
213
+ "aria-hidden": d(f),
214
+ className: e("table-skeleton--component", u),
215
+ ...f,
216
+ children: /* @__PURE__ */ a(t, {
217
+ surface: "framed",
218
+ className: "overflow-hidden",
219
+ padding: "none",
220
+ children: [
221
+ !!o && /* @__PURE__ */ a("div", {
222
+ className: "table-skeleton--toolbar flex min-w-0 items-center justify-between gap-space-md border-b border-border/60 px-surface py-row-y-lg",
223
+ children: [/* @__PURE__ */ a("div", {
224
+ className: "flex min-w-0 flex-1 items-center gap-space-sm",
225
+ children: [/* @__PURE__ */ i(y, { className: "h-control-sm w-56 max-w-full" }), /* @__PURE__ */ i(y, { className: "hidden h-action-sm w-24 sm:block" })]
226
+ }), /* @__PURE__ */ a("div", {
227
+ className: "hidden shrink-0 items-center gap-space-sm sm:flex",
228
+ children: [/* @__PURE__ */ i(y, { className: "h-action-sm w-20" }), /* @__PURE__ */ i(y, { className: "size-action-sm" })]
229
+ })]
230
+ }),
231
+ /* @__PURE__ */ i("div", {
232
+ className: "table-skeleton--scroll overflow-x-auto",
233
+ children: /* @__PURE__ */ a("table", {
234
+ className: "w-full min-w-full table-fixed border-collapse",
235
+ children: [/* @__PURE__ */ i("thead", { children: /* @__PURE__ */ i("tr", {
236
+ className: "border-b border-border/60",
237
+ children: g.map((t) => /* @__PURE__ */ i("th", {
238
+ className: e("h-control px-row-x text-start align-middle", C),
239
+ children: /* @__PURE__ */ i(y, { className: e("h-4", c[t % c.length]) })
240
+ }, `table-head-${String(t)}`))
241
+ }) }), /* @__PURE__ */ i("tbody", { children: Array.from({ length: m }, (t, n) => /* @__PURE__ */ i("tr", {
242
+ className: "border-b border-border/60 last:border-b-0",
243
+ children: g.map((t) => /* @__PURE__ */ i("td", {
244
+ className: e("px-row-x py-row-y align-middle", C),
245
+ children: t === 0 ? /* @__PURE__ */ i(v, { row: n }) : /* @__PURE__ */ i(y, { className: e("h-4", c[(n + t) % c.length]) })
246
+ }, `table-cell-${String(n)}-${String(t)}`))
247
+ }, `table-row-${String(n)}`)) })]
248
+ })
249
+ }),
250
+ !!s && /* @__PURE__ */ a("div", {
251
+ className: "table-skeleton--footer flex flex-wrap items-center justify-between gap-space-md border-t border-border/60 px-surface py-row-y-lg",
252
+ children: [/* @__PURE__ */ i(y, { className: "h-4 w-32" }), /* @__PURE__ */ a("div", {
253
+ className: "flex items-center gap-space-sm",
254
+ children: [/* @__PURE__ */ i(y, { className: "h-action-sm w-20" }), /* @__PURE__ */ i(y, { className: "h-action-sm w-20" })]
255
+ })]
256
+ })
257
+ ]
258
+ })
259
+ });
260
+ });
261
+ w.displayName = "TableSkeleton";
262
+ //#endregion
263
+ export { S as a, w as i, x as n, y as r, b as t };
264
+
265
+ //# sourceMappingURL=skeleton-BapcJd9C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton-BapcJd9C.js","names":["Skeleton","PrimitiveSkeleton","React","cn","neutralFillRecipes","React$1","Skeleton$1","props","className","LINE_WIDTHS","TABLE_WIDTHS","clampCount","value","fallback","max","lineWidth","widths","index","skeletonAriaHidden","SkeletonFrame","Card","contentClassName","SkeletonCardHeader","Skeleton","description","action","MetricCardSkeleton","DetailRowSkeleton","DetailCardSkeleton","lineCount","lines","dense","SidebarCardSkeleton","TableResourceCellSkeleton","row","ContentSkeleton","avatar","lineWidths","PageSkeleton","statCount","stats","sectionCount","sections","actionCount","actions","tabs","sectionLines","children","TwoColumnPageSkeleton","mainCount","mainSections","sidebarCount","sidebarSections","mainLines","sidebarLines","tableEdgeInset","TableSkeleton","rowCount","rows","columnCount","columns","columnIndexes","toolbar","column","footer"],"sources":["../src/components/ui/skeleton.tsx","../src/components/base/skeleton/skeleton.tsx"],"sourcesContent":["import { neutralFillRecipes } from \"../../lib/surface-recipes\"\nimport { cn } from \"../../lib/utils\"\n\n// The translucent chip fill keeps one contrast on every surface, including a\n// sidebar or band that is itself --muted, where a muted bar would disappear.\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(neutralFillRecipes.chip, \"rounded-radius animate-pulse\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","import * as React from 'react';\n\nimport { Card } from '../cards/smart-card';\nimport { Skeleton as PrimitiveSkeleton } from '../../ui/skeleton';\nimport { cn } from '../../../lib/utils';\n\ntype DivProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst LINE_WIDTHS = [\n\t'w-full',\n\t'w-11/12',\n\t'w-10/12',\n\t'w-9/12',\n\t'w-8/12',\n\t'w-7/12',\n] as const;\n\nconst TABLE_WIDTHS = [\n\t'w-24',\n\t'w-36',\n\t'w-28',\n\t'w-20',\n\t'w-32',\n\t'w-16',\n] as const;\n\nconst clampCount = (value: number | undefined, fallback: number, max = 12, allowZero = false) => {\n\tif (!Number.isFinite(value)) return fallback;\n\tconst count = Math.floor(value ?? fallback);\n\treturn Math.max(allowZero ? 0 : 1, Math.min(count, max));\n};\n\nconst lineWidth = (index: number, widths?: readonly string[]) =>\n\twidths?.[index % widths.length] ?? LINE_WIDTHS[index % LINE_WIDTHS.length];\n\nconst skeletonAriaHidden = (props: Pick<DivProps, 'aria-label' | 'aria-labelledby'>) =>\n\tprops['aria-label'] || props['aria-labelledby'] ? undefined : true;\n\nfunction SkeletonFrame({\n\tclassName,\n\tcontentClassName,\n\tchildren,\n}: {\n\tclassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\tchildren: React.ReactNode;\n}) {\n\treturn (\n\t\t<Card\n\t\t\tsurface=\"framed\"\n\t\t\tclassName={className}\n\t\t\tcontentClassName={cn('skeleton-frame--content min-w-0', contentClassName)}\n\t\t>\n\t\t\t{children}\n\t\t</Card>\n\t);\n}\n\nfunction SkeletonCardHeader({\n\tdescription = true,\n\taction = true,\n\tclassName,\n}: {\n\t/** Supporting copy under the title. */\n\tdescription?: boolean;\n\t/** The action this surface performs. */\n\taction?: boolean;\n\tclassName?: string;\n}) {\n\treturn (\n\t\t<div className={cn('flex min-w-0 items-start justify-between gap-space-md', className)}>\n\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-space-sm\">\n\t\t\t\t<Skeleton className=\"h-4 w-36 max-w-full\" />\n\t\t\t\t{!!description && <Skeleton className=\"h-3 w-56 max-w-full\" />}\n\t\t\t</div>\n\t\t\t{!!action && <Skeleton className=\"h-action-sm w-20 shrink-0\" />}\n\t\t</div>\n\t);\n}\n\nfunction MetricCardSkeleton({ index }: { index: number }) {\n\treturn (\n\t\t<SkeletonFrame contentClassName=\"flex min-w-0 flex-col gap-space-md\">\n\t\t\t<div className=\"flex items-start justify-between gap-space-md\">\n\t\t\t\t<div className=\"flex min-w-0 flex-col gap-space-sm\">\n\t\t\t\t\t<Skeleton className={cn('h-3 w-20', index % 2 === 0 && 'w-24')} />\n\t\t\t\t\t<Skeleton className={cn('h-5 w-24', index % 3 === 0 && 'w-28')} />\n\t\t\t\t</div>\n\t\t\t\t<Skeleton className=\"size-8 rounded-radius-md\" />\n\t\t\t</div>\n\t\t\t<div className=\"flex items-center gap-space-sm\">\n\t\t\t\t<Skeleton className=\"h-5 w-16\" />\n\t\t\t\t<Skeleton className=\"h-3 w-24\" />\n\t\t\t</div>\n\t\t</SkeletonFrame>\n\t);\n}\n\nfunction DetailRowSkeleton({ index }: { index: number }) {\n\treturn (\n\t\t<div className=\"flex min-w-0 flex-col gap-space-xs\">\n\t\t\t<Skeleton className={cn('h-3 w-20', index % 2 === 0 && 'w-24')} />\n\t\t\t<Skeleton className={cn('h-4 w-36 max-w-full', index % 3 === 0 && 'w-44')} />\n\t\t</div>\n\t);\n}\n\nfunction DetailCardSkeleton({\n\tlines = 4,\n\tdense = false,\n}: {\n\tlines?: number;\n\tdense?: boolean;\n}) {\n\tconst lineCount = clampCount(lines, 4, 8);\n\n\treturn (\n\t\t<SkeletonFrame contentClassName=\"flex min-w-0 flex-col gap-space-lg\">\n\t\t\t<SkeletonCardHeader description={!dense} action={!dense} />\n\t\t\t<div className=\"grid min-w-0 gap-space-md sm:grid-cols-2\">\n\t\t\t\t{Array.from({ length: lineCount }, (_, index) => (\n\t\t\t\t\t<DetailRowSkeleton key={`detail-row-${String(index)}`} index={index} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</SkeletonFrame>\n\t);\n}\n\nfunction SidebarCardSkeleton({ lines = 3 }: { lines?: number }) {\n\tconst lineCount = clampCount(lines, 3, 5);\n\n\treturn (\n\t\t<SkeletonFrame contentClassName=\"flex min-w-0 flex-col gap-space-md\">\n\t\t\t<SkeletonCardHeader description={false} action={false} />\n\t\t\t<div className=\"grid min-w-0 gap-space-sm\">\n\t\t\t\t{Array.from({ length: lineCount }, (_, index) => (\n\t\t\t\t\t<div key={`sidebar-line-${String(index)}`} className=\"flex min-w-0 items-center justify-between gap-space-md\">\n\t\t\t\t\t\t<Skeleton className={cn('h-3 w-20', index % 2 === 0 && 'w-24')} />\n\t\t\t\t\t\t<Skeleton className={cn('h-4 w-16', index % 3 === 0 && 'w-20')} />\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</SkeletonFrame>\n\t);\n}\n\nfunction TableResourceCellSkeleton({ row }: { row: number }) {\n\treturn (\n\t\t<div className=\"flex min-w-0 items-center gap-space-sm\">\n\t\t\t<Skeleton className=\"size-avatar rounded-full shrink-0\" />\n\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-space-xs\">\n\t\t\t\t<Skeleton className={cn('h-4 w-32 max-w-full', row % 2 === 0 && 'w-40')} />\n\t\t\t\t<Skeleton className=\"h-3 w-24 max-w-full\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport interface SkeletonProps extends React.ComponentPropsWithoutRef<typeof PrimitiveSkeleton> {}\n\nexport function Skeleton({ className, ...props }: SkeletonProps) {\n\treturn (\n\t\t<PrimitiveSkeleton\n\t\t\taria-hidden={skeletonAriaHidden(props)}\n\t\t\tclassName={cn('skeleton--component max-w-full rounded-radius-sm motion-reduce:animate-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nSkeleton.displayName = 'Skeleton';\n\nexport interface ContentSkeletonProps extends DivProps {\n\t/** Number of text rows rendered in the content stack. */\n\tlines?: number;\n\t/** Render an avatar/media placeholder before the text stack. */\n\tavatar?: boolean;\n\t/** Render a small action placeholder aligned to the trailing edge. */\n\taction?: boolean;\n\t/** Optional per-line width classes. Keep these as Tailwind width utilities. */\n\tlineWidths?: readonly string[];\n}\n\nexport const ContentSkeleton = React.forwardRef<HTMLDivElement, ContentSkeletonProps>(\n\tfunction ContentSkeleton({\n\t\tlines = 3,\n\t\tavatar = false,\n\t\taction = false,\n\t\tlineWidths,\n\t\tclassName,\n\t\t...props\n\t}, ref) {\n\t\tconst lineCount = clampCount(lines, 3);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\taria-hidden={skeletonAriaHidden(props)}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'content-skeleton--component',\n\t\t\t\t\t'flex w-full min-w-0 items-start gap-space-md',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{!!avatar && <Skeleton className=\"size-avatar rounded-full shrink-0\" />}\n\t\t\t\t<div className=\"content-skeleton--body flex min-w-0 flex-1 flex-col gap-space-sm\">\n\t\t\t\t\t{Array.from({ length: lineCount }, (_, index) => (\n\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\tkey={`content-line-${String(index)}`}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'content-skeleton--line h-4',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineWidth(index, lineWidths),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t{!!action && <Skeleton className=\"content-skeleton--action h-action-sm w-16 shrink-0\" />}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nContentSkeleton.displayName = 'ContentSkeleton';\n\nexport interface PageSkeletonProps extends DivProps {\n\t/** Number of compact KPI cards below the page header. */\n\tstats?: number;\n\t/** Number of content cards below the optional stats row. */\n\tsections?: number;\n\t/** Number of skeleton lines in each content card. */\n\tsectionLines?: number;\n\t/** Render tab/filter placeholders between the header and content. */\n\ttabs?: boolean;\n\t/** Number of action button placeholders in the page header. */\n\tactions?: number;\n}\n\nexport const PageSkeleton = React.forwardRef<HTMLDivElement, PageSkeletonProps>(\n\tfunction PageSkeleton({\n\t\tstats = 3,\n\t\tsections = 2,\n\t\tsectionLines = 4,\n\t\ttabs = true,\n\t\tactions = 2,\n\t\tclassName,\n\t\tchildren,\n\t\t...props\n\t}, ref) {\n\t\tconst statCount = clampCount(stats, 3, 6, true);\n\t\tconst sectionCount = clampCount(sections, 2, 6, true);\n\t\tconst actionCount = clampCount(actions, 2, 4, true);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\taria-hidden={skeletonAriaHidden(props)}\n\t\t\t\tclassName={cn('page-skeleton--component flex w-full min-w-0 flex-col gap-space-2xl', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div className=\"page-skeleton--header flex min-w-0 flex-col gap-space-lg md:flex-row md:items-start md:justify-between\">\n\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-start gap-space-md\">\n\t\t\t\t\t\t<Skeleton className=\"size-avatar-lg rounded-full shrink-0\" />\n\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 flex-col gap-space-sm\">\n\t\t\t\t\t\t\t<Skeleton className=\"h-5 w-56 max-w-full\" />\n\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-80 max-w-full\" />\n\t\t\t\t\t\t\t<div className=\"flex flex-wrap gap-space-sm pt-space-2xs\">\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-6 w-16\" />\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-6 w-20\" />\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-6 w-14\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"flex min-w-0 flex-wrap items-center gap-space-sm\">\n\t\t\t\t\t\t{Array.from({ length: actionCount }, (_, index) => (\n\t\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\t\tkey={`page-action-${String(index)}`}\n\t\t\t\t\t\t\t\tclassName={cn('h-action-sm', index === 0 ? 'w-24' : 'size-action-sm')}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{!!tabs && (\n\t\t\t\t\t<div className=\"page-skeleton--tabs flex min-w-0 flex-wrap gap-space-sm rounded-surface border border-border bg-card p-surface-xs\">\n\t\t\t\t\t\t<Skeleton className=\"h-action-sm w-32\" />\n\t\t\t\t\t\t<Skeleton className=\"h-action-sm w-28\" />\n\t\t\t\t\t\t<Skeleton className=\"h-action-sm w-36\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{statCount > 0 && (\n\t\t\t\t\t<div className=\"page-skeleton--stats grid min-w-0 gap-space-lg sm:grid-cols-2 lg:grid-cols-3\">\n\t\t\t\t\t\t{Array.from({ length: statCount }, (_, index) => (\n\t\t\t\t\t\t\t<MetricCardSkeleton key={`page-stat-${String(index)}`} index={index} />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{sectionCount > 0 && (\n\t\t\t\t\t<div className=\"page-skeleton--sections grid min-w-0 gap-space-lg\">\n\t\t\t\t\t\t{Array.from({ length: sectionCount }, (_, index) => (\n\t\t\t\t\t\t\t<DetailCardSkeleton key={`page-section-${String(index)}`} lines={sectionLines} />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nPageSkeleton.displayName = 'PageSkeleton';\n\nexport interface TwoColumnPageSkeletonProps extends DivProps {\n\t/** Number of primary column cards. */\n\tmainSections?: number;\n\t/** Number of secondary column cards. */\n\tsidebarSections?: number;\n\t/** Lines per primary column card. */\n\tmainLines?: number;\n\t/** Lines per secondary column card. */\n\tsidebarLines?: number;\n}\n\nexport const TwoColumnPageSkeleton = React.forwardRef<HTMLDivElement, TwoColumnPageSkeletonProps>(\n\tfunction TwoColumnPageSkeleton({\n\t\tmainSections = 2,\n\t\tsidebarSections = 3,\n\t\tmainLines = 5,\n\t\tsidebarLines = 3,\n\t\tclassName,\n\t\t...props\n\t}, ref) {\n\t\tconst mainCount = clampCount(mainSections, 2, 5);\n\t\tconst sidebarCount = clampCount(sidebarSections, 3, 5);\n\n\t\treturn (\n\t\t\t<PageSkeleton\n\t\t\t\tref={ref}\n\t\t\t\tstats={0}\n\t\t\t\tsections={0}\n\t\t\t\ttabs={false}\n\t\t\t\tclassName={cn('two-column-page-skeleton--component', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div className=\"two-column-page-skeleton--layout grid min-w-0 gap-space-lg lg:grid-cols-3\">\n\t\t\t\t\t<div className=\"two-column-page-skeleton--main grid min-w-0 gap-space-lg lg:col-span-2\">\n\t\t\t\t\t\t{Array.from({ length: mainCount }, (_, index) => (\n\t\t\t\t\t\t\t<DetailCardSkeleton key={`two-column-main-${String(index)}`} lines={mainLines} />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"two-column-page-skeleton--sidebar grid min-w-0 gap-space-lg self-start\">\n\t\t\t\t\t\t{Array.from({ length: sidebarCount }, (_, index) => (\n\t\t\t\t\t\t\t<SidebarCardSkeleton key={`two-column-sidebar-${String(index)}`} lines={sidebarLines} />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</PageSkeleton>\n\t\t);\n\t},\n);\n\nTwoColumnPageSkeleton.displayName = 'TwoColumnPageSkeleton';\n\nexport interface TableSkeletonProps extends DivProps {\n\trows?: number;\n\t/** How many columns the grid uses. */\n\tcolumns?: number;\n\ttoolbar?: boolean;\n\t/** Content below the body. */\n\tfooter?: boolean;\n}\n\n// The toolbar, header, rows and footer share one edge: the outer cells take the\n// framed surface's inset, like the toolbar and footer, and inner cells keep the\n// row inset between columns.\nconst tableEdgeInset = 'first:ps-surface last:pe-surface';\n\nexport const TableSkeleton = React.forwardRef<HTMLDivElement, TableSkeletonProps>(\n\tfunction TableSkeleton({\n\t\trows = 6,\n\t\tcolumns = 5,\n\t\ttoolbar = true,\n\t\tfooter = true,\n\t\tclassName,\n\t\t...props\n\t}, ref) {\n\t\tconst rowCount = clampCount(rows, 6, 20);\n\t\tconst columnCount = clampCount(columns, 5, 8);\n\t\tconst columnIndexes = Array.from({ length: columnCount }, (_, index) => index);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\taria-hidden={skeletonAriaHidden(props)}\n\t\t\t\tclassName={cn('table-skeleton--component', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<Card\n\t\t\t\t\tsurface=\"framed\"\n\t\t\t\t\tclassName=\"overflow-hidden\"\n\t\t\t\t\tpadding=\"none\"\n\t\t\t\t>\n\t\t\t\t\t{!!toolbar && (\n\t\t\t\t\t\t<div className=\"table-skeleton--toolbar flex min-w-0 items-center justify-between gap-space-md border-b border-border/60 px-surface py-row-y-lg\">\n\t\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center gap-space-sm\">\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-control-sm w-56 max-w-full\" />\n\t\t\t\t\t\t\t\t<Skeleton className=\"hidden h-action-sm w-24 sm:block\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"hidden shrink-0 items-center gap-space-sm sm:flex\">\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-action-sm w-20\" />\n\t\t\t\t\t\t\t\t<Skeleton className=\"size-action-sm\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className=\"table-skeleton--scroll overflow-x-auto\">\n\t\t\t\t\t\t<table className=\"w-full min-w-full table-fixed border-collapse\">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr className=\"border-b border-border/60\">\n\t\t\t\t\t\t\t\t\t{columnIndexes.map((column) => (\n\t\t\t\t\t\t\t\t\t\t<th key={`table-head-${String(column)}`} className={cn('h-control px-row-x text-start align-middle', tableEdgeInset)}>\n\t\t\t\t\t\t\t\t\t\t\t<Skeleton className={cn('h-4', TABLE_WIDTHS[column % TABLE_WIDTHS.length])} />\n\t\t\t\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t{Array.from({ length: rowCount }, (_, row) => (\n\t\t\t\t\t\t\t\t\t<tr key={`table-row-${String(row)}`} className=\"border-b border-border/60 last:border-b-0\">\n\t\t\t\t\t\t\t\t\t\t{columnIndexes.map((column) => (\n\t\t\t\t\t\t\t\t\t\t\t<td key={`table-cell-${String(row)}-${String(column)}`} className={cn('px-row-x py-row-y align-middle', tableEdgeInset)}>\n\t\t\t\t\t\t\t\t\t\t\t\t{column === 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<TableResourceCellSkeleton row={row} />\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'h-4',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTABLE_WIDTHS[(row + column) % TABLE_WIDTHS.length],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!footer && (\n\t\t\t\t\t\t<div className=\"table-skeleton--footer flex flex-wrap items-center justify-between gap-space-md border-t border-border/60 px-surface py-row-y-lg\">\n\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-32\" />\n\t\t\t\t\t\t\t<div className=\"flex items-center gap-space-sm\">\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-action-sm w-20\" />\n\t\t\t\t\t\t\t\t<Skeleton className=\"h-action-sm w-20\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</Card>\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nTableSkeleton.displayName = 'TableSkeleton';\n"],"mappings":"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"}