@alfadocs/ui-kit 0.1.10 → 0.2.1

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 (958) hide show
  1. package/dist/_chunks/accordion-DOmxGEWU.js +228 -0
  2. package/dist/_chunks/{agenda-card-DwLIxgi7.js → agenda-card-CalZqycc.js} +12 -3
  3. package/dist/_chunks/{agenda-tray-DUvengGQ.js → agenda-tray-3ffFDQZC.js} +54 -51
  4. package/dist/_chunks/{ai-prompt-input.agent-0NHYLTWD.js → ai-prompt-input-BBiDlEIS.js} +231 -231
  5. package/dist/_chunks/{alert-BlOUMkXj.js → alert-B1sj8Ss0.js} +24 -14
  6. package/dist/_chunks/{apexcharts-theme-BkSShpEy.js → apexcharts-theme-BJigns_V.js} +7 -2
  7. package/dist/_chunks/{app-frame-6d7Lu4ea.js → app-frame-CDJOgPXe.js} +7 -16
  8. package/dist/_chunks/{audio-recorder.agent--VKeykUp.js → audio-recorder-B4U1LuiQ.js} +161 -162
  9. package/dist/_chunks/{audio-visualiser-CeMPCZkd.js → audio-visualiser-ByDEFLNm.js} +25 -19
  10. package/dist/_chunks/autocomplete-D4oUZbsP.js +466 -0
  11. package/dist/_chunks/{badge-mrstWxve.js → badge-DKFbntoa.js} +16 -13
  12. package/dist/_chunks/{balance-cell-renderer-5CA7zpAi.js → balance-cell-renderer-B8zgIM-m.js} +63 -44
  13. package/dist/_chunks/{breadcrumb.agent-GM2hAKFX.js → breadcrumb-D1snXjPb.js} +165 -157
  14. package/dist/_chunks/{button-7mLWcMp_.js → button-DD_0Xdmr.js} +12 -2
  15. package/dist/_chunks/{calendar-nGEgelJs.js → calendar-zy0tUUVG.js} +13 -18
  16. package/dist/_chunks/{card-BEy58ZKp.js → card-CWzuTLYE.js} +40 -34
  17. package/dist/_chunks/{chart.agent-_pRYS17d.js → chart-BLvFl169.js} +147 -131
  18. package/dist/_chunks/chat-container-ClzsWXp2.js +220 -0
  19. package/dist/_chunks/chat-input-DOlsB1fm.js +333 -0
  20. package/dist/_chunks/{chat-message-ByouZpPP.js → chat-message-DoAhgUTj.js} +23 -13
  21. package/dist/_chunks/{collapsible.agent-DkS1jVyn.js → collapsible-CuxUBoHJ.js} +97 -99
  22. package/dist/_chunks/{color-picker-94qcBZqZ.js → color-picker-CTIcHlDF.js} +111 -45
  23. package/dist/_chunks/combobox-BLWruOxK.js +459 -0
  24. package/dist/_chunks/command-palette-C_vgSgrI.js +441 -0
  25. package/dist/_chunks/{date-picker-BqPTn7bO.js → date-picker-B1PO1ZQP.js} +190 -181
  26. package/dist/_chunks/{date-range-picker-B2hGsffw.js → date-range-picker-mix2nEVC.js} +21 -8
  27. package/dist/_chunks/{date-time-picker-Bzt0S8yO.js → date-time-picker-Dnong_BY.js} +30 -15
  28. package/dist/_chunks/{description-list-DvJbp6Yg.js → description-list-BYA77Yud.js} +26 -23
  29. package/dist/_chunks/dialog-BPD7wlGE.js +211 -0
  30. package/dist/_chunks/dropdown-menu-CpiF6CPz.js +300 -0
  31. package/dist/_chunks/{empty-state-DQPtRp2b.js → empty-state-3CLJIXSj.js} +132 -101
  32. package/dist/_chunks/file-upload-C947ACDK.js +829 -0
  33. package/dist/_chunks/{floating-action-button-Cnw-f6AG.js → floating-action-button-C8OYj8mE.js} +9 -2
  34. package/dist/_chunks/{form-field-BfsPLTSc.js → form-field-Bmkeh7WY.js} +12 -11
  35. package/dist/_chunks/{form-field-context-94LwgYTQ.js → form-field-context-B3APVHKx.js} +4 -2
  36. package/dist/_chunks/{freemium-paywall.agent-_nQqLyRF.js → freemium-paywall-CrVefV0M.js} +124 -117
  37. package/dist/_chunks/{header-BGn1mRp8.js → header-D0ULgQl3.js} +69 -68
  38. package/dist/_chunks/{icon-button-Wnnde5lc.js → icon-button-C4CGcYuz.js} +11 -3
  39. package/dist/_chunks/{kbd-8baVw3KU.js → kbd-Cglkd7CY.js} +6 -2
  40. package/dist/_chunks/{key-value-pair-JRFS9Xrh.js → key-value-pair-CgWvAIGb.js} +2 -2
  41. package/dist/_chunks/{leo-sidebar-BwINPdix.js → leo-sidebar-CfEY-xi2.js} +16 -20
  42. package/dist/_chunks/{link-QheANk74.js → link-BcYW1eNM.js} +48 -35
  43. package/dist/_chunks/list-qP6p0NTw.js +434 -0
  44. package/dist/_chunks/{logo-BpFoCL-s.js → logo-_Z-jLq80.js} +155 -26
  45. package/dist/_chunks/{matrix-rain-BEkvux64.js → matrix-rain-CRPMXcVx.js} +8 -2
  46. package/dist/_chunks/{message-card-qhoGv947.js → message-card-DjvsB_3U.js} +58 -55
  47. package/dist/_chunks/{message-tray-xHUCra-Y.js → message-tray-BbnAzlLH.js} +86 -91
  48. package/dist/_chunks/{multi-select.agent-Do6CeQUT.js → multi-select-wqqrgjUQ.js} +326 -291
  49. package/dist/_chunks/{navigation-menu.agent-D69ND6Qq.js → navigation-menu-ClbHeawy.js} +136 -123
  50. package/dist/_chunks/{notification-card-CsVEYJE-.js → notification-card-uTPEvAQS.js} +22 -22
  51. package/dist/_chunks/{notification-tray-DTXMq42J.js → notification-tray-PGtMqXbP.js} +84 -80
  52. package/dist/_chunks/{number-input-fvGmnRy9.js → number-input-Q7wkHnvQ.js} +7 -3
  53. package/dist/_chunks/{otp-input-EglXOUue.js → otp-input-C9gUByF0.js} +6 -3
  54. package/dist/_chunks/{pagination.agent-BkZQl45y.js → pagination-3AC4zTsi.js} +234 -194
  55. package/dist/_chunks/{password-input-D6kuYXmr.js → password-input-C4LmjIH1.js} +6 -9
  56. package/dist/_chunks/{patient-shell-BRmrrUUW.js → patient-shell-BlsEUKWB.js} +10 -15
  57. package/dist/_chunks/{payment-form-BWaXas8z.js → payment-form-B_BdHwjb.js} +197 -188
  58. package/dist/_chunks/{pdf-viewer.agent-BaGEDheA.js → pdf-viewer-CZIfY08H.js} +270 -241
  59. package/dist/_chunks/{phone-input-C8Op4sEc.js → phone-input-CSHJOJ13.js} +4 -9
  60. package/dist/_chunks/popover-DekUKNBk.js +293 -0
  61. package/dist/_chunks/{privacy-lock.agent-C1i1-T58.js → privacy-lock-BKsI6ReN.js} +117 -109
  62. package/dist/_chunks/progress-C11tqhoI.js +298 -0
  63. package/dist/_chunks/{recaptcha-widget.agent-BGHpU5zD.js → recaptcha-widget-NyfOfLII.js} +95 -86
  64. package/dist/_chunks/resizable-mpXXyIsN.js +483 -0
  65. package/dist/_chunks/{rich-text-editor.agent-DnE125Tz.js → rich-text-editor-C7TCIlQO.js} +298 -209
  66. package/dist/_chunks/{scroll-area-DLr5w9Dd.js → scroll-area-DEDU-lp-.js} +67 -54
  67. package/dist/_chunks/{search-bar.agent-DxFAxctc.js → search-bar-BTDfgYtg.js} +291 -268
  68. package/dist/_chunks/{search-input-Xw3cdWXW.js → search-input-CdJIEjFo.js} +116 -107
  69. package/dist/_chunks/{select-DY1Cb2Tg.js → select-y6bXV1f1.js} +84 -83
  70. package/dist/_chunks/{separator-B4wXDLNC.js → separator-CYU_bGFn.js} +2 -5
  71. package/dist/_chunks/{sheet-B9kH9pcI.js → sheet-4tgMFwj0.js} +135 -60
  72. package/dist/_chunks/{sidebar-CHF5xr_P.js → sidebar-Bx3wCDyy.js} +546 -457
  73. package/dist/_chunks/{sign-in-with-alfadocs-button-BN_FPGHT.js → sign-in-with-alfadocs-button-B9UrqOqH.js} +9 -5
  74. package/dist/_chunks/{signature-capture.agent-BpeDwFht.js → signature-capture-DjMlFOzS.js} +210 -212
  75. package/dist/_chunks/{skeleton-dtqyF09N.js → skeleton-CZbwyJAA.js} +9 -3
  76. package/dist/_chunks/{slider-CcsQTZTA.js → slider-BT2bZWsy.js} +138 -134
  77. package/dist/_chunks/{slot-grid-D_l5VsHG.js → slot-grid-CgpYgBkW.js} +105 -95
  78. package/dist/_chunks/{sparkline.agent-56Sj7nOP.js → sparkline-_gy8aJDG.js} +107 -100
  79. package/dist/_chunks/{spinner-GCcv67vh.js → spinner-DLaYfLPl.js} +66 -14
  80. package/dist/_chunks/{stat-DUB6g90R.js → stat-B9PHSPbN.js} +45 -27
  81. package/dist/_chunks/{stepper-calendar.agent-9iT3ClIB.js → stepper-calendar-BLOJUE0-.js} +189 -187
  82. package/dist/_chunks/stepper-progress-jFY8BSf7.js +208 -0
  83. package/dist/_chunks/{suggestion-chip-DhFrkRPj.js → suggestion-chip-C4Jz0LrM.js} +50 -52
  84. package/dist/_chunks/{switch-BYEH8I53.js → switch-C0psfIQF.js} +2 -2
  85. package/dist/_chunks/{tabs.agent-h7NvsTR1.js → tabs-DaFA3Muo.js} +183 -155
  86. package/dist/_chunks/{tag-BqidXKo3.js → tag-DuLMjRbF.js} +90 -32
  87. package/dist/_chunks/{task-card-CY5ztNkU.js → task-card-Dw_ZJDL8.js} +5 -2
  88. package/dist/_chunks/{task-tray-CCoUdorl.js → task-tray-XlIW9ueh.js} +50 -49
  89. package/dist/_chunks/{text-area-C_M8wliK.js → text-area-CO9Dz0qX.js} +2 -2
  90. package/dist/_chunks/{text-input-BX39e6T6.js → text-input-DZwt9L8H.js} +65 -62
  91. package/dist/_chunks/{theme-root-DDb0TJjd.js → theme-root-CSKD5ZRm.js} +9 -2
  92. package/dist/_chunks/{theme-toggle.agent-btmXTWdW.js → theme-toggle-B9zzCnvl.js} +179 -177
  93. package/dist/_chunks/{time-picker-B8AMIrX7.js → time-picker-DvPUmHH-.js} +95 -93
  94. package/dist/_chunks/{timeline.agent-CRPza9wc.js → timeline-BvmnQadS.js} +96 -96
  95. package/dist/_chunks/{toast.agent-BjEGuq1Z.js → toast.agent-BwKXA0km.js} +46 -8
  96. package/dist/_chunks/{tooth-scheme.agent-CWrQBjJM.js → tooth-scheme-3mITSXiZ.js} +146 -162
  97. package/dist/_chunks/transaction-chip-DE6DITun.js +196 -0
  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 +594 -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/index.d.ts +1 -0
  166. package/dist/components/kbd/index.js +1 -1
  167. package/dist/components/key-value-pair/index.js +1 -1
  168. package/dist/components/link/index.js +1 -1
  169. package/dist/components/link/link.d.ts +1 -0
  170. package/dist/components/list/index.js +1 -1
  171. package/dist/components/logo/index.js +1 -1
  172. package/dist/components/matrix-rain/index.js +1 -1
  173. package/dist/components/message-card/index.d.ts +1 -1
  174. package/dist/components/message-card/index.js +1 -1
  175. package/dist/components/message-tray/index.js +1 -1
  176. package/dist/components/message-tray/message-tray.d.ts +1 -1
  177. package/dist/components/multi-select/index.js +1 -1
  178. package/dist/components/navigation-menu/index.js +1 -1
  179. package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
  180. package/dist/components/notification-card/index.d.ts +1 -1
  181. package/dist/components/notification-card/index.js +1 -1
  182. package/dist/components/notification-tray/index.js +1 -1
  183. package/dist/components/notification-tray/notification-tray.d.ts +1 -1
  184. package/dist/components/number-input/index.js +1 -1
  185. package/dist/components/otp-input/index.js +1 -1
  186. package/dist/components/pagination/index.js +1 -1
  187. package/dist/components/pagination/pagination.d.ts +4 -6
  188. package/dist/components/password-input/index.js +1 -1
  189. package/dist/components/payment-form/index.js +7 -8
  190. package/dist/components/payment-form/payment-form.d.ts +1 -1
  191. package/dist/components/pdf-viewer/index.js +1 -1
  192. package/dist/components/phone-input/index.d.ts +1 -1
  193. package/dist/components/phone-input/index.js +1 -1
  194. package/dist/components/popover/index.js +3 -4
  195. package/dist/components/privacy-lock/index.js +1 -1
  196. package/dist/components/privacy-lock/privacy-lock.d.ts +1 -1
  197. package/dist/components/progress/index.js +3 -4
  198. package/dist/components/recaptcha-widget/index.js +1 -1
  199. package/dist/components/resizable/index.d.ts +1 -1
  200. package/dist/components/resizable/index.js +1 -1
  201. package/dist/components/rich-text-editor/index.js +1 -1
  202. package/dist/components/scroll-area/index.js +1 -1
  203. package/dist/components/search-bar/index.js +1 -1
  204. package/dist/components/search-bar/search-bar.d.ts +1 -1
  205. package/dist/components/search-input/index.js +1 -1
  206. package/dist/components/select/index.js +1 -1
  207. package/dist/components/select/select.d.ts +1 -1
  208. package/dist/components/separator/index.js +1 -1
  209. package/dist/components/sheet/index.js +3 -4
  210. package/dist/components/sheet/sheet.d.ts +2 -2
  211. package/dist/components/sidebar/index.js +7 -8
  212. package/dist/components/sidebar/sidebar.d.ts +0 -2
  213. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  214. package/dist/components/signature-capture/index.js +1 -1
  215. package/dist/components/skeleton/index.js +1 -1
  216. package/dist/components/slider/index.js +1 -1
  217. package/dist/components/slot-grid/index.js +1 -1
  218. package/dist/components/sparkline/index.js +1 -1
  219. package/dist/components/spinner/index.js +1 -1
  220. package/dist/components/stat/index.js +1 -1
  221. package/dist/components/stepper-calendar/index.js +1 -1
  222. package/dist/components/stepper-calendar/stepper-calendar.d.ts +1 -1
  223. package/dist/components/stepper-progress/index.d.ts +1 -1
  224. package/dist/components/stepper-progress/index.js +1 -2
  225. package/dist/components/stepper-progress/stepper-progress.d.ts +1 -1
  226. package/dist/components/suggestion-chip/index.js +1 -1
  227. package/dist/components/switch/index.js +1 -1
  228. package/dist/components/tabs/index.d.ts +1 -1
  229. package/dist/components/tabs/index.js +1 -1
  230. package/dist/components/tag/index.js +1 -1
  231. package/dist/components/task-card/index.js +1 -1
  232. package/dist/components/task-tray/index.js +1 -1
  233. package/dist/components/task-tray/task-tray.d.ts +1 -1
  234. package/dist/components/text-area/index.js +1 -1
  235. package/dist/components/text-input/index.js +1 -1
  236. package/dist/components/theme-root/index.js +1 -1
  237. package/dist/components/theme-toggle/index.js +1 -1
  238. package/dist/components/theme-toggle/theme-toggle.d.ts +1 -1
  239. package/dist/components/time-picker/index.js +1 -1
  240. package/dist/components/time-picker/time-picker.d.ts +1 -1
  241. package/dist/components/timeline/index.js +1 -1
  242. package/dist/components/timeline/timeline.d.ts +1 -1
  243. package/dist/components/toast/index.js +1 -1
  244. package/dist/components/tooth-scheme/index.js +1 -1
  245. package/dist/components/tooth-scheme/tooth-scheme.d.ts +1 -1
  246. package/dist/components/transaction-chip/index.d.ts +3 -0
  247. package/dist/components/transaction-chip/index.js +5 -0
  248. package/dist/components/transaction-chip/transaction-chip.d.ts +30 -0
  249. package/dist/components/transcript-panel/index.js +1 -1
  250. package/dist/components/transcript-panel/transcript-panel.d.ts +1 -1
  251. package/dist/components/typing-indicator/index.js +1 -1
  252. package/dist/components/visually-hidden/index.js +1 -1
  253. package/dist/components/warning-stack/index.js +1 -1
  254. package/dist/components/workflow/index.js +1 -1
  255. package/dist/components/workflow/workflow-editor.d.ts +1 -1
  256. package/dist/hooks/index.js +1 -1
  257. package/dist/i18n/config.js +36 -0
  258. package/dist/i18n/resources.d.ts +36 -0
  259. package/dist/index.js +394 -402
  260. package/dist/locales/de.json +12 -0
  261. package/dist/locales/en.json +12 -0
  262. package/dist/locales/it.json +12 -0
  263. package/dist/patterns/leo-assistant/index.js +1 -1
  264. package/dist/patterns/patient-shell/index.js +1 -1
  265. package/dist/safe-html/index.js +20 -3
  266. package/dist/tokens.css +2 -2
  267. package/package.json +8 -6
  268. package/dist/_chunks/accordion-BEnrZmAn.js +0 -120
  269. package/dist/_chunks/accordion-BEnrZmAn.js.map +0 -1
  270. package/dist/_chunks/accordion.agent-BTjeO1Sx.js +0 -52
  271. package/dist/_chunks/accordion.agent-BTjeO1Sx.js.map +0 -1
  272. package/dist/_chunks/agenda-card-DwLIxgi7.js.map +0 -1
  273. package/dist/_chunks/agenda-card.agent-B_R47-c9.js.map +0 -1
  274. package/dist/_chunks/agenda-tray-DUvengGQ.js.map +0 -1
  275. package/dist/_chunks/ai-prompt-input.agent-0NHYLTWD.js.map +0 -1
  276. package/dist/_chunks/alert-BlOUMkXj.js.map +0 -1
  277. package/dist/_chunks/apexcharts-theme-BkSShpEy.js.map +0 -1
  278. package/dist/_chunks/app-frame-6d7Lu4ea.js.map +0 -1
  279. package/dist/_chunks/aspect-ratio-DeSNzASA.js.map +0 -1
  280. package/dist/_chunks/audio-recorder.agent--VKeykUp.js.map +0 -1
  281. package/dist/_chunks/audio-visualiser-CeMPCZkd.js.map +0 -1
  282. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js +0 -432
  283. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js.map +0 -1
  284. package/dist/_chunks/avatar-Dcr6XuDQ.js.map +0 -1
  285. package/dist/_chunks/badge-mrstWxve.js.map +0 -1
  286. package/dist/_chunks/balance-cell-renderer-5CA7zpAi.js.map +0 -1
  287. package/dist/_chunks/breadcrumb.agent-GM2hAKFX.js.map +0 -1
  288. package/dist/_chunks/button-7mLWcMp_.js.map +0 -1
  289. package/dist/_chunks/button-group-CONver7M.js.map +0 -1
  290. package/dist/_chunks/button.agent-BuGZBktn.js.map +0 -1
  291. package/dist/_chunks/calendar-nGEgelJs.js.map +0 -1
  292. package/dist/_chunks/card-BEy58ZKp.js.map +0 -1
  293. package/dist/_chunks/chart.agent-_pRYS17d.js.map +0 -1
  294. package/dist/_chunks/chat-container-Dl0Kfy5a.js +0 -175
  295. package/dist/_chunks/chat-container-Dl0Kfy5a.js.map +0 -1
  296. package/dist/_chunks/chat-container.agent-CM4WModE.js +0 -27
  297. package/dist/_chunks/chat-container.agent-CM4WModE.js.map +0 -1
  298. package/dist/_chunks/chat-input-C_tMQv92.js +0 -252
  299. package/dist/_chunks/chat-input-C_tMQv92.js.map +0 -1
  300. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js +0 -69
  301. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js.map +0 -1
  302. package/dist/_chunks/chat-message-ByouZpPP.js.map +0 -1
  303. package/dist/_chunks/check-DPdL_Sm7.js.map +0 -1
  304. package/dist/_chunks/checkbox-CtPM6Rup.js.map +0 -1
  305. package/dist/_chunks/checkbox-group-BTdEB6Yo.js.map +0 -1
  306. package/dist/_chunks/chevron-down-BX_NP2Yh.js.map +0 -1
  307. package/dist/_chunks/chevron-left-CX1jqD2M.js.map +0 -1
  308. package/dist/_chunks/chevron-right-BrpYejk0.js.map +0 -1
  309. package/dist/_chunks/chevron-up-zOEDrmBB.js.map +0 -1
  310. package/dist/_chunks/chevrons-right-d9MwesPG.js.map +0 -1
  311. package/dist/_chunks/circle-BkqTgYmt.js.map +0 -1
  312. package/dist/_chunks/circle-alert-ChA9opNA.js.map +0 -1
  313. package/dist/_chunks/circle-check-9AeSgJD_.js.map +0 -1
  314. package/dist/_chunks/circle-x-Du2CmjaU.js.map +0 -1
  315. package/dist/_chunks/clock-21AGPWJ5.js.map +0 -1
  316. package/dist/_chunks/collapsible.agent-DkS1jVyn.js.map +0 -1
  317. package/dist/_chunks/color-picker-94qcBZqZ.js.map +0 -1
  318. package/dist/_chunks/combobox.agent-CAvUkkIe.js +0 -410
  319. package/dist/_chunks/combobox.agent-CAvUkkIe.js.map +0 -1
  320. package/dist/_chunks/command-palette.agent-HatEt_EM.js +0 -391
  321. package/dist/_chunks/command-palette.agent-HatEt_EM.js.map +0 -1
  322. package/dist/_chunks/compose-refs-C0k0tdqF.js.map +0 -1
  323. package/dist/_chunks/copy-B00HK7tj.js.map +0 -1
  324. package/dist/_chunks/createLucideIcon-CrFbzy84.js.map +0 -1
  325. package/dist/_chunks/date-picker-BqPTn7bO.js.map +0 -1
  326. package/dist/_chunks/date-range-picker-B2hGsffw.js.map +0 -1
  327. package/dist/_chunks/date-time-picker-Bzt0S8yO.js.map +0 -1
  328. package/dist/_chunks/description-list-DvJbp6Yg.js.map +0 -1
  329. package/dist/_chunks/dialog.agent-Daf1TTko.js +0 -179
  330. package/dist/_chunks/dialog.agent-Daf1TTko.js.map +0 -1
  331. package/dist/_chunks/dropdown-menu-C7AZipNz.js +0 -219
  332. package/dist/_chunks/dropdown-menu-C7AZipNz.js.map +0 -1
  333. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js +0 -43
  334. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js.map +0 -1
  335. package/dist/_chunks/ellipsis-rgGdiK_9.js.map +0 -1
  336. package/dist/_chunks/empty-state-DQPtRp2b.js.map +0 -1
  337. package/dist/_chunks/eye-off-xEXDAh5z.js.map +0 -1
  338. package/dist/_chunks/file-text-DSNuv2B8.js.map +0 -1
  339. package/dist/_chunks/file-upload.agent-DJaH2dHg.js +0 -681
  340. package/dist/_chunks/file-upload.agent-DJaH2dHg.js.map +0 -1
  341. package/dist/_chunks/flag-DZ6V7-hU.js.map +0 -1
  342. package/dist/_chunks/floating-action-button-Cnw-f6AG.js.map +0 -1
  343. package/dist/_chunks/form-field-BfsPLTSc.js.map +0 -1
  344. package/dist/_chunks/form-field-context-94LwgYTQ.js.map +0 -1
  345. package/dist/_chunks/freemium-paywall.agent-_nQqLyRF.js.map +0 -1
  346. package/dist/_chunks/globe-BkEFMNSg.js.map +0 -1
  347. package/dist/_chunks/group-options-BvKhQ3xb.js.map +0 -1
  348. package/dist/_chunks/header-BGn1mRp8.js.map +0 -1
  349. package/dist/_chunks/icon-button-Wnnde5lc.js.map +0 -1
  350. package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +0 -1
  351. package/dist/_chunks/index-4xgbg-sn.js.map +0 -1
  352. package/dist/_chunks/index-CJE9uQmb.js.map +0 -1
  353. package/dist/_chunks/index-CeY1nNvd.js.map +0 -1
  354. package/dist/_chunks/index-D2ZczOXr.js.map +0 -1
  355. package/dist/_chunks/info-B9XNKn05.js.map +0 -1
  356. package/dist/_chunks/input-surface-u4QB0lxe.js.map +0 -1
  357. package/dist/_chunks/isSameDay-ecuM8PBB.js.map +0 -1
  358. package/dist/_chunks/isSameMonth-5wNF2f4I.js.map +0 -1
  359. package/dist/_chunks/kbd-8baVw3KU.js.map +0 -1
  360. package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +0 -1
  361. package/dist/_chunks/leo-sidebar-BwINPdix.js.map +0 -1
  362. package/dist/_chunks/link-QheANk74.js.map +0 -1
  363. package/dist/_chunks/list.agent-D0iWt4VI.js +0 -420
  364. package/dist/_chunks/list.agent-D0iWt4VI.js.map +0 -1
  365. package/dist/_chunks/live-region-C41SO3cA.js.map +0 -1
  366. package/dist/_chunks/log-out-616hnn2-.js.map +0 -1
  367. package/dist/_chunks/logo-BpFoCL-s.js.map +0 -1
  368. package/dist/_chunks/mail-C8irm52s.js.map +0 -1
  369. package/dist/_chunks/matrix-rain-BEkvux64.js.map +0 -1
  370. package/dist/_chunks/message-card-qhoGv947.js.map +0 -1
  371. package/dist/_chunks/message-card.agent-4IeIgrnJ.js.map +0 -1
  372. package/dist/_chunks/message-tray-xHUCra-Y.js.map +0 -1
  373. package/dist/_chunks/multi-select.agent-Do6CeQUT.js.map +0 -1
  374. package/dist/_chunks/navigation-menu.agent-D69ND6Qq.js.map +0 -1
  375. package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +0 -1
  376. package/dist/_chunks/notification-card-CsVEYJE-.js.map +0 -1
  377. package/dist/_chunks/notification-card.agent-Rqt3ofk9.js.map +0 -1
  378. package/dist/_chunks/notification-tray-DTXMq42J.js.map +0 -1
  379. package/dist/_chunks/number-input-fvGmnRy9.js.map +0 -1
  380. package/dist/_chunks/otp-input-EglXOUue.js.map +0 -1
  381. package/dist/_chunks/pagination.agent-BkZQl45y.js.map +0 -1
  382. package/dist/_chunks/password-input-D6kuYXmr.js.map +0 -1
  383. package/dist/_chunks/patient-shell-BRmrrUUW.js.map +0 -1
  384. package/dist/_chunks/payment-form-BWaXas8z.js.map +0 -1
  385. package/dist/_chunks/payment-form.agent-kuIfodCj.js +0 -31
  386. package/dist/_chunks/payment-form.agent-kuIfodCj.js.map +0 -1
  387. package/dist/_chunks/pdf-viewer.agent-BaGEDheA.js.map +0 -1
  388. package/dist/_chunks/phone-input-C8Op4sEc.js.map +0 -1
  389. package/dist/_chunks/plus-CYKNmfuA.js.map +0 -1
  390. package/dist/_chunks/popover-kFN8s84V.js +0 -229
  391. package/dist/_chunks/popover-kFN8s84V.js.map +0 -1
  392. package/dist/_chunks/popover.agent-K_d1cfbj.js +0 -39
  393. package/dist/_chunks/popover.agent-K_d1cfbj.js.map +0 -1
  394. package/dist/_chunks/printer-CeVEWfQq.js.map +0 -1
  395. package/dist/_chunks/privacy-lock.agent-C1i1-T58.js.map +0 -1
  396. package/dist/_chunks/progress-wNsqkw8I.js +0 -253
  397. package/dist/_chunks/progress-wNsqkw8I.js.map +0 -1
  398. package/dist/_chunks/progress.agent-C68rDOXL.js +0 -27
  399. package/dist/_chunks/progress.agent-C68rDOXL.js.map +0 -1
  400. package/dist/_chunks/purify.es-DpIUMBYC.js.map +0 -1
  401. package/dist/_chunks/radio-DvF59ThA.js.map +0 -1
  402. package/dist/_chunks/radio-group-Cz1a4QCA.js.map +0 -1
  403. package/dist/_chunks/react-day-picker-C04L_28V.js.map +0 -1
  404. package/dist/_chunks/recaptcha-widget.agent-BGHpU5zD.js.map +0 -1
  405. package/dist/_chunks/registry-C9nwlNyL.js.map +0 -1
  406. package/dist/_chunks/resizable.agent-CMwZzvsi.js +0 -456
  407. package/dist/_chunks/resizable.agent-CMwZzvsi.js.map +0 -1
  408. package/dist/_chunks/rich-text-editor.agent-DnE125Tz.js.map +0 -1
  409. package/dist/_chunks/safe-image-src-DstKgCo7.js.map +0 -1
  410. package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +0 -1
  411. package/dist/_chunks/search-BonnQsHv.js.map +0 -1
  412. package/dist/_chunks/search-bar.agent-DxFAxctc.js.map +0 -1
  413. package/dist/_chunks/search-input-Xw3cdWXW.js.map +0 -1
  414. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +0 -1
  415. package/dist/_chunks/select-DY1Cb2Tg.js.map +0 -1
  416. package/dist/_chunks/send-CySZIRPJ.js.map +0 -1
  417. package/dist/_chunks/separator-B4wXDLNC.js.map +0 -1
  418. package/dist/_chunks/sheet-B9kH9pcI.js.map +0 -1
  419. package/dist/_chunks/sheet.agent-QAyTOxgk.js +0 -46
  420. package/dist/_chunks/sheet.agent-QAyTOxgk.js.map +0 -1
  421. package/dist/_chunks/sidebar-CHF5xr_P.js.map +0 -1
  422. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js +0 -49
  423. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js.map +0 -1
  424. package/dist/_chunks/sign-in-with-alfadocs-button-BN_FPGHT.js.map +0 -1
  425. package/dist/_chunks/signature-capture.agent-BpeDwFht.js.map +0 -1
  426. package/dist/_chunks/skeleton-dtqyF09N.js.map +0 -1
  427. package/dist/_chunks/skip-link-DmZ3c6cb.js.map +0 -1
  428. package/dist/_chunks/slider-CcsQTZTA.js.map +0 -1
  429. package/dist/_chunks/slot-grid-D_l5VsHG.js.map +0 -1
  430. package/dist/_chunks/sparkline.agent-56Sj7nOP.js.map +0 -1
  431. package/dist/_chunks/spinner-GCcv67vh.js.map +0 -1
  432. package/dist/_chunks/square-CZoGU14v.js.map +0 -1
  433. package/dist/_chunks/square-check-big-Jr-0202D.js.map +0 -1
  434. package/dist/_chunks/stat-DUB6g90R.js.map +0 -1
  435. package/dist/_chunks/stepper-C-sIpRRU.js.map +0 -1
  436. package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js.map +0 -1
  437. package/dist/_chunks/stepper-calendar.agent-9iT3ClIB.js.map +0 -1
  438. package/dist/_chunks/stepper-progress-Bmen-YXB.js +0 -149
  439. package/dist/_chunks/stepper-progress-Bmen-YXB.js.map +0 -1
  440. package/dist/_chunks/stepper-progress.agent-q9InWca4.js +0 -61
  441. package/dist/_chunks/stepper-progress.agent-q9InWca4.js.map +0 -1
  442. package/dist/_chunks/streaming-text-BgjCTVOw.js.map +0 -1
  443. package/dist/_chunks/suggestion-chip-DhFrkRPj.js.map +0 -1
  444. package/dist/_chunks/suggestion-chip.agent-6sNWFj7m.js.map +0 -1
  445. package/dist/_chunks/switch-BYEH8I53.js.map +0 -1
  446. package/dist/_chunks/tabs.agent-h7NvsTR1.js.map +0 -1
  447. package/dist/_chunks/tag-BqidXKo3.js.map +0 -1
  448. package/dist/_chunks/task-card-CY5ztNkU.js.map +0 -1
  449. package/dist/_chunks/task-card.agent-CUPKYd7w.js.map +0 -1
  450. package/dist/_chunks/task-tray-CCoUdorl.js.map +0 -1
  451. package/dist/_chunks/text-area-C_M8wliK.js.map +0 -1
  452. package/dist/_chunks/text-input-BX39e6T6.js.map +0 -1
  453. package/dist/_chunks/theme-root-DDb0TJjd.js.map +0 -1
  454. package/dist/_chunks/theme-toggle.agent-btmXTWdW.js.map +0 -1
  455. package/dist/_chunks/time-picker-B8AMIrX7.js.map +0 -1
  456. package/dist/_chunks/timeline.agent-CRPza9wc.js.map +0 -1
  457. package/dist/_chunks/timestamp-BV2lC-wV.js.map +0 -1
  458. package/dist/_chunks/toast.agent-BjEGuq1Z.js.map +0 -1
  459. package/dist/_chunks/tooltip-DHik5yRI.js.map +0 -1
  460. package/dist/_chunks/tooth-scheme.agent-CWrQBjJM.js.map +0 -1
  461. package/dist/_chunks/transcript-panel.agent-BXEYP6w-.js.map +0 -1
  462. package/dist/_chunks/triangle-alert-CBPUIzQo.js.map +0 -1
  463. package/dist/_chunks/typing-indicator-CbUBf-Dx.js.map +0 -1
  464. package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +0 -1
  465. package/dist/_chunks/use-direction-D6rvvG9G.js.map +0 -1
  466. package/dist/_chunks/use-locale-BuXR_Zl9.js.map +0 -1
  467. package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +0 -1
  468. package/dist/_chunks/use-theme-BMUhembX.js.map +0 -1
  469. package/dist/_chunks/user-CPxpqFjJ.js.map +0 -1
  470. package/dist/_chunks/visually-hidden-Bw7vBHLm.js.map +0 -1
  471. package/dist/_chunks/warning-stack-8Pa3pekh.js.map +0 -1
  472. package/dist/_chunks/workflow-map-D2A7rTEG.js.map +0 -1
  473. package/dist/_chunks/x-CCcI3eJp.js.map +0 -1
  474. package/dist/agent/index.d.ts.map +0 -1
  475. package/dist/agent/registry.d.ts.map +0 -1
  476. package/dist/agent/types.d.ts.map +0 -1
  477. package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +0 -1
  478. package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +0 -1
  479. package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +0 -1
  480. package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +0 -1
  481. package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +0 -1
  482. package/dist/brand/logo-asset/index.d.ts.map +0 -1
  483. package/dist/components/_shared/calendar-chevron.d.ts.map +0 -1
  484. package/dist/components/_shared/compose-refs.d.ts.map +0 -1
  485. package/dist/components/_shared/date-locale.d.ts.map +0 -1
  486. package/dist/components/_shared/date-picker-variants.d.ts.map +0 -1
  487. package/dist/components/_shared/date-utils.d.ts.map +0 -1
  488. package/dist/components/_shared/group-options.d.ts.map +0 -1
  489. package/dist/components/_shared/index.d.ts.map +0 -1
  490. package/dist/components/_shared/input-surface.d.ts.map +0 -1
  491. package/dist/components/_shared/normalize-diacritics.d.ts.map +0 -1
  492. package/dist/components/_shared/option.d.ts.map +0 -1
  493. package/dist/components/_shared/safe-html.d.ts.map +0 -1
  494. package/dist/components/_shared/safe-image-src.d.ts.map +0 -1
  495. package/dist/components/_shared/stepper.d.ts.map +0 -1
  496. package/dist/components/_shared/time.d.ts.map +0 -1
  497. package/dist/components/_shared/use-debounced-callback.d.ts.map +0 -1
  498. package/dist/components/_shared/use-direction.d.ts.map +0 -1
  499. package/dist/components/_shared/use-focus-trap.d.ts.map +0 -1
  500. package/dist/components/_shared/use-neutralize-hidden-focus.d.ts.map +0 -1
  501. package/dist/components/accordion/accordion.agent.d.ts.map +0 -1
  502. package/dist/components/accordion/accordion.d.ts.map +0 -1
  503. package/dist/components/accordion/index.d.ts.map +0 -1
  504. package/dist/components/accordion/index.js.map +0 -1
  505. package/dist/components/agenda-card/agenda-card.agent.d.ts.map +0 -1
  506. package/dist/components/agenda-card/agenda-card.d.ts.map +0 -1
  507. package/dist/components/agenda-card/index.d.ts.map +0 -1
  508. package/dist/components/agenda-card/index.js.map +0 -1
  509. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +0 -1
  510. package/dist/components/agenda-tray/agenda-tray.d.ts.map +0 -1
  511. package/dist/components/agenda-tray/index.d.ts.map +0 -1
  512. package/dist/components/agenda-tray/index.js.map +0 -1
  513. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +0 -1
  514. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +0 -1
  515. package/dist/components/ai-prompt-input/index.d.ts.map +0 -1
  516. package/dist/components/ai-prompt-input/index.js.map +0 -1
  517. package/dist/components/alert/alert.d.ts.map +0 -1
  518. package/dist/components/alert/index.d.ts.map +0 -1
  519. package/dist/components/alert/index.js.map +0 -1
  520. package/dist/components/app-frame/app-frame.d.ts.map +0 -1
  521. package/dist/components/app-frame/index.d.ts.map +0 -1
  522. package/dist/components/app-frame/index.js.map +0 -1
  523. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +0 -1
  524. package/dist/components/aspect-ratio/index.d.ts.map +0 -1
  525. package/dist/components/aspect-ratio/index.js.map +0 -1
  526. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +0 -1
  527. package/dist/components/audio-recorder/audio-recorder.d.ts.map +0 -1
  528. package/dist/components/audio-recorder/index.d.ts.map +0 -1
  529. package/dist/components/audio-recorder/index.js.map +0 -1
  530. package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +0 -1
  531. package/dist/components/audio-visualiser/index.d.ts.map +0 -1
  532. package/dist/components/audio-visualiser/index.js.map +0 -1
  533. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +0 -1
  534. package/dist/components/autocomplete/autocomplete.d.ts.map +0 -1
  535. package/dist/components/autocomplete/index.d.ts.map +0 -1
  536. package/dist/components/autocomplete/index.js.map +0 -1
  537. package/dist/components/avatar/avatar.d.ts.map +0 -1
  538. package/dist/components/avatar/index.d.ts.map +0 -1
  539. package/dist/components/avatar/index.js.map +0 -1
  540. package/dist/components/badge/badge.d.ts.map +0 -1
  541. package/dist/components/badge/index.d.ts.map +0 -1
  542. package/dist/components/badge/index.js.map +0 -1
  543. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +0 -1
  544. package/dist/components/breadcrumb/breadcrumb.d.ts.map +0 -1
  545. package/dist/components/breadcrumb/index.d.ts.map +0 -1
  546. package/dist/components/breadcrumb/index.js.map +0 -1
  547. package/dist/components/button/button.agent.d.ts.map +0 -1
  548. package/dist/components/button/button.d.ts.map +0 -1
  549. package/dist/components/button/icon-button.d.ts.map +0 -1
  550. package/dist/components/button/index.d.ts.map +0 -1
  551. package/dist/components/button/index.js.map +0 -1
  552. package/dist/components/button-group/button-group.d.ts.map +0 -1
  553. package/dist/components/button-group/index.d.ts.map +0 -1
  554. package/dist/components/button-group/index.js.map +0 -1
  555. package/dist/components/calendar/calendar.agent.d.ts.map +0 -1
  556. package/dist/components/calendar/calendar.d.ts.map +0 -1
  557. package/dist/components/calendar/contrast-warning.d.ts.map +0 -1
  558. package/dist/components/calendar/index.d.ts.map +0 -1
  559. package/dist/components/calendar/index.js.map +0 -1
  560. package/dist/components/card/card.d.ts.map +0 -1
  561. package/dist/components/card/index.d.ts.map +0 -1
  562. package/dist/components/card/index.js.map +0 -1
  563. package/dist/components/chart/chart.agent.d.ts.map +0 -1
  564. package/dist/components/chart/chart.d.ts.map +0 -1
  565. package/dist/components/chart/index.d.ts.map +0 -1
  566. package/dist/components/chart/index.js.map +0 -1
  567. package/dist/components/chat-container/chat-container.agent.d.ts.map +0 -1
  568. package/dist/components/chat-container/chat-container.d.ts.map +0 -1
  569. package/dist/components/chat-container/index.d.ts.map +0 -1
  570. package/dist/components/chat-container/index.js.map +0 -1
  571. package/dist/components/chat-input/chat-input.agent.d.ts.map +0 -1
  572. package/dist/components/chat-input/chat-input.d.ts.map +0 -1
  573. package/dist/components/chat-input/index.d.ts.map +0 -1
  574. package/dist/components/chat-input/index.js.map +0 -1
  575. package/dist/components/chat-message/chat-message.d.ts.map +0 -1
  576. package/dist/components/chat-message/index.d.ts.map +0 -1
  577. package/dist/components/chat-message/index.js.map +0 -1
  578. package/dist/components/checkbox/checkbox-group-context.d.ts.map +0 -1
  579. package/dist/components/checkbox/checkbox.agent.d.ts.map +0 -1
  580. package/dist/components/checkbox/checkbox.d.ts.map +0 -1
  581. package/dist/components/checkbox/index.d.ts.map +0 -1
  582. package/dist/components/checkbox/index.js.map +0 -1
  583. package/dist/components/checkbox-group/checkbox-group.agent.d.ts.map +0 -1
  584. package/dist/components/checkbox-group/checkbox-group.d.ts.map +0 -1
  585. package/dist/components/checkbox-group/index.d.ts.map +0 -1
  586. package/dist/components/checkbox-group/index.js.map +0 -1
  587. package/dist/components/collapsible/collapsible.agent.d.ts.map +0 -1
  588. package/dist/components/collapsible/collapsible.d.ts.map +0 -1
  589. package/dist/components/collapsible/index.d.ts.map +0 -1
  590. package/dist/components/collapsible/index.js.map +0 -1
  591. package/dist/components/color-picker/color-picker.agent.d.ts.map +0 -1
  592. package/dist/components/color-picker/color-picker.d.ts.map +0 -1
  593. package/dist/components/color-picker/color-utils.d.ts.map +0 -1
  594. package/dist/components/color-picker/index.d.ts.map +0 -1
  595. package/dist/components/color-picker/index.js.map +0 -1
  596. package/dist/components/color-picker/palettes.d.ts.map +0 -1
  597. package/dist/components/combobox/combobox.agent.d.ts.map +0 -1
  598. package/dist/components/combobox/combobox.d.ts.map +0 -1
  599. package/dist/components/combobox/index.d.ts.map +0 -1
  600. package/dist/components/combobox/index.js.map +0 -1
  601. package/dist/components/command-palette/command-palette.agent.d.ts.map +0 -1
  602. package/dist/components/command-palette/command-palette.d.ts.map +0 -1
  603. package/dist/components/command-palette/index.d.ts.map +0 -1
  604. package/dist/components/command-palette/index.js.map +0 -1
  605. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +0 -1
  606. package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +0 -1
  607. package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +0 -1
  608. package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +0 -1
  609. package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +0 -1
  610. package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +0 -1
  611. package/dist/components/data-table/cell-renderers/status-cell-renderer.d.ts.map +0 -1
  612. package/dist/components/data-table/cell-renderers/tag-list-cell-renderer.d.ts.map +0 -1
  613. package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +0 -1
  614. package/dist/components/data-table/cell-renderers/user-cell-renderer.d.ts.map +0 -1
  615. package/dist/components/data-table/data-table.agent.d.ts.map +0 -1
  616. package/dist/components/data-table/data-table.d.ts.map +0 -1
  617. package/dist/components/data-table/hooks/use-total-row.d.ts.map +0 -1
  618. package/dist/components/data-table/index.d.ts.map +0 -1
  619. package/dist/components/data-table/index.js.map +0 -1
  620. package/dist/components/data-table/toolbar.d.ts.map +0 -1
  621. package/dist/components/date-picker/date-picker.agent.d.ts.map +0 -1
  622. package/dist/components/date-picker/date-picker.d.ts.map +0 -1
  623. package/dist/components/date-picker/index.d.ts.map +0 -1
  624. package/dist/components/date-picker/index.js.map +0 -1
  625. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +0 -1
  626. package/dist/components/date-range-picker/date-range-picker.d.ts.map +0 -1
  627. package/dist/components/date-range-picker/index.d.ts.map +0 -1
  628. package/dist/components/date-range-picker/index.js.map +0 -1
  629. package/dist/components/date-time-picker/date-time-picker.agent.d.ts.map +0 -1
  630. package/dist/components/date-time-picker/date-time-picker.d.ts.map +0 -1
  631. package/dist/components/date-time-picker/index.d.ts.map +0 -1
  632. package/dist/components/date-time-picker/index.js.map +0 -1
  633. package/dist/components/description-list/description-list.d.ts.map +0 -1
  634. package/dist/components/description-list/index.d.ts.map +0 -1
  635. package/dist/components/description-list/index.js.map +0 -1
  636. package/dist/components/dialog/dialog.agent.d.ts.map +0 -1
  637. package/dist/components/dialog/dialog.d.ts.map +0 -1
  638. package/dist/components/dialog/index.d.ts.map +0 -1
  639. package/dist/components/dialog/index.js.map +0 -1
  640. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +0 -1
  641. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  642. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  643. package/dist/components/dropdown-menu/index.js.map +0 -1
  644. package/dist/components/empty-state/empty-state.d.ts.map +0 -1
  645. package/dist/components/empty-state/index.d.ts.map +0 -1
  646. package/dist/components/empty-state/index.js.map +0 -1
  647. package/dist/components/file-upload/file-upload.agent.d.ts.map +0 -1
  648. package/dist/components/file-upload/file-upload.d.ts.map +0 -1
  649. package/dist/components/file-upload/index.d.ts.map +0 -1
  650. package/dist/components/file-upload/index.js.map +0 -1
  651. package/dist/components/flag/flag.d.ts.map +0 -1
  652. package/dist/components/flag/index.d.ts.map +0 -1
  653. package/dist/components/flag/index.js.map +0 -1
  654. package/dist/components/floating-action-button/floating-action-button.d.ts.map +0 -1
  655. package/dist/components/floating-action-button/index.d.ts.map +0 -1
  656. package/dist/components/floating-action-button/index.js.map +0 -1
  657. package/dist/components/form-field/form-field-context.d.ts.map +0 -1
  658. package/dist/components/form-field/form-field.d.ts.map +0 -1
  659. package/dist/components/form-field/index.d.ts.map +0 -1
  660. package/dist/components/form-field/index.js.map +0 -1
  661. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +0 -1
  662. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +0 -1
  663. package/dist/components/freemium-paywall/index.d.ts.map +0 -1
  664. package/dist/components/freemium-paywall/index.js.map +0 -1
  665. package/dist/components/header/header.d.ts.map +0 -1
  666. package/dist/components/header/index.d.ts.map +0 -1
  667. package/dist/components/header/index.js.map +0 -1
  668. package/dist/components/icon-button/index.d.ts.map +0 -1
  669. package/dist/components/icon-button/index.js.map +0 -1
  670. package/dist/components/icon-button-group/icon-button-group.d.ts.map +0 -1
  671. package/dist/components/icon-button-group/index.d.ts.map +0 -1
  672. package/dist/components/icon-button-group/index.js.map +0 -1
  673. package/dist/components/index.d.ts.map +0 -1
  674. package/dist/components/kbd/index.d.ts.map +0 -1
  675. package/dist/components/kbd/index.js.map +0 -1
  676. package/dist/components/kbd/kbd.d.ts.map +0 -1
  677. package/dist/components/key-value-pair/index.d.ts.map +0 -1
  678. package/dist/components/key-value-pair/index.js.map +0 -1
  679. package/dist/components/key-value-pair/key-value-pair.d.ts.map +0 -1
  680. package/dist/components/link/index.d.ts.map +0 -1
  681. package/dist/components/link/index.js.map +0 -1
  682. package/dist/components/link/link.d.ts.map +0 -1
  683. package/dist/components/list/index.d.ts.map +0 -1
  684. package/dist/components/list/index.js.map +0 -1
  685. package/dist/components/list/list.agent.d.ts.map +0 -1
  686. package/dist/components/list/list.d.ts.map +0 -1
  687. package/dist/components/live-region/index.d.ts.map +0 -1
  688. package/dist/components/live-region/index.js.map +0 -1
  689. package/dist/components/live-region/live-region.d.ts.map +0 -1
  690. package/dist/components/logo/index.d.ts.map +0 -1
  691. package/dist/components/logo/index.js.map +0 -1
  692. package/dist/components/logo/logo.d.ts.map +0 -1
  693. package/dist/components/matrix-rain/index.d.ts.map +0 -1
  694. package/dist/components/matrix-rain/index.js.map +0 -1
  695. package/dist/components/matrix-rain/matrix-rain.d.ts.map +0 -1
  696. package/dist/components/message-card/index.d.ts.map +0 -1
  697. package/dist/components/message-card/index.js.map +0 -1
  698. package/dist/components/message-card/message-card.agent.d.ts.map +0 -1
  699. package/dist/components/message-card/message-card.d.ts.map +0 -1
  700. package/dist/components/message-tray/index.d.ts.map +0 -1
  701. package/dist/components/message-tray/index.js.map +0 -1
  702. package/dist/components/message-tray/message-tray.agent.d.ts.map +0 -1
  703. package/dist/components/message-tray/message-tray.d.ts.map +0 -1
  704. package/dist/components/multi-select/index.d.ts.map +0 -1
  705. package/dist/components/multi-select/index.js.map +0 -1
  706. package/dist/components/multi-select/multi-select.agent.d.ts.map +0 -1
  707. package/dist/components/multi-select/multi-select.d.ts.map +0 -1
  708. package/dist/components/navigation-menu/index.d.ts.map +0 -1
  709. package/dist/components/navigation-menu/index.js.map +0 -1
  710. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +0 -1
  711. package/dist/components/navigation-menu/navigation-menu.d.ts.map +0 -1
  712. package/dist/components/notification-card/index.d.ts.map +0 -1
  713. package/dist/components/notification-card/index.js.map +0 -1
  714. package/dist/components/notification-card/notification-card.agent.d.ts.map +0 -1
  715. package/dist/components/notification-card/notification-card.d.ts.map +0 -1
  716. package/dist/components/notification-tray/index.d.ts.map +0 -1
  717. package/dist/components/notification-tray/index.js.map +0 -1
  718. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +0 -1
  719. package/dist/components/notification-tray/notification-tray.d.ts.map +0 -1
  720. package/dist/components/number-input/index.d.ts.map +0 -1
  721. package/dist/components/number-input/index.js.map +0 -1
  722. package/dist/components/number-input/number-input.agent.d.ts.map +0 -1
  723. package/dist/components/number-input/number-input.d.ts.map +0 -1
  724. package/dist/components/number-input/use-locale-number.d.ts.map +0 -1
  725. package/dist/components/otp-input/index.d.ts.map +0 -1
  726. package/dist/components/otp-input/index.js.map +0 -1
  727. package/dist/components/otp-input/otp-input.agent.d.ts.map +0 -1
  728. package/dist/components/otp-input/otp-input.d.ts.map +0 -1
  729. package/dist/components/pagination/index.d.ts.map +0 -1
  730. package/dist/components/pagination/index.js.map +0 -1
  731. package/dist/components/pagination/pagination.agent.d.ts.map +0 -1
  732. package/dist/components/pagination/pagination.d.ts.map +0 -1
  733. package/dist/components/password-input/index.d.ts.map +0 -1
  734. package/dist/components/password-input/index.js.map +0 -1
  735. package/dist/components/password-input/password-input.agent.d.ts.map +0 -1
  736. package/dist/components/password-input/password-input.d.ts.map +0 -1
  737. package/dist/components/payment-form/index.d.ts.map +0 -1
  738. package/dist/components/payment-form/index.js.map +0 -1
  739. package/dist/components/payment-form/payment-form.agent.d.ts.map +0 -1
  740. package/dist/components/payment-form/payment-form.d.ts.map +0 -1
  741. package/dist/components/pdf-viewer/index.d.ts.map +0 -1
  742. package/dist/components/pdf-viewer/index.js.map +0 -1
  743. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +0 -1
  744. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +0 -1
  745. package/dist/components/phone-input/index.d.ts.map +0 -1
  746. package/dist/components/phone-input/index.js.map +0 -1
  747. package/dist/components/phone-input/phone-input.agent.d.ts.map +0 -1
  748. package/dist/components/phone-input/phone-input.d.ts.map +0 -1
  749. package/dist/components/popover/index.d.ts.map +0 -1
  750. package/dist/components/popover/index.js.map +0 -1
  751. package/dist/components/popover/popover.agent.d.ts.map +0 -1
  752. package/dist/components/popover/popover.d.ts.map +0 -1
  753. package/dist/components/privacy-lock/index.d.ts.map +0 -1
  754. package/dist/components/privacy-lock/index.js.map +0 -1
  755. package/dist/components/privacy-lock/privacy-lock.agent.d.ts.map +0 -1
  756. package/dist/components/privacy-lock/privacy-lock.d.ts.map +0 -1
  757. package/dist/components/progress/index.d.ts.map +0 -1
  758. package/dist/components/progress/index.js.map +0 -1
  759. package/dist/components/progress/progress.agent.d.ts.map +0 -1
  760. package/dist/components/progress/progress.d.ts.map +0 -1
  761. package/dist/components/radio/index.d.ts.map +0 -1
  762. package/dist/components/radio/index.js.map +0 -1
  763. package/dist/components/radio-group/index.d.ts.map +0 -1
  764. package/dist/components/radio-group/index.js.map +0 -1
  765. package/dist/components/radio-group/radio-group-context.d.ts.map +0 -1
  766. package/dist/components/radio-group/radio-group.agent.d.ts.map +0 -1
  767. package/dist/components/radio-group/radio-group.d.ts.map +0 -1
  768. package/dist/components/radio-group/radio.d.ts.map +0 -1
  769. package/dist/components/recaptcha-widget/index.d.ts.map +0 -1
  770. package/dist/components/recaptcha-widget/index.js.map +0 -1
  771. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +0 -1
  772. package/dist/components/recaptcha-widget/recaptcha-widget.d.ts.map +0 -1
  773. package/dist/components/resizable/index.d.ts.map +0 -1
  774. package/dist/components/resizable/index.js.map +0 -1
  775. package/dist/components/resizable/resizable-context.d.ts.map +0 -1
  776. package/dist/components/resizable/resizable.agent.d.ts.map +0 -1
  777. package/dist/components/resizable/resizable.d.ts.map +0 -1
  778. package/dist/components/rich-text-editor/index.d.ts.map +0 -1
  779. package/dist/components/rich-text-editor/index.js.map +0 -1
  780. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +0 -1
  781. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +0 -1
  782. package/dist/components/scroll-area/index.d.ts.map +0 -1
  783. package/dist/components/scroll-area/index.js.map +0 -1
  784. package/dist/components/scroll-area/scroll-area.d.ts.map +0 -1
  785. package/dist/components/search-bar/index.d.ts.map +0 -1
  786. package/dist/components/search-bar/index.js.map +0 -1
  787. package/dist/components/search-bar/search-bar.agent.d.ts.map +0 -1
  788. package/dist/components/search-bar/search-bar.d.ts.map +0 -1
  789. package/dist/components/search-input/index.d.ts.map +0 -1
  790. package/dist/components/search-input/index.js.map +0 -1
  791. package/dist/components/search-input/search-input.agent.d.ts.map +0 -1
  792. package/dist/components/search-input/search-input.d.ts.map +0 -1
  793. package/dist/components/select/index.d.ts.map +0 -1
  794. package/dist/components/select/index.js.map +0 -1
  795. package/dist/components/select/select.agent.d.ts.map +0 -1
  796. package/dist/components/select/select.d.ts.map +0 -1
  797. package/dist/components/separator/index.d.ts.map +0 -1
  798. package/dist/components/separator/index.js.map +0 -1
  799. package/dist/components/separator/separator.d.ts.map +0 -1
  800. package/dist/components/sheet/index.d.ts.map +0 -1
  801. package/dist/components/sheet/index.js.map +0 -1
  802. package/dist/components/sheet/sheet.agent.d.ts.map +0 -1
  803. package/dist/components/sheet/sheet.d.ts.map +0 -1
  804. package/dist/components/sidebar/index.d.ts.map +0 -1
  805. package/dist/components/sidebar/index.js.map +0 -1
  806. package/dist/components/sidebar/sidebar.agent.d.ts.map +0 -1
  807. package/dist/components/sidebar/sidebar.d.ts.map +0 -1
  808. package/dist/components/sign-in-with-alfadocs-button/index.d.ts.map +0 -1
  809. package/dist/components/sign-in-with-alfadocs-button/index.js.map +0 -1
  810. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +0 -1
  811. package/dist/components/signature-capture/index.d.ts.map +0 -1
  812. package/dist/components/signature-capture/index.js.map +0 -1
  813. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +0 -1
  814. package/dist/components/signature-capture/signature-capture.d.ts.map +0 -1
  815. package/dist/components/skeleton/index.d.ts.map +0 -1
  816. package/dist/components/skeleton/index.js.map +0 -1
  817. package/dist/components/skeleton/skeleton.d.ts.map +0 -1
  818. package/dist/components/skip-link/index.d.ts.map +0 -1
  819. package/dist/components/skip-link/index.js.map +0 -1
  820. package/dist/components/skip-link/skip-link.d.ts.map +0 -1
  821. package/dist/components/slider/index.d.ts.map +0 -1
  822. package/dist/components/slider/index.js.map +0 -1
  823. package/dist/components/slider/slider.agent.d.ts.map +0 -1
  824. package/dist/components/slider/slider.d.ts.map +0 -1
  825. package/dist/components/slot-grid/index.d.ts.map +0 -1
  826. package/dist/components/slot-grid/index.js.map +0 -1
  827. package/dist/components/slot-grid/slot-grid.d.ts.map +0 -1
  828. package/dist/components/sparkline/index.d.ts.map +0 -1
  829. package/dist/components/sparkline/index.js.map +0 -1
  830. package/dist/components/sparkline/sparkline.agent.d.ts.map +0 -1
  831. package/dist/components/sparkline/sparkline.d.ts.map +0 -1
  832. package/dist/components/sparkline/use-linear-trend.d.ts.map +0 -1
  833. package/dist/components/spinner/index.d.ts.map +0 -1
  834. package/dist/components/spinner/index.js.map +0 -1
  835. package/dist/components/spinner/spinner.d.ts.map +0 -1
  836. package/dist/components/stat/index.d.ts.map +0 -1
  837. package/dist/components/stat/index.js.map +0 -1
  838. package/dist/components/stat/stat.d.ts.map +0 -1
  839. package/dist/components/stepper-accordion/index.d.ts.map +0 -1
  840. package/dist/components/stepper-accordion/index.js.map +0 -1
  841. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +0 -1
  842. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +0 -1
  843. package/dist/components/stepper-calendar/index.d.ts.map +0 -1
  844. package/dist/components/stepper-calendar/index.js.map +0 -1
  845. package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts.map +0 -1
  846. package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +0 -1
  847. package/dist/components/stepper-progress/index.d.ts.map +0 -1
  848. package/dist/components/stepper-progress/index.js.map +0 -1
  849. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +0 -1
  850. package/dist/components/stepper-progress/stepper-progress.d.ts.map +0 -1
  851. package/dist/components/streaming-text/index.d.ts.map +0 -1
  852. package/dist/components/streaming-text/index.js.map +0 -1
  853. package/dist/components/streaming-text/streaming-text.d.ts.map +0 -1
  854. package/dist/components/suggestion-chip/index.d.ts.map +0 -1
  855. package/dist/components/suggestion-chip/index.js.map +0 -1
  856. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +0 -1
  857. package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +0 -1
  858. package/dist/components/switch/index.d.ts.map +0 -1
  859. package/dist/components/switch/index.js.map +0 -1
  860. package/dist/components/switch/switch.agent.d.ts.map +0 -1
  861. package/dist/components/switch/switch.d.ts.map +0 -1
  862. package/dist/components/tabs/index.d.ts.map +0 -1
  863. package/dist/components/tabs/index.js.map +0 -1
  864. package/dist/components/tabs/tabs.agent.d.ts.map +0 -1
  865. package/dist/components/tabs/tabs.d.ts.map +0 -1
  866. package/dist/components/tag/index.d.ts.map +0 -1
  867. package/dist/components/tag/index.js.map +0 -1
  868. package/dist/components/tag/tag.d.ts.map +0 -1
  869. package/dist/components/task-card/index.d.ts.map +0 -1
  870. package/dist/components/task-card/index.js.map +0 -1
  871. package/dist/components/task-card/task-card.agent.d.ts.map +0 -1
  872. package/dist/components/task-card/task-card.d.ts.map +0 -1
  873. package/dist/components/task-tray/index.d.ts.map +0 -1
  874. package/dist/components/task-tray/index.js.map +0 -1
  875. package/dist/components/task-tray/task-tray.agent.d.ts.map +0 -1
  876. package/dist/components/task-tray/task-tray.d.ts.map +0 -1
  877. package/dist/components/text-area/index.d.ts.map +0 -1
  878. package/dist/components/text-area/index.js.map +0 -1
  879. package/dist/components/text-area/text-area.agent.d.ts.map +0 -1
  880. package/dist/components/text-area/text-area.d.ts.map +0 -1
  881. package/dist/components/text-input/index.d.ts.map +0 -1
  882. package/dist/components/text-input/index.js.map +0 -1
  883. package/dist/components/text-input/text-input.agent.d.ts.map +0 -1
  884. package/dist/components/text-input/text-input.d.ts.map +0 -1
  885. package/dist/components/theme-root/index.d.ts.map +0 -1
  886. package/dist/components/theme-root/index.js.map +0 -1
  887. package/dist/components/theme-root/theme-root.d.ts.map +0 -1
  888. package/dist/components/theme-toggle/index.d.ts.map +0 -1
  889. package/dist/components/theme-toggle/index.js.map +0 -1
  890. package/dist/components/theme-toggle/theme-toggle.agent.d.ts.map +0 -1
  891. package/dist/components/theme-toggle/theme-toggle.d.ts.map +0 -1
  892. package/dist/components/time-picker/index.d.ts.map +0 -1
  893. package/dist/components/time-picker/index.js.map +0 -1
  894. package/dist/components/time-picker/time-picker.agent.d.ts.map +0 -1
  895. package/dist/components/time-picker/time-picker.d.ts.map +0 -1
  896. package/dist/components/timeline/index.d.ts.map +0 -1
  897. package/dist/components/timeline/index.js.map +0 -1
  898. package/dist/components/timeline/timeline.agent.d.ts.map +0 -1
  899. package/dist/components/timeline/timeline.d.ts.map +0 -1
  900. package/dist/components/timestamp/index.d.ts.map +0 -1
  901. package/dist/components/timestamp/index.js.map +0 -1
  902. package/dist/components/timestamp/timestamp.d.ts.map +0 -1
  903. package/dist/components/toast/index.d.ts.map +0 -1
  904. package/dist/components/toast/index.js.map +0 -1
  905. package/dist/components/toast/toast.agent.d.ts.map +0 -1
  906. package/dist/components/toast/toast.d.ts.map +0 -1
  907. package/dist/components/tooltip/index.d.ts.map +0 -1
  908. package/dist/components/tooltip/index.js.map +0 -1
  909. package/dist/components/tooltip/tooltip.d.ts.map +0 -1
  910. package/dist/components/tooth-scheme/index.d.ts.map +0 -1
  911. package/dist/components/tooth-scheme/index.js.map +0 -1
  912. package/dist/components/tooth-scheme/tooth-data.d.ts.map +0 -1
  913. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +0 -1
  914. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +0 -1
  915. package/dist/components/transcript-panel/index.d.ts.map +0 -1
  916. package/dist/components/transcript-panel/index.js.map +0 -1
  917. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +0 -1
  918. package/dist/components/transcript-panel/transcript-panel.d.ts.map +0 -1
  919. package/dist/components/typing-indicator/index.d.ts.map +0 -1
  920. package/dist/components/typing-indicator/index.js.map +0 -1
  921. package/dist/components/typing-indicator/typing-indicator.d.ts.map +0 -1
  922. package/dist/components/visually-hidden/index.d.ts.map +0 -1
  923. package/dist/components/visually-hidden/index.js.map +0 -1
  924. package/dist/components/visually-hidden/visually-hidden.d.ts.map +0 -1
  925. package/dist/components/warning-stack/index.d.ts.map +0 -1
  926. package/dist/components/warning-stack/index.js.map +0 -1
  927. package/dist/components/warning-stack/warning-stack.d.ts.map +0 -1
  928. package/dist/components/workflow/index.d.ts.map +0 -1
  929. package/dist/components/workflow/index.js.map +0 -1
  930. package/dist/components/workflow/workflow-card.d.ts.map +0 -1
  931. package/dist/components/workflow/workflow-editor.d.ts.map +0 -1
  932. package/dist/components/workflow/workflow-map.d.ts.map +0 -1
  933. package/dist/components/workflow/workflow-types.d.ts.map +0 -1
  934. package/dist/components/workflow/workflow.agent.d.ts.map +0 -1
  935. package/dist/hooks/index.d.ts.map +0 -1
  936. package/dist/hooks/index.js.map +0 -1
  937. package/dist/hooks/use-locale.d.ts.map +0 -1
  938. package/dist/hooks/use-media-query.d.ts.map +0 -1
  939. package/dist/hooks/use-prefers-reduced-motion.d.ts.map +0 -1
  940. package/dist/hooks/use-theme.d.ts.map +0 -1
  941. package/dist/i18n/config.d.ts.map +0 -1
  942. package/dist/i18n/config.js.map +0 -1
  943. package/dist/i18n/resources.d.ts.map +0 -1
  944. package/dist/index.js.map +0 -1
  945. package/dist/option/index.js.map +0 -1
  946. package/dist/patterns/leo-assistant/index.d.ts.map +0 -1
  947. package/dist/patterns/leo-assistant/index.js.map +0 -1
  948. package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +0 -1
  949. package/dist/patterns/leo-assistant/leo-embedded.d.ts.map +0 -1
  950. package/dist/patterns/leo-assistant/leo-popout.d.ts.map +0 -1
  951. package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +0 -1
  952. package/dist/patterns/leo-assistant/leo-types.d.ts.map +0 -1
  953. package/dist/patterns/patient-shell/index.d.ts.map +0 -1
  954. package/dist/patterns/patient-shell/index.js.map +0 -1
  955. package/dist/patterns/patient-shell/patient-shell.d.ts.map +0 -1
  956. package/dist/safe-html/index.js.map +0 -1
  957. package/dist/tokens/apexcharts-theme.d.ts.map +0 -1
  958. package/dist/tokens/themes/bridges/stripe-appearance.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.agent-D0iWt4VI.js","sources":["../../src/components/list/list.tsx","../../src/components/list/list.agent.ts"],"sourcesContent":["import {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface ListContextValue {\n selection: 'none' | 'single' | 'multiple';\n selectedValues: Set<string>;\n focusedValue: string | null;\n disabled: boolean;\n enabledItemValues: string[];\n onItemSelect: (value: string) => void;\n onItemFocus: (value: string) => void;\n onItemKeyDown: (e: KeyboardEvent<HTMLElement>, value: string) => void;\n registerItemRef: (value: string, el: HTMLElement | null) => void;\n divider: 'spaced' | 'divided' | 'bordered';\n}\n\nconst ListContext = createContext<ListContextValue>({\n selection: 'none',\n selectedValues: new Set(),\n focusedValue: null,\n disabled: false,\n enabledItemValues: [],\n onItemSelect: () => {},\n onItemFocus: () => {},\n onItemKeyDown: () => {},\n registerItemRef: () => {},\n divider: 'spaced',\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA variants */\n/* ------------------------------------------------------------------ */\n\nconst listVariants = cva('ds:flex ds:flex-col ds:p-0 ds:m-0', {\n variants: {\n divider: {\n spaced: '',\n divided: '',\n bordered:\n 'ds:border ds:border-[color:var(--border)] ds:rounded-[var(--radius-md)] ds:overflow-hidden',\n },\n density: {\n compact: 'ds:gap-[var(--spacing-xs)]',\n default: 'ds:gap-[var(--spacing-sm)]',\n relaxed: 'ds:gap-[var(--spacing-md)]',\n },\n ordered: {\n true: 'ds:list-decimal ds:ps-[var(--spacing-lg)]',\n false: 'ds:list-none',\n },\n },\n defaultVariants: {\n divider: 'spaced',\n density: 'default',\n ordered: false,\n },\n});\n\nconst listItemVariants = cva(\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]',\n {\n variants: {\n divider: {\n spaced: '',\n divided: 'ds:[&:not(:last-child)]:[border-block-end:1px_solid_var(--border)]',\n bordered: 'ds:[&:not(:last-child)]:[border-block-end:1px_solid_var(--border)]',\n },\n interactive: {\n // flex lives on the outer <div role=\"option\"> so it doesn't suppress ::marker on <li>\n true: [\n 'ds:flex ds:items-center ds:gap-x-[var(--spacing-sm)]',\n 'ds:min-h-[var(--min-target-size)] ds:cursor-pointer ds:select-none',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n ].join(' '),\n // no flex here — <li> keeps display:list-item so ::marker renders correctly\n false: '',\n },\n selected: {\n true: '',\n false: '',\n },\n disabled: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n interactive: true,\n selected: false,\n disabled: false,\n className: 'ds:hover:bg-[color:var(--muted)]/20',\n },\n {\n interactive: true,\n selected: true,\n className: 'ds:bg-[color:var(--primary)]/10',\n },\n {\n interactive: true,\n disabled: true,\n className: 'ds:opacity-50 ds:cursor-not-allowed ds:pointer-events-none',\n },\n ],\n defaultVariants: {\n divider: 'spaced',\n interactive: false,\n selected: false,\n disabled: false,\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\n/** Curated imperative handle for agent / external automation. */\nexport interface ListHandle {\n getSelection: () => string[];\n setSelection: (ids: string[]) => void;\n clearSelection: () => void;\n}\n\nexport interface ListProps extends HTMLAttributes<HTMLElement> {\n as?: 'ul' | 'ol';\n start?: number;\n divider?: 'spaced' | 'divided' | 'bordered';\n density?: 'compact' | 'default' | 'relaxed';\n selection?: 'none' | 'single' | 'multiple';\n value?: string | string[];\n defaultValue?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n disabled?: boolean;\n children: ReactNode;\n className?: string;\n}\n\nexport interface ListItemProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {\n value?: string;\n leading?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n trailing?: ReactNode;\n lineClamp?: number;\n disabled?: boolean;\n className?: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction collectItemInfo(children: ReactNode): Array<{ value: string; disabled: boolean }> {\n const items: Array<{ value: string; disabled: boolean }> = [];\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n const props = child.props as { value?: unknown; disabled?: unknown };\n if (typeof props.value === 'string') {\n items.push({ value: props.value, disabled: Boolean(props.disabled) });\n }\n });\n return items;\n}\n\n/* ------------------------------------------------------------------ */\n/* ListRoot */\n/* ------------------------------------------------------------------ */\n\nconst ListRoot = forwardRef<ListHandle, ListProps>(\n (\n {\n as = 'ul',\n start,\n divider = 'spaced',\n density = 'default',\n selection = 'none',\n value: controlledValue,\n defaultValue,\n onValueChange,\n disabled = false,\n className,\n children,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const isSelectable = selection !== 'none';\n const isMultiple = selection === 'multiple';\n const isControlled = controlledValue !== undefined;\n\n const [internalValue, setInternalValue] = useState<string[]>(() => {\n if (defaultValue === undefined) return [];\n return Array.isArray(defaultValue) ? defaultValue : [defaultValue];\n });\n\n const selectedValues = useMemo<Set<string>>(() => {\n if (isControlled) {\n const v = controlledValue!;\n return new Set(Array.isArray(v) ? v : [v]);\n }\n return new Set(internalValue);\n }, [isControlled, controlledValue, internalValue]);\n\n const allItemInfo = useMemo(() => collectItemInfo(children), [children]);\n const enabledItemValues = useMemo(\n () => allItemInfo.filter((i) => !i.disabled && !disabled).map((i) => i.value),\n [allItemInfo, disabled],\n );\n\n const [focusedValue, setFocusedValue] = useState<string | null>(null);\n\n const itemRefs = useRef<Map<string, HTMLElement>>(new Map());\n\n const registerItemRef = useCallback((value: string, el: HTMLElement | null) => {\n if (el) {\n itemRefs.current.set(value, el);\n } else {\n itemRefs.current.delete(value);\n }\n }, []);\n\n const focusItem = useCallback((value: string) => {\n setFocusedValue(value);\n requestAnimationFrame(() => {\n itemRefs.current.get(value)?.focus();\n });\n }, []);\n\n const commit = useCallback(\n (next: string[]) => {\n if (!isControlled) setInternalValue(next);\n if (isMultiple) {\n onValueChange?.(next);\n } else {\n onValueChange?.(next[0] ?? '');\n }\n },\n [isControlled, isMultiple, onValueChange],\n );\n\n const handleItemSelect = useCallback(\n (itemValue: string) => {\n if (disabled) return;\n if (!isSelectable) return;\n if (isMultiple) {\n const current = [...selectedValues];\n if (selectedValues.has(itemValue)) {\n commit(current.filter((v) => v !== itemValue));\n } else {\n commit([...current, itemValue]);\n }\n } else {\n if (selectedValues.has(itemValue)) {\n commit([]);\n } else {\n commit([itemValue]);\n }\n }\n },\n [disabled, isSelectable, isMultiple, selectedValues, commit],\n );\n\n const handleItemFocus = useCallback((value: string) => {\n setFocusedValue(value);\n }, []);\n\n const handleItemKeyDown = useCallback(\n (e: KeyboardEvent<HTMLElement>, itemValue: string) => {\n if (!isSelectable) return;\n const currentIndex = enabledItemValues.indexOf(itemValue);\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const next = enabledItemValues[currentIndex + 1];\n if (next !== undefined) focusItem(next);\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prev = enabledItemValues[currentIndex - 1];\n if (prev !== undefined) focusItem(prev);\n break;\n }\n case 'Home': {\n e.preventDefault();\n const first = enabledItemValues[0];\n if (first !== undefined) focusItem(first);\n break;\n }\n case 'End': {\n e.preventDefault();\n const last = enabledItemValues[enabledItemValues.length - 1];\n if (last !== undefined) focusItem(last);\n break;\n }\n case ' ':\n case 'Enter': {\n e.preventDefault();\n handleItemSelect(itemValue);\n break;\n }\n }\n },\n [isSelectable, enabledItemValues, focusItem, handleItemSelect],\n );\n\n const ctxValue: ListContextValue = {\n selection,\n selectedValues,\n focusedValue,\n disabled,\n enabledItemValues,\n onItemSelect: handleItemSelect,\n onItemFocus: handleItemFocus,\n onItemKeyDown: handleItemKeyDown,\n registerItemRef,\n divider,\n };\n\n const classes = listVariants({ divider, density, ordered: as === 'ol', className });\n\n useImperativeHandle(\n ref,\n () => ({\n getSelection: () => Array.from(selectedValues),\n setSelection: (ids: string[]) => {\n if (!isSelectable) return;\n commit(isMultiple ? ids : ids.slice(0, 1));\n },\n clearSelection: () => {\n if (!isSelectable) return;\n commit([]);\n },\n }),\n [selectedValues, isSelectable, isMultiple, commit],\n );\n\n if (isSelectable) {\n if (import.meta.env.DEV && !ariaLabel && !props['aria-labelledby']) {\n console.warn(\n 'List: a selectable list (role=\"listbox\") should have an accessible name. ' +\n 'Pass aria-label or aria-labelledby to satisfy WCAG 4.1.2.',\n );\n }\n const resolvedAriaLabel = ariaLabel ?? t('ui.list.label', 'List');\n return (\n <ListContext.Provider value={ctxValue}>\n <div\n role=\"listbox\"\n aria-label={resolvedAriaLabel}\n aria-multiselectable={isMultiple ? true : undefined}\n aria-disabled={disabled ? true : undefined}\n className={classes}\n data-component=\"list\"\n data-component-id={props.id}\n {...props}\n >\n {children}\n </div>\n </ListContext.Provider>\n );\n }\n\n if (as === 'ol') {\n return (\n <ListContext.Provider value={ctxValue}>\n <ol\n role=\"list\"\n start={start}\n className={classes}\n data-component=\"list\"\n data-component-id={props.id}\n {...(props as HTMLAttributes<HTMLOListElement>)}\n >\n {children}\n </ol>\n </ListContext.Provider>\n );\n }\n\n return (\n <ListContext.Provider value={ctxValue}>\n <ul\n role=\"list\"\n className={classes}\n data-component=\"list\"\n data-component-id={props.id}\n {...(props as HTMLAttributes<HTMLUListElement>)}\n >\n {children}\n </ul>\n </ListContext.Provider>\n );\n },\n);\nListRoot.displayName = 'List';\n\n/* ------------------------------------------------------------------ */\n/* ListItem */\n/* ------------------------------------------------------------------ */\n\nconst ListItem = forwardRef<HTMLElement, ListItemProps>(\n (\n {\n value,\n leading,\n title,\n description,\n trailing,\n lineClamp,\n disabled: itemDisabled = false,\n className,\n onClick,\n onFocus,\n onKeyDown,\n ...props\n },\n ref,\n ) => {\n const {\n selection,\n selectedValues,\n focusedValue,\n disabled: groupDisabled,\n enabledItemValues,\n onItemSelect,\n onItemFocus,\n onItemKeyDown,\n registerItemRef,\n divider,\n } = useContext(ListContext);\n\n const isSelectable = selection !== 'none';\n const isDisabled = groupDisabled || itemDisabled;\n const isSelected = value !== undefined ? selectedValues.has(value) : false;\n const isFocused = value !== undefined && focusedValue === value;\n const isFirstEnabled = value !== undefined && enabledItemValues[0] === value;\n const tabIndex = isSelectable\n ? focusedValue !== null\n ? isFocused && !isDisabled\n ? 0\n : -1\n : isFirstEnabled && !isDisabled\n ? 0\n : -1\n : undefined;\n\n const descRef = useRef<HTMLSpanElement>(null);\n useLayoutEffect(() => {\n const el = descRef.current;\n if (!el) return;\n if (lineClamp != null) {\n el.style.setProperty('--list-item-clamp', String(lineClamp));\n } else {\n el.style.removeProperty('--list-item-clamp');\n }\n }, [lineClamp]);\n\n const internalRef = useCallback(\n (el: HTMLElement | null) => {\n if (value) registerItemRef(value, el);\n if (typeof ref === 'function') {\n ref(el);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLElement | null>).current = el;\n }\n },\n [value, registerItemRef, ref],\n );\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (isSelectable && value && !isDisabled) {\n onItemSelect(value);\n }\n (onClick as React.MouseEventHandler<HTMLElement> | undefined)?.(e);\n },\n [isSelectable, value, isDisabled, onItemSelect, onClick],\n );\n\n const handleFocus = useCallback(\n (e: React.FocusEvent<HTMLElement>) => {\n if (value) onItemFocus(value);\n (onFocus as React.FocusEventHandler<HTMLElement> | undefined)?.(e);\n },\n [value, onItemFocus, onFocus],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (value) onItemKeyDown(e, value);\n (onKeyDown as React.KeyboardEventHandler<HTMLElement> | undefined)?.(e);\n },\n [value, onItemKeyDown, onKeyDown],\n );\n\n const itemClasses = listItemVariants({\n divider,\n interactive: isSelectable,\n selected: isSelected,\n disabled: isDisabled,\n className,\n });\n\n const content = (\n <>\n {leading && (\n <span className=\"ds:shrink-0 ds:flex ds:items-center ds:justify-center\">\n {leading}\n </span>\n )}\n <div className=\"ds:flex-1 ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:min-w-0\">\n <span className=\"ds:text-[color:var(--foreground)] ds:text-[length:var(--font-size-sm)] ds:font-medium ds:leading-[var(--line-height-base)] ds:[overflow-wrap:anywhere]\">\n {title}\n </span>\n {description && (\n <span\n ref={descRef}\n className={[\n 'ds:text-[color:var(--muted-foreground)] ds:text-[length:var(--font-size-xs)] ds:leading-[var(--line-height-base)]',\n lineClamp != null\n ? 'ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:var(--list-item-clamp)]'\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {description}\n </span>\n )}\n </div>\n {trailing && (\n <span className=\"ds:shrink-0 ds:flex ds:items-center ds:justify-center\">\n {trailing}\n </span>\n )}\n </>\n );\n\n if (isSelectable) {\n return (\n <div\n ref={internalRef as React.Ref<HTMLDivElement>}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={isDisabled ? true : undefined}\n tabIndex={tabIndex}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n className={itemClasses}\n data-item-id={value}\n {...props}\n >\n {content}\n </div>\n );\n }\n\n return (\n <li\n ref={internalRef as React.Ref<HTMLLIElement>}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n className={itemClasses}\n data-item-id={value}\n {...props}\n >\n {/* Inner flex wrapper keeps <li> as display:list-item so ::marker renders */}\n <div className=\"ds:flex ds:items-center ds:gap-x-[var(--spacing-sm)]\">\n {content}\n </div>\n </li>\n );\n },\n);\nListItem.displayName = 'List.Item';\n\n/* ------------------------------------------------------------------ */\n/* Compound export */\n/* ------------------------------------------------------------------ */\n\nexport const List = Object.assign(ListRoot, {\n Root: ListRoot,\n Item: ListItem,\n});\n\nexport type { ListContextValue };\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — List. */\n/* */\n/* The agent surface is only meaningful for selectable lists (`selection` */\n/* prop set to `single` or `multiple`). Presentational lists still emit */\n/* the root + item DOM hooks so the registry can address them, but the */\n/* state and actions are no-ops when selection is `none`. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ListHandle } from './list';\n\nexport const listAgent: AgentAdapter<ListHandle> = {\n id: 'list',\n capabilities: ['select_single', 'select_multiple'],\n state: {\n selection: {\n type: 'string[]',\n descriptionKey: 'ui.agent.list.state.selection',\n description: 'Ids of currently-selected list items. Empty array when none selected or list is presentational.',\n read: (handle) => handle.getSelection(),\n },\n },\n actions: {\n set_selection: {\n safety: 'read',\n argsType: '{ ids: string[] }',\n descriptionKey: 'ui.agent.list.actions.setSelection',\n description: 'Replace the current selection with the given item ids. No-op on presentational lists.',\n invoke: (handle, args: { ids: string[] }) => {\n handle.setSelection(args.ids);\n },\n },\n clear_selection: {\n safety: 'read',\n descriptionKey: 'ui.agent.list.actions.clearSelection',\n description: 'Deselect all items.',\n invoke: (handle) => {\n handle.clearSelection();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'list',\n description: 'Marks the List root.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-item-id',\n description: 'Opaque item id; sourced from each ListItem `value` prop. Emitted only when `value` is set.',\n },\n },\n};\n"],"names":["ListContext","createContext","listVariants","cva","listItemVariants","collectItemInfo","children","items","Children","child","isValidElement","props","ListRoot","forwardRef","as","start","divider","density","selection","controlledValue","defaultValue","onValueChange","disabled","className","ariaLabel","ref","t","useTranslation","isSelectable","isMultiple","isControlled","internalValue","setInternalValue","useState","selectedValues","useMemo","v","allItemInfo","enabledItemValues","i","focusedValue","setFocusedValue","itemRefs","useRef","registerItemRef","useCallback","value","el","focusItem","_a","commit","next","handleItemSelect","itemValue","current","handleItemFocus","handleItemKeyDown","currentIndex","prev","first","last","ctxValue","classes","useImperativeHandle","ids","resolvedAriaLabel","jsx","ListItem","leading","title","description","trailing","lineClamp","itemDisabled","onClick","onFocus","onKeyDown","groupDisabled","onItemSelect","onItemFocus","onItemKeyDown","useContext","isDisabled","isSelected","isFocused","isFirstEnabled","tabIndex","descRef","useLayoutEffect","internalRef","handleClick","e","handleFocus","handleKeyDown","itemClasses","content","jsxs","Fragment","List","listAgent","handle","args"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-region-C41SO3cA.js","sources":["../../src/components/live-region/live-region.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useState,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst liveRegionVariants = cva('', {\n variants: {\n visuallyHidden: {\n true: 'ds:sr-only',\n false: '',\n },\n },\n defaultVariants: {\n visuallyHidden: true,\n },\n});\n\nexport type LiveRegionPoliteness = 'polite' | 'assertive' | 'off';\nexport type LiveRegionRelevant =\n | 'additions'\n | 'removals'\n | 'text'\n | 'all';\nexport type LiveRegionElement = 'div' | 'span';\n\nexport interface LiveRegionProps\n extends Omit<HTMLAttributes<HTMLElement>, 'role' | 'children'>,\n VariantProps<typeof liveRegionVariants> {\n /**\n * `aria-live` politeness. `off` removes the live region announcement\n * but keeps the DOM container.\n * @default 'polite'\n */\n politeness?: LiveRegionPoliteness;\n /**\n * Whether AT should announce the entire region on update.\n * @default true\n */\n atomic?: boolean;\n /**\n * Which mutation kinds AT should announce.\n */\n relevant?: LiveRegionRelevant;\n /**\n * Defer rendering of `children` by this many milliseconds. Useful when a\n * message updates within the same React commit as the region mounts —\n * many screen readers miss messages that appear synchronously with the\n * region itself. A small delay (50–150ms) makes the change observable.\n * @default 0\n */\n delay?: number;\n /**\n * Element to render. `div` is block-level (default), `span` for inline.\n * @default 'div'\n */\n as?: LiveRegionElement;\n /**\n * When true (the default), the region is rendered with `sr-only` so it\n * is announced but not visually shown. Set to `false` to render\n * visibly — useful for status messages that should appear on screen.\n * @default true\n */\n visuallyHidden?: boolean;\n children?: ReactNode;\n}\n\nexport const LiveRegion = forwardRef<HTMLElement, LiveRegionProps>(\n (\n {\n politeness = 'polite',\n atomic = true,\n relevant,\n delay = 0,\n as = 'div',\n visuallyHidden = true,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [deferredChildren, setDeferredChildren] = useState<ReactNode>(\n delay > 0 ? null : children,\n );\n\n useEffect(() => {\n if (delay <= 0) {\n setDeferredChildren(children);\n return;\n }\n const timer = window.setTimeout(() => {\n setDeferredChildren(children);\n }, delay);\n return () => {\n window.clearTimeout(timer);\n };\n }, [children, delay]);\n\n const role =\n politeness === 'assertive'\n ? 'alert'\n : politeness === 'polite'\n ? 'status'\n : undefined;\n\n const ariaLive = politeness === 'off' ? undefined : politeness;\n\n const sharedProps = {\n ref: ref as Ref<HTMLDivElement & HTMLSpanElement>,\n role,\n 'aria-live': ariaLive,\n 'aria-atomic': atomic ? true : undefined,\n 'aria-relevant': relevant,\n className: liveRegionVariants({ visuallyHidden, className }),\n 'data-component': 'live-region',\n ...props,\n };\n\n if (as === 'span') {\n return <span {...sharedProps}>{deferredChildren}</span>;\n }\n return <div {...sharedProps}>{deferredChildren}</div>;\n },\n);\n\nLiveRegion.displayName = 'LiveRegion';\n"],"names":["liveRegionVariants","cva","LiveRegion","forwardRef","politeness","atomic","relevant","delay","as","visuallyHidden","className","children","props","ref","deferredChildren","setDeferredChildren","useState","useEffect","timer","sharedProps","jsx"],"mappings":";;;AAUA,MAAMA,IAAqBC,EAAI,IAAI;AAAA,EACjC,UAAU;AAAA,IACR,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,iBAAiB;AAAA,IACf,gBAAgB;AAAA,EAAA;AAEpB,CAAC,GAmDYC,IAAaC;AAAA,EACxB,CACE;AAAA,IACE,YAAAC,IAAa;AAAA,IACb,QAAAC,IAAS;AAAA,IACT,UAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,IAAAC,IAAK;AAAA,IACL,gBAAAC,IAAiB;AAAA,IACjB,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,CAACC,GAAkBC,CAAmB,IAAIC;AAAA,MAC9CT,IAAQ,IAAI,OAAOI;AAAA,IAAA;AAGrB,IAAAM,EAAU,MAAM;AACd,UAAIV,KAAS,GAAG;AACd,QAAAQ,EAAoBJ,CAAQ;AAC5B;AAAA,MACF;AACA,YAAMO,IAAQ,OAAO,WAAW,MAAM;AACpC,QAAAH,EAAoBJ,CAAQ;AAAA,MAC9B,GAAGJ,CAAK;AACR,aAAO,MAAM;AACX,eAAO,aAAaW,CAAK;AAAA,MAC3B;AAAA,IACF,GAAG,CAACP,GAAUJ,CAAK,CAAC;AAWpB,UAAMY,IAAc;AAAA,MAClB,KAAAN;AAAA,MACA,MAVAT,MAAe,cACX,UACAA,MAAe,WACb,WACA;AAAA,MAON,aALeA,MAAe,QAAQ,SAAYA;AAAA,MAMlD,eAAeC,IAAS,KAAO;AAAA,MAC/B,iBAAiBC;AAAA,MACjB,WAAWN,EAAmB,EAAE,gBAAAS,GAAgB,WAAAC,GAAW;AAAA,MAC3D,kBAAkB;AAAA,MAClB,GAAGE;AAAA,IAAA;AAGL,WAAIJ,MAAO,SACF,gBAAAY,EAAC,QAAA,EAAM,GAAGD,GAAc,UAAAL,GAAiB,IAE3C,gBAAAM,EAAC,OAAA,EAAK,GAAGD,GAAc,UAAAL,GAAiB;AAAA,EACjD;AACF;AAEAZ,EAAW,cAAc;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-out-616hnn2-.js","sources":["../../node_modules/lucide-react/dist/esm/icons/log-out.js"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.js.map\n"],"names":["__iconNode","LogOut","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AAAA,EAC/C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAQ,CAAE;AAC1E,GACMC,IAASC,EAAiB,WAAWF,CAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logo-BpFoCL-s.js","sources":["../../src/brand/logo-asset/Alfadocs_Logo_Main.tsx","../../src/brand/logo-asset/Alfadocs_Logo_Neg.tsx","../../src/brand/logo-asset/Alfadocs_Logo_Mark.tsx","../../src/components/logo/logo.tsx"],"sourcesContent":["/**\n * Alfadocs_Logo_Main — canonical bicolor wordmark.\n *\n * Source: `reference/assets/logos/SVG/Alfadocs_Logo_Main.svg`\n * Bicolor: blue-500 wordmark + violet-500 mark.\n *\n * Colours reference token primitives directly so they stay fixed to brand\n * values regardless of the current surface theme — a bicolor wordmark is\n * brand-locked by definition. For an inverting / single-colour wordmark\n * use `Alfadocs_Logo_Neg` or `Alfadocs_Logo_Mark`.\n */\nimport { forwardRef, type SVGProps } from 'react';\n\nexport const AlfadocsLogoMain = forwardRef<\n SVGSVGElement,\n SVGProps<SVGSVGElement>\n>((props, ref) => (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 805 148\"\n {...props}\n >\n <g className=\"ds:fill-[color:var(--color-blue-500)]\">\n <path d=\"M460.58,51.29h-10.51c-3.57,0-6.52.99-8.85,2.97-2.32,1.98-3.48,4.71-3.48,8.18v.15h-1.62c-.62,0-1.21-.34-1.49-.89-.26-.51-.55-1.01-.86-1.49-.21-.34-.43-.68-.68-1.01,0-.04-.02-.07-.06-.11-.21-.28-.4-.55-.64-.83-.05-.1-.12-.18-.22-.28-.21-.26-.43-.53-.66-.78-.04-.06-.1-.12-.17-.18-.18-.21-.37-.42-.57-.61-.36-.37-.75-.73-1.16-1.09-.82-.74-1.68-1.46-2.63-2.15-1.08-.76-2.29-1.41-3.66-1.93-.32-.13-.65-.26-.98-.37-.4-.13-.82-.27-1.26-.39-.4-.11-.82-.22-1.23-.32-1.26-.31-2.63-.53-4.11-.67-.26-.02-.54-.05-.82-.07-.24-.02-.5-.05-.75-.06-1.15-.09-2.36-.12-3.62-.12-1.47,0-2.9.09-4.32.27-.54.07-1.08.15-1.6.24-3.73.65-7.25,1.96-10.58,3.88-.81.47-1.58.98-2.34,1.52-.31.21-.61.43-.91.66-.09.07-.17.13-.25.2-.98.76-1.91,1.58-2.78,2.47-.03.03-.06.07-.1.1-.02.02-.04.03-.06.05-.78.78-1.52,1.61-2.23,2.51-.35.44-.7.89-1.03,1.36-.89,1.25-1.72,2.57-2.49,3.99-3.07,5.65-4.61,12.48-4.61,20.5v2.37c0,8.02,1.54,14.85,4.61,20.5.77,1.42,1.6,2.74,2.49,3.99.33.46.67.92,1.03,1.36.71.89,1.44,1.72,2.23,2.51.02.02.04.04.06.06.04.04.07.07.1.11.86.88,1.79,1.7,2.76,2.46.09.07.18.14.27.21.3.22.6.44.9.65.76.54,1.53,1.05,2.34,1.52,3.33,1.92,6.85,3.23,10.58,3.88.53.09,1.06.17,1.6.24,1.42.17,2.86.27,4.32.27,1.26,0,2.47-.04,3.62-.12.24-.01.5-.04.75-.06.28-.01.55-.04.82-.07,1.48-.15,2.85-.37,4.11-.67.43-.1.83-.2,1.23-.32.43-.12.86-.26,1.26-.39.33-.12.66-.24.98-.37,1.37-.53,2.58-1.17,3.66-1.93.96-.68,1.82-1.41,2.63-2.15h0c.4-.36.79-.72,1.16-1.09.2-.21.39-.4.57-.61.06-.06.12-.12.17-.18.23-.26.45-.53.66-.78.09-.1.16-.18.22-.28.23-.28.43-.55.64-.83.01-.04.04-.07.06-.11.26-.33.48-.67.68-1.01.31-.49.6-.99.86-1.49.29-.55.87-.89,1.49-.89h1.62v.15c0,3.47,1.16,6.2,3.48,8.18,2.34,1.98,5.28,2.97,8.85,2.97h9.87c2.75,0,4.98-2.23,4.98-4.98v-5.49c0-2.75-2.23-4.98-4.98-4.98h-.96c-2.78,0-4.17-1.49-4.17-4.46v-33.87c0-2.97,1.39-4.46,4.17-4.46h1.59c2.4,0,4.35-1.95,4.35-4.35v-6.76c0-2.4-1.95-4.35-4.35-4.35ZM436.41,88.88c0,.89-.02,1.75-.09,2.59-.02.32-.05.62-.09.93-.06.61-.13,1.21-.23,1.8-.05.29-.11.59-.16.87-.1.53-.22,1.03-.35,1.53-.93,3.47-2.56,6.32-4.88,8.55-2.74,2.64-5.95,4.34-9.65,5.11-.54.11-1.08.2-1.64.27-1,.13-2.05.2-3.13.2-5.75,0-10.55-1.86-14.41-5.57-3.86-3.7-5.79-9.13-5.79-16.26v-1.49c0-7.13,1.93-12.56,5.79-16.26,3.86-3.72,8.67-5.57,14.41-5.57,1.08,0,2.13.06,3.13.2.56.07,1.1.16,1.64.27,3.69.77,6.91,2.47,9.65,5.11,2.32,2.23,3.95,5.07,4.88,8.55.13.5.26,1,.35,1.53.06.28.11.57.16.87.1.59.17,1.19.23,1.8.04.31.06.61.09.93.06.84.09,1.7.09,2.59v1.49Z\" />\n <path d=\"M245.66,25.95c-.77-2.92-3.41-4.96-6.44-4.96h-23.91c-3.02,0-5.67,2.04-6.44,4.96l-24.7,93.97c-.67,2.56,1.26,5.06,3.9,5.06h11.81c1.86,0,3.47-1.27,3.92-3.07l4.57-18.51c.19-.76.87-1.3,1.66-1.3h34.46c.79,0,1.47.54,1.66,1.3l4.64,18.82c.4,1.62,1.85,2.76,3.52,2.76h12.67c2.38,0,4.11-2.25,3.51-4.55l-24.84-94.49ZM239.04,83.98h-23.55c-1.11,0-1.93-1.05-1.66-2.13l11.78-47.24c.19-.76.87-1.3,1.66-1.3s1.47.54,1.66,1.3l11.78,47.24c.27,1.08-.55,2.13-1.66,2.13Z\" />\n <rect x=\"281.2\" y=\"20.98\" width=\"18.72\" height=\"104\" rx=\"4.8\" ry=\"4.8\" />\n <path d=\"M363.05,51.29h-13.29c-.95,0-1.71-.77-1.71-1.71v-8.69c0-2.97,1.39-4.46,4.16-4.46h8.67c2.27,0,4.11-1.84,4.11-4.11v-7.24c0-2.27-1.84-4.11-4.11-4.11h-15.21c-4.85,0-8.79,1.51-11.81,4.53-3.02,3.02-4.53,7.06-4.53,12.11v11.96c0,.95-.77,1.71-1.71,1.71h-12.81c-2.32,0-4.2,1.88-4.2,4.2v7.06c0,2.32,1.88,4.2,4.2,4.2h12.81c.95,0,1.71.77,1.71,1.71v51.98c0,2.51,2.03,4.54,4.54,4.54h9.63c2.51,0,4.54-2.03,4.54-4.54v-51.98c0-.95.77-1.71,1.71-1.71h13.29c2.38,0,4.31-1.93,4.31-4.31v-6.83c0-2.38-1.93-4.31-4.31-4.31Z\" />\n <path d=\"M549.94,20.98h-8.88c-2.72,0-4.92,2.2-4.92,4.92v32.14c0,.95-.77,1.71-1.71,1.71h0c-.6,0-1.13-.32-1.45-.82-.95-1.48-2.23-2.89-3.82-4.23-1.88-1.58-4.33-2.9-7.35-3.94-3.02-1.04-6.76-1.56-11.22-1.56-5.94,0-11.44,1.46-16.49,4.38-5.05,2.92-9.11,7.21-12.18,12.85-3.07,5.65-4.61,12.48-4.61,20.5v2.38c0,8.02,1.53,14.86,4.61,20.5,3.07,5.65,7.15,9.93,12.26,12.85,5.1,2.92,10.57,4.38,16.42,4.38,6.73,0,11.86-1.14,15.38-3.42,3.19-2.07,5.62-4.33,7.3-6.81.32-.47.84-.77,1.41-.77h.04c.95,0,1.71.77,1.71,1.71v2.61c0,2.53,2.05,4.59,4.59,4.59h9.25c2.53,0,4.59-2.05,4.59-4.59V25.91c0-2.72-2.2-4.92-4.92-4.92ZM536.44,88.88c0,7.13-1.93,12.55-5.79,16.27-3.86,3.71-8.67,5.57-14.41,5.57s-10.55-1.86-14.41-5.57c-3.86-3.71-5.79-9.14-5.79-16.27v-1.49c0-7.13,1.93-12.55,5.79-16.27,3.86-3.71,8.67-5.57,14.41-5.57s10.67,1.86,14.49,5.57c3.81,3.71,5.72,9.14,5.72,16.27v1.49Z\" />\n <path d=\"M626.91,53.67c-5.85-2.97-12.43-4.46-19.76-4.46s-13.92,1.49-19.76,4.46c-5.84,2.97-10.45,7.28-13.82,12.93-3.37,5.65-5.05,12.43-5.05,20.35v2.38c0,7.93,1.68,14.71,5.05,20.35,3.37,5.65,7.97,9.95,13.82,12.93,5.84,2.97,12.43,4.46,19.76,4.46s13.91-1.49,19.76-4.46c5.84-2.97,10.45-7.28,13.82-12.93,3.37-5.65,5.05-12.43,5.05-20.35v-2.38c0-7.92-1.69-14.71-5.05-20.35-3.37-5.65-7.97-9.95-13.82-12.93ZM627.06,88.88c0,6.93-1.88,12.26-5.65,15.97-3.77,3.71-8.52,5.57-14.26,5.57s-10.5-1.86-14.26-5.57c-3.77-3.71-5.65-9.04-5.65-15.97v-1.49c0-6.93,1.88-12.26,5.65-15.97,3.76-3.71,8.52-5.57,14.26-5.57s10.62,1.86,14.34,5.57c3.71,3.71,5.57,9.04,5.57,15.97v1.49Z\" />\n <path d=\"M725.81,97.59l-8.12-1.93c-2.45-.58-5,.74-5.84,3.12-1,2.85-2.5,5.27-4.49,7.26-2.92,2.92-7.21,4.38-12.85,4.38-3.77,0-7.16-.82-10.18-2.45-3.02-1.63-5.4-4.06-7.13-7.28-1.73-3.22-2.6-7.15-2.6-11.81v-1.49c0-4.65.87-8.59,2.6-11.81,1.73-3.22,4.11-5.65,7.13-7.28,3.02-1.63,6.41-2.45,10.18-2.45s6.91.69,9.43,2.08c2.53,1.39,4.48,3.27,5.87,5.65.72,1.23,1.3,2.54,1.76,3.93.74,2.28,3.1,3.62,5.45,3.12l8.8-1.88c2.77-.59,4.38-3.47,3.49-6.16-1.14-3.43-2.76-6.59-4.86-9.5-3.12-4.31-7.21-7.7-12.26-10.18-5.05-2.47-11.09-3.71-18.13-3.71s-13.59,1.49-19.39,4.46c-5.79,2.97-10.38,7.28-13.74,12.93-3.37,5.65-5.05,12.48-5.05,20.5v2.08c0,8.02,1.68,14.86,5.05,20.5,3.37,5.65,7.95,9.95,13.74,12.93,5.79,2.97,12.26,4.46,19.39,4.46s13.07-1.24,18.13-3.71c5.05-2.47,9.14-5.87,12.26-10.18,1.99-2.75,3.6-5.68,4.85-8.81,1.14-2.86-.49-6.06-3.48-6.77Z\" />\n <path d=\"M801.06,90.59c-2.63-3.02-6.19-5.35-10.7-6.98-4.51-1.63-9.53-2.95-15.08-3.94l-4.16-.74c-3.37-.59-6.04-1.46-8.02-2.6-1.98-1.14-2.97-2.9-2.97-5.27,0-2.18.94-3.89,2.82-5.13,1.88-1.24,4.61-1.86,8.17-1.86s6.56.79,8.99,2.38c1.53,1,2.74,2.44,3.62,4.31.92,1.95,3.31,3.06,5.38,2.43l8.61-2.65c2.62-.81,3.96-3.79,2.7-6.23-1.97-3.78-4.9-6.98-8.79-9.6-5.45-3.66-12.28-5.5-20.5-5.5-8.72,0-15.75,1.96-21.1,5.87-5.35,3.91-8.02,9.53-8.02,16.86,0,4.85,1.29,8.82,3.86,11.89,2.57,3.07,5.99,5.47,10.25,7.21,4.26,1.73,8.96,3.1,14.11,4.09l4.16.74c4.36.79,7.53,1.81,9.51,3.05,1.98,1.24,2.97,3,2.97,5.27s-1.04,4.19-3.12,5.72c-2.08,1.54-5.3,2.3-9.66,2.3-2.87,0-5.52-.42-7.95-1.26-2.43-.84-4.46-2.25-6.09-4.23-.98-1.19-1.8-2.65-2.44-4.38-.76-2.04-3.17-3.25-5.28-2.7l-8.74,2.26c-2.56.66-3.96,3.26-3.12,5.77,1.82,5.5,5.16,9.88,10,13.17,6.14,4.16,14.01,6.24,23.62,6.24s16.91-2.1,22.51-6.31c5.59-4.21,8.39-10.18,8.39-17.9,0-5.15-1.31-9.23-3.94-12.26Z\" />\n </g>\n <g className=\"ds:fill-[color:var(--color-violet-500)]\">\n <rect x=\"53.04\" y=\"2.54\" width=\"33.99\" height=\"49.34\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-4.66 19.05) rotate(-15)\" />\n <rect x=\"96.12\" y=\"53.04\" width=\"49.34\" height=\"33.99\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-14.01 33.65) rotate(-15)\" />\n <path d=\"M47.82,59.56c-.65-2.43-3.15-3.87-5.58-3.22L3.38,66.75c-2.43.65-3.87,3.15-3.22,5.58l6.44,24.03c.65,2.43,3.15,3.87,5.58,3.22l38.86-10.41c2.43-.65,3.87-3.15,3.22-5.58l-6.44-24.03Z\" />\n <rect x=\"60.97\" y=\"96.12\" width=\"33.99\" height=\"49.34\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-28.61 24.29) rotate(-15)\" />\n </g>\n </svg>\n));\nAlfadocsLogoMain.displayName = 'AlfadocsLogoMain';\n","/**\n * Alfadocs_Logo_Neg — single-colour (monochrome) wordmark.\n *\n * Source: `reference/assets/logos/SVG/Alfadocs_Logo_Neg.svg`\n * Ink is rendered with `currentColor` so the consumer (or the Logo wrapper)\n * controls the fill via `color` / Tailwind `text-[color:…]`. Use this\n * variant when you want the logo to inherit theme foreground — dark surfaces,\n * monochrome print, or the generic accessible theme.\n */\nimport { forwardRef, type SVGProps } from 'react';\n\nexport const AlfadocsLogoNeg = forwardRef<\n SVGSVGElement,\n SVGProps<SVGSVGElement>\n>((props, ref) => (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 805 148\"\n fill=\"currentColor\"\n {...props}\n >\n <g>\n <path d=\"M460.58,51.29h-10.51c-3.57,0-6.52.99-8.85,2.97-2.32,1.98-3.48,4.71-3.48,8.18v.15h-1.62c-.62,0-1.21-.34-1.49-.89-.26-.51-.55-1.01-.86-1.49-.21-.34-.43-.68-.68-1.01,0-.04-.02-.07-.06-.11-.21-.28-.4-.55-.64-.83-.05-.1-.12-.18-.22-.28-.21-.26-.43-.53-.66-.78-.04-.06-.1-.12-.17-.18-.18-.21-.37-.42-.57-.61-.36-.37-.75-.73-1.16-1.09-.82-.74-1.68-1.46-2.63-2.15-1.08-.76-2.29-1.41-3.66-1.93-.32-.13-.65-.26-.98-.37-.4-.13-.82-.27-1.26-.39-.4-.11-.82-.22-1.23-.32-1.26-.31-2.63-.53-4.11-.67-.26-.02-.54-.05-.82-.07-.24-.02-.5-.05-.75-.06-1.15-.09-2.36-.12-3.62-.12-1.47,0-2.9.09-4.32.27-.54.07-1.08.15-1.6.24-3.73.65-7.25,1.96-10.58,3.88-.81.47-1.58.98-2.34,1.52-.31.21-.61.43-.91.66-.09.07-.17.13-.25.2-.98.76-1.91,1.58-2.78,2.47-.03.03-.06.07-.1.1-.02.02-.04.03-.06.05-.78.78-1.52,1.61-2.23,2.51-.35.44-.7.89-1.03,1.36-.89,1.25-1.72,2.57-2.49,3.99-3.07,5.65-4.61,12.48-4.61,20.5v2.37c0,8.02,1.54,14.85,4.61,20.5.77,1.42,1.6,2.74,2.49,3.99.33.46.67.92,1.03,1.36.71.89,1.44,1.72,2.23,2.51.02.02.04.04.06.06.04.04.07.07.1.11.86.88,1.79,1.7,2.76,2.46.09.07.18.14.27.21.3.22.6.44.9.65.76.54,1.53,1.05,2.34,1.52,3.33,1.92,6.85,3.23,10.58,3.88.53.09,1.06.17,1.6.24,1.42.17,2.86.27,4.32.27,1.26,0,2.47-.04,3.62-.12.24-.01.5-.04.75-.06.28-.01.55-.04.82-.07,1.48-.15,2.85-.37,4.11-.67.43-.1.83-.2,1.23-.32.43-.12.86-.26,1.26-.39.33-.12.66-.24.98-.37,1.37-.53,2.58-1.17,3.66-1.93.96-.68,1.82-1.41,2.63-2.15h0c.4-.36.79-.72,1.16-1.09.2-.21.39-.4.57-.61.06-.06.12-.12.17-.18.23-.26.45-.53.66-.78.09-.1.16-.18.22-.28.23-.28.43-.55.64-.83.01-.04.04-.07.06-.11.26-.33.48-.67.68-1.01.31-.49.6-.99.86-1.49.29-.55.87-.89,1.49-.89h1.62v.15c0,3.47,1.16,6.2,3.48,8.18,2.34,1.98,5.28,2.97,8.85,2.97h9.87c2.75,0,4.98-2.23,4.98-4.98v-5.49c0-2.75-2.23-4.98-4.98-4.98h-.96c-2.78,0-4.17-1.49-4.17-4.46v-33.87c0-2.97,1.39-4.46,4.17-4.46h1.59c2.4,0,4.35-1.95,4.35-4.35v-6.76c0-2.4-1.95-4.35-4.35-4.35ZM436.41,88.88c0,.89-.02,1.75-.09,2.59-.02.32-.05.62-.09.93-.06.61-.13,1.21-.23,1.8-.05.29-.11.59-.16.87-.1.53-.22,1.03-.35,1.53-.93,3.47-2.56,6.32-4.88,8.55-2.74,2.64-5.95,4.34-9.65,5.11-.54.11-1.08.2-1.64.27-1,.13-2.05.2-3.13.2-5.75,0-10.55-1.86-14.41-5.57-3.86-3.7-5.79-9.13-5.79-16.26v-1.49c0-7.13,1.93-12.56,5.79-16.26,3.86-3.72,8.67-5.57,14.41-5.57,1.08,0,2.13.06,3.13.2.56.07,1.1.16,1.64.27,3.69.77,6.91,2.47,9.65,5.11,2.32,2.23,3.95,5.07,4.88,8.55.13.5.26,1,.35,1.53.06.28.11.57.16.87.1.59.17,1.19.23,1.8.04.31.06.61.09.93.06.84.09,1.7.09,2.59v1.49Z\" />\n <path d=\"M245.66,25.95c-.77-2.92-3.41-4.96-6.44-4.96h-23.91c-3.02,0-5.67,2.04-6.44,4.96l-24.7,93.97c-.67,2.56,1.26,5.06,3.9,5.06h11.81c1.86,0,3.47-1.27,3.92-3.07l4.57-18.51c.19-.76.87-1.3,1.66-1.3h34.46c.79,0,1.47.54,1.66,1.3l4.64,18.82c.4,1.62,1.85,2.76,3.52,2.76h12.67c2.38,0,4.11-2.25,3.51-4.55l-24.84-94.49ZM239.04,83.98h-23.55c-1.11,0-1.93-1.05-1.66-2.13l11.78-47.24c.19-.76.87-1.3,1.66-1.3s1.47.54,1.66,1.3l11.78,47.24c.27,1.08-.55,2.13-1.66,2.13Z\" />\n <rect x=\"281.2\" y=\"20.98\" width=\"18.72\" height=\"104\" rx=\"4.8\" ry=\"4.8\" />\n <path d=\"M363.05,51.29h-13.29c-.95,0-1.71-.77-1.71-1.71v-8.69c0-2.97,1.39-4.46,4.16-4.46h8.67c2.27,0,4.11-1.84,4.11-4.11v-7.24c0-2.27-1.84-4.11-4.11-4.11h-15.21c-4.85,0-8.79,1.51-11.81,4.53-3.02,3.02-4.53,7.06-4.53,12.11v11.96c0,.95-.77,1.71-1.71,1.71h-12.81c-2.32,0-4.2,1.88-4.2,4.2v7.06c0,2.32,1.88,4.2,4.2,4.2h12.81c.95,0,1.71.77,1.71,1.71v51.98c0,2.51,2.03,4.54,4.54,4.54h9.63c2.51,0,4.54-2.03,4.54-4.54v-51.98c0-.95.77-1.71,1.71-1.71h13.29c2.38,0,4.31-1.93,4.31-4.31v-6.83c0-2.38-1.93-4.31-4.31-4.31Z\" />\n <path d=\"M549.94,20.98h-8.88c-2.72,0-4.92,2.2-4.92,4.92v32.14c0,.95-.77,1.71-1.71,1.71h0c-.6,0-1.13-.32-1.45-.82-.95-1.48-2.23-2.89-3.82-4.23-1.88-1.58-4.33-2.9-7.35-3.94-3.02-1.04-6.76-1.56-11.22-1.56-5.94,0-11.44,1.46-16.49,4.38-5.05,2.92-9.11,7.21-12.18,12.85-3.07,5.65-4.61,12.48-4.61,20.5v2.38c0,8.02,1.53,14.86,4.61,20.5,3.07,5.65,7.15,9.93,12.26,12.85,5.1,2.92,10.57,4.38,16.42,4.38,6.73,0,11.86-1.14,15.38-3.42,3.19-2.07,5.62-4.33,7.3-6.81.32-.47.84-.77,1.41-.77h.04c.95,0,1.71.77,1.71,1.71v2.61c0,2.53,2.05,4.59,4.59,4.59h9.25c2.53,0,4.59-2.05,4.59-4.59V25.91c0-2.72-2.2-4.92-4.92-4.92ZM536.44,88.88c0,7.13-1.93,12.55-5.79,16.27-3.86,3.71-8.67,5.57-14.41,5.57s-10.55-1.86-14.41-5.57c-3.86-3.71-5.79-9.14-5.79-16.27v-1.49c0-7.13,1.93-12.55,5.79-16.27,3.86-3.71,8.67-5.57,14.41-5.57s10.67,1.86,14.49,5.57c3.81,3.71,5.72,9.14,5.72,16.27v1.49Z\" />\n <path d=\"M626.91,53.67c-5.85-2.97-12.43-4.46-19.76-4.46s-13.92,1.49-19.76,4.46c-5.84,2.97-10.45,7.28-13.82,12.93-3.37,5.65-5.05,12.43-5.05,20.35v2.38c0,7.93,1.68,14.71,5.05,20.35,3.37,5.65,7.97,9.95,13.82,12.93,5.84,2.97,12.43,4.46,19.76,4.46s13.91-1.49,19.76-4.46c5.84-2.97,10.45-7.28,13.82-12.93,3.37-5.65,5.05-12.43,5.05-20.35v-2.38c0-7.92-1.69-14.71-5.05-20.35-3.37-5.65-7.97-9.95-13.82-12.93ZM627.06,88.88c0,6.93-1.88,12.26-5.65,15.97-3.77,3.71-8.52,5.57-14.26,5.57s-10.5-1.86-14.26-5.57c-3.77-3.71-5.65-9.04-5.65-15.97v-1.49c0-6.93,1.88-12.26,5.65-15.97,3.76-3.71,8.52-5.57,14.26-5.57s10.62,1.86,14.34,5.57c3.71,3.71,5.57,9.04,5.57,15.97v1.49Z\" />\n <path d=\"M725.81,97.59l-8.12-1.93c-2.45-.58-5,.74-5.84,3.12-1,2.85-2.5,5.27-4.49,7.26-2.92,2.92-7.21,4.38-12.85,4.38-3.77,0-7.16-.82-10.18-2.45-3.02-1.63-5.4-4.06-7.13-7.28-1.73-3.22-2.6-7.15-2.6-11.81v-1.49c0-4.65.87-8.59,2.6-11.81,1.73-3.22,4.11-5.65,7.13-7.28,3.02-1.63,6.41-2.45,10.18-2.45s6.91.69,9.43,2.08c2.53,1.39,4.48,3.27,5.87,5.65.72,1.23,1.3,2.54,1.76,3.93.74,2.28,3.1,3.62,5.45,3.12l8.8-1.88c2.77-.59,4.38-3.47,3.49-6.16-1.14-3.43-2.76-6.59-4.86-9.5-3.12-4.31-7.21-7.7-12.26-10.18-5.05-2.47-11.09-3.71-18.13-3.71s-13.59,1.49-19.39,4.46c-5.79,2.97-10.38,7.28-13.74,12.93-3.37,5.65-5.05,12.48-5.05,20.5v2.08c0,8.02,1.68,14.86,5.05,20.5,3.37,5.65,7.95,9.95,13.74,12.93,5.79,2.97,12.26,4.46,19.39,4.46s13.07-1.24,18.13-3.71c5.05-2.47,9.14-5.87,12.26-10.18,1.99-2.75,3.6-5.68,4.85-8.81,1.14-2.86-.49-6.06-3.48-6.77Z\" />\n <path d=\"M801.06,90.59c-2.63-3.02-6.19-5.35-10.7-6.98-4.51-1.63-9.53-2.95-15.08-3.94l-4.16-.74c-3.37-.59-6.04-1.46-8.02-2.6-1.98-1.14-2.97-2.9-2.97-5.27,0-2.18.94-3.89,2.82-5.13,1.88-1.24,4.61-1.86,8.17-1.86s6.56.79,8.99,2.38c1.53,1,2.74,2.44,3.62,4.31.92,1.95,3.31,3.06,5.38,2.43l8.61-2.65c2.62-.81,3.96-3.79,2.7-6.23-1.97-3.78-4.9-6.98-8.79-9.6-5.45-3.66-12.28-5.5-20.5-5.5-8.72,0-15.75,1.96-21.1,5.87-5.35,3.91-8.02,9.53-8.02,16.86,0,4.85,1.29,8.82,3.86,11.89,2.57,3.07,5.99,5.47,10.25,7.21,4.26,1.73,8.96,3.1,14.11,4.09l4.16.74c4.36.79,7.53,1.81,9.51,3.05,1.98,1.24,2.97,3,2.97,5.27s-1.04,4.19-3.12,5.72c-2.08,1.54-5.3,2.3-9.66,2.3-2.87,0-5.52-.42-7.95-1.26-2.43-.84-4.46-2.25-6.09-4.23-.98-1.19-1.8-2.65-2.44-4.38-.76-2.04-3.17-3.25-5.28-2.7l-8.74,2.26c-2.56.66-3.96,3.26-3.12,5.77,1.82,5.5,5.16,9.88,10,13.17,6.14,4.16,14.01,6.24,23.62,6.24s16.91-2.1,22.51-6.31c5.59-4.21,8.39-10.18,8.39-17.9,0-5.15-1.31-9.23-3.94-12.26Z\" />\n </g>\n <g>\n <rect x=\"53.04\" y=\"2.54\" width=\"33.99\" height=\"49.34\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-4.66 19.05) rotate(-15)\" />\n <rect x=\"96.12\" y=\"53.04\" width=\"49.34\" height=\"33.99\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-14.01 33.65) rotate(-15)\" />\n <path d=\"M47.82,59.56c-.65-2.43-3.15-3.87-5.58-3.22L3.38,66.75c-2.43.65-3.87,3.15-3.22,5.58l6.44,24.03c.65,2.43,3.15,3.87,5.58,3.22l38.86-10.41c2.43-.65,3.87-3.15,3.22-5.58l-6.44-24.03Z\" />\n <rect x=\"60.97\" y=\"96.12\" width=\"33.99\" height=\"49.34\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-28.61 24.29) rotate(-15)\" />\n </g>\n </svg>\n));\nAlfadocsLogoNeg.displayName = 'AlfadocsLogoNeg';\n","/**\n * Alfadocs_Logo_Mark — the square \"A\" glyph alone (no wordmark).\n *\n * Extracted from `reference/assets/logos/SVG/Alfadocs_Logo_Main.svg` —\n * the 4 rotated rect/path shapes that compose the mark. viewBox is\n * tightened from 805×148 to 148×148 so the mark fills the box.\n *\n * Renders with `currentColor`; the Logo wrapper defaults the colour to\n * `--primary` (or to a consumer-provided tint).\n */\nimport { forwardRef, type SVGProps } from 'react';\n\nexport const AlfadocsLogoMark = forwardRef<\n SVGSVGElement,\n SVGProps<SVGSVGElement>\n>((props, ref) => (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 148 148\"\n fill=\"currentColor\"\n {...props}\n >\n <rect x=\"53.04\" y=\"2.54\" width=\"33.99\" height=\"49.34\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-4.66 19.05) rotate(-15)\" />\n <rect x=\"96.12\" y=\"53.04\" width=\"49.34\" height=\"33.99\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-14.01 33.65) rotate(-15)\" />\n <path d=\"M47.82,59.56c-.65-2.43-3.15-3.87-5.58-3.22L3.38,66.75c-2.43.65-3.87,3.15-3.22,5.58l6.44,24.03c.65,2.43,3.15,3.87,5.58,3.22l38.86-10.41c2.43-.65,3.87-3.15,3.22-5.58l-6.44-24.03Z\" />\n <rect x=\"60.97\" y=\"96.12\" width=\"33.99\" height=\"49.34\" rx=\"4.56\" ry=\"4.56\" transform=\"translate(-28.61 24.29) rotate(-15)\" />\n </svg>\n));\nAlfadocsLogoMark.displayName = 'AlfadocsLogoMark';\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport {\n AlfadocsLogoMain,\n AlfadocsLogoNeg,\n AlfadocsLogoMark,\n} from '../../brand/logo-asset';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\n// NOTE: no `inline-block` in the base — the outer wrapper is `inline-flex`,\n// so the SVGs sit as flex items and don't need an explicit display class.\n// Adding `inline-block` here would out-specificity the `hidden` class used\n// to theme-swap the wordmark, producing two visible SVGs in light mode.\nconst logoSize = cva(\n [\n 'ds:align-middle ds:shrink-0',\n // `leading-none` zeros the implicit line-height on the SVG so the\n // artwork sits at the geometric centre of an items-center flex row.\n 'ds:leading-none',\n // Forced-colors: the mark/wordmark collapses to CanvasText so it\n // remains visible under Windows High Contrast Mode.\n 'ds:forced-colors:text-[CanvasText]',\n ],\n {\n variants: {\n size: {\n sm: 'ds:h-[var(--logo-size-sm)] ds:w-auto',\n md: 'ds:h-[var(--logo-size-md)] ds:w-auto',\n lg: 'ds:h-[var(--logo-size-lg)] ds:w-auto',\n xl: 'ds:h-[var(--logo-size-xl)] ds:w-auto',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\n// Wrapper (outer span) classes. Per-variant colour context so inner SVGs\n// that render `currentColor` pick up the intended ink automatically.\n// `tone=\"inherit\"` overrides the variant default with `currentColor` so\n// the logo picks up the colour of its surrounding text — useful when\n// dropping the mark inside a coloured surface (e.g. a primary-intent\n// button) where the variant default would clash with the background.\nconst logoWrapper = cva('ds:inline-flex ds:items-center', {\n variants: {\n variant: {\n mark: 'ds:text-[color:var(--primary)]',\n wordmark: '',\n monochrome: 'ds:text-[color:var(--foreground)]',\n },\n tone: {\n auto: '',\n inherit: 'ds:!text-current',\n },\n },\n defaultVariants: { variant: 'wordmark', tone: 'auto' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\ntype LogoVariant = 'mark' | 'wordmark' | 'monochrome';\n\ntype LogoSizeProps = VariantProps<typeof logoSize>;\n\ntype LogoBase = {\n /**\n * Which glyph to render.\n * - `wordmark` (default): bicolor Main logo — blue-500 wordmark + violet-500 mark on light.\n * - `mark`: the \"A\" glyph alone. Inherits `currentColor` (defaults to `--primary`).\n * - `monochrome`: the full wordmark in a single `currentColor` ink\n * (defaults to `--foreground`).\n */\n variant?: LogoVariant;\n /**\n * Colour resolution. `auto` (default) uses the variant's intended\n * ink (`--primary` for `mark`, `--foreground` for `monochrome`).\n * `inherit` makes the wrapper use `currentColor` so the logo picks\n * up the surrounding text colour — use when dropping the mark on\n * top of a coloured surface where the default ink would clash.\n */\n tone?: 'auto' | 'inherit';\n className?: string;\n} & LogoSizeProps;\n\ntype LogoA11y =\n | {\n /** Non-decorative usage — accessible name read by assistive tech. */\n 'aria-label': string;\n decorative?: never;\n }\n | {\n 'aria-label'?: never;\n /**\n * Decorative usage — the logo is hidden from assistive tech. Use when\n * the logo sits next to a text wordmark that already announces the\n * brand, or when it is ornamental only.\n */\n decorative: true;\n };\n\nexport type LogoProps = LogoBase &\n LogoA11y &\n Omit<\n ComponentPropsWithoutRef<'span'>,\n 'role' | 'aria-label' | 'aria-hidden' | 'className'\n >;\n\n/* ------------------------------------------------------------------ */\n/* Logo */\n/* ------------------------------------------------------------------ */\n\nexport const Logo = forwardRef<HTMLSpanElement, LogoProps>(\n (\n {\n variant = 'wordmark',\n tone = 'auto',\n size,\n className,\n decorative,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n ) => {\n if (import.meta.env.DEV) {\n if (decorative && ariaLabel) {\n // eslint-disable-next-line no-console\n console.warn(\n '[Logo] Both `decorative` and `aria-label` were provided. Decorative logos must not expose an accessible name — the TypeScript type already forbids this combination.',\n );\n }\n if (!decorative && !ariaLabel) {\n // eslint-disable-next-line no-console\n console.warn(\n '[Logo] A non-decorative Logo needs an `aria-label`. Pass `decorative` to render it as presentational, or supply an accessible name.',\n );\n }\n }\n\n const a11y = decorative\n ? ({ role: 'presentation', 'aria-hidden': true } as const)\n : ({ role: 'img', 'aria-label': ariaLabel } as const);\n\n const svgClasses = logoSize({ size, className });\n const wrapperClasses = logoWrapper({ variant, tone });\n\n if (variant === 'mark') {\n return (\n <span ref={ref} {...a11y} {...props} className={wrapperClasses} data-component=\"logo\">\n <AlfadocsLogoMark aria-hidden className={svgClasses} />\n </span>\n );\n }\n\n if (variant === 'monochrome') {\n return (\n <span ref={ref} {...a11y} {...props} className={wrapperClasses} data-component=\"logo\">\n <AlfadocsLogoNeg aria-hidden className={svgClasses} />\n </span>\n );\n }\n\n // wordmark — bicolor in light, auto-swap to monochrome negative on\n // `.theme-dark` via cascaded descendant-state variants. Both SVGs live\n // in the DOM; CSS handles visibility so the swap is instant and does\n // not depend on React theme detection.\n return (\n <span ref={ref} {...a11y} {...props} className={wrapperClasses} data-component=\"logo\">\n <AlfadocsLogoMain\n aria-hidden\n className={`${svgClasses} ds:[.theme-dark_&]:hidden`}\n />\n <AlfadocsLogoNeg\n aria-hidden\n className={`${svgClasses} ds:hidden ds:[.theme-dark_&]:inline-block ds:text-[color:var(--foreground)]`}\n />\n </span>\n );\n },\n);\nLogo.displayName = 'Logo';\n"],"names":["AlfadocsLogoMain","forwardRef","props","ref","jsxs","jsx","AlfadocsLogoNeg","AlfadocsLogoMark","logoSize","cva","logoWrapper","Logo","variant","tone","size","className","decorative","ariaLabel","a11y","svgClasses","wrapperClasses"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail-C8irm52s.js","sources":["../../node_modules/lucide-react/dist/esm/icons/mail.js"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\", key: \"132q7q\" }],\n [\"rect\", { x: \"2\", y: \"4\", width: \"20\", height: \"16\", rx: \"2\", key: \"izxlao\" }]\n];\nconst Mail = createLucideIcon(\"mail\", __iconNode);\n\nexport { __iconNode, Mail as default };\n//# sourceMappingURL=mail.js.map\n"],"names":["__iconNode","Mail","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAQ,CAAE;AAAA,EACxE,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,MAAM,QAAQ,MAAM,IAAI,KAAK,KAAK,SAAQ,CAAE;AAChF,GACMC,IAAOC,EAAiB,QAAQF,CAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"matrix-rain-BEkvux64.js","sources":["../../src/components/matrix-rain/matrix-rain.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* MatrixRain — decorative canvas overlay. */\n/* */\n/* Falling-glyph \"digital rain\" with a CRT terminal vibe. Designed for */\n/* easter-egg / dev-flavoured surfaces: place inside a relatively- */\n/* positioned container with an `inset-0` className. */\n/* */\n/* Behaviour: */\n/* - Honours `prefers-reduced-motion` (renders nothing, animation off). */\n/* - Pauses while the tab is hidden (visibility API). */\n/* - Pauses when scrolled off-screen (IntersectionObserver). */\n/* - DPR-aware so glyphs stay sharp on HiDPI. */\n/* - Resizes with the container (ResizeObserver). */\n/* - \"Density-by-use\" trail: the per-frame decay alpha is small, so */\n/* columns that fire often accumulate a denser background residue */\n/* than rarely-firing ones — well-trodden paths stay luminous. */\n/* */\n/* The canvas is purely decorative — `aria-hidden=\"true\"`, no focus, no */\n/* visible text. Consumers must own the parent's positioning + stacking. */\n/* -------------------------------------------------------------------- */\n\nimport { forwardRef, useEffect, useMemo, useRef } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\n/* ------------------------------------------------------------------ */\n/* Glyph presets */\n/* ------------------------------------------------------------------ */\n\n/**\n * Half-width katakana + Latin digits + a few symbols. The canonical\n * Matrix used reverse-mirrored half-width katakana from a custom font;\n * plain half-width katakana is the closest open approximation.\n */\nconst KATAKANA_GLYPHS =\n 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワ' +\n '0123456789:・.\"=*+-<>¦|';\n\nconst HEX_GLYPHS = '0123456789ABCDEF{}[]<>/\\\\;:=$#@!*+-';\nconst BINARY_GLYPHS = '01';\nconst SYMBOL_GLYPHS = '!@#$%^&*()_+-=[]{}|;:,.<>?/';\n\nconst GLYPH_PRESETS = {\n katakana: KATAKANA_GLYPHS,\n hex: HEX_GLYPHS,\n binary: BINARY_GLYPHS,\n symbols: SYMBOL_GLYPHS,\n} as const;\n\ntype GlyphPreset = keyof typeof GLYPH_PRESETS;\n\n/* ------------------------------------------------------------------ */\n/* CVA variants */\n/* ------------------------------------------------------------------ */\n\nconst wrapperVariants = cva(\n // Wrapper holds the canvas plus optional overlay pseudo-elements.\n // pointer-events-none so the overlay never blocks underlying UI.\n 'ds:pointer-events-none ds:relative ds:overflow-hidden',\n {\n variants: {\n // Built-in surface so the rain has somewhere to read against\n // without the consumer wrapping it themselves.\n // `transparent` (default) lets the parent provide the background.\n // `solid` paints a near-black surface using the brand `blue-900`\n // step from the palette — the rain's brightest glyphs read clean\n // against it in either light or dark theme.\n background: {\n transparent: '',\n solid: 'ds:bg-[var(--color-blue-900)]',\n },\n vibe: {\n // No overlay, no canvas filter — just the rain.\n clean: '',\n // Fallout-CRT stack: vignette + dense scanlines + bloom +\n // per-glyph phosphor glow (canvas-side shadowBlur, applied in\n // the draw loop).\n terminal: [\n \"ds:before:pointer-events-none ds:before:absolute ds:before:inset-0 ds:before:z-[2] ds:before:content-['']\",\n 'ds:before:bg-[radial-gradient(closest-side,transparent_55%,rgb(0_0_0/0.55)_100%)]',\n \"ds:after:pointer-events-none ds:after:absolute ds:after:inset-0 ds:after:z-[1] ds:after:content-['']\",\n 'ds:after:bg-[repeating-linear-gradient(to_bottom,transparent_0,transparent_2px,rgb(0_0_0/0.32)_2px,rgb(0_0_0/0.32)_3px)]',\n 'ds:after:mix-blend-multiply',\n 'ds:[&>canvas]:[filter:blur(0.55px)_brightness(1.25)_contrast(1.1)_saturate(1.3)]',\n ].join(' '),\n // Sci-fi HUD: light scanlines, soft bloom, slow opacity pulse,\n // per-glyph glow. No vignette.\n hologram: [\n \"ds:after:pointer-events-none ds:after:absolute ds:after:inset-0 ds:after:z-[1] ds:after:content-['']\",\n 'ds:after:bg-[repeating-linear-gradient(to_bottom,transparent_0,transparent_3px,rgb(0_0_0/0.18)_3px,rgb(0_0_0/0.18)_4px)]',\n 'ds:after:mix-blend-multiply',\n 'ds:[&>canvas]:[filter:blur(0.4px)_brightness(1.15)_contrast(1.05)]',\n 'ds:[&>canvas]:[animation:matrix-rain-hologram-pulse_3s_ease-in-out_infinite]',\n ].join(' '),\n // Synthwave neon: heavy bloom, no scanlines, indigo horizon\n // glow at the bottom. Glyph colour is computed per-column in\n // the draw loop (accent → info gradient).\n synthwave: [\n \"ds:after:pointer-events-none ds:after:absolute ds:after:inset-x-0 ds:after:bottom-0 ds:after:h-[30%] ds:after:z-[1] ds:after:content-['']\",\n 'ds:after:bg-[linear-gradient(to_top,var(--color-indigo-800),transparent)]',\n 'ds:after:opacity-50',\n 'ds:[&>canvas]:[filter:blur(0.7px)_brightness(1.3)_contrast(1.15)_saturate(1.5)]',\n ].join(' '),\n // Vintage scope monitor: dense thin scanlines, sharp edges\n // (no canvas filter), animated horizontal sweep beam.\n oscilloscope: [\n // Scanlines (denser, alpha-heavier than terminal)\n \"ds:after:pointer-events-none ds:after:absolute ds:after:inset-0 ds:after:z-[1] ds:after:content-['']\",\n 'ds:after:bg-[repeating-linear-gradient(to_bottom,transparent_0,transparent_1px,rgb(0_0_0/0.4)_1px,rgb(0_0_0/0.4)_2px)]',\n 'ds:after:mix-blend-multiply',\n // Sweep beam — thin highlight bar scrolling top → bottom\n \"ds:before:pointer-events-none ds:before:absolute ds:before:inset-x-0 ds:before:top-0 ds:before:z-[2] ds:before:h-[4px] ds:before:content-['']\",\n 'ds:before:bg-[linear-gradient(to_bottom,transparent,var(--foreground),transparent)]',\n 'ds:before:opacity-50',\n 'ds:before:[animation:matrix-rain-osc-sweep_4s_linear_infinite]',\n 'ds:before:mix-blend-screen',\n ].join(' '),\n // Production-friendly: low opacity, no overlay. Pairs with\n // `decay=\"slow\"` (the default) for a faint background-noise\n // feel that doesn't dominate foreground content.\n ghost: 'ds:[&>canvas]:opacity-30',\n },\n // Radial mask that fades the canvas to transparent in the middle\n // so foreground content stays readable. `closest-side` adapts to\n // non-square containers. The `--mr` custom property comes from\n // the `maskRadius` variant below.\n mask: {\n none: '',\n center: [\n 'ds:[&>canvas]:[mask-image:radial-gradient(closest-side,transparent_0%,transparent_var(--mr,30%),black_calc(var(--mr,30%)+45%))]',\n 'ds:[&>canvas]:[-webkit-mask-image:radial-gradient(closest-side,transparent_0%,transparent_var(--mr,30%),black_calc(var(--mr,30%)+45%))]',\n ].join(' '),\n },\n // Mask radius — t-shirt sizes drive the inner clear-zone radius.\n // Only applied when mask=\"center\". md (30%) is the default.\n maskRadius: {\n xs: 'ds:[--mr:15%]',\n sm: 'ds:[--mr:22%]',\n md: 'ds:[--mr:30%]',\n lg: 'ds:[--mr:42%]',\n xl: 'ds:[--mr:55%]',\n },\n },\n defaultVariants: {\n background: 'transparent',\n vibe: 'clean',\n mask: 'none',\n maskRadius: 'md',\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Tone → semantic token resolution */\n/* ------------------------------------------------------------------ */\n\ntype Tone = 'primary' | 'accent' | 'success' | 'error' | 'info';\ntype Density = 'low' | 'medium' | 'high';\ntype Pace = 'gentle' | 'normal' | 'fast';\ntype Decay = 'none' | 'slow' | 'normal' | 'fast';\n\nconst TONE_VAR: Record<Tone, string> = {\n primary: '--primary',\n accent: '--accent',\n success: '--success',\n error: '--error',\n info: '--info',\n};\n\nconst DENSITY_FONT_PX: Record<Density, number> = {\n low: 18,\n medium: 14,\n high: 11,\n};\n\nconst PACE_FRAME_MS: Record<Pace, number> = {\n gentle: 100,\n normal: 60,\n fast: 33,\n};\n\n// Per-frame trail decay alpha. Smaller = trails persist longer = more\n// \"density by use\". `none` skips the decay step entirely; over long\n// uptimes the canvas approaches a saturated noise field. `slow` is the\n// new default that produces the \"well-trodden paths stay bright\" feel.\nconst DECAY_ALPHA: Record<Decay, number | null> = {\n none: null,\n slow: 0.003,\n normal: 0.02,\n fast: 0.08,\n};\n\n/* ------------------------------------------------------------------ */\n/* Props */\n/* ------------------------------------------------------------------ */\n\nexport interface MatrixRainProps extends VariantProps<typeof wrapperVariants> {\n /** Glyph preset name or a literal string of glyphs. Default `katakana`. */\n glyphs?: GlyphPreset | string;\n /** Brand tone for the rain. Resolved against the active theme. */\n tone?: Tone;\n /** Optional explicit colour — any CSS colour value. Overrides `tone` when set. */\n color?: string;\n /** Glyph density — controls font-size. */\n density?: Density;\n /** Animation pace — controls frame interval. */\n pace?: Pace;\n /** Trail persistence — smaller decay = denser cumulative background. */\n decay?: Decay;\n /**\n * Built-in surface beneath the rain. `transparent` (default) lets the\n * parent provide its own background; `solid` paints a near-black\n * surface so the rain reads cleanly without the consumer wrapping it\n * themselves — useful for standalone demos or full-bleed easter eggs.\n */\n background?: 'transparent' | 'solid';\n /**\n * Visual treatment.\n * - `clean` — just the rain.\n * - `terminal` — Fallout-CRT: vignette + scanlines + bloom + glow.\n * - `hologram` — sci-fi HUD: soft scanlines + slow opacity pulse.\n * - `synthwave` — 80s neon: heavy bloom + indigo horizon + accent→\n * info gradient across columns (overrides `tone`).\n * - `oscilloscope` — vintage scope: sharp edges + dense scanlines +\n * animated horizontal beam sweep.\n * - `ghost` — production-friendly faint background variant.\n */\n vibe?: 'clean' | 'terminal' | 'hologram' | 'synthwave' | 'oscilloscope' | 'ghost';\n /**\n * When `true`, gives each column a stable random speed multiplier\n * (0.6×–1.4× of the base pace) and adds a small horizontal jitter to\n * each glyph. Pairs with any vibe — makes the rain feel alive vs.\n * metronomic.\n */\n storm?: boolean;\n /**\n * Radial mask. `center` fades the canvas to fully transparent in the\n * middle so foreground content sitting over the rain stays readable\n * (e.g. code-block easter egg with copy in the middle).\n */\n mask?: 'none' | 'center';\n /**\n * Inner clear-zone radius for `mask=\"center\"`. Ignored when `mask`\n * is `none`. T-shirt sizes map to: xs 15%, sm 22%, md 30% (default),\n * lg 42%, xl 55%.\n */\n maskRadius?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /** Class merged onto the wrapper. */\n className?: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const MatrixRain = forwardRef<HTMLDivElement, MatrixRainProps>(\n function MatrixRain(\n {\n glyphs = 'katakana',\n tone = 'primary',\n color,\n density = 'medium',\n pace = 'normal',\n decay = 'slow',\n vibe = 'clean',\n storm = false,\n mask = 'none',\n maskRadius = 'md',\n background = 'transparent',\n className,\n },\n ref,\n ) {\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n\n // Resolve the glyph string from a preset key or literal pass-through.\n const glyphString = useMemo<string>(() => {\n if (glyphs in GLYPH_PRESETS) {\n return GLYPH_PRESETS[glyphs as GlyphPreset];\n }\n return glyphs;\n }, [glyphs]);\n\n const fontSize = DENSITY_FONT_PX[density];\n const frameInterval = PACE_FRAME_MS[pace];\n const decayAlpha = DECAY_ALPHA[decay];\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n // Bail entirely under reduced-motion. The CSS overlay is also\n // suppressed by media-query in the consumer's stylesheet if needed\n // — defence in depth, but the JS is the authoritative gate here.\n const reduceMotionMql =\n typeof window !== 'undefined' && typeof window.matchMedia === 'function'\n ? window.matchMedia('(prefers-reduced-motion: reduce)')\n : null;\n if (reduceMotionMql?.matches) return;\n\n // Resolve colour: explicit prop wins; otherwise read the theme\n // token. Final fallback is the canvas's inherited `color` (cascade\n // of the host `<div>`), which the browser always resolves to a\n // usable value — keeps a literal hex out of component code.\n const resolvedColor = (() => {\n if (color) return color;\n if (typeof window === 'undefined') return '';\n const fromVar = getComputedStyle(document.documentElement)\n .getPropertyValue(TONE_VAR[tone])\n .trim();\n return fromVar || getComputedStyle(canvas).color;\n })();\n\n // Resolve --font-mono at runtime so the kit's font fallback chain\n // (incl. Noto Sans JP for katakana) flows through to canvas.\n const fontFamily = (() => {\n if (typeof window === 'undefined') return 'monospace';\n const fromVar = getComputedStyle(document.documentElement)\n .getPropertyValue('--font-mono')\n .trim();\n return fromVar || 'monospace';\n })();\n\n const dpr = window.devicePixelRatio || 1;\n let columns = 0;\n let drops: number[] = [];\n // Synthwave: per-column accent → info gradient. Resolved through\n // a temporary probe element so we get back fully-resolved rgb()\n // strings the canvas API accepts. Empty when not in synthwave.\n let columnColors: string[] = [];\n // Storm: per-column random speed factor (0.6×–1.4× base pace) +\n // glyph horizontal jitter. Stable across frames, recomputed on\n // each fit() so columns stay coherent.\n let columnSpeeds: number[] = [];\n\n const fit = () => {\n const rect = canvas.getBoundingClientRect();\n canvas.width = Math.max(1, Math.floor(rect.width * dpr));\n canvas.height = Math.max(1, Math.floor(rect.height * dpr));\n // Render in CSS pixels so font metrics stay sharp on HiDPI.\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n columns = Math.max(1, Math.floor(rect.width / fontSize));\n drops = new Array(columns).fill(0).map(() =>\n // Random initial offset so columns never start in sync.\n Math.floor(Math.random() * (rect.height / fontSize)),\n );\n\n if (vibe === 'synthwave') {\n // Build the per-column gradient by resolving color-mix()\n // through a probe span. Browser handles the OKLCH math; we\n // just store the resulting rgb() string per column.\n const probe = document.createElement('span');\n probe.style.display = 'none';\n document.documentElement.appendChild(probe);\n columnColors = new Array(columns).fill('').map((_, i) => {\n const t = (i / Math.max(1, columns - 1)) * 100;\n probe.style.color = `color-mix(in oklch, var(--accent) ${\n 100 - t\n }%, var(--info) ${t}%)`;\n const computed = getComputedStyle(probe).color;\n return computed || resolvedColor;\n });\n document.documentElement.removeChild(probe);\n } else {\n columnColors = [];\n }\n\n if (storm) {\n columnSpeeds = new Array(columns)\n .fill(0)\n .map(() => 0.6 + Math.random() * 0.8);\n } else {\n columnSpeeds = [];\n }\n };\n\n let lastFrame = 0;\n let rafHandle = 0;\n let isVisible = true;\n let isOnscreen = true;\n\n const draw = (now: number) => {\n if (now - lastFrame >= frameInterval) {\n lastFrame = now;\n const rect = canvas.getBoundingClientRect();\n\n // Trail decay — `destination-out` fades existing pixels by\n // `decayAlpha` each frame. Skip when `decay === 'none'` so\n // trails are permanent (eventually saturate; intended).\n // Under `destination-out` only the alpha channel matters, so\n // we drive the fade via `globalAlpha` and any opaque CSS-keyword\n // fillStyle — no rgba literal needed.\n if (decayAlpha !== null) {\n ctx.globalCompositeOperation = 'destination-out';\n ctx.globalAlpha = decayAlpha;\n ctx.fillStyle = 'black';\n ctx.fillRect(0, 0, rect.width, rect.height);\n ctx.globalAlpha = 1;\n }\n\n ctx.globalCompositeOperation = 'source-over';\n ctx.font = `${fontSize}px ${fontFamily}`;\n ctx.textBaseline = 'top';\n // Per-glyph phosphor glow (canvas shadowBlur). On for vibes\n // that need an emission envelope; off for sharp variants.\n const wantsGlow =\n vibe === 'terminal' || vibe === 'hologram' || vibe === 'synthwave';\n if (wantsGlow) {\n ctx.shadowColor = resolvedColor;\n ctx.shadowBlur = Math.max(4, fontSize * 0.6);\n } else {\n ctx.shadowBlur = 0;\n }\n\n // Default fill (overridden per-column for synthwave).\n if (vibe !== 'synthwave') ctx.fillStyle = resolvedColor;\n\n for (let i = 0; i < columns; i += 1) {\n const ch = glyphString.charAt(\n Math.floor(Math.random() * glyphString.length),\n );\n // Storm: small horizontal jitter so rows feel alive.\n const jitter = storm ? (Math.random() - 0.5) * 2 : 0;\n const x = i * fontSize + jitter;\n const y = drops[i] * fontSize;\n\n // Synthwave: gradient colour per column.\n if (vibe === 'synthwave' && columnColors[i]) {\n ctx.fillStyle = columnColors[i];\n if (wantsGlow) ctx.shadowColor = columnColors[i];\n }\n\n ctx.fillText(ch, x, y);\n\n // Reset randomly once past the bottom so columns restart\n // staggered rather than all at once.\n if (y > rect.height && Math.random() > 0.97) {\n drops[i] = 0;\n }\n // Storm: per-column variable advance speed.\n drops[i] += storm ? columnSpeeds[i] || 1 : 1;\n }\n }\n rafHandle = window.requestAnimationFrame(draw);\n };\n\n const start = () => {\n if (rafHandle) return;\n if (!isVisible || !isOnscreen) return;\n lastFrame = window.performance ? window.performance.now() : 0;\n rafHandle = window.requestAnimationFrame(draw);\n };\n const stop = () => {\n if (rafHandle) {\n window.cancelAnimationFrame(rafHandle);\n rafHandle = 0;\n }\n };\n\n fit();\n start();\n\n // Resize with the container.\n const resizeObserver =\n typeof ResizeObserver !== 'undefined' ? new ResizeObserver(fit) : null;\n resizeObserver?.observe(canvas);\n const onWindowResize = () => fit();\n if (!resizeObserver) window.addEventListener('resize', onWindowResize);\n\n // Pause when tab is hidden.\n const onVisibility = () => {\n isVisible = !document.hidden;\n if (isVisible) start();\n else stop();\n };\n document.addEventListener('visibilitychange', onVisibility);\n\n // Pause when scrolled off-screen.\n const intersectionObserver =\n typeof IntersectionObserver !== 'undefined'\n ? new IntersectionObserver(\n (entries) => {\n isOnscreen = entries.some((e) => e.isIntersecting);\n if (isOnscreen) start();\n else stop();\n },\n { threshold: 0 },\n )\n : null;\n intersectionObserver?.observe(canvas);\n\n // Pause if reduced-motion gets toggled at runtime.\n const onReduceMotionChange = () => {\n if (reduceMotionMql?.matches) stop();\n else start();\n };\n reduceMotionMql?.addEventListener?.('change', onReduceMotionChange);\n\n return () => {\n stop();\n resizeObserver?.disconnect();\n intersectionObserver?.disconnect();\n if (!resizeObserver) window.removeEventListener('resize', onWindowResize);\n document.removeEventListener('visibilitychange', onVisibility);\n reduceMotionMql?.removeEventListener?.('change', onReduceMotionChange);\n };\n }, [\n glyphString,\n tone,\n color,\n fontSize,\n frameInterval,\n decayAlpha,\n vibe,\n storm,\n ]);\n\n return (\n <div\n ref={ref}\n aria-hidden=\"true\"\n data-component=\"matrix-rain\"\n className={[\n wrapperVariants({ background, vibe, mask, maskRadius }),\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <canvas ref={canvasRef} className=\"ds:absolute ds:inset-0 ds:block ds:size-full\" />\n </div>\n );\n },\n);\n\nMatrixRain.displayName = 'MatrixRain';\n"],"names":["KATAKANA_GLYPHS","HEX_GLYPHS","BINARY_GLYPHS","SYMBOL_GLYPHS","GLYPH_PRESETS","wrapperVariants","cva","TONE_VAR","DENSITY_FONT_PX","PACE_FRAME_MS","DECAY_ALPHA","MatrixRain","forwardRef","glyphs","tone","color","density","pace","decay","vibe","storm","mask","maskRadius","background","className","ref","canvasRef","useRef","glyphString","useMemo","fontSize","frameInterval","decayAlpha","useEffect","canvas","ctx","reduceMotionMql","resolvedColor","fontFamily","dpr","columns","drops","columnColors","columnSpeeds","fit","rect","probe","_","i","t","lastFrame","rafHandle","isVisible","isOnscreen","draw","now","wantsGlow","ch","jitter","x","y","start","stop","resizeObserver","onWindowResize","onVisibility","intersectionObserver","entries","e","onReduceMotionChange","_a","jsx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-card-qhoGv947.js","sources":["../../src/components/message-card/message-card.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { X } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { Button } from '../button/button';\nimport { Avatar } from '../avatar/avatar';\nimport { Timestamp } from '../timestamp';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport interface MessageSender {\n /** Display name — drives the avatar's deterministic colour + initials. */\n name: string;\n /** Optional avatar image URL. */\n avatarUrl?: string;\n}\n\nexport interface MessageItem {\n /** Unique identifier for the message (or thread). */\n id: string;\n /** Sender identity — avatar + bold display name. */\n sender: MessageSender;\n /** Optional subject / conversation title. Rendered bold when unread. */\n subject?: string;\n /** Last-message preview — rendered as plain text, clamped to two lines. */\n preview: string;\n /** ISO-8601 timestamp of when the message was sent. */\n sentAt: string;\n /** Whether the message has been seen. Unread items get accent styling. */\n read?: boolean;\n /** Optional deep link — when present the card row is an anchor. */\n url?: string;\n /**\n * Count of unread messages inside a thread. Rendered as an end-aligned\n * badge when greater than 1.\n */\n unreadCount?: number;\n}\n\nexport interface MessageCardProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'role' | 'title'>,\n VariantProps<typeof cardVariants> {\n /** The message to render. */\n item: MessageItem;\n /**\n * Layout shape.\n * - `compact` — single-line row with the whole card clickable (used by\n * MessageTray).\n * - `dashboard` — bordered block with explicit CTA and mark-as-read\n * controls (used by dashboards / sidebars).\n */\n variant?: 'compact' | 'dashboard';\n /** Visual density. */\n size?: 'sm' | 'md';\n /** Fires when the row / title is activated. */\n onActivate?: (item: MessageItem) => void;\n /** Fires when the dismiss control is activated. */\n onDismiss?: (item: MessageItem) => void;\n /**\n * Label for the dashboard-variant CTA. Only rendered when `variant` is\n * `'dashboard'` and the item has a `url`.\n */\n ctaLabel?: string;\n /**\n * Label for the dashboard-variant mark-as-read link. Only rendered when\n * `variant` is `'dashboard'` and `onDismiss` is supplied.\n */\n dismissLabel?: string;\n /**\n * External exit-animation control. When supplied the card plays its\n * fade-out when this turns `true` and the consumer owns the subsequent\n * unmount (see MessageTray). If omitted, the card self-manages the\n * exit on internal dismiss.\n */\n leaving?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst cardVariants = cva(\n [\n 'ds:relative ds:flex ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:transition-colors',\n 'ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:slide-in-from-top-2 ds:motion-safe:duration-[var(--animation-duration)]',\n 'ds:data-[leaving=true]:motion-safe:animate-out ds:data-[leaving=true]:motion-safe:fade-out-0 ds:data-[leaving=true]:motion-safe:slide-out-to-top-2',\n 'ds:data-[leaving=true]:motion-safe:fill-mode-forwards',\n 'ds:data-[leaving=true]:pointer-events-none',\n 'ds:motion-reduce:transition-none',\n 'ds:text-start',\n 'ds:forced-colors:border ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n variant: {\n compact: 'ds:items-start ds:group',\n dashboard:\n 'ds:flex-col ds:sm:flex-row ds:items-stretch ds:sm:items-start ds:border ds:border-[color:var(--border)] ds:bg-[color:var(--card)]',\n },\n size: {\n sm: 'ds:p-[var(--spacing-sm)]',\n md: 'ds:p-[var(--spacing-md)]',\n },\n state: {\n unread: '',\n read: 'ds:bg-transparent',\n },\n },\n compoundVariants: [\n {\n variant: 'compact',\n state: 'unread',\n class: 'ds:bg-[color:var(--accent)]/5',\n },\n {\n variant: 'compact',\n state: 'read',\n class: 'ds:hover:bg-[color:var(--muted)]/40',\n },\n {\n variant: 'dashboard',\n state: 'unread',\n class: 'ds:bg-[color:var(--accent)]/5',\n },\n ],\n defaultVariants: {\n variant: 'compact',\n size: 'sm',\n state: 'read',\n },\n },\n);\n\nconst stretchedLinkClass = [\n 'ds:focus-visible:outline-none',\n \"ds:after:content-[''] ds:after:absolute ds:after:inset-0 ds:after:rounded-[var(--radius-sm)]\",\n 'ds:after:pointer-events-auto',\n 'ds:focus-visible:after:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:after:outline-solid',\n 'ds:focus-visible:after:outline-[color:var(--ring)]',\n 'ds:focus-visible:after:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:after:outline-[CanvasText]',\n].join(' ');\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nexport function isSafeMessageUrl(url: string): boolean {\n // Reject protocol-relative (//host), javascript:, data:, mailto: etc.\n // Only http(s), same-origin absolute paths (/), and hash (#) anchors pass.\n return /^(https?:\\/\\/(?!\\/)|\\/(?!\\/)|#)/.test(url);\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const MessageCard = forwardRef<HTMLDivElement, MessageCardProps>(\n (\n {\n item,\n variant = 'compact',\n size = 'sm',\n onActivate,\n onDismiss,\n ctaLabel,\n dismissLabel,\n leaving,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n\n const accessibleTime = useMemo(() => {\n const date = new Date(item.sentAt);\n if (Number.isNaN(date.getTime())) return '';\n return new Intl.DateTimeFormat(i18n.language, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }).format(date);\n }, [item.sentAt, i18n.language]);\n\n const isControlledLeaving = leaving !== undefined;\n const [isLeaving, setIsLeaving] = useState(false);\n const dismissTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const effectiveLeaving = isControlledLeaving ? leaving : isLeaving;\n\n const prefersReducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n const handleDismiss = useCallback(() => {\n if (!onDismiss) return;\n if (isControlledLeaving || prefersReducedMotion) {\n onDismiss(item);\n return;\n }\n setIsLeaving(true);\n if (dismissTimerRef.current) clearTimeout(dismissTimerRef.current);\n const raw =\n (typeof window !== 'undefined' &&\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('--animation-duration')) ||\n '200ms';\n const ms = raw.trim().endsWith('ms')\n ? parseFloat(raw)\n : parseFloat(raw) * 1000;\n dismissTimerRef.current = setTimeout(\n () => onDismiss(item),\n Number.isFinite(ms) ? ms : 200,\n );\n }, [onDismiss, item, isControlledLeaving, prefersReducedMotion]);\n\n const state = item.read ? 'read' : 'unread';\n\n const unreadSuffix = item.read\n ? ''\n : t('ui.messageCard.unreadSuffix', ', unread');\n const subjectFragment = item.subject\n ? t('ui.messageCard.subjectFragment', {\n subject: item.subject,\n defaultValue: ' — {{subject}}',\n })\n : '';\n const ariaLabel = t('ui.messageCard.itemLabel', {\n sender: item.sender.name,\n subjectFragment,\n time: accessibleTime,\n unreadSuffix,\n defaultValue:\n 'Message from {{sender}}{{subjectFragment}}, {{time}}{{unreadSuffix}}',\n });\n\n const hasSafeUrl = !!item.url && isSafeMessageUrl(item.url);\n\n /* ------- Sender-name rendering (stretched link in compact mode) ------ */\n\n const senderText = (\n <span\n className={[\n 'ds:flex-1 ds:min-w-0 ds:truncate',\n item.read ? 'ds:font-normal' : 'ds:font-semibold',\n ].join(' ')}\n >\n {item.sender.name}\n </span>\n );\n\n let senderNode: ReactNode;\n if (variant === 'compact' && hasSafeUrl && onActivate) {\n senderNode = (\n <a\n href={item.url}\n aria-label={ariaLabel}\n className={stretchedLinkClass + ' ds:contents'}\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n onActivate(item);\n }}\n >\n {senderText}\n </a>\n );\n } else if (variant === 'compact' && onActivate) {\n senderNode = (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={stretchedLinkClass + ' ds:contents ds:bg-transparent ds:border-0 ds:p-0'}\n onClick={() => onActivate(item)}\n >\n {senderText}\n </button>\n );\n } else if (variant === 'dashboard' && hasSafeUrl && onActivate) {\n senderNode = (\n <a\n href={item.url}\n className=\"ds:text-[color:var(--foreground)] ds:no-underline ds:hover:underline ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]\"\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n onActivate(item);\n }}\n >\n {senderText}\n </a>\n );\n } else {\n senderNode = senderText;\n }\n\n const showThreadCount =\n typeof item.unreadCount === 'number' && item.unreadCount > 1;\n\n return (\n <div\n ref={ref}\n role=\"listitem\"\n data-component=\"message-card\"\n data-component-id={item.id}\n data-read={item.read ? 'true' : 'false'}\n data-leaving={effectiveLeaving ? 'true' : undefined}\n aria-hidden={effectiveLeaving || undefined}\n className={cardVariants({ variant, size, state, className })}\n {...rest}\n >\n {/* Avatar is decorative here — the row's assembled `aria-label`\n already names the sender, so letting Avatar contribute its own\n `role=\"img\"` + `aria-label={name}` would announce the name twice\n per row. `aria-hidden` + `role=\"presentation\"` (spread last, so\n they win over Avatar's internal values) pulls the element out of\n the a11y tree entirely. */}\n <Avatar\n name={item.sender.name}\n src={item.sender.avatarUrl}\n size={size === 'md' ? 'md' : 'sm'}\n className=\"ds:shrink-0\"\n aria-hidden=\"true\"\n role=\"presentation\"\n aria-label={undefined}\n />\n\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {!item.read ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-block ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)] ds:forced-colors:bg-[Highlight]\"\n />\n ) : null}\n {variant === 'dashboard' ? (\n <h3 className=\"ds:m-0 ds:flex-1 ds:min-w-0 type-title-item\">\n {senderNode}\n </h3>\n ) : (\n <span className=\"ds:flex-1 ds:min-w-0 type-title-item ds:text-[color:var(--foreground)]\">\n {senderNode}\n </span>\n )}\n {showThreadCount ? (\n <span\n aria-label={t('ui.messageCard.threadCount', {\n count: item.unreadCount,\n defaultValue_one: '{{count}} new message in thread',\n defaultValue_other: '{{count}} new messages in thread',\n })}\n className=\"ds:relative ds:z-[1] ds:shrink-0 ds:inline-flex ds:items-center ds:justify-center ds:min-w-[calc(var(--spacing-md)+var(--spacing-xs))] ds:h-[calc(var(--spacing-md)+var(--spacing-xs))] ds:ps-[calc(var(--spacing-xs)/1.5)] ds:pe-[calc(var(--spacing-xs)/1.5)] ds:rounded-[var(--radius-full)] ds:bg-[color:var(--accent)] ds:text-[color:var(--accent-foreground)] ds:text-[length:var(--font-size-xs)] ds:font-semibold ds:leading-none ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText]\"\n >\n {item.unreadCount}\n </span>\n ) : null}\n </div>\n\n {item.subject ? (\n <p\n className={[\n 'ds:m-0 type-body-sm ds:text-[color:var(--foreground)] ds:truncate',\n item.read ? 'ds:font-normal' : 'ds:font-semibold',\n ].join(' ')}\n >\n {item.subject}\n </p>\n ) : null}\n\n <p className=\"ds:m-0 type-body-sm ds:text-[color:var(--muted-foreground)] ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:2] ds:break-words\">\n {item.preview}\n </p>\n\n <Timestamp\n value={item.sentAt}\n shape=\"chip\"\n size=\"sm\"\n relativeWindow={12 * 60 * 60 * 1000}\n />\n\n {variant === 'dashboard' && (ctaLabel || dismissLabel) ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]\">\n {ctaLabel && hasSafeUrl ? (\n <Button\n intent=\"outline\"\n size=\"sm\"\n asChild\n className=\"ds:relative ds:z-[1]\"\n >\n <a\n href={item.url}\n onClick={(event) => {\n if (\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey\n )\n return;\n onActivate?.(item);\n }}\n >\n {ctaLabel}\n </a>\n </Button>\n ) : null}\n {dismissLabel && onDismiss ? (\n <Button\n intent=\"link\"\n size=\"sm\"\n onClick={handleDismiss}\n className=\"ds:relative ds:z-[1]\"\n >\n {dismissLabel}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {variant === 'compact' && onDismiss ? (\n <span className=\"ds:relative ds:z-[1] ds:opacity-0 ds:group-hover:opacity-100 ds:group-focus-within:opacity-100 ds:transition-opacity ds:motion-reduce:transition-none\">\n <IconButton\n icon={<X />}\n intent=\"ghost\"\n size=\"sm\"\n aria-label={t('ui.messageCard.dismiss', 'Dismiss message')}\n onClick={handleDismiss}\n />\n </span>\n ) : null}\n </div>\n );\n },\n);\n\nMessageCard.displayName = 'MessageCard';\n"],"names":["cardVariants","cva","stretchedLinkClass","isSafeMessageUrl","url","MessageCard","forwardRef","item","variant","size","onActivate","onDismiss","ctaLabel","dismissLabel","leaving","className","rest","ref","t","i18n","useTranslation","accessibleTime","useMemo","date","isControlledLeaving","isLeaving","setIsLeaving","useState","dismissTimerRef","useRef","effectiveLeaving","prefersReducedMotion","handleDismiss","useCallback","raw","ms","state","unreadSuffix","subjectFragment","ariaLabel","hasSafeUrl","senderText","jsx","senderNode","event","showThreadCount","jsxs","Avatar","Timestamp","Button","IconButton","X"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-card.agent-4IeIgrnJ.js","sources":["../../src/components/message-card/message-card.agent.ts"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — MessageCard. */\n/* */\n/* Single-message surface. Lifecycle (dismiss, mark-read) is owned by */\n/* the consumer / host tray; the card emits a DOM hook so a future MCP */\n/* UI bridge can address one rendered card by its message id. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\n\nexport const messageCardAgent: AgentAdapter = {\n id: 'message-card',\n capabilities: ['dismiss'],\n state: {},\n actions: {},\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'message-card',\n description:\n 'Marks the element as a kit MessageCard. The card root also emits data-component-id sourced from item.id and data-read with the current read flag.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'item.id',\n description: 'Sourced from item.id — the stable message identifier.',\n },\n },\n};\n"],"names":["messageCardAgent"],"mappings":"AAUO,MAAMA,IAAiC;AAAA,EAC5C,IAAI;AAAA,EACJ,cAAc,CAAC,SAAS;AAAA,EACxB,OAAO,CAAA;AAAA,EACP,SAAS,CAAA;AAAA,EACT,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aACE;AAAA,IAAA;AAAA,IAEJ,YAAY;AAAA,MACV,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-tray-xHUCra-Y.js","sources":["../../src/components/message-tray/message-tray.agent.ts","../../src/components/message-tray/message-tray.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — MessageTray. */\n/* */\n/* Tray-level surface: open/close the inbox panel, read message ids and */\n/* unread flag (never sender names / subjects / previews — those are */\n/* PHI), and route per-message operations through the curated handle. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { MessageTrayHandle } from './message-tray';\n\nexport const messageTrayAgent: AgentAdapter<MessageTrayHandle> = {\n id: 'message-tray',\n capabilities: ['open', 'close', 'select_single', 'dismiss'],\n state: {\n items: {\n type: 'Array<{ id: string; read: boolean }>',\n descriptionKey: 'ui.agent.messageTray.state.items',\n description:\n 'Currently-displayed messages. Ids + read flag only — no PHI / no sender names.',\n read: (handle) => handle.getItems(),\n },\n unreadCount: {\n type: 'number',\n descriptionKey: 'ui.agent.messageTray.state.unreadCount',\n description: 'Badge unread count surfaced by the host.',\n read: (handle) => handle.getUnreadCount(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.messageTray.state.isOpen',\n description: 'Whether the dropdown panel is currently open.',\n read: (handle) => handle.isOpen(),\n },\n },\n actions: {\n open: {\n safety: 'read',\n descriptionKey: 'ui.agent.messageTray.actions.open',\n description: 'Open the message panel.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n descriptionKey: 'ui.agent.messageTray.actions.close',\n description: 'Close the message panel.',\n invoke: (handle) => {\n handle.close();\n },\n },\n select_item: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.messageTray.actions.selectItem',\n description: 'Activate the message with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.selectItem(args.id);\n },\n },\n mark_read: {\n safety: 'write',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.messageTray.actions.markRead',\n description: 'Request the host to mark a message as read.',\n invoke: (handle, args: { id: string }) => {\n handle.markRead(args.id);\n },\n },\n dismiss: {\n safety: 'destructive',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.messageTray.actions.dismiss',\n description:\n 'Request the host to dismiss / archive the message with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.dismiss(args.id);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'message-tray',\n description: 'Marks the MessageTray wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop. Required to address a specific tray from the agent.',\n },\n item: {\n attr: 'data-message-id',\n description:\n 'Stable message id emitted on each rendered MessageCard inside the tray.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n} from 'react';\nimport * as RadixPopover from '@radix-ui/react-popover';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Mail } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { Button } from '../button/button';\nimport { Separator } from '../separator/separator';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { MessageCard, type MessageItem } from '../message-card/message-card';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { messageTrayAgent } from './message-tray.agent';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\n/**\n * Curated imperative handle for MessageTray. Exposed as the forwardRef\n * target so a future agent / MCP UI bridge can drive the tray without\n * touching the DOM. See `message-tray.agent.ts`.\n */\nexport interface MessageTrayHandle {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n getItems: () => Array<{ id: string; read: boolean }>;\n getUnreadCount: () => number;\n selectItem: (id: string) => void;\n markRead: (id: string) => void;\n dismiss: (id: string) => void;\n}\n\nexport interface MessageTrayProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onClick' | 'children' | 'role' | 'id'\n >,\n VariantProps<typeof messageTrayVariants> {\n /**\n * Stable instance id. Surfaced on the root as `data-component-id` so\n * an agent / MCP UI bridge can address this specific tray.\n */\n id?: string;\n /** Fires when the host should mark a single message as read (used by agent integration). */\n onMarkRead?: (item: MessageItem) => void;\n /** Messages rendered in the dropdown panel. */\n items: MessageItem[];\n /** Number of unread messages. Drives the badge count. */\n unreadCount?: number;\n /** Controlled open state. */\n open?: boolean;\n /** Fires when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Fires when the user activates an item (click or Enter/Space). */\n onItemClick?: (item: MessageItem) => void;\n /** Fires when the user dismisses / archives a message. */\n onDismiss?: (item: MessageItem) => void;\n /** Fires when the user clicks the header \"Mark all as read\" action. */\n onMarkAllRead?: () => void;\n /** When true the panel shows skeleton placeholders. */\n loading?: boolean;\n /**\n * Advisory item count before the list scrolls. Consumers override the cap\n * via the `--message-tray-max-block-size` custom property.\n */\n maxVisible?: number;\n /** When set renders a footer link that invokes `onViewAll`. */\n viewAllLabel?: string;\n /** Fires when the footer \"View all\" link is clicked. */\n onViewAll?: () => void;\n /** Panel alignment relative to the trigger. Default `'end'`. */\n align?: 'start' | 'center' | 'end';\n /** Side of the trigger to open on. Default `'bottom'`. */\n side?: 'top' | 'bottom';\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst messageTrayVariants = cva('ds:relative ds:inline-flex ds:items-center', {\n variants: {\n size: {\n sm: '',\n md: '',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nconst panelVariants = cva(\n [\n 'ds:flex ds:flex-col',\n 'ds:bg-[var(--popover)] ds:text-[var(--popover-foreground)]',\n 'ds:border ds:border-[color:var(--border)]',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:z-[var(--z-popover)]',\n // Width: fluid below the design cap so narrow viewports keep a visible\n // gutter on both sides (shadow included). Cap slightly wider than\n // NotificationTray because message rows carry subject + preview.\n 'ds:w-[min(26rem,calc(100vw-2*var(--spacing-md)))]',\n // Height: below the `sm` breakpoint the panel takes a near-full-screen\n // sheet shape so the user gets room to triage an inbox without\n // scrolling a tiny popover. `6rem` reserves space for the Header\n // (≈4rem) plus the sideOffset + collisionPadding (≈2rem). Above `sm`\n // it returns to `h-auto` so the list's own cap governs the height.\n 'ds:h-[calc(100dvh-6rem)] ds:sm:h-auto',\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=closed]:fade-out-0 ds:data-[state=open]:fade-in-0',\n 'ds:data-[state=closed]:zoom-out-95 ds:data-[state=open]:zoom-in-95',\n 'ds:motion-reduce:transition-none ds:motion-reduce:animate-none',\n 'ds:focus-visible:outline-none',\n 'ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:p-[var(--spacing-xs)]',\n md: 'ds:p-[var(--spacing-sm)]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\nconst badgeVariants = cva(\n [\n 'ds:absolute ds:-top-[var(--spacing-xs)] ds:-end-[var(--spacing-xs)]',\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-w-[calc(var(--spacing-md)+var(--spacing-xs))] ds:h-[calc(var(--spacing-md)+var(--spacing-xs))] ds:ps-[calc(var(--spacing-xs)/1.5)] ds:pe-[calc(var(--spacing-xs)/1.5)]',\n 'ds:rounded-[var(--radius-full)]',\n 'ds:bg-[color:var(--destructive)] ds:text-[color:var(--destructive-foreground)]',\n 'ds:text-[length:var(--font-size-xs)] ds:font-semibold ds:leading-none',\n 'ds:pointer-events-none ds:select-none',\n 'ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText]',\n ].join(' '),\n);\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction formatBadgeCount(count: number, overflowLabel: string): string {\n return count > 99 ? overflowLabel : String(count);\n}\n\nfunction SkeletonRow() {\n return (\n <div\n aria-hidden=\"true\"\n className=\"ds:flex ds:items-start ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]\"\n >\n <Skeleton variant=\"circular\" size=\"sm\" />\n <div className=\"ds:flex-1 ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <Skeleton variant=\"text\" size=\"md\" width=\"60%\" />\n <Skeleton variant=\"text\" size=\"sm\" width=\"80%\" />\n <Skeleton variant=\"text\" size=\"sm\" width=\"95%\" />\n <Skeleton variant=\"text\" size=\"sm\" width=\"30%\" />\n </div>\n </div>\n );\n}\n\nfunction EmptyPanel() {\n const { t } = useTranslation();\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n className=\"ds:flex ds:flex-col ds:items-center ds:justify-center ds:gap-[var(--spacing-xs)] ds:p-[var(--spacing-lg)] ds:text-center\"\n >\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:items-center ds:justify-center ds:size-10 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--muted)] ds:text-[color:var(--muted-foreground)] ds:[&>svg]:size-5\"\n >\n <Mail />\n </span>\n <p className=\"type-title-item ds:text-[color:var(--foreground)]\">\n {t('ui.messageTray.noMessages', 'No messages')}\n </p>\n <p className=\"type-meta ds:text-[color:var(--muted-foreground)]\">\n {t(\n 'ui.messageTray.noMessagesDescription',\n 'Your inbox is clear.',\n )}\n </p>\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nexport const MessageTray = forwardRef<MessageTrayHandle, MessageTrayProps>(\n (\n {\n id,\n items,\n unreadCount,\n open,\n onOpenChange,\n onItemClick,\n onDismiss,\n onMarkRead,\n onMarkAllRead,\n loading = false,\n maxVisible,\n viewAllLabel,\n onViewAll,\n align = 'end',\n side = 'bottom',\n size = 'md',\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const isControlled = open !== undefined;\n const [internalOpen, setInternalOpen] = useState(false);\n const isOpen = isControlled ? open : internalOpen;\n\n const handleOpenChange = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n /* Exit-animation list — same AnimatePresence-style bookkeeping as\n * NotificationTray. See that component for rationale. */\n type Displayed = { item: MessageItem; leaving: boolean };\n const [displayed, setDisplayed] = useState<Displayed[]>(() =>\n items.map((item) => ({ item, leaving: false })),\n );\n\n const animationDurationMs = useCallback((): number => {\n if (typeof window === 'undefined') return 200;\n const raw = window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('--animation-duration');\n if (!raw) return 200;\n const trimmed = raw.trim();\n const n = parseFloat(trimmed);\n if (!Number.isFinite(n)) return 200;\n return trimmed.endsWith('ms') ? n : n * 1000;\n }, []);\n\n useLayoutEffect(() => {\n setDisplayed((prev) => {\n const nextIds = new Set(items.map((i) => i.id));\n const prevIds = new Set(prev.map((d) => d.item.id));\n\n const merged: Displayed[] = prev.map((d) => {\n if (nextIds.has(d.item.id)) {\n const fresh = items.find((i) => i.id === d.item.id);\n return fresh\n ? { item: fresh, leaving: false }\n : { ...d, leaving: true };\n }\n return { ...d, leaving: true };\n });\n\n for (const i of items) {\n if (!prevIds.has(i.id)) merged.push({ item: i, leaving: false });\n }\n return merged;\n });\n }, [items]);\n\n useEffect(() => {\n if (!displayed.some((d) => d.leaving)) return;\n const ms = animationDurationMs();\n const timer = setTimeout(() => {\n setDisplayed((prev) => prev.filter((d) => !d.leaving));\n }, ms);\n return () => clearTimeout(timer);\n }, [displayed, animationDurationMs]);\n\n const liveRegionRef = useRef<HTMLDivElement | null>(null);\n const lastTopIdRef = useRef<string | undefined>(items[0]?.id);\n\n useEffect(() => {\n const topId = items[0]?.id;\n const prev = lastTopIdRef.current;\n if (prev && topId && prev !== topId && liveRegionRef.current) {\n const newest = items[0];\n if (newest && !newest.read) {\n liveRegionRef.current.textContent = t(\n 'ui.messageTray.newMessage',\n {\n sender: newest.sender.name,\n defaultValue: 'New message from {{sender}}',\n },\n );\n }\n }\n lastTopIdRef.current = topId;\n }, [items, t]);\n\n const displayCount = unreadCount ?? 0;\n const triggerAriaLabel =\n displayCount > 0\n ? t('ui.messageTray.triggerLabel', {\n count: displayCount,\n defaultValue: 'Messages, {{count}} unread',\n })\n : t('ui.messageTray.triggerLabelNone', 'Messages, none unread');\n\n const badgeLabel = formatBadgeCount(\n displayCount,\n t('ui.messageTray.badgeCountOverflow', '99+'),\n );\n\n const panelClass = panelVariants({ size });\n\n /* Curated imperative handle for agent integration. See\n * message-tray.agent.ts. */\n const itemsRef = useRef<MessageItem[]>(items);\n itemsRef.current = items;\n const unreadRef = useRef<number | undefined>(unreadCount);\n unreadRef.current = unreadCount;\n const isOpenRef = useRef<boolean>(isOpen);\n isOpenRef.current = isOpen;\n\n const handle = useMemo<MessageTrayHandle>(\n () => ({\n open: () => handleOpenChange(true),\n close: () => handleOpenChange(false),\n isOpen: () => isOpenRef.current,\n getItems: () =>\n itemsRef.current.map((i) => ({ id: i.id, read: !!i.read })),\n getUnreadCount: () =>\n unreadRef.current ?? itemsRef.current.filter((i) => !i.read).length,\n selectItem: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onItemClick?.(found);\n },\n markRead: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onMarkRead?.(found);\n },\n dismiss: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onDismiss?.(found);\n },\n }),\n [handleOpenChange, onItemClick, onMarkRead, onDismiss],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(messageTrayAgent, handle, id);\n\n return (\n <div\n data-component=\"message-tray\"\n data-component-id={id}\n className={[messageTrayVariants({ size }), className]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n <RadixPopover.Root open={isOpen} onOpenChange={handleOpenChange}>\n <RadixPopover.Trigger asChild>\n <IconButton\n icon={<Mail />}\n intent=\"outline\"\n size={size === 'sm' ? 'sm' : 'md'}\n aria-label={triggerAriaLabel}\n aria-haspopup=\"dialog\"\n />\n </RadixPopover.Trigger>\n {displayCount > 0 ? (\n <span\n aria-hidden=\"true\"\n data-testid=\"message-tray-badge\"\n className={badgeVariants()}\n >\n {badgeLabel}\n </span>\n ) : null}\n <div\n ref={liveRegionRef}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ds:sr-only\"\n />\n <RadixPopover.Portal>\n <RadixPopover.Content\n role=\"dialog\"\n aria-label={t('ui.messageTray.panelTitle', 'Messages')}\n side={side}\n align={align}\n sideOffset={8}\n // `spacing-md` (16px) keeps Radix's collision-avoidance from\n // flush-mounting the panel against the viewport edge when the\n // trigger is near the inline-end of a narrow screen.\n collisionPadding={16}\n className={panelClass}\n >\n <div className=\"ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]\">\n <h3 className=\"ds:m-0 type-title-card ds:text-[color:var(--foreground)]\">\n {t('ui.messageTray.panelTitle', 'Messages')}\n </h3>\n {onMarkAllRead && items.some((item) => !item.read) ? (\n <Button\n intent=\"link\"\n size=\"sm\"\n onClick={onMarkAllRead}\n className=\"ds:text-[length:var(--font-size-xs)]\"\n >\n {t('ui.messageTray.markAllRead', 'Mark all as read')}\n </Button>\n ) : null}\n </div>\n <Separator />\n <div\n role=\"list\"\n data-max-visible={maxVisible}\n // Below `sm` the panel is a near-full-screen sheet (see\n // `panelVariants`) and the list expands to fill the\n // remaining space with `flex-1`. Above `sm` the list\n // caps at the `--message-tray-max-block-size` custom\n // property so the popover stays compact.\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:overflow-y-auto ds:pt-[var(--spacing-xs)] ds:flex-1 ds:sm:flex-none ds:sm:[max-block-size:var(--message-tray-max-block-size,26rem)]\"\n >\n {loading ? (\n <>\n <SkeletonRow />\n <SkeletonRow />\n <SkeletonRow />\n </>\n ) : displayed.length === 0 ? (\n <EmptyPanel />\n ) : (\n displayed.map(({ item, leaving }) => (\n <MessageCard\n key={item.id}\n item={item}\n variant=\"compact\"\n leaving={leaving}\n onActivate={onItemClick}\n onDismiss={onDismiss}\n data-message-id={item.id}\n />\n ))\n )}\n </div>\n {viewAllLabel ? (\n <>\n <Separator />\n <div className=\"ds:pt-[var(--spacing-xs)]\">\n <Button\n intent=\"link\"\n size=\"sm\"\n onClick={onViewAll}\n className=\"ds:w-full ds:justify-center\"\n >\n {viewAllLabel}\n </Button>\n </div>\n </>\n ) : null}\n </RadixPopover.Content>\n </RadixPopover.Portal>\n </RadixPopover.Root>\n </div>\n );\n },\n);\n\nMessageTray.displayName = 'MessageTray';\n"],"names":["messageTrayAgent","handle","args","messageTrayVariants","cva","panelVariants","badgeVariants","formatBadgeCount","count","overflowLabel","SkeletonRow","jsxs","jsx","Skeleton","EmptyPanel","t","useTranslation","Mail","MessageTray","forwardRef","id","items","unreadCount","open","onOpenChange","onItemClick","onDismiss","onMarkRead","onMarkAllRead","loading","maxVisible","viewAllLabel","onViewAll","align","side","size","className","rest","ref","isControlled","internalOpen","setInternalOpen","useState","isOpen","handleOpenChange","useCallback","next","displayed","setDisplayed","item","animationDurationMs","raw","trimmed","useLayoutEffect","prev","nextIds","prevIds","d","merged","fresh","i","useEffect","ms","timer","liveRegionRef","useRef","lastTopIdRef","_a","topId","newest","displayCount","triggerAriaLabel","badgeLabel","panelClass","itemsRef","unreadRef","isOpenRef","useMemo","targetId","found","useImperativeHandle","useAgentRegistration","RadixPopover","IconButton","Button","Separator","Fragment","leaving","MessageCard"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-select.agent-Do6CeQUT.js","sources":["../../src/components/multi-select/multi-select.tsx","../../src/components/multi-select/multi-select.agent.ts"],"sourcesContent":["import {\n forwardRef,\n useContext,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type Ref,\n} from 'react';\nimport * as Popover from '@radix-ui/react-popover';\nimport { Command } from 'cmdk';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Check, X } from 'lucide-react';\nimport {\n FormFieldContext,\n useFormField,\n} from '../form-field/form-field-context';\nimport { Tooltip } from '../tooltip';\nimport type { OptionShape } from '../_shared/option';\nimport { composeRefs } from '../_shared/compose-refs';\nimport { groupOptions } from '../_shared/group-options';\nimport {\n INPUT_SURFACE_CHROME,\n INPUT_SURFACE_TEXT,\n} from '../_shared/input-surface';\n\n// MultiSelect uses `min-h-*` (not `h-*`) because the wrapper grows vertically\n// as chips wrap to additional lines. The height floor per size mirrors the\n// other inputs' fixed heights in _shared/input-surface.ts.\nconst multiSelectVariants = cva(\n [\n 'ds:inline-flex ds:flex-wrap ds:items-center ds:gap-1 ds:w-full',\n INPUT_SURFACE_CHROME,\n 'ds:aria-[invalid=true]:border-destructive',\n 'ds:aria-disabled:cursor-not-allowed ds:aria-disabled:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: `ds:min-h-8 ds:ps-2 ds:pe-2 ds:py-1 ${INPUT_SURFACE_TEXT.sm}`,\n md: `ds:min-h-[var(--min-target-size)] ds:ps-3 ds:pe-3 ds:py-1.5 ${INPUT_SURFACE_TEXT.md}`,\n lg: `ds:min-h-12 ds:ps-4 ds:pe-4 ds:py-2 ${INPUT_SURFACE_TEXT.lg}`,\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst chipVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:gap-1',\n 'ds:rounded-[var(--radius-sm)] ds:border ds:border-border ds:bg-muted',\n 'ds:text-foreground ds:select-none',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n ],\n {\n variants: {\n size: {\n sm: 'ds:ps-2 ds:pe-1 ds:py-0.5 ds:text-[length:var(--font-size-xs)]',\n md: 'ds:ps-2 ds:pe-1 ds:py-0.5 ds:text-[length:var(--font-size-sm)]',\n lg: 'ds:ps-3 ds:pe-1.5 ds:py-1 ds:text-[length:var(--font-size-base)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst chipDismissClasses = [\n 'ds:inline-flex ds:items-center ds:justify-center ds:shrink-0',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-muted-foreground ds:hover:text-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:size-4',\n 'ds:relative ds:before:absolute ds:before:inset-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"]',\n].join(' ');\n\nconst popoverContentClasses = [\n 'ds:z-[var(--z-dropdown)] ds:overflow-hidden',\n 'ds:min-w-[var(--radix-popover-trigger-width)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background ds:text-foreground',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:animate-in ds:fade-in ds:zoom-in-95',\n 'ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out',\n 'ds:data-[state=closed]:zoom-out-95',\n 'ds:data-[side=bottom]:slide-in-from-top-2',\n 'ds:data-[side=top]:slide-in-from-bottom-2',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst commandItemClasses = [\n 'ds:relative ds:flex ds:cursor-pointer ds:items-center',\n 'ds:rounded-[var(--radius-sm)] ds:ps-2 ds:pe-2 ds:py-1.5',\n 'ds:text-[var(--font-size-sm)] ds:text-foreground ds:outline-none ds:select-none',\n 'ds:data-[selected=true]:bg-muted ds:data-[selected=true]:text-foreground',\n 'ds:aria-[disabled=true]:pointer-events-none ds:aria-[disabled=true]:opacity-50',\n 'ds:data-[disabled=true]:pointer-events-none ds:data-[disabled=true]:opacity-50',\n].join(' ');\n\nconst actionItemClasses = [\n 'ds:relative ds:flex ds:cursor-pointer ds:items-center',\n 'ds:rounded-[var(--radius-sm)] ds:ps-2 ds:pe-2 ds:py-1.5',\n 'ds:text-[var(--font-size-sm)] ds:font-medium ds:text-primary ds:outline-none ds:select-none',\n 'ds:data-[selected=true]:bg-muted',\n].join(' ');\n\nconst SELECT_ALL_VALUE = '__ui-multiselect-select-all__';\nconst CLEAR_ALL_VALUE = '__ui-multiselect-clear-all__';\n\ntype HTMLDivAttributes = HTMLAttributes<HTMLDivElement>;\n\n// Curated agent-readiness handle — see multi-select.agent.ts.\nexport interface MultiSelectHandle {\n getSelection: () => string[];\n getQuery: () => string;\n getIsOpen: () => boolean;\n setSelection: (values: string[]) => void;\n clearSelection: () => void;\n setQuery: (query: string) => void;\n open: () => void;\n close: () => void;\n}\n\nexport interface MultiSelectProps<T extends string = string>\n extends Omit<HTMLDivAttributes, 'onChange'>,\n VariantProps<typeof multiSelectVariants> {\n options: OptionShape<T>[];\n value?: T[];\n defaultValue?: T[];\n onChange?: (next: T[]) => void;\n onComplete?: (values: T[]) => void;\n placeholder?: string;\n maxSelections?: number;\n allowSelectAll?: boolean;\n allowClear?: boolean;\n filter?: (query: string, option: OptionShape<T>) => boolean;\n size?: 'sm' | 'md' | 'lg';\n disabled?: boolean;\n}\n\nconst MultiSelectImpl = forwardRef<HTMLDivElement, MultiSelectProps>(\n function MultiSelect(\n {\n options,\n value,\n defaultValue,\n onChange,\n onComplete,\n placeholder,\n maxSelections,\n allowSelectAll = false,\n allowClear = false,\n filter,\n size = 'md',\n disabled,\n className,\n id,\n ...divProps\n },\n ref,\n ) {\n const { t } = useTranslation();\n const ctx = useFormField();\n const inFormField = useContext(FormFieldContext) !== null;\n\n const [internalValue, setInternalValue] = useState<string[]>(\n defaultValue ?? [],\n );\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n\n const inputRef = useRef<HTMLInputElement>(null);\n const chipRefs = useRef<Array<HTMLSpanElement | null>>([]);\n const triggerRef = useRef<HTMLDivElement>(null);\n const composedRef = composeRefs<HTMLDivElement>(ref, triggerRef);\n\n const effectiveDisabled =\n (inFormField && ctx.disabled) || Boolean(disabled);\n const effectiveRequired = inFormField && ctx.required;\n const effectiveInvalid = inFormField && ctx.invalid;\n const describedBy =\n inFormField && ctx.describedBy ? ctx.describedBy : undefined;\n const triggerId = id ?? (inFormField ? ctx.id : undefined);\n\n const labelByValue = useMemo(() => {\n const map = new Map<string, string>();\n for (const option of options) map.set(option.value, option.label);\n return map;\n }, [options]);\n\n const atCap =\n typeof maxSelections === 'number' && currentValue.length >= maxSelections;\n\n const commit = (next: string[]): void => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n };\n\n const toggle = (val: string): void => {\n if (currentValue.includes(val)) {\n commit(currentValue.filter((v) => v !== val));\n return;\n }\n if (atCap) return;\n commit([...currentValue, val]);\n };\n\n const removeAt = (index: number): string[] => {\n const next = currentValue.filter((_, i) => i !== index);\n commit(next);\n return next;\n };\n\n const handleSelectAll = (): void => {\n const selectable = options\n .filter((o) => !o.disabled)\n .map((o) => o.value);\n const cap =\n typeof maxSelections === 'number' ? maxSelections : selectable.length;\n commit(selectable.slice(0, cap));\n };\n\n const handleClearAll = (): void => {\n commit([]);\n };\n\n const resolvedPlaceholder =\n placeholder ?? t('ui.inputs.multiSelect.placeholder', 'Select…');\n\n const filteredOptions = useMemo(() => {\n if (!query) return options;\n const needle = query.toLowerCase();\n return options.filter((option) => {\n if (filter) return filter(query, option);\n return option.label.toLowerCase().includes(needle);\n });\n }, [options, query, filter]);\n\n const groups = useMemo(\n () => groupOptions(filteredOptions),\n [filteredOptions],\n );\n\n const handleInputKeyDown = (\n e: KeyboardEvent<HTMLInputElement>,\n ): void => {\n const target = e.currentTarget;\n if (e.key === 'Backspace' && query === '' && currentValue.length > 0) {\n e.preventDefault();\n const removedIndex = currentValue.length - 1;\n const next = removeAt(removedIndex);\n const newLast = next.length - 1;\n if (newLast >= 0) {\n requestAnimationFrame(() => {\n chipRefs.current[newLast]?.focus();\n });\n }\n return;\n }\n const caretAtStart =\n target.selectionStart === 0 && target.selectionEnd === 0;\n if (\n (e.key === 'ArrowLeft' || e.key === 'ArrowRight') &&\n caretAtStart &&\n currentValue.length > 0\n ) {\n const isRTL = document.dir === 'rtl' || target.dir === 'rtl';\n const shouldNavigate =\n (isRTL && e.key === 'ArrowRight') ||\n (!isRTL && e.key === 'ArrowLeft');\n if (shouldNavigate) {\n e.preventDefault();\n const lastIdx = currentValue.length - 1;\n chipRefs.current[lastIdx]?.focus();\n }\n return;\n }\n if (e.key === 'Escape') {\n setOpen(false);\n return;\n }\n if (!open && (e.key === 'ArrowDown' || e.key === 'Enter')) {\n setOpen(true);\n }\n };\n\n const handleChipKeyDown =\n (index: number) =>\n (e: KeyboardEvent<HTMLSpanElement>): void => {\n if (\n e.key === 'Backspace' ||\n e.key === 'Delete' ||\n e.key === 'Enter' ||\n e.key === ' '\n ) {\n e.preventDefault();\n e.stopPropagation();\n const next = removeAt(index);\n if (next.length === 0) {\n requestAnimationFrame(() => inputRef.current?.focus());\n return;\n }\n const focusIdx = Math.min(index, next.length - 1);\n requestAnimationFrame(() => {\n chipRefs.current[focusIdx]?.focus();\n });\n return;\n }\n const isRTL = document.dir === 'rtl';\n const prevKey = isRTL ? 'ArrowRight' : 'ArrowLeft';\n const nextKey = isRTL ? 'ArrowLeft' : 'ArrowRight';\n if (e.key === prevKey) {\n e.preventDefault();\n const newIdx = Math.max(0, index - 1);\n chipRefs.current[newIdx]?.focus();\n return;\n }\n if (e.key === nextKey) {\n e.preventDefault();\n if (index < currentValue.length - 1) {\n chipRefs.current[index + 1]?.focus();\n } else {\n inputRef.current?.focus();\n }\n return;\n }\n if (e.key === 'Escape') {\n setOpen(false);\n inputRef.current?.focus();\n }\n };\n\n // ----- Chip overflow measurement -----\n const [visibleCount, setVisibleCount] = useState<number>(\n Number.POSITIVE_INFINITY,\n );\n\n useLayoutEffect(() => {\n const el = triggerRef.current;\n if (!el) return;\n\n const measure = (): void => {\n const chipEls = Array.from(\n el.querySelectorAll<HTMLElement>('[data-ui-chip=\"true\"]'),\n );\n if (chipEls.length === 0) {\n setVisibleCount(Number.POSITIVE_INFINITY);\n return;\n }\n const firstTop = chipEls[0].offsetTop;\n let firstRowCount = 0;\n for (const chip of chipEls) {\n if (chip.offsetTop === firstTop) firstRowCount++;\n else break;\n }\n if (firstRowCount === chipEls.length) {\n setVisibleCount(Number.POSITIVE_INFINITY);\n } else {\n setVisibleCount(Math.max(1, firstRowCount - 1));\n }\n };\n\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, [currentValue.length, size]);\n\n const chips = currentValue.map((val) => ({\n value: val,\n label: labelByValue.get(val) ?? val,\n }));\n\n const showAllChips =\n visibleCount === Number.POSITIVE_INFINITY ||\n visibleCount >= chips.length;\n const visibleChips = showAllChips ? chips : chips.slice(0, visibleCount);\n const overflowChips = showAllChips ? [] : chips.slice(visibleCount);\n const overflowCount = overflowChips.length;\n\n const handleTriggerClick = (event: MouseEvent<HTMLDivElement>): void => {\n if (effectiveDisabled) return;\n // Ignore clicks on chips/buttons so they can manage their own focus.\n const target = event.target as HTMLElement;\n if (target.closest('[data-ui-chip=\"true\"]')) return;\n if (target.closest('[data-ui-chip-dismiss=\"true\"]')) return;\n setOpen(true);\n inputRef.current?.focus();\n };\n\n const handleOpenChange = (next: boolean): void => {\n if (effectiveDisabled) {\n setOpen(false);\n return;\n }\n setOpen(next);\n if (!next) {\n setQuery('');\n onComplete?.(currentValue);\n }\n };\n\n const hasActionRow = allowSelectAll || allowClear;\n\n const counterMessage = t('ui.inputs.multiSelect.selected', {\n count: currentValue.length,\n defaultValue: `${currentValue.length} selected`,\n });\n\n const { onClick: onClickProp, ...restDivProps } = divProps;\n\n return (\n <Command shouldFilter={false} label={counterMessage}>\n <Popover.Root open={open} onOpenChange={handleOpenChange}>\n <Popover.Anchor asChild>\n <div\n ref={composedRef}\n className={multiSelectVariants({ size, className })}\n aria-disabled={effectiveDisabled || undefined}\n aria-invalid={effectiveInvalid || undefined}\n data-component=\"multi-select\"\n data-component-id={id}\n onClick={(event) => {\n onClickProp?.(event);\n handleTriggerClick(event);\n }}\n {...restDivProps}\n >\n {visibleChips.map((chip, idx) => (\n <span\n key={chip.value}\n ref={(el) => {\n chipRefs.current[idx] = el;\n }}\n tabIndex={effectiveDisabled ? -1 : 0}\n data-ui-chip=\"true\"\n className={chipVariants({ size })}\n onKeyDown={handleChipKeyDown(idx)}\n aria-label={chip.label}\n >\n <span>{chip.label}</span>\n <button\n type=\"button\"\n tabIndex={-1}\n data-ui-chip-dismiss=\"true\"\n aria-label={t('ui.inputs.multiSelect.remove', {\n label: chip.label,\n defaultValue: `Remove ${chip.label}`,\n })}\n disabled={effectiveDisabled}\n onClick={(event) => {\n event.stopPropagation();\n removeAt(idx);\n requestAnimationFrame(() => inputRef.current?.focus());\n }}\n className={chipDismissClasses}\n >\n <X aria-hidden=\"true\" className=\"ds:size-3.5\" />\n </button>\n </span>\n ))}\n {overflowCount > 0 ? (\n <Tooltip\n label={overflowChips.map((c) => c.label).join(', ')}\n delayDuration={200}\n >\n <span\n className={chipVariants({ size })}\n tabIndex={0}\n role=\"button\"\n aria-label={t('ui.inputs.multiSelect.overflow', {\n count: overflowCount,\n defaultValue: `+${overflowCount} more`,\n })}\n >\n <span>\n {t('ui.inputs.multiSelect.overflow', {\n count: overflowCount,\n defaultValue: `+${overflowCount} more`,\n })}\n </span>\n </span>\n </Tooltip>\n ) : null}\n <Command.Input\n ref={inputRef}\n value={query}\n onValueChange={setQuery}\n onKeyDown={handleInputKeyDown}\n onFocus={() => {\n if (!effectiveDisabled) setOpen(true);\n }}\n placeholder={\n currentValue.length === 0 ? resolvedPlaceholder : ''\n }\n id={triggerId}\n aria-describedby={describedBy}\n aria-invalid={effectiveInvalid || undefined}\n aria-required={effectiveRequired || undefined}\n disabled={effectiveDisabled}\n className={[\n 'ds:flex-1 ds:min-w-[6rem] ds:bg-transparent ds:outline-none',\n 'ds:placeholder:text-muted-foreground ds:text-start',\n 'ds:disabled:cursor-not-allowed',\n ].join(' ')}\n />\n </div>\n </Popover.Anchor>\n <Popover.Portal>\n <Popover.Content\n onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n align=\"start\"\n sideOffset={4}\n className={popoverContentClasses}\n >\n <Command.List\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-label={resolvedPlaceholder}\n className=\"ds:max-h-[20rem] ds:overflow-y-auto ds:p-1\"\n >\n {hasActionRow ? (\n <Command.Group>\n {allowSelectAll ? (\n <Command.Item\n value={SELECT_ALL_VALUE}\n onSelect={handleSelectAll}\n className={actionItemClasses}\n >\n {t('ui.inputs.multiSelect.selectAll', 'Select all')}\n </Command.Item>\n ) : null}\n {allowClear ? (\n <Command.Item\n value={CLEAR_ALL_VALUE}\n onSelect={handleClearAll}\n className={actionItemClasses}\n >\n {t('ui.inputs.multiSelect.clearAll', 'Clear all')}\n </Command.Item>\n ) : null}\n </Command.Group>\n ) : null}\n <Command.Empty className=\"ds:ps-2 ds:pe-2 ds:py-2 type-body-sm ds:text-muted-foreground\">\n {t('ui.inputs.multiSelect.noOptions', 'No options found')}\n </Command.Empty>\n {groups.map(({ group, items }, gi) => {\n const body = items.map((option) => {\n const isSelected = currentValue.includes(option.value);\n const isCapped = !isSelected && atCap;\n const isDisabled =\n Boolean(option.disabled) || isCapped;\n const item = (\n <Command.Item\n key={option.value}\n value={option.value}\n disabled={isDisabled}\n onSelect={() => {\n if (isDisabled) return;\n toggle(option.value);\n }}\n aria-selected={isSelected}\n aria-disabled={isDisabled || undefined}\n className={commandItemClasses}\n >\n <span\n className={[\n 'ds:inline-flex ds:items-center ds:justify-center ds:me-2 ds:shrink-0',\n 'ds:size-4 ds:rounded-[var(--radius-sm)] ds:border ds:border-border',\n isSelected\n ? 'ds:bg-primary ds:border-primary ds:text-primary-foreground'\n : 'ds:bg-background',\n ].join(' ')}\n aria-hidden=\"true\"\n >\n {isSelected ? <Check className=\"ds:size-3.5\" /> : null}\n </span>\n <span className=\"ds:flex-1 ds:text-start\">{option.label}</span>\n </Command.Item>\n );\n if (isCapped) {\n return (\n <Tooltip\n key={option.value}\n label={t('ui.inputs.multiSelect.maxReached', {\n count: maxSelections,\n defaultValue: `Maximum ${maxSelections} selections`,\n })}\n delayDuration={200}\n >\n {item}\n </Tooltip>\n );\n }\n return item;\n });\n if (!group) {\n return (\n <Command.Group key={`group-${gi}`}>{body}</Command.Group>\n );\n }\n return (\n <Command.Group\n key={`group-${group}`}\n heading={group}\n className=\"ds:[&_[cmdk-group-heading]]:ps-2 ds:[&_[cmdk-group-heading]]:pe-2 ds:[&_[cmdk-group-heading]]:py-1 ds:[&_[cmdk-group-heading]]:type-eyebrow ds:[&_[cmdk-group-heading]]:text-muted-foreground\"\n >\n {body}\n </Command.Group>\n );\n })}\n </Command.List>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </Command>\n );\n },\n);\nMultiSelectImpl.displayName = 'MultiSelect';\n\ninterface MultiSelectComponent {\n <T extends string = string>(\n props: MultiSelectProps<T> & { ref?: Ref<HTMLDivElement> },\n ): ReactElement | null;\n displayName?: string;\n}\n\nexport const MultiSelect = MultiSelectImpl as unknown as MultiSelectComponent;\n\nexport { multiSelectVariants };\n","import type { AgentAdapter } from '../../agent/types';\nimport type { MultiSelectHandle } from './multi-select';\n\nexport const multiSelectAgent: AgentAdapter<MultiSelectHandle> = {\n id: 'multi-select',\n capabilities: ['select_multiple', 'filter', 'open', 'close'],\n state: {\n selection: {\n type: 'string[]',\n description: 'Values of currently-selected options.',\n read: (handle) => handle.getSelection(),\n },\n query: {\n type: 'string',\n description: 'Current filter query.',\n read: (handle) => handle.getQuery(),\n },\n isOpen: {\n type: 'boolean',\n description: 'True when the option list is visible.',\n read: (handle) => handle.getIsOpen(),\n },\n },\n actions: {\n set_selection: {\n safety: 'read',\n argsType: '{ values: string[] }',\n description: 'Replace the current selection with the given list of values.',\n invoke: (handle, args: { values: string[] }) => {\n handle.setSelection(args.values);\n },\n },\n clear_selection: {\n safety: 'read',\n description: 'Clear the current selection.',\n invoke: (handle) => {\n handle.clearSelection();\n },\n },\n apply_filter: {\n safety: 'read',\n argsType: '{ query: string }',\n description: 'Set the filter query for the option list.',\n invoke: (handle, args: { query: string }) => {\n handle.setQuery(args.query);\n },\n },\n open: {\n safety: 'read',\n description: 'Open the option list.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n description: 'Close the option list.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'multi-select' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description: 'Each option emits its value as data-option-id.',\n },\n },\n};\n"],"names":["multiSelectVariants","cva","INPUT_SURFACE_CHROME","INPUT_SURFACE_TEXT","chipVariants","chipDismissClasses","popoverContentClasses","commandItemClasses","actionItemClasses","SELECT_ALL_VALUE","CLEAR_ALL_VALUE","MultiSelectImpl","forwardRef","options","value","defaultValue","onChange","onComplete","placeholder","maxSelections","allowSelectAll","allowClear","filter","size","disabled","className","id","divProps","ref","t","useTranslation","ctx","useFormField","inFormField","useContext","FormFieldContext","internalValue","setInternalValue","useState","isControlled","currentValue","open","setOpen","query","setQuery","inputRef","useRef","chipRefs","triggerRef","composedRef","composeRefs","effectiveDisabled","effectiveRequired","effectiveInvalid","describedBy","triggerId","labelByValue","useMemo","map","option","atCap","commit","next","toggle","val","v","removeAt","index","_","i","handleSelectAll","selectable","o","cap","handleClearAll","resolvedPlaceholder","filteredOptions","needle","groups","groupOptions","handleInputKeyDown","target","removedIndex","newLast","_a","caretAtStart","isRTL","lastIdx","handleChipKeyDown","e","focusIdx","prevKey","nextKey","newIdx","_b","_c","_d","visibleCount","setVisibleCount","useLayoutEffect","el","measure","chipEls","firstTop","firstRowCount","chip","ro","chips","showAllChips","visibleChips","overflowChips","overflowCount","handleTriggerClick","event","handleOpenChange","hasActionRow","counterMessage","onClickProp","restDivProps","jsx","Command","jsxs","Popover","idx","X","Tooltip","c","group","items","gi","body","isSelected","isCapped","isDisabled","item","Check","MultiSelect","multiSelectAgent","handle","args"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-menu.agent-D69ND6Qq.js","sources":["../../src/components/navigation-menu/navigation-menu.tsx","../../src/components/navigation-menu/navigation-menu.agent.ts"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ElementRef,\n} from 'react';\nimport * as RadixNavigationMenu from '@radix-ui/react-navigation-menu';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ChevronDown } from 'lucide-react';\nimport { useDirection } from '../_shared/use-direction';\n// SkipLink moved to its own module — re-imported for the navigation-menu\n// barrel's backwards-compat re-export. New consumers should import it\n// directly from `@alfadocs/ui-kit`.\nimport { SkipLink } from '../skip-link';\n\n/* -------------------------------------------------------------------- */\n/* Root */\n/* -------------------------------------------------------------------- */\n\nconst rootClasses = [\n 'ds:relative ds:z-[var(--z-dropdown)]',\n 'ds:flex ds:max-w-max ds:items-center ds:justify-center',\n].join(' ');\n\nexport interface NavigationMenuProps\n extends ComponentPropsWithoutRef<typeof RadixNavigationMenu.Root> {\n 'aria-label'?: string;\n /**\n * Consumer-supplied instance id, surfaced as `data-component-id` so an\n * agent / UI bridge can address this instance.\n */\n id?: string;\n}\n\n/**\n * Imperative handle for agent-readiness. Exposes the active top-level\n * item id + open/closed state, and lets external drivers select / open /\n * close panels by item id.\n */\nexport interface NavigationMenuHandle {\n getActiveItem: () => string | null;\n getIsOpen: () => boolean;\n selectItem: (id: string) => void;\n open: (id: string) => void;\n close: () => void;\n}\n\nconst NavigationMenu = forwardRef<NavigationMenuHandle, NavigationMenuProps>(\n ({ 'aria-label': ariaLabel, className, children, id, value, defaultValue, onValueChange, ...rest }, ref) => {\n const { t } = useTranslation();\n const rootRef = useRef<ElementRef<typeof RadixNavigationMenu.Root>>(null);\n const dir = useDirection(rootRef);\n\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? '',\n );\n const activeValue = isControlled ? value : internalValue;\n\n const handleValueChange = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n const handle = useMemo<NavigationMenuHandle>(\n () => ({\n getActiveItem: () => (activeValue ? activeValue : null),\n getIsOpen: () => Boolean(activeValue),\n selectItem: (nextId: string) => handleValueChange(nextId),\n open: (nextId: string) => handleValueChange(nextId),\n close: () => handleValueChange(''),\n }),\n [activeValue, handleValueChange],\n );\n useImperativeHandle(ref, () => handle, [handle]);\n\n return (\n <RadixNavigationMenu.Root\n ref={rootRef}\n dir={dir}\n aria-label={ariaLabel ?? t('ui.navigation.nav.label')}\n className={[rootClasses, className].filter(Boolean).join(' ')}\n id={id}\n data-component=\"navigation-menu\"\n data-component-id={id}\n value={activeValue}\n onValueChange={handleValueChange}\n {...rest}\n >\n {children}\n <NavigationMenuViewport />\n </RadixNavigationMenu.Root>\n );\n },\n);\nNavigationMenu.displayName = 'NavigationMenu';\n\n/* -------------------------------------------------------------------- */\n/* List + Item */\n/* -------------------------------------------------------------------- */\n\nconst listClasses = [\n 'ds:group ds:flex ds:flex-1',\n 'ds:list-none ds:items-center ds:justify-center',\n 'ds:gap-[var(--spacing-xs)]',\n 'ds:m-0 ds:ps-0',\n].join(' ');\n\nconst NavigationMenuList = forwardRef<\n ElementRef<typeof RadixNavigationMenu.List>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.List>\n>(({ className, ...rest }, ref) => (\n <RadixNavigationMenu.List\n ref={ref}\n className={[listClasses, className].filter(Boolean).join(' ')}\n {...rest}\n />\n));\nNavigationMenuList.displayName = 'NavigationMenuList';\n\nexport interface NavigationMenuItemProps\n extends ComponentPropsWithoutRef<typeof RadixNavigationMenu.Item> {\n /**\n * Stable opaque id of this top-level item. When provided, emitted as\n * `data-nav-id` so an agent / UI bridge can target the item. Distinct\n * from Radix's internal `value`, which controls open-state matching;\n * pass the same string to both if you want them aligned.\n */\n navId?: string;\n}\n\nconst NavigationMenuItem = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Item>,\n NavigationMenuItemProps\n>(({ navId, ...rest }, ref) => (\n <RadixNavigationMenu.Item ref={ref} data-nav-id={navId} {...rest} />\n));\nNavigationMenuItem.displayName = 'NavigationMenuItem';\n\n/* -------------------------------------------------------------------- */\n/* Trigger */\n/* -------------------------------------------------------------------- */\n\nconst triggerClasses = [\n 'ds:group ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--font-size-sm)] ds:font-[var(--font-weight-medium)]',\n 'ds:text-[var(--foreground)]',\n 'ds:hover:bg-[var(--muted)]/20',\n 'ds:data-[state=open]:bg-[var(--muted)]/20',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:gap-[var(--spacing-xs)]',\n].join(' ');\n\nconst chevronClasses = [\n 'ds:size-3 ds:transition-transform ds:duration-[var(--animation-duration)]',\n 'ds:group-data-[state=open]:rotate-180',\n 'ds:rtl:-scale-x-100 ds:motion-reduce:transition-none',\n].join(' ');\n\nconst NavigationMenuTrigger = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Trigger>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.Trigger>\n>(({ className, children, ...rest }, ref) => (\n <RadixNavigationMenu.Trigger\n ref={ref}\n className={[triggerClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n <ChevronDown aria-hidden=\"true\" className={chevronClasses} />\n </RadixNavigationMenu.Trigger>\n));\nNavigationMenuTrigger.displayName = 'NavigationMenuTrigger';\n\n/* -------------------------------------------------------------------- */\n/* Content */\n/* -------------------------------------------------------------------- */\n\nconst contentBase = [\n 'ds:absolute ds:start-0 ds:top-0 ds:w-full',\n 'ds:md:w-auto',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:p-[var(--spacing-md)]',\n 'ds:data-[motion^=from-]:animate-in ds:data-[motion^=to-]:animate-out',\n // Logical start/end motion mapped onto physical Tailwind animation utilities.\n // The `rtl:` variants mirror the slide direction so `from-start` enters from\n // the inline-start edge in both LTR and RTL.\n 'ds:data-[motion=from-start]:slide-in-from-left-52 ds:rtl:data-[motion=from-start]:slide-in-from-right-52',\n 'ds:data-[motion=from-end]:slide-in-from-right-52 ds:rtl:data-[motion=from-end]:slide-in-from-left-52',\n 'ds:data-[motion=to-start]:slide-out-to-left-52 ds:rtl:data-[motion=to-start]:slide-out-to-right-52',\n 'ds:data-[motion=to-end]:slide-out-to-right-52 ds:rtl:data-[motion=to-end]:slide-out-to-left-52',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst contentVariants = cva(contentBase, {\n variants: {\n layout: {\n simple: 'ds:min-w-[16rem]',\n mega: 'ds:grid ds:grid-cols-[repeat(auto-fit,minmax(12rem,1fr))] ds:gap-[var(--spacing-md)] ds:min-w-[32rem]',\n },\n },\n defaultVariants: { layout: 'simple' },\n});\n\nexport interface NavigationMenuContentProps\n extends ComponentPropsWithoutRef<typeof RadixNavigationMenu.Content>,\n VariantProps<typeof contentVariants> {}\n\nconst NavigationMenuContent = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Content>,\n NavigationMenuContentProps\n>(({ layout, className, ...rest }, ref) => (\n <RadixNavigationMenu.Content\n ref={ref}\n className={contentVariants({ layout, className })}\n {...rest}\n />\n));\nNavigationMenuContent.displayName = 'NavigationMenuContent';\n\n/* -------------------------------------------------------------------- */\n/* Link */\n/* -------------------------------------------------------------------- */\n\nconst linkClasses = [\n 'ds:block ds:rounded-[var(--radius-sm)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:py-[var(--spacing-xs)]',\n 'ds:text-[var(--font-size-sm)] ds:font-[var(--font-weight-medium)]',\n 'ds:text-[var(--foreground)]',\n 'ds:no-underline',\n 'ds:hover:bg-[var(--muted)]/20',\n 'ds:data-[active]:underline ds:data-[active]:underline-offset-[var(--spacing-xs)]',\n 'ds:aria-[current=page]:underline ds:aria-[current=page]:underline-offset-[var(--spacing-xs)]',\n 'ds:aria-[current=page]:font-[var(--font-weight-semibold)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n].join(' ');\n\nexport interface NavigationMenuLinkProps\n extends ComponentPropsWithoutRef<typeof RadixNavigationMenu.Link> {\n /** Render through Radix Slot so routers can inject their own link element. */\n asChild?: boolean;\n}\n\nconst NavigationMenuLink = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Link>,\n NavigationMenuLinkProps\n>(({ asChild = false, className, children, ...rest }, ref) => (\n <RadixNavigationMenu.Link\n ref={ref}\n asChild={asChild}\n className={asChild ? undefined : [linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {asChild ? (\n <Slot className={[linkClasses, className].filter(Boolean).join(' ')}>\n {children}\n </Slot>\n ) : (\n children\n )}\n </RadixNavigationMenu.Link>\n));\nNavigationMenuLink.displayName = 'NavigationMenuLink';\n\n/* -------------------------------------------------------------------- */\n/* Indicator + Viewport */\n/* -------------------------------------------------------------------- */\n\nconst indicatorClasses = [\n 'ds:top-full ds:z-[1] ds:flex ds:h-2 ds:items-end ds:justify-center ds:overflow-hidden',\n 'ds:data-[state=visible]:animate-in ds:data-[state=hidden]:animate-out',\n 'ds:data-[state=visible]:fade-in ds:data-[state=hidden]:fade-out',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst NavigationMenuIndicator = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Indicator>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.Indicator>\n>(({ className, ...rest }, ref) => (\n <RadixNavigationMenu.Indicator\n ref={ref}\n className={[indicatorClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n <span className=\"ds:relative ds:top-[60%] ds:h-2 ds:w-2 ds:rotate-45 ds:rounded-tl-sm ds:bg-[var(--border)]\" />\n </RadixNavigationMenu.Indicator>\n));\nNavigationMenuIndicator.displayName = 'NavigationMenuIndicator';\n\nconst viewportClasses = [\n 'ds:origin-top-center ds:relative ds:mt-[var(--spacing-xs)]',\n 'ds:h-[var(--radix-navigation-menu-viewport-height)]',\n 'ds:w-full ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=open]:zoom-in-90 ds:data-[state=closed]:zoom-out-95',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst NavigationMenuViewport = forwardRef<\n ElementRef<typeof RadixNavigationMenu.Viewport>,\n ComponentPropsWithoutRef<typeof RadixNavigationMenu.Viewport>\n>(({ className, ...rest }, ref) => (\n <div className=\"ds:absolute ds:start-0 ds:top-full ds:flex ds:justify-center\">\n <RadixNavigationMenu.Viewport\n ref={ref}\n className={[viewportClasses, className].filter(Boolean).join(' ')}\n {...rest}\n />\n </div>\n));\nNavigationMenuViewport.displayName = 'NavigationMenuViewport';\n\n/* -------------------------------------------------------------------- */\n/* Exports */\n/* -------------------------------------------------------------------- */\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuContent,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n SkipLink,\n};\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — NavigationMenu. */\n/* */\n/* NavigationMenu is the primary top-bar navigation. It exposes the */\n/* currently-active item id (when the consumer routes through the kit), */\n/* the open/closed state of its dropdown, and lets an agent open, close, */\n/* or select a top-level item by id. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the full contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { NavigationMenuHandle } from './navigation-menu';\n\nexport const navigationMenuAgent: AgentAdapter<NavigationMenuHandle> = {\n id: 'navigation-menu',\n capabilities: ['select_single', 'navigate', 'open', 'close'],\n state: {\n activeItem: {\n type: 'string | null',\n descriptionKey: 'ui.agent.navigationMenu.state.activeItem',\n description: 'Id of the currently-active top-level navigation item, or null when none is active.',\n read: (handle) => handle.getActiveItem() ?? null,\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.navigationMenu.state.isOpen',\n description: 'Whether a dropdown / mega-menu panel is currently open.',\n read: (handle) => handle.getIsOpen(),\n },\n },\n actions: {\n select_item: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.navigationMenu.actions.selectItem',\n description: 'Activate (open) the top-level item with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.selectItem(args.id);\n },\n },\n open: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.navigationMenu.actions.open',\n description: 'Open the dropdown / mega-menu panel for the given top-level item id.',\n invoke: (handle, args: { id: string }) => {\n handle.open(args.id);\n },\n },\n close: {\n safety: 'read',\n descriptionKey: 'ui.agent.navigationMenu.actions.close',\n description: 'Close any open dropdown / mega-menu panel.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'navigation-menu',\n description: 'Marks the NavigationMenu root.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop. Required to address a specific menu from the agent.',\n },\n item: {\n attr: 'data-nav-id',\n description: 'Stable opaque id of a top-level navigation item. Selection / open targets this attribute.',\n },\n },\n};\n"],"names":["rootClasses","NavigationMenu","forwardRef","ariaLabel","className","children","id","value","defaultValue","onValueChange","rest","ref","t","useTranslation","rootRef","useRef","dir","useDirection","isControlled","internalValue","setInternalValue","useState","activeValue","handleValueChange","useCallback","next","handle","useMemo","nextId","useImperativeHandle","jsxs","RadixNavigationMenu","NavigationMenuViewport","listClasses","NavigationMenuList","jsx","NavigationMenuItem","navId","triggerClasses","chevronClasses","NavigationMenuTrigger","ChevronDown","contentBase","contentVariants","cva","NavigationMenuContent","layout","linkClasses","NavigationMenuLink","asChild","Slot","indicatorClasses","NavigationMenuIndicator","viewportClasses","navigationMenuAgent","args"],"mappings":"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"}