@alfadocs/ui-kit 0.1.9 → 0.2.0

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 (281) hide show
  1. package/README.md +30 -0
  2. package/dist/_chunks/accordion-DOmxGEWU.js +228 -0
  3. package/dist/_chunks/{agenda-card-DwLIxgi7.js → agenda-card-CalZqycc.js} +12 -3
  4. package/dist/_chunks/{agenda-tray-DUvengGQ.js → agenda-tray-3ffFDQZC.js} +54 -51
  5. package/dist/_chunks/{ai-prompt-input.agent-0NHYLTWD.js → ai-prompt-input-BBiDlEIS.js} +231 -231
  6. package/dist/_chunks/{alert-BlOUMkXj.js → alert-B1sj8Ss0.js} +24 -14
  7. package/dist/_chunks/{apexcharts-theme-BkSShpEy.js → apexcharts-theme-BJigns_V.js} +7 -2
  8. package/dist/_chunks/{app-frame-6d7Lu4ea.js → app-frame-CDJOgPXe.js} +7 -16
  9. package/dist/_chunks/{audio-recorder.agent--VKeykUp.js → audio-recorder-B4U1LuiQ.js} +161 -162
  10. package/dist/_chunks/{audio-visualiser-CeMPCZkd.js → audio-visualiser-ByDEFLNm.js} +25 -19
  11. package/dist/_chunks/autocomplete-D4oUZbsP.js +466 -0
  12. package/dist/_chunks/{badge-mrstWxve.js → badge-DKFbntoa.js} +16 -13
  13. package/dist/_chunks/{balance-cell-renderer-5CA7zpAi.js → balance-cell-renderer-B8zgIM-m.js} +63 -44
  14. package/dist/_chunks/{breadcrumb.agent-GM2hAKFX.js → breadcrumb-D1snXjPb.js} +165 -157
  15. package/dist/_chunks/{button-7mLWcMp_.js → button-DD_0Xdmr.js} +12 -2
  16. package/dist/_chunks/{calendar-nGEgelJs.js → calendar-zy0tUUVG.js} +13 -18
  17. package/dist/_chunks/{card-BEy58ZKp.js → card-CWzuTLYE.js} +40 -34
  18. package/dist/_chunks/{chart.agent-_pRYS17d.js → chart-BLvFl169.js} +147 -131
  19. package/dist/_chunks/chat-container-ClzsWXp2.js +220 -0
  20. package/dist/_chunks/chat-input-DOlsB1fm.js +333 -0
  21. package/dist/_chunks/{chat-message-ByouZpPP.js → chat-message-DoAhgUTj.js} +23 -13
  22. package/dist/_chunks/{collapsible.agent-DkS1jVyn.js → collapsible-CuxUBoHJ.js} +97 -99
  23. package/dist/_chunks/{color-picker-94qcBZqZ.js → color-picker-CTIcHlDF.js} +111 -45
  24. package/dist/_chunks/combobox-DCNXqbC7.js +460 -0
  25. package/dist/_chunks/command-palette-C_vgSgrI.js +441 -0
  26. package/dist/_chunks/{date-picker-BqPTn7bO.js → date-picker-B1PO1ZQP.js} +190 -181
  27. package/dist/_chunks/{date-range-picker-B2hGsffw.js → date-range-picker-mix2nEVC.js} +21 -8
  28. package/dist/_chunks/{date-time-picker-Bzt0S8yO.js → date-time-picker-Dnong_BY.js} +30 -15
  29. package/dist/_chunks/{description-list-DvJbp6Yg.js → description-list-BYA77Yud.js} +26 -23
  30. package/dist/_chunks/dialog-BPD7wlGE.js +211 -0
  31. package/dist/_chunks/dropdown-menu-CpiF6CPz.js +300 -0
  32. package/dist/_chunks/{empty-state-DQPtRp2b.js → empty-state-3CLJIXSj.js} +132 -101
  33. package/dist/_chunks/file-upload-C947ACDK.js +829 -0
  34. package/dist/_chunks/{floating-action-button-Cnw-f6AG.js → floating-action-button-C8OYj8mE.js} +9 -2
  35. package/dist/_chunks/{form-field-BfsPLTSc.js → form-field-Bmkeh7WY.js} +12 -11
  36. package/dist/_chunks/{form-field-context-94LwgYTQ.js → form-field-context-B3APVHKx.js} +4 -2
  37. package/dist/_chunks/{freemium-paywall.agent-_nQqLyRF.js → freemium-paywall-CnvceDav.js} +124 -117
  38. package/dist/_chunks/{header-BGn1mRp8.js → header-D0ULgQl3.js} +69 -68
  39. package/dist/_chunks/{icon-button-Wnnde5lc.js → icon-button-C4CGcYuz.js} +11 -3
  40. package/dist/_chunks/{kbd-8baVw3KU.js → kbd-Cglkd7CY.js} +6 -2
  41. package/dist/_chunks/{key-value-pair-JRFS9Xrh.js → key-value-pair-CgWvAIGb.js} +2 -2
  42. package/dist/_chunks/{leo-sidebar-BwINPdix.js → leo-sidebar-CfEY-xi2.js} +16 -20
  43. package/dist/_chunks/{link-QheANk74.js → link-8QmFjIz2.js} +2 -5
  44. package/dist/_chunks/list-qP6p0NTw.js +434 -0
  45. package/dist/_chunks/{logo-BpFoCL-s.js → logo-_Z-jLq80.js} +155 -26
  46. package/dist/_chunks/{matrix-rain-BEkvux64.js → matrix-rain-CRPMXcVx.js} +8 -2
  47. package/dist/_chunks/{message-card-qhoGv947.js → message-card-ChCX9Iv6.js} +63 -60
  48. package/dist/_chunks/{message-tray-xHUCra-Y.js → message-tray-n8q9ITXI.js} +71 -76
  49. package/dist/_chunks/{multi-select.agent-Do6CeQUT.js → multi-select-wqqrgjUQ.js} +326 -291
  50. package/dist/_chunks/{navigation-menu.agent-D69ND6Qq.js → navigation-menu-ClbHeawy.js} +136 -123
  51. package/dist/_chunks/{notification-card-CsVEYJE-.js → notification-card-hBlPN1-c.js} +3 -3
  52. package/dist/_chunks/{notification-tray-DTXMq42J.js → notification-tray-C5cnXbl9.js} +70 -66
  53. package/dist/_chunks/{number-input-fvGmnRy9.js → number-input-Q7wkHnvQ.js} +7 -3
  54. package/dist/_chunks/{otp-input-EglXOUue.js → otp-input-C9gUByF0.js} +6 -3
  55. package/dist/_chunks/{pagination.agent-BkZQl45y.js → pagination-3AC4zTsi.js} +234 -194
  56. package/dist/_chunks/{password-input-D6kuYXmr.js → password-input-C4LmjIH1.js} +6 -9
  57. package/dist/_chunks/{patient-shell-BRmrrUUW.js → patient-shell-BlsEUKWB.js} +10 -15
  58. package/dist/_chunks/{payment-form-BWaXas8z.js → payment-form-C3vT_npe.js} +195 -186
  59. package/dist/_chunks/{pdf-viewer.agent-BaGEDheA.js → pdf-viewer-CZIfY08H.js} +270 -241
  60. package/dist/_chunks/{phone-input-C8Op4sEc.js → phone-input-CSHJOJ13.js} +4 -9
  61. package/dist/_chunks/popover-DekUKNBk.js +293 -0
  62. package/dist/_chunks/{privacy-lock.agent-C1i1-T58.js → privacy-lock-BKsI6ReN.js} +117 -109
  63. package/dist/_chunks/progress-C11tqhoI.js +298 -0
  64. package/dist/_chunks/{recaptcha-widget.agent-BGHpU5zD.js → recaptcha-widget-NyfOfLII.js} +95 -86
  65. package/dist/_chunks/resizable-mpXXyIsN.js +483 -0
  66. package/dist/_chunks/{rich-text-editor.agent-DnE125Tz.js → rich-text-editor-C7TCIlQO.js} +298 -209
  67. package/dist/_chunks/{scroll-area-DLr5w9Dd.js → scroll-area-DEDU-lp-.js} +67 -54
  68. package/dist/_chunks/{search-bar.agent-DxFAxctc.js → search-bar-BTDfgYtg.js} +291 -268
  69. package/dist/_chunks/{search-input-Xw3cdWXW.js → search-input-CdJIEjFo.js} +116 -107
  70. package/dist/_chunks/{select-DY1Cb2Tg.js → select-y6bXV1f1.js} +84 -83
  71. package/dist/_chunks/{separator-B4wXDLNC.js → separator-CYU_bGFn.js} +2 -5
  72. package/dist/_chunks/{sheet-B9kH9pcI.js → sheet-4tgMFwj0.js} +135 -60
  73. package/dist/_chunks/{sidebar-CHF5xr_P.js → sidebar-Bx3wCDyy.js} +546 -457
  74. package/dist/_chunks/{sign-in-with-alfadocs-button-BN_FPGHT.js → sign-in-with-alfadocs-button-B9UrqOqH.js} +9 -5
  75. package/dist/_chunks/{signature-capture.agent-BpeDwFht.js → signature-capture-DjMlFOzS.js} +210 -212
  76. package/dist/_chunks/{skeleton-dtqyF09N.js → skeleton-CZbwyJAA.js} +9 -3
  77. package/dist/_chunks/{slider-CcsQTZTA.js → slider-BT2bZWsy.js} +138 -134
  78. package/dist/_chunks/{slot-grid-D_l5VsHG.js → slot-grid-CgpYgBkW.js} +105 -95
  79. package/dist/_chunks/{sparkline.agent-56Sj7nOP.js → sparkline-_gy8aJDG.js} +107 -100
  80. package/dist/_chunks/{spinner-GCcv67vh.js → spinner-DLaYfLPl.js} +66 -14
  81. package/dist/_chunks/{stat-DUB6g90R.js → stat-B9PHSPbN.js} +45 -27
  82. package/dist/_chunks/{stepper-calendar.agent-9iT3ClIB.js → stepper-calendar-BLOJUE0-.js} +189 -187
  83. package/dist/_chunks/stepper-progress-jFY8BSf7.js +208 -0
  84. package/dist/_chunks/{suggestion-chip-DhFrkRPj.js → suggestion-chip-C4Jz0LrM.js} +50 -52
  85. package/dist/_chunks/{switch-BYEH8I53.js → switch-C0psfIQF.js} +2 -2
  86. package/dist/_chunks/{tabs.agent-h7NvsTR1.js → tabs-DaFA3Muo.js} +183 -155
  87. package/dist/_chunks/{tag-BqidXKo3.js → tag-DuLMjRbF.js} +90 -32
  88. package/dist/_chunks/{task-card-CY5ztNkU.js → task-card-Dw_ZJDL8.js} +5 -2
  89. package/dist/_chunks/{task-tray-CCoUdorl.js → task-tray-XlIW9ueh.js} +50 -49
  90. package/dist/_chunks/{text-area-C_M8wliK.js → text-area-CO9Dz0qX.js} +2 -2
  91. package/dist/_chunks/{text-input-BX39e6T6.js → text-input-DZwt9L8H.js} +65 -62
  92. package/dist/_chunks/{theme-root-DDb0TJjd.js → theme-root-CSKD5ZRm.js} +9 -2
  93. package/dist/_chunks/{theme-toggle.agent-btmXTWdW.js → theme-toggle-B9zzCnvl.js} +179 -177
  94. package/dist/_chunks/{time-picker-B8AMIrX7.js → time-picker-DvPUmHH-.js} +95 -93
  95. package/dist/_chunks/{timeline.agent-CRPza9wc.js → timeline-BvmnQadS.js} +96 -96
  96. package/dist/_chunks/{toast.agent-BjEGuq1Z.js → toast.agent-BwKXA0km.js} +46 -8
  97. package/dist/_chunks/{tooth-scheme.agent-CWrQBjJM.js → tooth-scheme-3mITSXiZ.js} +146 -162
  98. package/dist/_chunks/{transcript-panel.agent-BXEYP6w-.js → transcript-panel-Bx5ANMsv.js} +110 -101
  99. package/dist/_chunks/{typing-indicator-CbUBf-Dx.js → typing-indicator-BZ5jXZPn.js} +27 -5
  100. package/dist/_chunks/{use-theme-BMUhembX.js → use-theme-B1cwAXJR.js} +2 -5
  101. package/dist/_chunks/{visually-hidden-Bw7vBHLm.js → visually-hidden-BHxEUGyT.js} +11 -2
  102. package/dist/_chunks/{warning-stack-8Pa3pekh.js → warning-stack-VygGHSqC.js} +11 -13
  103. package/dist/_chunks/{workflow-map-D2A7rTEG.js → workflow-map-C-nlogPC.js} +430 -452
  104. package/dist/agent-catalog.json +580 -15
  105. package/dist/components/_shared/index.d.ts +2 -2
  106. package/dist/components/accordion/index.d.ts +1 -1
  107. package/dist/components/accordion/index.js +5 -6
  108. package/dist/components/agenda-card/index.js +1 -1
  109. package/dist/components/agenda-tray/agenda-tray.d.ts +1 -1
  110. package/dist/components/agenda-tray/index.js +1 -1
  111. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts +1 -1
  112. package/dist/components/ai-prompt-input/index.js +1 -1
  113. package/dist/components/alert/index.d.ts +1 -1
  114. package/dist/components/alert/index.js +1 -1
  115. package/dist/components/app-frame/index.js +1 -1
  116. package/dist/components/audio-recorder/index.js +1 -1
  117. package/dist/components/audio-visualiser/index.js +1 -1
  118. package/dist/components/autocomplete/index.js +1 -1
  119. package/dist/components/badge/index.js +1 -1
  120. package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
  121. package/dist/components/breadcrumb/index.js +1 -1
  122. package/dist/components/button/index.js +2 -2
  123. package/dist/components/calendar/index.js +1 -1
  124. package/dist/components/card/index.js +1 -1
  125. package/dist/components/chart/index.d.ts +1 -1
  126. package/dist/components/chart/index.js +1 -1
  127. package/dist/components/chat-container/chat-container.d.ts +1 -1
  128. package/dist/components/chat-container/index.js +2 -3
  129. package/dist/components/chat-input/chat-input.d.ts +1 -1
  130. package/dist/components/chat-input/index.js +3 -4
  131. package/dist/components/chat-message/index.js +1 -1
  132. package/dist/components/checkbox-group/index.d.ts +1 -1
  133. package/dist/components/collapsible/collapsible.d.ts +1 -1
  134. package/dist/components/collapsible/index.d.ts +1 -1
  135. package/dist/components/collapsible/index.js +1 -1
  136. package/dist/components/color-picker/index.js +1 -1
  137. package/dist/components/combobox/index.d.ts +1 -1
  138. package/dist/components/combobox/index.js +1 -1
  139. package/dist/components/command-palette/command-palette.d.ts +46 -13
  140. package/dist/components/command-palette/index.js +1 -1
  141. package/dist/components/data-table/data-table.d.ts +3 -1
  142. package/dist/components/data-table/index.js +1 -1
  143. package/dist/components/data-table/toolbar.d.ts +6 -5
  144. package/dist/components/date-picker/date-picker.d.ts +1 -1
  145. package/dist/components/date-picker/index.d.ts +1 -1
  146. package/dist/components/date-picker/index.js +1 -1
  147. package/dist/components/date-range-picker/index.js +1 -1
  148. package/dist/components/date-time-picker/index.d.ts +1 -1
  149. package/dist/components/date-time-picker/index.js +1 -1
  150. package/dist/components/description-list/description-list.d.ts +1 -2
  151. package/dist/components/description-list/index.js +1 -1
  152. package/dist/components/dialog/dialog.d.ts +2 -2
  153. package/dist/components/dialog/index.js +1 -1
  154. package/dist/components/dropdown-menu/dropdown-menu.d.ts +11 -16
  155. package/dist/components/dropdown-menu/index.js +3 -4
  156. package/dist/components/empty-state/index.js +1 -1
  157. package/dist/components/file-upload/index.d.ts +1 -1
  158. package/dist/components/file-upload/index.js +1 -1
  159. package/dist/components/floating-action-button/index.js +1 -1
  160. package/dist/components/form-field/index.js +2 -2
  161. package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
  162. package/dist/components/freemium-paywall/index.js +1 -1
  163. package/dist/components/header/index.js +1 -1
  164. package/dist/components/icon-button/index.js +1 -1
  165. package/dist/components/kbd/index.js +1 -1
  166. package/dist/components/key-value-pair/index.js +1 -1
  167. package/dist/components/link/index.js +1 -1
  168. package/dist/components/list/index.js +1 -1
  169. package/dist/components/logo/index.js +1 -1
  170. package/dist/components/matrix-rain/index.js +1 -1
  171. package/dist/components/message-card/index.d.ts +1 -1
  172. package/dist/components/message-card/index.js +1 -1
  173. package/dist/components/message-tray/index.js +1 -1
  174. package/dist/components/message-tray/message-tray.d.ts +1 -1
  175. package/dist/components/multi-select/index.js +1 -1
  176. package/dist/components/navigation-menu/index.js +1 -1
  177. package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
  178. package/dist/components/notification-card/index.d.ts +1 -1
  179. package/dist/components/notification-card/index.js +1 -1
  180. package/dist/components/notification-tray/index.js +1 -1
  181. package/dist/components/notification-tray/notification-tray.d.ts +1 -1
  182. package/dist/components/number-input/index.js +1 -1
  183. package/dist/components/otp-input/index.js +1 -1
  184. package/dist/components/pagination/index.js +1 -1
  185. package/dist/components/pagination/pagination.d.ts +4 -6
  186. package/dist/components/password-input/index.js +1 -1
  187. package/dist/components/payment-form/index.js +7 -8
  188. package/dist/components/payment-form/payment-form.d.ts +1 -1
  189. package/dist/components/pdf-viewer/index.js +1 -1
  190. package/dist/components/phone-input/index.d.ts +1 -1
  191. package/dist/components/phone-input/index.js +1 -1
  192. package/dist/components/popover/index.js +3 -4
  193. package/dist/components/privacy-lock/index.js +1 -1
  194. package/dist/components/privacy-lock/privacy-lock.d.ts +1 -1
  195. package/dist/components/progress/index.js +3 -4
  196. package/dist/components/recaptcha-widget/index.js +1 -1
  197. package/dist/components/resizable/index.d.ts +1 -1
  198. package/dist/components/resizable/index.js +1 -1
  199. package/dist/components/rich-text-editor/index.js +1 -1
  200. package/dist/components/scroll-area/index.js +1 -1
  201. package/dist/components/search-bar/index.js +1 -1
  202. package/dist/components/search-bar/search-bar.d.ts +1 -1
  203. package/dist/components/search-input/index.js +1 -1
  204. package/dist/components/select/index.js +1 -1
  205. package/dist/components/select/select.d.ts +1 -1
  206. package/dist/components/separator/index.js +1 -1
  207. package/dist/components/sheet/index.js +3 -4
  208. package/dist/components/sheet/sheet.d.ts +2 -2
  209. package/dist/components/sidebar/index.js +7 -8
  210. package/dist/components/sidebar/sidebar.d.ts +0 -2
  211. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  212. package/dist/components/signature-capture/index.js +1 -1
  213. package/dist/components/skeleton/index.js +1 -1
  214. package/dist/components/slider/index.js +1 -1
  215. package/dist/components/slot-grid/index.js +1 -1
  216. package/dist/components/sparkline/index.js +1 -1
  217. package/dist/components/spinner/index.js +1 -1
  218. package/dist/components/stat/index.js +1 -1
  219. package/dist/components/stepper-calendar/index.js +1 -1
  220. package/dist/components/stepper-calendar/stepper-calendar.d.ts +1 -1
  221. package/dist/components/stepper-progress/index.d.ts +1 -1
  222. package/dist/components/stepper-progress/index.js +1 -2
  223. package/dist/components/stepper-progress/stepper-progress.d.ts +1 -1
  224. package/dist/components/suggestion-chip/index.js +1 -1
  225. package/dist/components/switch/index.js +1 -1
  226. package/dist/components/tabs/index.d.ts +1 -1
  227. package/dist/components/tabs/index.js +1 -1
  228. package/dist/components/tag/index.js +1 -1
  229. package/dist/components/task-card/index.js +1 -1
  230. package/dist/components/task-tray/index.js +1 -1
  231. package/dist/components/task-tray/task-tray.d.ts +1 -1
  232. package/dist/components/text-area/index.js +1 -1
  233. package/dist/components/text-input/index.js +1 -1
  234. package/dist/components/theme-root/index.js +1 -1
  235. package/dist/components/theme-toggle/index.js +1 -1
  236. package/dist/components/theme-toggle/theme-toggle.d.ts +1 -1
  237. package/dist/components/time-picker/index.js +1 -1
  238. package/dist/components/time-picker/time-picker.d.ts +1 -1
  239. package/dist/components/timeline/index.js +1 -1
  240. package/dist/components/timeline/timeline.d.ts +1 -1
  241. package/dist/components/toast/index.js +1 -1
  242. package/dist/components/tooth-scheme/index.js +1 -1
  243. package/dist/components/tooth-scheme/tooth-scheme.d.ts +1 -1
  244. package/dist/components/transcript-panel/index.js +1 -1
  245. package/dist/components/transcript-panel/transcript-panel.d.ts +1 -1
  246. package/dist/components/typing-indicator/index.js +1 -1
  247. package/dist/components/visually-hidden/index.js +1 -1
  248. package/dist/components/warning-stack/index.js +1 -1
  249. package/dist/components/workflow/index.js +1 -1
  250. package/dist/components/workflow/workflow-editor.d.ts +1 -1
  251. package/dist/hooks/index.js +1 -1
  252. package/dist/index.js +392 -402
  253. package/dist/patterns/leo-assistant/index.js +1 -1
  254. package/dist/patterns/patient-shell/index.js +1 -1
  255. package/dist/safe-html/index.js +20 -3
  256. package/dist/tokens.css +2 -2
  257. package/package.json +12 -2
  258. package/dist/_chunks/accordion-BEnrZmAn.js +0 -120
  259. package/dist/_chunks/accordion.agent-BTjeO1Sx.js +0 -52
  260. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js +0 -432
  261. package/dist/_chunks/chat-container-Dl0Kfy5a.js +0 -175
  262. package/dist/_chunks/chat-container.agent-CM4WModE.js +0 -27
  263. package/dist/_chunks/chat-input-C_tMQv92.js +0 -252
  264. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js +0 -69
  265. package/dist/_chunks/combobox.agent-CAvUkkIe.js +0 -410
  266. package/dist/_chunks/command-palette.agent-HatEt_EM.js +0 -391
  267. package/dist/_chunks/dialog.agent-Daf1TTko.js +0 -179
  268. package/dist/_chunks/dropdown-menu-C7AZipNz.js +0 -219
  269. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js +0 -43
  270. package/dist/_chunks/file-upload.agent-DJaH2dHg.js +0 -681
  271. package/dist/_chunks/list.agent-D0iWt4VI.js +0 -420
  272. package/dist/_chunks/payment-form.agent-kuIfodCj.js +0 -31
  273. package/dist/_chunks/popover-kFN8s84V.js +0 -229
  274. package/dist/_chunks/popover.agent-K_d1cfbj.js +0 -39
  275. package/dist/_chunks/progress-wNsqkw8I.js +0 -253
  276. package/dist/_chunks/progress.agent-C68rDOXL.js +0 -27
  277. package/dist/_chunks/resizable.agent-CMwZzvsi.js +0 -456
  278. package/dist/_chunks/sheet.agent-QAyTOxgk.js +0 -46
  279. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js +0 -49
  280. package/dist/_chunks/stepper-progress-Bmen-YXB.js +0 -149
  281. package/dist/_chunks/stepper-progress.agent-q9InWca4.js +0 -61
@@ -1,15 +1,16 @@
1
- import { jsx as a, jsxs as f, Fragment as O } from "react/jsx-runtime";
2
- import { forwardRef as b, useState as D, useEffect as $, useCallback as K, useId as rs, useRef as is, useMemo as ns, useContext as G, createContext as q } from "react";
1
+ import { jsx as a, jsxs as f, Fragment as K } from "react/jsx-runtime";
2
+ import { forwardRef as b, useState as D, useEffect as _, useCallback as G, useRef as q, useMemo as U, useId as ds, useContext as J, createContext as W } from "react";
3
3
  import * as B from "@radix-ui/react-dialog";
4
4
  import * as F from "@radix-ui/react-collapsible";
5
- import * as A from "@radix-ui/react-accordion";
5
+ import * as R from "@radix-ui/react-accordion";
6
6
  import * as S from "@radix-ui/react-tooltip";
7
- import { a as ds } from "./accordion-BEnrZmAn.js";
8
- import { Slot as ts } from "@radix-ui/react-slot";
9
- import { c as C } from "./index-D2ZczOXr.js";
10
- import { useTranslation as I } from "react-i18next";
11
- import { X as os } from "./x-CCcI3eJp.js";
12
- import { c as R } from "./createLucideIcon-CrFbzy84.js";
7
+ import { a as is } from "./accordion-DOmxGEWU.js";
8
+ import { Slot as ns } from "@radix-ui/react-slot";
9
+ import { c as I } from "./index-D2ZczOXr.js";
10
+ import { useTranslation as A } from "react-i18next";
11
+ import { u as os } from "./registry-C9nwlNyL.js";
12
+ import { X as ls } from "./x-CCcI3eJp.js";
13
+ import { c as P } from "./createLucideIcon-CrFbzy84.js";
13
14
  import { C as L } from "./chevron-right-BrpYejk0.js";
14
15
  /**
15
16
  * @license lucide-react v1.8.0 - ISC
@@ -17,43 +18,43 @@ import { C as L } from "./chevron-right-BrpYejk0.js";
17
18
  * This source code is licensed under the ISC license.
18
19
  * See the LICENSE file in the root directory of this source tree.
19
20
  */
20
- const ls = [
21
+ const cs = [
21
22
  ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
22
23
  ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
23
24
  ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
24
25
  ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
25
26
  ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
26
27
  ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
27
- ], cs = R("grip-vertical", ls);
28
+ ], us = P("grip-vertical", cs);
28
29
  /**
29
30
  * @license lucide-react v1.8.0 - ISC
30
31
  *
31
32
  * This source code is licensed under the ISC license.
32
33
  * See the LICENSE file in the root directory of this source tree.
33
34
  */
34
- const us = [
35
+ const ms = [
35
36
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
36
37
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
37
38
  ["path", { d: "m16 15-3-3 3-3", key: "14y99z" }]
38
- ], ms = R("panel-left-close", us);
39
+ ], fs = P("panel-left-close", ms);
39
40
  /**
40
41
  * @license lucide-react v1.8.0 - ISC
41
42
  *
42
43
  * This source code is licensed under the ISC license.
43
44
  * See the LICENSE file in the root directory of this source tree.
44
45
  */
45
- const fs = [
46
+ const ps = [
46
47
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
47
48
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
48
49
  ["path", { d: "m14 9 3 3-3 3", key: "8010ee" }]
49
- ], vs = R("panel-left-open", fs);
50
+ ], vs = P("panel-left-open", ps);
50
51
  /**
51
52
  * @license lucide-react v1.8.0 - ISC
52
53
  *
53
54
  * This source code is licensed under the ISC license.
54
55
  * See the LICENSE file in the root directory of this source tree.
55
56
  */
56
- const ps = [
57
+ const gs = [
57
58
  [
58
59
  "path",
59
60
  {
@@ -61,46 +62,77 @@ const ps = [
61
62
  key: "r04s7s"
62
63
  }
63
64
  ]
64
- ], gs = R("star", ps), H = q({
65
+ ], bs = P("star", gs), hs = {
66
+ id: "sidebar",
67
+ capabilities: ["expand"],
68
+ state: {
69
+ isCollapsed: {
70
+ type: "boolean",
71
+ description: "True when the sidebar is in its collapsed (rail) state.",
72
+ read: (s) => s.getIsCollapsed()
73
+ }
74
+ },
75
+ actions: {
76
+ toggle_collapsed: {
77
+ safety: "read",
78
+ description: "Toggle the sidebar between collapsed and expanded.",
79
+ invoke: (s) => {
80
+ s.toggleCollapsed();
81
+ }
82
+ }
83
+ },
84
+ domHooks: {
85
+ root: { attr: "data-component", value: "sidebar" },
86
+ instanceId: {
87
+ attr: "data-component-id",
88
+ sourceProp: "id",
89
+ description: "Sourced from the id prop."
90
+ },
91
+ item: {
92
+ attr: "data-nav-id",
93
+ description: "Each Sidebar.Item emits its key as data-nav-id."
94
+ }
95
+ }
96
+ }, E = W({
65
97
  mode: "expanded",
66
98
  density: "default"
67
- }), y = () => G(H), U = "ui.sidebar.state";
68
- function bs(s) {
99
+ }), y = () => J(E), X = "ui.sidebar.state";
100
+ function xs(s) {
69
101
  if (typeof window > "u") return s;
70
102
  try {
71
- const e = window.localStorage.getItem(U);
103
+ const e = window.localStorage.getItem(X);
72
104
  if (e === "expanded" || e === "icon" || e === "overlay") return e;
73
105
  } catch {
74
106
  }
75
107
  return s;
76
108
  }
77
- function hs(s) {
109
+ function ys(s) {
78
110
  if (!(typeof window > "u"))
79
111
  try {
80
- window.localStorage.setItem(U, s);
112
+ window.localStorage.setItem(X, s);
81
113
  } catch {
82
114
  }
83
115
  }
84
- function Zs(s, e) {
85
- const [r, n] = D(() => {
116
+ function ae(s, e) {
117
+ const [r, d] = D(() => {
86
118
  if (typeof window > "u")
87
119
  return typeof e == "function" ? e() : e;
88
120
  try {
89
- const d = window.localStorage.getItem(s);
90
- if (d !== null) return JSON.parse(d);
121
+ const i = window.localStorage.getItem(s);
122
+ if (i !== null) return JSON.parse(i);
91
123
  } catch {
92
124
  }
93
125
  return typeof e == "function" ? e() : e;
94
126
  });
95
- return $(() => {
127
+ return _(() => {
96
128
  if (!(typeof window > "u"))
97
129
  try {
98
130
  window.localStorage.setItem(s, JSON.stringify(r));
99
131
  } catch {
100
132
  }
101
- }, [s, r]), [r, n];
133
+ }, [s, r]), [r, d];
102
134
  }
103
- const V = C(
135
+ const O = I(
104
136
  [
105
137
  "ds:flex ds:flex-col",
106
138
  // Sidebar sits at the page background in light mode (white-on-white
@@ -140,133 +172,168 @@ const V = C(
140
172
  },
141
173
  defaultVariants: { mode: "expanded", density: "default" }
142
174
  }
143
- ), xs = b(
175
+ ), ws = b(
144
176
  ({
145
177
  state: s,
146
178
  defaultState: e = "expanded",
147
179
  onStateChange: r,
148
- density: n = "default",
149
- open: d,
180
+ density: d = "default",
181
+ open: i,
150
182
  onOpenChange: o,
151
183
  "aria-label": u,
152
- className: t,
184
+ className: n,
153
185
  children: m,
154
186
  id: l,
155
- ...v
156
- }, h) => {
157
- const { t: w } = I(), p = s !== void 0, [i, N] = D(
158
- () => p ? s : bs(e)
159
- ), x = p ? s : i;
160
- $(() => {
161
- p || hs(i);
162
- }, [i, p]);
163
- const g = K(
164
- (z) => {
165
- p || N(z), r == null || r(z);
187
+ ...p
188
+ }, x) => {
189
+ const { t: w } = A(), g = s !== void 0, [t, N] = D(
190
+ () => g ? s : xs(e)
191
+ ), h = g ? s : t;
192
+ _(() => {
193
+ g || ys(t);
194
+ }, [t, g]);
195
+ const v = G(
196
+ (C) => {
197
+ g || N(C), r == null || r(C);
166
198
  },
167
- [p, r]
168
- ), j = u ?? w("ui.navigation.sidebar.label");
169
- return x === "overlay" ? /* @__PURE__ */ a(H.Provider, { value: { mode: "overlay", density: n, transitionTo: g }, children: /* @__PURE__ */ a(B.Root, { open: d, onOpenChange: o, children: /* @__PURE__ */ f(B.Portal, { children: [
170
- /* @__PURE__ */ a(
171
- B.Overlay,
172
- {
173
- className: [
174
- "ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]",
175
- "ds:bg-[var(--foreground)]/20 ds:backdrop-blur-sm",
176
- "ds:data-[state=open]:animate-in ds:data-[state=open]:fade-in",
177
- "ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out",
178
- "ds:motion-reduce:animate-none"
179
- ].join(" ")
199
+ [g, r]
200
+ ), z = u ?? w("ui.navigation.sidebar.label"), j = q(h);
201
+ _(() => {
202
+ j.current = h;
203
+ }, [h]);
204
+ const k = U(
205
+ () => ({
206
+ getIsCollapsed: () => j.current !== "expanded",
207
+ toggleCollapsed: () => {
208
+ const C = j.current === "expanded" ? "icon" : "expanded";
209
+ v(C);
180
210
  }
181
- ),
182
- /* @__PURE__ */ f(
183
- B.Content,
184
- {
185
- "aria-label": j,
186
- className: [
187
- "ds:fixed ds:z-[var(--z-modal)]",
188
- "ds:inset-inline-start-0 ds:inset-block-start-0",
189
- "ds:h-dvh",
190
- V({ mode: "overlay", density: n }),
191
- "ds:shadow-[var(--shadow-xl)]",
192
- "ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
193
- "ds:data-[state=open]:slide-in-from-left ds:data-[state=closed]:slide-out-to-left",
194
- "ds:rtl:data-[state=open]:slide-in-from-right ds:rtl:data-[state=closed]:slide-out-to-right",
195
- "ds:motion-reduce:animate-none",
196
- "ds:focus:outline-none",
197
- t ?? ""
198
- ].filter(Boolean).join(" "),
199
- children: [
200
- /* @__PURE__ */ a("nav", { ref: h, id: l, "aria-label": j, "data-component": "sidebar", "data-component-id": l, className: "ds:flex ds:flex-col ds:h-full", ...v, children: m }),
201
- /* @__PURE__ */ a(B.Close, { asChild: !0, children: /* @__PURE__ */ a(
202
- "button",
203
- {
204
- type: "button",
205
- "aria-label": w("ui.navigation.sidebar.close"),
206
- className: [
207
- "ds:absolute ds:top-[var(--spacing-sm)] ds:end-[var(--spacing-sm)]",
208
- "ds:inline-flex ds:items-center ds:justify-center",
209
- "ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]",
210
- "ds:rounded-[var(--radius-sm)] ds:text-[var(--muted-foreground)]",
211
- "ds:hover:bg-[var(--muted)]/20 ds:focus-visible:outline-[length:var(--focus-ring-width)]",
212
- "ds:focus-visible:outline-solid ds:focus-visible:outline-[var(--ring)]",
213
- "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
214
- ].join(" "),
215
- children: /* @__PURE__ */ a(os, { "aria-hidden": "true", className: "ds:size-4" })
216
- }
217
- ) })
218
- ]
219
- }
220
- )
221
- ] }) }) }) : /* @__PURE__ */ a(H.Provider, { value: { mode: x, density: n, transitionTo: g }, children: /* @__PURE__ */ a(S.Provider, { delayDuration: 300, children: /* @__PURE__ */ a(
222
- "nav",
211
+ }),
212
+ [v]
213
+ );
214
+ return os(hs, k, l), h === "overlay" ? /* @__PURE__ */ a(
215
+ E.Provider,
223
216
  {
224
- ref: h,
225
- id: l,
226
- "aria-label": j,
227
- "data-component": "sidebar",
228
- "data-component-id": l,
229
- "data-mode": x,
230
- "data-density": n,
231
- className: [
232
- V({ mode: x, density: n }),
233
- n === "compact" ? "ds:density-compact" : "",
234
- t ?? ""
235
- ].filter(Boolean).join(" "),
236
- ...v,
237
- children: m
217
+ value: { mode: "overlay", density: d, transitionTo: v },
218
+ children: /* @__PURE__ */ a(B.Root, { open: i, onOpenChange: o, children: /* @__PURE__ */ f(B.Portal, { children: [
219
+ /* @__PURE__ */ a(
220
+ B.Overlay,
221
+ {
222
+ className: [
223
+ "ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]",
224
+ "ds:bg-[var(--foreground)]/20 ds:backdrop-blur-sm",
225
+ "ds:data-[state=open]:animate-in ds:data-[state=open]:fade-in",
226
+ "ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out",
227
+ "ds:motion-reduce:animate-none"
228
+ ].join(" ")
229
+ }
230
+ ),
231
+ /* @__PURE__ */ f(
232
+ B.Content,
233
+ {
234
+ "aria-label": z,
235
+ className: [
236
+ "ds:fixed ds:z-[var(--z-modal)]",
237
+ "ds:inset-inline-start-0 ds:inset-block-start-0",
238
+ "ds:h-dvh",
239
+ O({ mode: "overlay", density: d }),
240
+ "ds:shadow-[var(--shadow-xl)]",
241
+ "ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
242
+ "ds:data-[state=open]:slide-in-from-left ds:data-[state=closed]:slide-out-to-left",
243
+ "ds:rtl:data-[state=open]:slide-in-from-right ds:rtl:data-[state=closed]:slide-out-to-right",
244
+ "ds:motion-reduce:animate-none",
245
+ "ds:focus:outline-none",
246
+ n ?? ""
247
+ ].filter(Boolean).join(" "),
248
+ children: [
249
+ /* @__PURE__ */ a(
250
+ "nav",
251
+ {
252
+ ref: x,
253
+ id: l,
254
+ "aria-label": z,
255
+ "data-component": "sidebar",
256
+ "data-component-id": l,
257
+ className: "ds:flex ds:flex-col ds:h-full",
258
+ ...p,
259
+ children: m
260
+ }
261
+ ),
262
+ /* @__PURE__ */ a(B.Close, { asChild: !0, children: /* @__PURE__ */ a(
263
+ "button",
264
+ {
265
+ type: "button",
266
+ "aria-label": w("ui.navigation.sidebar.close"),
267
+ className: [
268
+ "ds:absolute ds:top-[var(--spacing-sm)] ds:end-[var(--spacing-sm)]",
269
+ "ds:inline-flex ds:items-center ds:justify-center",
270
+ "ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]",
271
+ "ds:rounded-[var(--radius-sm)] ds:text-[var(--muted-foreground)]",
272
+ "ds:hover:bg-[var(--muted)]/20 ds:focus-visible:outline-[length:var(--focus-ring-width)]",
273
+ "ds:focus-visible:outline-solid ds:focus-visible:outline-[var(--ring)]",
274
+ "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
275
+ ].join(" "),
276
+ children: /* @__PURE__ */ a(ls, { "aria-hidden": "true", className: "ds:size-4" })
277
+ }
278
+ ) })
279
+ ]
280
+ }
281
+ )
282
+ ] }) })
238
283
  }
239
- ) }) });
240
- }
241
- );
242
- xs.displayName = "Sidebar";
243
- const ys = b(
244
- ({ className: s, ...e }, r) => {
245
- const { mode: n } = y();
246
- return /* @__PURE__ */ a(
247
- "div",
284
+ ) : /* @__PURE__ */ a(
285
+ E.Provider,
248
286
  {
249
- ref: r,
250
- className: [
251
- "ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
252
- "ds:min-h-[var(--min-target-size)]",
253
- // Icon-rail is 64px — shrink horizontal padding so a 44×44
254
- // control fits centred inside the header.
255
- n === "icon" ? "ds:justify-center ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]" : "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
256
- "ds:py-[var(--spacing-sm)]",
257
- // Hairline border + downward chrome shadow cast the header as a
258
- // sticky top band above the scrolling body.
259
- "ds:border-block-end ds:border-[var(--border)]",
260
- "ds:shadow-[var(--shadow-chrome-down)]",
261
- s ?? ""
262
- ].filter(Boolean).join(" "),
263
- ...e
287
+ value: { mode: h, density: d, transitionTo: v },
288
+ children: /* @__PURE__ */ a(S.Provider, { delayDuration: 300, children: /* @__PURE__ */ a(
289
+ "nav",
290
+ {
291
+ ref: x,
292
+ id: l,
293
+ "aria-label": z,
294
+ "data-component": "sidebar",
295
+ "data-component-id": l,
296
+ "data-mode": h,
297
+ "data-density": d,
298
+ className: [
299
+ O({ mode: h, density: d }),
300
+ d === "compact" ? "ds:density-compact" : "",
301
+ n ?? ""
302
+ ].filter(Boolean).join(" "),
303
+ ...p,
304
+ children: m
305
+ }
306
+ ) })
264
307
  }
265
308
  );
266
309
  }
267
310
  );
268
- ys.displayName = "SidebarHeader";
269
- const ws = b(
311
+ ws.displayName = "Sidebar";
312
+ const Ns = b(({ className: s, ...e }, r) => {
313
+ const { mode: d } = y();
314
+ return /* @__PURE__ */ a(
315
+ "div",
316
+ {
317
+ ref: r,
318
+ className: [
319
+ "ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
320
+ "ds:min-h-[var(--min-target-size)]",
321
+ // Icon-rail is 64px — shrink horizontal padding so a 44×44
322
+ // control fits centred inside the header.
323
+ d === "icon" ? "ds:justify-center ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]" : "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
324
+ "ds:py-[var(--spacing-sm)]",
325
+ // Hairline border + downward chrome shadow cast the header as a
326
+ // sticky top band above the scrolling body.
327
+ "ds:border-block-end ds:border-[var(--border)]",
328
+ "ds:shadow-[var(--shadow-chrome-down)]",
329
+ s ?? ""
330
+ ].filter(Boolean).join(" "),
331
+ ...e
332
+ }
333
+ );
334
+ });
335
+ Ns.displayName = "SidebarHeader";
336
+ const Ss = b(
270
337
  ({ className: s, ...e }, r) => /* @__PURE__ */ a(
271
338
  "div",
272
339
  {
@@ -281,34 +348,32 @@ const ws = b(
281
348
  }
282
349
  )
283
350
  );
284
- ws.displayName = "SidebarBody";
285
- const Ns = b(
286
- ({ className: s, ...e }, r) => {
287
- const { mode: n } = y();
288
- return /* @__PURE__ */ a(
289
- "div",
290
- {
291
- ref: r,
292
- className: [
293
- "ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
294
- // Icon-rail is 64px two 44×44 controls can't sit side-by-side,
295
- // so switch to a vertical stack and let each row self-centre.
296
- n === "icon" ? "ds:flex-col ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]" : "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
297
- "ds:min-h-[var(--min-target-size)]",
298
- "ds:py-[var(--spacing-sm)]",
299
- // Hairline border + upward chrome shadow cast the footer as a
300
- // sticky bottom band below the scrolling body.
301
- "ds:border-block-start ds:border-[var(--border)]",
302
- "ds:shadow-[var(--shadow-chrome-up)]",
303
- s ?? ""
304
- ].filter(Boolean).join(" "),
305
- ...e
306
- }
307
- );
308
- }
309
- );
310
- Ns.displayName = "SidebarFooter";
311
- const Ss = [
351
+ Ss.displayName = "SidebarBody";
352
+ const js = b(({ className: s, ...e }, r) => {
353
+ const { mode: d } = y();
354
+ return /* @__PURE__ */ a(
355
+ "div",
356
+ {
357
+ ref: r,
358
+ className: [
359
+ "ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
360
+ // Icon-rail is 64px — two 44×44 controls can't sit side-by-side,
361
+ // so switch to a vertical stack and let each row self-centre.
362
+ d === "icon" ? "ds:flex-col ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]" : "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
363
+ "ds:min-h-[var(--min-target-size)]",
364
+ "ds:py-[var(--spacing-sm)]",
365
+ // Hairline border + upward chrome shadow cast the footer as a
366
+ // sticky bottom band below the scrolling body.
367
+ "ds:border-block-start ds:border-[var(--border)]",
368
+ "ds:shadow-[var(--shadow-chrome-up)]",
369
+ s ?? ""
370
+ ].filter(Boolean).join(" "),
371
+ ...e
372
+ }
373
+ );
374
+ });
375
+ js.displayName = "SidebarFooter";
376
+ const zs = [
312
377
  "ds:group/section-label ds:flex ds:w-full ds:items-center",
313
378
  "type-eyebrow",
314
379
  "ds:text-[var(--muted-foreground)]",
@@ -318,31 +383,31 @@ const Ss = [
318
383
  "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
319
384
  "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
320
385
  "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
321
- ].join(" "), M = [
386
+ ].join(" "), $ = [
322
387
  "ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center",
323
388
  "ds:size-4",
324
389
  "ds:text-[var(--accent)]",
325
390
  "ds:me-[var(--spacing-xs)]"
326
- ].join(" "), J = b(
391
+ ].join(" "), Y = b(
327
392
  ({
328
393
  label: s,
329
394
  icon: e,
330
395
  collapsible: r = !0,
331
- defaultOpen: n = !0,
332
- open: d,
396
+ defaultOpen: d = !0,
397
+ open: i,
333
398
  onOpenChange: o,
334
399
  className: u,
335
- children: t,
400
+ children: n,
336
401
  ...m
337
402
  }, l) => {
338
- const { mode: v } = y(), h = v === "icon", w = r && !h && !!s, p = [
403
+ const { mode: p } = y(), x = p === "icon", w = r && !x && !!s, g = [
339
404
  "ds:flex ds:flex-col",
340
405
  "ds:gap-[var(--spacing-xs)]",
341
406
  "ds:mt-[var(--spacing-sm)]",
342
407
  u ?? ""
343
408
  ].filter(Boolean).join(" ");
344
409
  if (!w)
345
- return /* @__PURE__ */ f("div", { ref: l, className: p, ...m, children: [
410
+ return /* @__PURE__ */ f("div", { ref: l, className: g, ...m, children: [
346
411
  !!s || !!e ? /* @__PURE__ */ f(
347
412
  "span",
348
413
  {
@@ -352,29 +417,29 @@ const Ss = [
352
417
  "ds:text-[var(--muted-foreground)]",
353
418
  "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
354
419
  "ds:py-[var(--spacing-xs)]",
355
- h && !e ? "ds:sr-only" : ""
420
+ x && !e ? "ds:sr-only" : ""
356
421
  ].filter(Boolean).join(" "),
357
422
  children: [
358
- e ? /* @__PURE__ */ a("span", { "aria-hidden": "true", className: M, children: e }) : null,
359
- s ? /* @__PURE__ */ a("span", { className: h ? "ds:sr-only" : "", children: s }) : null
423
+ e ? /* @__PURE__ */ a("span", { "aria-hidden": "true", className: $, children: e }) : null,
424
+ s ? /* @__PURE__ */ a("span", { className: x ? "ds:sr-only" : "", children: s }) : null
360
425
  ]
361
426
  }
362
427
  ) : null,
363
- t
428
+ n
364
429
  ] });
365
- const i = "section";
430
+ const t = "section";
366
431
  return /* @__PURE__ */ a(
367
- A.Root,
432
+ R.Root,
368
433
  {
369
434
  type: "single",
370
435
  collapsible: !0,
371
- defaultValue: d === void 0 && n ? i : void 0,
372
- value: d === void 0 ? void 0 : d ? i : "",
373
- onValueChange: o ? (N) => o(N === i) : void 0,
436
+ defaultValue: i === void 0 && d ? t : void 0,
437
+ value: i === void 0 ? void 0 : i ? t : "",
438
+ onValueChange: o ? (N) => o(N === t) : void 0,
374
439
  asChild: !0,
375
- children: /* @__PURE__ */ a("div", { ref: l, className: p, ...m, children: /* @__PURE__ */ f(A.Item, { value: i, children: [
376
- /* @__PURE__ */ a(A.Header, { className: "ds:flex", children: /* @__PURE__ */ f(A.Trigger, { className: Ss, children: [
377
- e ? /* @__PURE__ */ a("span", { "aria-hidden": "true", className: M, children: e }) : null,
440
+ children: /* @__PURE__ */ a("div", { ref: l, className: g, ...m, children: /* @__PURE__ */ f(R.Item, { value: t, children: [
441
+ /* @__PURE__ */ a(R.Header, { className: "ds:flex", children: /* @__PURE__ */ f(R.Trigger, { className: zs, children: [
442
+ e ? /* @__PURE__ */ a("span", { "aria-hidden": "true", className: $, children: e }) : null,
378
443
  /* @__PURE__ */ a("span", { className: "ds:flex-1 ds:text-start", children: s }),
379
444
  /* @__PURE__ */ a(
380
445
  L,
@@ -385,11 +450,11 @@ const Ss = [
385
450
  )
386
451
  ] }) }),
387
452
  /* @__PURE__ */ a(
388
- ds,
453
+ is,
389
454
  {
390
455
  "aria-label": s,
391
456
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:[&>div]:contents",
392
- children: t
457
+ children: n
393
458
  }
394
459
  )
395
460
  ] }) })
@@ -397,8 +462,8 @@ const Ss = [
397
462
  );
398
463
  }
399
464
  );
400
- J.displayName = "SidebarSection";
401
- const js = [
465
+ Y.displayName = "SidebarSection";
466
+ const ks = [
402
467
  "ds:group ds:flex ds:w-full ds:items-center ds:gap-[var(--spacing-sm)]",
403
468
  "ds:min-h-[var(--min-target-size)]",
404
469
  "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
@@ -409,20 +474,29 @@ const js = [
409
474
  "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
410
475
  "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
411
476
  "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
412
- ].join(" "), zs = b(
413
- ({ label: s, icon: e, children: r, className: n, defaultOpen: d, open: o, onOpenChange: u, ...t }, m) => {
477
+ ].join(" "), Cs = b(
478
+ ({
479
+ label: s,
480
+ icon: e,
481
+ children: r,
482
+ className: d,
483
+ defaultOpen: i,
484
+ open: o,
485
+ onOpenChange: u,
486
+ ...n
487
+ }, m) => {
414
488
  const { mode: l } = y();
415
489
  return /* @__PURE__ */ f(
416
490
  F.Root,
417
491
  {
418
492
  ref: m,
419
- defaultOpen: d,
493
+ defaultOpen: i,
420
494
  open: o,
421
495
  onOpenChange: u,
422
- className: n,
423
- ...t,
496
+ className: d,
497
+ ...n,
424
498
  children: [
425
- /* @__PURE__ */ f(F.Trigger, { className: js, children: [
499
+ /* @__PURE__ */ f(F.Trigger, { className: ks, children: [
426
500
  e ? /* @__PURE__ */ a(
427
501
  "span",
428
502
  {
@@ -466,8 +540,8 @@ const js = [
466
540
  );
467
541
  }
468
542
  );
469
- zs.displayName = "SidebarGroup";
470
- const ks = C(
543
+ Cs.displayName = "SidebarGroup";
544
+ const Ts = I(
471
545
  [
472
546
  // Every row is a pin-hover parent so inline pin / reorder affordances can
473
547
  // fade in on hover of the whole row — keep `group/item` on this selector.
@@ -528,34 +602,34 @@ const ks = C(
528
602
  isActive: !1
529
603
  }
530
604
  }
531
- ), W = b(
605
+ ), Q = b(
532
606
  ({
533
607
  asChild: s = !1,
534
608
  isActive: e = !1,
535
609
  isPinned: r = !1,
536
- onPinChange: n,
537
- pinLabel: d,
610
+ onPinChange: d,
611
+ pinLabel: i,
538
612
  className: o,
539
613
  children: u,
540
- "aria-label": t,
614
+ "aria-label": n,
541
615
  ...m
542
616
  }, l) => {
543
- const { mode: v, density: h } = y(), w = s ? ts : "a", p = n !== void 0 && v !== "icon", i = /* @__PURE__ */ a(
617
+ const { mode: p, density: x } = y(), w = s ? ns : "a", g = d !== void 0 && p !== "icon", t = /* @__PURE__ */ a(
544
618
  w,
545
619
  {
546
620
  ref: l,
547
621
  "aria-current": e ? "page" : void 0,
548
- "aria-label": t,
549
- className: ks({
550
- mode: v,
551
- density: h,
622
+ "aria-label": n,
623
+ className: Ts({
624
+ mode: p,
625
+ density: x,
552
626
  isActive: e,
553
- className: p ? "ds:flex-1 ds:min-w-0" : o
627
+ className: g ? "ds:flex-1 ds:min-w-0" : o
554
628
  }),
555
629
  ...m,
556
630
  children: u
557
631
  }
558
- ), N = p ? /* @__PURE__ */ f(
632
+ ), N = g ? /* @__PURE__ */ f(
559
633
  "div",
560
634
  {
561
635
  className: [
@@ -563,19 +637,19 @@ const ks = C(
563
637
  o ?? ""
564
638
  ].filter(Boolean).join(" "),
565
639
  children: [
566
- i,
640
+ t,
567
641
  /* @__PURE__ */ a(
568
- _,
642
+ V,
569
643
  {
570
644
  isPinned: r,
571
- label: d ?? t ?? "",
572
- onPinChange: n
645
+ label: i ?? n ?? "",
646
+ onPinChange: d
573
647
  }
574
648
  )
575
649
  ]
576
650
  }
577
- ) : i;
578
- return v === "icon" && t ? /* @__PURE__ */ f(S.Root, { children: [
651
+ ) : t;
652
+ return p === "icon" && n ? /* @__PURE__ */ f(S.Root, { children: [
579
653
  /* @__PURE__ */ a(S.Trigger, { asChild: !0, children: N }),
580
654
  /* @__PURE__ */ a(S.Portal, { children: /* @__PURE__ */ f(
581
655
  S.Content,
@@ -590,7 +664,7 @@ const ks = C(
590
664
  "ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none"
591
665
  ].join(" "),
592
666
  children: [
593
- t,
667
+ n,
594
668
  /* @__PURE__ */ a(S.Arrow, { className: "ds:fill-[var(--foreground)]" })
595
669
  ]
596
670
  }
@@ -598,87 +672,81 @@ const ks = C(
598
672
  ] }) : N;
599
673
  }
600
674
  );
601
- W.displayName = "SidebarItem";
602
- const Cs = b(
603
- ({ className: s, children: e, ...r }, n) => /* @__PURE__ */ a(
675
+ Q.displayName = "SidebarItem";
676
+ const Is = b(({ className: s, children: e, ...r }, d) => /* @__PURE__ */ a(
677
+ "span",
678
+ {
679
+ ref: d,
680
+ "aria-hidden": "true",
681
+ className: [
682
+ "ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center",
683
+ "ds:size-5",
684
+ // Icons carry the accent tint by default so the rail reads less
685
+ // monotone against the violet active pill. The active row sets
686
+ // `aria-current="page"` on the anchor (which is `group/item`), so
687
+ // the icon flips to the primary-foreground (white) on the filled
688
+ // pill — keeping it readable on the primary background.
689
+ "ds:text-[var(--accent)]",
690
+ "ds:group-aria-[current=page]/item:text-[var(--primary-foreground)]",
691
+ s ?? ""
692
+ ].filter(Boolean).join(" "),
693
+ ...r,
694
+ children: e
695
+ }
696
+ ));
697
+ Is.displayName = "SidebarItemIcon";
698
+ const Bs = b(({ className: s, children: e, ...r }, d) => {
699
+ const { mode: i } = y();
700
+ return /* @__PURE__ */ a(
604
701
  "span",
605
702
  {
606
- ref: n,
607
- "aria-hidden": "true",
703
+ ref: d,
608
704
  className: [
609
- "ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center",
610
- "ds:size-5",
611
- // Icons carry the accent tint by default so the rail reads less
612
- // monotone against the violet active pill. The active row sets
613
- // `aria-current="page"` on the anchor (which is `group/item`), so
614
- // the icon flips to the primary-foreground (white) on the filled
615
- // pill — keeping it readable on the primary background.
616
- "ds:text-[var(--accent)]",
617
- "ds:group-aria-[current=page]/item:text-[var(--primary-foreground)]",
705
+ "ds:flex-1",
706
+ "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap ds:break-normal",
707
+ "ds:text-start",
708
+ i === "icon" ? "ds:sr-only" : "",
618
709
  s ?? ""
619
710
  ].filter(Boolean).join(" "),
620
711
  ...r,
621
712
  children: e
622
713
  }
623
- )
624
- );
625
- Cs.displayName = "SidebarItemIcon";
626
- const Ts = b(
627
- ({ className: s, children: e, ...r }, n) => {
628
- const { mode: d } = y();
629
- return /* @__PURE__ */ a(
630
- "span",
631
- {
632
- ref: n,
633
- className: [
634
- "ds:flex-1",
635
- "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap ds:break-normal",
636
- "ds:text-start",
637
- d === "icon" ? "ds:sr-only" : "",
638
- s ?? ""
639
- ].filter(Boolean).join(" "),
640
- ...r,
641
- children: e
642
- }
643
- );
644
- }
645
- );
646
- Ts.displayName = "SidebarItemLabel";
647
- const Bs = b(
648
- ({ className: s, children: e, ...r }, n) => {
649
- const { mode: d } = y(), o = d === "icon";
650
- return /* @__PURE__ */ a(
651
- "span",
652
- {
653
- ref: n,
654
- "aria-hidden": o ? "true" : void 0,
655
- className: [
656
- "ds:inline-flex ds:items-center ds:justify-center",
657
- "ds:font-[var(--font-weight-semibold)]",
658
- o ? [
659
- "ds:absolute ds:top-[2px] ds:end-[2px]",
660
- "ds:min-w-0 ds:size-[10px] ds:ps-0 ds:pe-0",
661
- "ds:rounded-[var(--radius-full)]",
662
- "ds:bg-[var(--primary)] ds:text-transparent",
663
- "ds:ring-2 ds:ring-[var(--background)]",
664
- "ds:pointer-events-none"
665
- ].join(" ") : [
666
- "ds:min-w-[var(--spacing-lg)] ds:h-[var(--spacing-lg)]",
667
- "ds:rounded-[var(--radius-full)]",
668
- "ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)]",
669
- "ds:text-[length:var(--font-size-xs)]",
670
- "ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]"
671
- ].join(" "),
672
- s ?? ""
673
- ].filter(Boolean).join(" "),
674
- ...r,
675
- children: e
676
- }
677
- );
678
- }
679
- );
680
- Bs.displayName = "SidebarItemBadge";
681
- const Ds = C(
714
+ );
715
+ });
716
+ Bs.displayName = "SidebarItemLabel";
717
+ const Ds = b(({ className: s, children: e, ...r }, d) => {
718
+ const { mode: i } = y(), o = i === "icon";
719
+ return /* @__PURE__ */ a(
720
+ "span",
721
+ {
722
+ ref: d,
723
+ "aria-hidden": o ? "true" : void 0,
724
+ className: [
725
+ "ds:inline-flex ds:items-center ds:justify-center",
726
+ "ds:font-[var(--font-weight-semibold)]",
727
+ o ? [
728
+ "ds:absolute ds:top-[2px] ds:end-[2px]",
729
+ "ds:min-w-0 ds:size-[10px] ds:ps-0 ds:pe-0",
730
+ "ds:rounded-[var(--radius-full)]",
731
+ "ds:bg-[var(--primary)] ds:text-transparent",
732
+ "ds:ring-2 ds:ring-[var(--background)]",
733
+ "ds:pointer-events-none"
734
+ ].join(" ") : [
735
+ "ds:min-w-[var(--spacing-lg)] ds:h-[var(--spacing-lg)]",
736
+ "ds:rounded-[var(--radius-full)]",
737
+ "ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)]",
738
+ "ds:text-[length:var(--font-size-xs)]",
739
+ "ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]"
740
+ ].join(" "),
741
+ s ?? ""
742
+ ].filter(Boolean).join(" "),
743
+ ...r,
744
+ children: e
745
+ }
746
+ );
747
+ });
748
+ Ds.displayName = "SidebarItemBadge";
749
+ const As = I(
682
750
  [
683
751
  "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
684
752
  "ds:min-h-[var(--min-target-size)]",
@@ -691,26 +759,27 @@ const Ds = C(
691
759
  "ds:forced-colors:focus-visible:outline-[CanvasText]",
692
760
  "ds:no-underline"
693
761
  ].join(" ")
694
- ), Is = b(({ logo: s, name: e, showChevron: r = !0, className: n, ...d }, o) => {
695
- const { mode: u } = y(), t = u !== "icon";
762
+ ), Rs = b(({ logo: s, name: e, showChevron: r = !0, className: d, ...i }, o) => {
763
+ const { mode: u } = y(), n = u !== "icon";
696
764
  return /* @__PURE__ */ f(
697
765
  "button",
698
766
  {
699
767
  ref: o,
700
768
  type: "button",
701
769
  "aria-label": e,
702
- className: [Ds(), n].filter(Boolean).join(" "),
703
- ...d,
770
+ className: [As(), d].filter(Boolean).join(" "),
771
+ ...i,
704
772
  children: [
705
- /* @__PURE__ */ a("span", { "aria-hidden": "true", className: "ds:inline-flex ds:items-center ds:shrink-0", children: s }),
706
- t ? /* @__PURE__ */ f(O, { children: [
707
- /* @__PURE__ */ a(
708
- "span",
709
- {
710
- className: "ds:truncate ds:flex-1 ds:text-start ds:max-w-[var(--header-workspace-max-inline-size)]",
711
- children: e
712
- }
713
- ),
773
+ /* @__PURE__ */ a(
774
+ "span",
775
+ {
776
+ "aria-hidden": "true",
777
+ className: "ds:inline-flex ds:items-center ds:shrink-0",
778
+ children: s
779
+ }
780
+ ),
781
+ n ? /* @__PURE__ */ f(K, { children: [
782
+ /* @__PURE__ */ a("span", { className: "ds:truncate ds:flex-1 ds:text-start ds:max-w-[var(--header-workspace-max-inline-size)]", children: e }),
714
783
  r ? /* @__PURE__ */ a(
715
784
  L,
716
785
  {
@@ -723,8 +792,8 @@ const Ds = C(
723
792
  }
724
793
  );
725
794
  });
726
- Is.displayName = "SidebarWorkspaceSwitcher";
727
- const As = C(
795
+ Rs.displayName = "SidebarWorkspaceSwitcher";
796
+ const Ps = I(
728
797
  [
729
798
  "ds:flex ds:items-center ds:justify-center ds:gap-[var(--spacing-xs)]",
730
799
  "ds:min-h-[var(--min-target-size)]",
@@ -747,8 +816,8 @@ const As = C(
747
816
  },
748
817
  defaultVariants: { mode: "expanded" }
749
818
  }
750
- ), Rs = b(({ icon: s, label: e, shortcut: r, className: n, ...d }, o) => {
751
- const { mode: u } = y(), t = u !== "icon";
819
+ ), Hs = b(({ icon: s, label: e, shortcut: r, className: d, ...i }, o) => {
820
+ const { mode: u } = y(), n = u !== "icon";
752
821
  return /* @__PURE__ */ f(
753
822
  "button",
754
823
  {
@@ -756,11 +825,18 @@ const As = C(
756
825
  type: "button",
757
826
  "aria-label": e,
758
827
  "aria-keyshortcuts": r,
759
- className: [As({ mode: u }), n].filter(Boolean).join(" "),
760
- ...d,
828
+ className: [Ps({ mode: u }), d].filter(Boolean).join(" "),
829
+ ...i,
761
830
  children: [
762
- /* @__PURE__ */ a("span", { "aria-hidden": "true", className: "ds:inline-flex ds:size-4 ds:items-center ds:justify-center", children: s }),
763
- t ? /* @__PURE__ */ f(O, { children: [
831
+ /* @__PURE__ */ a(
832
+ "span",
833
+ {
834
+ "aria-hidden": "true",
835
+ className: "ds:inline-flex ds:size-4 ds:items-center ds:justify-center",
836
+ children: s
837
+ }
838
+ ),
839
+ n ? /* @__PURE__ */ f(K, { children: [
764
840
  /* @__PURE__ */ a("span", { className: "ds:truncate", children: e }),
765
841
  r ? /* @__PURE__ */ a("kbd", { className: "ds:ms-auto ds:text-[length:var(--font-size-xs)] ds:font-[family-name:var(--font-mono)] ds:opacity-80", children: r }) : null
766
842
  ] }) : null
@@ -768,8 +844,8 @@ const As = C(
768
844
  }
769
845
  );
770
846
  });
771
- Rs.displayName = "SidebarPrimaryAction";
772
- const Ps = [
847
+ Hs.displayName = "SidebarPrimaryAction";
848
+ const Fs = [
773
849
  "ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
774
850
  "ds:size-6 ds:rounded-[var(--radius-sm)]",
775
851
  // Pin stars carry the accent tint to match every other icon in the rail.
@@ -782,11 +858,11 @@ const Ps = [
782
858
  "ds:forced-colors:focus-visible:outline-[CanvasText]",
783
859
  "ds:transition-[color,opacity,background-color] ds:duration-[var(--animation-duration)]",
784
860
  "ds:motion-reduce:transition-none"
785
- ].join(" "), _ = b(
786
- ({ isPinned: s, onPinChange: e, label: r, className: n, onClick: d, ...o }, u) => {
787
- const { t } = I(), { mode: m } = y();
861
+ ].join(" "), V = b(
862
+ ({ isPinned: s, onPinChange: e, label: r, className: d, onClick: i, ...o }, u) => {
863
+ const { t: n } = A(), { mode: m } = y();
788
864
  if (m === "icon") return null;
789
- const l = s ? t("ui.navigation.sidebar.unpinItem", "Unpin {{label}}", { label: r }) : t("ui.navigation.sidebar.pinItem", "Pin {{label}}", { label: r });
865
+ const l = s ? n("ui.navigation.sidebar.unpinItem", "Unpin {{label}}", { label: r }) : n("ui.navigation.sidebar.pinItem", "Pin {{label}}", { label: r });
790
866
  return /* @__PURE__ */ a(
791
867
  "button",
792
868
  {
@@ -794,13 +870,13 @@ const Ps = [
794
870
  type: "button",
795
871
  "aria-label": l,
796
872
  "aria-pressed": s,
797
- className: [Ps, n].filter(Boolean).join(" "),
798
- onClick: (v) => {
799
- v.preventDefault(), v.stopPropagation(), e == null || e(!s), d == null || d(v);
873
+ className: [Fs, d].filter(Boolean).join(" "),
874
+ onClick: (p) => {
875
+ p.preventDefault(), p.stopPropagation(), e == null || e(!s), i == null || i(p);
800
876
  },
801
877
  ...o,
802
878
  children: /* @__PURE__ */ a(
803
- gs,
879
+ bs,
804
880
  {
805
881
  "aria-hidden": "true",
806
882
  className: "ds:size-4",
@@ -811,34 +887,32 @@ const Ps = [
811
887
  );
812
888
  }
813
889
  );
814
- _.displayName = "SidebarPinButton";
815
- const X = q(null), Fs = () => G(X), Hs = b(
816
- ({ heading: s, emptyMessage: e, onReorder: r, className: n, children: d, ...o }, u) => {
817
- const { t } = I(), m = s ?? t("ui.navigation.sidebar.favorites", "Favourites"), l = Array.isArray(d) ? d.filter(Boolean) : d ? [d] : [], v = l.length, h = v > 0, [w, p] = D(null), [i, N] = D(""), x = is(!1), g = K((z) => {
818
- x.current = !x.current, N(
819
- x.current ? z : `${z}​`
820
- );
821
- }, []), j = ns(
822
- () => ({ onReorder: r, count: v, dragSource: w, setDragSource: p, announce: g }),
823
- [r, v, w, g]
890
+ V.displayName = "SidebarPinButton";
891
+ const Z = W(null), _s = () => J(Z), Es = b(
892
+ ({ heading: s, emptyMessage: e, onReorder: r, className: d, children: i, ...o }, u) => {
893
+ const { t: n } = A(), m = s ?? n("ui.navigation.sidebar.favorites", "Favourites"), l = Array.isArray(i) ? i.filter(Boolean) : i ? [i] : [], p = l.length, x = p > 0, [w, g] = D(null), [t, N] = D(""), h = q(!1), v = G((j) => {
894
+ h.current = !h.current, N(h.current ? j : `${j}​`);
895
+ }, []), z = U(
896
+ () => ({ onReorder: r, count: p, dragSource: w, setDragSource: g, announce: v }),
897
+ [r, p, w, v]
824
898
  );
825
- return !h && !e ? null : /* @__PURE__ */ a(X.Provider, { value: j, children: /* @__PURE__ */ f(
826
- J,
899
+ return !x && !e ? null : /* @__PURE__ */ a(Z.Provider, { value: z, children: /* @__PURE__ */ f(
900
+ Y,
827
901
  {
828
902
  ref: u,
829
903
  label: m,
830
- className: n,
904
+ className: d,
831
905
  ...o,
832
906
  children: [
833
- h ? l : /* @__PURE__ */ a("p", { className: "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] type-meta ds:text-[color:var(--muted-foreground)]", children: e }),
834
- /* @__PURE__ */ a("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: i })
907
+ x ? l : /* @__PURE__ */ a("p", { className: "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] type-meta ds:text-[color:var(--muted-foreground)]", children: e }),
908
+ /* @__PURE__ */ a("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: t })
835
909
  ]
836
910
  }
837
911
  ) });
838
912
  }
839
913
  );
840
- Hs.displayName = "SidebarFavorites";
841
- const Ls = C(
914
+ Es.displayName = "SidebarFavorites";
915
+ const Ls = I(
842
916
  [
843
917
  "ds:group/item ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]",
844
918
  "ds:rounded-[var(--radius-sm)]",
@@ -857,7 +931,7 @@ const Ls = C(
857
931
  },
858
932
  defaultVariants: { dragging: !1, dropTarget: !1 }
859
933
  }
860
- ), _s = [
934
+ ), Vs = [
861
935
  "ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
862
936
  "ds:size-6 ds:rounded-[var(--radius-sm)]",
863
937
  "ds:cursor-grab ds:active:cursor-grabbing",
@@ -871,95 +945,92 @@ const Ls = C(
871
945
  "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
872
946
  "ds:forced-colors:focus-visible:outline-[CanvasText]",
873
947
  "ds:transition-[color,opacity,background-color] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
874
- ].join(" "), Es = b(
948
+ ].join(" "), Ms = b(
875
949
  ({
876
950
  index: s,
877
951
  isActive: e = !1,
878
952
  asChild: r = !1,
879
- reorderLabel: n,
880
- isPinned: d = !1,
953
+ reorderLabel: d,
954
+ isPinned: i = !1,
881
955
  onPinChange: o,
882
956
  pinLabel: u,
883
- "aria-label": t,
957
+ "aria-label": n,
884
958
  className: m,
885
959
  children: l,
886
- ...v
887
- }, h) => {
888
- const { t: w } = I(), { mode: p } = y(), i = Fs(), [N, x] = D(!1), g = !!(i != null && i.onReorder) && p !== "icon", j = n ?? t ?? "", z = rs(), T = (c, k) => {
889
- if (!(i != null && i.onReorder)) return;
890
- const P = Math.max(0, Math.min(i.count - 1, k));
891
- P !== c && (i.onReorder(c, P), i.announce(
960
+ ...p
961
+ }, x) => {
962
+ const { t: w } = A(), { mode: g } = y(), t = _s(), [N, h] = D(!1), v = !!(t != null && t.onReorder) && g !== "icon", z = d ?? n ?? "", j = ds(), k = (c, T) => {
963
+ if (!(t != null && t.onReorder)) return;
964
+ const H = Math.max(0, Math.min(t.count - 1, T));
965
+ H !== c && (t.onReorder(c, H), t.announce(
892
966
  w(
893
967
  "ui.navigation.sidebar.reorderAnnounce",
894
968
  "{{label}} moved to position {{to}} of {{total}}",
895
- { label: j, to: P + 1, total: i.count }
969
+ { label: z, to: H + 1, total: t.count }
896
970
  )
897
971
  ));
898
- }, Y = (c) => {
899
- g && (c.altKey && c.key === "ArrowUp" ? (c.preventDefault(), T(s, s - 1)) : c.altKey && c.key === "ArrowDown" ? (c.preventDefault(), T(s, s + 1)) : c.key === "Home" && c.altKey ? (c.preventDefault(), T(s, 0)) : c.key === "End" && c.altKey && (c.preventDefault(), T(s, i.count - 1)));
900
- }, Q = (c) => {
901
- g && (i == null || i.setDragSource(s), c.dataTransfer && (c.dataTransfer.effectAllowed = "move", c.dataTransfer.setData("ds:text/plain", String(s))));
902
- }, Z = () => {
903
- i == null || i.setDragSource(null), x(!1);
972
+ }, C = (c) => {
973
+ v && (c.altKey && c.key === "ArrowUp" ? (c.preventDefault(), k(s, s - 1)) : c.altKey && c.key === "ArrowDown" ? (c.preventDefault(), k(s, s + 1)) : c.key === "Home" && c.altKey ? (c.preventDefault(), k(s, 0)) : c.key === "End" && c.altKey && (c.preventDefault(), k(s, t.count - 1)));
904
974
  }, ss = (c) => {
905
- !g || (i == null ? void 0 : i.dragSource) === null || (c.preventDefault(), c.dataTransfer && (c.dataTransfer.dropEffect = "move"), x(!0));
906
- }, es = () => x(!1), as = (c) => {
907
- if (!g) return;
975
+ v && (t == null || t.setDragSource(s), c.dataTransfer && (c.dataTransfer.effectAllowed = "move", c.dataTransfer.setData("ds:text/plain", String(s))));
976
+ }, es = () => {
977
+ t == null || t.setDragSource(null), h(!1);
978
+ }, as = (c) => {
979
+ !v || (t == null ? void 0 : t.dragSource) === null || (c.preventDefault(), c.dataTransfer && (c.dataTransfer.dropEffect = "move"), h(!0));
980
+ }, rs = () => h(!1), ts = (c) => {
981
+ if (!v) return;
908
982
  c.preventDefault();
909
- const k = i == null ? void 0 : i.dragSource;
910
- x(!1), !(k == null || k === s) && T(k, s);
911
- }, E = (i == null ? void 0 : i.dragSource) === s;
983
+ const T = t == null ? void 0 : t.dragSource;
984
+ h(!1), !(T == null || T === s) && k(T, s);
985
+ }, M = (t == null ? void 0 : t.dragSource) === s;
912
986
  return /* @__PURE__ */ f(
913
987
  "div",
914
988
  {
915
989
  className: Ls({
916
- dragging: E,
917
- dropTarget: N && !E
990
+ dragging: M,
991
+ dropTarget: N && !M
918
992
  }),
919
- draggable: g || void 0,
920
- onDragStart: g ? Q : void 0,
921
- onDragEnd: g ? Z : void 0,
922
- onDragOver: ss,
923
- onDragLeave: es,
924
- onDrop: as,
993
+ draggable: v || void 0,
994
+ onDragStart: v ? ss : void 0,
995
+ onDragEnd: v ? es : void 0,
996
+ onDragOver: as,
997
+ onDragLeave: rs,
998
+ onDrop: ts,
925
999
  children: [
926
1000
  /* @__PURE__ */ a(
927
- W,
1001
+ Q,
928
1002
  {
929
- ref: h,
1003
+ ref: x,
930
1004
  isActive: e,
931
1005
  asChild: r,
932
- "aria-label": t,
933
- "aria-describedby": g ? z : void 0,
934
- draggable: g ? !1 : void 0,
935
- className: [
936
- g ? "ds:flex-1 ds:min-w-0" : "",
937
- m ?? ""
938
- ].filter(Boolean).join(" "),
939
- ...v,
1006
+ "aria-label": n,
1007
+ "aria-describedby": v ? j : void 0,
1008
+ draggable: v ? !1 : void 0,
1009
+ className: [v ? "ds:flex-1 ds:min-w-0" : "", m ?? ""].filter(Boolean).join(" "),
1010
+ ...p,
940
1011
  children: l
941
1012
  }
942
1013
  ),
943
- g ? /* @__PURE__ */ a(
1014
+ v ? /* @__PURE__ */ a(
944
1015
  "button",
945
1016
  {
946
1017
  type: "button",
947
- id: z,
1018
+ id: j,
948
1019
  "aria-label": w(
949
1020
  "ui.navigation.sidebar.reorderHandle",
950
1021
  "Reorder {{label}}. Press Alt + Up or Alt + Down to move.",
951
- { label: j }
1022
+ { label: z }
952
1023
  ),
953
- className: _s,
954
- onKeyDown: Y,
955
- children: /* @__PURE__ */ a(cs, { "aria-hidden": "true", className: "ds:size-4" })
1024
+ className: Vs,
1025
+ onKeyDown: C,
1026
+ children: /* @__PURE__ */ a(us, { "aria-hidden": "true", className: "ds:size-4" })
956
1027
  }
957
1028
  ) : null,
958
- o && p !== "icon" ? /* @__PURE__ */ a(
959
- _,
1029
+ o && g !== "icon" ? /* @__PURE__ */ a(
1030
+ V,
960
1031
  {
961
- isPinned: d,
962
- label: u ?? t ?? "",
1032
+ isPinned: i,
1033
+ label: u ?? n ?? "",
963
1034
  onPinChange: o
964
1035
  }
965
1036
  ) : null
@@ -968,8 +1039,8 @@ const Ls = C(
968
1039
  );
969
1040
  }
970
1041
  );
971
- Es.displayName = "SidebarFavoriteItem";
972
- const Vs = C(
1042
+ Ms.displayName = "SidebarFavoriteItem";
1043
+ const Os = I(
973
1044
  [
974
1045
  "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
975
1046
  "ds:min-h-[var(--min-target-size)]",
@@ -982,18 +1053,25 @@ const Vs = C(
982
1053
  "ds:forced-colors:focus-visible:outline-[CanvasText]",
983
1054
  "ds:no-underline"
984
1055
  ].join(" ")
985
- ), Ms = b(({ avatar: s, name: e, subtitle: r, subtitleLabel: n, className: d, ...o }, u) => {
986
- const { mode: t } = y(), m = t !== "icon", l = typeof r == "string" ? r : n;
1056
+ ), $s = b(({ avatar: s, name: e, subtitle: r, subtitleLabel: d, className: i, ...o }, u) => {
1057
+ const { mode: n } = y(), m = n !== "icon", l = typeof r == "string" ? r : d;
987
1058
  return /* @__PURE__ */ f(
988
1059
  "button",
989
1060
  {
990
1061
  ref: u,
991
1062
  type: "button",
992
1063
  "aria-label": l ? `${e}, ${l}` : e,
993
- className: [Vs(), d].filter(Boolean).join(" "),
1064
+ className: [Os(), i].filter(Boolean).join(" "),
994
1065
  ...o,
995
1066
  children: [
996
- /* @__PURE__ */ a("span", { "aria-hidden": "true", className: "ds:inline-flex ds:items-center ds:shrink-0", children: s }),
1067
+ /* @__PURE__ */ a(
1068
+ "span",
1069
+ {
1070
+ "aria-hidden": "true",
1071
+ className: "ds:inline-flex ds:items-center ds:shrink-0",
1072
+ children: s
1073
+ }
1074
+ ),
997
1075
  m ? /* @__PURE__ */ f("span", { className: "ds:flex-1 ds:min-w-0 ds:text-start", children: [
998
1076
  /* @__PURE__ */ a("span", { className: "ds:block ds:truncate type-label", children: e }),
999
1077
  r ? typeof r == "string" ? /* @__PURE__ */ a("span", { className: "ds:block ds:truncate type-meta ds:text-[color:var(--muted-foreground)]", children: r }) : /* @__PURE__ */ a("span", { className: "ds:flex ds:items-center ds:gap-[length:var(--spacing-xs)] ds:min-w-0 type-meta ds:text-[color:var(--muted-foreground)]", children: r }) : null
@@ -1002,8 +1080,8 @@ const Vs = C(
1002
1080
  }
1003
1081
  );
1004
1082
  });
1005
- Ms.displayName = "SidebarProfilePill";
1006
- const Os = [
1083
+ $s.displayName = "SidebarProfilePill";
1084
+ const Ks = [
1007
1085
  "ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
1008
1086
  "ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]",
1009
1087
  "ds:rounded-[var(--radius-sm)]",
@@ -1013,68 +1091,79 @@ const Os = [
1013
1091
  "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
1014
1092
  "ds:forced-colors:focus-visible:outline-[CanvasText]",
1015
1093
  "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
1016
- ].join(" "), $s = b(
1017
- ({ className: s, "aria-label": e, onClick: r, ...n }, d) => {
1018
- const { t: o } = I(), { mode: u, transitionTo: t } = y();
1019
- if (u === "overlay") return null;
1020
- const m = u === "expanded", l = e ?? (m ? o("ui.navigation.sidebar.collapse", "Collapse sidebar") : o("ui.navigation.sidebar.expand", "Expand sidebar")), v = /* @__PURE__ */ a(
1021
- "button",
1022
- {
1023
- ref: d,
1024
- type: "button",
1025
- "aria-label": l,
1026
- "aria-expanded": m,
1027
- onClick: (h) => {
1028
- t == null || t(m ? "icon" : "expanded"), r == null || r(h);
1029
- },
1030
- className: [Os, s].filter(Boolean).join(" "),
1031
- ...n,
1032
- children: m ? /* @__PURE__ */ a(ms, { "aria-hidden": "true", className: "ds:size-4 ds:rtl:-scale-x-100" }) : /* @__PURE__ */ a(vs, { "aria-hidden": "true", className: "ds:size-4 ds:rtl:-scale-x-100" })
1033
- }
1034
- );
1035
- return /* @__PURE__ */ f(S.Root, { children: [
1036
- /* @__PURE__ */ a(S.Trigger, { asChild: !0, children: v }),
1037
- /* @__PURE__ */ a(S.Portal, { children: /* @__PURE__ */ f(
1038
- S.Content,
1094
+ ].join(" "), Gs = b(({ className: s, "aria-label": e, onClick: r, ...d }, i) => {
1095
+ const { t: o } = A(), { mode: u, transitionTo: n } = y();
1096
+ if (u === "overlay") return null;
1097
+ const m = u === "expanded", l = e ?? (m ? o("ui.navigation.sidebar.collapse", "Collapse sidebar") : o("ui.navigation.sidebar.expand", "Expand sidebar")), p = /* @__PURE__ */ a(
1098
+ "button",
1099
+ {
1100
+ ref: i,
1101
+ type: "button",
1102
+ "aria-label": l,
1103
+ "aria-expanded": m,
1104
+ onClick: (x) => {
1105
+ n == null || n(m ? "icon" : "expanded"), r == null || r(x);
1106
+ },
1107
+ className: [Ks, s].filter(Boolean).join(" "),
1108
+ ...d,
1109
+ children: m ? /* @__PURE__ */ a(
1110
+ fs,
1039
1111
  {
1040
- side: u === "icon" ? "right" : "top",
1041
- sideOffset: 6,
1042
- className: [
1043
- "ds:z-[var(--z-tooltip)] ds:max-w-[16rem]",
1044
- "ds:rounded-[var(--radius-sm)]",
1045
- "ds:bg-[var(--foreground)] ds:text-[var(--background)]",
1046
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[length:var(--font-size-xs)]",
1047
- "ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none"
1048
- ].join(" "),
1049
- children: [
1050
- l,
1051
- /* @__PURE__ */ a(S.Arrow, { className: "ds:fill-[var(--foreground)]" })
1052
- ]
1112
+ "aria-hidden": "true",
1113
+ className: "ds:size-4 ds:rtl:-scale-x-100"
1053
1114
  }
1054
- ) })
1055
- ] });
1056
- }
1057
- );
1058
- $s.displayName = "SidebarCollapseTrigger";
1115
+ ) : /* @__PURE__ */ a(
1116
+ vs,
1117
+ {
1118
+ "aria-hidden": "true",
1119
+ className: "ds:size-4 ds:rtl:-scale-x-100"
1120
+ }
1121
+ )
1122
+ }
1123
+ );
1124
+ return /* @__PURE__ */ f(S.Root, { children: [
1125
+ /* @__PURE__ */ a(S.Trigger, { asChild: !0, children: p }),
1126
+ /* @__PURE__ */ a(S.Portal, { children: /* @__PURE__ */ f(
1127
+ S.Content,
1128
+ {
1129
+ side: u === "icon" ? "right" : "top",
1130
+ sideOffset: 6,
1131
+ className: [
1132
+ "ds:z-[var(--z-tooltip)] ds:max-w-[16rem]",
1133
+ "ds:rounded-[var(--radius-sm)]",
1134
+ "ds:bg-[var(--foreground)] ds:text-[var(--background)]",
1135
+ "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[length:var(--font-size-xs)]",
1136
+ "ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none"
1137
+ ].join(" "),
1138
+ children: [
1139
+ l,
1140
+ /* @__PURE__ */ a(S.Arrow, { className: "ds:fill-[var(--foreground)]" })
1141
+ ]
1142
+ }
1143
+ ) })
1144
+ ] });
1145
+ });
1146
+ Gs.displayName = "SidebarCollapseTrigger";
1059
1147
  export {
1060
- xs as S,
1061
- ws as a,
1062
- $s as b,
1063
- Es as c,
1064
- Hs as d,
1065
- Ns as e,
1066
- zs as f,
1067
- ys as g,
1068
- W as h,
1069
- Bs as i,
1070
- Cs as j,
1071
- Ts as k,
1072
- _ as l,
1073
- Rs as m,
1074
- Ms as n,
1075
- J as o,
1076
- Is as p,
1148
+ ws as S,
1149
+ Ss as a,
1150
+ Gs as b,
1151
+ Ms as c,
1152
+ Es as d,
1153
+ js as e,
1154
+ Cs as f,
1155
+ Ns as g,
1156
+ Q as h,
1157
+ Ds as i,
1158
+ Is as j,
1159
+ Bs as k,
1160
+ V as l,
1161
+ Hs as m,
1162
+ $s as n,
1163
+ Y as o,
1164
+ Rs as p,
1077
1165
  y as q,
1078
- Zs as u
1166
+ hs as s,
1167
+ ae as u
1079
1168
  };
1080
- //# sourceMappingURL=sidebar-CHF5xr_P.js.map
1169
+ //# sourceMappingURL=sidebar-Bx3wCDyy.js.map