@alfadocs/ui-kit 0.1.7 → 0.1.9

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 (991) hide show
  1. package/README.md +18 -0
  2. package/dist/_chunks/{accordion-B6fyINUk.js → accordion-BEnrZmAn.js} +34 -32
  3. package/dist/_chunks/accordion.agent-BTjeO1Sx.js +52 -0
  4. package/dist/_chunks/{agenda-card-DIWDvWum.js → agenda-card-DwLIxgi7.js} +2 -1
  5. package/dist/_chunks/agenda-card.agent-B_R47-c9.js +22 -0
  6. package/dist/_chunks/agenda-tray-DUvengGQ.js +178 -0
  7. package/dist/_chunks/ai-prompt-input.agent-0NHYLTWD.js +476 -0
  8. package/dist/_chunks/{aspect-ratio-CxsdG8vk.js → aspect-ratio-DeSNzASA.js} +12 -12
  9. package/dist/_chunks/audio-recorder.agent--VKeykUp.js +458 -0
  10. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js +432 -0
  11. package/dist/_chunks/{balance-cell-renderer-BWm3knY9.js → balance-cell-renderer-5CA7zpAi.js} +3 -3
  12. package/dist/_chunks/breadcrumb.agent-GM2hAKFX.js +371 -0
  13. package/dist/_chunks/{chart.agent-BdS-_8MO.js → chart.agent-_pRYS17d.js} +112 -105
  14. package/dist/_chunks/{chat-container-Cm3SlR2p.js → chat-container-Dl0Kfy5a.js} +33 -32
  15. package/dist/_chunks/{chat-container.agent-Dhw9xCJt.js → chat-container.agent-CM4WModE.js} +9 -4
  16. package/dist/_chunks/{chat-input-DreOPP8A.js → chat-input-C_tMQv92.js} +108 -82
  17. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js +69 -0
  18. package/dist/_chunks/checkbox-CtPM6Rup.js +196 -0
  19. package/dist/_chunks/checkbox-group-BTdEB6Yo.js +208 -0
  20. package/dist/_chunks/collapsible.agent-DkS1jVyn.js +149 -0
  21. package/dist/_chunks/{color-picker-e9PmpaGH.js → color-picker-94qcBZqZ.js} +234 -184
  22. package/dist/_chunks/combobox.agent-CAvUkkIe.js +410 -0
  23. package/dist/_chunks/{command-palette.agent-js2rxgeR.js → command-palette.agent-HatEt_EM.js} +161 -121
  24. package/dist/_chunks/date-picker-BqPTn7bO.js +1813 -0
  25. package/dist/_chunks/date-range-picker-B2hGsffw.js +274 -0
  26. package/dist/_chunks/date-time-picker-Bzt0S8yO.js +293 -0
  27. package/dist/_chunks/dialog.agent-Daf1TTko.js +179 -0
  28. package/dist/_chunks/{dropdown-menu-Cw3EyPZv.js → dropdown-menu-C7AZipNz.js} +75 -71
  29. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js +43 -0
  30. package/dist/_chunks/{file-upload.agent-B9AN82LA.js → file-upload.agent-DJaH2dHg.js} +275 -243
  31. package/dist/_chunks/freemium-paywall.agent-_nQqLyRF.js +260 -0
  32. package/dist/_chunks/{leo-sidebar-nbHib2D-.js → leo-sidebar-BwINPdix.js} +6 -6
  33. package/dist/_chunks/link-QheANk74.js +121 -0
  34. package/dist/_chunks/list.agent-D0iWt4VI.js +420 -0
  35. package/dist/_chunks/{message-card-qAp2-WQK.js → message-card-qhoGv947.js} +2 -1
  36. package/dist/_chunks/message-card.agent-4IeIgrnJ.js +22 -0
  37. package/dist/_chunks/message-tray-xHUCra-Y.js +419 -0
  38. package/dist/_chunks/{multi-select.agent-CNsyW3n9.js → multi-select.agent-Do6CeQUT.js} +239 -179
  39. package/dist/_chunks/navigation-menu.agent-D69ND6Qq.js +266 -0
  40. package/dist/_chunks/{notification-card-BF2_veHy.js → notification-card-CsVEYJE-.js} +13 -12
  41. package/dist/_chunks/notification-card.agent-Rqt3ofk9.js +22 -0
  42. package/dist/_chunks/notification-tray-DTXMq42J.js +444 -0
  43. package/dist/_chunks/number-input-fvGmnRy9.js +333 -0
  44. package/dist/_chunks/otp-input-EglXOUue.js +257 -0
  45. package/dist/_chunks/pagination.agent-BkZQl45y.js +422 -0
  46. package/dist/_chunks/password-input-D6kuYXmr.js +304 -0
  47. package/dist/_chunks/{patient-shell-7cXqIMFg.js → patient-shell-BRmrrUUW.js} +3 -3
  48. package/dist/_chunks/{payment-form-hcl-gGrp.js → payment-form-BWaXas8z.js} +120 -118
  49. package/dist/_chunks/{payment-form.agent-BkEnRerR.js → payment-form.agent-kuIfodCj.js} +7 -2
  50. package/dist/_chunks/{pdf-viewer.agent-CfIHhcHx.js → pdf-viewer.agent-BaGEDheA.js} +358 -351
  51. package/dist/_chunks/phone-input-C8Op4sEc.js +513 -0
  52. package/dist/_chunks/popover-kFN8s84V.js +229 -0
  53. package/dist/_chunks/popover.agent-K_d1cfbj.js +39 -0
  54. package/dist/_chunks/privacy-lock.agent-C1i1-T58.js +185 -0
  55. package/dist/_chunks/progress-wNsqkw8I.js +253 -0
  56. package/dist/_chunks/progress.agent-C68rDOXL.js +27 -0
  57. package/dist/_chunks/{radio-cs8N1wJi.js → radio-DvF59ThA.js} +14 -13
  58. package/dist/_chunks/radio-group-Cz1a4QCA.js +152 -0
  59. package/dist/_chunks/recaptcha-widget.agent-BGHpU5zD.js +183 -0
  60. package/dist/_chunks/resizable.agent-CMwZzvsi.js +456 -0
  61. package/dist/_chunks/{rich-text-editor.agent-COSb5_2D.js → rich-text-editor.agent-DnE125Tz.js} +221 -214
  62. package/dist/_chunks/search-bar.agent-DxFAxctc.js +562 -0
  63. package/dist/_chunks/search-input-Xw3cdWXW.js +227 -0
  64. package/dist/_chunks/search-input.agent-CfZvViOd.js +69 -0
  65. package/dist/_chunks/select-DY1Cb2Tg.js +410 -0
  66. package/dist/_chunks/{sheet-BhNpLHc9.js → sheet-B9kH9pcI.js} +55 -54
  67. package/dist/_chunks/sheet.agent-QAyTOxgk.js +46 -0
  68. package/dist/_chunks/{sidebar-OVzwN3jE.js → sidebar-CHF5xr_P.js} +188 -185
  69. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js +49 -0
  70. package/dist/_chunks/{signature-capture.agent-C38VPXxg.js → signature-capture.agent-BpeDwFht.js} +127 -120
  71. package/dist/_chunks/slider-CcsQTZTA.js +322 -0
  72. package/dist/_chunks/sparkline.agent-56Sj7nOP.js +245 -0
  73. package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js +322 -0
  74. package/dist/_chunks/stepper-calendar.agent-9iT3ClIB.js +646 -0
  75. package/dist/_chunks/stepper-progress-Bmen-YXB.js +149 -0
  76. package/dist/_chunks/stepper-progress.agent-q9InWca4.js +61 -0
  77. package/dist/_chunks/suggestion-chip-DhFrkRPj.js +169 -0
  78. package/dist/_chunks/suggestion-chip.agent-6sNWFj7m.js +46 -0
  79. package/dist/_chunks/switch-BYEH8I53.js +196 -0
  80. package/dist/_chunks/{tabs.agent-BpbVA-Zh.js → tabs.agent-h7NvsTR1.js} +146 -123
  81. package/dist/_chunks/{task-card-yW7tKlG4.js → task-card-CY5ztNkU.js} +2 -1
  82. package/dist/_chunks/task-card.agent-CUPKYd7w.js +22 -0
  83. package/dist/_chunks/task-tray-CCoUdorl.js +194 -0
  84. package/dist/_chunks/text-area-C_M8wliK.js +239 -0
  85. package/dist/_chunks/text-input-BX39e6T6.js +272 -0
  86. package/dist/_chunks/theme-toggle.agent-btmXTWdW.js +394 -0
  87. package/dist/_chunks/time-picker-B8AMIrX7.js +410 -0
  88. package/dist/_chunks/timeline.agent-CRPza9wc.js +279 -0
  89. package/dist/_chunks/{toast-lOhJDKOH.js → toast.agent-BjEGuq1Z.js} +403 -342
  90. package/dist/_chunks/{tooth-scheme.agent-BlDyu-Gx.js → tooth-scheme.agent-CWrQBjJM.js} +218 -211
  91. package/dist/_chunks/transcript-panel.agent-BXEYP6w-.js +337 -0
  92. package/dist/_chunks/{workflow-map-XeqHDFvp.js → workflow-map-D2A7rTEG.js} +465 -368
  93. package/dist/agent-catalog.json +2929 -268
  94. package/dist/components/accordion/accordion.agent.d.ts +2 -1
  95. package/dist/components/accordion/accordion.d.ts +6 -0
  96. package/dist/components/accordion/index.js +2 -2
  97. package/dist/components/agenda-card/agenda-card.agent.d.ts +3 -0
  98. package/dist/components/agenda-card/index.d.ts +1 -0
  99. package/dist/components/agenda-card/index.js +3 -1
  100. package/dist/components/agenda-tray/agenda-tray.agent.d.ts +4 -0
  101. package/dist/components/agenda-tray/agenda-tray.d.ts +19 -2
  102. package/dist/components/agenda-tray/index.d.ts +2 -1
  103. package/dist/components/agenda-tray/index.js +3 -2
  104. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts +4 -0
  105. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts +18 -1
  106. package/dist/components/ai-prompt-input/index.d.ts +2 -1
  107. package/dist/components/ai-prompt-input/index.js +3 -2
  108. package/dist/components/aspect-ratio/index.js +1 -1
  109. package/dist/components/audio-recorder/audio-recorder.agent.d.ts +4 -0
  110. package/dist/components/audio-recorder/audio-recorder.d.ts +10 -1
  111. package/dist/components/audio-recorder/index.d.ts +2 -1
  112. package/dist/components/audio-recorder/index.js +3 -2
  113. package/dist/components/autocomplete/autocomplete.agent.d.ts +2 -1
  114. package/dist/components/autocomplete/autocomplete.d.ts +10 -0
  115. package/dist/components/autocomplete/index.js +1 -1
  116. package/dist/components/breadcrumb/breadcrumb.agent.d.ts +8 -0
  117. package/dist/components/breadcrumb/breadcrumb.d.ts +21 -2
  118. package/dist/components/breadcrumb/index.d.ts +2 -1
  119. package/dist/components/breadcrumb/index.js +5 -4
  120. package/dist/components/button/button.d.ts +1 -1
  121. package/dist/components/chart/chart.d.ts +2 -0
  122. package/dist/components/chart/index.js +1 -1
  123. package/dist/components/chat-container/chat-container.d.ts +3 -1
  124. package/dist/components/chat-container/index.js +2 -2
  125. package/dist/components/chat-input/chat-input.agent.d.ts +4 -0
  126. package/dist/components/chat-input/chat-input.d.ts +10 -1
  127. package/dist/components/chat-input/index.d.ts +2 -1
  128. package/dist/components/chat-input/index.js +4 -2
  129. package/dist/components/checkbox/checkbox.agent.d.ts +4 -0
  130. package/dist/components/checkbox/checkbox.d.ts +6 -0
  131. package/dist/components/checkbox/index.js +1 -1
  132. package/dist/components/checkbox-group/checkbox-group.agent.d.ts +4 -0
  133. package/dist/components/checkbox-group/checkbox-group.d.ts +8 -0
  134. package/dist/components/checkbox-group/index.js +1 -1
  135. package/dist/components/collapsible/collapsible.agent.d.ts +4 -0
  136. package/dist/components/collapsible/collapsible.d.ts +8 -1
  137. package/dist/components/collapsible/index.d.ts +2 -1
  138. package/dist/components/collapsible/index.js +4 -3
  139. package/dist/components/color-picker/color-picker.agent.d.ts +4 -0
  140. package/dist/components/color-picker/color-picker.d.ts +5 -0
  141. package/dist/components/color-picker/index.js +1 -1
  142. package/dist/components/combobox/combobox.agent.d.ts +2 -1
  143. package/dist/components/combobox/combobox.d.ts +10 -0
  144. package/dist/components/combobox/index.js +1 -1
  145. package/dist/components/command-palette/command-palette.agent.d.ts +2 -1
  146. package/dist/components/command-palette/command-palette.d.ts +7 -0
  147. package/dist/components/command-palette/index.js +1 -1
  148. package/dist/components/data-table/index.js +1 -1
  149. package/dist/components/date-picker/date-picker.agent.d.ts +4 -0
  150. package/dist/components/date-picker/date-picker.d.ts +16 -1
  151. package/dist/components/date-picker/index.d.ts +2 -1
  152. package/dist/components/date-picker/index.js +3 -2
  153. package/dist/components/date-range-picker/date-range-picker.agent.d.ts +4 -0
  154. package/dist/components/date-range-picker/date-range-picker.d.ts +16 -1
  155. package/dist/components/date-range-picker/index.d.ts +2 -1
  156. package/dist/components/date-range-picker/index.js +3 -2
  157. package/dist/components/date-time-picker/date-time-picker.agent.d.ts +4 -0
  158. package/dist/components/date-time-picker/date-time-picker.d.ts +16 -1
  159. package/dist/components/date-time-picker/index.d.ts +2 -1
  160. package/dist/components/date-time-picker/index.js +3 -2
  161. package/dist/components/dialog/dialog.agent.d.ts +5 -6
  162. package/dist/components/dialog/dialog.d.ts +11 -2
  163. package/dist/components/dialog/index.js +1 -1
  164. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts +2 -1
  165. package/dist/components/dropdown-menu/dropdown-menu.d.ts +10 -2
  166. package/dist/components/dropdown-menu/index.js +2 -2
  167. package/dist/components/file-upload/file-upload.agent.d.ts +2 -1
  168. package/dist/components/file-upload/file-upload.d.ts +12 -0
  169. package/dist/components/file-upload/index.js +1 -1
  170. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts +4 -0
  171. package/dist/components/freemium-paywall/freemium-paywall.d.ts +8 -1
  172. package/dist/components/freemium-paywall/index.d.ts +2 -1
  173. package/dist/components/freemium-paywall/index.js +3 -2
  174. package/dist/components/index.d.ts +2 -0
  175. package/dist/components/link/index.d.ts +2 -0
  176. package/dist/components/link/index.js +5 -0
  177. package/dist/components/link/link.d.ts +39 -0
  178. package/dist/components/list/index.d.ts +2 -1
  179. package/dist/components/list/index.js +3 -2
  180. package/dist/components/list/list.agent.d.ts +4 -0
  181. package/dist/components/list/list.d.ts +8 -2
  182. package/dist/components/message-card/index.d.ts +1 -0
  183. package/dist/components/message-card/index.js +5 -3
  184. package/dist/components/message-card/message-card.agent.d.ts +3 -0
  185. package/dist/components/message-tray/index.d.ts +2 -1
  186. package/dist/components/message-tray/index.js +3 -2
  187. package/dist/components/message-tray/message-tray.agent.d.ts +4 -0
  188. package/dist/components/message-tray/message-tray.d.ts +27 -2
  189. package/dist/components/multi-select/index.js +1 -1
  190. package/dist/components/multi-select/multi-select.agent.d.ts +2 -1
  191. package/dist/components/multi-select/multi-select.d.ts +10 -0
  192. package/dist/components/navigation-menu/index.d.ts +2 -1
  193. package/dist/components/navigation-menu/index.js +7 -6
  194. package/dist/components/navigation-menu/navigation-menu.agent.d.ts +4 -0
  195. package/dist/components/navigation-menu/navigation-menu.d.ts +28 -2
  196. package/dist/components/notification-card/index.d.ts +1 -0
  197. package/dist/components/notification-card/index.js +5 -3
  198. package/dist/components/notification-card/notification-card.agent.d.ts +3 -0
  199. package/dist/components/notification-tray/index.d.ts +2 -1
  200. package/dist/components/notification-tray/index.js +3 -2
  201. package/dist/components/notification-tray/notification-tray.agent.d.ts +4 -0
  202. package/dist/components/notification-tray/notification-tray.d.ts +27 -2
  203. package/dist/components/number-input/index.js +1 -1
  204. package/dist/components/number-input/number-input.agent.d.ts +4 -0
  205. package/dist/components/number-input/number-input.d.ts +7 -0
  206. package/dist/components/otp-input/index.js +1 -1
  207. package/dist/components/otp-input/otp-input.agent.d.ts +4 -0
  208. package/dist/components/otp-input/otp-input.d.ts +10 -0
  209. package/dist/components/pagination/index.js +1 -1
  210. package/dist/components/pagination/pagination.agent.d.ts +2 -1
  211. package/dist/components/pagination/pagination.d.ts +7 -0
  212. package/dist/components/password-input/index.js +1 -1
  213. package/dist/components/password-input/password-input.agent.d.ts +4 -0
  214. package/dist/components/password-input/password-input.d.ts +9 -0
  215. package/dist/components/payment-form/index.js +2 -2
  216. package/dist/components/payment-form/payment-form.d.ts +2 -0
  217. package/dist/components/pdf-viewer/index.js +1 -1
  218. package/dist/components/pdf-viewer/pdf-viewer.d.ts +2 -0
  219. package/dist/components/phone-input/index.js +1 -1
  220. package/dist/components/phone-input/phone-input.agent.d.ts +4 -0
  221. package/dist/components/phone-input/phone-input.d.ts +7 -0
  222. package/dist/components/popover/index.js +2 -2
  223. package/dist/components/popover/popover.agent.d.ts +2 -1
  224. package/dist/components/popover/popover.d.ts +8 -1
  225. package/dist/components/privacy-lock/index.d.ts +2 -1
  226. package/dist/components/privacy-lock/index.js +3 -2
  227. package/dist/components/privacy-lock/privacy-lock.agent.d.ts +4 -0
  228. package/dist/components/privacy-lock/privacy-lock.d.ts +7 -1
  229. package/dist/components/progress/index.js +2 -2
  230. package/dist/components/radio/index.js +1 -1
  231. package/dist/components/radio-group/index.js +2 -2
  232. package/dist/components/radio-group/radio-group.agent.d.ts +4 -0
  233. package/dist/components/radio-group/radio-group.d.ts +5 -0
  234. package/dist/components/recaptcha-widget/index.d.ts +3 -0
  235. package/dist/components/recaptcha-widget/index.js +6 -0
  236. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts +4 -0
  237. package/dist/components/recaptcha-widget/recaptcha-widget.d.ts +56 -0
  238. package/dist/components/resizable/index.js +1 -1
  239. package/dist/components/resizable/resizable.agent.d.ts +2 -1
  240. package/dist/components/resizable/resizable.d.ts +6 -0
  241. package/dist/components/rich-text-editor/index.js +1 -1
  242. package/dist/components/rich-text-editor/rich-text-editor.d.ts +2 -0
  243. package/dist/components/search-bar/index.d.ts +2 -1
  244. package/dist/components/search-bar/index.js +3 -2
  245. package/dist/components/search-bar/search-bar.agent.d.ts +4 -0
  246. package/dist/components/search-bar/search-bar.d.ts +27 -1
  247. package/dist/components/search-input/index.d.ts +2 -1
  248. package/dist/components/search-input/index.js +4 -2
  249. package/dist/components/search-input/search-input.agent.d.ts +4 -0
  250. package/dist/components/search-input/search-input.d.ts +27 -0
  251. package/dist/components/select/index.js +1 -1
  252. package/dist/components/select/select.agent.d.ts +4 -0
  253. package/dist/components/select/select.d.ts +9 -0
  254. package/dist/components/sheet/index.js +2 -2
  255. package/dist/components/sheet/sheet.agent.d.ts +2 -1
  256. package/dist/components/sheet/sheet.d.ts +11 -2
  257. package/dist/components/sidebar/index.js +2 -2
  258. package/dist/components/sidebar/sidebar.agent.d.ts +2 -1
  259. package/dist/components/sidebar/sidebar.d.ts +6 -0
  260. package/dist/components/signature-capture/index.js +1 -1
  261. package/dist/components/signature-capture/signature-capture.d.ts +2 -0
  262. package/dist/components/slider/index.js +1 -1
  263. package/dist/components/slider/slider.agent.d.ts +4 -0
  264. package/dist/components/slider/slider.d.ts +5 -0
  265. package/dist/components/sparkline/index.js +1 -1
  266. package/dist/components/stepper-accordion/index.d.ts +2 -1
  267. package/dist/components/stepper-accordion/index.js +3 -2
  268. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts +4 -0
  269. package/dist/components/stepper-accordion/stepper-accordion.d.ts +19 -1
  270. package/dist/components/stepper-calendar/index.d.ts +2 -1
  271. package/dist/components/stepper-calendar/index.js +3 -2
  272. package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts +4 -0
  273. package/dist/components/stepper-calendar/stepper-calendar.d.ts +19 -1
  274. package/dist/components/stepper-progress/index.d.ts +2 -1
  275. package/dist/components/stepper-progress/index.js +4 -2
  276. package/dist/components/stepper-progress/stepper-progress.agent.d.ts +4 -0
  277. package/dist/components/stepper-progress/stepper-progress.d.ts +26 -1
  278. package/dist/components/suggestion-chip/index.d.ts +2 -1
  279. package/dist/components/suggestion-chip/index.js +5 -3
  280. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts +4 -0
  281. package/dist/components/suggestion-chip/suggestion-chip.d.ts +7 -1
  282. package/dist/components/switch/index.js +1 -1
  283. package/dist/components/switch/switch.agent.d.ts +4 -0
  284. package/dist/components/switch/switch.d.ts +6 -0
  285. package/dist/components/tabs/index.js +1 -1
  286. package/dist/components/tabs/tabs.agent.d.ts +2 -1
  287. package/dist/components/tabs/tabs.d.ts +4 -0
  288. package/dist/components/task-card/index.d.ts +1 -0
  289. package/dist/components/task-card/index.js +5 -3
  290. package/dist/components/task-card/task-card.agent.d.ts +3 -0
  291. package/dist/components/task-tray/index.d.ts +2 -1
  292. package/dist/components/task-tray/index.js +3 -2
  293. package/dist/components/task-tray/task-tray.agent.d.ts +4 -0
  294. package/dist/components/task-tray/task-tray.d.ts +25 -2
  295. package/dist/components/text-area/index.js +1 -1
  296. package/dist/components/text-area/text-area.agent.d.ts +4 -0
  297. package/dist/components/text-area/text-area.d.ts +7 -0
  298. package/dist/components/text-input/index.js +1 -1
  299. package/dist/components/text-input/text-input.agent.d.ts +4 -0
  300. package/dist/components/text-input/text-input.d.ts +10 -0
  301. package/dist/components/theme-toggle/index.d.ts +2 -1
  302. package/dist/components/theme-toggle/index.js +3 -2
  303. package/dist/components/theme-toggle/theme-toggle.agent.d.ts +4 -0
  304. package/dist/components/theme-toggle/theme-toggle.d.ts +9 -2
  305. package/dist/components/time-picker/index.d.ts +2 -1
  306. package/dist/components/time-picker/index.js +3 -2
  307. package/dist/components/time-picker/time-picker.agent.d.ts +4 -0
  308. package/dist/components/time-picker/time-picker.d.ts +16 -1
  309. package/dist/components/timeline/index.d.ts +2 -1
  310. package/dist/components/timeline/index.js +3 -2
  311. package/dist/components/timeline/timeline.agent.d.ts +4 -0
  312. package/dist/components/timeline/timeline.d.ts +8 -1
  313. package/dist/components/toast/index.d.ts +3 -2
  314. package/dist/components/toast/index.js +7 -5
  315. package/dist/components/toast/toast.agent.d.ts +4 -0
  316. package/dist/components/toast/toast.d.ts +8 -0
  317. package/dist/components/tooth-scheme/index.js +1 -1
  318. package/dist/components/tooth-scheme/tooth-scheme.d.ts +2 -0
  319. package/dist/components/transcript-panel/index.d.ts +2 -1
  320. package/dist/components/transcript-panel/index.js +3 -2
  321. package/dist/components/transcript-panel/transcript-panel.agent.d.ts +4 -0
  322. package/dist/components/transcript-panel/transcript-panel.d.ts +10 -1
  323. package/dist/components/workflow/index.d.ts +2 -1
  324. package/dist/components/workflow/index.js +10 -7
  325. package/dist/components/workflow/workflow-editor.d.ts +7 -1
  326. package/dist/components/workflow/workflow-map.d.ts +2 -0
  327. package/dist/components/workflow/workflow.agent.d.ts +6 -0
  328. package/dist/i18n/config.js +24 -11
  329. package/dist/i18n/resources.d.ts +7 -0
  330. package/dist/index.js +471 -423
  331. package/dist/locales/en.json +7 -0
  332. package/dist/patterns/leo-assistant/index.js +1 -1
  333. package/dist/patterns/patient-shell/index.js +1 -1
  334. package/dist/tokens.css +1 -1
  335. package/package.json +18 -2
  336. package/dist/_chunks/accordion-B6fyINUk.js.map +0 -1
  337. package/dist/_chunks/accordion.agent-Cz-yglRa.js +0 -17
  338. package/dist/_chunks/accordion.agent-Cz-yglRa.js.map +0 -1
  339. package/dist/_chunks/agenda-card-DIWDvWum.js.map +0 -1
  340. package/dist/_chunks/agenda-tray-BqQZwiHc.js +0 -120
  341. package/dist/_chunks/agenda-tray-BqQZwiHc.js.map +0 -1
  342. package/dist/_chunks/ai-prompt-input-CI27KmZ1.js +0 -380
  343. package/dist/_chunks/ai-prompt-input-CI27KmZ1.js.map +0 -1
  344. package/dist/_chunks/alert-BlOUMkXj.js.map +0 -1
  345. package/dist/_chunks/apexcharts-theme-BkSShpEy.js.map +0 -1
  346. package/dist/_chunks/app-frame-6d7Lu4ea.js.map +0 -1
  347. package/dist/_chunks/aspect-ratio-CxsdG8vk.js.map +0 -1
  348. package/dist/_chunks/audio-recorder-B-8SKgKn.js +0 -376
  349. package/dist/_chunks/audio-recorder-B-8SKgKn.js.map +0 -1
  350. package/dist/_chunks/audio-visualiser-CeMPCZkd.js.map +0 -1
  351. package/dist/_chunks/autocomplete.agent-DqOy0_1P.js +0 -372
  352. package/dist/_chunks/autocomplete.agent-DqOy0_1P.js.map +0 -1
  353. package/dist/_chunks/avatar-Dcr6XuDQ.js.map +0 -1
  354. package/dist/_chunks/badge-mrstWxve.js.map +0 -1
  355. package/dist/_chunks/balance-cell-renderer-BWm3knY9.js.map +0 -1
  356. package/dist/_chunks/breadcrumb-D6xpsP7n.js +0 -293
  357. package/dist/_chunks/breadcrumb-D6xpsP7n.js.map +0 -1
  358. package/dist/_chunks/button-7mLWcMp_.js.map +0 -1
  359. package/dist/_chunks/button-group-CONver7M.js.map +0 -1
  360. package/dist/_chunks/button.agent-BuGZBktn.js.map +0 -1
  361. package/dist/_chunks/calendar-nGEgelJs.js.map +0 -1
  362. package/dist/_chunks/card-BEy58ZKp.js.map +0 -1
  363. package/dist/_chunks/chart.agent-BdS-_8MO.js.map +0 -1
  364. package/dist/_chunks/chat-container-Cm3SlR2p.js.map +0 -1
  365. package/dist/_chunks/chat-container.agent-Dhw9xCJt.js.map +0 -1
  366. package/dist/_chunks/chat-input-DreOPP8A.js.map +0 -1
  367. package/dist/_chunks/chat-message-ByouZpPP.js.map +0 -1
  368. package/dist/_chunks/check-DPdL_Sm7.js.map +0 -1
  369. package/dist/_chunks/checkbox-DNK4qS2_.js +0 -116
  370. package/dist/_chunks/checkbox-DNK4qS2_.js.map +0 -1
  371. package/dist/_chunks/checkbox-group-CWpGZEF6.js +0 -146
  372. package/dist/_chunks/checkbox-group-CWpGZEF6.js.map +0 -1
  373. package/dist/_chunks/chevron-down-BX_NP2Yh.js.map +0 -1
  374. package/dist/_chunks/chevron-left-CX1jqD2M.js.map +0 -1
  375. package/dist/_chunks/chevron-right-BrpYejk0.js.map +0 -1
  376. package/dist/_chunks/chevron-up-zOEDrmBB.js.map +0 -1
  377. package/dist/_chunks/chevrons-right-d9MwesPG.js.map +0 -1
  378. package/dist/_chunks/circle-BkqTgYmt.js.map +0 -1
  379. package/dist/_chunks/circle-alert-ChA9opNA.js.map +0 -1
  380. package/dist/_chunks/circle-check-9AeSgJD_.js.map +0 -1
  381. package/dist/_chunks/circle-x-Du2CmjaU.js.map +0 -1
  382. package/dist/_chunks/clock-21AGPWJ5.js.map +0 -1
  383. package/dist/_chunks/collapsible-D4LOdLxp.js +0 -67
  384. package/dist/_chunks/collapsible-D4LOdLxp.js.map +0 -1
  385. package/dist/_chunks/color-picker-e9PmpaGH.js.map +0 -1
  386. package/dist/_chunks/combobox.agent-ByobCLJ_.js +0 -350
  387. package/dist/_chunks/combobox.agent-ByobCLJ_.js.map +0 -1
  388. package/dist/_chunks/command-palette.agent-js2rxgeR.js.map +0 -1
  389. package/dist/_chunks/compose-refs-C0k0tdqF.js.map +0 -1
  390. package/dist/_chunks/copy-B00HK7tj.js.map +0 -1
  391. package/dist/_chunks/createLucideIcon-CrFbzy84.js.map +0 -1
  392. package/dist/_chunks/date-picker-DYXNsWmM.js +0 -1726
  393. package/dist/_chunks/date-picker-DYXNsWmM.js.map +0 -1
  394. package/dist/_chunks/date-range-picker-BcNDJI7m.js +0 -183
  395. package/dist/_chunks/date-range-picker-BcNDJI7m.js.map +0 -1
  396. package/dist/_chunks/date-time-picker-CmGiTU__.js +0 -202
  397. package/dist/_chunks/date-time-picker-CmGiTU__.js.map +0 -1
  398. package/dist/_chunks/description-list-DvJbp6Yg.js.map +0 -1
  399. package/dist/_chunks/dialog.agent-DEG_fVzG.js +0 -147
  400. package/dist/_chunks/dialog.agent-DEG_fVzG.js.map +0 -1
  401. package/dist/_chunks/dropdown-menu-Cw3EyPZv.js.map +0 -1
  402. package/dist/_chunks/dropdown-menu.agent-Cry4Nmes.js +0 -17
  403. package/dist/_chunks/dropdown-menu.agent-Cry4Nmes.js.map +0 -1
  404. package/dist/_chunks/ellipsis-rgGdiK_9.js.map +0 -1
  405. package/dist/_chunks/empty-state-DQPtRp2b.js.map +0 -1
  406. package/dist/_chunks/eye-off-xEXDAh5z.js.map +0 -1
  407. package/dist/_chunks/file-text-DSNuv2B8.js.map +0 -1
  408. package/dist/_chunks/file-upload.agent-B9AN82LA.js.map +0 -1
  409. package/dist/_chunks/flag-DZ6V7-hU.js.map +0 -1
  410. package/dist/_chunks/floating-action-button-Cnw-f6AG.js.map +0 -1
  411. package/dist/_chunks/form-field-BfsPLTSc.js.map +0 -1
  412. package/dist/_chunks/form-field-context-94LwgYTQ.js.map +0 -1
  413. package/dist/_chunks/freemium-paywall-CkefGLM_.js +0 -198
  414. package/dist/_chunks/freemium-paywall-CkefGLM_.js.map +0 -1
  415. package/dist/_chunks/globe-BkEFMNSg.js.map +0 -1
  416. package/dist/_chunks/group-options-BvKhQ3xb.js.map +0 -1
  417. package/dist/_chunks/header-BGn1mRp8.js.map +0 -1
  418. package/dist/_chunks/icon-button-Wnnde5lc.js.map +0 -1
  419. package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +0 -1
  420. package/dist/_chunks/index-4xgbg-sn.js.map +0 -1
  421. package/dist/_chunks/index-CJE9uQmb.js.map +0 -1
  422. package/dist/_chunks/index-CeY1nNvd.js.map +0 -1
  423. package/dist/_chunks/index-D2ZczOXr.js.map +0 -1
  424. package/dist/_chunks/info-B9XNKn05.js.map +0 -1
  425. package/dist/_chunks/input-surface-u4QB0lxe.js.map +0 -1
  426. package/dist/_chunks/isSameDay-ecuM8PBB.js.map +0 -1
  427. package/dist/_chunks/isSameMonth-5wNF2f4I.js.map +0 -1
  428. package/dist/_chunks/kbd-8baVw3KU.js.map +0 -1
  429. package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +0 -1
  430. package/dist/_chunks/leo-sidebar-nbHib2D-.js.map +0 -1
  431. package/dist/_chunks/list-B1ozIjQe.js +0 -359
  432. package/dist/_chunks/list-B1ozIjQe.js.map +0 -1
  433. package/dist/_chunks/live-region-C41SO3cA.js.map +0 -1
  434. package/dist/_chunks/log-out-616hnn2-.js.map +0 -1
  435. package/dist/_chunks/logo-BpFoCL-s.js.map +0 -1
  436. package/dist/_chunks/mail-C8irm52s.js.map +0 -1
  437. package/dist/_chunks/matrix-rain-BEkvux64.js.map +0 -1
  438. package/dist/_chunks/message-card-qAp2-WQK.js.map +0 -1
  439. package/dist/_chunks/message-tray-VaLpQU5t.js +0 -303
  440. package/dist/_chunks/message-tray-VaLpQU5t.js.map +0 -1
  441. package/dist/_chunks/multi-select.agent-CNsyW3n9.js.map +0 -1
  442. package/dist/_chunks/navigation-menu-EVFau1O2.js +0 -180
  443. package/dist/_chunks/navigation-menu-EVFau1O2.js.map +0 -1
  444. package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +0 -1
  445. package/dist/_chunks/notification-card-BF2_veHy.js.map +0 -1
  446. package/dist/_chunks/notification-tray-B7U5YZYg.js +0 -328
  447. package/dist/_chunks/notification-tray-B7U5YZYg.js.map +0 -1
  448. package/dist/_chunks/number-input-DjpT_RXJ.js +0 -249
  449. package/dist/_chunks/number-input-DjpT_RXJ.js.map +0 -1
  450. package/dist/_chunks/otp-input-De5_Ih7B.js +0 -189
  451. package/dist/_chunks/otp-input-De5_Ih7B.js.map +0 -1
  452. package/dist/_chunks/pagination.agent-oEaqmtx5.js +0 -380
  453. package/dist/_chunks/pagination.agent-oEaqmtx5.js.map +0 -1
  454. package/dist/_chunks/password-input-DJDVznWH.js +0 -193
  455. package/dist/_chunks/password-input-DJDVznWH.js.map +0 -1
  456. package/dist/_chunks/patient-shell-7cXqIMFg.js.map +0 -1
  457. package/dist/_chunks/payment-form-hcl-gGrp.js.map +0 -1
  458. package/dist/_chunks/payment-form.agent-BkEnRerR.js.map +0 -1
  459. package/dist/_chunks/pdf-viewer.agent-CfIHhcHx.js.map +0 -1
  460. package/dist/_chunks/phone-input-DE_39q65.js +0 -428
  461. package/dist/_chunks/phone-input-DE_39q65.js.map +0 -1
  462. package/dist/_chunks/plus-CYKNmfuA.js.map +0 -1
  463. package/dist/_chunks/popover-C3CTUsqh.js +0 -227
  464. package/dist/_chunks/popover-C3CTUsqh.js.map +0 -1
  465. package/dist/_chunks/popover.agent-C0qOx9WT.js +0 -13
  466. package/dist/_chunks/popover.agent-C0qOx9WT.js.map +0 -1
  467. package/dist/_chunks/printer-CeVEWfQq.js.map +0 -1
  468. package/dist/_chunks/privacy-lock-CQpgkLec.js +0 -132
  469. package/dist/_chunks/privacy-lock-CQpgkLec.js.map +0 -1
  470. package/dist/_chunks/progress-B4Of_pzz.js +0 -252
  471. package/dist/_chunks/progress-B4Of_pzz.js.map +0 -1
  472. package/dist/_chunks/progress.agent-CXkHURjX.js +0 -22
  473. package/dist/_chunks/progress.agent-CXkHURjX.js.map +0 -1
  474. package/dist/_chunks/purify.es-DpIUMBYC.js.map +0 -1
  475. package/dist/_chunks/radio-cs8N1wJi.js.map +0 -1
  476. package/dist/_chunks/radio-group-BIUbpWml.js +0 -89
  477. package/dist/_chunks/radio-group-BIUbpWml.js.map +0 -1
  478. package/dist/_chunks/react-day-picker-C04L_28V.js.map +0 -1
  479. package/dist/_chunks/registry-C9nwlNyL.js.map +0 -1
  480. package/dist/_chunks/resizable.agent-DBpPGNdy.js +0 -435
  481. package/dist/_chunks/resizable.agent-DBpPGNdy.js.map +0 -1
  482. package/dist/_chunks/rich-text-editor.agent-COSb5_2D.js.map +0 -1
  483. package/dist/_chunks/safe-image-src-DstKgCo7.js.map +0 -1
  484. package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +0 -1
  485. package/dist/_chunks/search-BonnQsHv.js.map +0 -1
  486. package/dist/_chunks/search-bar-fcGqDFW3.js +0 -397
  487. package/dist/_chunks/search-bar-fcGqDFW3.js.map +0 -1
  488. package/dist/_chunks/search-input-BVMCONyN.js +0 -197
  489. package/dist/_chunks/search-input-BVMCONyN.js.map +0 -1
  490. package/dist/_chunks/select-IY_JQa-F.js +0 -321
  491. package/dist/_chunks/select-IY_JQa-F.js.map +0 -1
  492. package/dist/_chunks/send-CySZIRPJ.js.map +0 -1
  493. package/dist/_chunks/separator-B4wXDLNC.js.map +0 -1
  494. package/dist/_chunks/sheet-BhNpLHc9.js.map +0 -1
  495. package/dist/_chunks/sheet.agent-DwQlBqK9.js +0 -13
  496. package/dist/_chunks/sheet.agent-DwQlBqK9.js.map +0 -1
  497. package/dist/_chunks/sidebar-OVzwN3jE.js.map +0 -1
  498. package/dist/_chunks/sidebar.agent-B0fnH9CC.js +0 -17
  499. package/dist/_chunks/sidebar.agent-B0fnH9CC.js.map +0 -1
  500. package/dist/_chunks/sign-in-with-alfadocs-button-BN_FPGHT.js.map +0 -1
  501. package/dist/_chunks/signature-capture.agent-C38VPXxg.js.map +0 -1
  502. package/dist/_chunks/skeleton-dtqyF09N.js.map +0 -1
  503. package/dist/_chunks/skip-link-DmZ3c6cb.js.map +0 -1
  504. package/dist/_chunks/slider-DjyRt3Mp.js +0 -274
  505. package/dist/_chunks/slider-DjyRt3Mp.js.map +0 -1
  506. package/dist/_chunks/slot-grid-D_l5VsHG.js.map +0 -1
  507. package/dist/_chunks/sparkline.agent-C_xp3NRB.js +0 -238
  508. package/dist/_chunks/sparkline.agent-C_xp3NRB.js.map +0 -1
  509. package/dist/_chunks/spinner-GCcv67vh.js.map +0 -1
  510. package/dist/_chunks/square-CZoGU14v.js.map +0 -1
  511. package/dist/_chunks/square-check-big-Jr-0202D.js.map +0 -1
  512. package/dist/_chunks/stat-DUB6g90R.js.map +0 -1
  513. package/dist/_chunks/stepper-C-sIpRRU.js.map +0 -1
  514. package/dist/_chunks/stepper-accordion-CGog0JSF.js +0 -233
  515. package/dist/_chunks/stepper-accordion-CGog0JSF.js.map +0 -1
  516. package/dist/_chunks/stepper-calendar-_fLOAjus.js +0 -570
  517. package/dist/_chunks/stepper-calendar-_fLOAjus.js.map +0 -1
  518. package/dist/_chunks/stepper-progress-rE7tn7WY.js +0 -129
  519. package/dist/_chunks/stepper-progress-rE7tn7WY.js.map +0 -1
  520. package/dist/_chunks/streaming-text-BgjCTVOw.js.map +0 -1
  521. package/dist/_chunks/suggestion-chip-BNJ2M8Os.js +0 -158
  522. package/dist/_chunks/suggestion-chip-BNJ2M8Os.js.map +0 -1
  523. package/dist/_chunks/switch-aN2EYxHh.js +0 -138
  524. package/dist/_chunks/switch-aN2EYxHh.js.map +0 -1
  525. package/dist/_chunks/tabs.agent-BpbVA-Zh.js.map +0 -1
  526. package/dist/_chunks/tag-BqidXKo3.js.map +0 -1
  527. package/dist/_chunks/task-card-yW7tKlG4.js.map +0 -1
  528. package/dist/_chunks/task-tray-BzahI5FQ.js +0 -100
  529. package/dist/_chunks/task-tray-BzahI5FQ.js.map +0 -1
  530. package/dist/_chunks/text-area-DmKSd2DG.js +0 -152
  531. package/dist/_chunks/text-area-DmKSd2DG.js.map +0 -1
  532. package/dist/_chunks/text-input-CRHvl5zk.js +0 -188
  533. package/dist/_chunks/text-input-CRHvl5zk.js.map +0 -1
  534. package/dist/_chunks/theme-root-DDb0TJjd.js.map +0 -1
  535. package/dist/_chunks/theme-toggle-BHiMMEQN.js +0 -329
  536. package/dist/_chunks/theme-toggle-BHiMMEQN.js.map +0 -1
  537. package/dist/_chunks/time-picker-D-EueWUG.js +0 -322
  538. package/dist/_chunks/time-picker-D-EueWUG.js.map +0 -1
  539. package/dist/_chunks/timeline-RgAIzpMd.js +0 -220
  540. package/dist/_chunks/timeline-RgAIzpMd.js.map +0 -1
  541. package/dist/_chunks/timestamp-BV2lC-wV.js.map +0 -1
  542. package/dist/_chunks/toast-lOhJDKOH.js.map +0 -1
  543. package/dist/_chunks/tooltip-DHik5yRI.js.map +0 -1
  544. package/dist/_chunks/tooth-scheme.agent-BlDyu-Gx.js.map +0 -1
  545. package/dist/_chunks/transcript-panel-CNbVGG9L.js +0 -266
  546. package/dist/_chunks/transcript-panel-CNbVGG9L.js.map +0 -1
  547. package/dist/_chunks/triangle-alert-CBPUIzQo.js.map +0 -1
  548. package/dist/_chunks/typing-indicator-CbUBf-Dx.js.map +0 -1
  549. package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +0 -1
  550. package/dist/_chunks/use-direction-D6rvvG9G.js.map +0 -1
  551. package/dist/_chunks/use-locale-BuXR_Zl9.js.map +0 -1
  552. package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +0 -1
  553. package/dist/_chunks/use-theme-BMUhembX.js.map +0 -1
  554. package/dist/_chunks/user-CPxpqFjJ.js.map +0 -1
  555. package/dist/_chunks/visually-hidden-Bw7vBHLm.js.map +0 -1
  556. package/dist/_chunks/warning-stack-8Pa3pekh.js.map +0 -1
  557. package/dist/_chunks/workflow-map-XeqHDFvp.js.map +0 -1
  558. package/dist/_chunks/x-CCcI3eJp.js.map +0 -1
  559. package/dist/agent/index.d.ts.map +0 -1
  560. package/dist/agent/registry.d.ts.map +0 -1
  561. package/dist/agent/types.d.ts.map +0 -1
  562. package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +0 -1
  563. package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +0 -1
  564. package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +0 -1
  565. package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +0 -1
  566. package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +0 -1
  567. package/dist/brand/logo-asset/index.d.ts.map +0 -1
  568. package/dist/components/_shared/calendar-chevron.d.ts.map +0 -1
  569. package/dist/components/_shared/compose-refs.d.ts.map +0 -1
  570. package/dist/components/_shared/date-locale.d.ts.map +0 -1
  571. package/dist/components/_shared/date-picker-variants.d.ts.map +0 -1
  572. package/dist/components/_shared/date-utils.d.ts.map +0 -1
  573. package/dist/components/_shared/group-options.d.ts.map +0 -1
  574. package/dist/components/_shared/index.d.ts.map +0 -1
  575. package/dist/components/_shared/input-surface.d.ts.map +0 -1
  576. package/dist/components/_shared/normalize-diacritics.d.ts.map +0 -1
  577. package/dist/components/_shared/option.d.ts.map +0 -1
  578. package/dist/components/_shared/safe-html.d.ts.map +0 -1
  579. package/dist/components/_shared/safe-image-src.d.ts.map +0 -1
  580. package/dist/components/_shared/stepper.d.ts.map +0 -1
  581. package/dist/components/_shared/time.d.ts.map +0 -1
  582. package/dist/components/_shared/use-debounced-callback.d.ts.map +0 -1
  583. package/dist/components/_shared/use-direction.d.ts.map +0 -1
  584. package/dist/components/_shared/use-focus-trap.d.ts.map +0 -1
  585. package/dist/components/_shared/use-neutralize-hidden-focus.d.ts.map +0 -1
  586. package/dist/components/accordion/accordion.agent.d.ts.map +0 -1
  587. package/dist/components/accordion/accordion.d.ts.map +0 -1
  588. package/dist/components/accordion/index.d.ts.map +0 -1
  589. package/dist/components/accordion/index.js.map +0 -1
  590. package/dist/components/agenda-card/agenda-card.d.ts.map +0 -1
  591. package/dist/components/agenda-card/index.d.ts.map +0 -1
  592. package/dist/components/agenda-card/index.js.map +0 -1
  593. package/dist/components/agenda-tray/agenda-tray.d.ts.map +0 -1
  594. package/dist/components/agenda-tray/index.d.ts.map +0 -1
  595. package/dist/components/agenda-tray/index.js.map +0 -1
  596. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +0 -1
  597. package/dist/components/ai-prompt-input/index.d.ts.map +0 -1
  598. package/dist/components/ai-prompt-input/index.js.map +0 -1
  599. package/dist/components/alert/alert.d.ts.map +0 -1
  600. package/dist/components/alert/index.d.ts.map +0 -1
  601. package/dist/components/alert/index.js.map +0 -1
  602. package/dist/components/app-frame/app-frame.d.ts.map +0 -1
  603. package/dist/components/app-frame/index.d.ts.map +0 -1
  604. package/dist/components/app-frame/index.js.map +0 -1
  605. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +0 -1
  606. package/dist/components/aspect-ratio/index.d.ts.map +0 -1
  607. package/dist/components/aspect-ratio/index.js.map +0 -1
  608. package/dist/components/audio-recorder/audio-recorder.d.ts.map +0 -1
  609. package/dist/components/audio-recorder/index.d.ts.map +0 -1
  610. package/dist/components/audio-recorder/index.js.map +0 -1
  611. package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +0 -1
  612. package/dist/components/audio-visualiser/index.d.ts.map +0 -1
  613. package/dist/components/audio-visualiser/index.js.map +0 -1
  614. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +0 -1
  615. package/dist/components/autocomplete/autocomplete.d.ts.map +0 -1
  616. package/dist/components/autocomplete/index.d.ts.map +0 -1
  617. package/dist/components/autocomplete/index.js.map +0 -1
  618. package/dist/components/avatar/avatar.d.ts.map +0 -1
  619. package/dist/components/avatar/index.d.ts.map +0 -1
  620. package/dist/components/avatar/index.js.map +0 -1
  621. package/dist/components/badge/badge.d.ts.map +0 -1
  622. package/dist/components/badge/index.d.ts.map +0 -1
  623. package/dist/components/badge/index.js.map +0 -1
  624. package/dist/components/breadcrumb/breadcrumb.d.ts.map +0 -1
  625. package/dist/components/breadcrumb/index.d.ts.map +0 -1
  626. package/dist/components/breadcrumb/index.js.map +0 -1
  627. package/dist/components/button/button.agent.d.ts.map +0 -1
  628. package/dist/components/button/button.d.ts.map +0 -1
  629. package/dist/components/button/icon-button.d.ts.map +0 -1
  630. package/dist/components/button/index.d.ts.map +0 -1
  631. package/dist/components/button/index.js.map +0 -1
  632. package/dist/components/button-group/button-group.d.ts.map +0 -1
  633. package/dist/components/button-group/index.d.ts.map +0 -1
  634. package/dist/components/button-group/index.js.map +0 -1
  635. package/dist/components/calendar/calendar.agent.d.ts.map +0 -1
  636. package/dist/components/calendar/calendar.d.ts.map +0 -1
  637. package/dist/components/calendar/contrast-warning.d.ts.map +0 -1
  638. package/dist/components/calendar/index.d.ts.map +0 -1
  639. package/dist/components/calendar/index.js.map +0 -1
  640. package/dist/components/card/card.d.ts.map +0 -1
  641. package/dist/components/card/index.d.ts.map +0 -1
  642. package/dist/components/card/index.js.map +0 -1
  643. package/dist/components/chart/chart.agent.d.ts.map +0 -1
  644. package/dist/components/chart/chart.d.ts.map +0 -1
  645. package/dist/components/chart/index.d.ts.map +0 -1
  646. package/dist/components/chart/index.js.map +0 -1
  647. package/dist/components/chat-container/chat-container.agent.d.ts.map +0 -1
  648. package/dist/components/chat-container/chat-container.d.ts.map +0 -1
  649. package/dist/components/chat-container/index.d.ts.map +0 -1
  650. package/dist/components/chat-container/index.js.map +0 -1
  651. package/dist/components/chat-input/chat-input.d.ts.map +0 -1
  652. package/dist/components/chat-input/index.d.ts.map +0 -1
  653. package/dist/components/chat-input/index.js.map +0 -1
  654. package/dist/components/chat-message/chat-message.d.ts.map +0 -1
  655. package/dist/components/chat-message/index.d.ts.map +0 -1
  656. package/dist/components/chat-message/index.js.map +0 -1
  657. package/dist/components/checkbox/checkbox-group-context.d.ts.map +0 -1
  658. package/dist/components/checkbox/checkbox.d.ts.map +0 -1
  659. package/dist/components/checkbox/index.d.ts.map +0 -1
  660. package/dist/components/checkbox/index.js.map +0 -1
  661. package/dist/components/checkbox-group/checkbox-group.d.ts.map +0 -1
  662. package/dist/components/checkbox-group/index.d.ts.map +0 -1
  663. package/dist/components/checkbox-group/index.js.map +0 -1
  664. package/dist/components/collapsible/collapsible.d.ts.map +0 -1
  665. package/dist/components/collapsible/index.d.ts.map +0 -1
  666. package/dist/components/collapsible/index.js.map +0 -1
  667. package/dist/components/color-picker/color-picker.d.ts.map +0 -1
  668. package/dist/components/color-picker/color-utils.d.ts.map +0 -1
  669. package/dist/components/color-picker/index.d.ts.map +0 -1
  670. package/dist/components/color-picker/index.js.map +0 -1
  671. package/dist/components/color-picker/palettes.d.ts.map +0 -1
  672. package/dist/components/combobox/combobox.agent.d.ts.map +0 -1
  673. package/dist/components/combobox/combobox.d.ts.map +0 -1
  674. package/dist/components/combobox/index.d.ts.map +0 -1
  675. package/dist/components/combobox/index.js.map +0 -1
  676. package/dist/components/command-palette/command-palette.agent.d.ts.map +0 -1
  677. package/dist/components/command-palette/command-palette.d.ts.map +0 -1
  678. package/dist/components/command-palette/index.d.ts.map +0 -1
  679. package/dist/components/command-palette/index.js.map +0 -1
  680. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +0 -1
  681. package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +0 -1
  682. package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +0 -1
  683. package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +0 -1
  684. package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +0 -1
  685. package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +0 -1
  686. package/dist/components/data-table/cell-renderers/status-cell-renderer.d.ts.map +0 -1
  687. package/dist/components/data-table/cell-renderers/tag-list-cell-renderer.d.ts.map +0 -1
  688. package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +0 -1
  689. package/dist/components/data-table/cell-renderers/user-cell-renderer.d.ts.map +0 -1
  690. package/dist/components/data-table/data-table.agent.d.ts.map +0 -1
  691. package/dist/components/data-table/data-table.d.ts.map +0 -1
  692. package/dist/components/data-table/hooks/use-total-row.d.ts.map +0 -1
  693. package/dist/components/data-table/index.d.ts.map +0 -1
  694. package/dist/components/data-table/index.js.map +0 -1
  695. package/dist/components/data-table/toolbar.d.ts.map +0 -1
  696. package/dist/components/date-picker/date-picker.d.ts.map +0 -1
  697. package/dist/components/date-picker/index.d.ts.map +0 -1
  698. package/dist/components/date-picker/index.js.map +0 -1
  699. package/dist/components/date-range-picker/date-range-picker.d.ts.map +0 -1
  700. package/dist/components/date-range-picker/index.d.ts.map +0 -1
  701. package/dist/components/date-range-picker/index.js.map +0 -1
  702. package/dist/components/date-time-picker/date-time-picker.d.ts.map +0 -1
  703. package/dist/components/date-time-picker/index.d.ts.map +0 -1
  704. package/dist/components/date-time-picker/index.js.map +0 -1
  705. package/dist/components/description-list/description-list.d.ts.map +0 -1
  706. package/dist/components/description-list/index.d.ts.map +0 -1
  707. package/dist/components/description-list/index.js.map +0 -1
  708. package/dist/components/dialog/dialog.agent.d.ts.map +0 -1
  709. package/dist/components/dialog/dialog.d.ts.map +0 -1
  710. package/dist/components/dialog/index.d.ts.map +0 -1
  711. package/dist/components/dialog/index.js.map +0 -1
  712. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +0 -1
  713. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  714. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  715. package/dist/components/dropdown-menu/index.js.map +0 -1
  716. package/dist/components/empty-state/empty-state.d.ts.map +0 -1
  717. package/dist/components/empty-state/index.d.ts.map +0 -1
  718. package/dist/components/empty-state/index.js.map +0 -1
  719. package/dist/components/file-upload/file-upload.agent.d.ts.map +0 -1
  720. package/dist/components/file-upload/file-upload.d.ts.map +0 -1
  721. package/dist/components/file-upload/index.d.ts.map +0 -1
  722. package/dist/components/file-upload/index.js.map +0 -1
  723. package/dist/components/flag/flag.d.ts.map +0 -1
  724. package/dist/components/flag/index.d.ts.map +0 -1
  725. package/dist/components/flag/index.js.map +0 -1
  726. package/dist/components/floating-action-button/floating-action-button.d.ts.map +0 -1
  727. package/dist/components/floating-action-button/index.d.ts.map +0 -1
  728. package/dist/components/floating-action-button/index.js.map +0 -1
  729. package/dist/components/form-field/form-field-context.d.ts.map +0 -1
  730. package/dist/components/form-field/form-field.d.ts.map +0 -1
  731. package/dist/components/form-field/index.d.ts.map +0 -1
  732. package/dist/components/form-field/index.js.map +0 -1
  733. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +0 -1
  734. package/dist/components/freemium-paywall/index.d.ts.map +0 -1
  735. package/dist/components/freemium-paywall/index.js.map +0 -1
  736. package/dist/components/header/header.d.ts.map +0 -1
  737. package/dist/components/header/index.d.ts.map +0 -1
  738. package/dist/components/header/index.js.map +0 -1
  739. package/dist/components/icon-button/index.d.ts.map +0 -1
  740. package/dist/components/icon-button/index.js.map +0 -1
  741. package/dist/components/icon-button-group/icon-button-group.d.ts.map +0 -1
  742. package/dist/components/icon-button-group/index.d.ts.map +0 -1
  743. package/dist/components/icon-button-group/index.js.map +0 -1
  744. package/dist/components/index.d.ts.map +0 -1
  745. package/dist/components/kbd/index.d.ts.map +0 -1
  746. package/dist/components/kbd/index.js.map +0 -1
  747. package/dist/components/kbd/kbd.d.ts.map +0 -1
  748. package/dist/components/key-value-pair/index.d.ts.map +0 -1
  749. package/dist/components/key-value-pair/index.js.map +0 -1
  750. package/dist/components/key-value-pair/key-value-pair.d.ts.map +0 -1
  751. package/dist/components/list/index.d.ts.map +0 -1
  752. package/dist/components/list/index.js.map +0 -1
  753. package/dist/components/list/list.d.ts.map +0 -1
  754. package/dist/components/live-region/index.d.ts.map +0 -1
  755. package/dist/components/live-region/index.js.map +0 -1
  756. package/dist/components/live-region/live-region.d.ts.map +0 -1
  757. package/dist/components/logo/index.d.ts.map +0 -1
  758. package/dist/components/logo/index.js.map +0 -1
  759. package/dist/components/logo/logo.d.ts.map +0 -1
  760. package/dist/components/matrix-rain/index.d.ts.map +0 -1
  761. package/dist/components/matrix-rain/index.js.map +0 -1
  762. package/dist/components/matrix-rain/matrix-rain.d.ts.map +0 -1
  763. package/dist/components/message-card/index.d.ts.map +0 -1
  764. package/dist/components/message-card/index.js.map +0 -1
  765. package/dist/components/message-card/message-card.d.ts.map +0 -1
  766. package/dist/components/message-tray/index.d.ts.map +0 -1
  767. package/dist/components/message-tray/index.js.map +0 -1
  768. package/dist/components/message-tray/message-tray.d.ts.map +0 -1
  769. package/dist/components/multi-select/index.d.ts.map +0 -1
  770. package/dist/components/multi-select/index.js.map +0 -1
  771. package/dist/components/multi-select/multi-select.agent.d.ts.map +0 -1
  772. package/dist/components/multi-select/multi-select.d.ts.map +0 -1
  773. package/dist/components/navigation-menu/index.d.ts.map +0 -1
  774. package/dist/components/navigation-menu/index.js.map +0 -1
  775. package/dist/components/navigation-menu/navigation-menu.d.ts.map +0 -1
  776. package/dist/components/notification-card/index.d.ts.map +0 -1
  777. package/dist/components/notification-card/index.js.map +0 -1
  778. package/dist/components/notification-card/notification-card.d.ts.map +0 -1
  779. package/dist/components/notification-tray/index.d.ts.map +0 -1
  780. package/dist/components/notification-tray/index.js.map +0 -1
  781. package/dist/components/notification-tray/notification-tray.d.ts.map +0 -1
  782. package/dist/components/number-input/index.d.ts.map +0 -1
  783. package/dist/components/number-input/index.js.map +0 -1
  784. package/dist/components/number-input/number-input.d.ts.map +0 -1
  785. package/dist/components/number-input/use-locale-number.d.ts.map +0 -1
  786. package/dist/components/otp-input/index.d.ts.map +0 -1
  787. package/dist/components/otp-input/index.js.map +0 -1
  788. package/dist/components/otp-input/otp-input.d.ts.map +0 -1
  789. package/dist/components/pagination/index.d.ts.map +0 -1
  790. package/dist/components/pagination/index.js.map +0 -1
  791. package/dist/components/pagination/pagination.agent.d.ts.map +0 -1
  792. package/dist/components/pagination/pagination.d.ts.map +0 -1
  793. package/dist/components/password-input/index.d.ts.map +0 -1
  794. package/dist/components/password-input/index.js.map +0 -1
  795. package/dist/components/password-input/password-input.d.ts.map +0 -1
  796. package/dist/components/payment-form/index.d.ts.map +0 -1
  797. package/dist/components/payment-form/index.js.map +0 -1
  798. package/dist/components/payment-form/payment-form.agent.d.ts.map +0 -1
  799. package/dist/components/payment-form/payment-form.d.ts.map +0 -1
  800. package/dist/components/pdf-viewer/index.d.ts.map +0 -1
  801. package/dist/components/pdf-viewer/index.js.map +0 -1
  802. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +0 -1
  803. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +0 -1
  804. package/dist/components/phone-input/index.d.ts.map +0 -1
  805. package/dist/components/phone-input/index.js.map +0 -1
  806. package/dist/components/phone-input/phone-input.d.ts.map +0 -1
  807. package/dist/components/popover/index.d.ts.map +0 -1
  808. package/dist/components/popover/index.js.map +0 -1
  809. package/dist/components/popover/popover.agent.d.ts.map +0 -1
  810. package/dist/components/popover/popover.d.ts.map +0 -1
  811. package/dist/components/privacy-lock/index.d.ts.map +0 -1
  812. package/dist/components/privacy-lock/index.js.map +0 -1
  813. package/dist/components/privacy-lock/privacy-lock.d.ts.map +0 -1
  814. package/dist/components/progress/index.d.ts.map +0 -1
  815. package/dist/components/progress/index.js.map +0 -1
  816. package/dist/components/progress/progress.agent.d.ts.map +0 -1
  817. package/dist/components/progress/progress.d.ts.map +0 -1
  818. package/dist/components/radio/index.d.ts.map +0 -1
  819. package/dist/components/radio/index.js.map +0 -1
  820. package/dist/components/radio-group/index.d.ts.map +0 -1
  821. package/dist/components/radio-group/index.js.map +0 -1
  822. package/dist/components/radio-group/radio-group-context.d.ts.map +0 -1
  823. package/dist/components/radio-group/radio-group.d.ts.map +0 -1
  824. package/dist/components/radio-group/radio.d.ts.map +0 -1
  825. package/dist/components/resizable/index.d.ts.map +0 -1
  826. package/dist/components/resizable/index.js.map +0 -1
  827. package/dist/components/resizable/resizable-context.d.ts.map +0 -1
  828. package/dist/components/resizable/resizable.agent.d.ts.map +0 -1
  829. package/dist/components/resizable/resizable.d.ts.map +0 -1
  830. package/dist/components/rich-text-editor/index.d.ts.map +0 -1
  831. package/dist/components/rich-text-editor/index.js.map +0 -1
  832. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +0 -1
  833. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +0 -1
  834. package/dist/components/scroll-area/index.d.ts.map +0 -1
  835. package/dist/components/scroll-area/index.js.map +0 -1
  836. package/dist/components/scroll-area/scroll-area.d.ts.map +0 -1
  837. package/dist/components/search-bar/index.d.ts.map +0 -1
  838. package/dist/components/search-bar/index.js.map +0 -1
  839. package/dist/components/search-bar/search-bar.d.ts.map +0 -1
  840. package/dist/components/search-input/index.d.ts.map +0 -1
  841. package/dist/components/search-input/index.js.map +0 -1
  842. package/dist/components/search-input/search-input.d.ts.map +0 -1
  843. package/dist/components/select/index.d.ts.map +0 -1
  844. package/dist/components/select/index.js.map +0 -1
  845. package/dist/components/select/select.d.ts.map +0 -1
  846. package/dist/components/separator/index.d.ts.map +0 -1
  847. package/dist/components/separator/index.js.map +0 -1
  848. package/dist/components/separator/separator.d.ts.map +0 -1
  849. package/dist/components/sheet/index.d.ts.map +0 -1
  850. package/dist/components/sheet/index.js.map +0 -1
  851. package/dist/components/sheet/sheet.agent.d.ts.map +0 -1
  852. package/dist/components/sheet/sheet.d.ts.map +0 -1
  853. package/dist/components/sidebar/index.d.ts.map +0 -1
  854. package/dist/components/sidebar/index.js.map +0 -1
  855. package/dist/components/sidebar/sidebar.agent.d.ts.map +0 -1
  856. package/dist/components/sidebar/sidebar.d.ts.map +0 -1
  857. package/dist/components/sign-in-with-alfadocs-button/index.d.ts.map +0 -1
  858. package/dist/components/sign-in-with-alfadocs-button/index.js.map +0 -1
  859. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +0 -1
  860. package/dist/components/signature-capture/index.d.ts.map +0 -1
  861. package/dist/components/signature-capture/index.js.map +0 -1
  862. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +0 -1
  863. package/dist/components/signature-capture/signature-capture.d.ts.map +0 -1
  864. package/dist/components/skeleton/index.d.ts.map +0 -1
  865. package/dist/components/skeleton/index.js.map +0 -1
  866. package/dist/components/skeleton/skeleton.d.ts.map +0 -1
  867. package/dist/components/skip-link/index.d.ts.map +0 -1
  868. package/dist/components/skip-link/index.js.map +0 -1
  869. package/dist/components/skip-link/skip-link.d.ts.map +0 -1
  870. package/dist/components/slider/index.d.ts.map +0 -1
  871. package/dist/components/slider/index.js.map +0 -1
  872. package/dist/components/slider/slider.d.ts.map +0 -1
  873. package/dist/components/slot-grid/index.d.ts.map +0 -1
  874. package/dist/components/slot-grid/index.js.map +0 -1
  875. package/dist/components/slot-grid/slot-grid.d.ts.map +0 -1
  876. package/dist/components/sparkline/index.d.ts.map +0 -1
  877. package/dist/components/sparkline/index.js.map +0 -1
  878. package/dist/components/sparkline/sparkline.agent.d.ts.map +0 -1
  879. package/dist/components/sparkline/sparkline.d.ts.map +0 -1
  880. package/dist/components/sparkline/use-linear-trend.d.ts.map +0 -1
  881. package/dist/components/spinner/index.d.ts.map +0 -1
  882. package/dist/components/spinner/index.js.map +0 -1
  883. package/dist/components/spinner/spinner.d.ts.map +0 -1
  884. package/dist/components/stat/index.d.ts.map +0 -1
  885. package/dist/components/stat/index.js.map +0 -1
  886. package/dist/components/stat/stat.d.ts.map +0 -1
  887. package/dist/components/stepper-accordion/index.d.ts.map +0 -1
  888. package/dist/components/stepper-accordion/index.js.map +0 -1
  889. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +0 -1
  890. package/dist/components/stepper-calendar/index.d.ts.map +0 -1
  891. package/dist/components/stepper-calendar/index.js.map +0 -1
  892. package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +0 -1
  893. package/dist/components/stepper-progress/index.d.ts.map +0 -1
  894. package/dist/components/stepper-progress/index.js.map +0 -1
  895. package/dist/components/stepper-progress/stepper-progress.d.ts.map +0 -1
  896. package/dist/components/streaming-text/index.d.ts.map +0 -1
  897. package/dist/components/streaming-text/index.js.map +0 -1
  898. package/dist/components/streaming-text/streaming-text.d.ts.map +0 -1
  899. package/dist/components/suggestion-chip/index.d.ts.map +0 -1
  900. package/dist/components/suggestion-chip/index.js.map +0 -1
  901. package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +0 -1
  902. package/dist/components/switch/index.d.ts.map +0 -1
  903. package/dist/components/switch/index.js.map +0 -1
  904. package/dist/components/switch/switch.d.ts.map +0 -1
  905. package/dist/components/tabs/index.d.ts.map +0 -1
  906. package/dist/components/tabs/index.js.map +0 -1
  907. package/dist/components/tabs/tabs.agent.d.ts.map +0 -1
  908. package/dist/components/tabs/tabs.d.ts.map +0 -1
  909. package/dist/components/tag/index.d.ts.map +0 -1
  910. package/dist/components/tag/index.js.map +0 -1
  911. package/dist/components/tag/tag.d.ts.map +0 -1
  912. package/dist/components/task-card/index.d.ts.map +0 -1
  913. package/dist/components/task-card/index.js.map +0 -1
  914. package/dist/components/task-card/task-card.d.ts.map +0 -1
  915. package/dist/components/task-tray/index.d.ts.map +0 -1
  916. package/dist/components/task-tray/index.js.map +0 -1
  917. package/dist/components/task-tray/task-tray.d.ts.map +0 -1
  918. package/dist/components/text-area/index.d.ts.map +0 -1
  919. package/dist/components/text-area/index.js.map +0 -1
  920. package/dist/components/text-area/text-area.d.ts.map +0 -1
  921. package/dist/components/text-input/index.d.ts.map +0 -1
  922. package/dist/components/text-input/index.js.map +0 -1
  923. package/dist/components/text-input/text-input.d.ts.map +0 -1
  924. package/dist/components/theme-root/index.d.ts.map +0 -1
  925. package/dist/components/theme-root/index.js.map +0 -1
  926. package/dist/components/theme-root/theme-root.d.ts.map +0 -1
  927. package/dist/components/theme-toggle/index.d.ts.map +0 -1
  928. package/dist/components/theme-toggle/index.js.map +0 -1
  929. package/dist/components/theme-toggle/theme-toggle.d.ts.map +0 -1
  930. package/dist/components/time-picker/index.d.ts.map +0 -1
  931. package/dist/components/time-picker/index.js.map +0 -1
  932. package/dist/components/time-picker/time-picker.d.ts.map +0 -1
  933. package/dist/components/timeline/index.d.ts.map +0 -1
  934. package/dist/components/timeline/index.js.map +0 -1
  935. package/dist/components/timeline/timeline.d.ts.map +0 -1
  936. package/dist/components/timestamp/index.d.ts.map +0 -1
  937. package/dist/components/timestamp/index.js.map +0 -1
  938. package/dist/components/timestamp/timestamp.d.ts.map +0 -1
  939. package/dist/components/toast/index.d.ts.map +0 -1
  940. package/dist/components/toast/index.js.map +0 -1
  941. package/dist/components/toast/toast.d.ts.map +0 -1
  942. package/dist/components/tooltip/index.d.ts.map +0 -1
  943. package/dist/components/tooltip/index.js.map +0 -1
  944. package/dist/components/tooltip/tooltip.d.ts.map +0 -1
  945. package/dist/components/tooth-scheme/index.d.ts.map +0 -1
  946. package/dist/components/tooth-scheme/index.js.map +0 -1
  947. package/dist/components/tooth-scheme/tooth-data.d.ts.map +0 -1
  948. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +0 -1
  949. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +0 -1
  950. package/dist/components/transcript-panel/index.d.ts.map +0 -1
  951. package/dist/components/transcript-panel/index.js.map +0 -1
  952. package/dist/components/transcript-panel/transcript-panel.d.ts.map +0 -1
  953. package/dist/components/typing-indicator/index.d.ts.map +0 -1
  954. package/dist/components/typing-indicator/index.js.map +0 -1
  955. package/dist/components/typing-indicator/typing-indicator.d.ts.map +0 -1
  956. package/dist/components/visually-hidden/index.d.ts.map +0 -1
  957. package/dist/components/visually-hidden/index.js.map +0 -1
  958. package/dist/components/visually-hidden/visually-hidden.d.ts.map +0 -1
  959. package/dist/components/warning-stack/index.d.ts.map +0 -1
  960. package/dist/components/warning-stack/index.js.map +0 -1
  961. package/dist/components/warning-stack/warning-stack.d.ts.map +0 -1
  962. package/dist/components/workflow/index.d.ts.map +0 -1
  963. package/dist/components/workflow/index.js.map +0 -1
  964. package/dist/components/workflow/workflow-card.d.ts.map +0 -1
  965. package/dist/components/workflow/workflow-editor.d.ts.map +0 -1
  966. package/dist/components/workflow/workflow-map.d.ts.map +0 -1
  967. package/dist/components/workflow/workflow-types.d.ts.map +0 -1
  968. package/dist/hooks/index.d.ts.map +0 -1
  969. package/dist/hooks/index.js.map +0 -1
  970. package/dist/hooks/use-locale.d.ts.map +0 -1
  971. package/dist/hooks/use-media-query.d.ts.map +0 -1
  972. package/dist/hooks/use-prefers-reduced-motion.d.ts.map +0 -1
  973. package/dist/hooks/use-theme.d.ts.map +0 -1
  974. package/dist/i18n/config.d.ts.map +0 -1
  975. package/dist/i18n/config.js.map +0 -1
  976. package/dist/i18n/resources.d.ts.map +0 -1
  977. package/dist/index.js.map +0 -1
  978. package/dist/option/index.js.map +0 -1
  979. package/dist/patterns/leo-assistant/index.d.ts.map +0 -1
  980. package/dist/patterns/leo-assistant/index.js.map +0 -1
  981. package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +0 -1
  982. package/dist/patterns/leo-assistant/leo-embedded.d.ts.map +0 -1
  983. package/dist/patterns/leo-assistant/leo-popout.d.ts.map +0 -1
  984. package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +0 -1
  985. package/dist/patterns/leo-assistant/leo-types.d.ts.map +0 -1
  986. package/dist/patterns/patient-shell/index.d.ts.map +0 -1
  987. package/dist/patterns/patient-shell/index.js.map +0 -1
  988. package/dist/patterns/patient-shell/patient-shell.d.ts.map +0 -1
  989. package/dist/safe-html/index.js.map +0 -1
  990. package/dist/tokens/apexcharts-theme.d.ts.map +0 -1
  991. package/dist/tokens/themes/bridges/stripe-appearance.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance-cell-renderer-BWm3knY9.js","sources":["../../node_modules/lucide-react/dist/esm/icons/columns-2.js","../../node_modules/lucide-react/dist/esm/icons/download.js","../../src/components/data-table/toolbar.tsx","../../src/components/data-table/data-table.agent.ts","../../src/components/data-table/data-table.tsx","../../src/components/data-table/hooks/use-total-row.ts","../../src/components/data-table/cell-renderers/status-cell-renderer.tsx","../../src/components/data-table/cell-renderers/user-cell-renderer.tsx","../../src/components/data-table/cell-renderers/tag-list-cell-renderer.tsx","../../src/components/data-table/cell-renderers/date-cell-renderer.tsx","../../src/components/data-table/cell-renderers/currency-cell-renderer.tsx","../../src/components/data-table/cell-renderers/actions-cell-renderer.tsx","../../src/components/data-table/cell-renderers/link-cell-renderer.tsx","../../src/components/data-table/cell-renderers/toggle-cell-renderer.tsx","../../src/components/data-table/cell-renderers/color-dot-cell-renderer.tsx","../../src/components/data-table/cell-renderers/balance-cell-renderer.tsx"],"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 [\"path\", { d: \"M12 3v18\", key: \"108xh3\" }]\n];\nconst Columns2 = createLucideIcon(\"columns-2\", __iconNode);\n\nexport { __iconNode, Columns2 as default };\n//# sourceMappingURL=columns-2.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 15V3\", key: \"m9g1x1\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"path\", { d: \"m7 10 5 5 5-5\", key: \"brsn70\" }]\n];\nconst Download = createLucideIcon(\"download\", __iconNode);\n\nexport { __iconNode, Download as default };\n//# sourceMappingURL=download.js.map\n","import {\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Download, FileText, Printer, Columns } from 'lucide-react';\nimport type { GridApi } from 'ag-grid-community';\nimport { Button, type ButtonProps } from '../button/button';\nimport { IconButton, type IconButtonProps } from '../button/icon-button';\nimport { Popover } from '../popover/popover';\nimport { Checkbox } from '../checkbox/checkbox';\n\n// Lucide icons default to 24×24 regardless of the wrapping span size, so\n// Button's `startIcon` slot (size-4 span) can't shrink them. Coerce icon\n// nodes to the `sm` button's 16px rendered size before handing them off.\nfunction sizeIcon(node: ReactNode): ReactNode {\n if (!isValidElement(node)) return node;\n const element = node as React.ReactElement<{ className?: string; size?: number }>;\n const existingClass = element.props.className ?? '';\n const className = /\\bsize-|\\bw-|\\bh-/.test(existingClass)\n ? existingClass\n : `${existingClass} ds:size-4`.trim();\n return cloneElement(element, { className, size: element.props.size ?? 16 });\n}\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface ToolbarContextValue {\n /** Accessor to the live AG Grid API. Returns `undefined` until mount. */\n getApi: () => GridApi | undefined;\n /** Number of rows currently selected (re-renders on selection change). */\n selectionCount: number;\n /** Trigger the browser print dialog for the grid. */\n onPrint: () => void;\n}\n\nconst ToolbarContext = createContext<ToolbarContextValue | null>(null);\n\nfunction useToolbarContext(caller: string): ToolbarContextValue {\n const ctx = useContext(ToolbarContext);\n if (!ctx) {\n throw new Error(\n `${caller} must be rendered inside <DataTable.Toolbar> as a descendant of <DataTable>.`,\n );\n }\n return ctx;\n}\n\nexport interface ToolbarProviderProps {\n getApi: () => GridApi | undefined;\n selectionCount: number;\n onPrint: () => void;\n children: ReactNode;\n}\n\nexport function ToolbarProvider({\n getApi,\n selectionCount,\n onPrint,\n children,\n}: ToolbarProviderProps) {\n const value = useMemo(\n () => ({ getApi, selectionCount, onPrint }),\n [getApi, selectionCount, onPrint],\n );\n return <ToolbarContext.Provider value={value}>{children}</ToolbarContext.Provider>;\n}\n\n/* ------------------------------------------------------------------ */\n/* Toolbar root */\n/* ------------------------------------------------------------------ */\n\nconst TOOLBAR_BASE = [\n 'data-table-toolbar',\n 'ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:pb-[var(--spacing-sm)]',\n].join(' ');\n\nexport interface ToolbarRootProps extends HTMLAttributes<HTMLDivElement> {}\n\nconst ToolbarRoot = forwardRef<HTMLDivElement, ToolbarRootProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n role=\"toolbar\"\n className={[TOOLBAR_BASE, className ?? ''].join(' ').trim()}\n {...props}\n >\n {children}\n </div>\n ),\n);\nToolbarRoot.displayName = 'DataTable.Toolbar';\n\n/* ------------------------------------------------------------------ */\n/* FilterBar slot — free-form */\n/* ------------------------------------------------------------------ */\n\nconst FilterBar = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={[\n 'ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:grow',\n className ?? '',\n ]\n .join(' ')\n .trim()}\n {...props}\n >\n {children}\n </div>\n ),\n);\nFilterBar.displayName = 'DataTable.Toolbar.FilterBar';\n\n/* ------------------------------------------------------------------ */\n/* Actions slot — right-aligned via ms-auto */\n/* ------------------------------------------------------------------ */\n\nconst Actions = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={[\n 'ds:flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'ds:ms-auto',\n className ?? '',\n ]\n .join(' ')\n .trim()}\n {...props}\n >\n {children}\n </div>\n ),\n);\nActions.displayName = 'DataTable.Toolbar.Actions';\n\n/* ------------------------------------------------------------------ */\n/* ExportCsv, ExportPdf, Print — icon-only buttons with tooltip labels */\n/* ------------------------------------------------------------------ */\n/* These three share the same shape: a single lucide icon, a localized\n * tooltip that doubles as the accessible label, and either a built-in\n * action (CSV / print) or a consumer-supplied handler (PDF). Rendered\n * as IconButton so a toolbar with several of them reads as a compact\n * icon group rather than three full-width labeled buttons. */\n\ntype ToolbarIconButtonProps = Omit<\n IconButtonProps,\n 'icon' | 'aria-label' | 'tooltip' | 'onClick'\n> & {\n /** Accessible label — becomes the tooltip text and `aria-label`. */\n label?: string;\n};\n\nexport interface ExportCsvProps extends ToolbarIconButtonProps {\n /** Optional override — receives the live AG Grid API. */\n onExport?: (api: GridApi) => void;\n}\n\nconst ExportCsv = forwardRef<HTMLButtonElement, ExportCsvProps>(\n ({ label, onExport, intent = 'outline', ...rest }, ref) => {\n const { t } = useTranslation();\n const { getApi } = useToolbarContext('DataTable.Toolbar.ExportCsv');\n const handleClick = useCallback(() => {\n const api = getApi();\n if (!api) return;\n if (onExport) onExport(api);\n else api.exportDataAsCsv();\n }, [getApi, onExport]);\n\n return (\n <IconButton\n ref={ref}\n type=\"button\"\n intent={intent}\n icon={<Download aria-hidden />}\n tooltip={label ?? t('dataTable.exportCsv')}\n onClick={handleClick}\n {...rest}\n />\n );\n },\n);\nExportCsv.displayName = 'DataTable.Toolbar.ExportCsv';\n\nexport interface ExportPdfProps extends ToolbarIconButtonProps {\n onClick: (api: GridApi | undefined) => void;\n}\n\nconst ExportPdf = forwardRef<HTMLButtonElement, ExportPdfProps>(\n ({ label, onClick, intent = 'outline', ...rest }, ref) => {\n const { t } = useTranslation();\n const { getApi } = useToolbarContext('DataTable.Toolbar.ExportPdf');\n return (\n <IconButton\n ref={ref}\n type=\"button\"\n intent={intent}\n icon={<FileText aria-hidden />}\n tooltip={label ?? t('dataTable.exportPdf')}\n onClick={() => onClick(getApi())}\n {...rest}\n />\n );\n },\n);\nExportPdf.displayName = 'DataTable.Toolbar.ExportPdf';\n\nexport interface PrintProps extends ToolbarIconButtonProps {}\n\nconst Print = forwardRef<HTMLButtonElement, PrintProps>(\n ({ label, intent = 'outline', ...rest }, ref) => {\n const { t } = useTranslation();\n const { onPrint } = useToolbarContext('DataTable.Toolbar.Print');\n return (\n <IconButton\n ref={ref}\n type=\"button\"\n intent={intent}\n icon={<Printer aria-hidden />}\n tooltip={label ?? t('dataTable.print')}\n onClick={onPrint}\n {...rest}\n />\n );\n },\n);\nPrint.displayName = 'DataTable.Toolbar.Print';\n\n/* ------------------------------------------------------------------ */\n/* ColumnToggle — popover with a checkbox per column */\n/* ------------------------------------------------------------------ */\n\ninterface ColumnEntry {\n colId: string;\n displayName: string;\n visible: boolean;\n}\n\nfunction readColumnEntries(api: GridApi | undefined): ColumnEntry[] {\n if (!api) return [];\n const columns = api.getColumns() ?? [];\n return columns\n .map((col) => {\n const def = col.getColDef();\n if (def.hide === undefined && col.getColId().startsWith('ag-Grid-')) return null;\n return {\n colId: col.getColId(),\n displayName: api.getDisplayNameForColumn(col, null) || col.getColId(),\n visible: col.isVisible(),\n };\n })\n .filter((c): c is ColumnEntry => c !== null);\n}\n\nexport interface ColumnToggleProps {\n label?: string;\n}\n\nconst ColumnToggle = ({ label }: ColumnToggleProps) => {\n const { t } = useTranslation();\n const { getApi } = useToolbarContext('DataTable.Toolbar.ColumnToggle');\n const [open, setOpen] = useState(false);\n const [columns, setColumns] = useState<ColumnEntry[]>([]);\n\n // Refresh the column list whenever the popover opens — picks up\n // columns that were added/removed/renamed since last open.\n useEffect(() => {\n if (!open) return;\n setColumns(readColumnEntries(getApi()));\n }, [open, getApi]);\n\n const toggleColumn = useCallback(\n (colId: string, nextVisible: boolean) => {\n const api = getApi();\n if (!api) return;\n api.setColumnsVisible([colId], nextVisible);\n setColumns((prev) =>\n prev.map((c) => (c.colId === colId ? { ...c, visible: nextVisible } : c)),\n );\n },\n [getApi],\n );\n\n const labelText = label ?? t('dataTable.columnToggle');\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <IconButton\n type=\"button\"\n intent=\"outline\"\n icon={<Columns aria-hidden />}\n aria-label={labelText}\n aria-haspopup=\"dialog\"\n />\n </Popover.Trigger>\n <Popover.Content size=\"sm\" align=\"end\">\n <Popover.Heading>{labelText}</Popover.Heading>\n <ul\n className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\"\n aria-label={labelText}\n >\n {columns.map((c) => (\n <li key={c.colId}>\n <Checkbox\n label={c.displayName}\n checked={c.visible}\n onCheckedChange={(checked) =>\n toggleColumn(c.colId, checked === true)\n }\n />\n </li>\n ))}\n </ul>\n </Popover.Content>\n </Popover.Root>\n );\n};\nColumnToggle.displayName = 'DataTable.Toolbar.ColumnToggle';\n\n/* ------------------------------------------------------------------ */\n/* BulkAction — hidden when no rows are selected */\n/* ------------------------------------------------------------------ */\n\nexport interface BulkActionProps\n extends Omit<ButtonProps, 'onClick' | 'children' | 'startIcon' | 'intent'> {\n label: string;\n icon?: ReactNode;\n onClick: (api: GridApi | undefined) => void;\n variant?: 'default' | 'destructive';\n}\n\nconst BulkAction = forwardRef<HTMLButtonElement, BulkActionProps>(\n ({ label, icon, onClick, variant = 'default', size = 'sm', ...rest }, ref) => {\n const { t } = useTranslation();\n const { getApi, selectionCount } = useToolbarContext(\n 'DataTable.Toolbar.BulkAction',\n );\n if (selectionCount === 0) return null;\n\n const resolvedIntent = variant === 'destructive' ? 'destructive' : 'secondary';\n\n return (\n <Button\n ref={ref}\n type=\"button\"\n intent={resolvedIntent}\n size={size}\n startIcon={sizeIcon(icon)}\n onClick={() => onClick(getApi())}\n aria-label={`${label} (${t('dataTable.bulkAction', { count: selectionCount })})`}\n {...rest}\n >\n <span>{label}</span>\n <span\n aria-hidden=\"true\"\n className=\"ds:ms-[var(--spacing-xs)] ds:opacity-80\"\n >\n {t('dataTable.bulkAction', { count: selectionCount })}\n </span>\n </Button>\n );\n },\n);\nBulkAction.displayName = 'DataTable.Toolbar.BulkAction';\n\n/* ------------------------------------------------------------------ */\n/* Assembled namespace — mounted on DataTable.Toolbar downstream */\n/* ------------------------------------------------------------------ */\n\nexport const Toolbar = Object.assign(ToolbarRoot, {\n FilterBar,\n Actions,\n ExportCsv,\n ExportPdf,\n Print,\n ColumnToggle,\n BulkAction,\n});\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — DataTable. */\n/* */\n/* Operations work against the curated `DataTableHandle`, never the raw */\n/* ag-grid `GridApi` (consumers needing the raw API call `getRawApi()`). */\n/* See `src/docs/26-agent-readiness.mdx` §15. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { DataTableHandle, DataTableSortEntry } from './data-table';\n\nexport const dataTableAgent: AgentAdapter<DataTableHandle> = {\n id: 'data-table',\n capabilities: [\n 'select_single',\n 'select_multiple',\n 'range_pick',\n 'filter',\n 'sort',\n 'paginate',\n ],\n state: {\n selection: {\n type: 'string[]',\n descriptionKey: 'ui.agent.dataTable.state.selection',\n description: 'Row ids of currently-selected rows.',\n read: (handle) => handle.getSelection(),\n },\n filter: {\n type: 'object',\n descriptionKey: 'ui.agent.dataTable.state.filter',\n description: 'Current ag-grid filter model, keyed by column id.',\n read: (handle) => handle.getFilter(),\n },\n sort: {\n type: 'Array<{ colId, sort }>',\n descriptionKey: 'ui.agent.dataTable.state.sort',\n description: 'Active sort, in priority order.',\n read: (handle) => handle.getSort(),\n },\n currentPage: {\n type: 'number',\n descriptionKey: 'ui.agent.dataTable.state.currentPage',\n description: 'Zero-indexed page number.',\n read: (handle) => handle.getCurrentPage(),\n },\n },\n actions: {\n select_rows: {\n safety: 'read',\n argsType: '{ ids: string[] }',\n descriptionKey: 'ui.agent.dataTable.actions.selectRows',\n description: 'Replace the current selection with the given row ids.',\n invoke: (handle, args: { ids: string[] }) => {\n handle.setSelection(args.ids);\n },\n },\n select_range: {\n safety: 'read',\n argsType: '{ fromId: string, toId: string }',\n descriptionKey: 'ui.agent.dataTable.actions.selectRange',\n description: 'Select every row between fromId and toId, inclusive, in current sort order.',\n invoke: (handle, args: { fromId: string; toId: string }) => {\n handle.selectRange(args.fromId, args.toId);\n },\n },\n clear_selection: {\n safety: 'read',\n descriptionKey: 'ui.agent.dataTable.actions.clearSelection',\n description: 'Deselect all rows.',\n invoke: (handle) => {\n handle.clearSelection();\n },\n },\n apply_filter: {\n safety: 'read',\n argsType: '{ model: Record<string, unknown> }',\n descriptionKey: 'ui.agent.dataTable.actions.applyFilter',\n description: 'Replace the filter model with the given object.',\n invoke: (handle, args: { model: Record<string, unknown> }) => {\n handle.setFilter(args.model);\n },\n },\n sort_by: {\n safety: 'read',\n argsType: '{ model: DataTableSortEntry[] }',\n descriptionKey: 'ui.agent.dataTable.actions.sortBy',\n description: 'Replace the active sort with the given list (priority order).',\n invoke: (handle, args: { model: DataTableSortEntry[] }) => {\n handle.setSort(args.model);\n },\n },\n go_to_page: {\n safety: 'read',\n argsType: '{ page: number }',\n descriptionKey: 'ui.agent.dataTable.actions.goToPage',\n description: 'Navigate to the given zero-indexed page.',\n invoke: (handle, args: { page: number }) => {\n handle.goToPage(args.page);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'data-table',\n description: 'Marks the DataTable wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'gridId',\n description: 'Sourced from the gridId prop. Required to address a specific table from the agent.',\n },\n item: {\n attr: 'row-id',\n description: 'Native ag-grid row-id attribute on each rendered row. Selection is performed via the curated handle, not by DOM mutation.',\n },\n },\n};\n","import 'ag-grid-community/styles/ag-grid.css';\n// Font-only — `@font-face { agGridQuartz }` for the icon glyphs. We\n// deliberately do NOT import `ag-theme-quartz.css`: that file scopes ~90\n// CSS variables to `.ag-theme-quartz` and hardcodes colors / IBM Plex Sans\n// / 8px grid, which fight the design-system tokens. `ag-grid-theme.css`\n// below is a standalone bridge that defines every var AG Grid references,\n// mapped to DS tokens.\nimport 'ag-grid-community/styles/agGridQuartzFont.css';\nimport '../../tokens/ag-grid-theme.css';\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type ComponentType,\n type ReactNode,\n} from 'react';\nimport { Skeleton } from '../skeleton';\nimport { EmptyState } from '../empty-state';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { AgGridReact } from 'ag-grid-react';\nimport {\n AllCommunityModule,\n ModuleRegistry,\n type ColDef,\n type FilterChangedEvent,\n type GridApi,\n type GridOptions,\n type IServerSideDatasource,\n type RowClassParams,\n type SortChangedEvent,\n} from 'ag-grid-community';\nimport { Toolbar, ToolbarProvider } from './toolbar';\nimport { useAgentRegistration } from '../../agent';\nimport { dataTableAgent } from './data-table.agent';\n\n// AG Grid v33+ requires module registration before any grid renders.\nModuleRegistry.registerModules([AllCommunityModule]);\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst dataTableVariants = cva('ag-theme-alfadocs ds:w-full', {\n variants: {\n density: {\n default: '',\n compact: 'data-table-compact',\n expanded: 'data-table-expanded',\n },\n bordered: {\n true: '',\n false: 'ds:[--ag-borders:none]',\n },\n },\n defaultVariants: {\n density: 'default',\n bordered: true,\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* Curated imperative handle — agent-readiness contract */\n/* ------------------------------------------------------------------ */\n\nexport interface DataTableSortEntry {\n colId: string;\n sort: 'asc' | 'desc';\n}\n\n/**\n * Curated handle exposed via `forwardRef`. Replaces the legacy raw `GridApi`\n * forwarding — see `src/docs/26-agent-readiness.mdx` §15. Consumers needing\n * the unwrapped ag-grid API call `getRawApi()`.\n */\nexport interface DataTableHandle<TData = unknown> {\n getSelection: () => string[];\n setSelection: (ids: string[]) => void;\n selectRange: (fromId: string, toId: string) => void;\n clearSelection: () => void;\n getFilter: () => Record<string, unknown>;\n setFilter: (model: Record<string, unknown>) => void;\n getSort: () => DataTableSortEntry[];\n setSort: (model: DataTableSortEntry[]) => void;\n getCurrentPage: () => number;\n goToPage: (page: number) => void;\n getRawApi: () => GridApi<TData> | undefined;\n}\n\n/* ------------------------------------------------------------------ */\n/* Props */\n/* ------------------------------------------------------------------ */\n\nexport interface DataTableProps<TData = unknown>\n extends Omit<VariantProps<typeof dataTableVariants>, 'density'> {\n columnDefs: ColDef<TData>[];\n rowData?: TData[];\n rowSelection?: 'single' | 'multiple';\n pagination?: boolean;\n paginationPageSize?: number;\n serverSideDatasource?: IServerSideDatasource;\n gridId?: string;\n onSelectionChanged?: (rows: TData[]) => void;\n onSortChanged?: (event: SortChangedEvent<TData>) => void;\n onFilterChanged?: (event: FilterChangedEvent<TData>) => void;\n noRowsOverlay?: ComponentType;\n loadingOverlay?: ComponentType;\n gridOptions?: GridOptions<TData>;\n /** Grid height as a Tailwind height class, e.g. `\"h-[500px]\"` or `\"h-[var(--data-table-height)]\"` */\n heightClass?: string;\n className?: string;\n\n /** Row height preset. `expanded` adds headroom for complex cells (balances, tag lists). */\n density?: 'compact' | 'default' | 'expanded';\n\n /** Map row → class name. Use together with `data-table-row-success/warning/error` for tinted rows. */\n getRowClass?: (params: RowClassParams<TData>) => string | undefined;\n /** Rows pinned at the bottom of the grid. Use `useTotalRow()` to compute a totals row. */\n pinnedBottomRowData?: TData[];\n\n /** Print-optimised mode — hides toolbar, disables pagination, renders every row. */\n printMode?: boolean;\n\n /** Composable toolbar — renders `<DataTable.Toolbar>…</DataTable.Toolbar>` above the grid. */\n children?: ReactNode;\n}\n\n/* ------------------------------------------------------------------ */\n/* Locale text builder */\n/* ------------------------------------------------------------------ */\n\nfunction useAgLocaleText() {\n const { t } = useTranslation();\n return useMemo(\n () => ({\n // Filter strings\n contains: t('dataTable.agGrid.contains'),\n notContains: t('dataTable.agGrid.notContains'),\n equals: t('dataTable.agGrid.equals'),\n notEqual: t('dataTable.agGrid.notEqual'),\n startsWith: t('dataTable.agGrid.startsWith'),\n endsWith: t('dataTable.agGrid.endsWith'),\n lessThan: t('dataTable.agGrid.lessThan'),\n greaterThan: t('dataTable.agGrid.greaterThan'),\n inRange: t('dataTable.agGrid.inRange'),\n blank: t('dataTable.agGrid.blank'),\n notBlank: t('dataTable.agGrid.notBlank'),\n filterOoo: t('dataTable.agGrid.filterOoo'),\n applyFilter: t('dataTable.agGrid.applyFilter'),\n resetFilter: t('dataTable.agGrid.resetFilter'),\n noRowsToShow: t('dataTable.agGrid.noRowsToShow'),\n selectAll: t('dataTable.agGrid.selectAll'),\n // Pagination\n page: t('dataTable.page'),\n of: t('dataTable.of'),\n to: t('dataTable.to'),\n nextPage: t('dataTable.nextPage'),\n previousPage: t('dataTable.previousPage'),\n firstPage: t('dataTable.firstPage'),\n lastPage: t('dataTable.lastPage'),\n pageSize: t('dataTable.pageSize'),\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [t],\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Loading overlay */\n/* ------------------------------------------------------------------ */\n\nfunction DefaultLoadingOverlay() {\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n className=\"ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]\"\n >\n {Array.from({ length: 5 }).map((_, i) => (\n <Skeleton\n // eslint-disable-next-line react/no-array-index-key\n key={i}\n variant=\"rectangular\"\n className=\"ds:h-[var(--min-target-size)] ds:w-full\"\n />\n ))}\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* No-rows overlay — wired to the DS EmptyState component */\n/* ------------------------------------------------------------------ */\n\nfunction DefaultNoRowsOverlay() {\n const { t } = useTranslation();\n return (\n <EmptyState\n variant=\"no-results\"\n size=\"sm\"\n title={t('dataTable.noRows')}\n description={t('dataTable.noRowsDescription')}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Column persistence helpers */\n/* ------------------------------------------------------------------ */\n\nfunction loadColumnState(gridId: string) {\n try {\n const raw = localStorage.getItem(`data-table-col-state:${gridId}`);\n return raw ? JSON.parse(raw) : null;\n } catch {\n return null;\n }\n}\n\nfunction saveColumnState(gridId: string, api: GridApi) {\n try {\n localStorage.setItem(\n `data-table-col-state:${gridId}`,\n JSON.stringify(api.getColumnState()),\n );\n } catch {\n // localStorage may be unavailable in some environments\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* DataTable */\n/* ------------------------------------------------------------------ */\n\nfunction DataTableInner<TData = unknown>(\n props: DataTableProps<TData>,\n ref: React.ForwardedRef<DataTableHandle<TData>>,\n) {\n const {\n columnDefs,\n rowData,\n rowSelection,\n pagination = false,\n paginationPageSize = 25,\n serverSideDatasource,\n gridId,\n onSelectionChanged,\n onSortChanged,\n onFilterChanged,\n noRowsOverlay,\n loadingOverlay,\n gridOptions,\n density,\n bordered,\n heightClass = 'ds:h-[500px]',\n className,\n getRowClass,\n pinnedBottomRowData,\n printMode = false,\n children,\n } = props;\n\n const { t, i18n } = useTranslation();\n const agGridRef = useRef<AgGridReact<TData>>(null);\n const [selectionCount, setSelectionCount] = useState(0);\n const [sortAnnouncement, setSortAnnouncement] = useState('');\n const localeText = useAgLocaleText();\n\n // Curated imperative handle — see DataTableHandle above.\n const handle = useMemo<DataTableHandle<TData>>(\n () => ({\n getSelection: () => {\n const api = agGridRef.current?.api;\n if (!api) return [];\n const ids: string[] = [];\n for (const node of api.getSelectedNodes()) {\n if (node.id != null) ids.push(node.id);\n }\n return ids;\n },\n setSelection: (ids) => {\n const api = agGridRef.current?.api;\n if (!api) return;\n const want = new Set(ids);\n api.forEachNode((node) => {\n if (node.id != null) node.setSelected(want.has(node.id));\n });\n },\n selectRange: (fromId, toId) => {\n const api = agGridRef.current?.api;\n if (!api) return;\n const ordered: string[] = [];\n api.forEachNodeAfterFilterAndSort((node) => {\n if (node.id != null) ordered.push(node.id);\n });\n const a = ordered.indexOf(fromId);\n const b = ordered.indexOf(toId);\n if (a < 0 || b < 0) return;\n const [lo, hi] = a <= b ? [a, b] : [b, a];\n const want = new Set(ordered.slice(lo, hi + 1));\n api.forEachNode((node) => {\n if (node.id != null) node.setSelected(want.has(node.id));\n });\n },\n clearSelection: () => {\n agGridRef.current?.api?.deselectAll();\n },\n getFilter: () => agGridRef.current?.api?.getFilterModel() ?? {},\n setFilter: (model) => {\n agGridRef.current?.api?.setFilterModel(model);\n },\n getSort: () => {\n const api = agGridRef.current?.api;\n if (!api) return [];\n return api\n .getColumnState()\n .filter((c) => c.sort === 'asc' || c.sort === 'desc')\n .map((c) => ({ colId: c.colId, sort: c.sort as 'asc' | 'desc' }));\n },\n setSort: (model) => {\n const api = agGridRef.current?.api;\n if (!api) return;\n const next = api.getColumnState().map((c) => {\n const target = model.find((m) => m.colId === c.colId);\n return { ...c, sort: target ? target.sort : null };\n });\n api.applyColumnState({ state: next, defaultState: { sort: null } });\n },\n getCurrentPage: () => agGridRef.current?.api?.paginationGetCurrentPage() ?? 0,\n goToPage: (page) => {\n agGridRef.current?.api?.paginationGoToPage(page);\n },\n getRawApi: () => agGridRef.current?.api,\n }),\n [],\n );\n\n useImperativeHandle(ref, () => handle, [handle]);\n // Agent adapter is keyed on the row-agnostic DataTableHandle; cast here\n // because TData isn't observable from the agent surface.\n useAgentRegistration(dataTableAgent, handle as DataTableHandle, gridId);\n\n const isRtl = i18n.dir() === 'rtl';\n const isLoading = rowData === undefined;\n\n const prefersReducedMotion = useMemo(\n () => window.matchMedia('(prefers-reduced-motion: reduce)').matches,\n [],\n );\n\n // Suppress compact density in accessible theme — 32px rows violate min-target-size\n const isAccessible = useMemo(\n () => document.documentElement.classList.contains('theme-accessible'),\n [],\n );\n const effectiveDensity = isAccessible && density === 'compact' ? 'default' : density;\n\n // Map logical 'single' | 'multiple' → AG Grid v35 object form\n const rowSelectionOption = useMemo(() => {\n if (!rowSelection) return undefined;\n if (rowSelection === 'single') return { mode: 'singleRow' as const };\n return {\n mode: 'multiRow' as const,\n headerCheckbox: true,\n checkboxes: true,\n };\n }, [rowSelection]);\n\n const rowModelType = serverSideDatasource ? 'serverSide' : 'clientSide';\n\n // Column persistence — restore on mount\n const handleGridReady = useCallback(() => {\n if (!gridId || !agGridRef.current?.api) return;\n const saved = loadColumnState(gridId);\n if (saved) {\n agGridRef.current.api.applyColumnState({ state: saved, applyOrder: true });\n }\n }, [gridId]);\n\n const handleColumnStateChange = useCallback(() => {\n if (gridId && agGridRef.current?.api) {\n saveColumnState(gridId, agGridRef.current.api);\n }\n }, [gridId]);\n\n const handleSelectionChanged = useCallback(() => {\n const api = agGridRef.current?.api;\n if (!api) return;\n const rows = api.getSelectedRows();\n setSelectionCount(rows.length);\n onSelectionChanged?.(rows);\n }, [onSelectionChanged]);\n\n const handleSortChanged = useCallback(\n (event: SortChangedEvent<TData>) => {\n const api = agGridRef.current?.api;\n if (api) {\n const colState = api.getColumnState();\n const sortedCol = colState.find((c) => c.sort);\n if (sortedCol) {\n const colId = sortedCol.colId;\n const colDef = columnDefs.find(\n (cd) => (cd.field as string) === colId || cd.colId === colId,\n );\n const colName = (colDef?.headerName as string) ?? colId;\n const dirKey =\n sortedCol.sort === 'asc'\n ? 'dataTable.sortAscending'\n : 'dataTable.sortDescending';\n setSortAnnouncement(\n t('dataTable.sortAnnounce', {\n column: colName,\n direction: t(dirKey),\n }),\n );\n } else {\n setSortAnnouncement('');\n }\n }\n onSortChanged?.(event);\n },\n [columnDefs, onSortChanged, t],\n );\n\n const handleFilterChanged = useCallback(\n (event: FilterChangedEvent<TData>) => {\n onFilterChanged?.(event);\n },\n [onFilterChanged],\n );\n\n // Clear sort announcement after screen readers have had time to read it\n useEffect(() => {\n if (!sortAnnouncement) return;\n const id = setTimeout(() => setSortAnnouncement(''), 3000);\n return () => clearTimeout(id);\n }, [sortAnnouncement]);\n\n const NoRowsComponent = noRowsOverlay ?? DefaultNoRowsOverlay;\n const LoadingComponent = loadingOverlay ?? DefaultLoadingOverlay;\n\n const getApi = useCallback(\n () => agGridRef.current?.api as GridApi | undefined,\n [],\n );\n\n const handlePrint = useCallback(() => {\n if (typeof window !== 'undefined') {\n window.print();\n }\n }, []);\n\n const wrapperClass = dataTableVariants({\n density: effectiveDensity,\n bordered,\n className,\n });\n\n // Toolbar composition — render either the consumer-provided children,\n // or a default single-button toolbar for backward compatibility.\n const toolbarContent = children ?? (\n <Toolbar>\n <Toolbar.Actions>\n <Toolbar.ExportCsv />\n </Toolbar.Actions>\n </Toolbar>\n );\n\n // Pagination is auto-disabled in print mode so every row prints.\n const paginationEnabled = printMode ? false : pagination;\n\n return (\n <div\n className=\"ds:flex ds:w-full ds:flex-col ds:gap-[var(--spacing-sm)]\"\n aria-busy={isLoading ? 'true' : undefined}\n data-component=\"data-table\"\n data-component-id={gridId}\n data-print-mode={printMode ? 'true' : undefined}\n >\n {!printMode && (\n <ToolbarProvider\n getApi={getApi}\n selectionCount={selectionCount}\n onPrint={handlePrint}\n >\n {toolbarContent}\n </ToolbarProvider>\n )}\n\n {/* Grid */}\n <div className={[wrapperClass, printMode ? '' : heightClass].join(' ').trim()}>\n <AgGridReact<TData>\n ref={agGridRef}\n // Opt into v32 CSS-file theming so the `.ag-theme-alfadocs` bridge\n // (src/tokens/ag-grid-theme.css) wins. Without this, AG Grid v33+\n // defaults to the JS Theming API (themeQuartz) which overrides our\n // tokens at runtime — including --ag-font-family.\n theme=\"legacy\"\n columnDefs={columnDefs}\n rowData={rowData}\n rowModelType={rowModelType}\n serverSideDatasource={\n serverSideDatasource as IServerSideDatasource | undefined\n }\n rowSelection={rowSelectionOption}\n pagination={paginationEnabled}\n paginationPageSize={paginationPageSize}\n animateRows={!prefersReducedMotion}\n enableRtl={isRtl}\n ensureDomOrder\n suppressCellFocus={false}\n rowBuffer={10}\n localeText={localeText}\n noRowsOverlayComponent={NoRowsComponent}\n loadingOverlayComponent={LoadingComponent}\n getRowClass={getRowClass}\n pinnedBottomRowData={pinnedBottomRowData}\n domLayout={printMode ? 'autoHeight' : undefined}\n onGridReady={handleGridReady}\n onColumnMoved={handleColumnStateChange}\n onColumnResized={handleColumnStateChange}\n onColumnPinned={handleColumnStateChange}\n onSortChanged={handleSortChanged}\n onFilterChanged={handleFilterChanged}\n onSelectionChanged={handleSelectionChanged}\n {...(gridOptions as GridOptions<TData>)}\n />\n </div>\n\n {/* Footer */}\n {!printMode && (\n <div className=\"ds:flex ds:items-center ds:justify-between type-body-sm ds:text-[color:var(--muted-foreground)]\">\n {selectionCount > 0 ? (\n <span>{t('dataTable.selected', { count: selectionCount })}</span>\n ) : (\n <span />\n )}\n </div>\n )}\n\n {/* Aria-live region for sort announcements */}\n <span role=\"status\" aria-live=\"polite\" className=\"ds:sr-only\">\n {sortAnnouncement}\n </span>\n </div>\n );\n}\n\nconst DataTableBase = forwardRef(DataTableInner) as <TData = unknown>(\n props: DataTableProps<TData> & { ref?: React.Ref<DataTableHandle<TData>> },\n) => React.ReactElement;\n\n(DataTableBase as { displayName?: string }).displayName = 'DataTable';\n\nexport const DataTable = Object.assign(DataTableBase, {\n Toolbar,\n});\n","import { useMemo } from 'react';\n\n/**\n * Compute a pinned total row from a dataset and a list of numeric fields.\n *\n * The returned object is structurally a `TData` with non-summed fields left\n * `undefined` — plug it into `pinnedBottomRowData={[totalRow]}`. Cell renderers\n * in the non-summed columns receive `undefined`, so they should render nothing\n * (all of the DS cell renderers short-circuit on `null`/`undefined`).\n *\n * Pass an optional `labelField` + `labelValue` to show a static caption such\n * as \"Total\" in the first column of the pinned row.\n */\nexport function useTotalRow<TData>(\n rowData: TData[] | undefined,\n sumFields: Array<keyof TData & string>,\n options?: {\n labelField?: keyof TData & string;\n labelValue?: string;\n },\n): TData {\n return useMemo(() => {\n const row: Record<string, unknown> = {};\n\n for (const field of sumFields) {\n let total = 0;\n for (const r of rowData ?? []) {\n const raw = (r as Record<string, unknown>)[field];\n const n = typeof raw === 'number' ? raw : Number(raw);\n if (Number.isFinite(n)) total += n;\n }\n row[field] = total;\n }\n\n if (options?.labelField && options.labelValue !== undefined) {\n row[options.labelField] = options.labelValue;\n }\n\n return row as TData;\n }, [rowData, sumFields, options?.labelField, options?.labelValue]);\n}\n","import type { CustomCellRendererProps } from 'ag-grid-react';\nimport { Badge } from '../../badge/badge';\n\nexport type BadgeVariant = 'neutral' | 'info' | 'success' | 'warning' | 'error';\n\nexport interface StatusCellRendererParams {\n variantMap?: Record<string, BadgeVariant>;\n}\n\nexport function StatusCellRenderer(\n props: CustomCellRendererProps & StatusCellRendererParams,\n) {\n const { value, variantMap } = props;\n const variant: BadgeVariant = variantMap?.[value as string] ?? 'neutral';\n return (\n <Badge variant={variant} withDot size=\"sm\">\n {String(value ?? '')}\n </Badge>\n );\n}\n","import type { CustomCellRendererProps } from 'ag-grid-react';\nimport { Avatar } from '../../avatar/avatar';\n\nexport interface UserCellValue {\n name: string;\n src?: string;\n}\n\nexport function UserCellRenderer(\n props: CustomCellRendererProps<unknown, UserCellValue>,\n) {\n const { value } = props;\n if (!value) return null;\n return (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]\">\n <Avatar name={value.name} src={value.src} size=\"sm\" />\n <span>{value.name}</span>\n </span>\n );\n}\n","import type { CustomCellRendererProps } from 'ag-grid-react';\nimport { useTranslation } from 'react-i18next';\nimport { Tag } from '../../tag/tag';\nimport { Tooltip } from '../../tooltip';\n\nexport interface TagListCellRendererParams {\n maxVisible?: number;\n}\n\nexport function TagListCellRenderer(\n props: CustomCellRendererProps<unknown, string[]> & TagListCellRendererParams,\n) {\n const { value, maxVisible = 3 } = props;\n const { t } = useTranslation();\n\n if (!Array.isArray(value) || value.length === 0) return null;\n\n const visible = value.slice(0, maxVisible);\n const overflow = value.length - maxVisible;\n\n return (\n <span className=\"ds:inline-flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\">\n {visible.map((tag) => (\n <Tag key={tag} label={tag} size=\"sm\" />\n ))}\n {overflow > 0 && (\n <Tooltip label={value.slice(maxVisible).join(', ')}>\n <Tag\n label={t('inputs.multiSelect.overflow', { count: overflow })}\n size=\"sm\"\n variant=\"neutral\"\n fill=\"outline\"\n />\n </Tooltip>\n )}\n </span>\n );\n}\n","import type { CustomCellRendererProps } from 'ag-grid-react';\nimport { Timestamp } from '../../timestamp';\n\nexport type DateCellFormat = 'date' | 'time' | 'datetime' | 'relative';\n\nexport interface DateCellRendererParams {\n /** Which preset to use. Default `'date'`. */\n format?: DateCellFormat;\n /** Escape hatch — overrides the preset entirely. */\n options?: Intl.DateTimeFormatOptions;\n}\n\nconst PRESETS: Record<Exclude<DateCellFormat, 'relative'>, Intl.DateTimeFormatOptions> = {\n date: { year: 'numeric', month: 'short', day: 'numeric' },\n time: { hour: '2-digit', minute: '2-digit' },\n datetime: {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n },\n};\n\nexport function DateCellRenderer(\n props: CustomCellRendererProps & DateCellRendererParams,\n) {\n const { value, format = 'date', options } = props;\n if (value == null || value === '') return null;\n\n // `shape=\"bare\"` keeps the cell font inherited from --ag-font-size. Timestamp\n // still emits a proper `<time dateTime>` for assistive tech and feeds.\n if (format === 'relative' && !options) {\n return <Timestamp value={value as string | Date} shape=\"bare\" />;\n }\n\n return (\n <Timestamp\n value={value as string | Date}\n format=\"absolute\"\n shape=\"bare\"\n absoluteFormat={options ?? PRESETS[format === 'relative' ? 'date' : format]}\n />\n );\n}\n","import type { CustomCellRendererProps } from 'ag-grid-react';\nimport { useTranslation } from 'react-i18next';\n\nexport interface CurrencyCellRendererParams {\n /** ISO 4217 currency code. Default `'EUR'`. */\n currency?: string;\n /** Apply a destructive color token to negative amounts. */\n colorNegative?: boolean;\n /** Render the value with strikethrough — used for written-off balances. */\n strikethrough?: boolean;\n /** `Intl.NumberFormat` escape hatch. Merged on top of currency defaults. */\n options?: Intl.NumberFormatOptions;\n}\n\nfunction toNumber(value: unknown): number | null {\n if (value == null || value === '') return null;\n const n = typeof value === 'number' ? value : Number(value);\n return Number.isFinite(n) ? n : null;\n}\n\nexport function CurrencyCellRenderer(\n props: CustomCellRendererProps & CurrencyCellRendererParams,\n) {\n const { value, currency = 'EUR', colorNegative, strikethrough, options } = props;\n const { i18n } = useTranslation();\n const n = toNumber(value);\n if (n === null) return null;\n\n const locale = i18n.language || 'en';\n const formatted = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency,\n ...options,\n }).format(n);\n\n const classNames = ['ds:tabular-nums'];\n if (colorNegative && n < 0) classNames.push('ds:text-[color:var(--destructive)]');\n if (strikethrough) classNames.push('line-through');\n\n return <span className={classNames.join(' ')}>{formatted}</span>;\n}\n","import { cloneElement, isValidElement, type ReactNode } from 'react';\nimport type { CustomCellRendererProps } from 'ag-grid-react';\nimport { IconButton } from '../../button/icon-button';\n\n// Lucide icons render at their intrinsic 24×24 unless given a `size` prop or\n// `size-*` class. The IconButton's wrapping span is only `size-4` (16px), so a\n// bare `<Trash2 />` overflows and, inside AG Grid's `overflow: hidden` cells,\n// gets clipped into horizontal slivers. Coerce icon nodes to the expected size.\nfunction sizeIcon(node: ReactNode): ReactNode {\n if (!isValidElement(node)) return node;\n const element = node as React.ReactElement<{ className?: string; size?: number }>;\n const existingClass = element.props.className ?? '';\n const className = /\\bsize-|\\bw-|\\bh-/.test(existingClass)\n ? existingClass\n : `${existingClass} size-4`.trim();\n return cloneElement(element, { className, size: element.props.size ?? 16 });\n}\n\nexport interface ActionDef<TData = unknown> {\n /** Lucide-style icon node. */\n icon: ReactNode;\n /** Accessible label — also used as the tooltip. */\n label: string;\n /** Invoked with the row data. */\n onClick: (data: TData) => void;\n /** Disable the action. Pass a predicate for per-row disablement. */\n disabled?: boolean | ((data: TData) => boolean);\n /** Human-readable reason shown in the tooltip when disabled. */\n disabledReason?: string;\n /** `destructive` swaps the button intent. */\n variant?: 'default' | 'destructive';\n /** Hide the action entirely. Pass a predicate for per-row hiding. */\n hidden?: boolean | ((data: TData) => boolean);\n}\n\nexport interface ActionsCellRendererParams<TData = unknown> {\n actions: ActionDef<TData>[];\n}\n\nfunction resolve<T>(\n flag: boolean | ((data: T) => boolean) | undefined,\n data: T,\n): boolean {\n if (typeof flag === 'function') return flag(data);\n return Boolean(flag);\n}\n\nexport function ActionsCellRenderer<TData = unknown>(\n props: CustomCellRendererProps<TData> & ActionsCellRendererParams<TData>,\n) {\n const { data, actions } = props;\n if (!data) return null;\n\n return (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {actions.map((action, index) => {\n if (resolve(action.hidden, data)) return null;\n const isDisabled = resolve(action.disabled, data);\n const tooltip = isDisabled && action.disabledReason\n ? action.disabledReason\n : action.label;\n\n const isDestructive = action.variant === 'destructive';\n\n return (\n <IconButton\n // Action defs are referentially stable from consumers; index is\n // acceptable here because actions do not reorder within a row.\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n size=\"sm\"\n intent=\"ghost\"\n icon={sizeIcon(action.icon)}\n tooltip={tooltip}\n aria-label={action.label}\n disabled={isDisabled}\n onClick={(event) => {\n event.stopPropagation();\n action.onClick(data);\n }}\n className={\n isDestructive\n ? 'ds:text-[color:var(--destructive)] ds:hover:text-[color:var(--destructive-hover)]'\n : undefined\n }\n />\n );\n })}\n </span>\n );\n}\n","import type { MouseEvent } from 'react';\nimport type { CustomCellRendererProps } from 'ag-grid-react';\n\ntype Getter<T, TData> = T | ((data: TData) => T | undefined);\n\nexport interface LinkCellRendererParams<TData = unknown> {\n /** Anchor href — or a function that derives it from the row. */\n href?: Getter<string, TData>;\n /** Fallback / additional onClick. Prevents default when provided without href. */\n onClick?: (data: TData) => void;\n /** Small text rendered below the link — supports a row-aware function. */\n secondary?: Getter<string, TData>;\n}\n\nfunction resolve<T, TData>(\n source: Getter<T, TData> | undefined,\n data: TData,\n): T | undefined {\n if (typeof source === 'function') {\n return (source as (data: TData) => T | undefined)(data);\n }\n return source;\n}\n\nfunction safeHref(href: string): string {\n return /^(https?:\\/\\/|\\/|#|mailto:|tel:)/i.test(href) ? href : '#';\n}\n\nexport function LinkCellRenderer<TData = unknown>(\n props: CustomCellRendererProps<TData> & LinkCellRendererParams<TData>,\n) {\n const { value, data, href, onClick, secondary } = props;\n if (!data) return null;\n\n const resolvedHref = resolve(href, data);\n const resolvedSecondary = resolve(secondary, data);\n const content = value == null || value === '' ? '' : String(value);\n\n const linkClasses = [\n 'ds:text-[color:var(--primary)]',\n 'ds:hover:underline',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)]',\n 'ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:rounded-[var(--radius-sm)]',\n ].join(' ');\n\n const handleClick = (event: MouseEvent) => {\n if (!onClick) return;\n if (!resolvedHref) event.preventDefault();\n event.stopPropagation();\n onClick(data);\n };\n\n return (\n <span className=\"ds:flex ds:flex-col ds:leading-tight\">\n {resolvedHref ? (\n <a\n href={safeHref(resolvedHref)}\n onClick={handleClick}\n className={linkClasses}\n >\n {content}\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={handleClick}\n className={['ds:appearance-none ds:bg-transparent ds:p-0 ds:text-start', linkClasses].join(' ')}\n >\n {content}\n </button>\n )}\n {resolvedSecondary ? (\n <span className=\"type-meta ds:text-[color:var(--muted-foreground)]\">\n {resolvedSecondary}\n </span>\n ) : null}\n </span>\n );\n}\n","import type { ReactNode } from 'react';\nimport type { CustomCellRendererProps } from 'ag-grid-react';\nimport { CheckSquare, Square } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\n\nexport interface ToggleCellRendererParams<TData = unknown> {\n /** Fires with the row and the new target value. */\n onToggle: (data: TData, newValue: boolean) => void;\n /** Icon shown when the current value is truthy. */\n trueIcon?: ReactNode;\n /** Icon shown when the current value is falsy. */\n falseIcon?: ReactNode;\n /** Extra classes applied to the \"on\" icon — defaults to success token. */\n trueClass?: string;\n /** Extra classes applied to the \"off\" icon. */\n falseClass?: string;\n /** Accessible label. Falls back to the default on/off announcements. */\n label?: string;\n}\n\nexport function ToggleCellRenderer<TData = unknown>(\n props: CustomCellRendererProps<TData, boolean> & ToggleCellRendererParams<TData>,\n) {\n const {\n value,\n data,\n onToggle,\n trueIcon,\n falseIcon,\n trueClass = 'ds:text-[color:var(--success)]',\n falseClass = 'ds:text-[color:var(--muted-foreground)]',\n label,\n } = props;\n const { t } = useTranslation();\n if (!data) return null;\n\n const isOn = Boolean(value);\n const icon = isOn\n ? (trueIcon ?? <CheckSquare aria-hidden className=\"ds:size-4\" />)\n : (falseIcon ?? <Square aria-hidden className=\"ds:size-4\" />);\n const stateClass = isOn ? trueClass : falseClass;\n const resolvedLabel =\n label ?? (isOn ? t('inputs.switch.on') : t('inputs.switch.off'));\n\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={isOn}\n aria-label={resolvedLabel}\n onClick={(event) => {\n event.stopPropagation();\n onToggle(data, !isOn);\n }}\n className={[\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-h-[var(--min-target-size)] ds:min-w-[var(--min-target-size)]',\n 'ds:appearance-none ds:bg-transparent ds:p-[var(--spacing-xs)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)]',\n 'ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n stateClass,\n ].join(' ')}\n >\n {icon}\n </button>\n );\n}\n","import { useLayoutEffect, useRef } from 'react';\nimport type { CustomCellRendererProps } from 'ag-grid-react';\n\nexport interface ColorDotCellRendererParams {\n /** Field name on the row whose value holds the hex color. */\n colorField: string;\n /** Visual size of the dot. */\n size?: 'sm' | 'md' | 'lg';\n /** Optional label shown next to the dot. */\n labelField?: string;\n}\n\nconst SIZE_CLASS: Record<NonNullable<ColorDotCellRendererParams['size']>, string> = {\n sm: 'ds:size-[var(--icon-size-sm)]',\n md: 'ds:size-[var(--icon-size-md)]',\n lg: 'ds:size-[var(--icon-size-lg)]',\n};\n\nfunction readField(row: unknown, field: string): string | undefined {\n if (!row || typeof row !== 'object') return undefined;\n const value = (row as Record<string, unknown>)[field];\n return typeof value === 'string' ? value : undefined;\n}\n\n// Only accept trusted CSS color forms. Anything outside this allow-list\n// (including smuggled `url()` or extra declarations) is dropped so the\n// CSS custom-property writer can't be used to inject styles.\nconst HEX_RE = /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;\nconst RGB_RE = /^rgba?\\(\\s*[\\d.\\s,%/]+\\)$/i;\nconst HSL_RE = /^hsla?\\(\\s*[\\d.\\s,%/]+\\)$/i;\nconst CSS_VAR_RE = /^var\\(--[a-z0-9-]+(?:,\\s*[^)]+)?\\)$/i;\n\nfunction sanitizeColor(raw: string | undefined): string | undefined {\n if (!raw) return undefined;\n const v = raw.trim();\n if (HEX_RE.test(v) || RGB_RE.test(v) || HSL_RE.test(v) || CSS_VAR_RE.test(v)) {\n return v;\n }\n return undefined;\n}\n\nexport function ColorDotCellRenderer<TData = unknown>(\n props: CustomCellRendererProps<TData> & ColorDotCellRendererParams,\n) {\n const { data, colorField, size = 'md', labelField } = props;\n const dotRef = useRef<HTMLSpanElement | null>(null);\n const rawColor = data ? readField(data, colorField) : undefined;\n const color = sanitizeColor(rawColor);\n const label = data && labelField ? readField(data, labelField) : undefined;\n\n // Apply the dynamic color via a CSS custom property on the element.\n // Keeps hex/rgb literals out of JSX (constraint #2 and #4). The data\n // itself drives the color — constraints only forbid hardcoded colors\n // in component source, not in consumer row data.\n useLayoutEffect(() => {\n const el = dotRef.current;\n if (!el) return;\n if (color) {\n el.style.setProperty('--data-table-dot-color', color);\n } else {\n el.style.removeProperty('--data-table-dot-color');\n }\n }, [color]);\n\n if (!color) return null;\n\n return (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span\n ref={dotRef}\n aria-hidden=\"true\"\n className={[\n 'ds:inline-block ds:shrink-0 ds:rounded-[var(--radius-full)]',\n 'ds:bg-[var(--data-table-dot-color)]',\n 'ds:border ds:border-[color:var(--border)]',\n SIZE_CLASS[size],\n ].join(' ')}\n />\n {label ? <span>{label}</span> : null}\n </span>\n );\n}\n","import type { CustomCellRendererProps } from 'ag-grid-react';\nimport { useTranslation } from 'react-i18next';\n\nexport interface BalanceLine {\n /** User-visible label for this line. */\n label: string;\n /** Field name on the row whose numeric value is rendered. */\n valueField: string;\n /** `'currency'` renders via Intl, `'percent'` appends `%`, `'number'` raw. Default `'number'`. */\n format?: 'currency' | 'percent' | 'number';\n}\n\nexport interface BalanceCellRendererParams {\n lines: BalanceLine[];\n /** ISO 4217 code, used by `currency`-formatted lines. Default `'EUR'`. */\n currency?: string;\n /** Apply destructive color to negative values. */\n highlightNegative?: boolean;\n}\n\nfunction readNumber(row: unknown, field: string): number | null {\n if (!row || typeof row !== 'object') return null;\n const raw = (row as Record<string, unknown>)[field];\n const n = typeof raw === 'number' ? raw : Number(raw);\n return Number.isFinite(n) ? n : null;\n}\n\nexport function BalanceCellRenderer<TData = unknown>(\n props: CustomCellRendererProps<TData> & BalanceCellRendererParams,\n) {\n const { data, lines, currency = 'EUR', highlightNegative } = props;\n const { i18n } = useTranslation();\n if (!data) return null;\n\n const locale = i18n.language || 'en';\n\n return (\n <dl className=\"ds:grid ds:grid-cols-[auto_1fr] ds:gap-x-[var(--spacing-sm)] ds:gap-y-0 type-meta ds:leading-tight\">\n {lines.map((line) => {\n const n = readNumber(data, line.valueField);\n if (n === null) return null;\n\n let formatted: string;\n switch (line.format ?? 'number') {\n case 'currency':\n formatted = new Intl.NumberFormat(locale, {\n style: 'currency',\n currency,\n }).format(n);\n break;\n case 'percent':\n formatted = new Intl.NumberFormat(locale, {\n style: 'percent',\n maximumFractionDigits: 1,\n }).format(n / 100);\n break;\n default:\n formatted = new Intl.NumberFormat(locale).format(n);\n }\n\n const valueClass = ['ds:tabular-nums', 'ds:text-end', 'ds:font-medium'];\n if (highlightNegative && n < 0) {\n valueClass.push('ds:text-[color:var(--destructive)]');\n }\n\n return (\n <div key={line.valueField} className=\"ds:contents\">\n <dt className=\"ds:text-[color:var(--muted-foreground)]\">{line.label}</dt>\n <dd className={valueClass.join(' ')}>{formatted}</dd>\n </div>\n );\n })}\n </dl>\n );\n}\n"],"names":["__iconNode","Columns2","createLucideIcon","Download","sizeIcon","node","isValidElement","element","existingClass","className","cloneElement","ToolbarContext","createContext","useToolbarContext","caller","ctx","useContext","ToolbarProvider","getApi","selectionCount","onPrint","children","value","useMemo","jsx","TOOLBAR_BASE","ToolbarRoot","forwardRef","props","ref","FilterBar","Actions","ExportCsv","label","onExport","intent","rest","t","useTranslation","handleClick","useCallback","api","IconButton","ExportPdf","onClick","FileText","Print","Printer","readColumnEntries","col","c","ColumnToggle","open","setOpen","useState","columns","setColumns","useEffect","toggleColumn","colId","nextVisible","prev","labelText","Popover","Columns","Checkbox","checked","BulkAction","icon","variant","size","jsxs","Button","Toolbar","dataTableAgent","handle","args","ModuleRegistry","AllCommunityModule","dataTableVariants","cva","useAgLocaleText","DefaultLoadingOverlay","_","i","Skeleton","DefaultNoRowsOverlay","EmptyState","loadColumnState","gridId","raw","saveColumnState","DataTableInner","columnDefs","rowData","rowSelection","pagination","paginationPageSize","serverSideDatasource","onSelectionChanged","onSortChanged","onFilterChanged","noRowsOverlay","loadingOverlay","gridOptions","density","bordered","heightClass","getRowClass","pinnedBottomRowData","printMode","i18n","agGridRef","useRef","setSelectionCount","sortAnnouncement","setSortAnnouncement","localeText","_a","ids","want","fromId","toId","ordered","a","b","lo","hi","_b","model","next","target","m","page","useImperativeHandle","useAgentRegistration","isRtl","isLoading","prefersReducedMotion","effectiveDensity","rowSelectionOption","rowModelType","handleGridReady","saved","handleColumnStateChange","handleSelectionChanged","rows","handleSortChanged","event","sortedCol","colDef","cd","colName","dirKey","handleFilterChanged","id","NoRowsComponent","LoadingComponent","handlePrint","wrapperClass","toolbarContent","paginationEnabled","AgGridReact","DataTableBase","DataTable","useTotalRow","sumFields","options","row","field","total","r","n","StatusCellRenderer","variantMap","Badge","UserCellRenderer","Avatar","TagListCellRenderer","maxVisible","visible","overflow","tag","Tag","Tooltip","PRESETS","DateCellRenderer","format","Timestamp","toNumber","CurrencyCellRenderer","currency","colorNegative","strikethrough","locale","formatted","classNames","resolve","flag","data","ActionsCellRenderer","actions","action","index","isDisabled","tooltip","isDestructive","source","safeHref","href","LinkCellRenderer","secondary","resolvedHref","resolvedSecondary","content","linkClasses","ToggleCellRenderer","onToggle","trueIcon","falseIcon","trueClass","falseClass","isOn","CheckSquare","Square","stateClass","resolvedLabel","SIZE_CLASS","readField","HEX_RE","RGB_RE","HSL_RE","CSS_VAR_RE","sanitizeColor","v","ColorDotCellRenderer","colorField","labelField","dotRef","rawColor","color","useLayoutEffect","el","readNumber","BalanceCellRenderer","lines","highlightNegative","line","valueClass"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,293 +0,0 @@
1
- import { jsx as s, jsxs as k } from "react/jsx-runtime";
2
- import { forwardRef as v, Children as j, isValidElement as B, cloneElement as I, useContext as T, createContext as V } from "react";
3
- import * as g from "@radix-ui/react-dropdown-menu";
4
- import { Slot as D } from "@radix-ui/react-slot";
5
- import { c as G } from "./index-D2ZczOXr.js";
6
- import { useTranslation as y } from "react-i18next";
7
- import { E as H } from "./ellipsis-rgGdiK_9.js";
8
- import { C as M } from "./chevron-right-BrpYejk0.js";
9
- const L = V({
10
- separator: "chevron"
11
- }), O = v(
12
- ({
13
- children: o,
14
- className: i,
15
- "aria-label": t,
16
- separator: n = "chevron",
17
- maxItems: r = 4,
18
- itemsBeforeCollapse: e = 1,
19
- itemsAfterCollapse: a = 1,
20
- disableCollapse: m = !1,
21
- ...c
22
- }, p) => {
23
- const { t: x } = y();
24
- return /* @__PURE__ */ s(L.Provider, { value: { separator: n }, children: /* @__PURE__ */ s(
25
- "nav",
26
- {
27
- ref: p,
28
- "aria-label": t ?? x("ui.navigation.breadcrumb.label"),
29
- "data-component": "breadcrumb",
30
- className: i,
31
- ...c,
32
- children: /* @__PURE__ */ s(
33
- $,
34
- {
35
- maxItems: r,
36
- itemsBeforeCollapse: e,
37
- itemsAfterCollapse: a,
38
- disableCollapse: m,
39
- children: o
40
- }
41
- )
42
- }
43
- ) });
44
- }
45
- );
46
- O.displayName = "Breadcrumb";
47
- const _ = [
48
- "ds:flex ds:flex-wrap ds:items-center",
49
- "ds:gap-[var(--spacing-xs)]",
50
- "ds:text-[var(--font-size-sm)] ds:text-[var(--muted-foreground)]",
51
- "ds:ps-0 ds:m-0",
52
- "ds:list-none"
53
- ].join(" "), $ = v(
54
- ({
55
- children: o,
56
- className: i,
57
- maxItems: t = 4,
58
- itemsBeforeCollapse: n = 1,
59
- itemsAfterCollapse: r = 1,
60
- disableCollapse: e = !1,
61
- ...a
62
- }, m) => {
63
- const c = j.toArray(o).filter((d) => B(d)), p = c.length, x = !e && p > t && n + r < p, w = (d, l, f) => I(d, {
64
- isCurrent: d.props.isCurrent ?? l,
65
- key: f
66
- }), b = (d, l) => d ? /* @__PURE__ */ s(R, {}, l) : null;
67
- let u = [];
68
- if (!x)
69
- c.forEach((d, l) => {
70
- const f = l === p - 1;
71
- u.push(w(d, f, `item-${l}`)), u.push(b(!f, `sep-${l}`));
72
- });
73
- else {
74
- const d = c.slice(0, n), l = c.slice(p - r), f = c.slice(n, p - r);
75
- d.forEach((C, h) => {
76
- u.push(w(C, !1, `b-${h}`)), u.push(b(!0, `b-sep-${h}`));
77
- }), u.push(
78
- /* @__PURE__ */ s(P, { children: /* @__PURE__ */ s(S, { hiddenItems: f }) }, "ellipsis")
79
- ), u.push(b(!0, "ellipsis-sep")), l.forEach((C, h) => {
80
- const z = h === l.length - 1;
81
- u.push(w(C, z, `a-${h}`)), u.push(b(!z, `a-sep-${h}`));
82
- });
83
- }
84
- return /* @__PURE__ */ s("ol", { ref: m, className: [_, i].filter(Boolean).join(" "), ...a, children: u });
85
- }
86
- );
87
- $.displayName = "BreadcrumbList";
88
- const q = [
89
- "ds:inline-flex ds:items-center",
90
- "ds:max-inline-size-[16rem]",
91
- "ds:min-h-[var(--min-target-size)]",
92
- "ds:py-[var(--spacing-xs)]"
93
- ].join(" "), P = v(
94
- ({ children: o, className: i, isCurrent: t = !1, ...n }, r) => /* @__PURE__ */ s(
95
- "li",
96
- {
97
- ref: r,
98
- className: [q, i].filter(Boolean).join(" "),
99
- ...n,
100
- children: j.map(
101
- o,
102
- (e) => {
103
- var a;
104
- return B(e) && (e.type === N || (a = e.props) != null && a._link) ? I(e, {
105
- isCurrent: t
106
- }) : e;
107
- }
108
- )
109
- }
110
- )
111
- );
112
- P.displayName = "BreadcrumbItem";
113
- const E = [
114
- "ds:inline-flex ds:items-center",
115
- "ds:max-inline-size-[16rem]",
116
- "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap",
117
- "ds:break-normal",
118
- "ds:text-[var(--muted-foreground)] ds:no-underline",
119
- "ds:hover:text-[var(--foreground)] ds:hover:underline",
120
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
121
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
122
- "ds:rounded-[var(--radius-sm)]",
123
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
124
- "ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]"
125
- ].join(" "), F = [
126
- "ds:inline-flex ds:items-center",
127
- "ds:max-inline-size-[16rem]",
128
- "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap",
129
- "ds:break-normal",
130
- "ds:text-[var(--foreground)] ds:font-[var(--font-weight-semibold)]",
131
- "ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]"
132
- ].join(" "), N = v(
133
- ({ asChild: o = !1, isCurrent: i = !1, className: t, children: n, ...r }, e) => {
134
- const { t: a } = y();
135
- return i ? /* @__PURE__ */ s(
136
- "span",
137
- {
138
- "aria-current": "page",
139
- "aria-label": r["aria-label"] ?? a("ui.navigation.breadcrumb.current"),
140
- className: [F, t].filter(Boolean).join(" "),
141
- children: n
142
- }
143
- ) : o ? /* @__PURE__ */ s(
144
- D,
145
- {
146
- ref: e,
147
- className: [E, t].filter(Boolean).join(" "),
148
- ...r,
149
- children: n
150
- }
151
- ) : /* @__PURE__ */ s(
152
- "a",
153
- {
154
- ref: e,
155
- className: [E, t].filter(Boolean).join(" "),
156
- ...r,
157
- children: n
158
- }
159
- );
160
- }
161
- );
162
- N.displayName = "BreadcrumbLink";
163
- const J = G(
164
- [
165
- "ds:inline-flex ds:items-center ds:justify-center",
166
- "ds:text-[var(--muted-foreground)]",
167
- "ds:ms-[var(--spacing-xs)] ds:me-[var(--spacing-xs)]",
168
- "ds:select-none"
169
- ].join(" "),
170
- {
171
- variants: {
172
- variant: {
173
- chevron: "",
174
- slash: ""
175
- }
176
- },
177
- defaultVariants: { variant: "chevron" }
178
- }
179
- ), R = v(
180
- ({ className: o, variant: i, children: t, ...n }, r) => {
181
- const e = T(L), a = i ?? e.separator, m = a === "slash" ? /* @__PURE__ */ s("span", { "aria-hidden": "true", children: "/" }) : /* @__PURE__ */ s(
182
- M,
183
- {
184
- "aria-hidden": "true",
185
- className: "ds:size-4 ds:rtl:-scale-x-100"
186
- }
187
- );
188
- return /* @__PURE__ */ s(
189
- "li",
190
- {
191
- ref: r,
192
- "aria-hidden": "true",
193
- role: "presentation",
194
- className: J({ variant: a, className: o }),
195
- ...n,
196
- children: t ?? m
197
- }
198
- );
199
- }
200
- );
201
- R.displayName = "BreadcrumbSeparator";
202
- const K = [
203
- "ds:inline-flex ds:items-center ds:justify-center",
204
- "ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]",
205
- "ds:rounded-[var(--radius-sm)]",
206
- "ds:text-[var(--muted-foreground)]",
207
- "ds:hover:text-[var(--foreground)]",
208
- "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
209
- "ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
210
- "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
211
- ].join(" "), Q = [
212
- "ds:z-[var(--z-dropdown)] ds:min-w-[12rem] ds:overflow-hidden",
213
- "ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]",
214
- "ds:bg-[var(--background)] ds:text-[var(--foreground)]",
215
- "ds:shadow-[var(--shadow-lg)]",
216
- "ds:p-[var(--spacing-xs)]",
217
- "ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none"
218
- ].join(" "), U = [
219
- "ds:flex ds:items-center",
220
- "ds:min-h-[var(--min-target-size)]",
221
- "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
222
- "ds:rounded-[var(--radius-sm)]",
223
- "ds:text-[var(--foreground)] ds:cursor-pointer ds:select-none",
224
- "ds:data-[highlighted]:bg-[var(--muted)] ds:data-[highlighted]:text-[var(--foreground)]",
225
- "ds:outline-none"
226
- ].join(" "), S = v(
227
- ({ className: o, hiddenItems: i = [], ...t }, n) => {
228
- const { t: r } = y(), e = r("ui.navigation.breadcrumb.showPath");
229
- return /* @__PURE__ */ k(g.Root, { children: [
230
- /* @__PURE__ */ s(g.Trigger, { asChild: !0, children: /* @__PURE__ */ k(
231
- "button",
232
- {
233
- ref: n,
234
- type: "button",
235
- "aria-label": e,
236
- className: [K, o].filter(Boolean).join(" "),
237
- ...t,
238
- children: [
239
- /* @__PURE__ */ s(H, { "aria-hidden": "true", className: "ds:size-4" }),
240
- /* @__PURE__ */ s("span", { className: "ds:sr-only", children: e })
241
- ]
242
- }
243
- ) }),
244
- /* @__PURE__ */ s(g.Portal, { children: /* @__PURE__ */ s(
245
- g.Content,
246
- {
247
- className: Q,
248
- align: "start",
249
- sideOffset: 6,
250
- children: i.map((a, m) => {
251
- const c = W(a);
252
- return /* @__PURE__ */ s(
253
- g.Item,
254
- {
255
- asChild: !0,
256
- className: U,
257
- children: c ?? /* @__PURE__ */ s("span", { children: a })
258
- },
259
- `hidden-${m}`
260
- );
261
- })
262
- }
263
- ) })
264
- ] });
265
- }
266
- );
267
- S.displayName = "BreadcrumbEllipsis";
268
- function W(o) {
269
- let i = null;
270
- const t = o.props.children;
271
- return j.forEach(t, (n) => {
272
- if (!i && B(n) && n.type === N) {
273
- const r = n.props, e = typeof r.href == "string" ? r.href : void 0, a = e && /^\s*javascript:/i.test(e) ? void 0 : e;
274
- i = /* @__PURE__ */ s(
275
- "a",
276
- {
277
- href: a,
278
- onClick: r.onClick,
279
- children: r.children
280
- }
281
- );
282
- }
283
- }), i;
284
- }
285
- export {
286
- O as B,
287
- S as a,
288
- P as b,
289
- N as c,
290
- $ as d,
291
- R as e
292
- };
293
- //# sourceMappingURL=breadcrumb-D6xpsP7n.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"breadcrumb-D6xpsP7n.js","sources":["../../src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n type AnchorHTMLAttributes,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\n\n/* -------------------------------------------------------------------- */\n/* Context — shares separator variant between siblings */\n/* -------------------------------------------------------------------- */\n\ntype SeparatorVariant = 'chevron' | 'slash';\n\ninterface BreadcrumbContextValue {\n separator: SeparatorVariant;\n}\n\nconst BreadcrumbContext = createContext<BreadcrumbContextValue>({\n separator: 'chevron',\n});\n\n/* -------------------------------------------------------------------- */\n/* Root — <nav aria-label> wrapper + truncation engine */\n/* -------------------------------------------------------------------- */\n\nexport interface BreadcrumbProps extends ComponentPropsWithoutRef<'nav'> {\n /** Override the default `aria-label` (falls back to translated `ui.navigation.breadcrumb.label`). */\n 'aria-label'?: string;\n /** Separator glyph between items. @default 'chevron' */\n separator?: SeparatorVariant;\n /** Maximum number of visible crumbs before collapsing. @default 4 */\n maxItems?: number;\n /** Items kept visible at the start. @default 1 */\n itemsBeforeCollapse?: number;\n /** Items kept visible at the end. @default 1 */\n itemsAfterCollapse?: number;\n /** If true, disables collapse behaviour. */\n disableCollapse?: boolean;\n}\n\nconst Breadcrumb = forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n children,\n className,\n 'aria-label': ariaLabel,\n separator = 'chevron',\n maxItems = 4,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n disableCollapse = false,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n return (\n <BreadcrumbContext.Provider value={{ separator }}>\n <nav\n ref={ref}\n aria-label={ariaLabel ?? t('ui.navigation.breadcrumb.label')}\n data-component=\"breadcrumb\"\n className={className}\n {...rest}\n >\n <BreadcrumbList\n maxItems={maxItems}\n itemsBeforeCollapse={itemsBeforeCollapse}\n itemsAfterCollapse={itemsAfterCollapse}\n disableCollapse={disableCollapse}\n >\n {children}\n </BreadcrumbList>\n </nav>\n </BreadcrumbContext.Provider>\n );\n },\n);\nBreadcrumb.displayName = 'Breadcrumb';\n\n/* -------------------------------------------------------------------- */\n/* List — walks its children, injects separators & ellipsis */\n/* -------------------------------------------------------------------- */\n\nconst listClasses = [\n 'ds:flex ds:flex-wrap ds:items-center',\n 'ds:gap-[var(--spacing-xs)]',\n 'ds:text-[var(--font-size-sm)] ds:text-[var(--muted-foreground)]',\n 'ds:ps-0 ds:m-0',\n 'ds:list-none',\n].join(' ');\n\nexport interface BreadcrumbListProps extends ComponentPropsWithoutRef<'ol'> {\n maxItems?: number;\n itemsBeforeCollapse?: number;\n itemsAfterCollapse?: number;\n disableCollapse?: boolean;\n}\n\nconst BreadcrumbList = forwardRef<HTMLOListElement, BreadcrumbListProps>(\n (\n {\n children,\n className,\n maxItems = 4,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n disableCollapse = false,\n ...rest\n },\n ref,\n ) => {\n const arr = Children.toArray(children).filter((c) => isValidElement(c)) as ReactElement[];\n const total = arr.length;\n\n const shouldCollapse =\n !disableCollapse &&\n total > maxItems &&\n itemsBeforeCollapse + itemsAfterCollapse < total;\n\n const renderItem = (child: ReactElement, isLast: boolean, key: string) =>\n cloneElement(child, {\n isCurrent: (child.props as BreadcrumbItemProps).isCurrent ?? isLast,\n key,\n } as Partial<BreadcrumbItemProps>);\n\n const renderSeparatorIf = (condition: boolean, key: string) =>\n condition ? <BreadcrumbSeparator key={key} /> : null;\n\n let nodes: ReactNode[] = [];\n if (!shouldCollapse) {\n arr.forEach((child, i) => {\n const isLast = i === total - 1;\n nodes.push(renderItem(child, isLast, `item-${i}`));\n nodes.push(renderSeparatorIf(!isLast, `sep-${i}`));\n });\n } else {\n const before = arr.slice(0, itemsBeforeCollapse);\n const after = arr.slice(total - itemsAfterCollapse);\n const hidden = arr.slice(itemsBeforeCollapse, total - itemsAfterCollapse);\n\n before.forEach((child, i) => {\n nodes.push(renderItem(child, false, `b-${i}`));\n nodes.push(renderSeparatorIf(true, `b-sep-${i}`));\n });\n\n nodes.push(\n <BreadcrumbItem key=\"ellipsis\">\n <BreadcrumbEllipsis hiddenItems={hidden} />\n </BreadcrumbItem>,\n );\n nodes.push(renderSeparatorIf(true, 'ellipsis-sep'));\n\n after.forEach((child, i) => {\n const isLast = i === after.length - 1;\n nodes.push(renderItem(child, isLast, `a-${i}`));\n nodes.push(renderSeparatorIf(!isLast, `a-sep-${i}`));\n });\n }\n\n return (\n <ol ref={ref} className={[listClasses, className].filter(Boolean).join(' ')} {...rest}>\n {nodes}\n </ol>\n );\n },\n);\nBreadcrumbList.displayName = 'BreadcrumbList';\n\n/* -------------------------------------------------------------------- */\n/* Item — <li> marks current when `isCurrent` */\n/* -------------------------------------------------------------------- */\n\nconst itemClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:max-inline-size-[16rem]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:py-[var(--spacing-xs)]',\n].join(' ');\n\nexport interface BreadcrumbItemProps extends ComponentPropsWithoutRef<'li'> {\n /** Set automatically by `BreadcrumbList` on the final item. */\n isCurrent?: boolean;\n}\n\nconst BreadcrumbItem = forwardRef<HTMLLIElement, BreadcrumbItemProps>(\n ({ children, className, isCurrent = false, ...rest }, ref) => (\n <li\n ref={ref}\n className={[itemClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {Children.map(children, (child) =>\n isValidElement(child) &&\n (child.type === BreadcrumbLink || (child.props as { _link?: boolean })?._link)\n ? cloneElement(child as ReactElement<BreadcrumbLinkProps>, {\n isCurrent,\n })\n : child,\n )}\n </li>\n ),\n);\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\n/* -------------------------------------------------------------------- */\n/* Link — renders <a>, or plain text when current */\n/* -------------------------------------------------------------------- */\n\nconst linkClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:max-inline-size-[16rem]',\n 'ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap',\n 'ds:break-normal',\n 'ds:text-[var(--muted-foreground)] ds:no-underline',\n 'ds:hover:text-[var(--foreground)] ds:hover:underline',\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:rounded-[var(--radius-sm)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n].join(' ');\n\nconst currentClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:max-inline-size-[16rem]',\n 'ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap',\n 'ds:break-normal',\n 'ds:text-[var(--foreground)] ds:font-[var(--font-weight-semibold)]',\n 'ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n].join(' ');\n\nexport interface BreadcrumbLinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Use Radix `Slot` so consumers can pass a router link. */\n asChild?: boolean;\n /** Set by the parent Item when this is the current page. */\n isCurrent?: boolean;\n}\n\nconst BreadcrumbLink = forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n ({ asChild = false, isCurrent = false, className, children, ...rest }, ref) => {\n const { t } = useTranslation();\n\n if (isCurrent) {\n return (\n <span\n aria-current=\"page\"\n aria-label={\n (rest['aria-label'] as string | undefined) ??\n t('ui.navigation.breadcrumb.current')\n }\n className={[currentClasses, className].filter(Boolean).join(' ')}\n >\n {children}\n </span>\n );\n }\n\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={[linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <a\n ref={ref}\n className={[linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </a>\n );\n },\n);\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\n/* -------------------------------------------------------------------- */\n/* Separator */\n/* -------------------------------------------------------------------- */\n\nconst separatorVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:text-[var(--muted-foreground)]',\n 'ds:ms-[var(--spacing-xs)] ds:me-[var(--spacing-xs)]',\n 'ds:select-none',\n ].join(' '),\n {\n variants: {\n variant: {\n chevron: '',\n slash: '',\n },\n },\n defaultVariants: { variant: 'chevron' },\n },\n);\n\nexport interface BreadcrumbSeparatorProps\n extends Omit<ComponentPropsWithoutRef<'li'>, 'children'>,\n VariantProps<typeof separatorVariants> {\n children?: ReactNode;\n}\n\nconst BreadcrumbSeparator = forwardRef<HTMLLIElement, BreadcrumbSeparatorProps>(\n ({ className, variant, children, ...rest }, ref) => {\n const ctx = useContext(BreadcrumbContext);\n const resolved = variant ?? ctx.separator;\n const defaultGlyph =\n resolved === 'slash' ? (\n <span aria-hidden=\"true\">/</span>\n ) : (\n <ChevronRight\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:rtl:-scale-x-100\"\n />\n );\n return (\n <li\n ref={ref}\n aria-hidden=\"true\"\n role=\"presentation\"\n className={separatorVariants({ variant: resolved, className })}\n {...rest}\n >\n {children ?? defaultGlyph}\n </li>\n );\n },\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\n/* -------------------------------------------------------------------- */\n/* Ellipsis — opens a Radix DropdownMenu with hidden crumbs */\n/* -------------------------------------------------------------------- */\n\nconst ellipsisTriggerClasses = [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--muted-foreground)]',\n 'ds:hover:text-[var(--foreground)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n].join(' ');\n\nconst ellipsisContentClasses = [\n 'ds:z-[var(--z-dropdown)] ds:min-w-[12rem] ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:p-[var(--spacing-xs)]',\n 'ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none',\n].join(' ');\n\nconst ellipsisItemClasses = [\n 'ds:flex ds:items-center',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--foreground)] ds:cursor-pointer ds:select-none',\n 'ds:data-[highlighted]:bg-[var(--muted)] ds:data-[highlighted]:text-[var(--foreground)]',\n 'ds:outline-none',\n].join(' ');\n\nexport interface BreadcrumbEllipsisProps extends ComponentPropsWithoutRef<'button'> {\n /** Hidden crumb elements rendered inside the dropdown menu. */\n hiddenItems?: ReactElement[];\n}\n\nconst BreadcrumbEllipsis = forwardRef<HTMLButtonElement, BreadcrumbEllipsisProps>(\n ({ className, hiddenItems = [], ...rest }, ref) => {\n const { t } = useTranslation();\n const showPath = t('ui.navigation.breadcrumb.showPath');\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <button\n ref={ref}\n type=\"button\"\n aria-label={showPath}\n className={[ellipsisTriggerClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n <MoreHorizontal aria-hidden=\"true\" className=\"ds:size-4\" />\n <span className=\"ds:sr-only\">{showPath}</span>\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n className={ellipsisContentClasses}\n align=\"start\"\n sideOffset={6}\n >\n {hiddenItems.map((item, i) => {\n // Extract the anchor inside the hidden BreadcrumbItem (if any)\n const linkChild = extractLink(item);\n return (\n <DropdownMenu.Item\n key={`hidden-${i}`}\n asChild\n className={ellipsisItemClasses}\n >\n {linkChild ?? <span>{item}</span>}\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n },\n);\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\n/**\n * Walks a `BreadcrumbItem` to find the first child whose type is\n * `BreadcrumbLink` and returns the link rendered as a plain `<a>` so the\n * dropdown item can adopt its navigational behaviour.\n */\nfunction extractLink(item: ReactElement): ReactElement | null {\n let found: ReactElement | null = null;\n const itemChildren = (item.props as { children?: ReactNode }).children;\n Children.forEach(itemChildren, (child) => {\n if (found) return;\n if (!isValidElement(child)) return;\n if (child.type === BreadcrumbLink) {\n const linkProps = child.props as BreadcrumbLinkProps & { children?: ReactNode };\n const href = typeof linkProps.href === 'string' ? linkProps.href : undefined;\n const safeHref =\n href && /^\\s*javascript:/i.test(href) ? undefined : href;\n found = (\n <a\n href={safeHref}\n onClick={linkProps.onClick as AnchorHTMLAttributes<HTMLAnchorElement>['onClick']}\n >\n {linkProps.children}\n </a>\n );\n }\n });\n return found;\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"],"names":["BreadcrumbContext","createContext","Breadcrumb","forwardRef","children","className","ariaLabel","separator","maxItems","itemsBeforeCollapse","itemsAfterCollapse","disableCollapse","rest","ref","t","useTranslation","jsx","BreadcrumbList","listClasses","arr","Children","c","isValidElement","total","shouldCollapse","renderItem","child","isLast","key","cloneElement","renderSeparatorIf","condition","BreadcrumbSeparator","nodes","i","before","after","hidden","BreadcrumbItem","BreadcrumbEllipsis","itemClasses","isCurrent","BreadcrumbLink","_a","linkClasses","currentClasses","asChild","Slot","separatorVariants","cva","variant","ctx","useContext","resolved","defaultGlyph","ChevronRight","ellipsisTriggerClasses","ellipsisContentClasses","ellipsisItemClasses","hiddenItems","showPath","jsxs","DropdownMenu","MoreHorizontal","item","linkChild","extractLink","found","itemChildren","linkProps","href","safeHref"],"mappings":";;;;;;;;AA4BA,MAAMA,IAAoBC,EAAsC;AAAA,EAC9D,WAAW;AACb,CAAC,GAqBKC,IAAaC;AAAA,EACjB,CACE;AAAA,IACE,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAcC;AAAA,IACd,WAAAC,IAAY;AAAA,IACZ,UAAAC,IAAW;AAAA,IACX,qBAAAC,IAAsB;AAAA,IACtB,oBAAAC,IAAqB;AAAA,IACrB,iBAAAC,IAAkB;AAAA,IAClB,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA;AACd,6BACGf,EAAkB,UAAlB,EAA2B,OAAO,EAAE,WAAAO,KACnC,UAAA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAH;AAAA,QACA,cAAYP,KAAaQ,EAAE,gCAAgC;AAAA,QAC3D,kBAAe;AAAA,QACf,WAAAT;AAAA,QACC,GAAGO;AAAA,QAEJ,UAAA,gBAAAI;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,UAAAT;AAAA,YACA,qBAAAC;AAAA,YACA,oBAAAC;AAAA,YACA,iBAAAC;AAAA,YAEC,UAAAP;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA,GAEJ;AAAA,EAEJ;AACF;AACAF,EAAW,cAAc;AAMzB,MAAMgB,IAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GASJD,IAAiBd;AAAA,EACrB,CACE;AAAA,IACE,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAG,IAAW;AAAA,IACX,qBAAAC,IAAsB;AAAA,IACtB,oBAAAC,IAAqB;AAAA,IACrB,iBAAAC,IAAkB;AAAA,IAClB,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMM,IAAMC,EAAS,QAAQhB,CAAQ,EAAE,OAAO,CAACiB,MAAMC,EAAeD,CAAC,CAAC,GAChEE,IAAQJ,EAAI,QAEZK,IACJ,CAACb,KACDY,IAAQf,KACRC,IAAsBC,IAAqBa,GAEvCE,IAAa,CAACC,GAAqBC,GAAiBC,MACxDC,EAAaH,GAAO;AAAA,MAClB,WAAYA,EAAM,MAA8B,aAAaC;AAAA,MAC7D,KAAAC;AAAA,IAAA,CAC+B,GAE7BE,IAAoB,CAACC,GAAoBH,MAC7CG,IAAY,gBAAAf,EAACgB,GAAA,CAAA,GAAyBJ,CAAK,IAAK;AAElD,QAAIK,IAAqB,CAAA;AACzB,QAAI,CAACT;AACH,MAAAL,EAAI,QAAQ,CAACO,GAAOQ,MAAM;AACxB,cAAMP,IAASO,MAAMX,IAAQ;AAC7B,QAAAU,EAAM,KAAKR,EAAWC,GAAOC,GAAQ,QAAQO,CAAC,EAAE,CAAC,GACjDD,EAAM,KAAKH,EAAkB,CAACH,GAAQ,OAAOO,CAAC,EAAE,CAAC;AAAA,MACnD,CAAC;AAAA,SACI;AACL,YAAMC,IAAShB,EAAI,MAAM,GAAGV,CAAmB,GACzC2B,IAAQjB,EAAI,MAAMI,IAAQb,CAAkB,GAC5C2B,IAASlB,EAAI,MAAMV,GAAqBc,IAAQb,CAAkB;AAExE,MAAAyB,EAAO,QAAQ,CAACT,GAAOQ,MAAM;AAC3B,QAAAD,EAAM,KAAKR,EAAWC,GAAO,IAAO,KAAKQ,CAAC,EAAE,CAAC,GAC7CD,EAAM,KAAKH,EAAkB,IAAM,SAASI,CAAC,EAAE,CAAC;AAAA,MAClD,CAAC,GAEDD,EAAM;AAAA,0BACHK,GAAA,EACC,UAAA,gBAAAtB,EAACuB,KAAmB,aAAaF,GAAQ,KADvB,UAEpB;AAAA,MAAA,GAEFJ,EAAM,KAAKH,EAAkB,IAAM,cAAc,CAAC,GAElDM,EAAM,QAAQ,CAACV,GAAOQ,MAAM;AAC1B,cAAMP,IAASO,MAAME,EAAM,SAAS;AACpC,QAAAH,EAAM,KAAKR,EAAWC,GAAOC,GAAQ,KAAKO,CAAC,EAAE,CAAC,GAC9CD,EAAM,KAAKH,EAAkB,CAACH,GAAQ,SAASO,CAAC,EAAE,CAAC;AAAA,MACrD,CAAC;AAAA,IACH;AAEA,6BACG,MAAA,EAAG,KAAArB,GAAU,WAAW,CAACK,GAAab,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAAI,GAAGO,GAC9E,UAAAqB,GACH;AAAA,EAEJ;AACF;AACAhB,EAAe,cAAc;AAM7B,MAAMuB,IAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAOJF,IAAiBnC;AAAA,EACrB,CAAC,EAAE,UAAAC,GAAU,WAAAC,GAAW,WAAAoC,IAAY,IAAO,GAAG7B,EAAA,GAAQC,MACpD,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAH;AAAA,MACA,WAAW,CAAC2B,GAAanC,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MAC3D,GAAGO;AAAA,MAEH,UAAAQ,EAAS;AAAA,QAAIhB;AAAA,QAAU,CAACsB,MAAA;;AACvB,iBAAAJ,EAAeI,CAAK,MACnBA,EAAM,SAASgB,MAAmBC,IAAAjB,EAAM,UAAN,QAAAiB,EAAqC,SACpEd,EAAaH,GAA4C;AAAA,YACvD,WAAAe;AAAA,UAAA,CACD,IACDf;AAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAGN;AACAY,EAAe,cAAc;AAM7B,MAAMM,IAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAEJC,IAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAUJH,IAAiBvC;AAAA,EACrB,CAAC,EAAE,SAAA2C,IAAU,IAAO,WAAAL,IAAY,IAAO,WAAApC,GAAW,UAAAD,GAAU,GAAGQ,EAAA,GAAQC,MAAQ;AAC7E,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,WAAI0B,IAEA,gBAAAzB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,gBAAa;AAAA,QACb,cACGJ,EAAK,YAAY,KAClBE,EAAE,kCAAkC;AAAA,QAEtC,WAAW,CAAC+B,GAAgBxC,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,QAE9D,UAAAD;AAAA,MAAA;AAAA,IAAA,IAKH0C,IAEA,gBAAA9B;AAAA,MAAC+B;AAAA,MAAA;AAAA,QACC,KAAAlC;AAAA,QACA,WAAW,CAAC+B,GAAavC,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,QAC3D,GAAGO;AAAA,QAEH,UAAAR;AAAA,MAAA;AAAA,IAAA,IAML,gBAAAY;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAH;AAAA,QACA,WAAW,CAAC+B,GAAavC,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,QAC3D,GAAGO;AAAA,QAEH,UAAAR;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AACAsC,EAAe,cAAc;AAM7B,MAAMM,IAAoBC;AAAA,EACxB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB,EAAE,SAAS,UAAA;AAAA,EAAU;AAE1C,GAQMjB,IAAsB7B;AAAA,EAC1B,CAAC,EAAE,WAAAE,GAAW,SAAA6C,GAAS,UAAA9C,GAAU,GAAGQ,EAAA,GAAQC,MAAQ;AAClD,UAAMsC,IAAMC,EAAWpD,CAAiB,GAClCqD,IAAWH,KAAWC,EAAI,WAC1BG,IACJD,MAAa,UACX,gBAAArC,EAAC,UAAK,eAAY,QAAO,eAAC,IAE1B,gBAAAA;AAAA,MAACuC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,WAAU;AAAA,MAAA;AAAA,IAAA;AAGhB,WACE,gBAAAvC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAH;AAAA,QACA,eAAY;AAAA,QACZ,MAAK;AAAA,QACL,WAAWmC,EAAkB,EAAE,SAASK,GAAU,WAAAhD,GAAW;AAAA,QAC5D,GAAGO;AAAA,QAEH,UAAAR,KAAYkD;AAAA,MAAA;AAAA,IAAA;AAAA,EAGnB;AACF;AACAtB,EAAoB,cAAc;AAMlC,MAAMwB,IAAyB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAEJC,IAAyB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAEJC,IAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAOJnB,IAAqBpC;AAAA,EACzB,CAAC,EAAE,WAAAE,GAAW,aAAAsD,IAAc,CAAA,GAAI,GAAG/C,EAAA,GAAQC,MAAQ;AACjD,UAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACR6C,IAAW9C,EAAE,mCAAmC;AACtD,WACE,gBAAA+C,EAACC,EAAa,MAAb,EACC,UAAA;AAAA,MAAA,gBAAA9C,EAAC8C,EAAa,SAAb,EAAqB,SAAO,IAC3B,UAAA,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAhD;AAAA,UACA,MAAK;AAAA,UACL,cAAY+C;AAAA,UACZ,WAAW,CAACJ,GAAwBnD,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,UACtE,GAAGO;AAAA,UAEJ,UAAA;AAAA,YAAA,gBAAAI,EAAC+C,GAAA,EAAe,eAAY,QAAO,WAAU,aAAY;AAAA,YACzD,gBAAA/C,EAAC,QAAA,EAAK,WAAU,cAAc,UAAA4C,EAAA,CAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,GAE3C;AAAA,MACA,gBAAA5C,EAAC8C,EAAa,QAAb,EACC,UAAA,gBAAA9C;AAAA,QAAC8C,EAAa;AAAA,QAAb;AAAA,UACC,WAAWL;AAAA,UACX,OAAM;AAAA,UACN,YAAY;AAAA,UAEX,UAAAE,EAAY,IAAI,CAACK,GAAM9B,MAAM;AAE5B,kBAAM+B,IAAYC,EAAYF,CAAI;AAClC,mBACE,gBAAAhD;AAAA,cAAC8C,EAAa;AAAA,cAAb;AAAA,gBAEC,SAAO;AAAA,gBACP,WAAWJ;AAAA,gBAEV,UAAAO,KAAa,gBAAAjD,EAAC,QAAA,EAAM,UAAAgD,EAAA,CAAK;AAAA,cAAA;AAAA,cAJrB,UAAU9B,CAAC;AAAA,YAAA;AAAA,UAOtB,CAAC;AAAA,QAAA;AAAA,MAAA,EACH,CACF;AAAA,IAAA,GACF;AAAA,EAEJ;AACF;AACAK,EAAmB,cAAc;AAOjC,SAAS2B,EAAYF,GAAyC;AAC5D,MAAIG,IAA6B;AACjC,QAAMC,IAAgBJ,EAAK,MAAmC;AAC9D,SAAA5C,EAAS,QAAQgD,GAAc,CAAC1C,MAAU;AACxC,QAAI,CAAAyC,KACC7C,EAAeI,CAAK,KACrBA,EAAM,SAASgB,GAAgB;AACjC,YAAM2B,IAAY3C,EAAM,OAClB4C,IAAO,OAAOD,EAAU,QAAS,WAAWA,EAAU,OAAO,QAC7DE,IACJD,KAAQ,mBAAmB,KAAKA,CAAI,IAAI,SAAYA;AACtD,MAAAH,IACE,gBAAAnD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMuD;AAAA,UACN,SAASF,EAAU;AAAA,UAElB,UAAAA,EAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAGjB;AAAA,EACF,CAAC,GACMF;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-7mLWcMp_.js","sources":["../../src/components/button/button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, useEffect } from 'react';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst buttonVariants = cva(\n // `forced-colors:*` — under Windows High Contrast Mode the OS strips our\n // bg/text tokens, so `ghost` / `outline` / `link` would lose their shape.\n // We repaint a `ButtonBorder` edge + swap the focus ring to `CanvasText`\n // so the control and its focused state both survive HCM.\n 'ds:inline-flex ds:items-center ds:justify-center ds:gap-[var(--spacing-xs)] ds:font-medium ds:transition-colors ds:rounded-[var(--radius-md)] ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)] ds:forced-colors:border ds:forced-colors:border-[ButtonBorder] ds:forced-colors:focus-visible:outline-[CanvasText] ds:disabled:opacity-50 ds:disabled:cursor-not-allowed ds:aria-disabled:opacity-50 ds:aria-disabled:cursor-not-allowed ds:aria-busy:cursor-wait ds:relative',\n {\n variants: {\n intent: {\n primary:\n 'ds:bg-primary ds:text-primary-foreground ds:hover:bg-primary-hover ds:active:opacity-90 ds:shadow-sm',\n secondary:\n 'ds:bg-secondary ds:text-secondary-foreground ds:hover:bg-secondary-hover ds:active:opacity-90',\n outline:\n 'ds:bg-transparent ds:text-foreground ds:border ds:border-border ds:hover:bg-muted/10 ds:active:bg-muted/20',\n ghost:\n 'ds:bg-transparent ds:text-foreground ds:hover:bg-muted/10 ds:active:bg-muted/20',\n destructive:\n 'ds:bg-destructive ds:text-destructive-foreground ds:hover:bg-destructive-hover ds:active:opacity-90 ds:shadow-sm',\n link: 'ds:bg-transparent ds:text-primary ds:underline-offset-4 ds:hover:underline ds:active:opacity-80 ds:p-0 ds:h-auto ds:rounded-none',\n // `tonal` is a container-contextual intent. The button carries a\n // `data-intent=\"tonal\"` hook + baseline chrome (hover/active/shadow).\n // The ambient container (e.g. `Alert`) paints the colour via a\n // descendant selector — `[&_[data-intent=tonal]]:bg-…` — so the\n // button picks up the surrounding tint (amber on `warning`, red on\n // `error`, etc.). Outside such a container the button falls back to\n // the primary palette so a loose `<Button intent=\"tonal\">` is never\n // invisible.\n tonal:\n 'ds:bg-primary ds:text-primary-foreground ds:hover:opacity-90 ds:active:opacity-80 ds:shadow-sm',\n },\n size: {\n sm: 'ds:h-8 ds:ps-3 ds:pe-3 ds:text-[length:var(--font-size-sm)] ds:min-h-[var(--min-target-size)] ds:sm:min-h-0 ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"] ds:sm:before:hidden',\n md: 'ds:h-10 ds:ps-4 ds:pe-4 ds:text-[length:var(--font-size-base)]',\n lg: 'ds:h-12 ds:ps-6 ds:pe-6 ds:text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: {\n intent: 'primary',\n size: 'md',\n },\n },\n);\n\nexport interface ButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n /**\n * Mirror directional icons (arrows, chevrons) horizontally when the\n * interface renders in RTL. Default `false` — most icons (trash, calendar,\n * plus) must NOT flip. Opt in per call-site for arrow / chevron glyphs.\n */\n flipIconInRtl?: boolean;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n intent,\n size,\n className,\n asChild = false,\n loading = false,\n startIcon,\n endIcon,\n flipIconInRtl = false,\n disabled,\n children,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n const isIconButton = !children && (startIcon || endIcon);\n\n const ariaLabel = props['aria-label'];\n useEffect(() => {\n if (import.meta.env.DEV && isIconButton && !ariaLabel) {\n console.warn(\n 'Button: Use IconButton for icon-only triggers to ensure accessibility and proper square sizing.',\n );\n }\n }, [isIconButton, ariaLabel]);\n\n const iconSize = size === 'sm' ? 16 : size === 'lg' ? 20 : 18;\n const iconSizeClass =\n size === 'sm' ? 'ds:size-4' : size === 'lg' ? 'ds:size-5' : 'ds:size-[18px]';\n const iconFlipClass = flipIconInRtl ? 'ds:rtl:rotate-180' : '';\n\n return (\n <Comp\n ref={ref}\n className={buttonVariants({ intent, size, className })}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n data-component=\"button\"\n data-intent={intent ?? undefined}\n {...props}\n >\n {loading && (\n <svg\n aria-hidden=\"true\"\n className=\"ds:animate-spin\"\n width={iconSize}\n height={iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeOpacity=\"0.25\" strokeWidth=\"3\" />\n <path\n d=\"M22 12a10 10 0 0 1-10 10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n {!loading && startIcon && (\n <span\n aria-hidden=\"true\"\n className={`ds:inline-flex ds:items-center ${iconSizeClass} ${iconFlipClass}`.trim()}\n >\n {startIcon}\n </span>\n )}\n {asChild ? (\n <Slottable>{children}</Slottable>\n ) : (\n <span className={loading ? 'ds:sr-only' : 'ds:inline-flex'}>{children}</span>\n )}\n {!loading && endIcon && (\n <span\n aria-hidden=\"true\"\n className={`ds:inline-flex ds:items-center ${iconSizeClass} ${iconFlipClass}`.trim()}\n >\n {endIcon}\n </span>\n )}\n </Comp>\n );\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["buttonVariants","cva","Button","forwardRef","intent","size","className","asChild","loading","startIcon","endIcon","flipIconInRtl","disabled","children","props","ref","Comp","Slot","isIconButton","ariaLabel","useEffect","iconSize","iconSizeClass","iconFlipClass","jsxs","jsx","Slottable"],"mappings":"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"}