@alfadocs/ui-kit-debug 1.57.0 → 1.58.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 (277) hide show
  1. package/dist/_chunks/{address-fields-BfjxS05Z.js → address-fields-CJtu7LQU.js} +2 -2
  2. package/dist/_chunks/{address-fields-BfjxS05Z.js.map → address-fields-CJtu7LQU.js.map} +1 -1
  3. package/dist/_chunks/{alia-sidebar-BBKBJCv6.js → alia-sidebar-dybRpWml.js} +2 -2
  4. package/dist/_chunks/{alia-sidebar-BBKBJCv6.js.map → alia-sidebar-dybRpWml.js.map} +1 -1
  5. package/dist/_chunks/{anamnesis-summary-rows-CCQ62mMN.js → anamnesis-summary-rows-M-FUkw9p.js} +3 -3
  6. package/dist/_chunks/{anamnesis-summary-rows-CCQ62mMN.js.map → anamnesis-summary-rows-M-FUkw9p.js.map} +1 -1
  7. package/dist/_chunks/{app-frame-B-0O9CrU.js → app-frame-CqmDh2v5.js} +2 -2
  8. package/dist/_chunks/{app-frame-B-0O9CrU.js.map → app-frame-CqmDh2v5.js.map} +1 -1
  9. package/dist/_chunks/{balance-badge-cell-CII3SDmR.js → balance-badge-cell-CGoJZlKf.js} +3 -3
  10. package/dist/_chunks/{balance-badge-cell-CII3SDmR.js.map → balance-badge-cell-CGoJZlKf.js.map} +1 -1
  11. package/dist/_chunks/{booking-81WnKDsH.js → booking-CiFSAMR-.js} +2 -2
  12. package/dist/_chunks/{booking-81WnKDsH.js.map → booking-CiFSAMR-.js.map} +1 -1
  13. package/dist/_chunks/{calendar-workspace-D5-k_9zE.js → calendar-workspace-DNHzjG7O.js} +12 -12
  14. package/dist/_chunks/calendar-workspace-DNHzjG7O.js.map +1 -0
  15. package/dist/_chunks/{chart-DQ5GxqgT.js → chart-ZMkX-Gqy.js} +28 -28
  16. package/dist/_chunks/{chart-DQ5GxqgT.js.map → chart-ZMkX-Gqy.js.map} +1 -1
  17. package/dist/_chunks/{city-input-BC_nYINn.js → city-input-3J3bz9EO.js} +2 -2
  18. package/dist/_chunks/{city-input-BC_nYINn.js.map → city-input-3J3bz9EO.js.map} +1 -1
  19. package/dist/_chunks/{control-room-rail-Tx2jW250.js → control-room-rail-CJ85HkS2.js} +2 -2
  20. package/dist/_chunks/{control-room-rail-Tx2jW250.js.map → control-room-rail-CJ85HkS2.js.map} +1 -1
  21. package/dist/_chunks/dashboard-grid-Cs7cJAsA.js +933 -0
  22. package/dist/_chunks/dashboard-grid-Cs7cJAsA.js.map +1 -0
  23. package/dist/_chunks/{data-table-fAMTeAjM.js → data-table-Yn5xiGzs.js} +2 -2
  24. package/dist/_chunks/{data-table-fAMTeAjM.js.map → data-table-Yn5xiGzs.js.map} +1 -1
  25. package/dist/_chunks/{face-scheme-BicuUA2K.js → face-scheme-DSKDdIsb.js} +2 -2
  26. package/dist/_chunks/{face-scheme-BicuUA2K.js.map → face-scheme-DSKDdIsb.js.map} +1 -1
  27. package/dist/_chunks/{file-manager-CFsL1KVt.js → file-manager-DEtkQR1F.js} +3 -3
  28. package/dist/_chunks/{file-manager-CFsL1KVt.js.map → file-manager-DEtkQR1F.js.map} +1 -1
  29. package/dist/_chunks/{forgot-password-form-DEx-M_QR.js → forgot-password-form-CEqOmNuX.js} +2 -2
  30. package/dist/_chunks/{forgot-password-form-DEx-M_QR.js.map → forgot-password-form-CEqOmNuX.js.map} +1 -1
  31. package/dist/_chunks/{heatmap-BEeOThkW.js → heatmap-DiyOSQk9.js} +2 -2
  32. package/dist/_chunks/{heatmap-BEeOThkW.js.map → heatmap-DiyOSQk9.js.map} +1 -1
  33. package/dist/_chunks/{help-me-write-templates-BUoYGo6f.js → help-me-write-templates-CM1p6qkm.js} +2 -2
  34. package/dist/_chunks/{help-me-write-templates-BUoYGo6f.js.map → help-me-write-templates-CM1p6qkm.js.map} +1 -1
  35. package/dist/_chunks/{icon-picker-C86lQTIA.js → icon-picker-rOFTawXk.js} +2 -2
  36. package/dist/_chunks/{icon-picker-C86lQTIA.js.map → icon-picker-rOFTawXk.js.map} +1 -1
  37. package/dist/_chunks/{link-cell-renderer-CxW_oLa5.js → link-cell-renderer-C1wOyxDF.js} +2 -2
  38. package/dist/_chunks/{link-cell-renderer-CxW_oLa5.js.map → link-cell-renderer-C1wOyxDF.js.map} +1 -1
  39. package/dist/_chunks/{list-RRN2TJ_7.js → list-CNnn7DOD.js} +75 -73
  40. package/dist/_chunks/list-CNnn7DOD.js.map +1 -0
  41. package/dist/_chunks/{login-dev-card-DmZ1B0lB.js → login-dev-card-CIim81VB.js} +2 -2
  42. package/dist/_chunks/{login-dev-card-DmZ1B0lB.js.map → login-dev-card-CIim81VB.js.map} +1 -1
  43. package/dist/_chunks/marketplace-app-shell-CSDmGLPW.js +613 -0
  44. package/dist/_chunks/marketplace-app-shell-CSDmGLPW.js.map +1 -0
  45. package/dist/_chunks/{message-tray-QKQutwxj.js → message-tray-DmU0poD7.js} +2 -2
  46. package/dist/_chunks/{message-tray-QKQutwxj.js.map → message-tray-DmU0poD7.js.map} +1 -1
  47. package/dist/_chunks/navigation-dismiss-B1mcW1CT.js +9 -0
  48. package/dist/_chunks/navigation-dismiss-B1mcW1CT.js.map +1 -0
  49. package/dist/_chunks/{notes-panel-Cm4pttpl.js → notes-panel-DHLHsxpW.js} +2 -2
  50. package/dist/_chunks/{notes-panel-Cm4pttpl.js.map → notes-panel-DHLHsxpW.js.map} +1 -1
  51. package/dist/_chunks/{notification-tray-C5VtbGjd.js → notification-tray-DPU-Xg0i.js} +2 -2
  52. package/dist/_chunks/{notification-tray-C5VtbGjd.js.map → notification-tray-DPU-Xg0i.js.map} +1 -1
  53. package/dist/_chunks/{panel-subview-BT-Apwgb.js → panel-subview-D4o6ar6_.js} +61 -47
  54. package/dist/_chunks/panel-subview-D4o6ar6_.js.map +1 -0
  55. package/dist/_chunks/{patient-details-99kEdtc5.js → patient-details-BCaVuaXz.js} +2 -2
  56. package/dist/_chunks/{patient-details-99kEdtc5.js.map → patient-details-BCaVuaXz.js.map} +1 -1
  57. package/dist/_chunks/{patient-field-row-DkxY13T6.js → patient-field-row-jcRSTrp4.js} +3 -3
  58. package/dist/_chunks/{patient-field-row-DkxY13T6.js.map → patient-field-row-jcRSTrp4.js.map} +1 -1
  59. package/dist/_chunks/{patient-summary-card-opdyfeW2.js → patient-summary-card-kQIfPQOE.js} +2 -2
  60. package/dist/_chunks/{patient-summary-card-opdyfeW2.js.map → patient-summary-card-kQIfPQOE.js.map} +1 -1
  61. package/dist/_chunks/{payment-automation-upsell-DiHovmUL.js → payment-automation-upsell-C4wHOxsp.js} +2 -2
  62. package/dist/_chunks/{payment-automation-upsell-DiHovmUL.js.map → payment-automation-upsell-C4wHOxsp.js.map} +1 -1
  63. package/dist/_chunks/{practice-results-CfRkjzsI.js → practice-results-D07wgCqV.js} +2 -2
  64. package/dist/_chunks/{practice-results-CfRkjzsI.js.map → practice-results-D07wgCqV.js.map} +1 -1
  65. package/dist/_chunks/{product-hub-panel-DlVRK7Ue.js → product-hub-panel-DCYX0rPG.js} +2 -2
  66. package/dist/_chunks/{product-hub-panel-DlVRK7Ue.js.map → product-hub-panel-DCYX0rPG.js.map} +1 -1
  67. package/dist/_chunks/{public-header.agent-BctevbuY.js → public-header.agent-C1SlVSYt.js} +2 -2
  68. package/dist/_chunks/{public-header.agent-BctevbuY.js.map → public-header.agent-C1SlVSYt.js.map} +1 -1
  69. package/dist/_chunks/{registration-form-BlTzYywa.js → registration-form-DrSR9Sjk.js} +3 -3
  70. package/dist/_chunks/{registration-form-BlTzYywa.js.map → registration-form-DrSR9Sjk.js.map} +1 -1
  71. package/dist/_chunks/{rich-text-editor-DTnNZ4Ff.js → rich-text-editor-UgXri8h6.js} +2 -2
  72. package/dist/_chunks/{rich-text-editor-DTnNZ4Ff.js.map → rich-text-editor-UgXri8h6.js.map} +1 -1
  73. package/dist/_chunks/{scroll-area-ZtFCv9K7.js → scroll-area-CY5SLYNw.js} +104 -74
  74. package/dist/_chunks/scroll-area-CY5SLYNw.js.map +1 -0
  75. package/dist/_chunks/{search-bar-DQJS0wJN.js → search-bar-mA4bPe3t.js} +294 -255
  76. package/dist/_chunks/search-bar-mA4bPe3t.js.map +1 -0
  77. package/dist/_chunks/{sheet-8qsiMoUI.js → sheet-Dtjk0CVv.js} +2 -2
  78. package/dist/_chunks/{sheet-8qsiMoUI.js.map → sheet-Dtjk0CVv.js.map} +1 -1
  79. package/dist/_chunks/sidebar-D4Wllqfz.js +2029 -0
  80. package/dist/_chunks/sidebar-D4Wllqfz.js.map +1 -0
  81. package/dist/_chunks/{signature-request-DRuYAG5I.js → signature-request-dAVgE0_5.js} +2 -2
  82. package/dist/_chunks/{signature-request-DRuYAG5I.js.map → signature-request-dAVgE0_5.js.map} +1 -1
  83. package/dist/_chunks/{signed-out-frame-AhMsNW1r.js → signed-out-frame-DOJpobp8.js} +2 -2
  84. package/dist/_chunks/{signed-out-frame-AhMsNW1r.js.map → signed-out-frame-DOJpobp8.js.map} +1 -1
  85. package/dist/_chunks/{state-backed-text-input-DECQy5aA.js → state-backed-text-input-Cgh4ms3p.js} +2 -2
  86. package/dist/_chunks/{state-backed-text-input-DECQy5aA.js.map → state-backed-text-input-Cgh4ms3p.js.map} +1 -1
  87. package/dist/_chunks/{task-editor-NkcopDna.js → task-editor-BflEZmcF.js} +5 -4
  88. package/dist/_chunks/task-editor-BflEZmcF.js.map +1 -0
  89. package/dist/_chunks/{tool-rail-Bwyuw_Ot.js → tool-rail-CTq1KwxW.js} +115 -114
  90. package/dist/_chunks/{tool-rail-Bwyuw_Ot.js.map → tool-rail-CTq1KwxW.js.map} +1 -1
  91. package/dist/_chunks/{use-appointment-details-read-CfFQNOF_.js → use-appointment-details-read-izwoXh-G.js} +6 -6
  92. package/dist/_chunks/{use-appointment-details-read-CfFQNOF_.js.map → use-appointment-details-read-izwoXh-G.js.map} +1 -1
  93. package/dist/_chunks/use-state-backed-input-DhRQo6gM.js +57 -0
  94. package/dist/_chunks/use-state-backed-input-DhRQo6gM.js.map +1 -0
  95. package/dist/_chunks/{voice-control-panel-BKbgb7FM.js → voice-control-panel-an-bpQfF.js} +2 -2
  96. package/dist/_chunks/{voice-control-panel-BKbgb7FM.js.map → voice-control-panel-an-bpQfF.js.map} +1 -1
  97. package/dist/_chunks/{widget-picker-rBA7MR5P.js → widget-picker-DlJOgYrZ.js} +80 -57
  98. package/dist/_chunks/widget-picker-DlJOgYrZ.js.map +1 -0
  99. package/dist/agent-catalog.json +2 -2
  100. package/dist/agent-i18n/en.json +1 -1
  101. package/dist/components/_shared/navigation-dismiss.d.ts +8 -0
  102. package/dist/components/_shared/navigation-dismiss.d.ts.map +1 -0
  103. package/dist/components/_shared/use-state-backed-input.d.ts +3 -2
  104. package/dist/components/_shared/use-state-backed-input.d.ts.map +1 -1
  105. package/dist/components/address-fields/index.js +1 -1
  106. package/dist/components/app-frame/index.js +1 -1
  107. package/dist/components/appointment-details-panel/index.js +1 -1
  108. package/dist/components/booking/index.js +1 -1
  109. package/dist/components/chart/chart.d.ts.map +1 -1
  110. package/dist/components/chart/index.js +1 -1
  111. package/dist/components/city-input/index.js +1 -1
  112. package/dist/components/control-room-rail/index.js +1 -1
  113. package/dist/components/dashboard-grid/dashboard-grid.d.ts +33 -8
  114. package/dist/components/dashboard-grid/dashboard-grid.d.ts.map +1 -1
  115. package/dist/components/dashboard-grid/index.js +1 -1
  116. package/dist/components/data-table/index.js +2 -2
  117. package/dist/components/face-scheme/index.js +1 -1
  118. package/dist/components/file-manager/index.js +1 -1
  119. package/dist/components/heatmap/index.js +1 -1
  120. package/dist/components/icon-picker/index.js +1 -1
  121. package/dist/components/list/index.js +1 -1
  122. package/dist/components/list/list.d.ts.map +1 -1
  123. package/dist/components/message-tray/index.js +1 -1
  124. package/dist/components/notes-panel/index.js +1 -1
  125. package/dist/components/notification-tray/index.js +1 -1
  126. package/dist/components/panel-subview/index.js +1 -1
  127. package/dist/components/panel-subview/panel-subview.d.ts.map +1 -1
  128. package/dist/components/patient-details/index.js +1 -1
  129. package/dist/components/patient-summary-card/index.js +1 -1
  130. package/dist/components/patient-table/index.js +1 -1
  131. package/dist/components/practice-results/index.js +1 -1
  132. package/dist/components/product-hub-tray/index.js +1 -1
  133. package/dist/components/public-header/index.js +1 -1
  134. package/dist/components/rich-text-editor/index.js +1 -1
  135. package/dist/components/scroll-area/index.js +1 -1
  136. package/dist/components/scroll-area/scroll-area.d.ts +6 -5
  137. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
  138. package/dist/components/search-bar/index.js +1 -1
  139. package/dist/components/search-bar/search-bar.d.ts +1 -1
  140. package/dist/components/search-bar/search-bar.d.ts.map +1 -1
  141. package/dist/components/sheet/index.js +1 -1
  142. package/dist/components/sidebar/index.d.ts +1 -1
  143. package/dist/components/sidebar/index.d.ts.map +1 -1
  144. package/dist/components/sidebar/index.js +1 -1
  145. package/dist/components/sidebar/sidebar-move.d.ts +88 -0
  146. package/dist/components/sidebar/sidebar-move.d.ts.map +1 -0
  147. package/dist/components/sidebar/sidebar.d.ts +26 -1
  148. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  149. package/dist/components/task-editor/index.js +1 -1
  150. package/dist/components/task-editor/task-editor.d.ts.map +1 -1
  151. package/dist/components/tool-rail/index.js +1 -1
  152. package/dist/components/tool-rail/tool-rail.d.ts.map +1 -1
  153. package/dist/components/voice-control-panel/index.js +1 -1
  154. package/dist/components/widget-picker/index.js +1 -1
  155. package/dist/components/widget-picker/widget-picker.d.ts.map +1 -1
  156. package/dist/host-compat.css +2 -1
  157. package/dist/i18n/locales/ar.d.ts +10 -0
  158. package/dist/i18n/locales/ar.d.ts.map +1 -1
  159. package/dist/i18n/locales/ar.js +11 -1
  160. package/dist/i18n/locales/ar.js.map +1 -1
  161. package/dist/i18n/locales/de.d.ts +10 -0
  162. package/dist/i18n/locales/de.d.ts.map +1 -1
  163. package/dist/i18n/locales/de.js +11 -1
  164. package/dist/i18n/locales/de.js.map +1 -1
  165. package/dist/i18n/locales/el.d.ts +10 -0
  166. package/dist/i18n/locales/el.d.ts.map +1 -1
  167. package/dist/i18n/locales/el.js +11 -1
  168. package/dist/i18n/locales/el.js.map +1 -1
  169. package/dist/i18n/locales/en.d.ts +10 -0
  170. package/dist/i18n/locales/en.d.ts.map +1 -1
  171. package/dist/i18n/locales/en.js +11 -1
  172. package/dist/i18n/locales/en.js.map +1 -1
  173. package/dist/i18n/locales/es.d.ts +10 -0
  174. package/dist/i18n/locales/es.d.ts.map +1 -1
  175. package/dist/i18n/locales/es.js +11 -1
  176. package/dist/i18n/locales/es.js.map +1 -1
  177. package/dist/i18n/locales/fr.d.ts +10 -0
  178. package/dist/i18n/locales/fr.d.ts.map +1 -1
  179. package/dist/i18n/locales/fr.js +11 -1
  180. package/dist/i18n/locales/fr.js.map +1 -1
  181. package/dist/i18n/locales/hi.d.ts +10 -0
  182. package/dist/i18n/locales/hi.d.ts.map +1 -1
  183. package/dist/i18n/locales/hi.js +11 -1
  184. package/dist/i18n/locales/hi.js.map +1 -1
  185. package/dist/i18n/locales/it.d.ts +10 -0
  186. package/dist/i18n/locales/it.d.ts.map +1 -1
  187. package/dist/i18n/locales/it.js +11 -1
  188. package/dist/i18n/locales/it.js.map +1 -1
  189. package/dist/i18n/locales/ja.d.ts +10 -0
  190. package/dist/i18n/locales/ja.d.ts.map +1 -1
  191. package/dist/i18n/locales/ja.js +11 -1
  192. package/dist/i18n/locales/ja.js.map +1 -1
  193. package/dist/i18n/locales/nl.d.ts +10 -0
  194. package/dist/i18n/locales/nl.d.ts.map +1 -1
  195. package/dist/i18n/locales/nl.js +11 -1
  196. package/dist/i18n/locales/nl.js.map +1 -1
  197. package/dist/i18n/locales/pl.d.ts +10 -0
  198. package/dist/i18n/locales/pl.d.ts.map +1 -1
  199. package/dist/i18n/locales/pl.js +11 -1
  200. package/dist/i18n/locales/pl.js.map +1 -1
  201. package/dist/i18n/locales/pt.d.ts +10 -0
  202. package/dist/i18n/locales/pt.d.ts.map +1 -1
  203. package/dist/i18n/locales/pt.js +11 -1
  204. package/dist/i18n/locales/pt.js.map +1 -1
  205. package/dist/i18n/locales/ro.d.ts +10 -0
  206. package/dist/i18n/locales/ro.d.ts.map +1 -1
  207. package/dist/i18n/locales/ro.js +11 -1
  208. package/dist/i18n/locales/ro.js.map +1 -1
  209. package/dist/i18n/locales/ru.d.ts +10 -0
  210. package/dist/i18n/locales/ru.d.ts.map +1 -1
  211. package/dist/i18n/locales/ru.js +11 -1
  212. package/dist/i18n/locales/ru.js.map +1 -1
  213. package/dist/i18n/locales/sq.d.ts +10 -0
  214. package/dist/i18n/locales/sq.d.ts.map +1 -1
  215. package/dist/i18n/locales/sq.js +11 -1
  216. package/dist/i18n/locales/sq.js.map +1 -1
  217. package/dist/i18n/locales/sv.d.ts +10 -0
  218. package/dist/i18n/locales/sv.d.ts.map +1 -1
  219. package/dist/i18n/locales/sv.js +11 -1
  220. package/dist/i18n/locales/sv.js.map +1 -1
  221. package/dist/i18n/locales/tr.d.ts +10 -0
  222. package/dist/i18n/locales/tr.d.ts.map +1 -1
  223. package/dist/i18n/locales/tr.js +11 -1
  224. package/dist/i18n/locales/tr.js.map +1 -1
  225. package/dist/i18n/locales/zh.d.ts +10 -0
  226. package/dist/i18n/locales/zh.d.ts.map +1 -1
  227. package/dist/i18n/locales/zh.js +11 -1
  228. package/dist/i18n/locales/zh.js.map +1 -1
  229. package/dist/index.js +44 -44
  230. package/dist/locales/ar.json +11 -1
  231. package/dist/locales/de.json +11 -1
  232. package/dist/locales/el.json +11 -1
  233. package/dist/locales/en.json +11 -1
  234. package/dist/locales/es.json +11 -1
  235. package/dist/locales/fr.json +11 -1
  236. package/dist/locales/hi.json +11 -1
  237. package/dist/locales/it.json +11 -1
  238. package/dist/locales/ja.json +11 -1
  239. package/dist/locales/nl.json +11 -1
  240. package/dist/locales/pl.json +11 -1
  241. package/dist/locales/pt.json +11 -1
  242. package/dist/locales/ro.json +11 -1
  243. package/dist/locales/ru.json +11 -1
  244. package/dist/locales/sq.json +11 -1
  245. package/dist/locales/sv.json +11 -1
  246. package/dist/locales/tr.json +11 -1
  247. package/dist/locales/zh.json +11 -1
  248. package/dist/patterns/alia-assistant/index.js +1 -1
  249. package/dist/patterns/anamnesis/index.js +1 -1
  250. package/dist/patterns/calendar/index.js +1 -1
  251. package/dist/patterns/forgot-password-form/index.js +1 -1
  252. package/dist/patterns/help-me-write-templates/index.js +1 -1
  253. package/dist/patterns/login-form/index.js +1 -1
  254. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  255. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +34 -9
  256. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts.map +1 -1
  257. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  258. package/dist/patterns/registration-form/index.js +1 -1
  259. package/dist/patterns/signature-request/index.js +1 -1
  260. package/dist/patterns/signed-out-frame/index.js +1 -1
  261. package/dist/tokens.css +1 -1
  262. package/package.json +1 -1
  263. package/dist/_chunks/calendar-workspace-D5-k_9zE.js.map +0 -1
  264. package/dist/_chunks/dashboard-grid-DfEY2qci.js +0 -844
  265. package/dist/_chunks/dashboard-grid-DfEY2qci.js.map +0 -1
  266. package/dist/_chunks/list-RRN2TJ_7.js.map +0 -1
  267. package/dist/_chunks/marketplace-app-shell-BZcA9Z06.js +0 -555
  268. package/dist/_chunks/marketplace-app-shell-BZcA9Z06.js.map +0 -1
  269. package/dist/_chunks/panel-subview-BT-Apwgb.js.map +0 -1
  270. package/dist/_chunks/scroll-area-ZtFCv9K7.js.map +0 -1
  271. package/dist/_chunks/search-bar-DQJS0wJN.js.map +0 -1
  272. package/dist/_chunks/sidebar-DLsG2AIk.js +0 -1349
  273. package/dist/_chunks/sidebar-DLsG2AIk.js.map +0 -1
  274. package/dist/_chunks/task-editor-NkcopDna.js.map +0 -1
  275. package/dist/_chunks/use-state-backed-input-C7ESmxKB.js +0 -59
  276. package/dist/_chunks/use-state-backed-input-C7ESmxKB.js.map +0 -1
  277. package/dist/_chunks/widget-picker-rBA7MR5P.js.map +0 -1
@@ -1,1349 +0,0 @@
1
- import { jsx as s, jsxs as u, Fragment as X } from "react/jsx-runtime";
2
- import { forwardRef as b, useState as B, useEffect as L, useCallback as Q, useRef as G, useMemo as O, useId as ns, useContext as q, createContext as Z } from "react";
3
- import * as R from "@radix-ui/react-dialog";
4
- import * as M from "@radix-ui/react-collapsible";
5
- import * as E from "@radix-ui/react-accordion";
6
- import * as h from "@radix-ui/react-tooltip";
7
- import { a as os } from "./accordion-Ch3xp0mX.js";
8
- import { S as ts } from "./scroll-area-ZtFCv9K7.js";
9
- import { Slot as ls } from "@radix-ui/react-slot";
10
- import { c as T } from "./index-D2ZczOXr.js";
11
- import { useTranslation as A } from "react-i18next";
12
- import { u as cs } from "./registry-DvAUVLHh.js";
13
- import { u as us } from "./use-edge-resize-DHbyQwu8.js";
14
- import { c as ms } from "./compose-refs-C0k0tdqF.js";
15
- import { a as vs, b as ps, d as fs } from "./input-surface-iBmxVBfr.js";
16
- import { X as gs } from "./x-B5YnXwCz.js";
17
- import { c as ss } from "./createLucideIcon-DhHxpK9K.js";
18
- import { G as bs } from "./grip-vertical-onSb1JXO.js";
19
- import { C as H } from "./chevron-right-I9AeSxH2.js";
20
- import { S as hs } from "./star-Bf9L2Uot.js";
21
- import { T as xs } from "./trending-up-C_luYBzS.js";
22
- /**
23
- * @license lucide-react v1.22.0 - ISC
24
- *
25
- * This source code is licensed under the ISC license.
26
- * See the LICENSE file in the root directory of this source tree.
27
- */
28
- const ys = [
29
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
30
- ["path", { d: "M9 3v18", key: "fh3hqa" }],
31
- ["path", { d: "m16 15-3-3 3-3", key: "14y99z" }]
32
- ], ws = ss("panel-left-close", ys);
33
- /**
34
- * @license lucide-react v1.22.0 - ISC
35
- *
36
- * This source code is licensed under the ISC license.
37
- * See the LICENSE file in the root directory of this source tree.
38
- */
39
- const Ns = [
40
- ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
41
- ["path", { d: "M9 3v18", key: "fh3hqa" }],
42
- ["path", { d: "m14 9 3 3-3 3", key: "8010ee" }]
43
- ], zs = ss("panel-left-open", Ns), Ss = {
44
- id: "sidebar",
45
- capabilities: ["expand"],
46
- state: {
47
- isCollapsed: {
48
- type: "boolean",
49
- descriptionKey: "ui.agent.sidebar.state.isCollapsed",
50
- description: "True when the sidebar is in its collapsed (rail) state.",
51
- read: (e) => e.getIsCollapsed()
52
- }
53
- },
54
- actions: {
55
- toggle_collapsed: {
56
- // Pure ephemeral chrome state — toggling the rail loses no data.
57
- safety: "read",
58
- descriptionKey: "ui.agent.sidebar.actions.toggleCollapsed",
59
- description: "Toggle the sidebar between collapsed and expanded.",
60
- invoke: (e) => {
61
- e.toggleCollapsed();
62
- }
63
- }
64
- },
65
- domHooks: {
66
- root: { attr: "data-component", value: "sidebar" },
67
- instanceId: {
68
- attr: "data-component-id",
69
- sourceProp: "id",
70
- description: "Sourced from the id prop."
71
- },
72
- item: {
73
- attr: "data-nav-id",
74
- sourceProp: "navId",
75
- description: "Each Sidebar.Item emits its `navId` prop as data-nav-id. Agents activate a nav item via native click on the matching anchor."
76
- }
77
- }
78
- }, $ = Z({
79
- mode: "expanded",
80
- density: "default"
81
- }), w = () => q($), es = "ui.sidebar.state";
82
- function js(e) {
83
- if (typeof window > "u") return e;
84
- try {
85
- const a = window.localStorage.getItem(es);
86
- if (a === "expanded" || a === "icon" || a === "overlay") return a;
87
- } catch {
88
- }
89
- return e;
90
- }
91
- function Cs(e) {
92
- if (!(typeof window > "u"))
93
- try {
94
- window.localStorage.setItem(es, e);
95
- } catch {
96
- }
97
- }
98
- const Y = T(
99
- [
100
- "ds:flex ds:flex-col",
101
- // `--sidebar-surface`: the page background in light mode (white-on-white
102
- // chrome separated by --shadow-md). In dark mode the Header already
103
- // blends with --background, so the token steps the sidebar one layer
104
- // down (blue-600) to keep it visually distinct from the header band —
105
- // matches the PDF dark mockups' "flat Dark Blue surface with subtle
106
- // depth via layering" recipe. A token, so a light sidebar nested in a
107
- // dark page stays light.
108
- "ds:bg-[var(--sidebar-surface,var(--background))] ds:text-[var(--foreground)]",
109
- // The inline-end hairline is drawn in the accessible themes only
110
- // (--accessible-edge-width is 0 elsewhere).
111
- "ds:[:where(&)]:border-e-[length:var(--accessible-edge-width,0px)] ds:border-[var(--border)]",
112
- // Elevation is set per mode below. Forced colours strip shadows, so
113
- // there only the accessible themes' `border-e` separates the rail.
114
- //
115
- // `relative z-[1]` lifts the rail above any sibling that paints a
116
- // solid background (e.g. AppFrame's `<main>` surface), otherwise
117
- // the shadow that projects towards the inline-end gets covered.
118
- "ds:relative ds:z-[1]",
119
- "ds:h-full",
120
- "ds:transition-[inline-size] ds:duration-[var(--animation-duration)]",
121
- "ds:motion-reduce:transition-none",
122
- // While the resize handle is dragging, the width must track the
123
- // pointer 1:1 — the data attribute suppresses the width transition.
124
- "ds:data-[resizing]:transition-none"
125
- ].join(" "),
126
- {
127
- variants: {
128
- // Tokenised widths (Linear / Jira proportions) and one elevation per
129
- // mode: chrome `--shadow-md` docked, `--shadow-xl` for the drawer, none
130
- // in the accessible themes. `[:where(&)]` lets a className shadow win.
131
- mode: {
132
- expanded: "ds:w-[var(--sidebar-modern-expanded-size)] ds:[:where(&)]:[box-shadow:var(--accessible-off,var(--shadow-md))]",
133
- icon: "ds:w-[var(--sidebar-modern-icon-size)] ds:[:where(&)]:[box-shadow:var(--accessible-off,var(--shadow-md))]",
134
- overlay: "ds:w-[var(--sidebar-modern-expanded-size)] ds:[:where(&)]:[box-shadow:var(--accessible-off,var(--shadow-xl))]"
135
- },
136
- density: {
137
- default: "",
138
- compact: ""
139
- }
140
- },
141
- defaultVariants: { mode: "expanded", density: "default" }
142
- }
143
- ), ks = 192, Ts = 384, Is = 248, Rs = [
144
- "ds:absolute ds:[inset-block:0] ds:end-0 ds:z-[2]",
145
- "ds:w-[var(--resizable-handle-size)]",
146
- "ds:cursor-col-resize ds:select-none ds:touch-none",
147
- "ds:hover:bg-[var(--accent)] ds:focus-visible:bg-[var(--accent)]",
148
- "ds:data-[resizing]:bg-[var(--accent)]",
149
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
150
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
151
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
152
- "ds:forced-colors:focus-visible:outline-[CanvasText]",
153
- "ds:before:absolute ds:before:content-['']",
154
- "ds:before:[inset-block:0]",
155
- "ds:before:[inline-size:var(--min-target-size)]",
156
- "ds:before:[inset-inline:calc(0px_-_(var(--min-target-size)_-_var(--resizable-handle-size))_/_2)]"
157
- ].join(" "), Bs = b(
158
- ({
159
- state: e,
160
- defaultState: a = "expanded",
161
- onStateChange: r,
162
- density: d = "default",
163
- open: n,
164
- onOpenChange: t,
165
- resizable: o = !1,
166
- "aria-label": l,
167
- className: c,
168
- children: m,
169
- id: f,
170
- ...g
171
- }, y) => {
172
- const { t: x } = A("ui"), i = e !== void 0, [N, z] = B(
173
- () => i ? e : js(a)
174
- ), v = i ? e : N;
175
- L(() => {
176
- i || Cs(N);
177
- }, [N, i]);
178
- const S = Q(
179
- (k) => {
180
- i || z(k), r == null || r(k);
181
- },
182
- [i, r]
183
- ), j = l ?? x("navigation.sidebar.label"), C = G(v);
184
- L(() => {
185
- C.current = v;
186
- }, [v]);
187
- const F = O(
188
- () => ({
189
- getIsCollapsed: () => C.current !== "expanded",
190
- toggleCollapsed: () => {
191
- const k = C.current === "expanded" ? "icon" : "expanded";
192
- S(k);
193
- }
194
- }),
195
- [S]
196
- );
197
- cs(Ss, F, f);
198
- const D = G(null), P = O(() => ms(y, D), [y]), { separatorProps: U, isResizing: _ } = us({
199
- edge: "inline-end",
200
- targetRef: D,
201
- cssProperty: "--sidebar-modern-expanded-size",
202
- minSize: ks,
203
- maxSize: Ts,
204
- defaultSize: Is,
205
- disabled: !o || v !== "expanded"
206
- }), V = o && v === "expanded";
207
- return v === "overlay" ? /* @__PURE__ */ s(
208
- $.Provider,
209
- {
210
- value: { mode: "overlay", density: d, transitionTo: S },
211
- children: /* @__PURE__ */ s(R.Root, { open: n, onOpenChange: t, children: /* @__PURE__ */ u(R.Portal, { children: [
212
- /* @__PURE__ */ s(
213
- R.Overlay,
214
- {
215
- className: [
216
- "ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]",
217
- "ds:bg-[var(--foreground)]/20 ds:backdrop-blur-sm",
218
- "ds:data-[state=open]:animate-in ds:data-[state=open]:fade-in",
219
- "ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out",
220
- "ds:motion-reduce:animate-none"
221
- ].join(" ")
222
- }
223
- ),
224
- /* @__PURE__ */ u(
225
- R.Content,
226
- {
227
- "aria-label": j,
228
- className: [
229
- "ds:fixed ds:z-[var(--z-modal)]",
230
- // `start-0`/`top-0` — the `inset-inline-start-0` /
231
- // `inset-block-start-0` spellings are not Tailwind
232
- // utilities and compiled to nothing.
233
- "ds:start-0 ds:top-0",
234
- "ds:h-dvh",
235
- Y({ mode: "overlay", density: d }),
236
- "ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
237
- "ds:data-[state=open]:slide-in-from-left ds:data-[state=closed]:slide-out-to-left",
238
- "ds:rtl:data-[state=open]:slide-in-from-right ds:rtl:data-[state=closed]:slide-out-to-right",
239
- "ds:motion-reduce:animate-none",
240
- "ds:focus:outline-none",
241
- c ?? ""
242
- ].filter(Boolean).join(" "),
243
- children: [
244
- /* @__PURE__ */ s(
245
- "nav",
246
- {
247
- ref: P,
248
- id: f,
249
- "aria-label": j,
250
- "data-component": "sidebar",
251
- "data-component-id": f,
252
- className: "ds:flex ds:flex-col ds:h-full",
253
- ...g,
254
- children: m
255
- }
256
- ),
257
- /* @__PURE__ */ s(R.Close, { asChild: !0, children: /* @__PURE__ */ s(
258
- "button",
259
- {
260
- type: "button",
261
- "aria-label": x("navigation.sidebar.close"),
262
- className: [
263
- "ds:absolute ds:top-[var(--spacing-sm)] ds:end-[var(--spacing-sm)]",
264
- "ds:inline-flex ds:items-center ds:justify-center",
265
- "ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]",
266
- "ds:rounded-[var(--radius-sm)] ds:text-[var(--muted-foreground)]",
267
- "ds:hover:bg-[var(--muted)]/20 ds:focus-visible:outline-[length:var(--focus-ring-width)]",
268
- "ds:focus-visible:outline-solid ds:focus-visible:outline-[var(--ring)]",
269
- "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
270
- ].join(" "),
271
- children: /* @__PURE__ */ s(gs, { "aria-hidden": "true", className: "ds:size-4" })
272
- }
273
- ) })
274
- ]
275
- }
276
- )
277
- ] }) })
278
- }
279
- ) : /* @__PURE__ */ s(
280
- $.Provider,
281
- {
282
- value: { mode: v, density: d, transitionTo: S },
283
- children: /* @__PURE__ */ s(h.Provider, { delayDuration: 300, children: /* @__PURE__ */ u(
284
- "nav",
285
- {
286
- ref: P,
287
- id: f,
288
- "aria-label": j,
289
- "data-component": "sidebar",
290
- "data-component-id": f,
291
- "data-mode": v,
292
- "data-density": d,
293
- "data-resizing": _ ? "" : void 0,
294
- className: [
295
- Y({ mode: v, density: d }),
296
- d === "compact" ? "ds:density-compact" : "",
297
- c ?? ""
298
- ].filter(Boolean).join(" "),
299
- ...g,
300
- children: [
301
- m,
302
- V ? /* @__PURE__ */ s(
303
- "div",
304
- {
305
- ...U,
306
- "aria-label": x("navigation.sidebar.resize"),
307
- "data-resizing": _ ? "" : void 0,
308
- className: Rs
309
- }
310
- ) : null
311
- ]
312
- }
313
- ) })
314
- }
315
- );
316
- }
317
- );
318
- Bs.displayName = "Sidebar";
319
- const As = b(({ className: e, ...a }, r) => {
320
- const { mode: d } = w();
321
- return /* @__PURE__ */ s(
322
- "div",
323
- {
324
- ref: r,
325
- className: [
326
- "ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
327
- "ds:min-h-[var(--min-target-size)]",
328
- // Expanded uses the SAME inline padding as `SidebarBody`, so the
329
- // header's first control starts on the nav items' left edge and its
330
- // icon can land on the nav icon column (the trigger adds the item's
331
- // own `ps` on top — see `SidebarCollapseTrigger`). In the rail,
332
- // `justify-center` centres the control exactly as the nav icons
333
- // centre. Header content therefore tracks the nav column in both
334
- // modes instead of sitting on its own axis.
335
- d === "icon" ? "ds:justify-center ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]" : "ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]",
336
- "ds:py-[var(--spacing-sm)]",
337
- // Hairline border + downward chrome shadow cast the header as a
338
- // sticky top band above the scrolling body.
339
- "ds:border-block-end ds:border-[var(--border)]",
340
- "ds:shadow-[var(--shadow-chrome-down)]",
341
- e ?? ""
342
- ].filter(Boolean).join(" "),
343
- ...a
344
- }
345
- );
346
- });
347
- As.displayName = "SidebarHeader";
348
- const Ds = b(
349
- ({ className: e, children: a, ...r }, d) => (
350
- // Scroll the nav sections through the kit `ScrollArea` (8px tokenised
351
- // scrollbar) instead of native `overflow-auto` (the OS scrollbar), so the
352
- // sidebar matches the Control Room rail and the kit's trays. `flex-1 min-h-0`
353
- // fills the column and bounds the height; the layout `className` lands on the
354
- // body box (the ScrollArea root). Padding + `ref` + div props go on the inner
355
- // content div so the scrollbar sits flush at the inline-end edge.
356
- /* @__PURE__ */ s(
357
- ts,
358
- {
359
- orientation: "vertical",
360
- className: ["ds:flex-1 ds:min-h-0", e ?? ""].filter(Boolean).join(" "),
361
- children: /* @__PURE__ */ s(
362
- "div",
363
- {
364
- ref: d,
365
- className: "ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)] ds:py-[var(--spacing-sm)]",
366
- ...r,
367
- children: a
368
- }
369
- )
370
- }
371
- )
372
- )
373
- );
374
- Ds.displayName = "SidebarBody";
375
- const Ps = b(({ className: e, ...a }, r) => {
376
- const { mode: d } = w();
377
- return /* @__PURE__ */ s(
378
- "div",
379
- {
380
- ref: r,
381
- className: [
382
- "ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-xs)]",
383
- // Icon-rail is 64px — two 44×44 controls can't sit side-by-side,
384
- // so switch to a vertical stack and let each row self-centre.
385
- 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)]",
386
- "ds:min-h-[var(--min-target-size)]",
387
- "ds:py-[var(--spacing-sm)]",
388
- // Hairline border + upward chrome shadow cast the footer as a
389
- // sticky bottom band below the scrolling body.
390
- "ds:border-block-start ds:border-[var(--border)]",
391
- "ds:shadow-[var(--shadow-chrome-up)]",
392
- e ?? ""
393
- ].filter(Boolean).join(" "),
394
- ...a
395
- }
396
- );
397
- });
398
- Ps.displayName = "SidebarFooter";
399
- const _s = [
400
- "ds:group/section-label ds:flex ds:w-full ds:items-center",
401
- "type-eyebrow",
402
- "ds:text-[var(--muted-foreground)]",
403
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
404
- "ds:py-[var(--spacing-xs)]",
405
- "ds:hover:text-[var(--foreground)]",
406
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
407
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
408
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
409
- ].join(" "), J = [
410
- "ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center",
411
- "ds:size-4",
412
- "ds:text-[var(--accent)]",
413
- "ds:me-[var(--spacing-xs)]"
414
- ].join(" "), as = b(
415
- ({
416
- label: e,
417
- icon: a,
418
- collapsible: r = !0,
419
- defaultOpen: d = !0,
420
- open: n,
421
- onOpenChange: t,
422
- className: o,
423
- children: l,
424
- ...c
425
- }, m) => {
426
- const { mode: f } = w(), g = f === "icon", y = r && !g && !!e, x = [
427
- "ds:flex ds:flex-col",
428
- "ds:gap-[var(--spacing-xs)]",
429
- "ds:mt-[var(--spacing-sm)]",
430
- o ?? ""
431
- ].filter(Boolean).join(" ");
432
- if (!y)
433
- return /* @__PURE__ */ u("div", { ref: m, className: x, ...c, children: [
434
- !!e || !!a ? /* @__PURE__ */ u(
435
- "span",
436
- {
437
- className: [
438
- "ds:flex ds:items-center",
439
- "type-eyebrow",
440
- "ds:text-[var(--muted-foreground)]",
441
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
442
- "ds:py-[var(--spacing-xs)]",
443
- g && !a ? "ds:sr-only" : ""
444
- ].filter(Boolean).join(" "),
445
- children: [
446
- a ? /* @__PURE__ */ s("span", { "aria-hidden": "true", className: J, children: a }) : null,
447
- e ? /* @__PURE__ */ s("span", { className: g ? "ds:sr-only" : "", children: e }) : null
448
- ]
449
- }
450
- ) : null,
451
- l
452
- ] });
453
- const i = "section";
454
- return /* @__PURE__ */ s(
455
- E.Root,
456
- {
457
- type: "single",
458
- collapsible: !0,
459
- defaultValue: n === void 0 && d ? i : void 0,
460
- value: n === void 0 ? void 0 : n ? i : "",
461
- onValueChange: t ? (N) => t(N === i) : void 0,
462
- asChild: !0,
463
- children: /* @__PURE__ */ s("div", { ref: m, className: x, ...c, children: /* @__PURE__ */ u(E.Item, { value: i, children: [
464
- /* @__PURE__ */ s(E.Header, { className: "ds:flex", children: /* @__PURE__ */ u(E.Trigger, { className: _s, children: [
465
- a ? /* @__PURE__ */ s("span", { "aria-hidden": "true", className: J, children: a }) : null,
466
- /* @__PURE__ */ s("span", { className: "ds:flex-1 ds:text-start", children: e }),
467
- /* @__PURE__ */ s(
468
- H,
469
- {
470
- "aria-hidden": "true",
471
- className: "ds:size-3 ds:transition-transform ds:group-data-[state=open]/section-label:rotate-90 ds:rtl:-scale-x-100 ds:motion-reduce:transition-none"
472
- }
473
- )
474
- ] }) }),
475
- /* @__PURE__ */ s(
476
- os,
477
- {
478
- "aria-label": e,
479
- className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:[&>div]:contents",
480
- children: l
481
- }
482
- )
483
- ] }) })
484
- }
485
- );
486
- }
487
- );
488
- as.displayName = "SidebarSection";
489
- const Es = [
490
- "ds:group ds:flex ds:w-full ds:items-center ds:gap-[var(--spacing-sm)]",
491
- "ds:min-h-[var(--min-target-size)]",
492
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
493
- "ds:rounded-[var(--radius-sm)]",
494
- "ds:text-[var(--foreground)] ds:text-[var(--font-size-sm)]",
495
- "ds:font-[var(--font-weight-medium)]",
496
- "ds:hover:bg-[var(--muted)]/20",
497
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
498
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
499
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
500
- ].join(" "), Hs = b(
501
- ({
502
- label: e,
503
- icon: a,
504
- children: r,
505
- className: d,
506
- defaultOpen: n,
507
- open: t,
508
- onOpenChange: o,
509
- ...l
510
- }, c) => {
511
- const { mode: m } = w();
512
- return /* @__PURE__ */ u(
513
- M.Root,
514
- {
515
- ref: c,
516
- defaultOpen: n,
517
- open: t,
518
- onOpenChange: o,
519
- className: d,
520
- ...l,
521
- children: [
522
- /* @__PURE__ */ u(M.Trigger, { className: Es, children: [
523
- a ? /* @__PURE__ */ s(
524
- "span",
525
- {
526
- "aria-hidden": "true",
527
- className: "ds:inline-flex ds:items-center ds:text-[var(--accent)]",
528
- children: a
529
- }
530
- ) : null,
531
- /* @__PURE__ */ s(
532
- "span",
533
- {
534
- className: [
535
- "ds:flex-1 ds:text-start",
536
- m === "icon" ? "ds:sr-only" : ""
537
- ].join(" "),
538
- children: e
539
- }
540
- ),
541
- m !== "icon" ? /* @__PURE__ */ s(
542
- H,
543
- {
544
- "aria-hidden": "true",
545
- className: "ds:size-4 ds:transition-transform ds:group-data-[state=open]:rotate-90 ds:rtl:-scale-x-100 ds:motion-reduce:transition-none"
546
- }
547
- ) : null
548
- ] }),
549
- /* @__PURE__ */ s(
550
- M.Content,
551
- {
552
- className: [
553
- "ds:overflow-hidden",
554
- "ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
555
- "ds:motion-reduce:animate-none",
556
- "ds:ps-[var(--spacing-md)]"
557
- ].join(" "),
558
- children: r
559
- }
560
- )
561
- ]
562
- }
563
- );
564
- }
565
- );
566
- Hs.displayName = "SidebarGroup";
567
- const Fs = T(
568
- [
569
- // Every row is a pin-hover parent so inline pin / reorder affordances can
570
- // fade in on hover of the whole row — keep `group/item` on this selector.
571
- // `!text-[var(--foreground)]` forces the label colour over the browser's
572
- // default `<a>` link colour (blue-violet) and any inherited hue. The
573
- // active variant also uses `!text-*` so it still wins when needed.
574
- "ds:group/item ds:relative ds:flex ds:items-center",
575
- "ds:gap-[var(--spacing-sm)]",
576
- "ds:no-underline ds:!text-[var(--foreground)] ds:text-[length:var(--font-size-sm)]",
577
- "ds:hover:bg-[var(--muted)]/12",
578
- "ds:transition-colors ds:duration-[var(--animation-duration)]",
579
- "ds:motion-reduce:transition-none",
580
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
581
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
582
- "ds:forced-colors:focus-visible:outline-[CanvasText]"
583
- ].join(" "),
584
- {
585
- variants: {
586
- mode: {
587
- expanded: [
588
- "ds:min-h-[var(--min-target-size)] ds:rounded-[var(--radius-sm)]",
589
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]"
590
- ].join(" "),
591
- // Icon-only: each item is a 44×44 pill tile centered in the rail.
592
- // The active / hover background fills just the tile rather than the
593
- // whole row — matching Linear / Asana chrome.
594
- icon: [
595
- "ds:justify-center ds:ms-auto ds:me-auto",
596
- "ds:w-[var(--min-target-size)] ds:h-[var(--min-target-size)]",
597
- "ds:ps-0 ds:pe-0 ds:rounded-[var(--radius-md)]"
598
- ].join(" "),
599
- overlay: [
600
- "ds:min-h-[var(--min-target-size)] ds:rounded-[var(--radius-sm)]",
601
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]"
602
- ].join(" ")
603
- },
604
- density: {
605
- default: "",
606
- compact: "ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]"
607
- },
608
- isActive: {
609
- // Filled pill — multi-carrier (bg + text + weight + aria-current at
610
- // render time) so colour is never the sole identifier. `!text-*`
611
- // forces the foreground over any inherited / base rule so the icon
612
- // and label read clearly against the primary fill in every theme.
613
- true: [
614
- "ds:bg-[var(--primary)] ds:!text-[var(--primary-foreground)]",
615
- "ds:font-[var(--font-weight-semibold)]",
616
- // Keep hover from dimming the active fill.
617
- "ds:hover:bg-[var(--primary)]"
618
- ].join(" "),
619
- false: ""
620
- }
621
- },
622
- defaultVariants: {
623
- mode: "expanded",
624
- density: "default",
625
- isActive: !1
626
- }
627
- }
628
- ), rs = Z(null), is = b(
629
- ({
630
- asChild: e = !1,
631
- isActive: a = !1,
632
- navId: r,
633
- isPinned: d = !1,
634
- onPinChange: n,
635
- pinLabel: t,
636
- className: o,
637
- children: l,
638
- "aria-label": c,
639
- ...m
640
- }, f) => {
641
- const { mode: g, density: y } = w(), x = e ? ls : "a", i = n !== void 0 && g !== "icon", [N, z] = B(null), v = g === "icon" && c != null && N ? `${c}, ${N}` : c, S = /* @__PURE__ */ s(
642
- x,
643
- {
644
- ref: f,
645
- "aria-current": a ? "page" : void 0,
646
- "aria-label": v,
647
- "data-nav-id": r,
648
- className: Fs({
649
- mode: g,
650
- density: y,
651
- isActive: a,
652
- className: i ? "ds:flex-1 ds:min-w-0" : o
653
- }),
654
- ...m,
655
- children: l
656
- }
657
- ), j = i ? /* @__PURE__ */ u(
658
- "div",
659
- {
660
- className: [
661
- "ds:group/item ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]",
662
- o ?? ""
663
- ].filter(Boolean).join(" "),
664
- children: [
665
- S,
666
- /* @__PURE__ */ s(
667
- W,
668
- {
669
- isPinned: d,
670
- label: t ?? c ?? "",
671
- onPinChange: n
672
- }
673
- )
674
- ]
675
- }
676
- ) : S, C = g === "icon" && c ? /* @__PURE__ */ u(h.Root, { children: [
677
- /* @__PURE__ */ s(h.Trigger, { asChild: !0, children: j }),
678
- /* @__PURE__ */ s(h.Portal, { children: /* @__PURE__ */ u(
679
- h.Content,
680
- {
681
- side: "right",
682
- sideOffset: 6,
683
- className: [
684
- "ds:z-[var(--z-tooltip)] ds:max-w-[16rem]",
685
- "ds:rounded-[var(--radius-sm)]",
686
- "ds:bg-[var(--foreground)] ds:text-[var(--background)]",
687
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[length:var(--font-size-xs)]",
688
- "ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none"
689
- ].join(" "),
690
- children: [
691
- c,
692
- /* @__PURE__ */ s(h.Arrow, { className: "ds:fill-[var(--foreground)]" })
693
- ]
694
- }
695
- ) })
696
- ] }) : j;
697
- return /* @__PURE__ */ s(rs.Provider, { value: z, children: C });
698
- }
699
- );
700
- is.displayName = "SidebarItem";
701
- const Us = b(({ className: e, children: a, ...r }, d) => /* @__PURE__ */ s(
702
- "span",
703
- {
704
- ref: d,
705
- "aria-hidden": "true",
706
- className: [
707
- "ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center",
708
- "ds:size-5",
709
- // Icons carry the accent tint by default so the rail reads less
710
- // monotone against the violet active pill. The active row sets
711
- // `aria-current="page"` on the anchor (which is `group/item`), so
712
- // the icon flips to the primary-foreground (white) on the filled
713
- // pill — keeping it readable on the primary background.
714
- "ds:text-[var(--accent)]",
715
- "ds:group-aria-[current=page]/item:text-[var(--primary-foreground)]",
716
- e ?? ""
717
- ].filter(Boolean).join(" "),
718
- ...r,
719
- children: a
720
- }
721
- ));
722
- Us.displayName = "SidebarItemIcon";
723
- const Vs = b(({ className: e, children: a, ...r }, d) => {
724
- const { mode: n } = w();
725
- return /* @__PURE__ */ s(
726
- "span",
727
- {
728
- ref: d,
729
- className: [
730
- "ds:flex-1",
731
- "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap ds:break-normal",
732
- "ds:text-start",
733
- n === "icon" ? "ds:sr-only" : "",
734
- e ?? ""
735
- ].filter(Boolean).join(" "),
736
- ...r,
737
- children: a
738
- }
739
- );
740
- });
741
- Vs.displayName = "SidebarItemLabel";
742
- const Ks = b(({ className: e, children: a, ...r }, d) => {
743
- const { mode: n } = w(), t = n === "icon", o = q(rs);
744
- return L(() => {
745
- if (!o || !t) return;
746
- const l = a == null || a === !1 ? null : String(a).trim() || null;
747
- return o(l), () => o(null);
748
- }, [o, a, t]), /* @__PURE__ */ s(
749
- "span",
750
- {
751
- ref: d,
752
- "aria-hidden": t ? "true" : void 0,
753
- className: [
754
- "ds:inline-flex ds:items-center ds:justify-center",
755
- "ds:font-[var(--font-weight-semibold)]",
756
- t ? [
757
- "ds:absolute ds:top-[2px] ds:end-[2px]",
758
- "ds:min-w-0 ds:size-[10px] ds:ps-0 ds:pe-0",
759
- "ds:rounded-[var(--radius-full)]",
760
- "ds:bg-[var(--primary)] ds:text-transparent",
761
- "ds:ring-2 ds:ring-[var(--background)]",
762
- "ds:pointer-events-none"
763
- ].join(" ") : [
764
- "ds:min-w-[var(--spacing-lg)] ds:h-[var(--spacing-lg)]",
765
- "ds:rounded-[var(--radius-full)]",
766
- "ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)]",
767
- "ds:text-[length:var(--font-size-xs)]",
768
- "ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]"
769
- ].join(" "),
770
- e ?? ""
771
- ].filter(Boolean).join(" "),
772
- ...r,
773
- children: a
774
- }
775
- );
776
- });
777
- Ks.displayName = "SidebarItemBadge";
778
- const Ms = T(
779
- [
780
- "ds:flex ds:items-center",
781
- "ds:text-[var(--foreground)]",
782
- "ds:transition-colors ds:motion-reduce:transition-none",
783
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
784
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
785
- "ds:forced-colors:focus-visible:outline-[CanvasText]",
786
- "ds:no-underline"
787
- ].join(" "),
788
- {
789
- variants: {
790
- variant: {
791
- // Borderless (Linear / Notion style): transparent at rest with a
792
- // muted hover fill, a 44px tap target, roomier radius, and the dense
793
- // `--font-size-sm` label. The historical default.
794
- ghost: [
795
- "ds:min-h-[var(--min-target-size)]",
796
- "ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
797
- "ds:text-[length:var(--font-size-sm)]",
798
- "ds:rounded-[var(--radius-md)]",
799
- "ds:hover:bg-[var(--muted)]/20"
800
- ].join(" "),
801
- // Input-field look: consumes the SAME shared input-surface tokens as
802
- // <TextInput size="sm"> — height, text size and horizontal inset — so
803
- // a practice / workspace selector stacked directly above the sidebar
804
- // <SearchBar size="sm"> renders as a genuinely matched pair (identical
805
- // 32px box and label size) and stays in lockstep if that surface
806
- // evolves. `gap-3` + the shared `ps-3` line the pin glyph and label up
807
- // with the search input's icon and text below. The 3:1
808
- // `--control-border` edge and the `--input`/`--shadow-input`/
809
- // `--radius-sm` chrome mirror the input's resting surface; opaque
810
- // hover keeps the fill solid over a brand-tinted parent. 32px clears
811
- // WCAG 2.5.8 (24px AA).
812
- field: [
813
- vs.sm,
814
- ps.sm,
815
- fs.sm,
816
- "ds:gap-3",
817
- "ds:rounded-[var(--radius-sm)]",
818
- "ds:border ds:border-[color:var(--control-border)] ds:bg-[var(--input)]",
819
- "ds:shadow-[var(--shadow-input)]",
820
- "ds:hover:bg-[color-mix(in_srgb,var(--muted)_20%,var(--input))]"
821
- ].join(" ")
822
- }
823
- },
824
- defaultVariants: { variant: "ghost" }
825
- }
826
- ), Ls = b(
827
- ({ logo: e, name: a, showChevron: r = !0, variant: d = "ghost", className: n, ...t }, o) => {
828
- const { mode: l } = w(), c = l !== "icon";
829
- return /* @__PURE__ */ u(
830
- "button",
831
- {
832
- ref: o,
833
- type: "button",
834
- "aria-label": a,
835
- className: [Ms({ variant: d }), n].filter(Boolean).join(" "),
836
- ...t,
837
- children: [
838
- /* @__PURE__ */ s(
839
- "span",
840
- {
841
- "aria-hidden": "true",
842
- className: "ds:inline-flex ds:items-center ds:shrink-0",
843
- children: e
844
- }
845
- ),
846
- c ? /* @__PURE__ */ u(X, { children: [
847
- /* @__PURE__ */ s("span", { className: "ds:truncate ds:flex-1 ds:text-start ds:max-w-[var(--header-workspace-max-inline-size)]", children: a }),
848
- r ? /* @__PURE__ */ s(
849
- H,
850
- {
851
- "aria-hidden": "true",
852
- className: "ds:size-4 ds:shrink-0 ds:rotate-90"
853
- }
854
- ) : null
855
- ] }) : null
856
- ]
857
- }
858
- );
859
- }
860
- );
861
- Ls.displayName = "SidebarWorkspaceSwitcher";
862
- const Gs = T(
863
- [
864
- "ds:flex ds:items-center ds:justify-center ds:gap-[var(--spacing-xs)]",
865
- "ds:min-h-[var(--min-target-size)]",
866
- "ds:rounded-[var(--radius-md)]",
867
- "ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)]",
868
- "ds:font-[var(--font-weight-semibold)] ds:text-[length:var(--font-size-sm)]",
869
- "ds:hover:bg-[var(--primary-hover)]",
870
- "ds:transition-colors ds:motion-reduce:transition-none",
871
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
872
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
873
- "ds:forced-colors:focus-visible:outline-[CanvasText]"
874
- ].join(" "),
875
- {
876
- variants: {
877
- mode: {
878
- expanded: "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
879
- icon: "ds:ps-0 ds:pe-0 ds:w-[var(--sidebar-modern-tile)] ds:h-[var(--sidebar-modern-tile)] ds:ms-auto ds:me-auto",
880
- overlay: "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]"
881
- }
882
- },
883
- defaultVariants: { mode: "expanded" }
884
- }
885
- ), Os = b(({ icon: e, label: a, shortcut: r, className: d, ...n }, t) => {
886
- const { mode: o } = w(), l = o !== "icon";
887
- return /* @__PURE__ */ u(
888
- "button",
889
- {
890
- ref: t,
891
- type: "button",
892
- "aria-label": a,
893
- "aria-keyshortcuts": r,
894
- className: [Gs({ mode: o }), d].filter(Boolean).join(" "),
895
- ...n,
896
- children: [
897
- /* @__PURE__ */ s(
898
- "span",
899
- {
900
- "aria-hidden": "true",
901
- className: "ds:inline-flex ds:size-4 ds:items-center ds:justify-center",
902
- children: e
903
- }
904
- ),
905
- l ? /* @__PURE__ */ u(X, { children: [
906
- /* @__PURE__ */ s("span", { className: "ds:truncate", children: a }),
907
- r ? /* @__PURE__ */ s("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
908
- ] }) : null
909
- ]
910
- }
911
- );
912
- });
913
- Os.displayName = "SidebarPrimaryAction";
914
- const $s = [
915
- "ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
916
- "ds:size-6 ds:rounded-[var(--radius-sm)]",
917
- // Lift above the Sidebar's opt-in resize handle (z-[2]). When `resizable`,
918
- // that handle's ::before hit-area reaches ~--min-target-size/2 inward from
919
- // the inline-end edge — exactly where these end-aligned pin stars sit — so
920
- // without a higher stacking order the separator swallows the click and
921
- // pinning silently fails. Pointer-events stay off until the row is hovered
922
- // or the star is focused, so the handle is still fully grabbable at rest
923
- // (including touch, where the star never reveals). On a NON-resizable
924
- // sidebar there's no handle to clear, but the same gating is inert — the
925
- // star reveals and accepts clicks on hover/focus exactly as before.
926
- "ds:relative ds:z-[3]",
927
- "ds:pointer-events-none ds:group-hover/item:pointer-events-auto ds:focus-visible:pointer-events-auto",
928
- // Pin stars carry the accent tint to match every other icon in the rail.
929
- // Stays quiet via opacity — reveals only on row hover / focus.
930
- "ds:text-[var(--accent)]",
931
- "ds:opacity-0 ds:group-hover/item:opacity-100 ds:focus-visible:opacity-100",
932
- "ds:hover:bg-[var(--muted)]/20",
933
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
934
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
935
- "ds:forced-colors:focus-visible:outline-[CanvasText]",
936
- "ds:transition-[color,opacity,background-color] ds:duration-[var(--animation-duration)]",
937
- "ds:motion-reduce:transition-none"
938
- ].join(" "), W = b(
939
- ({ isPinned: e, onPinChange: a, label: r, className: d, onClick: n, ...t }, o) => {
940
- const { t: l } = A("ui"), { mode: c } = w();
941
- if (c === "icon") return null;
942
- const m = e ? l("navigation.sidebar.unpinItem", "Unpin {{label}}", { label: r }) : l("navigation.sidebar.pinItem", "Pin {{label}}", { label: r });
943
- return /* @__PURE__ */ s(
944
- "button",
945
- {
946
- ref: o,
947
- type: "button",
948
- "aria-label": m,
949
- "aria-pressed": e,
950
- className: [$s, d].filter(Boolean).join(" "),
951
- onClick: (f) => {
952
- f.preventDefault(), f.stopPropagation(), a == null || a(!e), n == null || n(f);
953
- },
954
- ...t,
955
- children: /* @__PURE__ */ s(
956
- hs,
957
- {
958
- "aria-hidden": "true",
959
- className: "ds:size-4",
960
- fill: e ? "currentColor" : "none"
961
- }
962
- )
963
- }
964
- );
965
- }
966
- );
967
- W.displayName = "SidebarPinButton";
968
- const ds = Z(null), Xs = () => q(ds), qs = b(
969
- ({ heading: e, emptyMessage: a, onReorder: r, className: d, children: n, ...t }, o) => {
970
- const { t: l } = A("ui"), c = e ?? l("navigation.sidebar.favorites", "Favourites"), m = Array.isArray(n) ? n.filter(Boolean) : n ? [n] : [], f = m.length, g = f > 0, [y, x] = B(null), [i, N] = B(""), z = G(!1), v = Q((j) => {
971
- z.current = !z.current, N(z.current ? j : `${j}​`);
972
- }, []), S = O(
973
- () => ({ onReorder: r, count: f, dragSource: y, setDragSource: x, announce: v }),
974
- [r, f, y, v]
975
- );
976
- return !g && !a ? null : /* @__PURE__ */ s(ds.Provider, { value: S, children: /* @__PURE__ */ u(
977
- as,
978
- {
979
- ref: o,
980
- label: c,
981
- className: d,
982
- ...t,
983
- children: [
984
- g ? m : /* @__PURE__ */ s("p", { className: "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] type-meta ds:text-[color:var(--muted-foreground)]", children: a }),
985
- /* @__PURE__ */ s("span", { role: "status", "aria-live": "polite", className: "ds:sr-only", children: i })
986
- ]
987
- }
988
- ) });
989
- }
990
- );
991
- qs.displayName = "SidebarFavorites";
992
- const Zs = T(
993
- [
994
- "ds:group/item ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]",
995
- "ds:rounded-[var(--radius-sm)]",
996
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
997
- ].join(" "),
998
- {
999
- variants: {
1000
- dragging: {
1001
- true: "ds:opacity-60",
1002
- false: ""
1003
- },
1004
- dropTarget: {
1005
- true: "ds:outline-[length:var(--focus-ring-width)] ds:outline-dashed ds:outline-[var(--primary)] ds:outline-offset-[-2px]",
1006
- false: ""
1007
- }
1008
- },
1009
- defaultVariants: { dragging: !1, dropTarget: !1 }
1010
- }
1011
- ), Ws = [
1012
- "ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
1013
- "ds:size-6 ds:rounded-[var(--radius-sm)]",
1014
- "ds:cursor-grab ds:active:cursor-grabbing",
1015
- "ds:text-[var(--muted-foreground)]",
1016
- // Quiet chrome — only reveal the grip when the row is hovered or the
1017
- // handle itself is focused (keyboard / AT). Matches the pin-star's
1018
- // reveal-on-hover behaviour so the two siblings appear together.
1019
- "ds:opacity-0 ds:group-hover/item:opacity-100 ds:focus-visible:opacity-100",
1020
- "ds:hover:bg-[var(--muted)]/20 ds:hover:text-[var(--foreground)]",
1021
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
1022
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
1023
- "ds:forced-colors:focus-visible:outline-[CanvasText]",
1024
- "ds:transition-[color,opacity,background-color] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
1025
- ].join(" "), Ys = b(
1026
- ({
1027
- index: e,
1028
- isActive: a = !1,
1029
- asChild: r = !1,
1030
- reorderLabel: d,
1031
- isPinned: n = !1,
1032
- onPinChange: t,
1033
- pinLabel: o,
1034
- "aria-label": l,
1035
- className: c,
1036
- children: m,
1037
- ...f
1038
- }, g) => {
1039
- const { t: y } = A("ui"), { mode: x } = w(), i = Xs(), [N, z] = B(!1), v = !!(i != null && i.onReorder) && x !== "icon", S = d ?? l ?? "", j = ns(), C = (p, I) => {
1040
- if (!(i != null && i.onReorder)) return;
1041
- const K = Math.max(0, Math.min(i.count - 1, I));
1042
- K !== p && (i.onReorder(p, K), i.announce(
1043
- y(
1044
- "navigation.sidebar.reorderAnnounce",
1045
- "{{label}} moved to position {{to}} of {{total}}",
1046
- { label: S, to: K + 1, total: i.count }
1047
- )
1048
- ));
1049
- }, F = (p) => {
1050
- v && (p.altKey && p.key === "ArrowUp" ? (p.preventDefault(), C(e, e - 1)) : p.altKey && p.key === "ArrowDown" ? (p.preventDefault(), C(e, e + 1)) : p.key === "Home" && p.altKey ? (p.preventDefault(), C(e, 0)) : p.key === "End" && p.altKey && (p.preventDefault(), C(e, i.count - 1)));
1051
- }, D = (p) => {
1052
- v && (i == null || i.setDragSource(e), p.dataTransfer && (p.dataTransfer.effectAllowed = "move", p.dataTransfer.setData("ds:text/plain", String(e))));
1053
- }, P = () => {
1054
- i == null || i.setDragSource(null), z(!1);
1055
- }, U = (p) => {
1056
- !v || (i == null ? void 0 : i.dragSource) === null || (p.preventDefault(), p.dataTransfer && (p.dataTransfer.dropEffect = "move"), z(!0));
1057
- }, _ = () => z(!1), V = (p) => {
1058
- if (!v) return;
1059
- p.preventDefault();
1060
- const I = i == null ? void 0 : i.dragSource;
1061
- z(!1), !(I == null || I === e) && C(I, e);
1062
- }, k = (i == null ? void 0 : i.dragSource) === e;
1063
- return /* @__PURE__ */ u(
1064
- "div",
1065
- {
1066
- className: Zs({
1067
- dragging: k,
1068
- dropTarget: N && !k
1069
- }),
1070
- draggable: v || void 0,
1071
- onDragStart: v ? D : void 0,
1072
- onDragEnd: v ? P : void 0,
1073
- onDragOver: U,
1074
- onDragLeave: _,
1075
- onDrop: V,
1076
- children: [
1077
- /* @__PURE__ */ s(
1078
- is,
1079
- {
1080
- ref: g,
1081
- isActive: a,
1082
- asChild: r,
1083
- "aria-label": l,
1084
- "aria-describedby": v ? j : void 0,
1085
- draggable: v ? !1 : void 0,
1086
- className: [v ? "ds:flex-1 ds:min-w-0" : "", c ?? ""].filter(Boolean).join(" "),
1087
- ...f,
1088
- children: m
1089
- }
1090
- ),
1091
- v ? /* @__PURE__ */ s(
1092
- "button",
1093
- {
1094
- type: "button",
1095
- id: j,
1096
- "aria-label": y(
1097
- "navigation.sidebar.reorderHandle",
1098
- "Reorder {{label}}. Press Alt + Up or Alt + Down to move.",
1099
- { label: S }
1100
- ),
1101
- className: Ws,
1102
- onKeyDown: F,
1103
- children: /* @__PURE__ */ s(bs, { "aria-hidden": "true", className: "ds:size-4" })
1104
- }
1105
- ) : null,
1106
- t && x !== "icon" ? /* @__PURE__ */ s(
1107
- W,
1108
- {
1109
- isPinned: n,
1110
- label: o ?? l ?? "",
1111
- onPinChange: t
1112
- }
1113
- ) : null
1114
- ]
1115
- }
1116
- );
1117
- }
1118
- );
1119
- Ys.displayName = "SidebarFavoriteItem";
1120
- const Js = T(
1121
- [
1122
- "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
1123
- "ds:min-h-[var(--min-target-size)]",
1124
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
1125
- "ds:rounded-[var(--radius-md)]",
1126
- "ds:text-[var(--foreground)] ds:text-[length:var(--font-size-sm)]",
1127
- "ds:hover:bg-[var(--muted)]/20",
1128
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
1129
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
1130
- "ds:forced-colors:focus-visible:outline-[CanvasText]",
1131
- "ds:no-underline"
1132
- ].join(" ")
1133
- ), Qs = b(({ avatar: e, name: a, subtitle: r, subtitleLabel: d, className: n, ...t }, o) => {
1134
- const { mode: l } = w(), c = l !== "icon", m = typeof r == "string" ? r : d;
1135
- return /* @__PURE__ */ u(
1136
- "button",
1137
- {
1138
- ref: o,
1139
- type: "button",
1140
- "aria-label": m ? `${a}, ${m}` : a,
1141
- className: [Js(), n].filter(Boolean).join(" "),
1142
- ...t,
1143
- children: [
1144
- /* @__PURE__ */ s(
1145
- "span",
1146
- {
1147
- "aria-hidden": "true",
1148
- className: "ds:inline-flex ds:items-center ds:shrink-0",
1149
- children: e
1150
- }
1151
- ),
1152
- c ? /* @__PURE__ */ u("span", { className: "ds:flex-1 ds:min-w-0 ds:text-start", children: [
1153
- /* @__PURE__ */ s("span", { className: "ds:block ds:truncate type-label", children: a }),
1154
- r ? typeof r == "string" ? /* @__PURE__ */ s("span", { className: "ds:block ds:truncate type-meta ds:text-[color:var(--muted-foreground)]", children: r }) : /* @__PURE__ */ s("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
1155
- ] }) : null
1156
- ]
1157
- }
1158
- );
1159
- });
1160
- Qs.displayName = "SidebarProfilePill";
1161
- const se = [
1162
- "ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
1163
- "ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]",
1164
- "ds:rounded-[var(--radius-sm)]",
1165
- "ds:text-[var(--muted-foreground)]",
1166
- "ds:hover:bg-[var(--muted)]/20 ds:hover:text-[var(--foreground)]",
1167
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
1168
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
1169
- "ds:forced-colors:focus-visible:outline-[CanvasText]",
1170
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
1171
- ].join(" "), ee = b(({ className: e, "aria-label": a, onClick: r, ...d }, n) => {
1172
- const { t } = A("ui"), { mode: o, density: l, transitionTo: c } = w();
1173
- if (o === "overlay") return null;
1174
- const m = o === "expanded", f = m ? [
1175
- "ds:justify-start",
1176
- l === "compact" ? "ds:ps-[var(--spacing-xs)]" : "ds:ps-[var(--spacing-sm)]"
1177
- ].join(" ") : "ds:justify-center", g = a ?? (m ? t("navigation.sidebar.collapse", "Collapse sidebar") : t("navigation.sidebar.expand", "Expand sidebar")), y = /* @__PURE__ */ s(
1178
- "button",
1179
- {
1180
- ref: n,
1181
- type: "button",
1182
- "aria-label": g,
1183
- "aria-expanded": m,
1184
- onClick: (x) => {
1185
- c == null || c(m ? "icon" : "expanded"), r == null || r(x);
1186
- },
1187
- className: [se, f, e].filter(Boolean).join(" "),
1188
- ...d,
1189
- children: /* @__PURE__ */ s("span", { className: "ds:inline-flex ds:size-5 ds:shrink-0 ds:items-center ds:justify-center", children: m ? /* @__PURE__ */ s(
1190
- ws,
1191
- {
1192
- "aria-hidden": "true",
1193
- className: "ds:size-4 ds:rtl:-scale-x-100"
1194
- }
1195
- ) : /* @__PURE__ */ s(
1196
- zs,
1197
- {
1198
- "aria-hidden": "true",
1199
- className: "ds:size-4 ds:rtl:-scale-x-100"
1200
- }
1201
- ) })
1202
- }
1203
- );
1204
- return /* @__PURE__ */ u(h.Root, { children: [
1205
- /* @__PURE__ */ s(h.Trigger, { asChild: !0, children: y }),
1206
- /* @__PURE__ */ s(h.Portal, { children: /* @__PURE__ */ u(
1207
- h.Content,
1208
- {
1209
- side: o === "icon" ? "right" : "top",
1210
- sideOffset: 6,
1211
- className: [
1212
- "ds:z-[var(--z-tooltip)] ds:max-w-[16rem]",
1213
- "ds:rounded-[var(--radius-sm)]",
1214
- "ds:bg-[var(--foreground)] ds:text-[var(--background)]",
1215
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[length:var(--font-size-xs)]",
1216
- "ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none"
1217
- ].join(" "),
1218
- children: [
1219
- g,
1220
- /* @__PURE__ */ s(h.Arrow, { className: "ds:fill-[var(--foreground)]" })
1221
- ]
1222
- }
1223
- ) })
1224
- ] });
1225
- });
1226
- ee.displayName = "SidebarCollapseTrigger";
1227
- const ae = T(
1228
- [
1229
- "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
1230
- "ds:rounded-[var(--radius-md)]",
1231
- "ds:border ds:border-[var(--border)]",
1232
- "ds:bg-[image:var(--gradient-surface-subtle-accent)]",
1233
- "ds:no-underline ds:!text-[var(--foreground)]",
1234
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
1235
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
1236
- "ds:forced-colors:focus-visible:outline-[CanvasText]"
1237
- ].join(" "),
1238
- {
1239
- variants: {
1240
- mode: {
1241
- expanded: [
1242
- "ds:min-h-[var(--min-target-size)]",
1243
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-sm)]"
1244
- ].join(" "),
1245
- icon: [
1246
- "ds:justify-center",
1247
- "ds:w-[var(--min-target-size)] ds:h-[var(--min-target-size)]",
1248
- "ds:ms-auto ds:me-auto ds:ps-0 ds:pe-0"
1249
- ].join(" "),
1250
- overlay: [
1251
- "ds:min-h-[var(--min-target-size)]",
1252
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-sm)]"
1253
- ].join(" ")
1254
- }
1255
- },
1256
- defaultVariants: { mode: "expanded" }
1257
- }
1258
- ), re = b(({ title: e, description: a, icon: r, className: d, ...n }, t) => {
1259
- const { mode: o } = w(), l = o === "icon", c = (
1260
- // aria-label only in icon mode (where the copy is hidden) — in
1261
- // expanded mode the accessible name comes from the visible contents
1262
- // so the description isn't excluded from it.
1263
- /* @__PURE__ */ u(
1264
- "a",
1265
- {
1266
- ref: t,
1267
- "aria-label": l ? e : void 0,
1268
- className: ae({ mode: o, className: d }),
1269
- ...n,
1270
- children: [
1271
- /* @__PURE__ */ s(
1272
- "span",
1273
- {
1274
- "aria-hidden": "true",
1275
- className: [
1276
- "ds:inline-flex ds:size-8 ds:shrink-0 ds:items-center ds:justify-center",
1277
- "ds:rounded-[var(--radius-sm)]",
1278
- "ds:bg-[var(--accent)] ds:text-[var(--accent-foreground)]"
1279
- ].join(" "),
1280
- children: r ?? /* @__PURE__ */ s(xs, { className: "ds:size-4" })
1281
- }
1282
- ),
1283
- l ? null : /* @__PURE__ */ u(X, { children: [
1284
- /* @__PURE__ */ u("span", { className: "ds:flex-1 ds:min-w-0 ds:text-start", children: [
1285
- /* @__PURE__ */ s("span", { className: "ds:block ds:line-clamp-2 type-label", children: e }),
1286
- a ? (
1287
- // Foreground (not muted) on the tinted surface — the gradient
1288
- // stops leave muted text short of AA in both colour schemes.
1289
- /* @__PURE__ */ s("span", { className: "ds:block ds:line-clamp-2 type-meta", children: a })
1290
- ) : null
1291
- ] }),
1292
- /* @__PURE__ */ s(
1293
- H,
1294
- {
1295
- "aria-hidden": "true",
1296
- className: "ds:size-4 ds:shrink-0 ds:rtl:-scale-x-100"
1297
- }
1298
- )
1299
- ] })
1300
- ]
1301
- }
1302
- )
1303
- );
1304
- return l ? /* @__PURE__ */ u(h.Root, { children: [
1305
- /* @__PURE__ */ s(h.Trigger, { asChild: !0, children: c }),
1306
- /* @__PURE__ */ s(h.Portal, { children: /* @__PURE__ */ u(
1307
- h.Content,
1308
- {
1309
- side: "right",
1310
- sideOffset: 6,
1311
- className: [
1312
- "ds:z-[var(--z-tooltip)] ds:max-w-[16rem]",
1313
- "ds:rounded-[var(--radius-sm)]",
1314
- "ds:bg-[var(--foreground)] ds:text-[var(--background)]",
1315
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[length:var(--font-size-xs)]",
1316
- "ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none"
1317
- ].join(" "),
1318
- children: [
1319
- e,
1320
- /* @__PURE__ */ s(h.Arrow, { className: "ds:fill-[var(--foreground)]" })
1321
- ]
1322
- }
1323
- ) })
1324
- ] }) : c;
1325
- });
1326
- re.displayName = "SidebarUpgradeChip";
1327
- export {
1328
- Bs as S,
1329
- Ds as a,
1330
- ee as b,
1331
- Ys as c,
1332
- qs as d,
1333
- Ps as e,
1334
- Hs as f,
1335
- As as g,
1336
- is as h,
1337
- Ks as i,
1338
- Us as j,
1339
- Vs as k,
1340
- W as l,
1341
- Os as m,
1342
- Qs as n,
1343
- as as o,
1344
- re as p,
1345
- Ls as q,
1346
- Ss as s,
1347
- w as u
1348
- };
1349
- //# sourceMappingURL=sidebar-DLsG2AIk.js.map