admin-ui-starter-kit 0.6.4 → 0.6.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 (880) hide show
  1. package/dist/_shared/auth-BZY91F5_.cjs +2 -0
  2. package/dist/_shared/auth-BZY91F5_.cjs.map +1 -0
  3. package/dist/_shared/auth-DcotjEbY.js +643 -0
  4. package/dist/_shared/auth-DcotjEbY.js.map +1 -0
  5. package/dist/_shared/cards-C1ythc0Q.js +354 -0
  6. package/dist/_shared/cards-C1ythc0Q.js.map +1 -0
  7. package/dist/_shared/cards-GSYfJ-oX.cjs +2 -0
  8. package/dist/_shared/cards-GSYfJ-oX.cjs.map +1 -0
  9. package/dist/_shared/comments-CmljtbAW.js +952 -0
  10. package/dist/_shared/comments-CmljtbAW.js.map +1 -0
  11. package/dist/_shared/comments-ColUq7eh.cjs +2 -0
  12. package/dist/_shared/comments-ColUq7eh.cjs.map +1 -0
  13. package/dist/_shared/containers-CB7zaAvN.cjs +2 -0
  14. package/dist/_shared/containers-CB7zaAvN.cjs.map +1 -0
  15. package/dist/_shared/containers-CLBmhGfs.js +48 -0
  16. package/dist/_shared/containers-CLBmhGfs.js.map +1 -0
  17. package/dist/_shared/data-display-BTsCY7A5.js +1873 -0
  18. package/dist/_shared/data-display-BTsCY7A5.js.map +1 -0
  19. package/dist/_shared/data-display-BdGQMXit.cjs +2 -0
  20. package/dist/_shared/data-display-BdGQMXit.cjs.map +1 -0
  21. package/dist/_shared/forms-CEE1te78.cjs +2 -0
  22. package/dist/_shared/forms-CEE1te78.cjs.map +1 -0
  23. package/dist/_shared/forms-CQoGvG7q.js +3533 -0
  24. package/dist/_shared/forms-CQoGvG7q.js.map +1 -0
  25. package/dist/_shared/header-B9IPDQRW.js +447 -0
  26. package/dist/_shared/header-B9IPDQRW.js.map +1 -0
  27. package/dist/_shared/header-C_1x4-rd.cjs +2 -0
  28. package/dist/_shared/header-C_1x4-rd.cjs.map +1 -0
  29. package/dist/_shared/hooks---vunGQ6.js +95 -0
  30. package/dist/_shared/hooks---vunGQ6.js.map +1 -0
  31. package/dist/_shared/hooks-CjVzmgvY.cjs +2 -0
  32. package/dist/_shared/hooks-CjVzmgvY.cjs.map +1 -0
  33. package/dist/_shared/layout-BXrQqUKq.js +262 -0
  34. package/dist/_shared/layout-BXrQqUKq.js.map +1 -0
  35. package/dist/_shared/layout-DWicdsPI.cjs +2 -0
  36. package/dist/_shared/layout-DWicdsPI.cjs.map +1 -0
  37. package/dist/_shared/layout.types-CXFAjJCj.cjs +2 -0
  38. package/dist/_shared/layout.types-CXFAjJCj.cjs.map +1 -0
  39. package/dist/_shared/layout.types-ip8BYRa7.js +28 -0
  40. package/dist/_shared/layout.types-ip8BYRa7.js.map +1 -0
  41. package/dist/_shared/settings-Bfr6PgSi.cjs +2 -0
  42. package/dist/_shared/settings-Bfr6PgSi.cjs.map +1 -0
  43. package/dist/_shared/settings-CrPaYr4A.js +143 -0
  44. package/dist/_shared/settings-CrPaYr4A.js.map +1 -0
  45. package/dist/_shared/sidebar-CDOLD8fN.js +548 -0
  46. package/dist/_shared/sidebar-CDOLD8fN.js.map +1 -0
  47. package/dist/_shared/sidebar-DcsxeNml.cjs +2 -0
  48. package/dist/_shared/sidebar-DcsxeNml.cjs.map +1 -0
  49. package/dist/_shared/workspace-C1twu23r.cjs +2 -0
  50. package/dist/_shared/workspace-C1twu23r.cjs.map +1 -0
  51. package/dist/_shared/workspace-CkOZLdcN.js +357 -0
  52. package/dist/_shared/workspace-CkOZLdcN.js.map +1 -0
  53. package/dist/components/base/cards/index.cjs +1 -1
  54. package/dist/components/base/cards/index.js +1 -1
  55. package/dist/components/base/cards/partials/card-primitives.d.ts.map +1 -1
  56. package/dist/components/base/forms/index.cjs +1 -1
  57. package/dist/components/base/forms/index.js +1 -1
  58. package/dist/components/composed/admin/index.cjs +1 -1
  59. package/dist/components/composed/admin/index.js +2 -2
  60. package/dist/components/composed/ai/index.cjs +1 -1
  61. package/dist/components/composed/ai/index.js +2 -2
  62. package/dist/components/composed/analytics/index.cjs +1 -1
  63. package/dist/components/composed/analytics/index.js +1 -1
  64. package/dist/components/composed/cards/index.cjs +1 -1
  65. package/dist/components/composed/cards/index.js +2 -2
  66. package/dist/components/composed/commerce/index.cjs +1 -1
  67. package/dist/components/composed/commerce/index.js +2 -2
  68. package/dist/components/composed/dark-surfaces/index.cjs +1 -1
  69. package/dist/components/composed/dark-surfaces/index.js +1 -1
  70. package/dist/components/composed/data-display/index.cjs +1 -1
  71. package/dist/components/composed/data-display/index.js +1 -1
  72. package/dist/components/composed/data-display/metadata/metadata-list.d.ts.map +1 -1
  73. package/dist/components/composed/navigation/index.cjs +1 -1
  74. package/dist/components/composed/navigation/index.js +1 -1
  75. package/dist/components/composed/timelines/index.cjs +1 -1
  76. package/dist/components/composed/timelines/index.js +1 -1
  77. package/dist/components/features/activities/index.cjs +1 -1
  78. package/dist/components/features/activities/index.js +1 -1
  79. package/dist/components/features/card/index.cjs +1 -1
  80. package/dist/components/features/card/index.js +1 -1
  81. package/dist/components/features/comments/index.cjs +1 -1
  82. package/dist/components/features/comments/index.js +1 -1
  83. package/dist/components/features/event-log/index.cjs +1 -1
  84. package/dist/components/features/event-log/index.js +2 -2
  85. package/dist/components/features/media-library/index.cjs +1 -1
  86. package/dist/components/features/media-library/index.js +1 -1
  87. package/dist/components/features/products/index.cjs +1 -1
  88. package/dist/components/features/products/index.js +3 -3
  89. package/dist/components/features/resource/index.cjs +1 -1
  90. package/dist/components/features/resource/index.js +2 -2
  91. package/dist/components/features/schema-form/index.cjs +1 -1
  92. package/dist/components/features/schema-form/index.js +2 -2
  93. package/dist/components/layout/auth/index.cjs +1 -1
  94. package/dist/components/layout/auth/index.js +1 -1
  95. package/dist/components/layout/containers/containers.types.d.ts +2 -2
  96. package/dist/components/layout/containers/containers.types.d.ts.map +1 -1
  97. package/dist/components/layout/containers/content-container.d.ts.map +1 -1
  98. package/dist/components/layout/containers/index.cjs +1 -1
  99. package/dist/components/layout/containers/index.js +1 -2
  100. package/dist/components/layout/header/index.cjs +1 -1
  101. package/dist/components/layout/header/index.js +1 -1
  102. package/dist/components/layout/hooks/index.cjs +1 -1
  103. package/dist/components/layout/hooks/index.js +1 -1
  104. package/dist/components/layout/index.cjs +1 -1
  105. package/dist/components/layout/index.js +10 -11
  106. package/dist/components/layout/layout.types.d.ts.map +1 -1
  107. package/dist/components/layout/page/index.cjs +1 -1
  108. package/dist/components/layout/page/index.js +2 -2
  109. package/dist/components/layout/settings/index.cjs +1 -1
  110. package/dist/components/layout/settings/index.js +1 -1
  111. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
  112. package/dist/components/layout/sidebar/index.cjs +1 -1
  113. package/dist/components/layout/sidebar/index.js +2 -2
  114. package/dist/components/layout/workspace/index.cjs +1 -1
  115. package/dist/components/layout/workspace/index.js +1 -1
  116. package/dist/showcase/assets/AreaChart-WJREayr9.js +6 -0
  117. package/dist/showcase/assets/CompositeItem-CY3XmFuI.js +1 -0
  118. package/dist/showcase/assets/CompositeRoot-BPMF0t1F.js +1 -0
  119. package/dist/showcase/assets/DialogTrigger-BzaF3YN8.js +1 -0
  120. package/dist/showcase/assets/LabelableContext-LKvvFFnV.js +1 -0
  121. package/dist/showcase/assets/PreviewLayout-B0n7l00P.js +1 -0
  122. package/dist/showcase/assets/RadioGroup-VBtGFETg.js +1 -0
  123. package/dist/showcase/assets/ScrollAreaCorner-BimGwdGs.js +1 -0
  124. package/dist/showcase/assets/Separator-BfKe0YiY.js +1 -0
  125. package/dist/showcase/assets/ToolbarRootContext-Cscyv1PN.js +1 -0
  126. package/dist/showcase/assets/accordion-BEN0VkL4.js +171 -0
  127. package/dist/showcase/assets/accordion-variants-QFG3H38z.js +1 -0
  128. package/dist/showcase/assets/action-menu-Bfw1tFqM.js +1 -0
  129. package/dist/showcase/assets/actions-CFpHs5IC.js +310 -0
  130. package/dist/showcase/assets/activities-CDxlaghU.js +500 -0
  131. package/dist/showcase/assets/activities-feed-card-BO1kcjRK.js +1 -0
  132. package/dist/showcase/assets/admin-DFpHXeuv.js +140 -0
  133. package/dist/showcase/assets/ai-DyO6VqQP.js +207 -0
  134. package/dist/showcase/assets/ai-artifact-MVA3ikv6.js +2 -0
  135. package/dist/showcase/assets/ai-chat-D-xcp6Jf.js +568 -0
  136. package/dist/showcase/assets/ai-elements-DlFqIOYp.js +387 -0
  137. package/dist/showcase/assets/ai-tool-call-DedG9TdK.js +1 -0
  138. package/dist/showcase/assets/alert-CmRK2lOe.js +1 -0
  139. package/dist/showcase/assets/alert-DCIVryEp.js +62 -0
  140. package/dist/showcase/assets/alert-DDP3Ktic.js +93 -0
  141. package/dist/showcase/assets/api-key-list-CWa997YX.js +1 -0
  142. package/dist/showcase/assets/api-key-list-mTPebHF3.js +73 -0
  143. package/dist/showcase/assets/app-sidebar-Cnfk9z5K.js +1 -0
  144. package/dist/showcase/assets/arrow-down-CCYWFimd.js +1 -0
  145. package/dist/showcase/assets/arrow-left-CrYjfZJ0.js +1 -0
  146. package/dist/showcase/assets/arrow-right-eLxbBrdm.js +1 -0
  147. package/dist/showcase/assets/arrow-up-kA33fcPv.js +1 -0
  148. package/dist/showcase/assets/arrow-up-right-BSWGQVDB.js +1 -0
  149. package/dist/showcase/assets/avatar-BDGhB3aA.js +57 -0
  150. package/dist/showcase/assets/avatar-CLBQvnYG.js +1 -0
  151. package/dist/showcase/assets/avatar-WUMW3Qjo.js +1 -0
  152. package/dist/showcase/assets/avatar-cKSNuTzf.js +67 -0
  153. package/dist/showcase/assets/badge--mqVg8Ry.js +31 -0
  154. package/dist/showcase/assets/badge-check-D7YjWqnm.js +1 -0
  155. package/dist/showcase/assets/bell-6YyocFK6.js +1 -0
  156. package/dist/showcase/assets/bot-BC4pGAB3.js +1 -0
  157. package/dist/showcase/assets/box-CPGIu4Nv.js +1 -0
  158. package/dist/showcase/assets/braces-9jywZtTA.js +1 -0
  159. package/dist/showcase/assets/brain-wf_S427C.js +1 -0
  160. package/dist/showcase/assets/brand-78lhbKSW.js +36 -0
  161. package/dist/showcase/assets/breadcrumb-6XHObtqO.js +1 -0
  162. package/dist/showcase/assets/breadcrumb-BVrrS53_.js +52 -0
  163. package/dist/showcase/assets/breadcrumbs-BwC3Iaae.js +1 -0
  164. package/dist/showcase/assets/briefcase-BViWYew9.js +1 -0
  165. package/dist/showcase/assets/building-2-CwR3gV1I.js +1 -0
  166. package/dist/showcase/assets/button-BWwsy37B.js +44 -0
  167. package/dist/showcase/assets/button-group-BTiMRQIO.js +1 -0
  168. package/dist/showcase/assets/buttons-D9pH8hPs.js +272 -0
  169. package/dist/showcase/assets/calendar-Bzl2i1lu.js +1 -0
  170. package/dist/showcase/assets/calendar-CNMlC7Fn.js +16 -0
  171. package/dist/showcase/assets/calendar-D5NdEmaD.js +1 -0
  172. package/dist/showcase/assets/calendar-days-j8QDBUc5.js +1 -0
  173. package/dist/showcase/assets/camera-Cwb84N8a.js +1 -0
  174. package/dist/showcase/assets/card-CX3vQ2Te.js +1 -0
  175. package/dist/showcase/assets/card-FLJkfdKP.js +188 -0
  176. package/dist/showcase/assets/card-primitives-C2s13Uvp.js +1 -0
  177. package/dist/showcase/assets/card-radio-group-BP27dErL.js +1 -0
  178. package/dist/showcase/assets/cards-DcdxRM9W.js +354 -0
  179. package/dist/showcase/assets/carousel-CTKyiHD2.js +449 -0
  180. package/dist/showcase/assets/cell-renderers-ouSypXTE.js +1 -0
  181. package/dist/showcase/assets/chart-CMsMyCah.js +358 -0
  182. package/dist/showcase/assets/chart-column-BrwpEFzy.js +1 -0
  183. package/dist/showcase/assets/checkbox-4qgEfnjv.js +1 -0
  184. package/dist/showcase/assets/checkbox-ratLYBAF.js +1 -0
  185. package/dist/showcase/assets/chevron-down-BInaIfd1.js +1 -0
  186. package/dist/showcase/assets/chevron-left-Bjy3FJ_M.js +1 -0
  187. package/dist/showcase/assets/chevron-up-Ufl6UEyV.js +1 -0
  188. package/dist/showcase/assets/chevrons-up-down-CrOH-P5z.js +1 -0
  189. package/dist/showcase/assets/circle-G0dEx2Ay.js +1 -0
  190. package/dist/showcase/assets/circle-alert-CiibDCe8.js +1 -0
  191. package/dist/showcase/assets/circle-check-Bqm54c03.js +1 -0
  192. package/dist/showcase/assets/circle-check-big-BfiY_qy_.js +1 -0
  193. package/dist/showcase/assets/circle-dot-VNm7CEgH.js +1 -0
  194. package/dist/showcase/assets/circle-question-mark-mM7PKy4G.js +1 -0
  195. package/dist/showcase/assets/circle-x-2tzzp_vB.js +1 -0
  196. package/dist/showcase/assets/clock-3-CfdZnMP2.js +1 -0
  197. package/dist/showcase/assets/clock-ByB7C11p.js +1 -0
  198. package/dist/showcase/assets/code-xml-D2fN-BaU.js +1 -0
  199. package/dist/showcase/assets/collapsible-B2lI_uVI.js +1 -0
  200. package/dist/showcase/assets/collapsible-Bs5YFx-M.js +27 -0
  201. package/dist/showcase/assets/combobox-BqNSwFaM.js +685 -0
  202. package/dist/showcase/assets/command-Dcbh_YP-.js +1 -0
  203. package/dist/showcase/assets/command-Mb30xkwq.js +1 -0
  204. package/dist/showcase/assets/comment-composer-DqTw0zIM.js +1 -0
  205. package/dist/showcase/assets/comment-item-DbQAZ3yP.js +1 -0
  206. package/dist/showcase/assets/comments-CGMOOi7k.js +357 -0
  207. package/dist/showcase/assets/commerce-bVpLHwpS.js +267 -0
  208. package/dist/showcase/assets/composite-CTpmYme_.js +1 -0
  209. package/dist/showcase/assets/contact-card-nuS10UKK.js +65 -0
  210. package/dist/showcase/assets/content-container-NexBp0FV.js +1 -0
  211. package/dist/showcase/assets/copyable-CNltkC2A.js +1 -0
  212. package/dist/showcase/assets/copyable-qr6--oJx.js +96 -0
  213. package/dist/showcase/assets/course-card-0kkl37FX.js +77 -0
  214. package/dist/showcase/assets/cpu-DSD9h0l5.js +1 -0
  215. package/dist/showcase/assets/credit-card-CN0E6FU8.js +1 -0
  216. package/dist/showcase/assets/css-variables-CzmmLWxt.js +1190 -0
  217. package/dist/showcase/assets/currency-BtofP745.js +149 -0
  218. package/dist/showcase/assets/dark-surfaces-BU7kfTIi.js +90 -0
  219. package/dist/showcase/assets/data-view-3W7_KBli.js +124 -0
  220. package/dist/showcase/assets/data-view-snL5QtHe.js +4 -0
  221. package/dist/showcase/assets/database-BarEYzaF.js +1 -0
  222. package/dist/showcase/assets/date-block-dTt9Rcfd.js +1 -0
  223. package/dist/showcase/assets/date-picker-BKzZeQGc.js +1 -0
  224. package/dist/showcase/assets/date-pickers-CYERVYRo.js +73 -0
  225. package/dist/showcase/assets/dense-info-hnKZfRnQ.js +106 -0
  226. package/dist/showcase/assets/design-system-consistency-D6qngflS.js +264 -0
  227. package/dist/showcase/assets/dialog-mO0FpHmT.js +1 -0
  228. package/dist/showcase/assets/dialog-xbuhPXmf.js +1 -0
  229. package/dist/showcase/assets/display-utilities-C4IflxoK.js +267 -0
  230. package/dist/showcase/assets/dist-BFChHTWK.js +45 -0
  231. package/dist/showcase/assets/dist-BkVfs5PY.js +1 -0
  232. package/dist/showcase/assets/dollar-sign-BES-Y4q8.js +1 -0
  233. package/dist/showcase/assets/download-CuEg-4DT.js +1 -0
  234. package/dist/showcase/assets/dropdown-menu-C4Fcfk9z.js +1 -0
  235. package/dist/showcase/assets/dropzone-CrJ_k9fJ.js +1 -0
  236. package/dist/showcase/assets/earth-Cmx-Axig.js +1 -0
  237. package/dist/showcase/assets/ellipsis-Co7iTzp_.js +1 -0
  238. package/dist/showcase/assets/ellipsis-vertical-DMYJFiqQ.js +1 -0
  239. package/dist/showcase/assets/empty-Dw4ozyll.js +1 -0
  240. package/dist/showcase/assets/empty-item-DQwAsl0J.js +49 -0
  241. package/dist/showcase/assets/empty-state-BKvbnAy1.js +1 -0
  242. package/dist/showcase/assets/empty-state-Dv6f2fmP.js +190 -0
  243. package/dist/showcase/assets/enhanced-activities-Ctmivg46.js +357 -0
  244. package/dist/showcase/assets/enhanced-combobox-D0AsPZ-b.js +1 -0
  245. package/dist/showcase/assets/esm-oZ6qcNoa.js +2 -0
  246. package/dist/showcase/assets/event-calendar-ChXdeehr.js +138 -0
  247. package/dist/showcase/assets/event-log-DeOCb2tT.js +330 -0
  248. package/dist/showcase/assets/example-CDvNeHNP.js +1 -0
  249. package/dist/showcase/assets/external-link-BaiCqIx3.js +1 -0
  250. package/dist/showcase/assets/eye-zG-fqYfd.js +1 -0
  251. package/dist/showcase/assets/feature-announcement-C2XGWNgI.js +34 -0
  252. package/dist/showcase/assets/file-sAbDfDuO.js +1 -0
  253. package/dist/showcase/assets/file-text-Boa9IOND.js +1 -0
  254. package/dist/showcase/assets/filter-layout-tZmZz-2B.js +1 -0
  255. package/dist/showcase/assets/filters-D8gEkDAE.js +139 -0
  256. package/dist/showcase/assets/flag-Cu20rcE4.js +1 -0
  257. package/dist/showcase/assets/folder-open-Cuk6KKLi.js +1 -0
  258. package/dist/showcase/assets/form-field-D8sL8tat.js +1 -0
  259. package/dist/showcase/assets/format-CaRklI--.js +1 -0
  260. package/dist/showcase/assets/forms-CNk2oX65.js +915 -0
  261. package/dist/showcase/assets/funnel-B2kBprKZ.js +1 -0
  262. package/dist/showcase/assets/generic-oWYKMvId.js +1 -0
  263. package/dist/showcase/assets/getPseudoElementBounds-GjucWEcD.js +1 -0
  264. package/dist/showcase/assets/gift-C_D_-5GL.js +1 -0
  265. package/dist/showcase/assets/giftcard-cards-B4DDGzdi.js +85 -0
  266. package/dist/showcase/assets/git-branch-DlTTLnjW.js +1 -0
  267. package/dist/showcase/assets/global-search-BjHAfaqS.js +215 -0
  268. package/dist/showcase/assets/global-search-hKQWHfrf.js +1 -0
  269. package/dist/showcase/assets/globe-D-gH7XQ2.js +1 -0
  270. package/dist/showcase/assets/gradient-card-jVxEisUP.js +58 -0
  271. package/dist/showcase/assets/hash-DySqEhph.js +1 -0
  272. package/dist/showcase/assets/header-B8hHkAVl.js +1 -0
  273. package/dist/showcase/assets/header-notifications-s180jNb1.js +1 -0
  274. package/dist/showcase/assets/heart-DDFCk8Tb.js +1 -0
  275. package/dist/showcase/assets/hooks-0A_FzYrt.js +220 -0
  276. package/dist/showcase/assets/house-BqE1X-Wf.js +1 -0
  277. package/dist/showcase/assets/icon-badge-CyiMjD7j.js +37 -0
  278. package/dist/showcase/assets/icon-badge-fJVhEHym.js +1 -0
  279. package/dist/showcase/assets/image-DCtwKHqe.js +1 -0
  280. package/dist/showcase/assets/inbox-DZA-pAGB.js +1 -0
  281. package/dist/showcase/assets/index-B37z19z3.js +10 -0
  282. package/dist/showcase/assets/index-CIsKgiSF.css +2 -0
  283. package/dist/showcase/assets/inertValue-SPYMBsOM.js +1 -0
  284. package/dist/showcase/assets/info-DrfDr3GT.js +1 -0
  285. package/dist/showcase/assets/inline-stat-BVJNx4xR.js +1 -0
  286. package/dist/showcase/assets/inline-stat-C3cWbSUK.js +15 -0
  287. package/dist/showcase/assets/input-CKTTGrnR.js +1 -0
  288. package/dist/showcase/assets/input-UHuWYPMF.js +1 -0
  289. package/dist/showcase/assets/input-group-BR_lU__a.js +1 -0
  290. package/dist/showcase/assets/input-group-iZaLbsTP.js +47 -0
  291. package/dist/showcase/assets/inputs-C7j8Xivm.js +155 -0
  292. package/dist/showcase/assets/installation-DYnTwaPR.js +134 -0
  293. package/dist/showcase/assets/invoice-header-D_0KvXQe.js +36 -0
  294. package/dist/showcase/assets/invoice-items-jcNb-sST.js +36 -0
  295. package/dist/showcase/assets/invoice-mini-DrZAbjPq.js +14 -0
  296. package/dist/showcase/assets/invoice-table-DlAw0U4U.js +30 -0
  297. package/dist/showcase/assets/isSameDay-Cl6v_syG.js +1 -0
  298. package/dist/showcase/assets/isToday-BBoFjSnJ.js +1 -0
  299. package/dist/showcase/assets/italic-j2U8krYa.js +1 -0
  300. package/dist/showcase/assets/item-B2WoC1SD.js +139 -0
  301. package/dist/showcase/assets/item-BMJ5hfT5.js +1 -0
  302. package/dist/showcase/assets/item-C_5-EHNK.js +1 -0
  303. package/dist/showcase/assets/kanban-Cv64Szxq.js +188 -0
  304. package/dist/showcase/assets/key-round-CORDYqE2.js +1 -0
  305. package/dist/showcase/assets/label-B0UjYqfw.js +1 -0
  306. package/dist/showcase/assets/languages-Njdo5y8i.js +1 -0
  307. package/dist/showcase/assets/layers-Dyew-8IP.js +1 -0
  308. package/dist/showcase/assets/layout-app-shell-DEZt0d84.js +608 -0
  309. package/dist/showcase/assets/layout-auth-BT84haSd.js +790 -0
  310. package/dist/showcase/assets/layout-containers-D6SP4vRB.js +101 -0
  311. package/dist/showcase/assets/layout-header-kLYjJnHz.js +203 -0
  312. package/dist/showcase/assets/layout-page-CmS4d8jw.js +314 -0
  313. package/dist/showcase/assets/layout-primitives-BW858Ymj.js +34 -0
  314. package/dist/showcase/assets/layout-sidebar-eIDEoyzV.js +224 -0
  315. package/dist/showcase/assets/layout-users-HyZHQIov.js +117 -0
  316. package/dist/showcase/assets/layout-workspace-BrDwVUvn.js +191 -0
  317. package/dist/showcase/assets/lib-Dhty05ZR.js +1 -0
  318. package/dist/showcase/assets/list-checks-CcWjdDq8.js +1 -0
  319. package/dist/showcase/assets/lock-CwH3bXx5.js +1 -0
  320. package/dist/showcase/assets/lock-keyhole-BdBxeIkW.js +1 -0
  321. package/dist/showcase/assets/mail-Cn94c8yp.js +1 -0
  322. package/dist/showcase/assets/mail-check-D-q_vPxD.js +1 -0
  323. package/dist/showcase/assets/map-BfUZMScw.js +124 -0
  324. package/dist/showcase/assets/map-pin-BZB9GUXP.js +1 -0
  325. package/dist/showcase/assets/media-library-DguE2q94.js +699 -0
  326. package/dist/showcase/assets/mention-inline-suggestions-CyGplHOl.js +1 -0
  327. package/dist/showcase/assets/mentions-lmr_XmfN.js +138 -0
  328. package/dist/showcase/assets/menus-D0qYbzKk.js +171 -0
  329. package/dist/showcase/assets/message-square-7VpiUwcS.js +1 -0
  330. package/dist/showcase/assets/metadata-list-B8O2ljIS.js +1 -0
  331. package/dist/showcase/assets/metadata-list-BcYg9Ru3.js +286 -0
  332. package/dist/showcase/assets/metric-HzQnjCpO.js +1 -0
  333. package/dist/showcase/assets/metric-bar-Fr1TDnSu.js +1 -0
  334. package/dist/showcase/assets/metric-grid-CM-P894v.js +1 -0
  335. package/dist/showcase/assets/metric-trend-chip-DqYH_U8e.js +1 -0
  336. package/dist/showcase/assets/metrics-analytics-bar-DKRLzyXq.js +44 -0
  337. package/dist/showcase/assets/metrics-analytics-cards-qMbAYBbk.js +50 -0
  338. package/dist/showcase/assets/metrics-comparison-GSWVebL_.js +76 -0
  339. package/dist/showcase/assets/metrics-heatmap-Fj5QZoO3.js +27 -0
  340. package/dist/showcase/assets/metrics-inline-badge-BuyhiYDl.js +17 -0
  341. package/dist/showcase/assets/metrics-kpi-row-xNn4bjZc.js +31 -0
  342. package/dist/showcase/assets/metrics-micro-grid-W_ZYCffp.js +42 -0
  343. package/dist/showcase/assets/metrics-overview-D-km110k.js +192 -0
  344. package/dist/showcase/assets/metrics-stat-cards-odVtufFY.js +54 -0
  345. package/dist/showcase/assets/minus-DZsXg5PW.js +1 -0
  346. package/dist/showcase/assets/money-display-C7Hp2pT3.js +1 -0
  347. package/dist/showcase/assets/month-year-picker-Dnr4J0mO.js +1 -0
  348. package/dist/showcase/assets/navigation-0nrtBP5O.js +90 -0
  349. package/dist/showcase/assets/navigation-BaWNq9oa.js +231 -0
  350. package/dist/showcase/assets/navigation-extras-B22W1Vkk.js +43 -0
  351. package/dist/showcase/assets/onboarding-checklist-BFj7rmdZ.js +119 -0
  352. package/dist/showcase/assets/overflow-tab-bar-D_rltswa.js +1 -0
  353. package/dist/showcase/assets/overlays-CNfiB-zF.js +408 -0
  354. package/dist/showcase/assets/overlays-CuxuFGC8.js +159 -0
  355. package/dist/showcase/assets/overview-CBmdAWO6.js +184 -0
  356. package/dist/showcase/assets/package-BwwfLMWb.js +1 -0
  357. package/dist/showcase/assets/package-check-BepTKJLy.js +1 -0
  358. package/dist/showcase/assets/page-_JDFUWqe.js +1 -0
  359. package/dist/showcase/assets/page-action-button-Cf34I-B2.js +1 -0
  360. package/dist/showcase/assets/page-header-pdHFvyTo.js +1 -0
  361. package/dist/showcase/assets/pagination-Db1WJvjK.js +42 -0
  362. package/dist/showcase/assets/pagination-s8_MGk9D.js +1 -0
  363. package/dist/showcase/assets/paperclip-B9HQ47_2.js +1 -0
  364. package/dist/showcase/assets/password-input-D-eZWMGX.js +1 -0
  365. package/dist/showcase/assets/pencil-Dm53P6Db.js +1 -0
  366. package/dist/showcase/assets/phone-a4Ja9xAp.js +1 -0
  367. package/dist/showcase/assets/plus-DbOlx2x0.js +1 -0
  368. package/dist/showcase/assets/popover-B8qrRgt3.js +1 -0
  369. package/dist/showcase/assets/popover-Bm5wETUP.js +1 -0
  370. package/dist/showcase/assets/popover-menu-EH4P-BuI.js +1 -0
  371. package/dist/showcase/assets/products-n6VBSMDh.js +423 -0
  372. package/dist/showcase/assets/progress-D9r6PSCF.js +1 -0
  373. package/dist/showcase/assets/progress-DVnMcpeq.js +18 -0
  374. package/dist/showcase/assets/props-table-udnF7Z46.js +1 -0
  375. package/dist/showcase/assets/quote-qVQF4JC7.js +1 -0
  376. package/dist/showcase/assets/receipt-DaC4l-Mr.js +1 -0
  377. package/dist/showcase/assets/receipt-text-BnwhWHdU.js +1 -0
  378. package/dist/showcase/assets/refinement-guide-zBbAE-vw.js +189 -0
  379. package/dist/showcase/assets/refresh-cw-CX6ghqEe.js +1 -0
  380. package/dist/showcase/assets/resolveValueLabel-Cjbd_80A.js +1 -0
  381. package/dist/showcase/assets/resource-D1fXD_Pt.js +139 -0
  382. package/dist/showcase/assets/resource-i2YV9aHL.js +1 -0
  383. package/dist/showcase/assets/resource-selector-card-CdQEPr9U.js +43 -0
  384. package/dist/showcase/assets/rich-text-editor-DJ2i03XV.js +143 -0
  385. package/dist/showcase/assets/rich-text-editor-Wh8r117d.js +124 -0
  386. package/dist/showcase/assets/rotate-ccw-2_FhUcdG.js +1 -0
  387. package/dist/showcase/assets/route-EGSdKgEp.js +1 -0
  388. package/dist/showcase/assets/save-nXKvyYEx.js +1 -0
  389. package/dist/showcase/assets/schema-form-D_9UkVBe.js +327 -0
  390. package/dist/showcase/assets/scroll-area-CB7X4JqZ.js +1 -0
  391. package/dist/showcase/assets/scroll-area-DCHN9iYj.js +32 -0
  392. package/dist/showcase/assets/section-C2ovQgbv.js +1 -0
  393. package/dist/showcase/assets/select-BTOraQSw.js +1 -0
  394. package/dist/showcase/assets/select-CE0BbUs7.js +1 -0
  395. package/dist/showcase/assets/send-CI0r12bX.js +1 -0
  396. package/dist/showcase/assets/separator-CmGfh7lI.js +1 -0
  397. package/dist/showcase/assets/separator-PhQTNRIB.js +28 -0
  398. package/dist/showcase/assets/settings-2-qkVb0lyz.js +1 -0
  399. package/dist/showcase/assets/settings-YXjlZ9zs.js +1 -0
  400. package/dist/showcase/assets/sheet-CFDUB2H1.js +1 -0
  401. package/dist/showcase/assets/shield-Dr_UeG6H.js +1 -0
  402. package/dist/showcase/assets/shield-alert-7rAVXg-K.js +1 -0
  403. package/dist/showcase/assets/shield-check-BbzHL-nM.js +1 -0
  404. package/dist/showcase/assets/shopping-bag-DeprN0fB.js +1 -0
  405. package/dist/showcase/assets/showcase-BU6Fvpg_.js +132 -0
  406. package/dist/showcase/assets/sidebar-CudnhnWN.js +1 -0
  407. package/dist/showcase/assets/sidebar.context-CZaDhRhh.js +1 -0
  408. package/dist/showcase/assets/skeleton-DD6VPVrv.js +1 -0
  409. package/dist/showcase/assets/skeleton-Dc5LvW7E.js +29 -0
  410. package/dist/showcase/assets/slider-BxvP9nxk.js +1 -0
  411. package/dist/showcase/assets/smart-card-B0Llbpiy.js +1 -0
  412. package/dist/showcase/assets/sonner-mszFoDWT.js +22 -0
  413. package/dist/showcase/assets/sortable.esm-J5bJPtH9.js +5 -0
  414. package/dist/showcase/assets/sparkles-CQSdl3Gw.js +1 -0
  415. package/dist/showcase/assets/spinner-BSxBn2qs.js +49 -0
  416. package/dist/showcase/assets/spinner-DJxoGJtq.js +30 -0
  417. package/dist/showcase/assets/spinner-DihTCcve.js +1 -0
  418. package/dist/showcase/assets/square-pen-CGMSA_p6.js +1 -0
  419. package/dist/showcase/assets/stacked-avatars-Ct8B4doW.js +1 -0
  420. package/dist/showcase/assets/star-DFlmmJdh.js +1 -0
  421. package/dist/showcase/assets/startOfDay-BedffeNt.js +1 -0
  422. package/dist/showcase/assets/styles-jR6uS97D.js +1 -0
  423. package/dist/showcase/assets/suggestions-DnjJ-U9n.js +126 -0
  424. package/dist/showcase/assets/switch-Dkojf4Yd.js +1 -0
  425. package/dist/showcase/assets/switch-bTb6CSLr.js +1 -0
  426. package/dist/showcase/assets/sync-rk8eFwoJ.js +124 -0
  427. package/dist/showcase/assets/table-4qIerTVI.js +686 -0
  428. package/dist/showcase/assets/table-BjMmmYd7.js +1 -0
  429. package/dist/showcase/assets/table-actions-DqofOI1V.js +1 -0
  430. package/dist/showcase/assets/tabs-BV6mMsfk.js +19 -0
  431. package/dist/showcase/assets/tabs-u2fkHRw8.js +1 -0
  432. package/dist/showcase/assets/tags-input-Cu_UwlwT.js +1 -0
  433. package/dist/showcase/assets/text-button-Fyy21evq.js +1 -0
  434. package/dist/showcase/assets/text-link-WRyY3ZZo.js +1 -0
  435. package/dist/showcase/assets/textarea-BbCxWNzV.js +1 -0
  436. package/dist/showcase/assets/textarea-CtD7JQsv.js +1 -0
  437. package/dist/showcase/assets/timelines-BBPQpCFX.js +200 -0
  438. package/dist/showcase/assets/toggle-group-B8mQ6wer.js +1 -0
  439. package/dist/showcase/assets/toggles-CCClWVXZ.js +71 -0
  440. package/dist/showcase/assets/toggles-group-DgCilPMo.js +32 -0
  441. package/dist/showcase/assets/tooltip-ClJCWWTI.js +31 -0
  442. package/dist/showcase/assets/trash-2-Cs7y4-K-.js +1 -0
  443. package/dist/showcase/assets/trending-up-spYhMxs6.js +1 -0
  444. package/dist/showcase/assets/truck-DENWgqxK.js +1 -0
  445. package/dist/showcase/assets/typography-DMmYNFQj.js +223 -0
  446. package/dist/showcase/assets/ui-badge-BJEtsa7X.js +28 -0
  447. package/dist/showcase/assets/ui-card-CrPKoi3P.js +30 -0
  448. package/dist/showcase/assets/ui-table-2HhDwPcu.js +42 -0
  449. package/dist/showcase/assets/upload-tray-CUZAErkI.js +138 -0
  450. package/dist/showcase/assets/use-layout-link-Co3GiFmb.js +1 -0
  451. package/dist/showcase/assets/useAnchoredPopupScrollLock-DgIA0IXg.js +1 -0
  452. package/dist/showcase/assets/useAriaLabelledBy-CDdoyQgg.js +1 -0
  453. package/dist/showcase/assets/useCollapsiblePanel-BT0RSjGM.js +1 -0
  454. package/dist/showcase/assets/useCompositeItem-DFghnuRZ.js +1 -0
  455. package/dist/showcase/assets/useCompositeListItem-vXyRoJ2x.js +1 -0
  456. package/dist/showcase/assets/useLabelableId-D__l5sQX.js +1 -0
  457. package/dist/showcase/assets/useOpenInteractionType-bZIaLWfE.js +1 -0
  458. package/dist/showcase/assets/useRender-BV0akLbc.js +1 -0
  459. package/dist/showcase/assets/useTriggerFocusGuards-dYriJrQP.js +1 -0
  460. package/dist/showcase/assets/useValueChanged-Dg0AWST0.js +1 -0
  461. package/dist/showcase/assets/user-B9eCi5Vl.js +1 -0
  462. package/dist/showcase/assets/user-plus-Uo4IAY7e.js +1 -0
  463. package/dist/showcase/assets/users-DLep-WjV.js +1 -0
  464. package/dist/showcase/assets/vendor-profile-BbcE51Pa.js +37 -0
  465. package/dist/showcase/assets/video-BasdlaQE.js +1 -0
  466. package/dist/showcase/assets/wrench-BYUVe1-z.js +1 -0
  467. package/dist/showcase/assets/x-Bx9ayVXr.js +1 -0
  468. package/dist/showcase/assets/zap-Mgu5HEtF.js +1 -0
  469. package/dist/showcase/index.html +2 -2
  470. package/dist/style.css +1 -1
  471. package/package.json +1 -1
  472. package/dist/_shared/auth-DdezEtKK.cjs +0 -2
  473. package/dist/_shared/auth-DdezEtKK.cjs.map +0 -1
  474. package/dist/_shared/auth-e7yab9pK.js +0 -643
  475. package/dist/_shared/auth-e7yab9pK.js.map +0 -1
  476. package/dist/_shared/cards-CbbHly7W.cjs +0 -2
  477. package/dist/_shared/cards-CbbHly7W.cjs.map +0 -1
  478. package/dist/_shared/cards-RZxRLx3f.js +0 -355
  479. package/dist/_shared/cards-RZxRLx3f.js.map +0 -1
  480. package/dist/_shared/comments-BJqgvSFY.js +0 -952
  481. package/dist/_shared/comments-BJqgvSFY.js.map +0 -1
  482. package/dist/_shared/comments-BjPciQfo.cjs +0 -2
  483. package/dist/_shared/comments-BjPciQfo.cjs.map +0 -1
  484. package/dist/_shared/containers-D7oZE4XI.cjs +0 -2
  485. package/dist/_shared/containers-D7oZE4XI.cjs.map +0 -1
  486. package/dist/_shared/containers-anBivbL9.js +0 -19
  487. package/dist/_shared/containers-anBivbL9.js.map +0 -1
  488. package/dist/_shared/content-container-CVUJCLhn.cjs +0 -2
  489. package/dist/_shared/content-container-CVUJCLhn.cjs.map +0 -1
  490. package/dist/_shared/content-container-Dv8XsAw4.js +0 -33
  491. package/dist/_shared/content-container-Dv8XsAw4.js.map +0 -1
  492. package/dist/_shared/data-display-C21skrV4.cjs +0 -2
  493. package/dist/_shared/data-display-C21skrV4.cjs.map +0 -1
  494. package/dist/_shared/data-display-C5-1dZua.js +0 -1873
  495. package/dist/_shared/data-display-C5-1dZua.js.map +0 -1
  496. package/dist/_shared/forms-BoquZE2Y.js +0 -3533
  497. package/dist/_shared/forms-BoquZE2Y.js.map +0 -1
  498. package/dist/_shared/forms-CzrEYejY.cjs +0 -2
  499. package/dist/_shared/forms-CzrEYejY.cjs.map +0 -1
  500. package/dist/_shared/header-CxhEtk9M.cjs +0 -2
  501. package/dist/_shared/header-CxhEtk9M.cjs.map +0 -1
  502. package/dist/_shared/header-h3f14vQx.js +0 -447
  503. package/dist/_shared/header-h3f14vQx.js.map +0 -1
  504. package/dist/_shared/hooks-CS55-w3h.js +0 -95
  505. package/dist/_shared/hooks-CS55-w3h.js.map +0 -1
  506. package/dist/_shared/hooks-sfHAyDgD.cjs +0 -2
  507. package/dist/_shared/hooks-sfHAyDgD.cjs.map +0 -1
  508. package/dist/_shared/layout.types-CYuDZ_4h.cjs +0 -2
  509. package/dist/_shared/layout.types-CYuDZ_4h.cjs.map +0 -1
  510. package/dist/_shared/layout.types-j7zZAPtg.js +0 -28
  511. package/dist/_shared/layout.types-j7zZAPtg.js.map +0 -1
  512. package/dist/_shared/page-D8UMXREv.cjs +0 -2
  513. package/dist/_shared/page-D8UMXREv.cjs.map +0 -1
  514. package/dist/_shared/page-D9LNsHMN.js +0 -262
  515. package/dist/_shared/page-D9LNsHMN.js.map +0 -1
  516. package/dist/_shared/settings-BeZOIEJB.js +0 -143
  517. package/dist/_shared/settings-BeZOIEJB.js.map +0 -1
  518. package/dist/_shared/settings-DI-K34bW.cjs +0 -2
  519. package/dist/_shared/settings-DI-K34bW.cjs.map +0 -1
  520. package/dist/_shared/sidebar-DfToCaiC.cjs +0 -2
  521. package/dist/_shared/sidebar-DfToCaiC.cjs.map +0 -1
  522. package/dist/_shared/sidebar-DhpRdTZH.js +0 -541
  523. package/dist/_shared/sidebar-DhpRdTZH.js.map +0 -1
  524. package/dist/_shared/workspace-BgtWS9fA.cjs +0 -2
  525. package/dist/_shared/workspace-BgtWS9fA.cjs.map +0 -1
  526. package/dist/_shared/workspace-D2jJ0PlS.js +0 -357
  527. package/dist/_shared/workspace-D2jJ0PlS.js.map +0 -1
  528. package/dist/showcase/assets/AreaChart-Y0ZwblHU.js +0 -6
  529. package/dist/showcase/assets/CompositeItem-BIY_Cp7P.js +0 -1
  530. package/dist/showcase/assets/CompositeRoot-DSPvBRQr.js +0 -1
  531. package/dist/showcase/assets/DialogTrigger-DHUp8vXe.js +0 -1
  532. package/dist/showcase/assets/LabelableContext-CasUI4hR.js +0 -1
  533. package/dist/showcase/assets/PreviewLayout-B_l930k0.js +0 -1
  534. package/dist/showcase/assets/RadioGroup-BgZ-UH79.js +0 -1
  535. package/dist/showcase/assets/ScrollAreaCorner-BbwFElLA.js +0 -1
  536. package/dist/showcase/assets/Separator-dQuencsA.js +0 -1
  537. package/dist/showcase/assets/ToolbarRootContext-BE0hbejq.js +0 -1
  538. package/dist/showcase/assets/accordion-D93ZNsLn.js +0 -171
  539. package/dist/showcase/assets/accordion-variants-Bl4bIQH4.js +0 -1
  540. package/dist/showcase/assets/action-menu--rEgMzDi.js +0 -1
  541. package/dist/showcase/assets/actions-3iedOWD9.js +0 -310
  542. package/dist/showcase/assets/activities-CyrAWFlu.js +0 -500
  543. package/dist/showcase/assets/activities-feed-card-bhIATc2O.js +0 -1
  544. package/dist/showcase/assets/admin-CZzNsj2q.js +0 -140
  545. package/dist/showcase/assets/ai-CasHwkW4.js +0 -207
  546. package/dist/showcase/assets/ai-artifact-BgWvrLAb.js +0 -2
  547. package/dist/showcase/assets/ai-chat-seS9aW-1.js +0 -568
  548. package/dist/showcase/assets/ai-elements-Tku5_ous.js +0 -387
  549. package/dist/showcase/assets/ai-tool-call-BU6xbmXG.js +0 -1
  550. package/dist/showcase/assets/alert-6Emt6KX2.js +0 -1
  551. package/dist/showcase/assets/alert-B6aLWiRW.js +0 -62
  552. package/dist/showcase/assets/alert-CtoTQ0vN.js +0 -93
  553. package/dist/showcase/assets/api-key-list-C0glWR3z.js +0 -1
  554. package/dist/showcase/assets/api-key-list-DcWSbY3u.js +0 -73
  555. package/dist/showcase/assets/app-sidebar-D_eNP_jh.js +0 -1
  556. package/dist/showcase/assets/arrow-down-qyKZ1H5j.js +0 -1
  557. package/dist/showcase/assets/arrow-left-C9I0h_su.js +0 -1
  558. package/dist/showcase/assets/arrow-right-DswaRsr6.js +0 -1
  559. package/dist/showcase/assets/arrow-up-5BijPOxK.js +0 -1
  560. package/dist/showcase/assets/arrow-up-right-CbVVNT6g.js +0 -1
  561. package/dist/showcase/assets/avatar-BYHVCvVW.js +0 -67
  562. package/dist/showcase/assets/avatar-BlLAVC87.js +0 -1
  563. package/dist/showcase/assets/avatar-DQTXjcS4.js +0 -1
  564. package/dist/showcase/assets/avatar-DveZy09C.js +0 -57
  565. package/dist/showcase/assets/badge-Bth3mRTh.js +0 -31
  566. package/dist/showcase/assets/badge-check-DocF8Ho3.js +0 -1
  567. package/dist/showcase/assets/bell-DXBoeAzi.js +0 -1
  568. package/dist/showcase/assets/bot-Ch-Y1HK8.js +0 -1
  569. package/dist/showcase/assets/box-72m9QSDa.js +0 -1
  570. package/dist/showcase/assets/braces-CC17X3TE.js +0 -1
  571. package/dist/showcase/assets/brain-Dvbla_5x.js +0 -1
  572. package/dist/showcase/assets/brand-D5ciAq8v.js +0 -36
  573. package/dist/showcase/assets/breadcrumb-BBCaOVyz.js +0 -52
  574. package/dist/showcase/assets/breadcrumb-Bt8yVTCj.js +0 -1
  575. package/dist/showcase/assets/breadcrumbs-CkVWfcAN.js +0 -1
  576. package/dist/showcase/assets/briefcase-8rQTJwpE.js +0 -1
  577. package/dist/showcase/assets/building-2-CV7gTtXz.js +0 -1
  578. package/dist/showcase/assets/button-HGjoBio3.js +0 -44
  579. package/dist/showcase/assets/button-group-LWToSCrp.js +0 -1
  580. package/dist/showcase/assets/buttons-Bn_dX6Kk.js +0 -272
  581. package/dist/showcase/assets/calendar-BTsffmY8.js +0 -1
  582. package/dist/showcase/assets/calendar-Bhpyn4u0.js +0 -1
  583. package/dist/showcase/assets/calendar-DjrUTKcD.js +0 -16
  584. package/dist/showcase/assets/calendar-days-BKCkzWjV.js +0 -1
  585. package/dist/showcase/assets/camera-EjpDG3mc.js +0 -1
  586. package/dist/showcase/assets/card-Bp6iGuOF.js +0 -188
  587. package/dist/showcase/assets/card-CHc6AVFt.js +0 -1
  588. package/dist/showcase/assets/card-primitives-Bv6XGPJd.js +0 -1
  589. package/dist/showcase/assets/card-radio-group-Ce9FsiSv.js +0 -1
  590. package/dist/showcase/assets/cards-_CGG9zir.js +0 -354
  591. package/dist/showcase/assets/carousel-BVbsKH2W.js +0 -449
  592. package/dist/showcase/assets/cell-renderers-CosD6Gby.js +0 -1
  593. package/dist/showcase/assets/chart-CwOp8Sf8.js +0 -358
  594. package/dist/showcase/assets/chart-column-sz871NdJ.js +0 -1
  595. package/dist/showcase/assets/checkbox-BO38TYqr.js +0 -1
  596. package/dist/showcase/assets/checkbox-W4MhlPlJ.js +0 -1
  597. package/dist/showcase/assets/chevron-down-BFh1Fz2P.js +0 -1
  598. package/dist/showcase/assets/chevron-left-C5_X5glO.js +0 -1
  599. package/dist/showcase/assets/chevron-up-DPH3boVS.js +0 -1
  600. package/dist/showcase/assets/chevrons-up-down-CM5mIDaw.js +0 -1
  601. package/dist/showcase/assets/circle-BFDzL1iF.js +0 -1
  602. package/dist/showcase/assets/circle-alert-C6MbOB0m.js +0 -1
  603. package/dist/showcase/assets/circle-check-C0X85t4j.js +0 -1
  604. package/dist/showcase/assets/circle-check-big-CBaodck_.js +0 -1
  605. package/dist/showcase/assets/circle-dot-DdRpIhnL.js +0 -1
  606. package/dist/showcase/assets/circle-question-mark-CKlcead7.js +0 -1
  607. package/dist/showcase/assets/circle-x-MO44aKHe.js +0 -1
  608. package/dist/showcase/assets/clock-3-CXQJFcbh.js +0 -1
  609. package/dist/showcase/assets/clock-GhBJJ6n1.js +0 -1
  610. package/dist/showcase/assets/code-xml-BSX7Qyi5.js +0 -1
  611. package/dist/showcase/assets/collapsible-CZLTO5EH.js +0 -1
  612. package/dist/showcase/assets/collapsible-LrDO_sSQ.js +0 -27
  613. package/dist/showcase/assets/combobox-TmDBXkM-.js +0 -685
  614. package/dist/showcase/assets/command-9-r1qrJt.js +0 -1
  615. package/dist/showcase/assets/command-DGne3l9s.js +0 -1
  616. package/dist/showcase/assets/comment-composer-BI0qnvuY.js +0 -1
  617. package/dist/showcase/assets/comment-item-Cedds6Lm.js +0 -1
  618. package/dist/showcase/assets/comments-De02NOns.js +0 -357
  619. package/dist/showcase/assets/commerce-DldtS83o.js +0 -267
  620. package/dist/showcase/assets/composite-BjZZlzzb.js +0 -1
  621. package/dist/showcase/assets/contact-card-muCZ3uXV.js +0 -65
  622. package/dist/showcase/assets/content-container-BxSLICeL.js +0 -1
  623. package/dist/showcase/assets/copyable-DYhhmTqM.js +0 -1
  624. package/dist/showcase/assets/copyable-MNU75-J9.js +0 -96
  625. package/dist/showcase/assets/course-card-Dl1wsuJx.js +0 -77
  626. package/dist/showcase/assets/cpu-CsWq4fcX.js +0 -1
  627. package/dist/showcase/assets/credit-card-B0AUZiWw.js +0 -1
  628. package/dist/showcase/assets/css-variables-Be7DzahT.js +0 -1190
  629. package/dist/showcase/assets/currency-BtPM_Xtw.js +0 -149
  630. package/dist/showcase/assets/dark-surfaces-DRFERSEv.js +0 -90
  631. package/dist/showcase/assets/data-view-DmWd0h7G.js +0 -4
  632. package/dist/showcase/assets/data-view-DnLH2o0i.js +0 -124
  633. package/dist/showcase/assets/database-C0YqGaQ_.js +0 -1
  634. package/dist/showcase/assets/date-block-BQH25FLS.js +0 -1
  635. package/dist/showcase/assets/date-picker-BF-jevhh.js +0 -1
  636. package/dist/showcase/assets/date-pickers-q2v3ajJm.js +0 -73
  637. package/dist/showcase/assets/dense-info-Cb-roqDU.js +0 -106
  638. package/dist/showcase/assets/design-system-consistency-DMSJknaM.js +0 -264
  639. package/dist/showcase/assets/dialog-C0ALRmbP.js +0 -1
  640. package/dist/showcase/assets/dialog-CbXon08k.js +0 -1
  641. package/dist/showcase/assets/display-utilities-kBUVw7o3.js +0 -267
  642. package/dist/showcase/assets/dist-CTSkWj_M.js +0 -45
  643. package/dist/showcase/assets/dist-W8bxVfew.js +0 -1
  644. package/dist/showcase/assets/dollar-sign-VNxVZleW.js +0 -1
  645. package/dist/showcase/assets/download-Ds_6eIpx.js +0 -1
  646. package/dist/showcase/assets/dropdown-menu-C1G_y9dv.js +0 -1
  647. package/dist/showcase/assets/dropzone-CxOLmdkt.js +0 -1
  648. package/dist/showcase/assets/earth-HLyEI1oq.js +0 -1
  649. package/dist/showcase/assets/ellipsis-BLyAd9A-.js +0 -1
  650. package/dist/showcase/assets/ellipsis-vertical-TG4mYU2J.js +0 -1
  651. package/dist/showcase/assets/empty-B54k9xAG.js +0 -1
  652. package/dist/showcase/assets/empty-item-BmA4rmq7.js +0 -49
  653. package/dist/showcase/assets/empty-state-CH7gjjg7.js +0 -190
  654. package/dist/showcase/assets/empty-state-hUKvmKa-.js +0 -1
  655. package/dist/showcase/assets/enhanced-activities-BRDVL9RR.js +0 -357
  656. package/dist/showcase/assets/enhanced-combobox-2wbQJS6R.js +0 -1
  657. package/dist/showcase/assets/esm-CUTefMLr.js +0 -2
  658. package/dist/showcase/assets/event-calendar-Bf9xFZlt.js +0 -138
  659. package/dist/showcase/assets/event-log-CeRDSL-h.js +0 -330
  660. package/dist/showcase/assets/example-CJMJcnb4.js +0 -1
  661. package/dist/showcase/assets/external-link-CvXhYrnd.js +0 -1
  662. package/dist/showcase/assets/eye-Cl_GfUKH.js +0 -1
  663. package/dist/showcase/assets/feature-announcement-Dw0SokLo.js +0 -34
  664. package/dist/showcase/assets/file-CJFWrwy1.js +0 -1
  665. package/dist/showcase/assets/file-text-BTTFP8Jo.js +0 -1
  666. package/dist/showcase/assets/filter-layout-DUVqG5Ql.js +0 -1
  667. package/dist/showcase/assets/filters-BLcCaplV.js +0 -139
  668. package/dist/showcase/assets/flag-BxI3EGPG.js +0 -1
  669. package/dist/showcase/assets/folder-open-4d8qsiAj.js +0 -1
  670. package/dist/showcase/assets/form-field-Dhy0eM5B.js +0 -1
  671. package/dist/showcase/assets/format-zGqa9Olc.js +0 -1
  672. package/dist/showcase/assets/forms-D99qG5Gb.js +0 -915
  673. package/dist/showcase/assets/funnel-Cg7SOShf.js +0 -1
  674. package/dist/showcase/assets/generic-CfrG943t.js +0 -1
  675. package/dist/showcase/assets/getPseudoElementBounds-lw5shsdM.js +0 -1
  676. package/dist/showcase/assets/gift-BXtKbzvA.js +0 -1
  677. package/dist/showcase/assets/giftcard-cards-CqYaN0jC.js +0 -85
  678. package/dist/showcase/assets/git-branch-BWAuIMOQ.js +0 -1
  679. package/dist/showcase/assets/global-search-CHUva8pR.js +0 -1
  680. package/dist/showcase/assets/global-search-Df7JovOG.js +0 -215
  681. package/dist/showcase/assets/globe-CvIW_foU.js +0 -1
  682. package/dist/showcase/assets/gradient-card-CdM2J1Hv.js +0 -58
  683. package/dist/showcase/assets/hash-wBs5gyr_.js +0 -1
  684. package/dist/showcase/assets/header-DXPFmpUT.js +0 -1
  685. package/dist/showcase/assets/header-notifications-FsnCJLpe.js +0 -1
  686. package/dist/showcase/assets/heart-B4fOMIr6.js +0 -1
  687. package/dist/showcase/assets/hooks-DtMOMalj.js +0 -220
  688. package/dist/showcase/assets/house-hebmAxEE.js +0 -1
  689. package/dist/showcase/assets/icon-badge-DrZ5qGpa.js +0 -1
  690. package/dist/showcase/assets/icon-badge-JEug_P_U.js +0 -37
  691. package/dist/showcase/assets/image-CxNywgkb.js +0 -1
  692. package/dist/showcase/assets/inbox-DqAmGdDd.js +0 -1
  693. package/dist/showcase/assets/index-DujM0kEF.css +0 -2
  694. package/dist/showcase/assets/index-jD-KSiHu.js +0 -10
  695. package/dist/showcase/assets/inertValue-Dg9TwvOb.js +0 -1
  696. package/dist/showcase/assets/info-B5fZn_ZC.js +0 -1
  697. package/dist/showcase/assets/inline-stat-CklKufoA.js +0 -1
  698. package/dist/showcase/assets/inline-stat-Dep7oHIi.js +0 -15
  699. package/dist/showcase/assets/input-CkNgwwCs.js +0 -1
  700. package/dist/showcase/assets/input-DAPMRlKO.js +0 -1
  701. package/dist/showcase/assets/input-group-06D68uB6.js +0 -47
  702. package/dist/showcase/assets/input-group-Bq9aXQPG.js +0 -1
  703. package/dist/showcase/assets/inputs-C8G3y-zR.js +0 -155
  704. package/dist/showcase/assets/installation-BV5xOvoE.js +0 -134
  705. package/dist/showcase/assets/invoice-header-BcUxzT68.js +0 -36
  706. package/dist/showcase/assets/invoice-items-B42Jfxl7.js +0 -36
  707. package/dist/showcase/assets/invoice-mini-RJGdlErg.js +0 -14
  708. package/dist/showcase/assets/invoice-table--MdP6ysv.js +0 -30
  709. package/dist/showcase/assets/isSameDay-srttAIjD.js +0 -1
  710. package/dist/showcase/assets/isToday-BPub5Zvi.js +0 -1
  711. package/dist/showcase/assets/italic-1BNA_XlU.js +0 -1
  712. package/dist/showcase/assets/item-B9KyqUGa.js +0 -139
  713. package/dist/showcase/assets/item-DoIlPm6J.js +0 -1
  714. package/dist/showcase/assets/item-ffIfXEGd.js +0 -1
  715. package/dist/showcase/assets/kanban-Cfad3edR.js +0 -188
  716. package/dist/showcase/assets/key-round-J11Zc216.js +0 -1
  717. package/dist/showcase/assets/label-DqaB8ZB2.js +0 -1
  718. package/dist/showcase/assets/languages-D9UaP3QU.js +0 -1
  719. package/dist/showcase/assets/layers-QXZ9Jfej.js +0 -1
  720. package/dist/showcase/assets/layout-app-shell-CW1eRJmU.js +0 -608
  721. package/dist/showcase/assets/layout-auth-j4K6lveg.js +0 -790
  722. package/dist/showcase/assets/layout-containers-NclLtsV0.js +0 -101
  723. package/dist/showcase/assets/layout-header-B8AOTiwL.js +0 -203
  724. package/dist/showcase/assets/layout-page-DM79QHyW.js +0 -314
  725. package/dist/showcase/assets/layout-primitives-Dyop-WMt.js +0 -34
  726. package/dist/showcase/assets/layout-sidebar-uBNaHqjD.js +0 -224
  727. package/dist/showcase/assets/layout-users-BkhDiOOz.js +0 -117
  728. package/dist/showcase/assets/layout-workspace-C2hSimZW.js +0 -191
  729. package/dist/showcase/assets/lib-CDssULuD.js +0 -1
  730. package/dist/showcase/assets/list-checks-DA2jqXdm.js +0 -1
  731. package/dist/showcase/assets/lock-BDZLNQLR.js +0 -1
  732. package/dist/showcase/assets/lock-keyhole-CWYENd9O.js +0 -1
  733. package/dist/showcase/assets/mail-CCdaRmft.js +0 -1
  734. package/dist/showcase/assets/mail-check-DZF1VbCX.js +0 -1
  735. package/dist/showcase/assets/map-CDFEmmZH.js +0 -124
  736. package/dist/showcase/assets/map-pin-CdV-R6nt.js +0 -1
  737. package/dist/showcase/assets/media-library-BJyn1s9d.js +0 -699
  738. package/dist/showcase/assets/mention-inline-suggestions-DPO6FhXx.js +0 -1
  739. package/dist/showcase/assets/mentions-DtWHbcS6.js +0 -138
  740. package/dist/showcase/assets/menus-BmjngFE4.js +0 -171
  741. package/dist/showcase/assets/message-square-bM29txT3.js +0 -1
  742. package/dist/showcase/assets/metadata-list-DvYTAJri.js +0 -286
  743. package/dist/showcase/assets/metadata-list-xVUTVyy9.js +0 -1
  744. package/dist/showcase/assets/metric-BPNCh4eA.js +0 -1
  745. package/dist/showcase/assets/metric-bar-BX4sCMrM.js +0 -1
  746. package/dist/showcase/assets/metric-grid-IyHP3nmU.js +0 -1
  747. package/dist/showcase/assets/metric-trend-chip-Dih8eR17.js +0 -1
  748. package/dist/showcase/assets/metrics-analytics-bar-DK16RNMs.js +0 -44
  749. package/dist/showcase/assets/metrics-analytics-cards-Byyl13YT.js +0 -50
  750. package/dist/showcase/assets/metrics-comparison-DGHFMBL-.js +0 -76
  751. package/dist/showcase/assets/metrics-heatmap-Bl6C7i0j.js +0 -27
  752. package/dist/showcase/assets/metrics-inline-badge-Bz79zbNK.js +0 -17
  753. package/dist/showcase/assets/metrics-kpi-row-DzZ9dRFY.js +0 -31
  754. package/dist/showcase/assets/metrics-micro-grid-DyoQiuzr.js +0 -42
  755. package/dist/showcase/assets/metrics-overview-DoyHPEZw.js +0 -192
  756. package/dist/showcase/assets/metrics-stat-cards-B1b7NFqW.js +0 -54
  757. package/dist/showcase/assets/minus-BE2L5hVc.js +0 -1
  758. package/dist/showcase/assets/money-display-CXQ_8LfA.js +0 -1
  759. package/dist/showcase/assets/month-year-picker-ra8FEN8F.js +0 -1
  760. package/dist/showcase/assets/navigation-CFfVZQJ1.js +0 -231
  761. package/dist/showcase/assets/navigation-Da0MVkqr.js +0 -90
  762. package/dist/showcase/assets/navigation-extras-LpsdoXfx.js +0 -43
  763. package/dist/showcase/assets/onboarding-checklist-DPNatNOk.js +0 -119
  764. package/dist/showcase/assets/overflow-tab-bar-C0vTzcEY.js +0 -1
  765. package/dist/showcase/assets/overlays-Blmbun0J.js +0 -408
  766. package/dist/showcase/assets/overlays-t0joc10Y.js +0 -159
  767. package/dist/showcase/assets/overview-Ckq8vbOR.js +0 -184
  768. package/dist/showcase/assets/package-Cjod_a06.js +0 -1
  769. package/dist/showcase/assets/package-check-JRHaNnkl.js +0 -1
  770. package/dist/showcase/assets/page-9xr7xnuW.js +0 -1
  771. package/dist/showcase/assets/page-action-button-BRXnfsEx.js +0 -1
  772. package/dist/showcase/assets/page-header-Bdlxfn_9.js +0 -1
  773. package/dist/showcase/assets/pagination-CeaYhOvv.js +0 -42
  774. package/dist/showcase/assets/pagination-DdZZHvNF.js +0 -1
  775. package/dist/showcase/assets/paperclip-BRM-yXTB.js +0 -1
  776. package/dist/showcase/assets/password-input-1FVEugoO.js +0 -1
  777. package/dist/showcase/assets/pencil-DiG2dQ8F.js +0 -1
  778. package/dist/showcase/assets/phone-BREyNZN-.js +0 -1
  779. package/dist/showcase/assets/plus-CQcelTNc.js +0 -1
  780. package/dist/showcase/assets/popover-Czmwspmc.js +0 -1
  781. package/dist/showcase/assets/popover-menu-beuCaiLt.js +0 -1
  782. package/dist/showcase/assets/popover-uqk7myG2.js +0 -1
  783. package/dist/showcase/assets/products-DGNqIbLs.js +0 -423
  784. package/dist/showcase/assets/progress-D76Df908.js +0 -1
  785. package/dist/showcase/assets/progress-DjUprSDD.js +0 -18
  786. package/dist/showcase/assets/props-table-DoDq8Mvr.js +0 -1
  787. package/dist/showcase/assets/quote-BvGGgyJ0.js +0 -1
  788. package/dist/showcase/assets/receipt-rgnlMgyi.js +0 -1
  789. package/dist/showcase/assets/receipt-text-CBQrVlnU.js +0 -1
  790. package/dist/showcase/assets/refinement-guide-B_BpIMxm.js +0 -189
  791. package/dist/showcase/assets/refresh-cw-C-yHy6B7.js +0 -1
  792. package/dist/showcase/assets/resolveValueLabel-0bwEvIG-.js +0 -1
  793. package/dist/showcase/assets/resource-8f61BZ8t.js +0 -1
  794. package/dist/showcase/assets/resource-BEh6R0gu.js +0 -139
  795. package/dist/showcase/assets/resource-selector-card-DJwXY_Ms.js +0 -43
  796. package/dist/showcase/assets/rich-text-editor-D433iv0N.js +0 -143
  797. package/dist/showcase/assets/rich-text-editor-vTRfWsOK.js +0 -124
  798. package/dist/showcase/assets/rotate-ccw-JuE4H14F.js +0 -1
  799. package/dist/showcase/assets/route-eSu1bFNn.js +0 -1
  800. package/dist/showcase/assets/save-Bpjj-rBP.js +0 -1
  801. package/dist/showcase/assets/schema-form-DmOpxd96.js +0 -327
  802. package/dist/showcase/assets/scroll-area-B9OdCBy9.js +0 -32
  803. package/dist/showcase/assets/scroll-area-BH80l2As.js +0 -1
  804. package/dist/showcase/assets/section-BPNIPavy.js +0 -1
  805. package/dist/showcase/assets/select-BauiG1a3.js +0 -1
  806. package/dist/showcase/assets/select-CPopSr5c.js +0 -1
  807. package/dist/showcase/assets/send-DNCcBKXs.js +0 -1
  808. package/dist/showcase/assets/separator-BK0beCOv.js +0 -28
  809. package/dist/showcase/assets/separator-CKM9A-mm.js +0 -1
  810. package/dist/showcase/assets/settings-2-B8fz7JZB.js +0 -1
  811. package/dist/showcase/assets/settings-Cy2y3sQw.js +0 -1
  812. package/dist/showcase/assets/sheet-C7VWkXE1.js +0 -1
  813. package/dist/showcase/assets/shield-ClPev4gS.js +0 -1
  814. package/dist/showcase/assets/shield-alert-6XO5YZ5u.js +0 -1
  815. package/dist/showcase/assets/shield-check-DSfGVZq0.js +0 -1
  816. package/dist/showcase/assets/shopping-bag-DzMrGvpF.js +0 -1
  817. package/dist/showcase/assets/showcase-DuZaO6q9.js +0 -132
  818. package/dist/showcase/assets/sidebar-7y9EQYWf.js +0 -1
  819. package/dist/showcase/assets/sidebar.context-DUheJD8t.js +0 -1
  820. package/dist/showcase/assets/skeleton-Dgr8Vabr.js +0 -29
  821. package/dist/showcase/assets/skeleton-HSpErFqw.js +0 -1
  822. package/dist/showcase/assets/slider-B7f81APg.js +0 -1
  823. package/dist/showcase/assets/smart-card-p97LLZCW.js +0 -1
  824. package/dist/showcase/assets/sonner-CWazrN19.js +0 -22
  825. package/dist/showcase/assets/sortable.esm-uufol7Mz.js +0 -5
  826. package/dist/showcase/assets/sparkles-Z4V23xKK.js +0 -1
  827. package/dist/showcase/assets/spinner-BUgjAjWE.js +0 -49
  828. package/dist/showcase/assets/spinner-CXu7z8-j.js +0 -1
  829. package/dist/showcase/assets/spinner-DCwR0mnD.js +0 -30
  830. package/dist/showcase/assets/square-pen-jwp_OWMQ.js +0 -1
  831. package/dist/showcase/assets/stacked-avatars-CHEpTotO.js +0 -1
  832. package/dist/showcase/assets/star-Ck8Lg5hm.js +0 -1
  833. package/dist/showcase/assets/startOfDay-BzULZHy4.js +0 -1
  834. package/dist/showcase/assets/styles-CNYitflH.js +0 -1
  835. package/dist/showcase/assets/suggestions-CSF9MlKl.js +0 -126
  836. package/dist/showcase/assets/switch-BX9KSLIF.js +0 -1
  837. package/dist/showcase/assets/switch-Bn0WaWa9.js +0 -1
  838. package/dist/showcase/assets/sync-BuKBnqWW.js +0 -124
  839. package/dist/showcase/assets/table-DNJcLaud.js +0 -686
  840. package/dist/showcase/assets/table-NfpOWGsG.js +0 -1
  841. package/dist/showcase/assets/table-actions-Ci9Yszp0.js +0 -1
  842. package/dist/showcase/assets/tabs-CYNFQdIr.js +0 -19
  843. package/dist/showcase/assets/tabs-Cm_p6znb.js +0 -1
  844. package/dist/showcase/assets/tags-input-DE4QZqS_.js +0 -1
  845. package/dist/showcase/assets/text-button-D9llh4pU.js +0 -1
  846. package/dist/showcase/assets/text-link-ZT6QGJOL.js +0 -1
  847. package/dist/showcase/assets/textarea-CgcHuGVq.js +0 -1
  848. package/dist/showcase/assets/textarea-D2uT_GJt.js +0 -1
  849. package/dist/showcase/assets/timelines-BEFO7tJ0.js +0 -200
  850. package/dist/showcase/assets/toggle-group-oYpa59lN.js +0 -1
  851. package/dist/showcase/assets/toggles-BL93YmQo.js +0 -71
  852. package/dist/showcase/assets/toggles-group-BG-xiQCY.js +0 -32
  853. package/dist/showcase/assets/tooltip-BMI7zHwP.js +0 -31
  854. package/dist/showcase/assets/trash-2-CtRtVsCy.js +0 -1
  855. package/dist/showcase/assets/trending-up-2NQ-P8vB.js +0 -1
  856. package/dist/showcase/assets/truck-Cl0nyN_j.js +0 -1
  857. package/dist/showcase/assets/typography-C7pCPhg7.js +0 -223
  858. package/dist/showcase/assets/ui-badge-BvmuMzSq.js +0 -28
  859. package/dist/showcase/assets/ui-card-B7ziOMAn.js +0 -30
  860. package/dist/showcase/assets/ui-table-BEFHakBU.js +0 -42
  861. package/dist/showcase/assets/upload-tray-CMKqTtEp.js +0 -138
  862. package/dist/showcase/assets/use-layout-link-nEU6ctSs.js +0 -1
  863. package/dist/showcase/assets/useAnchoredPopupScrollLock-B1xyKMh7.js +0 -1
  864. package/dist/showcase/assets/useAriaLabelledBy-BMlFgz-H.js +0 -1
  865. package/dist/showcase/assets/useCollapsiblePanel-BEzH6TC2.js +0 -1
  866. package/dist/showcase/assets/useCompositeItem-CIuww7-p.js +0 -1
  867. package/dist/showcase/assets/useCompositeListItem-PrMTh4tz.js +0 -1
  868. package/dist/showcase/assets/useLabelableId-BBLkeLGr.js +0 -1
  869. package/dist/showcase/assets/useOpenInteractionType-CW0quo3l.js +0 -1
  870. package/dist/showcase/assets/useRender-6NNMHJJU.js +0 -1
  871. package/dist/showcase/assets/useTriggerFocusGuards-DEza_iee.js +0 -1
  872. package/dist/showcase/assets/useValueChanged-BmWIb3SN.js +0 -1
  873. package/dist/showcase/assets/user-BDIP5UPS.js +0 -1
  874. package/dist/showcase/assets/user-plus-BCqHFh2h.js +0 -1
  875. package/dist/showcase/assets/users-Bh7xGRX2.js +0 -1
  876. package/dist/showcase/assets/vendor-profile-BlYcRbPI.js +0 -37
  877. package/dist/showcase/assets/video-BucshqNW.js +0 -1
  878. package/dist/showcase/assets/wrench-DQvhyTEb.js +0 -1
  879. package/dist/showcase/assets/x-DyuS4YRT.js +0 -1
  880. package/dist/showcase/assets/zap-Dpn8_pnQ.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-CDOLD8fN.js","names":[],"sources":["../../src/components/layout/sidebar/sidebar.context.tsx","../../src/components/layout/sidebar/sidebar.settings.ts","../../src/components/layout/sidebar/sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-grouped-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-logo.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-footer.tsx","../../src/components/layout/sidebar/sidebar.types.ts","../../src/components/layout/sidebar/components/sidebar-workspace-dropdown.tsx","../../src/components/layout/sidebar/app-sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-user.tsx"],"sourcesContent":[" \n/** SidebarProvider — layout-scoped wrapper around the shadcn sidebar context. */\nimport * as React from 'react';\n\nimport { TooltipProvider } from '@/components/base/display/tooltip';\nimport {\n\tSidebarProvider as PrimitiveSidebarProvider,\n\tuseSidebar as primitiveUseSidebar,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nexport const useSidebar = primitiveUseSidebar;\nexport type SidebarContext = ReturnType<typeof primitiveUseSidebar>;\n\nexport type SidebarProviderProps = React.ComponentProps<'div'> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n};\n\nexport function SidebarProvider({\n\tdefaultOpen = true,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: SidebarProviderProps) {\n\treturn (\n\t\t<TooltipProvider delayDuration={0}>\n\t\t\t<PrimitiveSidebarProvider\n\t\t\t\tdefaultOpen={defaultOpen}\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={onOpenChange}\n\t\t\t\tstyle={style}\n\t\t\t\tclassName={cn('min-h-svh', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</PrimitiveSidebarProvider>\n\t\t</TooltipProvider>\n\t);\n}\n","import { cva } from \"class-variance-authority\"\n\nexport const SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nexport const SIDEBAR_WIDTH = \"16rem\"\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\"\nexport const SIDEBAR_WIDTH_ICON = \"3rem\"\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\nexport const sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n"," \n/** Sidebar — responsive shell around the shadcn sidebar primitive pieces. */\nimport * as React from 'react';\n\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from '@/components/base/sheet';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from './sidebar.context';\nimport { SIDEBAR_WIDTH_MOBILE } from './sidebar.settings';\n\nexport interface SidebarStrings {\n\tmobileTitle: string;\n\tmobileDescription: string;\n}\n\nexport const defaultSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Sidebar',\n\tmobileDescription: 'Displays the mobile sidebar.',\n};\n\nexport type SidebarProps = React.ComponentProps<'div'> & {\n\tside?: 'left' | 'right';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tstrings?: StringsProp<SidebarStrings>;\n\tsurfaceClassName?: string;\n};\n\nexport function Sidebar({\n\tside = 'left',\n\tvariant = 'sidebar',\n\tcollapsible = 'offcanvas',\n\tclassName,\n\tsurfaceClassName,\n\tchildren,\n\tstrings: stringsProp,\n\t...props\n}: SidebarProps) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\tconst strings = useStrings(defaultSidebarStrings, stringsProp);\n\n\tif (collapsible === 'none') {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', surfaceClassName, className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName={cn('w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden', surfaceClassName)}\n\t\t\t\t\tstyle={{ '--sidebar-width': SIDEBAR_WIDTH_MOBILE } as React.CSSProperties}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>{strings.mobileTitle}</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>{strings.mobileDescription}</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer sticky top-0 hidden h-full text-sidebar-foreground md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === 'collapsed' ? collapsible : ''}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inset-y-0 z-10 hidden h-full w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n\t\t\t\t\tside === 'left'\n\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? 'px-2 py-3 group-data-[collapsible=icon]:w-17'\n\t\t\t\t\t\t: '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\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'sidebar flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm',\n\t\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","/** SidebarGroupedNavigation — grouped tree navigation with composable rows. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarGroupedNavigationProps, SidebarNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nfunction NavLabel({\n\titem,\n\tactive = false,\n}: {\n\titem: SidebarNavItem;\n\tactive?: boolean;\n}) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" weight={active ? 'bold' : 'medium'} className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarGroupedNavigation({\n\tnavigationByGroups,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\temptySlot,\n\trenderItem,\n\tclassName,\n}: SidebarGroupedNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst isActive = (href?: string): boolean => !!href && isPathMatch(currentUrl, toPath(href));\n\n\tconst bestMatchIndex = (siblings: SidebarNavItem[]): number => {\n\t\tlet bestIdx = -1;\n\t\tlet bestLen = -1;\n\t\tfor (let i = 0; i < siblings.length; i += 1) {\n\t\t\tconst sibling = siblings[i];\n\t\t\tconst path = sibling?.href ? toPath(sibling.href) : '';\n\t\t\tif (path && isPathMatch(currentUrl, path) && path.length > bestLen) {\n\t\t\t\tbestLen = path.length;\n\t\t\t\tbestIdx = i;\n\t\t\t}\n\t\t}\n\t\treturn bestIdx;\n\t};\n\n\tconst hasActiveChild = (children?: SidebarNavItem[]): boolean =>\n\t\t!!children?.some((child) => isActive(child.href) || hasActiveChild(child.children));\n\n\tconst renderDefaultItem = (item: SidebarNavItem, depth = 0, index = 0): React.ReactNode => {\n\t\tconst hasChildren = !!item.children?.length;\n\t\tconst itemActive = isActive(item.href);\n\t\tconst childActive = hasChildren ? hasActiveChild(item.children) : false;\n\t\tconst expanded = itemActive || childActive;\n\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\tconst label = getNavLabel(item);\n\t\tconst context: SidebarRenderItemContext = {\n\t\t\tdepth,\n\t\t\tactive: itemActive,\n\t\t\texpanded,\n\t\t\tbadge,\n\t\t\trenderLink: resolvedRenderLink,\n\t\t};\n\n\t\tif (renderItem) {\n\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t}\n\n\t\tif (hasChildren) {\n\t\t\tconst activeChildIdx = bestMatchIndex(item.children ?? []);\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t<NavLabel item={item} active={expanded} />\n\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\tisActive={expanded}\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, expanded) as React.ReactElement\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttooltip={{ children: label }}\n\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\texpanded && 'font-bold data-active:font-bold data-[active=true]:font-bold',\n\t\t\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-foreground',\n\t\t\t\t\t\t\t!itemActive && childActive && 'bg-sidebar-accent/60 text-sidebar-foreground',\n\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</SidebarMenuButton>\n\n\t\t\t\t\t{!!expanded && (\n\t\t\t\t\t\t<SidebarMenuSub className=\"gap-0.5\">\n\t\t\t\t\t\t\t{item.children?.map((child, childIndex) => {\n\t\t\t\t\t\t\t\tconst childActiveNow = childIndex === activeChildIdx || isActive(child.href);\n\t\t\t\t\t\t\t\tconst childBadge = resolveNavBadge(child.handle, child.badge, liveBadges);\n\t\t\t\t\t\t\t\tconst childLabel = getNavLabel(child);\n\t\t\t\t\t\t\t\tconst childContent = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{typeof childLabel === 'string' || typeof childLabel === 'number' ? (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tweight={childActiveNow ? 'semibold' : 'regular'}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"min-w-0 flex-1 truncate text-inherit\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{childLabel}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t) : childLabel}\n\t\t\t\t\t\t\t\t\t\t{!!childBadge && <NavBadge value={childBadge} size=\"small\" />}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SidebarMenuSubItem key={getNavKey(child, childIndex)}>\n\t\t\t\t\t\t\t\t\t\t<SidebarMenuSubButton\n\t\t\t\t\t\t\t\t\t\t\tisActive={childActiveNow}\n\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\tchild.href && !child.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, child, childContent, undefined, childActiveNow) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'w-full',\n\t\t\t\t\t\t\t\t\t\t\t\tchildActiveNow && 'bg-transparent font-semibold text-primary hover:text-primary active:text-primary data-active:text-primary data-[active=true]:text-primary',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{childContent}\n\t\t\t\t\t\t\t\t\t\t</SidebarMenuSubButton>\n\t\t\t\t\t\t\t\t\t</SidebarMenuSubItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</SidebarMenuSub>\n\t\t\t\t\t)}\n\t\t\t</SidebarMenuItem>\n\t\t);\n\t}\n\n\tconst content = (\n\t\t<>\n\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t<NavLabel item={item} active={itemActive} />\n\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t<SidebarMenuButton\n\t\t\t\tisActive={itemActive}\n\t\t\t\trender={\n\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, itemActive) as React.ReactElement\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\ttooltip={{ children: label }}\n\t\t\t\tdisabled={item.disabled}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\titemActive && 'font-bold data-active:font-bold data-[active=true]:font-bold',\n\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-foreground',\n\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</SidebarMenuButton>\n\t\t</SidebarMenuItem>\n\t);\n\t};\n\n\tconst groupEntries = Object.entries(navigationByGroups).filter(([, items]) => items.length > 0);\n\tif (groupEntries.length === 0) return emptySlot ?? null;\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{groupEntries.map(([groupName, items], groupIndex) => (\n\t\t\t\t<React.Fragment key={groupName}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t{!groupName.startsWith('_') && <SidebarGroupLabel>{groupName}</SidebarGroupLabel>}\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{items.map((item, index) => renderDefaultItem(item, 0, index))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIndex < groupEntries.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1.5 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n","/** SidebarLogo — hides its logo content when the sidebar is icon-collapsed. */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarLogoProps {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tclassName?: string;\n}\n\nexport function SidebarLogo({ logo, collapsedLogo = null, className }: SidebarLogoProps) {\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst content = isCollapsed ? collapsedLogo : logo;\n\tif (!content) return null;\n\treturn <div className={cn('min-w-0', className)}>{content}</div>;\n}\n","/** SidebarNavigationFooter — secondary footer navigation using renderLink. */\nimport { ExternalLink } from 'lucide-react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarNavigationFooterProps } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport function SidebarNavigationFooter({\n\titems,\n\tlabel,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: SidebarNavigationFooterProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('group-data-[collapsible=icon]:p-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarGroupContent>\n\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\t\tconst labelNode = getNavLabel(item);\n\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t{typeof labelNode === 'string' || typeof labelNode === 'number' ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" className=\"truncate text-inherit\">{labelNode}</Text>\n\t\t\t\t\t\t\t\t) : labelNode}\n\t\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t\t\t{!!item.external && <ExternalLink className=\"ml-auto size-3 opacity-50\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'h-8 font-medium text-sidebar-foreground/70 hover:text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</SidebarMenu>\n\t\t\t</SidebarGroupContent>\n\t\t</SidebarGroup>\n\t);\n}\n","/**\n * Sidebar types — framework-neutral navigation tree, render contexts, slots,\n * strings, and composition props.\n */\nimport type { ComponentType, ReactNode } from 'react';\n\nimport type {\n\tLayoutIconSource,\n\tLayoutLinkRenderer,\n\tLayoutNavigationAdapter,\n\tLinkComponent,\n} from '../layout.types';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface SidebarNavItem {\n\t/** New preferred label. */\n\tlabel?: ReactNode;\n\t/** Back-compat label used by older call sites. */\n\ttitle?: ReactNode;\n\thref?: string;\n\thandle?: string;\n\ticon?: LayoutIconSource;\n\tdisabled?: boolean;\n\tbadge?: string | number;\n\tchildren?: SidebarNavItem[];\n\tgroup?: string;\n\texternal?: boolean;\n}\n\nexport type SidebarFlatNavItem = Omit<SidebarNavItem, 'children' | 'group'>;\n\nexport interface SidebarRenderItemContext {\n\tdepth: number;\n\tactive: boolean;\n\texpanded: boolean;\n\tbadge?: string | number;\n\trenderLink: LayoutLinkRenderer;\n}\n\nexport interface SidebarSlots {\n\theader?: ReactNode;\n\tbeforeNavigation?: ReactNode;\n\tafterNavigation?: ReactNode;\n\tfooter?: ReactNode;\n\tempty?: ReactNode;\n\tloading?: ReactNode;\n}\n\nexport interface AppSidebarProps extends LayoutNavigationAdapter {\n\tnavigationGroups?: Record<string, SidebarNavItem[]>;\n\tfooterNavItems?: SidebarFlatNavItem[];\n\tfooterLabel?: ReactNode;\n\tlogo?: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks?: WorkspaceLink[];\n\tworkspaceStrings?: StringsProp<SidebarWorkspaceDropdownStrings>;\n\tworkspaceContentClassName?: string;\n\theaderClassName?: string;\n\tlogoClassName?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tcurrentUrl?: string;\n\tliveBadges?: Record<string, string | number>;\n\tloading?: boolean;\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tside?: 'left' | 'right';\n\tclassName?: string;\n\tsurfaceClassName?: string;\n\tcontentClassName?: string;\n\tslots?: SidebarSlots;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarGroupedNavigationProps extends LayoutNavigationAdapter {\n\tnavigationByGroups: Record<string, SidebarNavItem[]>;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\temptySlot?: ReactNode;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarFlatNavigationProps extends LayoutNavigationAdapter {\n\titems: SidebarFlatNavItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\trenderItem?: (item: SidebarFlatNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface WorkspaceLink {\n\tlabel: ReactNode;\n\turl: string;\n\ticon?: ComponentType<{ className?: string }>;\n\texternal?: boolean;\n}\n\nexport interface SidebarWorkspaceDropdownStrings {\n\tlabel: string;\n\tselect: string;\n}\n\nexport const defaultSidebarWorkspaceDropdownStrings: SidebarWorkspaceDropdownStrings = {\n\tlabel: 'Workspace',\n\tselect: 'Select workspace',\n};\n\nexport interface SidebarWorkspaceDropdownProps extends LayoutNavigationAdapter {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks: WorkspaceLink[];\n\tstrings?: StringsProp<SidebarWorkspaceDropdownStrings>;\n\tcontentClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type SidebarFooterNavigationItem = SidebarFlatNavItem;\n\nexport interface SidebarNavigationFooterProps extends LayoutNavigationAdapter {\n\titems: SidebarFooterNavigationItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** SidebarWorkspaceDropdown — workspace selector using consumer link rendering. */\nimport { ChevronsUpDown, ExternalLink } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultSidebarWorkspaceDropdownStrings,\n\ttype SidebarWorkspaceDropdownProps,\n} from '../sidebar.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport function SidebarWorkspaceDropdown({\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks,\n\trenderLink,\n\tLinkComponent,\n\tstrings: stringsProp,\n\tcontentClassName,\n}: SidebarWorkspaceDropdownProps) {\n\tconst strings = useStrings(defaultSidebarWorkspaceDropdownStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst visibleLogo = isCollapsed ? (collapsedLogo ?? logo) : logo;\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\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\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t{visibleLogo}\n\t\t\t\t\t\t\t{!isCollapsed && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"sr-only\">\n\t\t\t\t\t\t\t\t\t{strings.select}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{!isCollapsed && <ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t<DropdownMenuContent className={cn('min-w-56', contentClassName)} align=\"start\" side=\"right\" sideOffset={8}>\n\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t<DropdownMenuLabel>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\">{strings.label}</Text>\n\t\t\t\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t\t{workspaceLinks.map((link) => {\n\t\t\t\t\t\t\t\tconst Icon = link.icon ?? ExternalLink;\n\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<Icon className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{link.label}</Text>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={link.url}\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t\t\thref: link.url,\n\t\t\t\t\t\t\t\t\t\t\t\texternal: link.external ?? true,\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: null,\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: 'flex items-center gap-2',\n\t\t\t\t\t\t\t\t\t\t\t}) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n","/**\n * AppSidebar — opinionated assembly of logo/header, grouped navigation, and\n * footer links. Consumers still own framework routing through `renderLink`.\n */\nimport * as React from 'react';\n\nimport { ScrollArea } from '@/components/base/display/scroll-area';\nimport { Skeleton } from '@/components/base/display/skeleton';\nimport {\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarHeader,\n\tSidebarMenu,\n\tSidebarMenuItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { SidebarGroupedNavigation } from './components/sidebar-grouped-navigation';\nimport { SidebarLogo } from './components/sidebar-logo';\nimport { SidebarNavigationFooter } from './components/sidebar-navigation-footer';\nimport { SidebarWorkspaceDropdown } from './components/sidebar-workspace-dropdown';\nimport { Sidebar } from './sidebar';\nimport type { AppSidebarProps } from './sidebar.types';\n\nexport function AppSidebar({\n\tnavigationGroups,\n\tfooterNavItems = [],\n\tfooterLabel,\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks = [],\n\tworkspaceStrings,\n\tworkspaceContentClassName,\n\theaderClassName,\n\tlogoClassName,\n\ticonMap,\n\tcurrentUrl = '/',\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tloading,\n\tcollapsible = 'icon',\n\tvariant = 'sidebar',\n\tside = 'left',\n\tclassName,\n\tsurfaceClassName,\n\tcontentClassName,\n\tslots,\n\trenderItem,\n}: AppSidebarProps) {\n\tconst hasFooter = footerNavItems.length > 0 || !!slots?.footer;\n\tconst isLoading = loading || !navigationGroups;\n\tconst hasWorkspaceLinks = workspaceLinks.length > 0;\n\n\treturn (\n\t\t<Sidebar collapsible={collapsible} variant={variant} side={side} className={cn('h-svh', className)} surfaceClassName={surfaceClassName}>\n\t\t\t{slots?.header ?? (!!logo && (\n\t\t\t\t<SidebarHeader className={headerClassName}>\n\t\t\t\t\t{hasWorkspaceLinks ? (\n\t\t\t\t\t\t<SidebarWorkspaceDropdown\n\t\t\t\t\t\t\tlogo={logo}\n\t\t\t\t\t\t\tcollapsedLogo={collapsedLogo}\n\t\t\t\t\t\t\tworkspaceLinks={workspaceLinks}\n\t\t\t\t\t\t\tstrings={workspaceStrings}\n\t\t\t\t\t\t\tcontentClassName={workspaceContentClassName}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarLogo logo={logo} collapsedLogo={collapsedLogo} className={logoClassName} />\n\t\t\t\t\t)}\n\t\t\t\t</SidebarHeader>\n\t\t\t))}\n\n\t\t\t<SidebarContent className={contentClassName}>\n\t\t\t\t<ScrollArea className=\"h-full pr-1.5 pt-4\">\n\t\t\t\t\t{slots?.beforeNavigation}\n\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\tslots?.loading ?? <AppSidebarSkeleton />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarGroupedNavigation\n\t\t\t\t\t\t\tnavigationByGroups={navigationGroups}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t\temptySlot={slots?.empty}\n\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{slots?.afterNavigation}\n\t\t\t\t</ScrollArea>\n\t\t\t</SidebarContent>\n\n\t\t\t{hasFooter && (\n\t\t\t\t<SidebarFooter>\n\t\t\t\t\t{slots?.footer ?? (\n\t\t\t\t\t\t<SidebarNavigationFooter\n\t\t\t\t\t\t\titems={footerNavItems}\n\t\t\t\t\t\t\tlabel={footerLabel}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</SidebarFooter>\n\t\t\t)}\n\t\t</Sidebar>\n\t);\n}\n\nfunction AppSidebarSkeleton() {\n\tconst groups = [9, 3, 4, 2, 1];\n\n\treturn (\n\t\t<>\n\t\t\t{groups.map((count, groupIdx) => (\n\t\t\t\t<React.Fragment key={groupIdx}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{Array.from({ length: count }, (_, i) => (\n\t\t\t\t\t\t\t\t<SidebarMenuItem key={i}>\n\t\t\t\t\t\t\t\t\t<div className=\"flex h-8 items-center gap-2 px-2\">\n\t\t\t\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-4 shrink-0 rounded\" />\n\t\t\t\t\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"h-3.5 rounded\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ width: `${60 + ((groupIdx * 7 + i * 13) % 40)}px` }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIdx < groups.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</>\n\t);\n}\n","/** SidebarNavigation — flat, framework-neutral sidebar nav list. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarFlatNavigationProps, SidebarFlatNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport { DynamicIcon } from '../sidebar.utils';\nexport { DynamicIcon as Icon } from '../sidebar.utils';\n\nfunction NavLabel({ item }: { item: SidebarFlatNavItem }) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" weight=\"medium\" className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarNavigation({\n\titems,\n\tlabel = 'Platform',\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\trenderItem,\n\tclassName,\n}: SidebarFlatNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('px-2 py-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\tconst context: SidebarRenderItemContext = {\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tactive,\n\t\t\t\t\t\texpanded: false,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\trenderLink: resolvedRenderLink,\n\t\t\t\t\t};\n\t\t\t\t\tconst labelNode = getNavLabel(item);\n\n\t\t\t\t\tif (renderItem) {\n\t\t\t\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst content = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t<NavLabel item={item} />\n\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-foreground',\n\t\t\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</SidebarMenu>\n\t\t</SidebarGroup>\n\t);\n}\n\n/** @deprecated Use `SidebarFlatNavItem` from `sidebar.types`. */\nexport type SidebarNavigationItem = SidebarFlatNavItem;\n"," \n/** SidebarNavigationUser — user profile dropdown for sidebar footer. */\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { Text } from '@/components/typography';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings, type StringsProp } from '@/lib/strings';\n\nimport type { LayoutUser } from '../../layout.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarNavigationUserStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultSidebarNavigationUserStrings: SidebarNavigationUserStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface SidebarNavigationUserProps {\n\tuser: LayoutUser;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\tstrings?: StringsProp<SidebarNavigationUserStrings>;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function SidebarNavigationUser({\n\tuser,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\tstrings: stringsProp,\n\trenderTrigger,\n}: SidebarNavigationUserProps) {\n\tconst strings = useStrings(defaultSidebarNavigationUserStrings, stringsProp);\n\tconst { state, isMobile } = useSidebar();\n\tconst dropdownSide = isMobile || state !== 'collapsed' ? 'bottom' : 'right';\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent\"\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\t\t{renderTrigger?.(user) ?? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<Avatar className=\"size-avatar rounded-full\">\n\t\t\t\t\t\t\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t\t\t\t\t\t\t<AvatarFallback className=\"bg-sidebar-accent text-xs text-sidebar-accent-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-1 flex-col items-start justify-center overflow-hidden\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"w-full truncate\">{user.name}</Text>\n\t\t\t\t\t\t\t\t\t\t{!!user.email && <Text size=\"xs\" type=\"secondary\" className=\"w-full truncate\">{user.email}</Text>}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuTrigger>\n\n\t\t\t\t\t<DropdownMenuContent\n\t\t\t\t\t\tclassName=\"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg\"\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tside={dropdownSide}\n\t\t\t\t\t\tsideOffset={4}\n\t\t\t\t\t>\n\t\t\t\t\t\t{customContent ?? defaultContent}\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n\n/** @deprecated — use `LayoutUser` from `layout.types`. */\nexport type SidebarUserData = LayoutUser;\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("../lib/utils.cjs"),r=require("./tooltip-mvxZV_Lu.cjs"),i=require("./typography-CO9uwZhF.cjs"),a=require("./dropdown-menu-CHQzQWUK.cjs"),o=require("./scroll-area-CIRXK7s0.cjs"),s=require("./avatar-BnKM_o2d.cjs"),c=require("./skeleton-D1c5OHXa.cjs"),l=require("./sheet-BOgUA4fC.cjs"),u=require("./sidebar-Cwhom9QE.cjs"),d=require("./hooks-CjVzmgvY.cjs");let f=require("react");f=e.t(f,1);let p=require("react/jsx-runtime"),m=require("lucide-react"),h=require("class-variance-authority");var g=u.w;function _({defaultOpen:e=!0,open:t,onOpenChange:i,className:a,style:o,children:s,...c}){return(0,p.jsx)(r.r,{delayDuration:0,children:(0,p.jsx)(u.b,{defaultOpen:e,open:t,onOpenChange:i,style:o,className:n.cn(`min-h-svh`,a),...c,children:s})})}var v=`18rem`;(0,h.cva)(`peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});var y={mobileTitle:`Sidebar`,mobileDescription:`Displays the mobile sidebar.`};function b({side:e=`left`,variant:r=`sidebar`,collapsible:i=`offcanvas`,className:a,surfaceClassName:o,children:s,strings:c,...u}){let{isMobile:d,state:f,openMobile:m,setOpenMobile:h}=g(),_=t.useStrings(y,c);return i===`none`?(0,p.jsx)(`div`,{"data-slot":`sidebar`,className:n.cn(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,o,a),...u,children:s}):d?(0,p.jsx)(l.t,{open:m,onOpenChange:h,...u,children:(0,p.jsxs)(l.r,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:n.cn(`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,o),style:{"--sidebar-width":v},side:e,children:[(0,p.jsxs)(l.o,{className:`sr-only`,children:[(0,p.jsx)(l.s,{children:_.mobileTitle}),(0,p.jsx)(l.i,{children:_.mobileDescription})]}),(0,p.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:s})]})}):(0,p.jsx)(`div`,{className:`group peer sticky top-0 hidden h-full text-sidebar-foreground md:block`,"data-state":f,"data-collapsible":f===`collapsed`?i:``,"data-variant":r,"data-side":e,"data-slot":`sidebar`,children:(0,p.jsx)(`div`,{className:n.cn(`inset-y-0 z-10 hidden h-full w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,r===`floating`||r===`inset`?`px-2 py-3 group-data-[collapsible=icon]:w-17`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,a),...u,children:(0,p.jsx)(`div`,{"data-sidebar":`sidebar`,className:n.cn(`sidebar flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm`,o),children:s})})})}function x({item:e,active:t=!1}){let n=d.o(e);return(0,p.jsx)(i.s,{tag:`span`,weight:t?`bold`:`medium`,className:`truncate text-inherit`,children:n})}function S({navigationByGroups:e,currentUrl:t=`/`,iconMap:r={},liveBadges:a,renderLink:o,LinkComponent:s,emptySlot:c,renderItem:l,className:m}){let h=d.d({renderLink:o,LinkComponent:s}),g=e=>!!e&&d.s(t,d.u(e)),_=e=>{let n=-1,r=-1;for(let i=0;i<e.length;i+=1){let a=e[i],o=a?.href?d.u(a.href):``;o&&d.s(t,o)&&o.length>r&&(r=o.length,n=i)}return n},v=e=>!!e?.some(e=>g(e.href)||v(e.children)),y=(e,t=0,o=0)=>{let s=!!e.children?.length,c=g(e.href),m=s?v(e.children):!1,y=c||m,b=d.l(e.handle,e.badge,a),S=d.o(e),C={depth:t,active:c,expanded:y,badge:b,renderLink:h};if(l)return(0,p.jsx)(f.Fragment,{children:l(e,C)},d.a(e,o));if(s){let t=_(e.children??[]),s=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:r,className:`size-4`,"aria-hidden":`true`}),(0,p.jsx)(x,{item:e,active:y}),!!b&&(0,p.jsx)(d.i,{value:b})]});return(0,p.jsxs)(u.g,{children:[(0,p.jsx)(u.t,{isActive:y,render:e.href&&!e.disabled?d.c(h,e,s,void 0,y):void 0,tooltip:{children:S},disabled:e.disabled,className:n.cn(`h-8 font-medium`,y&&`font-bold data-active:font-bold data-[active=true]:font-bold`,c&&`bg-sidebar-accent text-sidebar-foreground`,!c&&m&&`bg-sidebar-accent/60 text-sidebar-foreground`,e.disabled&&`cursor-not-allowed opacity-50`),children:s}),!!y&&(0,p.jsx)(u.v,{className:`gap-0.5`,children:e.children?.map((e,r)=>{let o=r===t||g(e.href),s=d.l(e.handle,e.badge,a),c=d.o(e),l=(0,p.jsxs)(p.Fragment,{children:[typeof c==`string`||typeof c==`number`?(0,p.jsx)(i.s,{tag:`span`,weight:o?`semibold`:`regular`,className:`min-w-0 flex-1 truncate text-inherit`,children:c}):c,!!s&&(0,p.jsx)(d.i,{value:s,size:`small`})]});return(0,p.jsx)(u.y,{children:(0,p.jsx)(u.n,{isActive:o,render:e.href&&!e.disabled?d.c(h,e,l,void 0,o):void 0,className:n.cn(`w-full`,o&&`bg-transparent font-semibold text-primary hover:text-primary active:text-primary data-active:text-primary data-[active=true]:text-primary`),children:l})},d.a(e,r))})})]},d.a(e,o))}let w=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:r,className:`size-4`,"aria-hidden":`true`}),(0,p.jsx)(x,{item:e,active:c}),!!b&&(0,p.jsx)(d.i,{value:b})]});return(0,p.jsx)(u.g,{children:(0,p.jsx)(u.t,{isActive:c,render:e.href&&!e.disabled?d.c(h,e,w,void 0,c):void 0,tooltip:{children:S},disabled:e.disabled,className:n.cn(`h-8 font-medium`,c&&`font-bold data-active:font-bold data-[active=true]:font-bold`,c&&`bg-sidebar-accent text-sidebar-foreground`,e.disabled&&`cursor-not-allowed opacity-50`),children:w})},d.a(e,o))},b=Object.entries(e).filter(([,e])=>e.length>0);return b.length===0?c??null:(0,p.jsx)(`div`,{className:m,children:b.map(([e,t],n)=>(0,p.jsxs)(f.Fragment,{children:[(0,p.jsxs)(u.o,{className:`px-2 py-0`,children:[!e.startsWith(`_`)&&(0,p.jsx)(u.l,{children:e}),(0,p.jsx)(u.p,{className:`gap-0.5`,children:t.map((e,t)=>y(e,0,t))})]}),n<b.length-1&&(0,p.jsx)(u.S,{className:`!mx-auto !my-1.5 !w-11/12 overflow-hidden px-4`})]},e))})}function C({logo:e,collapsedLogo:t=null,className:r}){let{state:i}=g(),a=i===`collapsed`?t:e;return a?(0,p.jsx)(`div`,{className:n.cn(`min-w-0`,r),children:a}):null}function w({items:e,label:t,currentUrl:r=`/`,iconMap:a={},liveBadges:o,renderLink:s,LinkComponent:c,className:l}){let f=d.d({renderLink:s,LinkComponent:c});return(0,p.jsxs)(u.o,{className:n.cn(`group-data-[collapsible=icon]:p-0`,l),children:[!!t&&(0,p.jsx)(u.l,{children:t}),(0,p.jsx)(u.c,{children:(0,p.jsx)(u.p,{className:`gap-0.5`,children:e.map((e,t)=>{let s=!!e.href&&d.s(r,d.u(e.href)),c=d.l(e.handle,e.badge,o),l=d.o(e),h=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:a,className:`size-4`,"aria-hidden":`true`}),typeof l==`string`||typeof l==`number`?(0,p.jsx)(i.s,{tag:`span`,className:`truncate text-inherit`,children:l}):l,!!c&&(0,p.jsx)(d.i,{value:c}),!!e.external&&(0,p.jsx)(m.ExternalLink,{className:`ml-auto size-3 opacity-50`,"aria-hidden":`true`})]});return(0,p.jsx)(u.g,{children:(0,p.jsx)(u.t,{isActive:s,render:e.href&&!e.disabled?d.c(f,e,h,void 0,s):void 0,className:n.cn(`h-8 font-medium text-sidebar-foreground/70 hover:text-sidebar-accent-foreground`,s&&`bg-sidebar-accent text-sidebar-accent-foreground`),tooltip:{children:l},disabled:e.disabled,children:h})},d.a(e,t))})})})]})}var T={label:`Workspace`,select:`Select workspace`};function E({logo:e,collapsedLogo:r,workspaceLinks:o,renderLink:s,LinkComponent:c,strings:l,contentClassName:f}){let h=t.useStrings(T,l),_=d.d({renderLink:s,LinkComponent:c}),{state:v}=g(),y=v===`collapsed`;return(0,p.jsx)(u.p,{children:(0,p.jsx)(u.g,{children:(0,p.jsxs)(a.t,{children:[(0,p.jsxs)(a.g,{render:(0,p.jsx)(u.t,{size:`lg`,className:`data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground`}),children:[(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[y?r??e:e,!y&&(0,p.jsx)(i.s,{tag:`span`,size:`xs`,className:`sr-only`,children:h.select})]}),!y&&(0,p.jsx)(m.ChevronsUpDown,{className:`ml-auto size-4 shrink-0`,"aria-hidden":`true`})]}),(0,p.jsx)(a.r,{className:n.cn(`min-w-56`,f),align:`start`,side:`right`,sideOffset:8,children:(0,p.jsxs)(a.i,{children:[(0,p.jsx)(a.o,{children:(0,p.jsx)(i.s,{weight:`semibold`,children:h.label})}),(0,p.jsx)(a.d,{}),o.map(e=>{let t=(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(e.icon??m.ExternalLink,{className:`size-4 shrink-0`,"aria-hidden":`true`}),(0,p.jsx)(i.s,{tag:`span`,size:`xs`,className:`text-inherit`,children:e.label})]});return(0,p.jsx)(a.a,{render:_({href:e.url,external:e.external??!0,children:null,className:`flex items-center gap-2`}),children:t},e.url)})]})})]})})})}function D({navigationGroups:e,footerNavItems:t=[],footerLabel:r,logo:i,collapsedLogo:a,workspaceLinks:s=[],workspaceStrings:c,workspaceContentClassName:l,headerClassName:d,logoClassName:f,iconMap:m,currentUrl:h=`/`,liveBadges:g,renderLink:_,LinkComponent:v,loading:y,collapsible:x=`icon`,variant:T=`sidebar`,side:D=`left`,className:k,surfaceClassName:A,contentClassName:j,slots:M,renderItem:N}){let P=t.length>0||!!M?.footer,F=y||!e,I=s.length>0;return(0,p.jsxs)(b,{collapsible:x,variant:T,side:D,className:n.cn(`h-svh`,k),surfaceClassName:A,children:[M?.header??(!!i&&(0,p.jsx)(u.u,{className:d,children:I?(0,p.jsx)(E,{logo:i,collapsedLogo:a,workspaceLinks:s,strings:c,contentClassName:l,renderLink:_,LinkComponent:v}):(0,p.jsx)(C,{logo:i,collapsedLogo:a,className:f})})),(0,p.jsx)(u.i,{className:j,children:(0,p.jsxs)(o.t,{className:`h-full pr-1.5 pt-4`,children:[M?.beforeNavigation,F?M?.loading??(0,p.jsx)(O,{}):(0,p.jsx)(S,{navigationByGroups:e,currentUrl:h,iconMap:m,liveBadges:g,renderLink:_,LinkComponent:v,emptySlot:M?.empty,renderItem:N}),M?.afterNavigation]})}),P&&(0,p.jsx)(u.a,{children:M?.footer??(0,p.jsx)(w,{items:t,label:r,currentUrl:h,iconMap:m,liveBadges:g,renderLink:_,LinkComponent:v})})]})}function O(){let e=[9,3,4,2,1];return(0,p.jsx)(p.Fragment,{children:e.map((t,n)=>(0,p.jsxs)(f.Fragment,{children:[(0,p.jsx)(u.o,{className:`px-2 py-0`,children:(0,p.jsx)(u.p,{className:`gap-0.5`,children:Array.from({length:t},(e,t)=>(0,p.jsx)(u.g,{children:(0,p.jsxs)(`div`,{className:`flex h-8 items-center gap-2 px-2`,children:[(0,p.jsx)(c.t,{className:`h-4 w-4 shrink-0 rounded`}),(0,p.jsx)(c.t,{className:`h-3.5 rounded`,style:{width:`${60+(n*7+t*13)%40}px`}})]})},t))})}),n<e.length-1&&(0,p.jsx)(u.S,{className:`!mx-auto !my-1 !w-11/12 overflow-hidden px-4`})]},n))})}function k({item:e}){return(0,p.jsx)(i.s,{tag:`span`,weight:`medium`,className:`truncate text-inherit`,children:d.o(e)})}function A({items:e,label:t=`Platform`,currentUrl:r=`/`,iconMap:i={},liveBadges:a,renderLink:o,LinkComponent:s,renderItem:c,className:l}){let m=d.d({renderLink:o,LinkComponent:s});return(0,p.jsxs)(u.o,{className:n.cn(`px-2 py-0`,l),children:[!!t&&(0,p.jsx)(u.l,{children:t}),(0,p.jsx)(u.p,{className:`gap-0.5`,children:e.map((e,t)=>{let o=!!e.href&&d.s(r,d.u(e.href)),s=d.l(e.handle,e.badge,a),l={depth:0,active:o,expanded:!1,badge:s,renderLink:m},h=d.o(e);if(c)return(0,p.jsx)(f.Fragment,{children:c(e,l)},d.a(e,t));let g=(0,p.jsxs)(p.Fragment,{children:[!!e.icon&&(0,p.jsx)(d.r,{icon:e.icon,iconMap:i,className:`size-4`,"aria-hidden":`true`}),(0,p.jsx)(k,{item:e}),!!s&&(0,p.jsx)(d.i,{value:s})]});return(0,p.jsx)(u.g,{children:(0,p.jsx)(u.t,{isActive:o,render:e.href&&!e.disabled?d.c(m,e,g,void 0,o):void 0,tooltip:{children:h},disabled:e.disabled,className:n.cn(`h-8 font-medium`,o&&`bg-sidebar-accent text-sidebar-foreground`,e.disabled&&`cursor-not-allowed opacity-50`),children:g})},d.a(e,t))})})]})}var j={profile:`Profile`,settings:`Settings`,logout:`Log out`};function M(e){return e.split(` `).map(e=>e[0]).filter(Boolean).slice(0,2).join(``).toUpperCase()}function N({user:e,customContent:n,onProfile:r,onSettings:o,onLogout:c,strings:l,renderTrigger:d}){let f=t.useStrings(j,l),{state:h,isMobile:_}=g(),v=_||h!==`collapsed`?`bottom`:`right`,y=M(e.name),b=(0,p.jsxs)(p.Fragment,{children:[!!r&&(0,p.jsxs)(a.a,{onClick:r,children:[(0,p.jsx)(m.User,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(i.s,{tag:`span`,size:`xs`,className:`text-inherit`,children:f.profile})]}),!!o&&(0,p.jsxs)(a.a,{onClick:o,children:[(0,p.jsx)(m.Settings,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(i.s,{tag:`span`,size:`xs`,className:`text-inherit`,children:f.settings})]}),!!(r||o)&&!!c&&(0,p.jsx)(a.d,{}),!!c&&(0,p.jsxs)(a.a,{onClick:c,children:[(0,p.jsx)(m.LogOut,{className:`mr-2 size-4`,"aria-hidden":`true`}),(0,p.jsx)(i.s,{tag:`span`,size:`xs`,className:`text-inherit`,children:f.logout})]})]});return(0,p.jsx)(u.p,{children:(0,p.jsx)(u.g,{children:(0,p.jsxs)(a.t,{children:[(0,p.jsx)(a.g,{render:(0,p.jsx)(u.t,{size:`lg`,className:`group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent`}),children:d?.(e)??(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,p.jsxs)(s.t,{className:`size-avatar rounded-full`,children:[!!e.avatar&&(0,p.jsx)(s.o,{src:e.avatar,alt:e.name}),(0,p.jsx)(s.r,{className:`bg-sidebar-accent text-xs text-sidebar-accent-foreground`,children:y})]}),(0,p.jsxs)(`div`,{className:`flex flex-1 flex-col items-start justify-center overflow-hidden`,children:[(0,p.jsx)(i.s,{weight:`medium`,className:`w-full truncate`,children:e.name}),!!e.email&&(0,p.jsx)(i.s,{size:`xs`,type:`secondary`,className:`w-full truncate`,children:e.email})]})]}),(0,p.jsx)(m.ChevronsUpDown,{className:`ml-auto size-4 shrink-0`,"aria-hidden":`true`})]})}),(0,p.jsx)(a.r,{className:`w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg`,align:`end`,side:v,sideOffset:4,children:n??b})]})})})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return b}});
2
+ //# sourceMappingURL=sidebar-DcsxeNml.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-DcsxeNml.cjs","names":[],"sources":["../../src/components/layout/sidebar/sidebar.context.tsx","../../src/components/layout/sidebar/sidebar.settings.ts","../../src/components/layout/sidebar/sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-grouped-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-logo.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-footer.tsx","../../src/components/layout/sidebar/sidebar.types.ts","../../src/components/layout/sidebar/components/sidebar-workspace-dropdown.tsx","../../src/components/layout/sidebar/app-sidebar.tsx","../../src/components/layout/sidebar/components/sidebar-navigation.tsx","../../src/components/layout/sidebar/components/sidebar-navigation-user.tsx"],"sourcesContent":[" \n/** SidebarProvider — layout-scoped wrapper around the shadcn sidebar context. */\nimport * as React from 'react';\n\nimport { TooltipProvider } from '@/components/base/display/tooltip';\nimport {\n\tSidebarProvider as PrimitiveSidebarProvider,\n\tuseSidebar as primitiveUseSidebar,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nexport const useSidebar = primitiveUseSidebar;\nexport type SidebarContext = ReturnType<typeof primitiveUseSidebar>;\n\nexport type SidebarProviderProps = React.ComponentProps<'div'> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n};\n\nexport function SidebarProvider({\n\tdefaultOpen = true,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: SidebarProviderProps) {\n\treturn (\n\t\t<TooltipProvider delayDuration={0}>\n\t\t\t<PrimitiveSidebarProvider\n\t\t\t\tdefaultOpen={defaultOpen}\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={onOpenChange}\n\t\t\t\tstyle={style}\n\t\t\t\tclassName={cn('min-h-svh', className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</PrimitiveSidebarProvider>\n\t\t</TooltipProvider>\n\t);\n}\n","import { cva } from \"class-variance-authority\"\n\nexport const SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nexport const SIDEBAR_WIDTH = \"16rem\"\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\"\nexport const SIDEBAR_WIDTH_ICON = \"3rem\"\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\nexport const sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n"," \n/** Sidebar — responsive shell around the shadcn sidebar primitive pieces. */\nimport * as React from 'react';\n\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from '@/components/base/sheet';\nimport { useStrings, type StringsProp } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from './sidebar.context';\nimport { SIDEBAR_WIDTH_MOBILE } from './sidebar.settings';\n\nexport interface SidebarStrings {\n\tmobileTitle: string;\n\tmobileDescription: string;\n}\n\nexport const defaultSidebarStrings: SidebarStrings = {\n\tmobileTitle: 'Sidebar',\n\tmobileDescription: 'Displays the mobile sidebar.',\n};\n\nexport type SidebarProps = React.ComponentProps<'div'> & {\n\tside?: 'left' | 'right';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tstrings?: StringsProp<SidebarStrings>;\n\tsurfaceClassName?: string;\n};\n\nexport function Sidebar({\n\tside = 'left',\n\tvariant = 'sidebar',\n\tcollapsible = 'offcanvas',\n\tclassName,\n\tsurfaceClassName,\n\tchildren,\n\tstrings: stringsProp,\n\t...props\n}: SidebarProps) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\tconst strings = useStrings(defaultSidebarStrings, stringsProp);\n\n\tif (collapsible === 'none') {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', surfaceClassName, className)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName={cn('w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden', surfaceClassName)}\n\t\t\t\t\tstyle={{ '--sidebar-width': SIDEBAR_WIDTH_MOBILE } as React.CSSProperties}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>{strings.mobileTitle}</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>{strings.mobileDescription}</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer sticky top-0 hidden h-full text-sidebar-foreground md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === 'collapsed' ? collapsible : ''}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'inset-y-0 z-10 hidden h-full w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n\t\t\t\t\tside === 'left'\n\t\t\t\t\t\t? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n\t\t\t\t\t\t: 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n\t\t\t\t\tvariant === 'floating' || variant === 'inset'\n\t\t\t\t\t\t? 'px-2 py-3 group-data-[collapsible=icon]:w-17'\n\t\t\t\t\t\t: '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\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'sidebar flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm',\n\t\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","/** SidebarGroupedNavigation — grouped tree navigation with composable rows. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarGroupedNavigationProps, SidebarNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nfunction NavLabel({\n\titem,\n\tactive = false,\n}: {\n\titem: SidebarNavItem;\n\tactive?: boolean;\n}) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" weight={active ? 'bold' : 'medium'} className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarGroupedNavigation({\n\tnavigationByGroups,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\temptySlot,\n\trenderItem,\n\tclassName,\n}: SidebarGroupedNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst isActive = (href?: string): boolean => !!href && isPathMatch(currentUrl, toPath(href));\n\n\tconst bestMatchIndex = (siblings: SidebarNavItem[]): number => {\n\t\tlet bestIdx = -1;\n\t\tlet bestLen = -1;\n\t\tfor (let i = 0; i < siblings.length; i += 1) {\n\t\t\tconst sibling = siblings[i];\n\t\t\tconst path = sibling?.href ? toPath(sibling.href) : '';\n\t\t\tif (path && isPathMatch(currentUrl, path) && path.length > bestLen) {\n\t\t\t\tbestLen = path.length;\n\t\t\t\tbestIdx = i;\n\t\t\t}\n\t\t}\n\t\treturn bestIdx;\n\t};\n\n\tconst hasActiveChild = (children?: SidebarNavItem[]): boolean =>\n\t\t!!children?.some((child) => isActive(child.href) || hasActiveChild(child.children));\n\n\tconst renderDefaultItem = (item: SidebarNavItem, depth = 0, index = 0): React.ReactNode => {\n\t\tconst hasChildren = !!item.children?.length;\n\t\tconst itemActive = isActive(item.href);\n\t\tconst childActive = hasChildren ? hasActiveChild(item.children) : false;\n\t\tconst expanded = itemActive || childActive;\n\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\tconst label = getNavLabel(item);\n\t\tconst context: SidebarRenderItemContext = {\n\t\t\tdepth,\n\t\t\tactive: itemActive,\n\t\t\texpanded,\n\t\t\tbadge,\n\t\t\trenderLink: resolvedRenderLink,\n\t\t};\n\n\t\tif (renderItem) {\n\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t}\n\n\t\tif (hasChildren) {\n\t\t\tconst activeChildIdx = bestMatchIndex(item.children ?? []);\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t<NavLabel item={item} active={expanded} />\n\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t</>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\tisActive={expanded}\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, expanded) as React.ReactElement\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttooltip={{ children: label }}\n\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\texpanded && 'font-bold data-active:font-bold data-[active=true]:font-bold',\n\t\t\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-foreground',\n\t\t\t\t\t\t\t!itemActive && childActive && 'bg-sidebar-accent/60 text-sidebar-foreground',\n\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</SidebarMenuButton>\n\n\t\t\t\t\t{!!expanded && (\n\t\t\t\t\t\t<SidebarMenuSub className=\"gap-0.5\">\n\t\t\t\t\t\t\t{item.children?.map((child, childIndex) => {\n\t\t\t\t\t\t\t\tconst childActiveNow = childIndex === activeChildIdx || isActive(child.href);\n\t\t\t\t\t\t\t\tconst childBadge = resolveNavBadge(child.handle, child.badge, liveBadges);\n\t\t\t\t\t\t\t\tconst childLabel = getNavLabel(child);\n\t\t\t\t\t\t\t\tconst childContent = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{typeof childLabel === 'string' || typeof childLabel === 'number' ? (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tweight={childActiveNow ? 'semibold' : 'regular'}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"min-w-0 flex-1 truncate text-inherit\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{childLabel}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t) : childLabel}\n\t\t\t\t\t\t\t\t\t\t{!!childBadge && <NavBadge value={childBadge} size=\"small\" />}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SidebarMenuSubItem key={getNavKey(child, childIndex)}>\n\t\t\t\t\t\t\t\t\t\t<SidebarMenuSubButton\n\t\t\t\t\t\t\t\t\t\t\tisActive={childActiveNow}\n\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\tchild.href && !child.disabled\n\t\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, child, childContent, undefined, childActiveNow) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'w-full',\n\t\t\t\t\t\t\t\t\t\t\t\tchildActiveNow && 'bg-transparent font-semibold text-primary hover:text-primary active:text-primary data-active:text-primary data-[active=true]:text-primary',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{childContent}\n\t\t\t\t\t\t\t\t\t\t</SidebarMenuSubButton>\n\t\t\t\t\t\t\t\t\t</SidebarMenuSubItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</SidebarMenuSub>\n\t\t\t\t\t)}\n\t\t\t</SidebarMenuItem>\n\t\t);\n\t}\n\n\tconst content = (\n\t\t<>\n\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t<NavLabel item={item} active={itemActive} />\n\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t<SidebarMenuButton\n\t\t\t\tisActive={itemActive}\n\t\t\t\trender={\n\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, itemActive) as React.ReactElement\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\ttooltip={{ children: label }}\n\t\t\t\tdisabled={item.disabled}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\titemActive && 'font-bold data-active:font-bold data-[active=true]:font-bold',\n\t\t\t\t\titemActive && 'bg-sidebar-accent text-sidebar-foreground',\n\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</SidebarMenuButton>\n\t\t</SidebarMenuItem>\n\t);\n\t};\n\n\tconst groupEntries = Object.entries(navigationByGroups).filter(([, items]) => items.length > 0);\n\tif (groupEntries.length === 0) return emptySlot ?? null;\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{groupEntries.map(([groupName, items], groupIndex) => (\n\t\t\t\t<React.Fragment key={groupName}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t{!groupName.startsWith('_') && <SidebarGroupLabel>{groupName}</SidebarGroupLabel>}\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{items.map((item, index) => renderDefaultItem(item, 0, index))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIndex < groupEntries.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1.5 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n","/** SidebarLogo — hides its logo content when the sidebar is icon-collapsed. */\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarLogoProps {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tclassName?: string;\n}\n\nexport function SidebarLogo({ logo, collapsedLogo = null, className }: SidebarLogoProps) {\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst content = isCollapsed ? collapsedLogo : logo;\n\tif (!content) return null;\n\treturn <div className={cn('min-w-0', className)}>{content}</div>;\n}\n","/** SidebarNavigationFooter — secondary footer navigation using renderLink. */\nimport { ExternalLink } from 'lucide-react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarNavigationFooterProps } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport function SidebarNavigationFooter({\n\titems,\n\tlabel,\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n}: SidebarNavigationFooterProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('group-data-[collapsible=icon]:p-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarGroupContent>\n\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\t\tconst labelNode = getNavLabel(item);\n\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t{typeof labelNode === 'string' || typeof labelNode === 'number' ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" className=\"truncate text-inherit\">{labelNode}</Text>\n\t\t\t\t\t\t\t\t) : labelNode}\n\t\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t\t\t{!!item.external && <ExternalLink className=\"ml-auto size-3 opacity-50\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'h-8 font-medium text-sidebar-foreground/70 hover:text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-accent-foreground',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</SidebarMenu>\n\t\t\t</SidebarGroupContent>\n\t\t</SidebarGroup>\n\t);\n}\n","/**\n * Sidebar types — framework-neutral navigation tree, render contexts, slots,\n * strings, and composition props.\n */\nimport type { ComponentType, ReactNode } from 'react';\n\nimport type {\n\tLayoutIconSource,\n\tLayoutLinkRenderer,\n\tLayoutNavigationAdapter,\n\tLinkComponent,\n} from '../layout.types';\nimport type { StringsProp } from '@/lib/strings';\n\nexport interface SidebarNavItem {\n\t/** New preferred label. */\n\tlabel?: ReactNode;\n\t/** Back-compat label used by older call sites. */\n\ttitle?: ReactNode;\n\thref?: string;\n\thandle?: string;\n\ticon?: LayoutIconSource;\n\tdisabled?: boolean;\n\tbadge?: string | number;\n\tchildren?: SidebarNavItem[];\n\tgroup?: string;\n\texternal?: boolean;\n}\n\nexport type SidebarFlatNavItem = Omit<SidebarNavItem, 'children' | 'group'>;\n\nexport interface SidebarRenderItemContext {\n\tdepth: number;\n\tactive: boolean;\n\texpanded: boolean;\n\tbadge?: string | number;\n\trenderLink: LayoutLinkRenderer;\n}\n\nexport interface SidebarSlots {\n\theader?: ReactNode;\n\tbeforeNavigation?: ReactNode;\n\tafterNavigation?: ReactNode;\n\tfooter?: ReactNode;\n\tempty?: ReactNode;\n\tloading?: ReactNode;\n}\n\nexport interface AppSidebarProps extends LayoutNavigationAdapter {\n\tnavigationGroups?: Record<string, SidebarNavItem[]>;\n\tfooterNavItems?: SidebarFlatNavItem[];\n\tfooterLabel?: ReactNode;\n\tlogo?: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks?: WorkspaceLink[];\n\tworkspaceStrings?: StringsProp<SidebarWorkspaceDropdownStrings>;\n\tworkspaceContentClassName?: string;\n\theaderClassName?: string;\n\tlogoClassName?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tcurrentUrl?: string;\n\tliveBadges?: Record<string, string | number>;\n\tloading?: boolean;\n\tcollapsible?: 'offcanvas' | 'icon' | 'none';\n\tvariant?: 'sidebar' | 'floating' | 'inset';\n\tside?: 'left' | 'right';\n\tclassName?: string;\n\tsurfaceClassName?: string;\n\tcontentClassName?: string;\n\tslots?: SidebarSlots;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarGroupedNavigationProps extends LayoutNavigationAdapter {\n\tnavigationByGroups: Record<string, SidebarNavItem[]>;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\temptySlot?: ReactNode;\n\trenderItem?: (item: SidebarNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface SidebarFlatNavigationProps extends LayoutNavigationAdapter {\n\titems: SidebarFlatNavItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\trenderItem?: (item: SidebarFlatNavItem, context: SidebarRenderItemContext) => ReactNode;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport interface WorkspaceLink {\n\tlabel: ReactNode;\n\turl: string;\n\ticon?: ComponentType<{ className?: string }>;\n\texternal?: boolean;\n}\n\nexport interface SidebarWorkspaceDropdownStrings {\n\tlabel: string;\n\tselect: string;\n}\n\nexport const defaultSidebarWorkspaceDropdownStrings: SidebarWorkspaceDropdownStrings = {\n\tlabel: 'Workspace',\n\tselect: 'Select workspace',\n};\n\nexport interface SidebarWorkspaceDropdownProps extends LayoutNavigationAdapter {\n\tlogo: ReactNode;\n\tcollapsedLogo?: ReactNode;\n\tworkspaceLinks: WorkspaceLink[];\n\tstrings?: StringsProp<SidebarWorkspaceDropdownStrings>;\n\tcontentClassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n\nexport type SidebarFooterNavigationItem = SidebarFlatNavItem;\n\nexport interface SidebarNavigationFooterProps extends LayoutNavigationAdapter {\n\titems: SidebarFooterNavigationItem[];\n\tlabel?: ReactNode;\n\tcurrentUrl?: string;\n\ticonMap?: Record<string, ComponentType<{ className?: string }>>;\n\tliveBadges?: Record<string, string | number>;\n\tclassName?: string;\n\t/** @deprecated Prefer `renderLink`. */\n\tLinkComponent?: LinkComponent;\n}\n","/** SidebarWorkspaceDropdown — workspace selector using consumer link rendering. */\nimport { ChevronsUpDown, ExternalLink } from 'lucide-react';\n\nimport { Text } from '@/components/typography';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuItem,\n\tDropdownMenuLabel,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport {\n\tdefaultSidebarWorkspaceDropdownStrings,\n\ttype SidebarWorkspaceDropdownProps,\n} from '../sidebar.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport function SidebarWorkspaceDropdown({\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks,\n\trenderLink,\n\tLinkComponent,\n\tstrings: stringsProp,\n\tcontentClassName,\n}: SidebarWorkspaceDropdownProps) {\n\tconst strings = useStrings(defaultSidebarWorkspaceDropdownStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\tconst { state } = useSidebar();\n\tconst isCollapsed = state === 'collapsed';\n\tconst visibleLogo = isCollapsed ? (collapsedLogo ?? logo) : logo;\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\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\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t{visibleLogo}\n\t\t\t\t\t\t\t{!isCollapsed && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"sr-only\">\n\t\t\t\t\t\t\t\t\t{strings.select}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{!isCollapsed && <ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />}\n\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t<DropdownMenuContent className={cn('min-w-56', contentClassName)} align=\"start\" side=\"right\" sideOffset={8}>\n\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t<DropdownMenuLabel>\n\t\t\t\t\t\t\t\t<Text weight=\"semibold\">{strings.label}</Text>\n\t\t\t\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t\t\t\t<DropdownMenuSeparator />\n\t\t\t\t\t\t\t{workspaceLinks.map((link) => {\n\t\t\t\t\t\t\t\tconst Icon = link.icon ?? ExternalLink;\n\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<Icon className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{link.label}</Text>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={link.url}\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\tresolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\t\t\thref: link.url,\n\t\t\t\t\t\t\t\t\t\t\t\texternal: link.external ?? true,\n\t\t\t\t\t\t\t\t\t\t\t\tchildren: null,\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: 'flex items-center gap-2',\n\t\t\t\t\t\t\t\t\t\t\t}) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n","/**\n * AppSidebar — opinionated assembly of logo/header, grouped navigation, and\n * footer links. Consumers still own framework routing through `renderLink`.\n */\nimport * as React from 'react';\n\nimport { ScrollArea } from '@/components/base/display/scroll-area';\nimport { Skeleton } from '@/components/base/display/skeleton';\nimport {\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarHeader,\n\tSidebarMenu,\n\tSidebarMenuItem,\n\tSidebarSeparator,\n} from '@/components/base/sidebar';\nimport { cn } from '@/lib/utils';\n\nimport { SidebarGroupedNavigation } from './components/sidebar-grouped-navigation';\nimport { SidebarLogo } from './components/sidebar-logo';\nimport { SidebarNavigationFooter } from './components/sidebar-navigation-footer';\nimport { SidebarWorkspaceDropdown } from './components/sidebar-workspace-dropdown';\nimport { Sidebar } from './sidebar';\nimport type { AppSidebarProps } from './sidebar.types';\n\nexport function AppSidebar({\n\tnavigationGroups,\n\tfooterNavItems = [],\n\tfooterLabel,\n\tlogo,\n\tcollapsedLogo,\n\tworkspaceLinks = [],\n\tworkspaceStrings,\n\tworkspaceContentClassName,\n\theaderClassName,\n\tlogoClassName,\n\ticonMap,\n\tcurrentUrl = '/',\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\tloading,\n\tcollapsible = 'icon',\n\tvariant = 'sidebar',\n\tside = 'left',\n\tclassName,\n\tsurfaceClassName,\n\tcontentClassName,\n\tslots,\n\trenderItem,\n}: AppSidebarProps) {\n\tconst hasFooter = footerNavItems.length > 0 || !!slots?.footer;\n\tconst isLoading = loading || !navigationGroups;\n\tconst hasWorkspaceLinks = workspaceLinks.length > 0;\n\n\treturn (\n\t\t<Sidebar collapsible={collapsible} variant={variant} side={side} className={cn('h-svh', className)} surfaceClassName={surfaceClassName}>\n\t\t\t{slots?.header ?? (!!logo && (\n\t\t\t\t<SidebarHeader className={headerClassName}>\n\t\t\t\t\t{hasWorkspaceLinks ? (\n\t\t\t\t\t\t<SidebarWorkspaceDropdown\n\t\t\t\t\t\t\tlogo={logo}\n\t\t\t\t\t\t\tcollapsedLogo={collapsedLogo}\n\t\t\t\t\t\t\tworkspaceLinks={workspaceLinks}\n\t\t\t\t\t\t\tstrings={workspaceStrings}\n\t\t\t\t\t\t\tcontentClassName={workspaceContentClassName}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarLogo logo={logo} collapsedLogo={collapsedLogo} className={logoClassName} />\n\t\t\t\t\t)}\n\t\t\t\t</SidebarHeader>\n\t\t\t))}\n\n\t\t\t<SidebarContent className={contentClassName}>\n\t\t\t\t<ScrollArea className=\"h-full pr-1.5 pt-4\">\n\t\t\t\t\t{slots?.beforeNavigation}\n\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\tslots?.loading ?? <AppSidebarSkeleton />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SidebarGroupedNavigation\n\t\t\t\t\t\t\tnavigationByGroups={navigationGroups}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t\temptySlot={slots?.empty}\n\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{slots?.afterNavigation}\n\t\t\t\t</ScrollArea>\n\t\t\t</SidebarContent>\n\n\t\t\t{hasFooter && (\n\t\t\t\t<SidebarFooter>\n\t\t\t\t\t{slots?.footer ?? (\n\t\t\t\t\t\t<SidebarNavigationFooter\n\t\t\t\t\t\t\titems={footerNavItems}\n\t\t\t\t\t\t\tlabel={footerLabel}\n\t\t\t\t\t\t\tcurrentUrl={currentUrl}\n\t\t\t\t\t\t\ticonMap={iconMap}\n\t\t\t\t\t\t\tliveBadges={liveBadges}\n\t\t\t\t\t\t\trenderLink={renderLink}\n\t\t\t\t\t\t\tLinkComponent={LinkComponent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</SidebarFooter>\n\t\t\t)}\n\t\t</Sidebar>\n\t);\n}\n\nfunction AppSidebarSkeleton() {\n\tconst groups = [9, 3, 4, 2, 1];\n\n\treturn (\n\t\t<>\n\t\t\t{groups.map((count, groupIdx) => (\n\t\t\t\t<React.Fragment key={groupIdx}>\n\t\t\t\t\t<SidebarGroup className=\"px-2 py-0\">\n\t\t\t\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t\t\t\t{Array.from({ length: count }, (_, i) => (\n\t\t\t\t\t\t\t\t<SidebarMenuItem key={i}>\n\t\t\t\t\t\t\t\t\t<div className=\"flex h-8 items-center gap-2 px-2\">\n\t\t\t\t\t\t\t\t\t\t<Skeleton className=\"h-4 w-4 shrink-0 rounded\" />\n\t\t\t\t\t\t\t\t\t\t<Skeleton\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"h-3.5 rounded\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ width: `${60 + ((groupIdx * 7 + i * 13) % 40)}px` }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</SidebarMenu>\n\t\t\t\t\t</SidebarGroup>\n\t\t\t\t\t{groupIdx < groups.length - 1 && (\n\t\t\t\t\t\t<SidebarSeparator className=\"!mx-auto !my-1 !w-11/12 overflow-hidden px-4\" />\n\t\t\t\t\t)}\n\t\t\t\t</React.Fragment>\n\t\t\t))}\n\t\t</>\n\t);\n}\n","/** SidebarNavigation — flat, framework-neutral sidebar nav list. */\nimport * as React from 'react';\n\nimport {\n\tSidebarGroup,\n\tSidebarGroupLabel,\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../../hooks';\nimport type { SidebarFlatNavigationProps, SidebarFlatNavItem, SidebarRenderItemContext } from '../sidebar.types';\nimport {\n\tDynamicIcon,\n\tgetNavKey,\n\tgetNavLabel,\n\tisPathMatch,\n\tNavBadge,\n\trenderSidebarLink,\n\tresolveNavBadge,\n\ttoPath,\n} from '../sidebar.utils';\n\nexport { DynamicIcon } from '../sidebar.utils';\nexport { DynamicIcon as Icon } from '../sidebar.utils';\n\nfunction NavLabel({ item }: { item: SidebarFlatNavItem }) {\n\tconst label = getNavLabel(item);\n\treturn (\n\t\t<Text tag=\"span\" weight=\"medium\" className=\"truncate text-inherit\">\n\t\t\t{label}\n\t\t</Text>\n\t);\n}\n\nexport function SidebarNavigation({\n\titems,\n\tlabel = 'Platform',\n\tcurrentUrl = '/',\n\ticonMap = {},\n\tliveBadges,\n\trenderLink,\n\tLinkComponent,\n\trenderItem,\n\tclassName,\n}: SidebarFlatNavigationProps) {\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<SidebarGroup className={cn('px-2 py-0', className)}>\n\t\t\t{!!label && <SidebarGroupLabel>{label}</SidebarGroupLabel>}\n\t\t\t<SidebarMenu className=\"gap-0.5\">\n\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\tconst active = !!item.href && isPathMatch(currentUrl, toPath(item.href));\n\t\t\t\t\tconst badge = resolveNavBadge(item.handle, item.badge, liveBadges);\n\t\t\t\t\tconst context: SidebarRenderItemContext = {\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tactive,\n\t\t\t\t\t\texpanded: false,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\trenderLink: resolvedRenderLink,\n\t\t\t\t\t};\n\t\t\t\t\tconst labelNode = getNavLabel(item);\n\n\t\t\t\t\tif (renderItem) {\n\t\t\t\t\t\treturn <React.Fragment key={getNavKey(item, index)}>{renderItem(item, context)}</React.Fragment>;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst content = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{!!item.icon && <DynamicIcon icon={item.icon} iconMap={iconMap} className=\"size-4\" aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t<NavLabel item={item} />\n\t\t\t\t\t\t\t{!!badge && <NavBadge value={badge} />}\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SidebarMenuItem key={getNavKey(item, index)}>\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tisActive={active}\n\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\titem.href && !item.disabled\n\t\t\t\t\t\t\t\t\t\t? renderSidebarLink(resolvedRenderLink, item, content, undefined, active) as React.ReactElement\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttooltip={{ children: labelNode }}\n\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'h-8 font-medium',\n\t\t\t\t\t\t\t\t\tactive && 'bg-sidebar-accent text-sidebar-foreground',\n\t\t\t\t\t\t\t\t\titem.disabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</SidebarMenuButton>\n\t\t\t\t\t\t</SidebarMenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</SidebarMenu>\n\t\t</SidebarGroup>\n\t);\n}\n\n/** @deprecated Use `SidebarFlatNavItem` from `sidebar.types`. */\nexport type SidebarNavigationItem = SidebarFlatNavItem;\n"," \n/** SidebarNavigationUser — user profile dropdown for sidebar footer. */\nimport { ChevronsUpDown, LogOut, Settings, User } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/base/display/avatar';\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuTrigger,\n} from '@/components/base/navigation/dropdown-menu';\nimport { Text } from '@/components/typography';\nimport {\n\tSidebarMenu,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n} from '@/components/base/sidebar';\nimport { useStrings, type StringsProp } from '@/lib/strings';\n\nimport type { LayoutUser } from '../../layout.types';\nimport { useSidebar } from '../sidebar.context';\n\nexport interface SidebarNavigationUserStrings {\n\tprofile: string;\n\tsettings: string;\n\tlogout: string;\n}\n\nexport const defaultSidebarNavigationUserStrings: SidebarNavigationUserStrings = {\n\tprofile: 'Profile',\n\tsettings: 'Settings',\n\tlogout: 'Log out',\n};\n\nexport interface SidebarNavigationUserProps {\n\tuser: LayoutUser;\n\tcustomContent?: ReactNode;\n\tonProfile?: () => void;\n\tonSettings?: () => void;\n\tonLogout?: () => void;\n\tstrings?: StringsProp<SidebarNavigationUserStrings>;\n\trenderTrigger?: (user: LayoutUser) => ReactNode;\n}\n\nfunction deriveInitials(name: string): string {\n\treturn name\n\t\t.split(' ')\n\t\t.map((part) => part[0])\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.join('')\n\t\t.toUpperCase();\n}\n\nexport function SidebarNavigationUser({\n\tuser,\n\tcustomContent,\n\tonProfile,\n\tonSettings,\n\tonLogout,\n\tstrings: stringsProp,\n\trenderTrigger,\n}: SidebarNavigationUserProps) {\n\tconst strings = useStrings(defaultSidebarNavigationUserStrings, stringsProp);\n\tconst { state, isMobile } = useSidebar();\n\tconst dropdownSide = isMobile || state !== 'collapsed' ? 'bottom' : 'right';\n\tconst initials = deriveInitials(user.name);\n\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{!!onProfile && (\n\t\t\t\t<DropdownMenuItem onClick={onProfile}>\n\t\t\t\t\t<User className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.profile}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!onSettings && (\n\t\t\t\t<DropdownMenuItem onClick={onSettings}>\n\t\t\t\t\t<Settings className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.settings}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t\t{!!(onProfile || onSettings) && !!onLogout && <DropdownMenuSeparator />}\n\t\t\t{!!onLogout && (\n\t\t\t\t<DropdownMenuItem onClick={onLogout}>\n\t\t\t\t\t<LogOut className=\"mr-2 size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className=\"text-inherit\">{strings.logout}</Text>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SidebarMenu>\n\t\t\t<SidebarMenuItem>\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t<SidebarMenuButton\n\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\tclassName=\"group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent\"\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\t\t{renderTrigger?.(user) ?? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<div className=\"flex min-w-0 flex-1 items-center gap-2\">\n\t\t\t\t\t\t\t\t\t<Avatar className=\"size-avatar rounded-full\">\n\t\t\t\t\t\t\t\t\t\t{!!user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n\t\t\t\t\t\t\t\t\t\t<AvatarFallback className=\"bg-sidebar-accent text-xs text-sidebar-accent-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t{initials}\n\t\t\t\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-1 flex-col items-start justify-center overflow-hidden\">\n\t\t\t\t\t\t\t\t\t\t<Text weight=\"medium\" className=\"w-full truncate\">{user.name}</Text>\n\t\t\t\t\t\t\t\t\t\t{!!user.email && <Text size=\"xs\" type=\"secondary\" className=\"w-full truncate\">{user.email}</Text>}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<ChevronsUpDown className=\"ml-auto size-4 shrink-0\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuTrigger>\n\n\t\t\t\t\t<DropdownMenuContent\n\t\t\t\t\t\tclassName=\"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg\"\n\t\t\t\t\t\talign=\"end\"\n\t\t\t\t\t\tside={dropdownSide}\n\t\t\t\t\t\tsideOffset={4}\n\t\t\t\t\t>\n\t\t\t\t\t\t{customContent ?? defaultContent}\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</SidebarMenuItem>\n\t\t</SidebarMenu>\n\t);\n}\n\n/** @deprecated — use `LayoutUser` from `layout.types`. */\nexport type SidebarUserData = LayoutUser;\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./chunk-CMqjfN_6.cjs"),t=require("../lib/strings.cjs"),n=require("../lib/utils.cjs"),r=require("./button-Bd5bEIiB.cjs"),i=require("./typography-CO9uwZhF.cjs"),a=require("./badge-BeSKxX1u.cjs"),o=require("./display-Bin2vVex.cjs"),s=require("./item-eUP9Rtmg.cjs"),c=require("./hooks-CjVzmgvY.cjs");let l=require("react");l=e.t(l,1);let u=require("react/jsx-runtime"),d=require("lucide-react");var f={metadataLabel:`Record metadata`,actionsLabel:`Record actions`,secondaryActionsLabel:`Secondary actions`},p={ariaLabel:`Workspace navigation`,completionLabel:e=>`${e}% complete`,currentLabel:`Current`},m={ariaLabel:`Workspace locales`,activeLabel:`Active`,completionLabel:e=>`${e}% complete`},h={default:`[--workspace-content-max-width:58rem]`,wide:`[--workspace-content-max-width:86rem]`,full:`[--workspace-content-max-width:none]`},g={complete:d.Check,current:d.Circle,attention:d.CircleAlert,disabled:d.Circle,idle:d.Circle},_={complete:`text-success`,current:`text-primary`,attention:`text-warning`,disabled:`text-muted-foreground/40`,idle:`text-muted-foreground`};function v(e){return Number.isFinite(e)?Math.min(100,Math.max(0,Math.round(e))):0}function y({icon:e,className:t}){return e?l.isValidElement(e)?l.cloneElement(e,{className:n.cn(t,e.props.className)}):typeof e==`function`?(0,u.jsx)(e,{className:t,"aria-hidden":`true`}):null:null}function b(e,t){return e.disabled?`disabled`:e.status?e.status:e.warning?`attention`:t?`current`:e.completion!==void 0&&v(e.completion)>=100?`complete`:`idle`}var x=l.forwardRef(function({header:e,sidebar:t,rail:r,children:i,contentWidth:a=`wide`,className:o,headerClassName:s,bodyClassName:c,sidebarClassName:l,mainClassName:d,contentClassName:f,railClassName:p,ariaLabel:m,style:g,..._},v){let y=!!t,b=!!r;return(0,u.jsxs)(`div`,{ref:v,"aria-label":m,className:n.cn(`workspace-layout--component flex h-full min-h-0 w-full flex-col overflow-hidden rounded-md border border-border bg-background text-foreground`,`[--workspace-sidebar-width:16rem] [--workspace-rail-width:20rem]`,h[a],o),style:g,..._,children:[!!e&&(0,u.jsx)(`header`,{className:n.cn(`workspace-layout--header shrink-0 border-b border-border bg-background`,s),children:e}),(0,u.jsxs)(`div`,{className:n.cn(`workspace-layout--body grid min-h-0 flex-1 grid-cols-1 bg-muted/20`,y&&!b&&`min-[80rem]:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)]`,y&&b&&`min-[80rem]:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)] min-[96rem]:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)_var(--workspace-rail-width)]`,!y&&b&&`min-[96rem]:grid-cols-[minmax(0,1fr)_var(--workspace-rail-width)]`,c),children:[!!y&&(0,u.jsx)(`aside`,{className:n.cn(`workspace-layout--sidebar hidden min-h-0 border-r border-border bg-background min-[80rem]:block`,l),children:(0,u.jsx)(`div`,{className:`h-full overflow-y-auto overscroll-contain p-3`,children:t})}),(0,u.jsx)(`main`,{className:n.cn(`workspace-layout--main min-h-0 min-w-0 overflow-y-auto overscroll-contain`,d),children:(0,u.jsx)(`div`,{className:n.cn(`workspace-layout--content mx-auto flex min-h-full w-full max-w-[var(--workspace-content-max-width)] flex-col gap-4 p-4 min-[64rem]:p-5`,a===`full`&&`max-w-none`,f),children:i})}),!!b&&(0,u.jsx)(`aside`,{className:n.cn(`workspace-layout--rail hidden min-h-0 border-l border-border bg-background min-[96rem]:block`,p),children:(0,u.jsx)(`div`,{className:`h-full overflow-y-auto overscroll-contain p-3`,children:r})})]})]})});x.displayName=`WorkspaceLayout`;var S=l.forwardRef(function({title:e,description:r,badges:a,metadata:o,actions:s,secondaryActions:c,status:l,media:d,headerEnd:p,titleSlot:m,className:h,strings:g,..._},v){let y=t.useStrings(f,g),b=!!o?.length;return(0,u.jsxs)(`div`,{ref:v,className:n.cn(`workspace-record-header--component flex flex-col gap-4 px-4 py-4 min-[64rem]:flex-row min-[64rem]:items-start min-[64rem]:justify-between min-[64rem]:px-5`,h),..._,children:[(0,u.jsxs)(`div`,{className:`workspace-record-header--identity flex min-w-0 flex-1 gap-3`,children:[!!d&&(0,u.jsx)(`div`,{className:`workspace-record-header--media flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-md border border-border bg-muted/40`,children:d}),(0,u.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2`,children:[(0,u.jsxs)(`div`,{className:`workspace-record-header--title-row flex min-w-0 flex-wrap items-center gap-2`,children:[m??(0,u.jsx)(i.o,{tag:`h4`,className:`leading-tight`,children:e}),!!a&&(0,u.jsx)(`div`,{className:`workspace-record-header--badges flex flex-wrap items-center gap-1.5`,children:a}),!!l&&(0,u.jsx)(`div`,{className:`workspace-record-header--status`,children:l})]}),!!r&&(0,u.jsx)(i.s,{size:`xs`,type:`secondary`,className:`workspace-record-header--description max-w-4xl leading-relaxed`,children:r}),!!b&&(0,u.jsx)(`div`,{"aria-label":y.metadataLabel,className:`workspace-record-header--metadata flex flex-wrap items-center gap-x-4 gap-y-1`,children:o.map((e,t)=>(0,u.jsxs)(`div`,{className:`flex items-baseline gap-1.5`,children:[(0,u.jsx)(i.s,{tag:`span`,size:`xxs`,type:`secondary`,className:`uppercase`,children:e.label}),(0,u.jsx)(i.s,{tag:`span`,size:`xs`,weight:`medium`,className:`tabular-nums`,children:e.value})]},e.id??t))})]})]}),!!(s||c||p)&&(0,u.jsxs)(`div`,{className:`workspace-record-header--actions flex shrink-0 flex-wrap items-center gap-2 min-[64rem]:justify-end`,children:[!!c&&(0,u.jsx)(`div`,{"aria-label":y.secondaryActionsLabel,className:`flex flex-wrap items-center gap-1.5`,children:c}),!!s&&(0,u.jsx)(`div`,{"aria-label":y.actionsLabel,className:`flex flex-wrap items-center gap-1.5`,children:s}),!!p&&(0,u.jsx)(`div`,{className:`workspace-record-header--end`,children:p})]})]})});S.displayName=`WorkspaceRecordHeader`;var C=l.forwardRef(function({groups:e,activeId:r,onSelect:a,renderItem:d,footerSlot:f,renderLink:m,LinkComponent:h,className:x,strings:S,...C},w){let T=t.useStrings(p,S),E=c.d({renderLink:m,LinkComponent:h});return(0,u.jsxs)(`nav`,{ref:w,"aria-label":C[`aria-label`]??T.ariaLabel,className:n.cn(`workspace-nav--component flex h-full flex-col gap-4`,x),...C,children:[(0,u.jsx)(`div`,{className:`workspace-nav--groups flex min-h-0 flex-1 flex-col gap-4`,children:e.map(e=>(0,u.jsxs)(`div`,{className:`workspace-nav--group space-y-2`,children:[!!e.label&&(0,u.jsxs)(`div`,{className:`workspace-nav--group-header px-1`,children:[(0,u.jsx)(i.s,{size:`xxs`,weight:`semibold`,type:`secondary`,className:`uppercase tracking-wide`,children:e.label}),!!e.description&&(0,u.jsx)(i.s,{size:`xxs`,type:`secondary`,className:`mt-0.5 leading-snug`,children:e.description})]}),(0,u.jsx)(s.o,{className:`workspace-nav--items gap-1`,children:e.items.map((t,c)=>{let f=t.id===r,p=b(t,f),m=g[p],h=t.completion===void 0?void 0:v(t.completion),x=e=>{if(t.disabled){e.preventDefault();return}a?.(t)},S={active:f,group:e,index:c,onSelect:x};if(d)return(0,u.jsx)(l.Fragment,{children:d(t,S)},t.id);let C=(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(s.c,{variant:`icon`,className:n.cn(f&&`bg-primary/10 text-primary`),children:t.icon?(0,u.jsx)(y,{icon:t.icon,className:`size-4`}):(0,u.jsx)(m,{className:n.cn(`size-3.5`,_[p]),"aria-hidden":`true`})}),(0,u.jsxs)(s.r,{children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,u.jsx)(s.u,{children:t.label}),f&&(0,u.jsx)(`span`,{className:`sr-only`,children:T.currentLabel})]}),!!t.description&&(0,u.jsx)(s.i,{clamp:2,children:t.description}),h!==void 0&&(0,u.jsxs)(`div`,{className:`mt-1.5 flex items-center gap-2`,children:[(0,u.jsx)(o.n,{value:h,className:`h-1.5 flex-1`}),(0,u.jsx)(i.s,{tag:`span`,size:`xxs`,type:`secondary`,className:`tabular-nums`,children:T.completionLabel(h)})]})]}),!!t.badge&&(0,u.jsx)(s.n,{children:t.badge})]}),w=n.cn(`workspace-nav--item w-full border border-transparent px-2 py-2 text-left transition-colors`,f&&`border-primary/20 bg-primary/5`,t.warning&&!f&&`border-warning/30 bg-warning/5`,t.disabled&&`pointer-events-none opacity-50`);return t.href?(0,u.jsx)(s.t,{size:`default`,render:E({href:t.href,children:C,className:`block`,active:f,disabled:t.disabled,external:t.external,target:t.target,rel:t.rel,onClick:x}),className:w,children:C},t.id):(0,u.jsx)(s.t,{size:`default`,render:(0,u.jsx)(`button`,{type:`button`,onClick:x,disabled:t.disabled}),className:w,children:C},t.id)})})]},e.id))}),!!f&&(0,u.jsx)(`div`,{className:`workspace-nav--footer shrink-0 border-t border-border pt-3`,children:f})]})});C.displayName=`WorkspaceNav`;var w=l.forwardRef(function({locales:e,activeLocale:i,onLocaleChange:o,actions:s,status:c,className:l,strings:d,...f},p){let h=t.useStrings(m,d),g=e=>{e.disabled||o?.(e)};return(0,u.jsxs)(`div`,{ref:p,className:n.cn(`workspace-locale-strip--component flex flex-col gap-3 border-t border-border bg-muted/20 px-4 py-3 min-[64rem]:flex-row min-[64rem]:items-center min-[64rem]:justify-between min-[64rem]:px-5`,l),...f,children:[(0,u.jsx)(`div`,{className:`workspace-locale-strip--locales flex min-w-0 flex-wrap items-center gap-2`,role:`list`,"aria-label":h.ariaLabel,children:e.map(e=>{let t=e.id===i,o=e.completion===void 0?void 0:v(e.completion);return(0,u.jsx)(r.t,{type:`button`,variant:t?`primary`:`secondary`,buttonStyle:t?`solid`:`ghost`,onClick:()=>g(e),disabled:e.disabled,"aria-pressed":t,className:n.cn(`workspace-locale-strip--item h-auto min-h-8 justify-start px-2.5 py-1.5`),children:(0,u.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,u.jsx)(`span`,{className:`truncate`,children:e.label}),t&&(0,u.jsx)(`span`,{className:`sr-only`,children:h.activeLabel}),o!==void 0&&(0,u.jsx)(a.t,{variant:o>=100?`success`:`secondary`,className:`shrink-0`,children:h.completionLabel(o)}),!!e.status&&(0,u.jsx)(`span`,{className:`shrink-0`,children:e.status})]})},e.id)})}),!!(c||s)&&(0,u.jsxs)(`div`,{className:`workspace-locale-strip--actions flex shrink-0 flex-wrap items-center gap-2`,children:[!!c&&(0,u.jsx)(`div`,{className:`workspace-locale-strip--status`,children:c}),!!s&&(0,u.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:s})]})]})});w.displayName=`WorkspaceLocaleStrip`,Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return x}});
2
+ //# sourceMappingURL=workspace-C1twu23r.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-C1twu23r.cjs","names":[],"sources":["../../src/components/layout/workspace/workspace.strings.ts","../../src/components/layout/workspace/workspace.tsx"],"sourcesContent":["export interface WorkspaceRecordHeaderStrings {\n\tmetadataLabel: string;\n\tactionsLabel: string;\n\tsecondaryActionsLabel: string;\n}\n\nexport const defaultWorkspaceRecordHeaderStrings: WorkspaceRecordHeaderStrings = {\n\tmetadataLabel: 'Record metadata',\n\tactionsLabel: 'Record actions',\n\tsecondaryActionsLabel: 'Secondary actions',\n};\n\nexport interface WorkspaceNavStrings {\n\tariaLabel: string;\n\tcompletionLabel: (value: number) => string;\n\tcurrentLabel: string;\n}\n\nexport const defaultWorkspaceNavStrings: WorkspaceNavStrings = {\n\tariaLabel: 'Workspace navigation',\n\tcompletionLabel: (value) => `${value}% complete`,\n\tcurrentLabel: 'Current',\n};\n\nexport interface WorkspaceLocaleStripStrings {\n\tariaLabel: string;\n\tactiveLabel: string;\n\tcompletionLabel: (value: number) => string;\n}\n\nexport const defaultWorkspaceLocaleStripStrings: WorkspaceLocaleStripStrings = {\n\tariaLabel: 'Workspace locales',\n\tactiveLabel: 'Active',\n\tcompletionLabel: (value) => `${value}% complete`,\n};\n","import * as React from 'react';\nimport {\n\tCheck,\n\tCircle,\n\tCircleAlert,\n\ttype LucideIcon,\n\t} from 'lucide-react';\n\nimport { Badge } from '@/components/base/badge';\nimport { Button } from '@/components/base/buttons';\nimport { Progress,\n} from '@/components/base/display';\nimport {\n\tItem,\n\tItemActions,\n\tItemContent,\n\tItemDescription,\n\tItemGroup,\n\tItemMedia,\n\tItemTitle,\n} from '@/components/base/item';\nimport { Heading, Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useLayoutLinkRenderer } from '../hooks';\nimport type { LayoutIconSource } from '../layout.types';\nimport {\n\tdefaultWorkspaceLocaleStripStrings,\n\tdefaultWorkspaceNavStrings,\n\tdefaultWorkspaceRecordHeaderStrings,\n} from './workspace.strings';\nimport type {\n\tWorkspaceContentWidth,\n\tWorkspaceLayoutProps,\n\tWorkspaceLocaleItem,\n\tWorkspaceLocaleStripProps,\n\tWorkspaceNavItem,\n\tWorkspaceNavItemStatus,\n\tWorkspaceNavProps,\n\tWorkspaceRecordHeaderProps,\n} from './workspace.types';\n\nconst CONTENT_WIDTH_CLASS: Record<WorkspaceContentWidth, string> = {\n\tdefault: '[--workspace-content-max-width:58rem]',\n\twide: '[--workspace-content-max-width:86rem]',\n\tfull: '[--workspace-content-max-width:none]',\n};\n\nconst STATUS_ICON: Record<WorkspaceNavItemStatus, LucideIcon> = {\n\tcomplete: Check,\n\tcurrent: Circle,\n\tattention: CircleAlert,\n\tdisabled: Circle,\n\tidle: Circle,\n};\n\nconst STATUS_CLASS: Record<WorkspaceNavItemStatus, string> = {\n\tcomplete: 'text-success',\n\tcurrent: 'text-primary',\n\tattention: 'text-warning',\n\tdisabled: 'text-muted-foreground/40',\n\tidle: 'text-muted-foreground',\n};\n\nfunction clampPercent(value: number): number {\n\tif (!Number.isFinite(value)) return 0;\n\treturn Math.min(100, Math.max(0, Math.round(value)));\n}\n\nfunction DynamicWorkspaceIcon({\n\ticon,\n\tclassName,\n}: {\n\ticon?: LayoutIconSource;\n\tclassName?: string;\n}) {\n\tif (!icon) return null;\n\tif (React.isValidElement(icon)) {\n\t\treturn React.cloneElement(icon as React.ReactElement<{ className?: string }>, {\n\t\t\tclassName: cn(className, (icon.props as { className?: string }).className),\n\t\t});\n\t}\n\tif (typeof icon === 'function') {\n\t\tconst Icon = icon as LucideIcon;\n\t\treturn <Icon className={className} aria-hidden=\"true\" />;\n\t}\n\treturn null;\n}\n\nfunction getStatus(item: WorkspaceNavItem, active: boolean): WorkspaceNavItemStatus {\n\tif (item.disabled) return 'disabled';\n\tif (item.status) return item.status;\n\tif (item.warning) return 'attention';\n\tif (active) return 'current';\n\tif (item.completion !== undefined && clampPercent(item.completion) >= 100) return 'complete';\n\treturn 'idle';\n}\n\nexport const WorkspaceLayout = React.forwardRef<HTMLDivElement, WorkspaceLayoutProps>(function WorkspaceLayout({\n\theader,\n\tsidebar,\n\trail,\n\tchildren,\n\tcontentWidth = 'wide',\n\tclassName,\n\theaderClassName,\n\tbodyClassName,\n\tsidebarClassName,\n\tmainClassName,\n\tcontentClassName,\n\trailClassName,\n\tariaLabel,\n\tstyle,\n\t...props\n}, ref) {\n\tconst hasSidebar = !!sidebar;\n\tconst hasRail = !!rail;\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\taria-label={ariaLabel}\n\t\t\tclassName={cn(\n\t\t\t\t'workspace-layout--component flex h-full min-h-0 w-full flex-col overflow-hidden rounded-md border border-border bg-background text-foreground',\n\t\t\t\t'[--workspace-sidebar-width:16rem] [--workspace-rail-width:20rem]',\n\t\t\t\tCONTENT_WIDTH_CLASS[contentWidth],\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{!!header && (\n\t\t\t\t<header className={cn('workspace-layout--header shrink-0 border-b border-border bg-background', headerClassName)}>\n\t\t\t\t\t{header}\n\t\t\t\t</header>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'workspace-layout--body grid min-h-0 flex-1 grid-cols-1 bg-muted/20',\n\t\t\t\t\thasSidebar && !hasRail && 'min-[80rem]:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)]',\n\t\t\t\t\thasSidebar && hasRail && 'min-[80rem]:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)] min-[96rem]:grid-cols-[var(--workspace-sidebar-width)_minmax(0,1fr)_var(--workspace-rail-width)]',\n\t\t\t\t\t!hasSidebar && hasRail && 'min-[96rem]:grid-cols-[minmax(0,1fr)_var(--workspace-rail-width)]',\n\t\t\t\t\tbodyClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!hasSidebar && (\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'workspace-layout--sidebar hidden min-h-0 border-r border-border bg-background min-[80rem]:block',\n\t\t\t\t\t\t\tsidebarClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"h-full overflow-y-auto overscroll-contain p-3\">\n\t\t\t\t\t\t\t{sidebar}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t)}\n\t\t\t\t<main className={cn('workspace-layout--main min-h-0 min-w-0 overflow-y-auto overscroll-contain', mainClassName)}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'workspace-layout--content mx-auto flex min-h-full w-full max-w-[var(--workspace-content-max-width)] flex-col gap-4 p-4 min-[64rem]:p-5',\n\t\t\t\t\t\t\tcontentWidth === 'full' && 'max-w-none',\n\t\t\t\t\t\t\tcontentClassName,\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</main>\n\t\t\t\t{!!hasRail && (\n\t\t\t\t\t<aside\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'workspace-layout--rail hidden min-h-0 border-l border-border bg-background min-[96rem]:block',\n\t\t\t\t\t\t\trailClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"h-full overflow-y-auto overscroll-contain p-3\">\n\t\t\t\t\t\t\t{rail}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n\nWorkspaceLayout.displayName = 'WorkspaceLayout';\n\nexport const WorkspaceRecordHeader = React.forwardRef<HTMLDivElement, WorkspaceRecordHeaderProps>(function WorkspaceRecordHeader({\n\ttitle,\n\tdescription,\n\tbadges,\n\tmetadata,\n\tactions,\n\tsecondaryActions,\n\tstatus,\n\tmedia,\n\theaderEnd,\n\ttitleSlot,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultWorkspaceRecordHeaderStrings, stringsProp);\n\tconst hasMetadata = !!metadata?.length;\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'workspace-record-header--component flex flex-col gap-4 px-4 py-4 min-[64rem]:flex-row min-[64rem]:items-start min-[64rem]:justify-between min-[64rem]:px-5',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"workspace-record-header--identity flex min-w-0 flex-1 gap-3\">\n\t\t\t\t{!!media && (\n\t\t\t\t\t<div className=\"workspace-record-header--media flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-md border border-border bg-muted/40\">\n\t\t\t\t\t\t{media}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<div className=\"min-w-0 flex-1 space-y-2\">\n\t\t\t\t\t<div className=\"workspace-record-header--title-row flex min-w-0 flex-wrap items-center gap-2\">\n\t\t\t\t\t\t{titleSlot ?? (\n\t\t\t\t\t\t\t<Heading tag=\"h4\" className=\"leading-tight\">\n\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!badges && <div className=\"workspace-record-header--badges flex flex-wrap items-center gap-1.5\">{badges}</div>}\n\t\t\t\t\t\t{!!status && <div className=\"workspace-record-header--status\">{status}</div>}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"workspace-record-header--description max-w-4xl leading-relaxed\">\n\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!hasMetadata && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\taria-label={strings.metadataLabel}\n\t\t\t\t\t\t\tclassName=\"workspace-record-header--metadata flex flex-wrap items-center gap-x-4 gap-y-1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{metadata.map((item, index) => (\n\t\t\t\t\t\t\t\t<div key={item.id ?? index} className=\"flex items-baseline gap-1.5\">\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"secondary\" className=\"uppercase\">\n\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t{item.value}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{!!(actions || secondaryActions || headerEnd) && (\n\t\t\t\t<div className=\"workspace-record-header--actions flex shrink-0 flex-wrap items-center gap-2 min-[64rem]:justify-end\">\n\t\t\t\t\t{!!secondaryActions && (\n\t\t\t\t\t\t<div aria-label={strings.secondaryActionsLabel} className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t\t\t{secondaryActions}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!actions && (\n\t\t\t\t\t\t<div aria-label={strings.actionsLabel} className=\"flex flex-wrap items-center gap-1.5\">\n\t\t\t\t\t\t\t{actions}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!headerEnd && <div className=\"workspace-record-header--end\">{headerEnd}</div>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n});\n\nWorkspaceRecordHeader.displayName = 'WorkspaceRecordHeader';\n\nexport const WorkspaceNav = React.forwardRef<HTMLElement, WorkspaceNavProps>(function WorkspaceNav({\n\tgroups,\n\tactiveId,\n\tonSelect,\n\trenderItem,\n\tfooterSlot,\n\trenderLink,\n\tLinkComponent,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultWorkspaceNavStrings, stringsProp);\n\tconst resolvedRenderLink = useLayoutLinkRenderer({ renderLink, LinkComponent });\n\n\treturn (\n\t\t<nav\n\t\t\tref={ref}\n\t\t\taria-label={props['aria-label'] ?? strings.ariaLabel}\n\t\t\tclassName={cn('workspace-nav--component flex h-full flex-col gap-4', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"workspace-nav--groups flex min-h-0 flex-1 flex-col gap-4\">\n\t\t\t\t{groups.map((group) => (\n\t\t\t\t\t<div key={group.id} className=\"workspace-nav--group space-y-2\">\n\t\t\t\t\t\t{!!group.label && (\n\t\t\t\t\t\t\t<div className=\"workspace-nav--group-header px-1\">\n\t\t\t\t\t\t\t\t<Text size=\"xxs\" weight=\"semibold\" type=\"secondary\" className=\"uppercase tracking-wide\">\n\t\t\t\t\t\t\t\t\t{group.label}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{!!group.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xxs\" type=\"secondary\" className=\"mt-0.5 leading-snug\">\n\t\t\t\t\t\t\t\t\t\t{group.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<ItemGroup className=\"workspace-nav--items gap-1\">\n\t\t\t\t\t\t\t{group.items.map((item, index) => {\n\t\t\t\t\t\t\t\tconst active = item.id === activeId;\n\t\t\t\t\t\t\t\tconst status = getStatus(item, active);\n\t\t\t\t\t\t\t\tconst StatusIcon = STATUS_ICON[status];\n\t\t\t\t\t\t\t\tconst completion = item.completion === undefined ? undefined : clampPercent(item.completion);\n\t\t\t\t\t\t\t\tconst handleSelect = (event: React.MouseEvent<HTMLElement>) => {\n\t\t\t\t\t\t\t\t\tif (item.disabled) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonSelect?.(item);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tconst context = { active, group, index, onSelect: handleSelect };\n\n\t\t\t\t\t\t\t\tif (renderItem) {\n\t\t\t\t\t\t\t\t\treturn <React.Fragment key={item.id}>{renderItem(item, context)}</React.Fragment>;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst rowContent = (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ItemMedia variant=\"icon\" className={cn(active && 'bg-primary/10 text-primary')}>\n\t\t\t\t\t\t\t\t\t\t\t{item.icon ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<DynamicWorkspaceIcon icon={item.icon} className=\"size-4\" />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<StatusIcon className={cn('size-3.5', STATUS_CLASS[status])} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</ItemMedia>\n\t\t\t\t\t\t\t\t\t\t<ItemContent>\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-1.5\">\n\t\t\t\t\t\t\t\t\t\t\t\t<ItemTitle>{item.label}</ItemTitle>\n\t\t\t\t\t\t\t\t\t\t\t\t{active && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"sr-only\">{strings.currentLabel}</span>\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</div>\n\t\t\t\t\t\t\t\t\t\t\t{!!item.description && <ItemDescription clamp={2}>{item.description}</ItemDescription>}\n\t\t\t\t\t\t\t\t\t\t\t{completion !== undefined && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mt-1.5 flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Progress value={completion} className=\"h-1.5 flex-1\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xxs\" type=\"secondary\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.completionLabel(completion)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</ItemContent>\n\t\t\t\t\t\t\t\t\t\t{!!item.badge && <ItemActions>{item.badge}</ItemActions>}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tconst itemClassName = cn(\n\t\t\t\t\t\t\t\t\t'workspace-nav--item w-full border border-transparent px-2 py-2 text-left transition-colors',\n\t\t\t\t\t\t\t\t\tactive && 'border-primary/20 bg-primary/5',\n\t\t\t\t\t\t\t\t\titem.warning && !active && 'border-warning/30 bg-warning/5',\n\t\t\t\t\t\t\t\t\titem.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif (item.href) {\n\t\t\t\t\t\t\t\t\tconst linkNode = resolvedRenderLink({\n\t\t\t\t\t\t\t\t\t\thref: item.href,\n\t\t\t\t\t\t\t\t\t\tchildren: rowContent,\n\t\t\t\t\t\t\t\t\t\tclassName: 'block',\n\t\t\t\t\t\t\t\t\t\tactive,\n\t\t\t\t\t\t\t\t\t\tdisabled: item.disabled,\n\t\t\t\t\t\t\t\t\t\texternal: item.external,\n\t\t\t\t\t\t\t\t\t\ttarget: item.target,\n\t\t\t\t\t\t\t\t\t\trel: item.rel,\n\t\t\t\t\t\t\t\t\t\tonClick: handleSelect as React.MouseEventHandler<HTMLAnchorElement>,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Item key={item.id} size=\"default\" render={linkNode as React.ReactElement} className={itemClassName}>\n\t\t\t\t\t\t\t\t\t\t\t{rowContent}\n\t\t\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Item\n\t\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t\t\t\t\t\trender={<button type=\"button\" onClick={handleSelect} disabled={item.disabled} />}\n\t\t\t\t\t\t\t\t\t\tclassName={itemClassName}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{rowContent}\n\t\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t{!!footerSlot && <div className=\"workspace-nav--footer shrink-0 border-t border-border pt-3\">{footerSlot}</div>}\n\t\t</nav>\n\t);\n});\n\nWorkspaceNav.displayName = 'WorkspaceNav';\n\nexport const WorkspaceLocaleStrip = React.forwardRef<HTMLDivElement, WorkspaceLocaleStripProps>(function WorkspaceLocaleStrip({\n\tlocales,\n\tactiveLocale,\n\tonLocaleChange,\n\tactions,\n\tstatus,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultWorkspaceLocaleStripStrings, stringsProp);\n\n\tconst handleLocaleClick = (locale: WorkspaceLocaleItem) => {\n\t\tif (locale.disabled) return;\n\t\tonLocaleChange?.(locale);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={cn('workspace-locale-strip--component flex flex-col gap-3 border-t border-border bg-muted/20 px-4 py-3 min-[64rem]:flex-row min-[64rem]:items-center min-[64rem]:justify-between min-[64rem]:px-5', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"workspace-locale-strip--locales flex min-w-0 flex-wrap items-center gap-2\" role=\"list\" aria-label={strings.ariaLabel}>\n\t\t\t\t{locales.map((locale) => {\n\t\t\t\t\tconst active = locale.id === activeLocale;\n\t\t\t\t\tconst completion = locale.completion === undefined ? undefined : clampPercent(locale.completion);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={locale.id}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant={active ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\tbuttonStyle={active ? 'solid' : 'ghost'}\n\t\t\t\t\t\t\tonClick={() => handleLocaleClick(locale)}\n\t\t\t\t\t\t\tdisabled={locale.disabled}\n\t\t\t\t\t\t\taria-pressed={active}\n\t\t\t\t\t\t\tclassName={cn('workspace-locale-strip--item h-auto min-h-8 justify-start px-2.5 py-1.5')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"flex min-w-0 items-center gap-2\">\n\t\t\t\t\t\t\t\t<span className=\"truncate\">{locale.label}</span>\n\t\t\t\t\t\t\t\t{active && <span className=\"sr-only\">{strings.activeLabel}</span>}\n\t\t\t\t\t\t\t\t{completion !== undefined && (\n\t\t\t\t\t\t\t\t\t<Badge variant={completion >= 100 ? 'success' : 'secondary'} className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t\t{strings.completionLabel(completion)}\n\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!locale.status && <span className=\"shrink-0\">{locale.status}</span>}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t\t{!!(status || actions) && (\n\t\t\t\t<div className=\"workspace-locale-strip--actions flex shrink-0 flex-wrap items-center gap-2\">\n\t\t\t\t\t{!!status && <div className=\"workspace-locale-strip--status\">{status}</div>}\n\t\t\t\t\t{!!actions && <div className=\"flex flex-wrap items-center gap-1.5\">{actions}</div>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n});\n\nWorkspaceLocaleStrip.displayName = 'WorkspaceLocaleStrip';\n"],"mappings":"wZAMA,IAAa,EAAoE,CAChF,cAAe,kBACf,aAAc,iBACd,sBAAuB,mBACxB,EAQa,EAAkD,CAC9D,UAAW,uBACX,gBAAkB,GAAU,GAAG,EAAM,YACrC,aAAc,SACf,EAQa,EAAkE,CAC9E,UAAW,oBACX,YAAa,SACb,gBAAkB,GAAU,GAAG,EAAM,WACtC,ECSM,EAA6D,CAClE,QAAS,wCACT,KAAM,wCACN,KAAM,sCACP,EAEM,EAA0D,CAC/D,SAAU,EAAA,MACV,QAAS,EAAA,OACT,UAAW,EAAA,YACX,SAAU,EAAA,OACV,KAAM,EAAA,MACP,EAEM,EAAuD,CAC5D,SAAU,eACV,QAAS,eACT,UAAW,eACX,SAAU,2BACV,KAAM,uBACP,EAEA,SAAS,EAAa,EAAuB,CAE5C,OADK,OAAO,SAAS,CAAK,EACnB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,MAAM,CAAK,CAAC,CAAC,EADf,CAErC,CAEA,SAAS,EAAqB,CAC7B,OACA,aAIE,CAWF,OAVK,EACD,EAAM,eAAe,CAAI,EACrB,EAAM,aAAa,EAAoD,CAC7E,UAAW,EAAA,GAAG,EAAY,EAAK,MAAiC,SAAS,CAC1E,CAAC,EAEE,OAAO,GAAS,YAEZ,EAAA,EAAA,KAAC,EAAD,CAAiB,YAAW,cAAY,MAAQ,CAAA,EAEjD,KAVW,IAWnB,CAEA,SAAS,EAAU,EAAwB,EAAyC,CAMnF,OALI,EAAK,SAAiB,WACtB,EAAK,OAAe,EAAK,OACzB,EAAK,QAAgB,YACrB,EAAe,UACf,EAAK,aAAe,IAAA,IAAa,EAAa,EAAK,UAAU,GAAK,IAAY,WAC3E,MACR,CAEA,IAAa,EAAkB,EAAM,WAAiD,SAAyB,CAC9G,SACA,UACA,OACA,WACA,eAAe,OACf,YACA,kBACA,gBACA,mBACA,gBACA,mBACA,gBACA,YACA,QACA,GAAG,GACD,EAAK,CACP,IAAM,EAAa,CAAC,CAAC,EACf,EAAU,CAAC,CAAC,EAElB,OACC,EAAA,EAAA,MAAC,MAAD,CACM,MACL,aAAY,EACZ,UAAW,EAAA,GACV,gJACA,mEACA,EAAoB,GACpB,CACD,EACO,QACP,GAAI,WAVL,CAYE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,SAAD,CAAQ,UAAW,EAAA,GAAG,yEAA0E,CAAe,WAC7G,CACM,CAAA,GAET,EAAA,EAAA,MAAC,MAAD,CACC,UAAW,EAAA,GACV,qEACA,GAAc,CAAC,GAAW,uEAC1B,GAAc,GAAW,wKACzB,CAAC,GAAc,GAAW,oEAC1B,CACD,WAPD,CASE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,QAAD,CACC,UAAW,EAAA,GACV,kGACA,CACD,YAEA,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,yDACb,CACG,CAAA,CACC,CAAA,GAER,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,GAAG,4EAA6E,CAAa,YAC7G,EAAA,EAAA,KAAC,MAAD,CACC,UAAW,EAAA,GACV,yIACA,IAAiB,QAAU,aAC3B,CACD,EAEC,UACG,CAAA,CACA,CAAA,EACL,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,QAAD,CACC,UAAW,EAAA,GACV,+FACA,CACD,YAEA,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,yDACb,CACG,CAAA,CACC,CAAA,CAEJ,GACD,GAEP,CAAC,EAED,EAAgB,YAAc,kBAE9B,IAAa,EAAwB,EAAM,WAAuD,SAA+B,CAChI,QACA,cACA,SACA,WACA,UACA,mBACA,SACA,QACA,YACA,YACA,YACA,QAAS,EACT,GAAG,GACD,EAAK,CACP,IAAM,EAAU,EAAA,WAAW,EAAqC,CAAW,EACrE,EAAc,CAAC,CAAC,GAAU,OAEhC,OACC,EAAA,EAAA,MAAC,MAAD,CACM,MACL,UAAW,EAAA,GACV,6JACA,CACD,EACA,GAAI,WANL,EAQC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,uEAAf,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wJACb,CACG,CAAA,GAEN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,oCAAf,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,wFAAf,CACE,IACA,EAAA,EAAA,KAAC,EAAA,EAAD,CAAS,IAAI,KAAK,UAAU,yBAC1B,CACO,CAAA,EAET,CAAC,CAAC,IAAU,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,+EAAuE,CAAY,CAAA,EAC9G,CAAC,CAAC,IAAU,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,2CAAmC,CAAY,CAAA,CACvE,IACJ,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,KAAK,KAAK,YAAY,UAAU,0EACzC,CACI,CAAA,EAEN,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CACC,aAAY,EAAQ,cACpB,UAAU,yFAET,EAAS,KAAK,EAAM,KACpB,EAAA,EAAA,MAAC,MAAD,CAA4B,UAAU,uCAAtC,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,MAAM,KAAK,YAAY,UAAU,qBACrD,EAAK,KACD,CAAA,GACN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,KAAK,OAAO,SAAS,UAAU,wBACnD,EAAK,KACD,CAAA,CACF,GAPK,EAAK,IAAM,CAOhB,CACL,CACG,CAAA,CAEF,GACD,IACJ,CAAC,EAAE,GAAW,GAAoB,KAClC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,+GAAf,CACE,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CAAK,aAAY,EAAQ,sBAAuB,UAAU,+CACxD,CACG,CAAA,EAEL,CAAC,CAAC,IACF,EAAA,EAAA,KAAC,MAAD,CAAK,aAAY,EAAQ,aAAc,UAAU,+CAC/C,CACG,CAAA,EAEL,CAAC,CAAC,IAAa,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,wCAAgC,CAAe,CAAA,CAC1E,GAEF,GAEP,CAAC,EAED,EAAsB,YAAc,wBAEpC,IAAa,EAAe,EAAM,WAA2C,SAAsB,CAClG,SACA,WACA,WACA,aACA,aACA,aACA,gBACA,YACA,QAAS,EACT,GAAG,GACD,EAAK,CACP,IAAM,EAAU,EAAA,WAAW,EAA4B,CAAW,EAC5D,EAAqB,EAAA,EAAsB,CAAE,aAAY,eAAc,CAAC,EAE9E,OACC,EAAA,EAAA,MAAC,MAAD,CACM,MACL,aAAY,EAAM,eAAiB,EAAQ,UAC3C,UAAW,EAAA,GAAG,sDAAuD,CAAS,EAC9E,GAAI,WAJL,EAMC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,oEACb,EAAO,IAAK,IACZ,EAAA,EAAA,MAAC,MAAD,CAAoB,UAAU,0CAA9B,CACE,CAAC,CAAC,EAAM,QACR,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,4CAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,OAAO,WAAW,KAAK,YAAY,UAAU,mCAC5D,EAAM,KACF,CAAA,EACL,CAAC,CAAC,EAAM,cACR,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,KAAK,MAAM,KAAK,YAAY,UAAU,+BAC1C,EAAM,WACF,CAAA,CAEH,KAEN,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,UAAU,sCACnB,EAAM,MAAM,KAAK,EAAM,IAAU,CACjC,IAAM,EAAS,EAAK,KAAO,EACrB,EAAS,EAAU,EAAM,CAAM,EAC/B,EAAa,EAAY,GACzB,EAAa,EAAK,aAAe,IAAA,GAAY,IAAA,GAAY,EAAa,EAAK,UAAU,EACrF,EAAgB,GAAyC,CAC9D,GAAI,EAAK,SAAU,CAClB,EAAM,eAAe,EACrB,MACD,CACA,IAAW,CAAI,CAChB,EACM,EAAU,CAAE,SAAQ,QAAO,QAAO,SAAU,CAAa,EAE/D,GAAI,EACH,OAAO,EAAA,EAAA,KAAC,EAAM,SAAP,CAAA,SAA+B,EAAW,EAAM,CAAO,CAAkB,EAApD,EAAK,EAA+C,EAGjF,IAAM,GACL,EAAA,EAAA,MAAA,EAAA,SAAA,CAAA,SAAA,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,QAAQ,OAAO,UAAW,EAAA,GAAG,GAAU,4BAA4B,WAC5E,EAAK,MACL,EAAA,EAAA,KAAC,EAAD,CAAsB,KAAM,EAAK,KAAM,UAAU,QAAU,CAAA,GAE3D,EAAA,EAAA,KAAC,EAAD,CAAY,UAAW,EAAA,GAAG,WAAY,EAAa,EAAO,EAAG,cAAY,MAAQ,CAAA,CAExE,CAAA,GACX,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,EACC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,qCAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAY,EAAK,KAAiB,CAAA,EACjC,IACA,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mBAAW,EAAQ,YAAmB,CAAA,CAEnD,IACJ,CAAC,CAAC,EAAK,cAAe,EAAA,EAAA,KAAC,EAAA,EAAD,CAAiB,MAAO,WAAI,EAAK,WAA6B,CAAA,EACpF,IAAe,IAAA,KACf,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,0CAAf,EACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAAU,MAAO,EAAY,UAAU,cAAgB,CAAA,GACvD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAM,IAAI,OAAO,KAAK,MAAM,KAAK,YAAY,UAAU,wBACrD,EAAQ,gBAAgB,CAAU,CAC9B,CAAA,CACF,GAEM,CAAA,CAAA,EACZ,CAAC,CAAC,EAAK,QAAS,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAc,EAAK,KAAmB,CAAA,CACtD,CAAA,CAAA,EAGG,EAAgB,EAAA,GACrB,6FACA,GAAU,iCACV,EAAK,SAAW,CAAC,GAAU,iCAC3B,EAAK,UAAY,gCAClB,EAqBA,OAnBI,EAAK,MAaP,EAAA,EAAA,KAAC,EAAA,EAAD,CAAoB,KAAK,UAAU,OAZnB,EAAmB,CACnC,KAAM,EAAK,KACX,SAAU,EACV,UAAW,QACX,SACA,SAAU,EAAK,SACf,SAAU,EAAK,SACf,OAAQ,EAAK,OACb,IAAK,EAAK,IACV,QAAS,CACV,CAE4C,EAAgC,UAAW,WACpF,CACI,EAFK,EAAK,EAEV,GAKP,EAAA,EAAA,KAAC,EAAA,EAAD,CAEC,KAAK,UACL,QAAQ,EAAA,EAAA,KAAC,SAAD,CAAQ,KAAK,SAAS,QAAS,EAAc,SAAU,EAAK,QAAW,CAAA,EAC/E,UAAW,WAEV,CACI,EANA,EAAK,EAML,CAER,CAAC,CACS,CAAA,CACP,GApGK,EAAM,EAoGX,CACL,CACG,CAAA,EACJ,CAAC,CAAC,IAAc,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,sEAA8D,CAAgB,CAAA,CAC1G,GAEP,CAAC,EAED,EAAa,YAAc,eAE3B,IAAa,EAAuB,EAAM,WAAsD,SAA8B,CAC7H,UACA,eACA,iBACA,UACA,SACA,YACA,QAAS,EACT,GAAG,GACD,EAAK,CACP,IAAM,EAAU,EAAA,WAAW,EAAoC,CAAW,EAEpE,EAAqB,GAAgC,CACtD,EAAO,UACX,IAAiB,CAAM,CACxB,EAEA,OACC,EAAA,EAAA,MAAC,MAAD,CACM,MACL,UAAW,EAAA,GAAG,gMAAiM,CAAS,EACxN,GAAI,WAHL,EAKC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,4EAA4E,KAAK,OAAO,aAAY,EAAQ,mBACzH,EAAQ,IAAK,GAAW,CACxB,IAAM,EAAS,EAAO,KAAO,EACvB,EAAa,EAAO,aAAe,IAAA,GAAY,IAAA,GAAY,EAAa,EAAO,UAAU,EAC/F,OACC,EAAA,EAAA,KAAC,EAAA,EAAD,CAEC,KAAK,SACL,QAAS,EAAS,UAAY,YAC9B,YAAa,EAAS,QAAU,QAChC,YAAe,EAAkB,CAAM,EACvC,SAAU,EAAO,SACjB,eAAc,EACd,UAAW,EAAA,GAAG,yEAAyE,YAEvF,EAAA,EAAA,MAAC,OAAD,CAAM,UAAU,2CAAhB,EACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,oBAAY,EAAO,KAAY,CAAA,EAC9C,IAAU,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,mBAAW,EAAQ,WAAkB,CAAA,EAC/D,IAAe,IAAA,KACf,EAAA,EAAA,KAAC,EAAA,EAAD,CAAO,QAAS,GAAc,IAAM,UAAY,YAAa,UAAU,oBACrE,EAAQ,gBAAgB,CAAU,CAC7B,CAAA,EAEP,CAAC,CAAC,EAAO,SAAU,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,oBAAY,EAAO,MAAa,CAAA,CAC/D,GACC,EAnBF,EAAO,EAmBL,CAEV,CAAC,CACG,CAAA,EACJ,CAAC,EAAE,GAAU,KACb,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,sFAAf,CACE,CAAC,CAAC,IAAU,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,0CAAkC,CAAY,CAAA,EACzE,CAAC,CAAC,IAAW,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,+CAAuC,CAAa,CAAA,CAC7E,GAEF,GAEP,CAAC,EAED,EAAqB,YAAc"}