@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":"slot-grid-D_l5VsHG.js","sources":["../../node_modules/date-fns/parseISO.js","../../src/components/slot-grid/slot-grid.tsx"],"sourcesContent":["import {\n millisecondsInHour,\n millisecondsInMinute,\n} from \"./constants.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const invalidDate = () => constructFrom(options?.in, NaN);\n\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(+date)) return invalidDate();\n\n const timestamp = +date;\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) return invalidDate();\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) return invalidDate();\n } else {\n const tmpDate = new Date(timestamp + time);\n const result = toDate(0, options?.in);\n result.setFullYear(\n tmpDate.getUTCFullYear(),\n tmpDate.getUTCMonth(),\n tmpDate.getUTCDate(),\n );\n result.setHours(\n tmpDate.getUTCHours(),\n tmpDate.getUTCMinutes(),\n tmpDate.getUTCSeconds(),\n tmpDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return toDate(timestamp + time + offset, options?.in);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n","/* ------------------------------------------------------------------ */\n/* SlotGrid — multi-day time-slot picker for patient booking. */\n/* */\n/* Renders N day columns side-by-side. Each column shows a day header */\n/* (formatted via `Intl.DateTimeFormat(locale)`) plus a vertical list */\n/* of slot buttons. Long days collapse to `maxInitialSlotsPerDay` and */\n/* reveal the rest via a \"Show more\" button (progressive disclosure). */\n/* */\n/* Navigation arrows (`onPreviousDays` / `onNextDays`) let the consumer */\n/* page the window of days; the optional \"Next available\" CTA jumps to */\n/* the first day with an open slot. */\n/* */\n/* Purely presentational — no business logic, no data fetching. Date */\n/* comparisons use `date-fns` (never moment.js) and the rendered labels */\n/* come exclusively from `Intl.DateTimeFormat` or the `ui.slotGrid` */\n/* namespace via `useTranslation()`. */\n/* ------------------------------------------------------------------ */\n\nimport {\n forwardRef,\n useCallback,\n useId,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { isSameDay, parseISO } from 'date-fns';\nimport { Button } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { Skeleton } from '../skeleton/skeleton';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type SlotGridState = 'default' | 'loading' | 'disabled' | 'empty';\n\nexport type SlotGridSize = 'sm' | 'md' | 'lg';\n\nexport interface SlotGridSlot {\n /** Stable identity — used by consumers to resolve selection. */\n id: string;\n /** Slot start — ISO string or `Date`. Rendered via `Intl.DateTimeFormat`. */\n start: string | Date;\n /** Optional slot end — if omitted only the start time is announced. */\n end?: string | Date;\n /** Defaults to `true`. Unavailable slots render disabled and are not focusable. */\n available?: boolean;\n /** Override the default `Intl`-formatted time label. */\n label?: string;\n /** Override the accessible name of the slot button. */\n ariaLabel?: string;\n}\n\nexport interface SlotGridDay {\n /** The calendar day the column represents. */\n date: string | Date;\n /** Slots for this day, in chronological order. Empty array ⇒ empty day. */\n slots: SlotGridSlot[];\n /** Override the default `Intl`-formatted day header. */\n label?: string;\n}\n\nexport interface SlotGridProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'aria-label' | 'onSelect'>,\n VariantProps<typeof slotGridVariants> {\n /** Days to render, one column per entry. */\n days: SlotGridDay[];\n /** Visual / interactive state. Defaults to `'default'`. */\n state?: SlotGridState;\n /** Density of the slot buttons and day headers. Defaults to `'md'`. */\n size?: SlotGridSize;\n /** Id of the currently selected slot (controlled). */\n selectedSlotId?: string;\n /**\n * Initial number of slots to render per day before the \"Show more\"\n * progressive-disclosure control collapses the rest. Defaults to `6`.\n */\n maxInitialSlotsPerDay?: number;\n /**\n * BCP-47 locale tag for `Intl.DateTimeFormat`. Defaults to the active\n * i18next language.\n */\n locale?: string;\n /** IANA time zone for `Intl.DateTimeFormat`. Optional. */\n timeZone?: string;\n /** Whether the \"previous days\" navigation arrow should be enabled. */\n hasPrevious?: boolean;\n /** Whether the \"next days\" navigation arrow should be enabled. */\n hasNext?: boolean;\n /**\n * When `true`, renders the \"Next available\" CTA at the end of the\n * toolbar. Only emits a callback — the consumer owns the navigation.\n */\n showNextAvailable?: boolean;\n /** Accessible label for the outer grid region. */\n ariaLabel?: string;\n /** Fires when the user selects an available slot. */\n onSlotSelect?: (slot: SlotGridSlot, day: SlotGridDay) => void;\n /** Fires when the user clicks the \"previous days\" arrow. */\n onPreviousDays?: () => void;\n /** Fires when the user clicks the \"next days\" arrow. */\n onNextDays?: () => void;\n /** Fires when the user clicks a day's \"Show more\" button. */\n onShowMore?: (day: SlotGridDay) => void;\n /** Fires when the user clicks the \"Next available\" CTA. */\n onJumpToNextAvailable?: () => void;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst slotGridVariants = cva(\n [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]',\n 'ds:text-[var(--foreground)]',\n 'ds:w-full',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:text-[length:var(--font-size-sm)]',\n md: 'ds:text-[length:var(--font-size-base)]',\n lg: 'ds:text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst toolbarVariants = cva(\n 'ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:w-full',\n);\n\n/**\n * Column-count is dynamic (1–12), so it is declared as a full CVA variant —\n * this keeps every `grid-cols-N` string statically visible to Tailwind's\n * JIT and keeps the variant table inside CVA rather than hand-rolled.\n */\nconst COLS_MAX = 12;\n\nconst columnsVariants = cva(\n 'ds:grid ds:gap-[var(--spacing-sm)] ds:w-full ds:auto-rows-min ds:items-start',\n {\n variants: {\n cols: {\n 1: 'ds:grid-cols-1',\n 2: 'ds:grid-cols-2',\n 3: 'ds:grid-cols-3',\n 4: 'ds:grid-cols-4',\n 5: 'ds:grid-cols-5',\n 6: 'ds:grid-cols-6',\n 7: 'ds:grid-cols-7',\n 8: 'ds:grid-cols-8',\n 9: 'ds:grid-cols-9',\n 10: 'ds:grid-cols-10',\n 11: 'ds:grid-cols-11',\n 12: 'ds:grid-cols-12',\n },\n },\n defaultVariants: { cols: 1 },\n },\n);\n\ntype ColumnsCount = NonNullable<VariantProps<typeof columnsVariants>['cols']>;\n\nfunction clampCols(count: number): ColumnsCount {\n return Math.max(1, Math.min(count, COLS_MAX)) as ColumnsCount;\n}\n\nconst columnVariants = cva(\n [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:bg-[var(--card)]',\n 'ds:border ds:border-[var(--border)]',\n 'ds:min-w-0',\n ].join(' '),\n);\n\nconst dayHeaderVariants = cva(\n [\n 'ds:font-[var(--font-weight-semibold)]',\n 'ds:text-[var(--foreground)]',\n 'ds:text-start',\n 'ds:truncate',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:text-[length:var(--font-size-xs)]',\n md: 'ds:text-[length:var(--font-size-sm)]',\n lg: 'ds:text-[length:var(--font-size-base)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst slotListVariants = cva(\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:w-full ds:m-0 ds:p-0 ds:list-none',\n);\n\nconst slotButtonVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:w-full',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:font-[var(--font-weight-medium)]',\n 'ds:border ds:border-[var(--border)]',\n 'ds:bg-[var(--background)]',\n 'ds:text-[var(--foreground)]',\n 'ds:transition-colors',\n 'ds:focus-visible:outline-[var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)]',\n 'ds:focus-visible:outline-offset-[var(--focus-ring-offset)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed',\n 'ds:aria-disabled:opacity-50 ds:aria-disabled:cursor-not-allowed',\n 'ds:hover:bg-[var(--muted)] ds:hover:text-[var(--foreground)]',\n 'ds:aria-pressed:bg-[var(--primary)] ds:aria-pressed:text-[var(--primary-foreground)]',\n 'ds:aria-pressed:border-[var(--primary)]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:text-[length:var(--font-size-xs)] ds:h-8',\n md: 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:text-[length:var(--font-size-sm)] ds:h-10',\n lg: 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:text-[length:var(--font-size-base)] ds:h-12',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction toDate(value: string | Date): Date {\n return value instanceof Date ? value : parseISO(value);\n}\n\n/** Is `a` the same calendar day as `b`? Uses `date-fns`, locale-agnostic. */\nexport function isSameDate(a: string | Date, b: string | Date): boolean {\n return isSameDay(toDate(a), toDate(b));\n}\n\n/** Find the first day in a list that has at least one available slot. */\nexport function findFirstAvailable(\n days: SlotGridDay[],\n): { day: SlotGridDay; slot: SlotGridSlot } | undefined {\n for (const day of days) {\n const slot = day.slots.find((s) => s.available !== false);\n if (slot) return { day, slot };\n }\n return undefined;\n}\n\nfunction formatDayHeader(date: Date, locale: string, timeZone?: string): string {\n try {\n return new Intl.DateTimeFormat(locale, {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n timeZone,\n }).format(date);\n } catch {\n return new Intl.DateTimeFormat('en', {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n }).format(date);\n }\n}\n\nfunction formatSlotTime(\n slot: SlotGridSlot,\n locale: string,\n timeZone?: string,\n): string {\n if (slot.label !== undefined) return slot.label;\n const start = toDate(slot.start);\n try {\n const fmt = new Intl.DateTimeFormat(locale, {\n hour: 'numeric',\n minute: '2-digit',\n timeZone,\n });\n if (slot.end) {\n const end = toDate(slot.end);\n if (typeof fmt.formatRange === 'function') {\n try {\n return fmt.formatRange(start, end);\n } catch {\n /* fall through */\n }\n }\n return `${fmt.format(start)} – ${fmt.format(end)}`;\n }\n return fmt.format(start);\n } catch {\n return start.toISOString();\n }\n}\n\nfunction formatSlotAriaLabel(\n slot: SlotGridSlot,\n day: SlotGridDay,\n locale: string,\n timeZone: string | undefined,\n template: (opts: { time: string; day: string }) => string,\n): string {\n if (slot.ariaLabel !== undefined) return slot.ariaLabel;\n const time = formatSlotTime(slot, locale, timeZone);\n const dayLabel =\n day.label !== undefined ? day.label : formatDayHeader(toDate(day.date), locale, timeZone);\n return template({ time, day: dayLabel });\n}\n\n/* ------------------------------------------------------------------ */\n/* Glyphs — logical-direction arrows */\n/* ------------------------------------------------------------------ */\n\nfunction ChevronStartIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"ds:size-4\"\n >\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n );\n}\n\nfunction ChevronEndIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"ds:size-4\"\n >\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const SlotGrid = forwardRef<HTMLDivElement, SlotGridProps>(\n (\n {\n days,\n state = 'default',\n size = 'md',\n selectedSlotId,\n maxInitialSlotsPerDay = 6,\n locale: localeProp,\n timeZone,\n hasPrevious = false,\n hasNext = false,\n showNextAvailable = false,\n ariaLabel,\n onSlotSelect,\n onPreviousDays,\n onNextDays,\n onShowMore,\n onJumpToNextAvailable,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const locale = localeProp ?? i18n.language ?? 'en';\n const idBase = useId();\n\n const [expanded, setExpanded] = useState<Record<string, boolean>>({});\n\n const isLoading = state === 'loading';\n const isDisabled = state === 'disabled';\n const isInteractionSuppressed = isLoading || isDisabled;\n const isEmpty =\n state === 'empty' ||\n days.length === 0 ||\n days.every((day) => day.slots.length === 0);\n\n const resolvedAriaLabel = ariaLabel ?? t('slotGrid.ariaLabel');\n\n const handleSlotClick = useCallback(\n (slot: SlotGridSlot, day: SlotGridDay) => {\n if (isInteractionSuppressed) return;\n if (slot.available === false) return;\n onSlotSelect?.(slot, day);\n },\n [isInteractionSuppressed, onSlotSelect],\n );\n\n const handleShowMore = useCallback(\n (day: SlotGridDay, key: string) => {\n setExpanded((prev) => ({ ...prev, [key]: true }));\n onShowMore?.(day);\n },\n [onShowMore],\n );\n\n const handleSlotKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>, slot: SlotGridSlot, day: SlotGridDay) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleSlotClick(slot, day);\n }\n },\n [handleSlotClick],\n );\n\n const columnCount = clampCols(days.length || 1);\n const columnsClass = columnsVariants({ cols: columnCount });\n\n /* ---- Rendered content ------------------------------------------ */\n\n let body: ReactNode;\n if (isLoading) {\n body = (\n <div\n className={columnsClass}\n data-state=\"loading\"\n role=\"status\"\n aria-live=\"polite\"\n aria-label={t('common.loading')}\n >\n {Array.from({ length: columnCount }, (_, colIdx) => (\n <div key={`loading-col-${colIdx}`} className={columnVariants()}>\n <Skeleton variant=\"text\" size={size} width=\"60%\" />\n <div className={slotListVariants()}>\n {Array.from({ length: Math.min(maxInitialSlotsPerDay, 4) }, (_, rowIdx) => (\n <Skeleton\n key={`loading-slot-${colIdx}-${rowIdx}`}\n variant=\"rounded\"\n size={size}\n height=\"40px\"\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n } else if (isEmpty) {\n body = (\n <div data-state=\"empty\">\n <EmptyState variant=\"no-results\" title={t('slotGrid.noSlots')} />\n </div>\n );\n } else {\n body = (\n <div\n className={columnsClass}\n data-state={isDisabled ? 'disabled' : 'default'}\n >\n {days.map((day, dayIdx) => {\n const dayKey = `${toDate(day.date).toISOString()}-${dayIdx}`;\n const headerLabel =\n day.label ?? formatDayHeader(toDate(day.date), locale, timeZone);\n const headerId = `${idBase}-day-${dayIdx}-header`;\n const isExpanded = expanded[dayKey] ?? false;\n const visibleSlots = isExpanded\n ? day.slots\n : day.slots.slice(0, maxInitialSlotsPerDay);\n const hiddenCount = day.slots.length - visibleSlots.length;\n\n const isDayEmpty = day.slots.length === 0;\n\n return (\n <section\n key={dayKey}\n className={columnVariants()}\n aria-labelledby={headerId}\n data-empty={isDayEmpty || undefined}\n >\n <h3 id={headerId} className={dayHeaderVariants({ size })}>\n {headerLabel}\n </h3>\n {isDayEmpty ? (\n <p className=\"type-body-sm ds:text-[var(--muted-foreground)] ds:m-0\">\n {t('slotGrid.noSlots')}\n </p>\n ) : null}\n <ul className={slotListVariants()}>\n {visibleSlots.map((slot) => {\n const ariaLabelSlot = formatSlotAriaLabel(\n slot,\n day,\n locale,\n timeZone,\n ({ time, day: dayLabel }) =>\n t('slotGrid.slotLabel', { time, day: dayLabel }),\n );\n const isSelected = selectedSlotId === slot.id;\n const isSlotDisabled =\n slot.available === false || isInteractionSuppressed;\n return (\n <li key={slot.id}>\n <button\n type=\"button\"\n className={slotButtonVariants({ size })}\n aria-label={ariaLabelSlot}\n aria-pressed={isSelected}\n disabled={isSlotDisabled}\n aria-disabled={isSlotDisabled || undefined}\n data-slot-id={slot.id}\n onClick={() => handleSlotClick(slot, day)}\n onKeyDown={(event) => handleSlotKeyDown(event, slot, day)}\n >\n {formatSlotTime(slot, locale, timeZone)}\n </button>\n </li>\n );\n })}\n </ul>\n {hiddenCount > 0 ? (\n <Button\n intent=\"ghost\"\n size={size === 'lg' ? 'md' : 'sm'}\n onClick={() => handleShowMore(day, dayKey)}\n disabled={isInteractionSuppressed}\n >\n {t('slotGrid.showMore', { count: hiddenCount })}\n </Button>\n ) : null}\n </section>\n );\n })}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"region\"\n aria-label={resolvedAriaLabel}\n className={slotGridVariants({ size, className })}\n data-component=\"slot-grid\"\n data-state={state}\n {...rest}\n >\n <div className={toolbarVariants()}>\n <IconButton\n icon={<ChevronStartIcon />}\n aria-label={t('slotGrid.previousDays')}\n size={size === 'lg' ? 'md' : 'sm'}\n intent=\"ghost\"\n flipIconInRtl\n disabled={!hasPrevious || isInteractionSuppressed}\n onClick={onPreviousDays}\n />\n {showNextAvailable ? (\n <Button\n intent=\"secondary\"\n size={size === 'lg' ? 'md' : 'sm'}\n disabled={isInteractionSuppressed}\n onClick={onJumpToNextAvailable}\n >\n {t('slotGrid.nextAvailable')}\n </Button>\n ) : (\n <span aria-hidden=\"true\" />\n )}\n <IconButton\n icon={<ChevronEndIcon />}\n aria-label={t('slotGrid.nextDays')}\n size={size === 'lg' ? 'md' : 'sm'}\n intent=\"ghost\"\n flipIconInRtl\n disabled={!hasNext || isInteractionSuppressed}\n onClick={onNextDays}\n />\n </div>\n\n {body}\n </div>\n );\n },\n);\n\nSlotGrid.displayName = 'SlotGrid';\n"],"names":["parseISO","argument","options","invalidDate","constructFrom","dateStrings","splitDateString","date","parseYearResult","parseYear","parseDate","timestamp","time","offset","parseTime","parseTimezone","tmpDate","result","toDate","patterns","dateRegex","timeRegex","timezoneRegex","dateString","array","timeString","token","additionalDigits","regex","captures","year","century","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","value","hours","parseTimeUnit","minutes","seconds","validateTime","millisecondsInHour","millisecondsInMinute","timezoneString","sign","validateTimezone","isoWeekYear","fourthOfJanuaryDay","diff","daysInMonths","isLeapYearIndex","_year","_hours","slotGridVariants","cva","toolbarVariants","COLS_MAX","columnsVariants","clampCols","count","columnVariants","dayHeaderVariants","slotListVariants","slotButtonVariants","isSameDate","a","b","isSameDay","findFirstAvailable","days","slot","s","formatDayHeader","locale","timeZone","formatSlotTime","start","fmt","end","formatSlotAriaLabel","template","dayLabel","ChevronStartIcon","jsx","ChevronEndIcon","SlotGrid","forwardRef","state","size","selectedSlotId","maxInitialSlotsPerDay","localeProp","hasPrevious","hasNext","showNextAvailable","ariaLabel","onSlotSelect","onPreviousDays","onNextDays","onShowMore","onJumpToNextAvailable","className","rest","ref","t","i18n","useTranslation","idBase","useId","expanded","setExpanded","useState","isLoading","isDisabled","isInteractionSuppressed","isEmpty","resolvedAriaLabel","handleSlotClick","useCallback","handleShowMore","key","prev","handleSlotKeyDown","event","columnCount","columnsClass","body","_","colIdx","jsxs","Skeleton","rowIdx","EmptyState","dayIdx","dayKey","headerLabel","headerId","visibleSlots","hiddenCount","isDayEmpty","ariaLabelSlot","isSelected","isSlotDisabled","Button","IconButton"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sparkline.agent-56Sj7nOP.js","sources":["../../src/components/sparkline/use-linear-trend.ts","../../src/components/sparkline/sparkline.tsx","../../src/components/sparkline/sparkline.agent.ts"],"sourcesContent":["export type TrendDirection = 'increasing' | 'decreasing' | 'steady';\n\nexport interface LinearTrendResult {\n slope: number;\n direction: TrendDirection;\n}\n\nexport function useLinearTrend(data: number[]): LinearTrendResult {\n if (data.length < 2) {\n return { slope: 0, direction: 'steady' };\n }\n\n const n = data.length;\n const xMean = (n - 1) / 2;\n const yMean = data.reduce((sum, y) => sum + y, 0) / n;\n\n let numerator = 0;\n let denominator = 0;\n\n for (let i = 0; i < n; i++) {\n const dx = i - xMean;\n numerator += dx * (data[i] - yMean);\n denominator += dx * dx;\n }\n\n const slope = denominator === 0 ? 0 : numerator / denominator;\n const range = Math.max(...data) - Math.min(...data);\n const threshold = 0.01 * (range || 1);\n\n const direction: TrendDirection =\n Math.abs(slope) < threshold ? 'steady' : slope > 0 ? 'increasing' : 'decreasing';\n\n return { slope, direction };\n}\n","import {\n forwardRef,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport ReactApexChart from 'react-apexcharts';\nimport ApexCharts from 'apexcharts';\nimport { getApexChartsTheme } from '../../tokens/apexcharts-theme';\nimport { useNeutraliseHiddenFocus } from '../_shared/use-neutralize-hidden-focus';\nimport { useLinearTrend } from './use-linear-trend';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst sparklineVariants = cva('ds:relative ds:inline-block ds:w-full', {\n variants: {\n size: {\n xs: 'ds:h-6',\n sm: 'ds:h-8',\n md: 'ds:h-10',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Constants */\n/* ------------------------------------------------------------------ */\n\nconst DIRECTION_ARROW = {\n increasing: '↑',\n decreasing: '↓',\n steady: '→',\n} as const;\n\nconst SIZE_HEIGHT: Record<'xs' | 'sm' | 'md', number> = {\n xs: 24,\n sm: 32,\n md: 40,\n};\n\nfunction prefersReducedMotion(): boolean {\n return (\n typeof window !== 'undefined' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport interface SparklineHandle {\n updateSeries: (data: number[]) => void;\n updateOptions: (opts: ApexCharts.ApexOptions) => void;\n dataURI: () => Promise<string>;\n}\n\nexport interface SparklineProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'children'>,\n VariantProps<typeof sparklineVariants> {\n /** Array of numeric data points */\n data: number[];\n /** Chart visual style */\n variant?: 'line' | 'bar' | 'area';\n /** Size preset */\n size?: 'xs' | 'sm' | 'md';\n /** Accessible label prefix, e.g. \"Revenue, 30 days\" */\n label?: string;\n /** Stroke / bar colour override — defaults to var(--primary) via bridge */\n color?: string;\n /** Show end-point dot with trend direction arrow */\n showEndpoint?: boolean;\n /**\n * Show Apex's hover tooltip with the data point value. Defaults to\n * `false` — sparklines are intentionally minimal — opt in when the\n * sparkline is large enough to be a primary metric surface (e.g.\n * dashboard widgets) and the user benefits from per-point readout.\n */\n showTooltip?: boolean;\n /** Width override — defaults to 100% of container */\n width?: string | number;\n /** Height override — defaults to the size variant height */\n height?: string | number;\n}\n\n/* ------------------------------------------------------------------ */\n/* Sparkline component */\n/* ------------------------------------------------------------------ */\n\nexport const Sparkline = forwardRef<SparklineHandle, SparklineProps>(\n (\n {\n id,\n data,\n variant = 'line',\n size = 'md',\n label,\n color,\n showEndpoint = false,\n showTooltip = false,\n width,\n height,\n className,\n ...props\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const rawId = useId();\n const chartId = useMemo(\n () => `sparkline-${rawId.replace(/[^a-zA-Z0-9-_]/g, '')}`,\n [rawId],\n );\n const wrapperRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState(0);\n\n const { direction } = useLinearTrend(data);\n\n /* ---- accessible summary ---------------------------------------- */\n const ariaLabel = useMemo(() => {\n if (data.length === 0) {\n return t('ui.sparkline.noData', 'No data');\n }\n const fmt = (n: number) => new Intl.NumberFormat(i18n.language).format(n);\n const dirText = t(`ui.sparkline.direction.${direction}`);\n const nums = {\n min: fmt(Math.min(...data)),\n max: fmt(Math.max(...data)),\n current: fmt(data[data.length - 1]),\n direction: dirText,\n };\n if (label) {\n return t('ui.sparkline.summary', { label, ...nums });\n }\n return t('ui.sparkline.summaryNoLabel', nums);\n }, [data, label, direction, i18n.language, t]);\n\n /* ---- theme-reactive state -------------------------------------- */\n const [themeOptions, setThemeOptions] = useState<ApexCharts.ApexOptions>(() => {\n try {\n return getApexChartsTheme();\n } catch {\n return {};\n }\n });\n\n /* ---- MutationObserver: re-read theme on class change ----------- */\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n const observer = new MutationObserver(() => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n try {\n setThemeOptions(getApexChartsTheme());\n } catch {\n /* no-op in non-browser environments */\n }\n }, 50);\n });\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n return () => {\n clearTimeout(timer);\n observer.disconnect();\n };\n }, []);\n\n /* ---- ResizeObserver: track container width -------------------- */\n useEffect(() => {\n const el = wrapperRef.current;\n if (!el) return;\n const ro = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) setContainerWidth(Math.floor(entry.contentRect.width));\n });\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n /* ApexCharts injects focusable canvases inside the `aria-hidden` */\n /* chart wrapper. Neutralise their tabindex so axe's */\n /* `aria-hidden-focus` rule passes. Shared hook — same fix in */\n /* `Chart` (full apex) and the calendar's mirror events. */\n useNeutraliseHiddenFocus(wrapperRef);\n\n /* ---- imperative handle ---------------------------------------- */\n useImperativeHandle(ref, () => ({\n updateSeries(newData: number[]) {\n ApexCharts.getChartByID(chartId)?.updateSeries([{ data: newData }]);\n },\n updateOptions(opts: ApexCharts.ApexOptions) {\n ApexCharts.getChartByID(chartId)?.updateOptions(opts);\n },\n async dataURI(): Promise<string> {\n const instance = ApexCharts.getChartByID(chartId);\n if (!instance) return '';\n const result = await instance.dataURI();\n return (result as { imgURI: string }).imgURI;\n },\n }));\n\n /* ---- resolve color -------------------------------------------- */\n const resolvedColor = color ?? themeOptions.colors?.[0] ?? 'currentColor';\n\n /* ---- empty state ---------------------------------------------- */\n if (data.length === 0) {\n return (\n <div\n ref={wrapperRef}\n role=\"img\"\n aria-label={ariaLabel}\n dir=\"ltr\"\n className={sparklineVariants({ size, className })}\n {...props}\n />\n );\n }\n\n /* ---- chart config ---------------------------------------------- */\n const reducedMotion = prefersReducedMotion();\n\n const chartOptions: ApexCharts.ApexOptions = {\n ...themeOptions,\n chart: {\n ...themeOptions.chart,\n id: chartId,\n type: variant,\n sparkline: { enabled: true },\n toolbar: { show: false },\n animations: {\n enabled: !reducedMotion,\n dynamicAnimation: { enabled: !reducedMotion },\n },\n zoom: { enabled: false },\n parentHeightOffset: 0,\n },\n colors: [resolvedColor],\n stroke: {\n curve: 'smooth',\n width: variant === 'bar' ? 0 : 2,\n },\n fill: {\n opacity: variant === 'area' ? 0.15 : 1,\n },\n xaxis: {\n crosshairs: { show: false },\n },\n tooltip: { enabled: showTooltip },\n markers:\n showEndpoint\n ? {\n size: [0],\n discrete: [\n {\n seriesIndex: 0,\n dataPointIndex: data.length - 1,\n fillColor: resolvedColor,\n strokeColor: resolvedColor,\n size: 4,\n },\n ],\n }\n : { size: 0 },\n grid: {\n ...themeOptions.grid,\n show: false,\n // ApexCharts grid.padding uses physical keys (not CSS logical properties).\n // The chart wrapper enforces dir=\"ltr\" so these always resolve correctly.\n padding: { top: 2, right: 2, bottom: 2, left: 2 },\n },\n };\n\n const resolvedWidth = width ?? (containerWidth > 0 ? containerWidth : '100%');\n const resolvedHeight = height ?? SIZE_HEIGHT[size ?? 'md'];\n\n return (\n <div\n ref={wrapperRef}\n role=\"img\"\n aria-label={ariaLabel}\n dir=\"ltr\"\n className={sparklineVariants({ size, className })}\n data-component=\"sparkline\"\n data-component-id={id}\n {...props}\n >\n <ReactApexChart\n type={variant}\n series={[{ data }]}\n options={chartOptions}\n width={resolvedWidth}\n height={resolvedHeight}\n aria-hidden=\"true\"\n />\n {showEndpoint && (\n <span\n aria-hidden=\"true\"\n className=\"ds:pointer-events-none ds:absolute ds:end-0 ds:top-0 ds:text-[length:var(--font-size-xs)] ds:leading-none\"\n >\n {DIRECTION_ARROW[direction]}\n </span>\n )}\n </div>\n );\n },\n);\n\nSparkline.displayName = 'Sparkline';\n","import type { AgentAdapter } from '../../agent/types';\nimport type { SparklineHandle } from './sparkline';\n\nexport const sparklineAgent: AgentAdapter<SparklineHandle> = {\n id: 'sparkline',\n capabilities: [],\n state: {},\n actions: {\n update_series: {\n safety: 'read',\n argsType: '{ data: number[] }',\n description: 'Replace the sparkline data without remounting.',\n invoke: (handle, args: { data: number[] }) => {\n handle.updateSeries(args.data);\n },\n },\n export_png: {\n safety: 'read',\n description: 'Return a PNG data URI of the sparkline.',\n invoke: (handle) => handle.dataURI(),\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'sparkline' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n"],"names":["useLinearTrend","data","n","xMean","yMean","sum","y","numerator","denominator","i","dx","slope","threshold","direction","sparklineVariants","cva","DIRECTION_ARROW","SIZE_HEIGHT","prefersReducedMotion","Sparkline","forwardRef","id","variant","size","label","color","showEndpoint","showTooltip","width","height","className","props","ref","t","i18n","useTranslation","rawId","useId","chartId","useMemo","wrapperRef","useRef","containerWidth","setContainerWidth","useState","ariaLabel","fmt","dirText","nums","themeOptions","setThemeOptions","getApexChartsTheme","useEffect","timer","observer","el","ro","entries","entry","useNeutraliseHiddenFocus","useImperativeHandle","newData","_a","ApexCharts","opts","instance","resolvedColor","jsx","reducedMotion","chartOptions","resolvedWidth","resolvedHeight","jsxs","ReactApexChart","sparklineAgent","handle","args"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spinner-GCcv67vh.js","sources":["../../src/components/spinner/spinner.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\n\nconst spinnerVariants = cva('ds:inline-block ds:shrink-0 ds:text-current', {\n variants: {\n size: {\n sm: 'ds:size-3',\n md: 'ds:size-4',\n lg: 'ds:size-5',\n },\n variant: {\n pulse: '',\n chase: '',\n prism: '',\n },\n speed: {\n slower: '',\n slow: '',\n normal: '',\n fast: '',\n faster: '',\n },\n },\n compoundVariants: [\n { variant: 'pulse', speed: 'slower', class: 'ds:[--spinner-duration:2400ms]' },\n { variant: 'pulse', speed: 'slow', class: 'ds:[--spinner-duration:1800ms]' },\n { variant: 'pulse', speed: 'normal', class: 'ds:[--spinner-duration:1200ms]' },\n { variant: 'pulse', speed: 'fast', class: 'ds:[--spinner-duration:900ms]' },\n { variant: 'pulse', speed: 'faster', class: 'ds:[--spinner-duration:600ms]' },\n { variant: 'chase', speed: 'slower', class: 'ds:[--spinner-duration:2400ms]' },\n { variant: 'chase', speed: 'slow', class: 'ds:[--spinner-duration:1800ms]' },\n { variant: 'chase', speed: 'normal', class: 'ds:[--spinner-duration:1200ms]' },\n { variant: 'chase', speed: 'fast', class: 'ds:[--spinner-duration:900ms]' },\n { variant: 'chase', speed: 'faster', class: 'ds:[--spinner-duration:600ms]' },\n // prism runs 2× so each of the 4 brand hues has room to read.\n { variant: 'prism', speed: 'slower', class: 'ds:[--spinner-duration:4800ms]' },\n { variant: 'prism', speed: 'slow', class: 'ds:[--spinner-duration:3600ms]' },\n { variant: 'prism', speed: 'normal', class: 'ds:[--spinner-duration:2400ms]' },\n { variant: 'prism', speed: 'fast', class: 'ds:[--spinner-duration:1800ms]' },\n { variant: 'prism', speed: 'faster', class: 'ds:[--spinner-duration:1200ms]' },\n ],\n defaultVariants: { size: 'md', variant: 'pulse', speed: 'normal' },\n});\n\nconst shapeVariants = cva(\n [\n 'ds:fill-current',\n 'ds:[transform-box:fill-box] ds:[transform-origin:center]',\n 'ds:motion-reduce:animate-none',\n 'ds:[animation-delay:calc(var(--spinner-duration)/4*var(--spinner-position))]',\n ].join(' '),\n {\n variants: {\n variant: {\n pulse:\n 'ds:animate-[spinner-pulse_var(--spinner-duration)_ease-in-out_infinite]',\n chase:\n 'ds:animate-[spinner-chase_var(--spinner-duration)_ease-out_infinite]',\n prism:\n 'ds:animate-[spinner-prism_var(--spinner-duration)_linear_infinite] ds:motion-reduce:fill-[var(--color-violet-500)]',\n },\n position: {\n top: 'ds:[--spinner-position:0]',\n right: 'ds:[--spinner-position:1]',\n bottom: 'ds:[--spinner-position:2]',\n left: 'ds:[--spinner-position:3]',\n },\n },\n defaultVariants: { variant: 'pulse', position: 'top' },\n },\n);\n\nexport type SpinnerVariant = 'pulse' | 'chase' | 'prism';\nexport type SpinnerSpeed = 'slower' | 'slow' | 'normal' | 'fast' | 'faster';\n\nexport interface SpinnerProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, 'role' | 'children'>,\n VariantProps<typeof spinnerVariants> {\n size?: 'sm' | 'md' | 'lg';\n variant?: SpinnerVariant;\n speed?: SpinnerSpeed;\n label?: string;\n}\n\nexport const Spinner = forwardRef<HTMLSpanElement, SpinnerProps>(\n (\n {\n size = 'md',\n variant = 'pulse',\n speed = 'normal',\n label,\n className,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const accessibleLabel = label ?? t('ui.common.loading', 'Loading…');\n\n return (\n <span\n ref={ref}\n role=\"status\"\n aria-live=\"polite\"\n data-component=\"spinner\"\n className={spinnerVariants({ size, variant, speed, className })}\n {...props}\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 148 148\" className=\"ds:size-full\">\n <g\n data-shape=\"top\"\n className={shapeVariants({ variant, position: 'top' })}\n >\n <rect\n x=\"53.04\"\n y=\"2.54\"\n width=\"33.99\"\n height=\"49.34\"\n rx=\"4.56\"\n ry=\"4.56\"\n transform=\"translate(-4.66 19.05) rotate(-15)\"\n />\n </g>\n <g\n data-shape=\"right\"\n className={shapeVariants({ variant, position: 'right' })}\n >\n <rect\n x=\"96.12\"\n y=\"53.04\"\n width=\"49.34\"\n height=\"33.99\"\n rx=\"4.56\"\n ry=\"4.56\"\n transform=\"translate(-14.01 33.65) rotate(-15)\"\n />\n </g>\n <g\n data-shape=\"bottom\"\n className={shapeVariants({ variant, position: 'bottom' })}\n >\n <rect\n x=\"60.97\"\n y=\"96.12\"\n width=\"33.99\"\n height=\"49.34\"\n rx=\"4.56\"\n ry=\"4.56\"\n transform=\"translate(-28.61 24.29) rotate(-15)\"\n />\n </g>\n <g\n data-shape=\"left\"\n className={shapeVariants({ variant, position: 'left' })}\n >\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 </g>\n </svg>\n <span className=\"ds:sr-only\">{accessibleLabel}</span>\n </span>\n );\n },\n);\n\nSpinner.displayName = 'Spinner';\n"],"names":["spinnerVariants","cva","shapeVariants","Spinner","forwardRef","size","variant","speed","label","className","props","ref","t","useTranslation","accessibleLabel","jsxs","jsx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"square-CZoGU14v.js","sources":["../../node_modules/lucide-react/dist/esm/icons/square.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 [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }]\n];\nconst Square = createLucideIcon(\"square\", __iconNode);\n\nexport { __iconNode, Square as default };\n//# sourceMappingURL=square.js.map\n"],"names":["__iconNode","Square","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,OAAO,MAAM,QAAQ,MAAM,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,SAAQ,CAAE;AAChF,GACMC,IAASC,EAAiB,UAAUF,CAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"square-check-big-Jr-0202D.js","sources":["../../node_modules/lucide-react/dist/esm/icons/square-check-big.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 [\n \"path\",\n { d: \"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344\", key: \"2acyp4\" }\n ],\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }]\n];\nconst SquareCheckBig = createLucideIcon(\"square-check-big\", __iconNode);\n\nexport { __iconNode, SquareCheckBig as default };\n//# sourceMappingURL=square-check-big.js.map\n"],"names":["__iconNode","SquareCheckBig","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA,EAAE,GAAG,sEAAsE,KAAK,SAAQ;AAAA,EAC5F;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AACjD,GACMC,IAAiBC,EAAiB,oBAAoBF,CAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stat-DUB6g90R.js","sources":["../../src/components/stat/stat.tsx"],"sourcesContent":["import { forwardRef, useId, type HTMLAttributes, type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\n\n/* ------------------------------------------------------------------ */\n/* CVA — stat root */\n/* ------------------------------------------------------------------ */\n\nconst statVariants = cva('ds:flex ds:flex-col', {\n variants: {\n variant: {\n default: 'ds:gap-[var(--spacing-xs)]',\n outlined: [\n 'ds:gap-[var(--spacing-xs)]',\n 'ds:border ds:border-[color:var(--border)]',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]',\n ].join(' '),\n // White card surface with the shared card shadow — matches\n // `Card variant=\"elevated\"` tokens (`--card` + `--shadow-card`) so\n // a grid of elevated Stats reads as a set of shaded panels without\n // nesting a Card around each one.\n elevated: [\n 'ds:gap-[var(--spacing-xs)]',\n 'ds:bg-[var(--card)]',\n 'ds:text-[var(--card-foreground)]',\n 'ds:shadow-[var(--shadow-card)]',\n 'ds:rounded-[var(--radius-lg)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]',\n // Forced-colors: UA strips shadow, so render a border as the\n // separation cue — mirrors Card's forced-colors behaviour.\n 'ds:forced-colors:border ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n compact: 'ds:gap-[var(--spacing-none)]',\n },\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n align: {\n start: 'ds:items-start ds:text-start',\n center: 'ds:items-center ds:text-center',\n end: 'ds:items-end ds:text-end',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n align: 'start',\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA — value element */\n/* ------------------------------------------------------------------ */\n\nconst valueVariants = cva(\n 'type-metric ds:text-[var(--foreground)]',\n {\n variants: {\n size: {\n sm: 'ds:[--type-metric-size:var(--font-size-xl)]',\n md: 'ds:[--type-metric-size:var(--font-size-3xl)]',\n lg: 'ds:[--type-metric-size:var(--font-size-5xl)]',\n },\n variant: {\n default: '',\n outlined: '',\n elevated: '',\n compact: '',\n },\n },\n compoundVariants: [\n { variant: 'compact', size: 'sm', className: 'ds:[--type-metric-size:var(--font-size-lg)]' },\n { variant: 'compact', size: 'md', className: 'ds:[--type-metric-size:var(--font-size-xl)]' },\n { variant: 'compact', size: 'lg', className: 'ds:[--type-metric-size:var(--font-size-2xl)]' },\n ],\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — trend element */\n/* ------------------------------------------------------------------ */\n\nconst trendVariants = cva(\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-label',\n {\n variants: {\n trend: {\n up: 'ds:text-[var(--success)]',\n down: 'ds:text-[var(--destructive)]',\n flat: 'ds:text-[var(--muted-foreground)]',\n },\n },\n defaultVariants: {\n trend: 'flat',\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* StatTrend (internal — not exported) */\n/* ------------------------------------------------------------------ */\n\ninterface StatTrendProps {\n trend: 'up' | 'down' | 'flat';\n delta: number | string;\n deltaFormat?: 'decimal' | 'percent';\n locale?: string;\n}\n\nconst ARROW = { up: '↑', down: '↓', flat: '→' } as const;\nconst TREND_KEY = {\n up: 'ui.stat.trend.up',\n down: 'ui.stat.trend.down',\n flat: 'ui.stat.trend.flat',\n} as const;\n\nfunction StatTrend({ trend, delta, deltaFormat = 'decimal', locale }: StatTrendProps) {\n const { t, i18n } = useTranslation();\n\n const formattedDelta =\n typeof delta === 'string'\n ? delta\n : new Intl.NumberFormat(locale ?? i18n.language, {\n style: deltaFormat === 'percent' ? 'percent' : 'decimal',\n }).format(deltaFormat === 'percent' ? delta / 100 : delta);\n\n return (\n <span className={trendVariants({ trend })}>\n <span aria-hidden=\"true\">{ARROW[trend]}</span>\n <span className=\"ds:sr-only\">{t(TREND_KEY[trend])}</span>\n {formattedDelta}\n </span>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* StatProps */\n/* ------------------------------------------------------------------ */\n\nexport interface StatProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof statVariants> {\n /** Metric label rendered above the value. */\n label: string;\n /** Numeric or pre-formatted string value. */\n value: number | string;\n /** Number formatting style. Omit to use default decimal formatting. */\n format?: 'decimal' | 'currency' | 'percent';\n /** ISO 4217 currency code — required when format=\"currency\". */\n currency?: string;\n /** BCP 47 locale override. Defaults to the active i18n language. */\n locale?: string;\n /** Trend direction. Requires `delta` to render the trend row. */\n trend?: 'up' | 'down' | 'flat';\n /** Trend delta magnitude, e.g. 12 for \"↑ 12%\". */\n delta?: number | string;\n /** Number formatting style for the delta. Default \"decimal\". */\n deltaFormat?: 'decimal' | 'percent';\n /** Optional leading icon rendered at the start of the label row. */\n icon?: ReactNode;\n /** Renders animated skeleton placeholders instead of content. */\n loading?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* Stat */\n/* ------------------------------------------------------------------ */\n\nexport const Stat = forwardRef<HTMLDivElement, StatProps>(\n (\n {\n label,\n value,\n format,\n currency,\n locale,\n trend,\n delta,\n deltaFormat = 'decimal',\n icon,\n loading = false,\n variant = 'default',\n size = 'md',\n align = 'start',\n className,\n ...props\n },\n ref,\n ) => {\n const { i18n } = useTranslation();\n const labelId = useId();\n\n const formatValue = (): string => {\n if (typeof value === 'string') return value;\n const lang = locale ?? i18n.language;\n\n switch (format) {\n case 'currency':\n return new Intl.NumberFormat(lang, {\n style: 'currency',\n currency: currency ?? 'USD',\n }).format(value);\n case 'percent':\n return new Intl.NumberFormat(lang, { style: 'percent' }).format(value);\n case 'decimal':\n return new Intl.NumberFormat(lang, { style: 'decimal' }).format(value);\n default:\n return new Intl.NumberFormat(lang).format(value);\n }\n };\n\n if (loading) {\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-busy=\"true\"\n aria-label={label}\n data-component=\"stat\"\n className={statVariants({ variant, size, align, className })}\n {...props}\n >\n <div className=\"ds:h-[var(--skeleton-label-h)] ds:w-[var(--skeleton-label-w)] ds:animate-pulse ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)]\" />\n <div className=\"ds:h-[var(--skeleton-value-h)] ds:w-[var(--skeleton-value-w)] ds:animate-pulse ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)]\" />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-labelledby={labelId}\n data-component=\"stat\"\n className={statVariants({ variant, size, align, className })}\n {...props}\n >\n <span className=\"ds:inline-flex ds:items-center\">\n {icon && (\n <span\n aria-hidden=\"true\"\n className={[\n 'ds:me-[var(--spacing-xs)] ds:inline-flex ds:shrink-0',\n // Accent tint on the leading icon. The icon is decorative\n // (aria-hidden), so magenta-500's 3.2:1 contrast on white\n // is acceptable here — the Stat label + value still\n // carry the accessible name at `--foreground`.\n 'ds:text-[color:var(--accent)]',\n 'ds:forced-colors:text-[CanvasText]',\n ].join(' ')}\n >\n {icon}\n </span>\n )}\n <span\n id={labelId}\n className=\"type-label ds:text-[var(--muted-foreground)]\"\n >\n {label}\n </span>\n </span>\n <span className={valueVariants({ size, variant })}>\n {formatValue()}\n </span>\n {trend != null && delta != null && (\n <StatTrend\n trend={trend}\n delta={delta}\n deltaFormat={deltaFormat}\n locale={locale}\n />\n )}\n </div>\n );\n },\n);\n\nStat.displayName = 'Stat';\n"],"names":["statVariants","cva","valueVariants","trendVariants","ARROW","TREND_KEY","StatTrend","trend","delta","deltaFormat","locale","t","i18n","useTranslation","formattedDelta","jsx","Stat","forwardRef","label","value","format","currency","icon","loading","variant","size","align","className","props","ref","labelId","useId","formatValue","lang","jsxs"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepper-C-sIpRRU.js","sources":["../../src/components/_shared/stepper.ts"],"sourcesContent":["// Shared types + state machine for the two stepper variants:\n// - src/components/stepper-progress (lightweight progress bar + caption)\n// - src/components/stepper-accordion (vertical disclosure wizard)\n//\n// Both components consume `StepSpec` and the `stateForStep` helper so the\n// four-state machine (upcoming | current | completed | error) stays in one\n// place. Rename or removal is a MAJOR per src/docs/13-maintainability.mdx.\n\nexport type StepStatus = 'completed' | 'error';\n\nexport type StepState = 'upcoming' | 'current' | 'completed' | 'error';\n\nexport interface StepSpec {\n /** Visible step label — comes from the consumer, already translated. */\n label: string;\n /** Optional secondary line (kept short; shown in accordion + progress captions). */\n description?: string;\n /**\n * Consumer-explicit status override. `error` always wins; `completed` is\n * honoured only for steps at or beyond the active index so the active step\n * always keeps `current` (otherwise a consumer pre-setting `completed` on\n * every step would silently mask the current position).\n */\n status?: StepStatus;\n}\n\nexport function stateForStep(\n index: number,\n activeStep: number,\n status?: StepStatus,\n): StepState {\n if (status === 'error') return 'error';\n if (index === activeStep) return 'current';\n if (status === 'completed') return 'completed';\n if (index < activeStep) return 'completed';\n return 'upcoming';\n}\n"],"names":["stateForStep","index","activeStep","status"],"mappings":"AA0BO,SAASA,EACdC,GACAC,GACAC,GACW;AACX,SAAIA,MAAW,UAAgB,UAC3BF,MAAUC,IAAmB,YAC7BC,MAAW,eACXF,IAAQC,IAAmB,cACxB;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepper-accordion.agent-ckKYZCIP.js","sources":["../../node_modules/lucide-react/dist/esm/icons/lock.js","../../src/components/stepper-accordion/stepper-accordion.tsx","../../src/components/stepper-accordion/stepper-accordion.agent.ts"],"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 [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 10 0v4\", key: \"fwvmzm\" }]\n];\nconst Lock = createLucideIcon(\"lock\", __iconNode);\n\nexport { __iconNode, Lock as default };\n//# sourceMappingURL=lock.js.map\n","import {\n forwardRef,\n useImperativeHandle,\n useMemo,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react';\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ChevronDown, Lock } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport {\n stateForStep,\n type StepSpec,\n type StepState,\n} from '../_shared/stepper';\n\n/* -------------------------------------------------------------------- */\n/* StepperAccordion */\n/* */\n/* Vertical disclosure wizard. The current step is expanded inline; */\n/* completed steps collapse to a one-line summary with an \"Edit\" hint */\n/* that re-opens them; upcoming steps are locked. Built on Radix */\n/* Accordion in controlled-single mode with collapsible=false so the */\n/* current panel always stays open. */\n/* -------------------------------------------------------------------- */\n\nconst STEP_VALUE_PREFIX = 'step-';\nconst makeValue = (index: number) => `${STEP_VALUE_PREFIX}${index}`;\nconst indexFromValue = (value: string): number =>\n Number(value.slice(STEP_VALUE_PREFIX.length));\n\n/* -------------------------------------------------------------------- */\n/* Indicator — shared with progress bar visual tone but sized for the */\n/* vertical wizard's dense header row. */\n/* -------------------------------------------------------------------- */\n\nconst iconDrawClasses = [\n 'ds:[stroke-dasharray:1] ds:[stroke-dashoffset:1]',\n 'ds:animate-[stepper-icon-draw_var(--animation-duration)_var(--ease-out)_forwards]',\n 'ds:motion-reduce:animate-none ds:motion-reduce:[stroke-dashoffset:0]',\n].join(' ');\n\nfunction CheckGlyph() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"ds:size-4\"\n >\n <path pathLength=\"1\" d=\"M5 12l5 5L20 7\" className={iconDrawClasses} />\n </svg>\n );\n}\n\nfunction CrossGlyph() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"ds:size-4\"\n >\n <path pathLength=\"1\" d=\"M6 6l12 12\" className={iconDrawClasses} />\n <path pathLength=\"1\" d=\"M18 6l-12 12\" className={iconDrawClasses} />\n </svg>\n );\n}\n\nconst indicatorClasses = [\n 'ds:inline-flex ds:shrink-0 ds:items-center ds:justify-center',\n 'ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]',\n 'ds:size-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-full)]',\n 'ds:text-[var(--font-size-sm)] ds:font-[var(--font-weight-semibold)]',\n 'ds:border ds:border-[var(--border)]',\n 'ds:transition-[background-color,border-color,color]',\n 'ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n 'ds:motion-reduce:transition-none',\n].join(' ');\n\nconst indicatorVariants = cva(indicatorClasses, {\n variants: {\n state: {\n upcoming: 'ds:bg-[var(--background)] ds:text-[var(--muted-foreground)]',\n current: [\n 'ds:border-[var(--primary)] ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)]',\n 'ds:animate-[stepper-indicator-pop_var(--animation-duration)_var(--ease-out)_both]',\n 'ds:motion-reduce:animate-none',\n ].join(' '),\n completed:\n 'ds:border-[var(--primary)] ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)]',\n error: [\n 'ds:border-[var(--destructive)] ds:bg-[var(--destructive)] ds:text-[var(--destructive-foreground)]',\n 'ds:animate-[stepper-indicator-pop_var(--animation-duration)_var(--ease-out)_both]',\n 'ds:motion-reduce:animate-none',\n ].join(' '),\n },\n },\n});\n\n/* -------------------------------------------------------------------- */\n/* Item / trigger / content variants */\n/* -------------------------------------------------------------------- */\n\nconst itemVariants = cva(\n [\n 'ds:group/item ds:overflow-hidden ds:rounded-[var(--radius-md)]',\n 'ds:border ds:border-[var(--border)] ds:bg-[var(--card)]',\n 'ds:data-[state=open]:border-[var(--primary)]',\n 'ds:transition-[border-color] ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n 'ds:motion-reduce:transition-none',\n ].join(' '),\n {\n variants: {\n tone: {\n neutral: '',\n error: 'ds:data-[state=open]:border-[var(--destructive)]',\n },\n },\n defaultVariants: { tone: 'neutral' },\n },\n);\n\nconst triggerClasses = [\n 'ds:flex ds:w-full ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]',\n 'ds:text-start',\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:disabled:cursor-not-allowed',\n 'ds:transition-[background-color] ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n 'ds:motion-reduce:transition-none',\n 'ds:hover:enabled:bg-[var(--muted)]/40',\n].join(' ');\n\nconst labelClasses = (state: StepState) =>\n [\n 'type-body-sm',\n state === 'current' || state === 'error'\n ? 'ds:font-[var(--font-weight-semibold)] ds:text-[var(--foreground)]'\n : state === 'completed'\n ? 'ds:text-[var(--foreground)]'\n : 'ds:text-[var(--muted-foreground)]',\n ].join(' ');\n\nconst descriptionClasses = [\n 'type-meta ds:text-[var(--muted-foreground)]',\n 'ds:mt-[var(--spacing-xs)]',\n].join(' ');\n\nconst hintClasses = [\n 'type-meta',\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'ds:text-[var(--muted-foreground)]',\n].join(' ');\n\nconst chevronClasses = [\n 'ds:size-4 ds:shrink-0 ds:text-[var(--muted-foreground)]',\n 'ds:transition-transform ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n 'ds:motion-reduce:transition-none',\n 'ds:group-data-[state=open]/item:rotate-180',\n].join(' ');\n\nconst summaryClasses = [\n 'type-meta ds:text-[var(--muted-foreground)]',\n 'ds:ps-[calc(var(--min-target-size)+var(--spacing-md)+var(--spacing-sm))]',\n 'ds:pe-[var(--spacing-md)] ds:pb-[var(--spacing-sm)]',\n 'ds:group-data-[state=open]/item:hidden',\n].join(' ');\n\nconst contentClasses = [\n 'ds:overflow-hidden',\n 'ds:data-[state=open]:animate-[accordion-down_var(--animation-duration)_var(--ease-out)]',\n 'ds:data-[state=closed]:animate-[accordion-up_var(--animation-duration)_var(--ease-in)]',\n].join(' ');\n\nconst contentInnerClasses = [\n 'ds:ps-[calc(var(--min-target-size)+var(--spacing-md)+var(--spacing-sm))]',\n 'ds:pe-[var(--spacing-md)] ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-md)]',\n].join(' ');\n\n/* -------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------- */\n\nexport interface AccordionStepSpec extends StepSpec {\n /** Form content rendered inside the expanded panel. */\n content: ReactNode;\n /**\n * One-line summary shown under the header when the step is completed\n * and its panel is collapsed. Typically a preview of the captured\n * data — \"Mario Rossi · 12/03/1985\".\n */\n summary?: ReactNode;\n}\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]', {\n variants: {},\n});\n\nexport interface StepperAccordionProps\n extends Omit<\n ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>,\n 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'collapsible'\n >,\n VariantProps<typeof rootVariants> {\n /** Active step (0-indexed). The matching panel is the one that is open. */\n activeStep: number;\n /** Step specs — each one provides its own content + optional summary. */\n steps: AccordionStepSpec[];\n /**\n * Fires when the user re-opens a completed step. Upcoming steps cannot\n * be activated — their triggers are disabled. The current step cannot\n * be collapsed (Radix `collapsible=false`).\n */\n onStepChange?: (index: number) => void;\n /** Override the default `aria-label` on the list wrapper. */\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. Routes state mutations through\n * the consumer's `onStepChange`, never mutating directly.\n */\nexport interface StepperAccordionHandle {\n getCurrentStep: () => number;\n getTotalSteps: () => number;\n /** Indices of currently-open panels — singleton under Radix `type=\"single\"`. */\n getOpenSteps: () => number[];\n gotoStep: (step: number) => void;\n next: () => void;\n previous: () => void;\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nconst StepperAccordion = forwardRef<StepperAccordionHandle, StepperAccordionProps>(\n (\n {\n activeStep,\n steps,\n onStepChange,\n 'aria-label': ariaLabel,\n id,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const total = steps.length;\n const clampedActive = Math.max(0, Math.min(activeStep, total - 1));\n const label = ariaLabel ?? t('navigation.stepper.label');\n const editCopy = t('navigation.stepper.edit');\n const lockedCopy = t('navigation.stepper.locked');\n const completedCopy = t('navigation.stepper.completed');\n const errorCopy = t('navigation.stepper.error');\n\n const handleValueChange = (value: string) => {\n // `collapsible=false` prevents empty-string values in practice, but the\n // primitive's type still allows one — guard anyway.\n if (!value) return;\n const index = indexFromValue(value);\n if (Number.isFinite(index) && index !== clampedActive) {\n onStepChange?.(index);\n }\n };\n\n const handle = useMemo<StepperAccordionHandle>(\n () => ({\n getCurrentStep: () => clampedActive,\n getTotalSteps: () => total,\n getOpenSteps: () => [clampedActive],\n gotoStep: (step: number) => {\n if (!onStepChange) return;\n const clamped = Math.max(0, Math.min(step, Math.max(total - 1, 0)));\n if (clamped !== clampedActive) onStepChange(clamped);\n },\n next: () => {\n if (!onStepChange) return;\n if (clampedActive < total - 1) onStepChange(clampedActive + 1);\n },\n previous: () => {\n if (!onStepChange) return;\n if (clampedActive > 0) onStepChange(clampedActive - 1);\n },\n }),\n [clampedActive, total, onStepChange],\n );\n useImperativeHandle(ref, () => handle, [handle]);\n\n return (\n <AccordionPrimitive.Root\n type=\"single\"\n value={makeValue(clampedActive)}\n onValueChange={handleValueChange}\n collapsible={false}\n aria-label={label}\n id={id}\n data-component=\"stepper-accordion\"\n data-component-id={id}\n className={rootVariants({ className })}\n {...rest}\n >\n {steps.map((spec, index) => {\n const state = stateForStep(index, clampedActive, spec.status);\n const isCurrent = state === 'current' || state === 'error';\n const isUpcoming = state === 'upcoming';\n const itemTone = state === 'error' ? 'error' : 'neutral';\n const stepN = t('navigation.stepper.stepN', { n: index + 1 });\n\n const indicatorContent = (() => {\n if (state === 'completed') {\n return (\n <>\n <CheckGlyph />\n <span className=\"ds:sr-only\">{completedCopy}</span>\n </>\n );\n }\n if (state === 'error') {\n return (\n <>\n <CrossGlyph />\n <span className=\"ds:sr-only\">{errorCopy}</span>\n </>\n );\n }\n return <span>{index + 1}</span>;\n })();\n\n const hint = (() => {\n if (state === 'completed') {\n return <span className={hintClasses}>{editCopy}</span>;\n }\n if (state === 'upcoming') {\n return (\n <span className={hintClasses}>\n <Lock aria-hidden=\"true\" className=\"ds:size-3\" />\n {lockedCopy}\n </span>\n );\n }\n return null;\n })();\n\n return (\n <AccordionPrimitive.Item\n key={index}\n value={makeValue(index)}\n data-step-id={String(index)}\n className={itemVariants({ tone: itemTone })}\n >\n <AccordionPrimitive.Header className=\"ds:flex\">\n <AccordionPrimitive.Trigger\n // Upcoming steps are *HTML*-disabled — they must not be\n // reachable by Tab or by Radix's arrow-key navigation ring\n // (Radix filters `item.ref.current?.disabled`, which is\n // the HTML attribute). Current is only *ARIA*-disabled so\n // keyboard users can Tab to it as a heading anchor and\n // hear \"current step\"; Radix's `collapsible=false` makes\n // the click a no-op regardless. Setting `disabled` at the\n // Trigger rather than the Item because `...triggerProps`\n // spreads after Collapsible writes its own `disabled`\n // from context, so the Item-level disabled gets overridden.\n disabled={isUpcoming}\n aria-disabled={isCurrent || undefined}\n aria-label={\n state === 'completed' ? `${stepN}, ${editCopy}` : stepN\n }\n aria-current={isCurrent ? 'step' : undefined}\n className={triggerClasses}\n >\n <span\n aria-hidden=\"true\"\n className={indicatorVariants({ state })}\n >\n {indicatorContent}\n </span>\n <span className=\"ds:flex ds:min-w-0 ds:flex-1 ds:flex-col\">\n <span className={labelClasses(state)}>{spec.label}</span>\n {spec.description ? (\n <span className={descriptionClasses}>\n {spec.description}\n </span>\n ) : null}\n </span>\n {hint}\n {isCurrent ? null : (\n <ChevronDown\n aria-hidden=\"true\"\n className={chevronClasses}\n />\n )}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n {spec.summary && state === 'completed' ? (\n <div className={summaryClasses}>{spec.summary}</div>\n ) : null}\n <AccordionPrimitive.Content className={contentClasses}>\n <div className={contentInnerClasses}>{spec.content}</div>\n </AccordionPrimitive.Content>\n </AccordionPrimitive.Item>\n );\n })}\n </AccordionPrimitive.Root>\n );\n },\n);\nStepperAccordion.displayName = 'StepperAccordion';\n\nexport { StepperAccordion };\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — StepperAccordion. */\n/* */\n/* Vertical disclosure wizard. Exposes the active step, the total step */\n/* count, and the set of currently-open steps (always a singleton under */\n/* Radix `type=\"single\"` but typed as an array for forward-compat). */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { StepperAccordionHandle } from './stepper-accordion';\n\nexport const stepperAccordionAgent: AgentAdapter<StepperAccordionHandle> = {\n id: 'stepper-accordion',\n capabilities: ['expand', 'navigate'],\n state: {\n currentStep: {\n type: 'number',\n descriptionKey: 'ui.agent.stepperAccordion.state.currentStep',\n description: 'Zero-indexed active step.',\n read: (handle) => handle.getCurrentStep(),\n },\n totalSteps: {\n type: 'number',\n descriptionKey: 'ui.agent.stepperAccordion.state.totalSteps',\n description: 'Total number of steps in the flow.',\n read: (handle) => handle.getTotalSteps(),\n },\n openSteps: {\n type: 'number[]',\n descriptionKey: 'ui.agent.stepperAccordion.state.openSteps',\n description: 'Indices of currently-open step panels (singleton under Radix single mode).',\n read: (handle) => handle.getOpenSteps(),\n },\n },\n actions: {\n goto_step: {\n safety: 'read',\n argsType: '{ step: number }',\n descriptionKey: 'ui.agent.stepperAccordion.actions.gotoStep',\n description: 'Activate the given step. Upcoming steps are gated by the consumer’s validation in onStepChange.',\n invoke: (handle, args: { step: number }) => {\n handle.gotoStep(args.step);\n },\n },\n next: {\n safety: 'read',\n descriptionKey: 'ui.agent.stepperAccordion.actions.next',\n description: 'Advance to the next step. Subject to the consumer’s onStepChange validation.',\n invoke: (handle) => {\n handle.next();\n },\n },\n previous: {\n safety: 'read',\n descriptionKey: 'ui.agent.stepperAccordion.actions.previous',\n description: 'Return to the previous step (re-opens a completed step in edit mode).',\n invoke: (handle) => {\n handle.previous();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'stepper-accordion',\n description: 'Marks the StepperAccordion 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-step-id',\n description: 'Stable opaque id of a step (the zero-indexed step number as a string).',\n },\n },\n};\n"],"names":["__iconNode","Lock","createLucideIcon","STEP_VALUE_PREFIX","makeValue","index","indexFromValue","value","iconDrawClasses","CheckGlyph","jsx","CrossGlyph","jsxs","indicatorClasses","indicatorVariants","cva","itemVariants","triggerClasses","labelClasses","state","descriptionClasses","hintClasses","chevronClasses","summaryClasses","contentClasses","contentInnerClasses","rootVariants","StepperAccordion","forwardRef","activeStep","steps","onStepChange","ariaLabel","id","className","rest","ref","t","useTranslation","total","clampedActive","label","editCopy","lockedCopy","completedCopy","errorCopy","handleValueChange","handle","useMemo","step","clamped","useImperativeHandle","AccordionPrimitive","spec","stateForStep","isCurrent","isUpcoming","itemTone","stepN","indicatorContent","Fragment","hint","ChevronDown","stepperAccordionAgent","args"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepper-calendar.agent-9iT3ClIB.js","sources":["../../node_modules/date-fns/subMonths.js","../../src/components/stepper-calendar/stepper-calendar.tsx","../../src/components/stepper-calendar/stepper-calendar.agent.ts"],"sourcesContent":["import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n addDays,\n addMonths,\n format as fnsFormat,\n isSameDay,\n isSameMonth,\n parseISO,\n startOfMonth,\n startOfWeek,\n subMonths,\n} from 'date-fns';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport type { StepSpec, StepStatus } from '../_shared/stepper';\nimport { stateForStep } from '../_shared/stepper';\nimport { StepperProgress } from '../stepper-progress/stepper-progress';\nimport { Button } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { SlotGrid, type SlotGridDay, type SlotGridSlot } from '../slot-grid/slot-grid';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { resolveFirstDay } from '../calendar/calendar';\n\n// Slot IDs use a fixed `${yyyy-mm-dd}T${HH:mm}` shape so the trailing time\n// segment can be safely peeled off in onSlotSelect. Validating against the\n// shape rather than splitting blindly so an unexpected ID surfaces as a\n// no-op rather than a malformed time value.\nconst SLOT_ID_PATTERN = /^(\\d{4}-\\d{2}-\\d{2})T(\\d{2}:\\d{2})$/;\n\n/* -------------------------------------------------------------------- */\n/* StepperCalendar */\n/* */\n/* Single-component, A/B-testable appointment-booking flow with 4 */\n/* fixed steps in this order: */\n/* 0. Service — pick from `services` */\n/* 1. Date — inline month grid; only `availableDates` are enabled */\n/* 2. Time — slot grid showing `availableSlots[selectedDate]` */\n/* 3. Details — render-prop slot for the consumer's form fields */\n/* -------------------------------------------------------------------- */\n\n/** Service offering rendered on Step 1. Data is API-driven by the consumer. */\nexport interface StepperCalendarService {\n id: string;\n /** Already-translated label (consumer is responsible for i18n of data). */\n label: string;\n /** Duration in minutes — shown alongside the label. */\n durationMin: number;\n /** Optional secondary line. */\n description?: string;\n}\n\n/** Re-exported for convenience. */\nexport type ServiceOption = StepperCalendarService;\n\n/** Booking selection — controlled by the consumer. */\nexport interface StepperCalendarValue {\n serviceId?: string;\n /** ISO yyyy-mm-dd. */\n date?: string;\n /** HH:mm (24h). */\n time?: string;\n}\n\nconst TOTAL_STEPS = 4;\n\nconst rootVariants = cva(\n 'ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-md)] ds:text-[var(--foreground)]',\n {\n variants: {\n layout: {\n vertical: 'ds:flex-col',\n horizontal: 'ds:lg:flex-row ds:lg:items-start',\n },\n density: {\n comfortable: 'ds:gap-[var(--spacing-md)]',\n compact: 'ds:gap-[var(--spacing-sm)]',\n },\n },\n defaultVariants: {\n layout: 'vertical',\n density: 'comfortable',\n },\n },\n);\n\nconst stepBodyVariants = cva(\n [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-md)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)] ds:bg-[var(--card)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]',\n ].join(' '),\n {\n variants: {\n density: {\n comfortable: 'ds:gap-[var(--spacing-md)]',\n compact: 'ds:gap-[var(--spacing-sm)]',\n },\n },\n defaultVariants: { density: 'comfortable' },\n },\n);\n\nconst serviceCardVariants = cva(\n [\n 'ds:group/service ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)] ds:text-start',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)] ds:bg-[var(--background)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:transition-[background-color,border-color] ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n 'ds:motion-reduce:transition-none',\n 'ds:hover:enabled:bg-[var(--muted)]/40',\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:aria-checked:border-[var(--primary)] ds:aria-checked:bg-[var(--primary)]/5',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed',\n ].join(' '),\n);\n\nconst monthHeaderVariants = cva(\n 'ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]',\n);\n\nconst monthGridVariants = cva(\n 'ds:grid ds:grid-cols-7 ds:gap-[var(--spacing-xs)]',\n);\n\nconst dayCellVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center',\n // `min-target-size` (44/48px) governs the rendered size — it always\n // exceeds the explicit floor below. Keeping the explicit floor for\n // grid layout stability when the cell content is empty (skeletons),\n // matching the precedent in `slot-grid`.\n 'ds:min-h-[var(--min-target-size)] ds:min-w-[var(--min-target-size)]',\n 'ds:h-10 ds:w-10 ds:rounded-[var(--radius-sm)]',\n 'ds:text-[length:var(--font-size-sm)] ds:font-[var(--font-weight-medium)]',\n 'ds:border ds:border-transparent ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:transition-[background-color,border-color,color] ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n 'ds:motion-reduce:transition-none',\n 'ds:hover:enabled:bg-[var(--muted)]/40',\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:disabled:opacity-40 ds:disabled:cursor-not-allowed',\n 'ds:aria-selected:bg-[var(--primary)] ds:aria-selected:text-[var(--primary-foreground)]',\n 'ds:aria-selected:border-[var(--primary)]',\n 'ds:data-[outside=true]:text-[var(--muted-foreground)]',\n ].join(' '),\n);\n\nconst actionsRowVariants = cva(\n 'ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:mt-[var(--spacing-md)]',\n);\n\n/* -------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------- */\n\nfunction isoDay(date: Date): string {\n return fnsFormat(date, 'yyyy-MM-dd');\n}\n\n/** Compute the first incomplete step from the current value. */\nfunction firstIncompleteStep(value: StepperCalendarValue): number {\n if (!value.serviceId) return 0;\n if (!value.date) return 1;\n if (!value.time) return 2;\n return 3;\n}\n\n/* -------------------------------------------------------------------- */\n/* Public props */\n/* -------------------------------------------------------------------- */\n\nexport interface StepperCalendarProps\n extends Omit<\n ComponentPropsWithoutRef<'div'>,\n 'aria-label' | 'onChange' | 'onSubmit'\n >,\n VariantProps<typeof rootVariants> {\n services: StepperCalendarService[];\n availableDates: string[];\n availableSlots: Record<string, string[]>;\n value: StepperCalendarValue;\n onChange: (next: StepperCalendarValue) => void;\n onSubmit?: (value: StepperCalendarValue) => void;\n detailsFields?: ReactNode;\n loadingDates?: boolean;\n loadingSlots?: boolean;\n /** Per-step status overrides — `error` will mark a step in the rail. */\n stepStatuses?: Partial<Record<0 | 1 | 2 | 3, StepStatus>>;\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. The booking value itself is\n * owned by the consumer through `value` / `onChange`, so the handle\n * deliberately exposes only step navigation — not the selected\n * service / date / time.\n */\nexport interface StepperCalendarHandle {\n getCurrentStep: () => number;\n getTotalSteps: () => number;\n gotoStep: (step: number) => void;\n next: () => void;\n previous: () => void;\n}\n\n/* -------------------------------------------------------------------- */\n/* Service grid (Step 0) */\n/* -------------------------------------------------------------------- */\n\ninterface ServiceGridProps {\n services: StepperCalendarService[];\n selectedId?: string;\n onSelect: (id: string) => void;\n durationLabel: (minutes: number) => string;\n groupLabel: string;\n}\n\nconst ServiceGrid = forwardRef<HTMLDivElement, ServiceGridProps>(\n ({ services, selectedId, onSelect, durationLabel, groupLabel }, ref) => {\n const itemRefs = useRef<(HTMLButtonElement | null)[]>([]);\n const focusedIndex = (() => {\n const i = services.findIndex((s) => s.id === selectedId);\n return i >= 0 ? i : 0;\n })();\n\n const moveFocus = (next: number) => {\n const wrapped = (next + services.length) % services.length;\n const target = itemRefs.current[wrapped];\n if (!target) return;\n // Per WAI-ARIA radiogroup, arrow keys move focus AND selection.\n target.focus();\n const svc = services[wrapped];\n if (svc) onSelect(svc.id);\n };\n\n const handleKeyDown = (\n event: KeyboardEvent<HTMLButtonElement>,\n currentIndex: number,\n ) => {\n // RTL inversion: in an RTL document, ArrowLeft visually advances forward.\n const isRtl =\n typeof document !== 'undefined' &&\n document.documentElement.dir === 'rtl';\n const forward = isRtl ? 'ArrowLeft' : 'ArrowRight';\n const back = isRtl ? 'ArrowRight' : 'ArrowLeft';\n if (event.key === forward || event.key === 'ArrowDown') {\n event.preventDefault();\n moveFocus(currentIndex + 1);\n return;\n }\n if (event.key === back || event.key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(currentIndex - 1);\n return;\n }\n if (event.key === 'Home') {\n event.preventDefault();\n moveFocus(0);\n return;\n }\n if (event.key === 'End') {\n event.preventDefault();\n moveFocus(services.length - 1);\n }\n };\n\n return (\n <div\n ref={ref}\n role=\"radiogroup\"\n aria-label={groupLabel}\n className=\"ds:grid ds:gap-[var(--spacing-sm)] ds:sm:grid-cols-2\"\n >\n {services.map((svc, index) => {\n const checked = svc.id === selectedId;\n const isRovingTabStop = index === focusedIndex;\n return (\n <button\n key={svc.id}\n ref={(el) => {\n itemRefs.current[index] = el;\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={checked}\n tabIndex={isRovingTabStop ? 0 : -1}\n onClick={() => onSelect(svc.id)}\n onKeyDown={(e) => handleKeyDown(e, index)}\n className={serviceCardVariants()}\n >\n <span className=\"type-body-sm ds:font-[var(--font-weight-semibold)] ds:text-[var(--foreground)]\">\n {svc.label}\n </span>\n {svc.description ? (\n <span className=\"type-meta ds:text-[var(--muted-foreground)]\">\n {svc.description}\n </span>\n ) : null}\n <span className=\"type-meta ds:text-[var(--muted-foreground)]\">\n {durationLabel(svc.durationMin)}\n </span>\n </button>\n );\n })}\n </div>\n );\n },\n);\nServiceGrid.displayName = 'StepperCalendar.ServiceGrid';\n\n/* -------------------------------------------------------------------- */\n/* Inline month grid (Step 1) */\n/* -------------------------------------------------------------------- */\n\ntype WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\ninterface MonthGridProps {\n availableDates: Set<string>;\n selectedDate?: string;\n onSelectDate: (iso: string) => void;\n loading: boolean;\n locale: string;\n weekStartsOn: WeekStart;\n prevLabel: string;\n nextLabel: string;\n emptyLabel: string;\n}\n\nconst MonthGrid = forwardRef<HTMLDivElement, MonthGridProps>(\n (\n {\n availableDates,\n selectedDate,\n onSelectDate,\n loading,\n locale,\n weekStartsOn,\n prevLabel,\n nextLabel,\n emptyLabel,\n },\n ref,\n ) => {\n const initialMonth = useMemo(() => {\n if (selectedDate) return parseISO(selectedDate);\n const first = [...availableDates].sort()[0];\n return first ? parseISO(first) : new Date();\n }, [availableDates, selectedDate]);\n\n const [month, setMonth] = useState<Date>(initialMonth);\n const [focusedDay, setFocusedDay] = useState<Date>(\n selectedDate ? parseISO(selectedDate) : initialMonth,\n );\n\n // Build the 6x7 grid (always full weeks for stable layout).\n const monthStart = startOfMonth(month);\n const gridStart = startOfWeek(monthStart, { weekStartsOn });\n const days: Date[] = useMemo(() => {\n const cells: Date[] = [];\n for (let i = 0; i < 42; i += 1) {\n cells.push(addDays(gridStart, i));\n }\n return cells;\n }, [gridStart]);\n\n const weekdayLabels = useMemo(() => {\n const base = startOfWeek(new Date(), { weekStartsOn });\n const fmt = new Intl.DateTimeFormat(locale, { weekday: 'short' });\n return Array.from({ length: 7 }, (_, i) => fmt.format(addDays(base, i)));\n }, [locale, weekStartsOn]);\n\n const monthLabel = useMemo(() => {\n try {\n return new Intl.DateTimeFormat(locale, {\n month: 'long',\n year: 'numeric',\n }).format(month);\n } catch {\n return fnsFormat(month, 'MMMM yyyy');\n }\n }, [locale, month]);\n\n const isAvailable = useCallback(\n (d: Date) => availableDates.has(isoDay(d)),\n [availableDates],\n );\n\n const moveFocus = useCallback(\n (next: Date) => {\n setFocusedDay(next);\n if (!isSameMonth(next, month)) setMonth(startOfMonth(next));\n },\n [month],\n );\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const map: Record<string, number> = {\n ArrowLeft: -1,\n ArrowRight: 1,\n ArrowUp: -7,\n ArrowDown: 7,\n };\n if (event.key in map) {\n event.preventDefault();\n moveFocus(addDays(focusedDay, map[event.key]));\n return;\n }\n if (event.key === 'Home') {\n event.preventDefault();\n moveFocus(startOfWeek(focusedDay, { weekStartsOn }));\n return;\n }\n if (event.key === 'End') {\n event.preventDefault();\n moveFocus(addDays(startOfWeek(focusedDay, { weekStartsOn }), 6));\n return;\n }\n if (event.key === 'PageUp') {\n event.preventDefault();\n moveFocus(subMonths(focusedDay, 1));\n return;\n }\n if (event.key === 'PageDown') {\n event.preventDefault();\n moveFocus(addMonths(focusedDay, 1));\n return;\n }\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (isAvailable(focusedDay)) onSelectDate(isoDay(focusedDay));\n }\n };\n\n const focusedRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n // Move focus to the focused day when it changes. Note: when the parent\n // StepperCalendar transitions Service → Date, its own step-change focus\n // effect *also* tries to focus the body's first interactive element. In\n // practice this effect runs deeper in the tree and after mount, so it\n // wins — but consumers should be aware of the interaction if they\n // tweak the ordering.\n focusedRef.current?.focus();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [focusedDay.getTime()]);\n\n if (loading) {\n return (\n <div ref={ref} className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <Skeleton variant=\"text\" size=\"md\" width=\"40%\" />\n <div className={monthGridVariants()}>\n {Array.from({ length: 42 }, (_, i) => (\n <Skeleton\n key={`day-skeleton-${i}`}\n variant=\"rounded\"\n size=\"md\"\n height=\"40px\"\n />\n ))}\n </div>\n </div>\n );\n }\n\n if (availableDates.size === 0) {\n return (\n <div ref={ref}>\n <EmptyState variant=\"no-results\" title={emptyLabel} />\n </div>\n );\n }\n\n return (\n <div ref={ref} className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <div className={monthHeaderVariants()}>\n <IconButton\n icon={<ChevronLeft />}\n aria-label={prevLabel}\n size=\"sm\"\n intent=\"ghost\"\n flipIconInRtl\n onClick={() => setMonth(subMonths(month, 1))}\n />\n <span\n className=\"type-body-sm ds:font-[var(--font-weight-semibold)]\"\n aria-live=\"polite\"\n >\n {monthLabel}\n </span>\n <IconButton\n icon={<ChevronRight />}\n aria-label={nextLabel}\n size=\"sm\"\n intent=\"ghost\"\n flipIconInRtl\n onClick={() => setMonth(addMonths(month, 1))}\n />\n </div>\n <div\n role=\"grid\"\n aria-label={monthLabel}\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\"\n onKeyDown={handleKeyDown}\n >\n <div className={monthGridVariants()} role=\"row\">\n {weekdayLabels.map((wd) => (\n <span\n key={wd}\n role=\"columnheader\"\n className=\"type-meta ds:text-center ds:text-[var(--muted-foreground)]\"\n >\n {wd}\n </span>\n ))}\n </div>\n {Array.from({ length: 6 }, (_, weekIndex) => {\n const week = days.slice(weekIndex * 7, weekIndex * 7 + 7);\n return (\n <div\n key={`week-${weekIndex}`}\n role=\"row\"\n className={monthGridVariants()}\n >\n {week.map((d) => {\n const iso = isoDay(d);\n const outside = !isSameMonth(d, month);\n const available = isAvailable(d);\n const selected = selectedDate === iso;\n const isFocused = isSameDay(d, focusedDay);\n return (\n <button\n key={iso}\n ref={isFocused ? focusedRef : undefined}\n type=\"button\"\n role=\"gridcell\"\n aria-selected={selected}\n aria-disabled={!available || undefined}\n disabled={!available}\n data-outside={outside || undefined}\n tabIndex={isFocused ? 0 : -1}\n onClick={() => available && onSelectDate(iso)}\n className={dayCellVariants()}\n >\n {fnsFormat(d, 'd')}\n </button>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nMonthGrid.displayName = 'StepperCalendar.MonthGrid';\n\n/* -------------------------------------------------------------------- */\n/* Time step body */\n/* -------------------------------------------------------------------- */\n\ninterface TimeStepBodyProps {\n date?: string;\n slots: string[];\n selectedTime?: string;\n loading: boolean;\n emptyLabel: string;\n onSelect: (time: string) => void;\n}\n\nfunction TimeStepBody({\n date,\n slots,\n selectedTime,\n loading,\n emptyLabel,\n onSelect,\n}: TimeStepBodyProps) {\n if (!date) return null;\n if (loading) {\n return (\n <SlotGrid\n days={[{ date, slots: [] }]}\n state=\"loading\"\n />\n );\n }\n if (slots.length === 0) {\n return <EmptyState variant=\"no-results\" title={emptyLabel} />;\n }\n const slotObjects: SlotGridSlot[] = slots.map((time) => {\n // Build a Date from `date` + `time` for `Intl` formatting.\n const [h, m] = time.split(':');\n const start = parseISO(date);\n start.setHours(Number(h), Number(m), 0, 0);\n return {\n id: `${date}T${time}`,\n start,\n label: time,\n };\n });\n const day: SlotGridDay = { date, slots: slotObjects };\n return (\n <SlotGrid\n days={[day]}\n selectedSlotId={selectedTime ? `${date}T${selectedTime}` : undefined}\n onSlotSelect={(slot) => {\n // Validate against the documented `${yyyy-mm-dd}T${HH:mm}` shape so\n // an unexpected ID surfaces as a no-op rather than a malformed time.\n const match = SLOT_ID_PATTERN.exec(slot.id);\n if (match) onSelect(match[2]);\n }}\n />\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nconst StepperCalendar = forwardRef<StepperCalendarHandle, StepperCalendarProps>(\n (\n {\n services,\n availableDates,\n availableSlots,\n value,\n onChange,\n onSubmit,\n detailsFields,\n loadingDates = false,\n loadingSlots = false,\n stepStatuses,\n layout = 'vertical',\n density = 'comfortable',\n 'aria-label': ariaLabel,\n id,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const locale = i18n.language ?? 'en';\n const weekStartsOn = useMemo(\n () => resolveFirstDay(locale) as WeekStart,\n [locale],\n );\n\n // Derive max-allowed step from value, then clamp internal active step.\n const maxAllowed = firstIncompleteStep(value);\n const [activeStep, setActiveStep] = useState<number>(maxAllowed);\n // If `value` regresses (consumer cleared a field), pull active back.\n useEffect(() => {\n if (activeStep > maxAllowed) setActiveStep(maxAllowed);\n }, [activeStep, maxAllowed]);\n\n const headingRef = useRef<HTMLHeadingElement>(null);\n const isFirstRenderRef = useRef(true);\n\n // Move focus to the new step's heading when activeStep changes (skip\n // first render to avoid stealing focus on mount). Targeting the heading\n // (rather than the first interactive control) is the pattern recommended\n // by 05-accessibility.mdx — screen-reader users hear the step label\n // before any field, and sighted keyboard users can Tab into the form.\n useEffect(() => {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false;\n return;\n }\n headingRef.current?.focus();\n }, [activeStep]);\n\n const steps: StepSpec[] = useMemo(\n () => [\n {\n label: t('navigation.stepperCalendar.steps.service'),\n status: stepStatuses?.[0],\n },\n {\n label: t('navigation.stepperCalendar.steps.date'),\n status: stepStatuses?.[1],\n },\n {\n label: t('navigation.stepperCalendar.steps.time'),\n status: stepStatuses?.[2],\n },\n {\n label: t('navigation.stepperCalendar.steps.details'),\n status: stepStatuses?.[3],\n },\n ],\n [stepStatuses, t],\n );\n\n const label = ariaLabel ?? t('navigation.stepperCalendar.label');\n const backLabel = t('navigation.stepperCalendar.actions.back');\n const nextLabel = t('navigation.stepperCalendar.actions.next');\n const submitLabel = t('navigation.stepperCalendar.actions.submit');\n const emptyTimeLabel = t('navigation.stepperCalendar.time.empty');\n const prevMonthLabel = t('navigation.stepperCalendar.date.previousMonth');\n const nextMonthLabel = t('navigation.stepperCalendar.date.nextMonth');\n const serviceGroupLabel = t('navigation.stepperCalendar.steps.service');\n\n const durationLabel = useCallback(\n (minutes: number) =>\n t('navigation.stepperCalendar.service.duration', { minutes }),\n [t],\n );\n\n const canAdvance = (() => {\n if (activeStep === 0) return Boolean(value.serviceId);\n if (activeStep === 1) return Boolean(value.date);\n if (activeStep === 2) return Boolean(value.time);\n return false; // step 3 is terminal\n })();\n\n const handleServiceSelect = (serviceId: string) => {\n onChange({ ...value, serviceId });\n // Auto-advance for conversion. Use a short delay so users see the\n // selection register before the step swaps. Plain `setTimeout` (not\n // `window.setTimeout`) so the component does not assume a DOM global.\n setTimeout(() => {\n setActiveStep((s) => (s === 0 ? 1 : s));\n }, 120);\n };\n\n const handleDateSelect = (date: string) => {\n // Clear time when date changes.\n onChange({ ...value, date, time: undefined });\n };\n\n const handleTimeSelect = (time: string) => {\n onChange({ ...value, time });\n };\n\n const handleBack = () => setActiveStep((s) => Math.max(0, s - 1));\n const handleNext = () =>\n setActiveStep((s) => Math.min(TOTAL_STEPS - 1, s + 1));\n const handleSubmit = () => onSubmit?.(value);\n\n const headingId = `stepper-calendar-step-${activeStep}-heading`;\n const availableDateSet = useMemo(\n () => new Set(availableDates),\n [availableDates],\n );\n\n /* ---- Active step body ---- */\n let body: ReactNode = null;\n if (activeStep === 0) {\n body = (\n <ServiceGrid\n services={services}\n selectedId={value.serviceId}\n onSelect={handleServiceSelect}\n durationLabel={durationLabel}\n groupLabel={serviceGroupLabel}\n />\n );\n } else if (activeStep === 1) {\n body = (\n <MonthGrid\n availableDates={availableDateSet}\n selectedDate={value.date}\n onSelectDate={handleDateSelect}\n loading={loadingDates}\n locale={locale}\n weekStartsOn={weekStartsOn}\n prevLabel={prevMonthLabel}\n nextLabel={nextMonthLabel}\n emptyLabel={emptyTimeLabel}\n />\n );\n } else if (activeStep === 2) {\n body = (\n <TimeStepBody\n date={value.date}\n slots={value.date ? (availableSlots[value.date] ?? []) : []}\n selectedTime={value.time}\n loading={loadingSlots}\n emptyLabel={emptyTimeLabel}\n onSelect={handleTimeSelect}\n />\n );\n } else {\n body = (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n {detailsFields}\n </div>\n );\n }\n\n const isTerminal = activeStep === TOTAL_STEPS - 1;\n const activeState = stateForStep(\n activeStep,\n activeStep,\n stepStatuses?.[activeStep as 0 | 1 | 2 | 3],\n );\n\n const handle = useMemo<StepperCalendarHandle>(\n () => ({\n getCurrentStep: () => activeStep,\n getTotalSteps: () => TOTAL_STEPS,\n gotoStep: (step: number) => {\n const clamped = Math.max(0, Math.min(step, TOTAL_STEPS - 1));\n // Honour the same gating as the UI: don't jump past first-incomplete.\n const allowed = Math.min(clamped, maxAllowed);\n if (allowed !== activeStep) setActiveStep(allowed);\n },\n next: () => {\n if (activeStep < TOTAL_STEPS - 1 && canAdvance) {\n setActiveStep(activeStep + 1);\n }\n },\n previous: () => {\n if (activeStep > 0) setActiveStep(activeStep - 1);\n },\n }),\n [activeStep, maxAllowed, canAdvance],\n );\n useImperativeHandle(ref, () => handle, [handle]);\n\n return (\n <div\n role=\"region\"\n aria-label={label}\n id={id}\n data-component=\"stepper-calendar\"\n data-component-id={id}\n className={rootVariants({ layout, density, className })}\n {...rest}\n >\n <StepperProgress\n activeStep={activeStep}\n steps={steps}\n aria-label={label}\n />\n <section\n aria-labelledby={headingId}\n className={stepBodyVariants({ density })}\n data-step={activeStep}\n data-state={activeState}\n >\n <h2\n ref={headingRef}\n id={headingId}\n tabIndex={-1}\n className=\"type-body-sm ds:font-[var(--font-weight-semibold)] ds:focus:outline-none\"\n >\n {steps[activeStep]?.label}\n </h2>\n {body}\n <div className={actionsRowVariants()}>\n <Button\n type=\"button\"\n intent=\"ghost\"\n size=\"md\"\n onClick={handleBack}\n disabled={activeStep === 0}\n >\n {backLabel}\n </Button>\n {isTerminal ? (\n <Button\n type=\"button\"\n intent=\"primary\"\n size=\"md\"\n onClick={handleSubmit}\n >\n {submitLabel}\n </Button>\n ) : (\n <Button\n type=\"button\"\n intent=\"primary\"\n size=\"md\"\n onClick={handleNext}\n disabled={!canAdvance}\n >\n {nextLabel}\n </Button>\n )}\n </div>\n </section>\n </div>\n );\n },\n);\nStepperCalendar.displayName = 'StepperCalendar';\n\nexport { StepperCalendar };\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — StepperCalendar. */\n/* */\n/* The booking flow's four steps (service / date / time / details) are */\n/* presented as a single component. The adapter exposes the active step */\n/* + total + lets agents step forward / backward or jump to a step. */\n/* The booking value itself is owned by the consumer — the adapter */\n/* deliberately does NOT read selected serviceId / date / time, since */\n/* those flow through the consumer's `value` / `onChange` contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { StepperCalendarHandle } from './stepper-calendar';\n\nexport const stepperCalendarAgent: AgentAdapter<StepperCalendarHandle> = {\n id: 'stepper-calendar',\n capabilities: ['navigate', 'view_change'],\n state: {\n currentStep: {\n type: 'number',\n descriptionKey: 'ui.agent.stepperCalendar.state.currentStep',\n description: 'Zero-indexed active step (0 = service, 1 = date, 2 = time, 3 = details).',\n read: (handle) => handle.getCurrentStep(),\n },\n totalSteps: {\n type: 'number',\n descriptionKey: 'ui.agent.stepperCalendar.state.totalSteps',\n description: 'Total number of steps in the booking flow (always 4).',\n read: (handle) => handle.getTotalSteps(),\n },\n },\n actions: {\n goto_step: {\n safety: 'read',\n argsType: '{ step: number }',\n descriptionKey: 'ui.agent.stepperCalendar.actions.gotoStep',\n description: 'Jump to the given step. Steps beyond the first-incomplete are gated internally.',\n invoke: (handle, args: { step: number }) => {\n handle.gotoStep(args.step);\n },\n },\n next: {\n safety: 'read',\n descriptionKey: 'ui.agent.stepperCalendar.actions.next',\n description: 'Advance to the next step when the current step has a valid value.',\n invoke: (handle) => {\n handle.next();\n },\n },\n previous: {\n safety: 'read',\n descriptionKey: 'ui.agent.stepperCalendar.actions.previous',\n description: 'Return to the previous step.',\n invoke: (handle) => {\n handle.previous();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'stepper-calendar',\n description: 'Marks the StepperCalendar root region.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n"],"names":["subMonths","date","amount","options","addMonths","SLOT_ID_PATTERN","TOTAL_STEPS","rootVariants","cva","stepBodyVariants","serviceCardVariants","monthHeaderVariants","monthGridVariants","dayCellVariants","actionsRowVariants","isoDay","fnsFormat","firstIncompleteStep","value","ServiceGrid","forwardRef","services","selectedId","onSelect","durationLabel","groupLabel","ref","itemRefs","useRef","focusedIndex","i","moveFocus","next","wrapped","target","svc","handleKeyDown","event","currentIndex","isRtl","forward","back","jsx","index","checked","jsxs","el","e","MonthGrid","availableDates","selectedDate","onSelectDate","loading","locale","weekStartsOn","prevLabel","nextLabel","emptyLabel","initialMonth","useMemo","parseISO","first","month","setMonth","useState","focusedDay","setFocusedDay","monthStart","startOfMonth","gridStart","startOfWeek","days","cells","addDays","weekdayLabels","base","fmt","_","monthLabel","isAvailable","useCallback","d","isSameMonth","map","focusedRef","useEffect","_a","Skeleton","EmptyState","IconButton","ChevronLeft","ChevronRight","wd","weekIndex","week","iso","outside","available","selected","isFocused","isSameDay","TimeStepBody","slots","selectedTime","SlotGrid","slotObjects","time","h","m","start","slot","match","StepperCalendar","availableSlots","onChange","onSubmit","detailsFields","loadingDates","loadingSlots","stepStatuses","layout","density","ariaLabel","id","className","rest","t","i18n","useTranslation","resolveFirstDay","maxAllowed","activeStep","setActiveStep","headingRef","isFirstRenderRef","steps","label","backLabel","submitLabel","emptyTimeLabel","prevMonthLabel","nextMonthLabel","serviceGroupLabel","minutes","canAdvance","handleServiceSelect","serviceId","s","handleDateSelect","handleTimeSelect","handleBack","handleNext","handleSubmit","headingId","availableDateSet","body","isTerminal","activeState","stateForStep","handle","step","clamped","allowed","useImperativeHandle","StepperProgress","Button","stepperCalendarAgent","args"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,149 +0,0 @@
1
- import { jsxs as l, jsx as o } from "react/jsx-runtime";
2
- import { forwardRef as A, useRef as B, useState as I, useEffect as L, useLayoutEffect as O, useMemo as $, useImperativeHandle as q } from "react";
3
- import { c as n } from "./index-D2ZczOXr.js";
4
- import { useTranslation as D } from "react-i18next";
5
- const F = n("ds:flex ds:w-full", {
6
- variants: {
7
- captionPosition: {
8
- top: "ds:flex-col ds:gap-[var(--spacing-xs)]",
9
- bottom: "ds:flex-col-reverse ds:gap-[var(--spacing-xs)]"
10
- }
11
- },
12
- defaultVariants: { captionPosition: "top" }
13
- }), G = n(
14
- "ds:relative ds:w-full ds:overflow-hidden ds:rounded-[var(--radius-full)] ds:bg-[var(--muted)]",
15
- {
16
- variants: {
17
- size: {
18
- sm: "ds:h-[var(--spacing-xs)]",
19
- default: "ds:h-[var(--spacing-sm)]"
20
- }
21
- },
22
- defaultVariants: { size: "default" }
23
- }
24
- ), J = n(
25
- [
26
- "ds:block ds:h-full ds:rounded-[var(--radius-full)]",
27
- "ds:[inline-size:calc(var(--stepper-progress-value,0)*1%)]",
28
- "ds:transition-[inline-size,background-color] ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]",
29
- "ds:motion-reduce:transition-none"
30
- ].join(" "),
31
- {
32
- variants: {
33
- tone: {
34
- progress: "ds:bg-[var(--primary)]",
35
- error: "ds:bg-[var(--destructive)]",
36
- complete: "ds:bg-[var(--success,var(--primary))]"
37
- }
38
- },
39
- defaultVariants: { tone: "progress" }
40
- }
41
- ), K = n(
42
- "ds:flex ds:items-baseline ds:gap-[var(--spacing-sm)] ds:flex-wrap",
43
- {
44
- variants: {
45
- tone: {
46
- progress: "ds:text-[var(--foreground)]",
47
- error: "ds:text-[var(--destructive)]",
48
- complete: "ds:text-[var(--foreground)]"
49
- }
50
- },
51
- defaultVariants: { tone: "progress" }
52
- }
53
- ), Q = A(
54
- ({
55
- activeStep: y,
56
- steps: d,
57
- "aria-label": M,
58
- hideCaption: N = !1,
59
- size: V = "default",
60
- captionPosition: w = "top",
61
- id: c,
62
- onStepChange: t,
63
- className: P,
64
- ...T
65
- }, j) => {
66
- const { t: u } = D(), p = B(null), e = d.length, r = Math.max(0, Math.min(y, e - 1)), s = d[r], f = (s == null ? void 0 : s.status) === "error" ? "error" : "current", m = r + 1, z = e === 0 ? 0 : m / e * 100, v = f === "error" ? "error" : r === e - 1 && e > 0 ? "complete" : "progress", [k, R] = I(!1);
67
- L(() => {
68
- R(!0);
69
- }, []);
70
- const g = k ? z : 0;
71
- O(() => {
72
- var a;
73
- (a = p.current) == null || a.style.setProperty(
74
- "--stepper-progress-value",
75
- String(g)
76
- );
77
- }, [g]);
78
- const x = u("navigation.stepper.stepOfTotal", {
79
- n: r + 1,
80
- total: e
81
- }), E = M ?? u("navigation.stepper.label"), i = f === "error" && (s != null && s.description) ? s.description : null, H = [
82
- x,
83
- s ? `— ${s.label}` : null,
84
- i
85
- ].filter(Boolean).join(" "), b = $(
86
- () => ({
87
- getCurrentStep: () => r,
88
- getTotalSteps: () => e,
89
- gotoStep: (a) => {
90
- if (!t) return;
91
- const h = Math.max(0, Math.min(a, Math.max(e - 1, 0)));
92
- h !== r && t(h);
93
- },
94
- next: () => {
95
- t && r < e - 1 && t(r + 1);
96
- },
97
- previous: () => {
98
- t && r > 0 && t(r - 1);
99
- }
100
- }),
101
- [r, e, t]
102
- );
103
- return q(j, () => b, [b]), /* @__PURE__ */ l(
104
- "div",
105
- {
106
- id: c,
107
- "data-component": "stepper-progress",
108
- "data-component-id": c,
109
- className: F({ captionPosition: w, className: P }),
110
- ...T,
111
- children: [
112
- N ? null : /* @__PURE__ */ l("div", { className: K({ tone: v }), "aria-hidden": "true", children: [
113
- /* @__PURE__ */ o("span", { className: "type-meta ds:font-[var(--font-weight-semibold)]", children: x }),
114
- s ? /* @__PURE__ */ l("span", { className: "type-meta ds:text-[var(--muted-foreground)]", children: [
115
- "— ",
116
- s.label
117
- ] }) : null,
118
- i ? /* @__PURE__ */ o("span", { className: "type-meta ds:ms-auto ds:text-[var(--destructive)]", children: i }) : null
119
- ] }),
120
- /* @__PURE__ */ o(
121
- "div",
122
- {
123
- role: "progressbar",
124
- "aria-label": E,
125
- "aria-valuemin": 0,
126
- "aria-valuemax": e,
127
- "aria-valuenow": m,
128
- "aria-valuetext": H,
129
- className: G({ size: V }),
130
- children: /* @__PURE__ */ o(
131
- "span",
132
- {
133
- ref: p,
134
- "aria-hidden": "true",
135
- className: J({ tone: v })
136
- }
137
- )
138
- }
139
- )
140
- ]
141
- }
142
- );
143
- }
144
- );
145
- Q.displayName = "StepperProgress";
146
- export {
147
- Q as S
148
- };
149
- //# sourceMappingURL=stepper-progress-Bmen-YXB.js.map