@alfadocs/ui-kit 0.1.7 → 0.1.8

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 (608) hide show
  1. package/README.md +18 -0
  2. package/dist/agent-catalog.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/_chunks/accordion-B6fyINUk.js.map +0 -1
  5. package/dist/_chunks/accordion.agent-Cz-yglRa.js.map +0 -1
  6. package/dist/_chunks/agenda-card-DIWDvWum.js.map +0 -1
  7. package/dist/_chunks/agenda-tray-BqQZwiHc.js.map +0 -1
  8. package/dist/_chunks/ai-prompt-input-CI27KmZ1.js.map +0 -1
  9. package/dist/_chunks/alert-BlOUMkXj.js.map +0 -1
  10. package/dist/_chunks/apexcharts-theme-BkSShpEy.js.map +0 -1
  11. package/dist/_chunks/app-frame-6d7Lu4ea.js.map +0 -1
  12. package/dist/_chunks/aspect-ratio-CxsdG8vk.js.map +0 -1
  13. package/dist/_chunks/audio-recorder-B-8SKgKn.js.map +0 -1
  14. package/dist/_chunks/audio-visualiser-CeMPCZkd.js.map +0 -1
  15. package/dist/_chunks/autocomplete.agent-DqOy0_1P.js.map +0 -1
  16. package/dist/_chunks/avatar-Dcr6XuDQ.js.map +0 -1
  17. package/dist/_chunks/badge-mrstWxve.js.map +0 -1
  18. package/dist/_chunks/balance-cell-renderer-BWm3knY9.js.map +0 -1
  19. package/dist/_chunks/breadcrumb-D6xpsP7n.js.map +0 -1
  20. package/dist/_chunks/button-7mLWcMp_.js.map +0 -1
  21. package/dist/_chunks/button-group-CONver7M.js.map +0 -1
  22. package/dist/_chunks/button.agent-BuGZBktn.js.map +0 -1
  23. package/dist/_chunks/calendar-nGEgelJs.js.map +0 -1
  24. package/dist/_chunks/card-BEy58ZKp.js.map +0 -1
  25. package/dist/_chunks/chart.agent-BdS-_8MO.js.map +0 -1
  26. package/dist/_chunks/chat-container-Cm3SlR2p.js.map +0 -1
  27. package/dist/_chunks/chat-container.agent-Dhw9xCJt.js.map +0 -1
  28. package/dist/_chunks/chat-input-DreOPP8A.js.map +0 -1
  29. package/dist/_chunks/chat-message-ByouZpPP.js.map +0 -1
  30. package/dist/_chunks/check-DPdL_Sm7.js.map +0 -1
  31. package/dist/_chunks/checkbox-DNK4qS2_.js.map +0 -1
  32. package/dist/_chunks/checkbox-group-CWpGZEF6.js.map +0 -1
  33. package/dist/_chunks/chevron-down-BX_NP2Yh.js.map +0 -1
  34. package/dist/_chunks/chevron-left-CX1jqD2M.js.map +0 -1
  35. package/dist/_chunks/chevron-right-BrpYejk0.js.map +0 -1
  36. package/dist/_chunks/chevron-up-zOEDrmBB.js.map +0 -1
  37. package/dist/_chunks/chevrons-right-d9MwesPG.js.map +0 -1
  38. package/dist/_chunks/circle-BkqTgYmt.js.map +0 -1
  39. package/dist/_chunks/circle-alert-ChA9opNA.js.map +0 -1
  40. package/dist/_chunks/circle-check-9AeSgJD_.js.map +0 -1
  41. package/dist/_chunks/circle-x-Du2CmjaU.js.map +0 -1
  42. package/dist/_chunks/clock-21AGPWJ5.js.map +0 -1
  43. package/dist/_chunks/collapsible-D4LOdLxp.js.map +0 -1
  44. package/dist/_chunks/color-picker-e9PmpaGH.js.map +0 -1
  45. package/dist/_chunks/combobox.agent-ByobCLJ_.js.map +0 -1
  46. package/dist/_chunks/command-palette.agent-js2rxgeR.js.map +0 -1
  47. package/dist/_chunks/compose-refs-C0k0tdqF.js.map +0 -1
  48. package/dist/_chunks/copy-B00HK7tj.js.map +0 -1
  49. package/dist/_chunks/createLucideIcon-CrFbzy84.js.map +0 -1
  50. package/dist/_chunks/date-picker-DYXNsWmM.js.map +0 -1
  51. package/dist/_chunks/date-range-picker-BcNDJI7m.js.map +0 -1
  52. package/dist/_chunks/date-time-picker-CmGiTU__.js.map +0 -1
  53. package/dist/_chunks/description-list-DvJbp6Yg.js.map +0 -1
  54. package/dist/_chunks/dialog.agent-DEG_fVzG.js.map +0 -1
  55. package/dist/_chunks/dropdown-menu-Cw3EyPZv.js.map +0 -1
  56. package/dist/_chunks/dropdown-menu.agent-Cry4Nmes.js.map +0 -1
  57. package/dist/_chunks/ellipsis-rgGdiK_9.js.map +0 -1
  58. package/dist/_chunks/empty-state-DQPtRp2b.js.map +0 -1
  59. package/dist/_chunks/eye-off-xEXDAh5z.js.map +0 -1
  60. package/dist/_chunks/file-text-DSNuv2B8.js.map +0 -1
  61. package/dist/_chunks/file-upload.agent-B9AN82LA.js.map +0 -1
  62. package/dist/_chunks/flag-DZ6V7-hU.js.map +0 -1
  63. package/dist/_chunks/floating-action-button-Cnw-f6AG.js.map +0 -1
  64. package/dist/_chunks/form-field-BfsPLTSc.js.map +0 -1
  65. package/dist/_chunks/form-field-context-94LwgYTQ.js.map +0 -1
  66. package/dist/_chunks/freemium-paywall-CkefGLM_.js.map +0 -1
  67. package/dist/_chunks/globe-BkEFMNSg.js.map +0 -1
  68. package/dist/_chunks/group-options-BvKhQ3xb.js.map +0 -1
  69. package/dist/_chunks/header-BGn1mRp8.js.map +0 -1
  70. package/dist/_chunks/icon-button-Wnnde5lc.js.map +0 -1
  71. package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +0 -1
  72. package/dist/_chunks/index-4xgbg-sn.js.map +0 -1
  73. package/dist/_chunks/index-CJE9uQmb.js.map +0 -1
  74. package/dist/_chunks/index-CeY1nNvd.js.map +0 -1
  75. package/dist/_chunks/index-D2ZczOXr.js.map +0 -1
  76. package/dist/_chunks/info-B9XNKn05.js.map +0 -1
  77. package/dist/_chunks/input-surface-u4QB0lxe.js.map +0 -1
  78. package/dist/_chunks/isSameDay-ecuM8PBB.js.map +0 -1
  79. package/dist/_chunks/isSameMonth-5wNF2f4I.js.map +0 -1
  80. package/dist/_chunks/kbd-8baVw3KU.js.map +0 -1
  81. package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +0 -1
  82. package/dist/_chunks/leo-sidebar-nbHib2D-.js.map +0 -1
  83. package/dist/_chunks/list-B1ozIjQe.js.map +0 -1
  84. package/dist/_chunks/live-region-C41SO3cA.js.map +0 -1
  85. package/dist/_chunks/log-out-616hnn2-.js.map +0 -1
  86. package/dist/_chunks/logo-BpFoCL-s.js.map +0 -1
  87. package/dist/_chunks/mail-C8irm52s.js.map +0 -1
  88. package/dist/_chunks/matrix-rain-BEkvux64.js.map +0 -1
  89. package/dist/_chunks/message-card-qAp2-WQK.js.map +0 -1
  90. package/dist/_chunks/message-tray-VaLpQU5t.js.map +0 -1
  91. package/dist/_chunks/multi-select.agent-CNsyW3n9.js.map +0 -1
  92. package/dist/_chunks/navigation-menu-EVFau1O2.js.map +0 -1
  93. package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +0 -1
  94. package/dist/_chunks/notification-card-BF2_veHy.js.map +0 -1
  95. package/dist/_chunks/notification-tray-B7U5YZYg.js.map +0 -1
  96. package/dist/_chunks/number-input-DjpT_RXJ.js.map +0 -1
  97. package/dist/_chunks/otp-input-De5_Ih7B.js.map +0 -1
  98. package/dist/_chunks/pagination.agent-oEaqmtx5.js.map +0 -1
  99. package/dist/_chunks/password-input-DJDVznWH.js.map +0 -1
  100. package/dist/_chunks/patient-shell-7cXqIMFg.js.map +0 -1
  101. package/dist/_chunks/payment-form-hcl-gGrp.js.map +0 -1
  102. package/dist/_chunks/payment-form.agent-BkEnRerR.js.map +0 -1
  103. package/dist/_chunks/pdf-viewer.agent-CfIHhcHx.js.map +0 -1
  104. package/dist/_chunks/phone-input-DE_39q65.js.map +0 -1
  105. package/dist/_chunks/plus-CYKNmfuA.js.map +0 -1
  106. package/dist/_chunks/popover-C3CTUsqh.js.map +0 -1
  107. package/dist/_chunks/popover.agent-C0qOx9WT.js.map +0 -1
  108. package/dist/_chunks/printer-CeVEWfQq.js.map +0 -1
  109. package/dist/_chunks/privacy-lock-CQpgkLec.js.map +0 -1
  110. package/dist/_chunks/progress-B4Of_pzz.js.map +0 -1
  111. package/dist/_chunks/progress.agent-CXkHURjX.js.map +0 -1
  112. package/dist/_chunks/purify.es-DpIUMBYC.js.map +0 -1
  113. package/dist/_chunks/radio-cs8N1wJi.js.map +0 -1
  114. package/dist/_chunks/radio-group-BIUbpWml.js.map +0 -1
  115. package/dist/_chunks/react-day-picker-C04L_28V.js.map +0 -1
  116. package/dist/_chunks/registry-C9nwlNyL.js.map +0 -1
  117. package/dist/_chunks/resizable.agent-DBpPGNdy.js.map +0 -1
  118. package/dist/_chunks/rich-text-editor.agent-COSb5_2D.js.map +0 -1
  119. package/dist/_chunks/safe-image-src-DstKgCo7.js.map +0 -1
  120. package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +0 -1
  121. package/dist/_chunks/search-BonnQsHv.js.map +0 -1
  122. package/dist/_chunks/search-bar-fcGqDFW3.js.map +0 -1
  123. package/dist/_chunks/search-input-BVMCONyN.js.map +0 -1
  124. package/dist/_chunks/select-IY_JQa-F.js.map +0 -1
  125. package/dist/_chunks/send-CySZIRPJ.js.map +0 -1
  126. package/dist/_chunks/separator-B4wXDLNC.js.map +0 -1
  127. package/dist/_chunks/sheet-BhNpLHc9.js.map +0 -1
  128. package/dist/_chunks/sheet.agent-DwQlBqK9.js.map +0 -1
  129. package/dist/_chunks/sidebar-OVzwN3jE.js.map +0 -1
  130. package/dist/_chunks/sidebar.agent-B0fnH9CC.js.map +0 -1
  131. package/dist/_chunks/sign-in-with-alfadocs-button-BN_FPGHT.js.map +0 -1
  132. package/dist/_chunks/signature-capture.agent-C38VPXxg.js.map +0 -1
  133. package/dist/_chunks/skeleton-dtqyF09N.js.map +0 -1
  134. package/dist/_chunks/skip-link-DmZ3c6cb.js.map +0 -1
  135. package/dist/_chunks/slider-DjyRt3Mp.js.map +0 -1
  136. package/dist/_chunks/slot-grid-D_l5VsHG.js.map +0 -1
  137. package/dist/_chunks/sparkline.agent-C_xp3NRB.js.map +0 -1
  138. package/dist/_chunks/spinner-GCcv67vh.js.map +0 -1
  139. package/dist/_chunks/square-CZoGU14v.js.map +0 -1
  140. package/dist/_chunks/square-check-big-Jr-0202D.js.map +0 -1
  141. package/dist/_chunks/stat-DUB6g90R.js.map +0 -1
  142. package/dist/_chunks/stepper-C-sIpRRU.js.map +0 -1
  143. package/dist/_chunks/stepper-accordion-CGog0JSF.js.map +0 -1
  144. package/dist/_chunks/stepper-calendar-_fLOAjus.js.map +0 -1
  145. package/dist/_chunks/stepper-progress-rE7tn7WY.js.map +0 -1
  146. package/dist/_chunks/streaming-text-BgjCTVOw.js.map +0 -1
  147. package/dist/_chunks/suggestion-chip-BNJ2M8Os.js.map +0 -1
  148. package/dist/_chunks/switch-aN2EYxHh.js.map +0 -1
  149. package/dist/_chunks/tabs.agent-BpbVA-Zh.js.map +0 -1
  150. package/dist/_chunks/tag-BqidXKo3.js.map +0 -1
  151. package/dist/_chunks/task-card-yW7tKlG4.js.map +0 -1
  152. package/dist/_chunks/task-tray-BzahI5FQ.js.map +0 -1
  153. package/dist/_chunks/text-area-DmKSd2DG.js.map +0 -1
  154. package/dist/_chunks/text-input-CRHvl5zk.js.map +0 -1
  155. package/dist/_chunks/theme-root-DDb0TJjd.js.map +0 -1
  156. package/dist/_chunks/theme-toggle-BHiMMEQN.js.map +0 -1
  157. package/dist/_chunks/time-picker-D-EueWUG.js.map +0 -1
  158. package/dist/_chunks/timeline-RgAIzpMd.js.map +0 -1
  159. package/dist/_chunks/timestamp-BV2lC-wV.js.map +0 -1
  160. package/dist/_chunks/toast-lOhJDKOH.js.map +0 -1
  161. package/dist/_chunks/tooltip-DHik5yRI.js.map +0 -1
  162. package/dist/_chunks/tooth-scheme.agent-BlDyu-Gx.js.map +0 -1
  163. package/dist/_chunks/transcript-panel-CNbVGG9L.js.map +0 -1
  164. package/dist/_chunks/triangle-alert-CBPUIzQo.js.map +0 -1
  165. package/dist/_chunks/typing-indicator-CbUBf-Dx.js.map +0 -1
  166. package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +0 -1
  167. package/dist/_chunks/use-direction-D6rvvG9G.js.map +0 -1
  168. package/dist/_chunks/use-locale-BuXR_Zl9.js.map +0 -1
  169. package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +0 -1
  170. package/dist/_chunks/use-theme-BMUhembX.js.map +0 -1
  171. package/dist/_chunks/user-CPxpqFjJ.js.map +0 -1
  172. package/dist/_chunks/visually-hidden-Bw7vBHLm.js.map +0 -1
  173. package/dist/_chunks/warning-stack-8Pa3pekh.js.map +0 -1
  174. package/dist/_chunks/workflow-map-XeqHDFvp.js.map +0 -1
  175. package/dist/_chunks/x-CCcI3eJp.js.map +0 -1
  176. package/dist/agent/index.d.ts.map +0 -1
  177. package/dist/agent/registry.d.ts.map +0 -1
  178. package/dist/agent/types.d.ts.map +0 -1
  179. package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +0 -1
  180. package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +0 -1
  181. package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +0 -1
  182. package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +0 -1
  183. package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +0 -1
  184. package/dist/brand/logo-asset/index.d.ts.map +0 -1
  185. package/dist/components/_shared/calendar-chevron.d.ts.map +0 -1
  186. package/dist/components/_shared/compose-refs.d.ts.map +0 -1
  187. package/dist/components/_shared/date-locale.d.ts.map +0 -1
  188. package/dist/components/_shared/date-picker-variants.d.ts.map +0 -1
  189. package/dist/components/_shared/date-utils.d.ts.map +0 -1
  190. package/dist/components/_shared/group-options.d.ts.map +0 -1
  191. package/dist/components/_shared/index.d.ts.map +0 -1
  192. package/dist/components/_shared/input-surface.d.ts.map +0 -1
  193. package/dist/components/_shared/normalize-diacritics.d.ts.map +0 -1
  194. package/dist/components/_shared/option.d.ts.map +0 -1
  195. package/dist/components/_shared/safe-html.d.ts.map +0 -1
  196. package/dist/components/_shared/safe-image-src.d.ts.map +0 -1
  197. package/dist/components/_shared/stepper.d.ts.map +0 -1
  198. package/dist/components/_shared/time.d.ts.map +0 -1
  199. package/dist/components/_shared/use-debounced-callback.d.ts.map +0 -1
  200. package/dist/components/_shared/use-direction.d.ts.map +0 -1
  201. package/dist/components/_shared/use-focus-trap.d.ts.map +0 -1
  202. package/dist/components/_shared/use-neutralize-hidden-focus.d.ts.map +0 -1
  203. package/dist/components/accordion/accordion.agent.d.ts.map +0 -1
  204. package/dist/components/accordion/accordion.d.ts.map +0 -1
  205. package/dist/components/accordion/index.d.ts.map +0 -1
  206. package/dist/components/accordion/index.js.map +0 -1
  207. package/dist/components/agenda-card/agenda-card.d.ts.map +0 -1
  208. package/dist/components/agenda-card/index.d.ts.map +0 -1
  209. package/dist/components/agenda-card/index.js.map +0 -1
  210. package/dist/components/agenda-tray/agenda-tray.d.ts.map +0 -1
  211. package/dist/components/agenda-tray/index.d.ts.map +0 -1
  212. package/dist/components/agenda-tray/index.js.map +0 -1
  213. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +0 -1
  214. package/dist/components/ai-prompt-input/index.d.ts.map +0 -1
  215. package/dist/components/ai-prompt-input/index.js.map +0 -1
  216. package/dist/components/alert/alert.d.ts.map +0 -1
  217. package/dist/components/alert/index.d.ts.map +0 -1
  218. package/dist/components/alert/index.js.map +0 -1
  219. package/dist/components/app-frame/app-frame.d.ts.map +0 -1
  220. package/dist/components/app-frame/index.d.ts.map +0 -1
  221. package/dist/components/app-frame/index.js.map +0 -1
  222. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +0 -1
  223. package/dist/components/aspect-ratio/index.d.ts.map +0 -1
  224. package/dist/components/aspect-ratio/index.js.map +0 -1
  225. package/dist/components/audio-recorder/audio-recorder.d.ts.map +0 -1
  226. package/dist/components/audio-recorder/index.d.ts.map +0 -1
  227. package/dist/components/audio-recorder/index.js.map +0 -1
  228. package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +0 -1
  229. package/dist/components/audio-visualiser/index.d.ts.map +0 -1
  230. package/dist/components/audio-visualiser/index.js.map +0 -1
  231. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +0 -1
  232. package/dist/components/autocomplete/autocomplete.d.ts.map +0 -1
  233. package/dist/components/autocomplete/index.d.ts.map +0 -1
  234. package/dist/components/autocomplete/index.js.map +0 -1
  235. package/dist/components/avatar/avatar.d.ts.map +0 -1
  236. package/dist/components/avatar/index.d.ts.map +0 -1
  237. package/dist/components/avatar/index.js.map +0 -1
  238. package/dist/components/badge/badge.d.ts.map +0 -1
  239. package/dist/components/badge/index.d.ts.map +0 -1
  240. package/dist/components/badge/index.js.map +0 -1
  241. package/dist/components/breadcrumb/breadcrumb.d.ts.map +0 -1
  242. package/dist/components/breadcrumb/index.d.ts.map +0 -1
  243. package/dist/components/breadcrumb/index.js.map +0 -1
  244. package/dist/components/button/button.agent.d.ts.map +0 -1
  245. package/dist/components/button/button.d.ts.map +0 -1
  246. package/dist/components/button/icon-button.d.ts.map +0 -1
  247. package/dist/components/button/index.d.ts.map +0 -1
  248. package/dist/components/button/index.js.map +0 -1
  249. package/dist/components/button-group/button-group.d.ts.map +0 -1
  250. package/dist/components/button-group/index.d.ts.map +0 -1
  251. package/dist/components/button-group/index.js.map +0 -1
  252. package/dist/components/calendar/calendar.agent.d.ts.map +0 -1
  253. package/dist/components/calendar/calendar.d.ts.map +0 -1
  254. package/dist/components/calendar/contrast-warning.d.ts.map +0 -1
  255. package/dist/components/calendar/index.d.ts.map +0 -1
  256. package/dist/components/calendar/index.js.map +0 -1
  257. package/dist/components/card/card.d.ts.map +0 -1
  258. package/dist/components/card/index.d.ts.map +0 -1
  259. package/dist/components/card/index.js.map +0 -1
  260. package/dist/components/chart/chart.agent.d.ts.map +0 -1
  261. package/dist/components/chart/chart.d.ts.map +0 -1
  262. package/dist/components/chart/index.d.ts.map +0 -1
  263. package/dist/components/chart/index.js.map +0 -1
  264. package/dist/components/chat-container/chat-container.agent.d.ts.map +0 -1
  265. package/dist/components/chat-container/chat-container.d.ts.map +0 -1
  266. package/dist/components/chat-container/index.d.ts.map +0 -1
  267. package/dist/components/chat-container/index.js.map +0 -1
  268. package/dist/components/chat-input/chat-input.d.ts.map +0 -1
  269. package/dist/components/chat-input/index.d.ts.map +0 -1
  270. package/dist/components/chat-input/index.js.map +0 -1
  271. package/dist/components/chat-message/chat-message.d.ts.map +0 -1
  272. package/dist/components/chat-message/index.d.ts.map +0 -1
  273. package/dist/components/chat-message/index.js.map +0 -1
  274. package/dist/components/checkbox/checkbox-group-context.d.ts.map +0 -1
  275. package/dist/components/checkbox/checkbox.d.ts.map +0 -1
  276. package/dist/components/checkbox/index.d.ts.map +0 -1
  277. package/dist/components/checkbox/index.js.map +0 -1
  278. package/dist/components/checkbox-group/checkbox-group.d.ts.map +0 -1
  279. package/dist/components/checkbox-group/index.d.ts.map +0 -1
  280. package/dist/components/checkbox-group/index.js.map +0 -1
  281. package/dist/components/collapsible/collapsible.d.ts.map +0 -1
  282. package/dist/components/collapsible/index.d.ts.map +0 -1
  283. package/dist/components/collapsible/index.js.map +0 -1
  284. package/dist/components/color-picker/color-picker.d.ts.map +0 -1
  285. package/dist/components/color-picker/color-utils.d.ts.map +0 -1
  286. package/dist/components/color-picker/index.d.ts.map +0 -1
  287. package/dist/components/color-picker/index.js.map +0 -1
  288. package/dist/components/color-picker/palettes.d.ts.map +0 -1
  289. package/dist/components/combobox/combobox.agent.d.ts.map +0 -1
  290. package/dist/components/combobox/combobox.d.ts.map +0 -1
  291. package/dist/components/combobox/index.d.ts.map +0 -1
  292. package/dist/components/combobox/index.js.map +0 -1
  293. package/dist/components/command-palette/command-palette.agent.d.ts.map +0 -1
  294. package/dist/components/command-palette/command-palette.d.ts.map +0 -1
  295. package/dist/components/command-palette/index.d.ts.map +0 -1
  296. package/dist/components/command-palette/index.js.map +0 -1
  297. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +0 -1
  298. package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +0 -1
  299. package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +0 -1
  300. package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +0 -1
  301. package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +0 -1
  302. package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +0 -1
  303. package/dist/components/data-table/cell-renderers/status-cell-renderer.d.ts.map +0 -1
  304. package/dist/components/data-table/cell-renderers/tag-list-cell-renderer.d.ts.map +0 -1
  305. package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +0 -1
  306. package/dist/components/data-table/cell-renderers/user-cell-renderer.d.ts.map +0 -1
  307. package/dist/components/data-table/data-table.agent.d.ts.map +0 -1
  308. package/dist/components/data-table/data-table.d.ts.map +0 -1
  309. package/dist/components/data-table/hooks/use-total-row.d.ts.map +0 -1
  310. package/dist/components/data-table/index.d.ts.map +0 -1
  311. package/dist/components/data-table/index.js.map +0 -1
  312. package/dist/components/data-table/toolbar.d.ts.map +0 -1
  313. package/dist/components/date-picker/date-picker.d.ts.map +0 -1
  314. package/dist/components/date-picker/index.d.ts.map +0 -1
  315. package/dist/components/date-picker/index.js.map +0 -1
  316. package/dist/components/date-range-picker/date-range-picker.d.ts.map +0 -1
  317. package/dist/components/date-range-picker/index.d.ts.map +0 -1
  318. package/dist/components/date-range-picker/index.js.map +0 -1
  319. package/dist/components/date-time-picker/date-time-picker.d.ts.map +0 -1
  320. package/dist/components/date-time-picker/index.d.ts.map +0 -1
  321. package/dist/components/date-time-picker/index.js.map +0 -1
  322. package/dist/components/description-list/description-list.d.ts.map +0 -1
  323. package/dist/components/description-list/index.d.ts.map +0 -1
  324. package/dist/components/description-list/index.js.map +0 -1
  325. package/dist/components/dialog/dialog.agent.d.ts.map +0 -1
  326. package/dist/components/dialog/dialog.d.ts.map +0 -1
  327. package/dist/components/dialog/index.d.ts.map +0 -1
  328. package/dist/components/dialog/index.js.map +0 -1
  329. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +0 -1
  330. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  331. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  332. package/dist/components/dropdown-menu/index.js.map +0 -1
  333. package/dist/components/empty-state/empty-state.d.ts.map +0 -1
  334. package/dist/components/empty-state/index.d.ts.map +0 -1
  335. package/dist/components/empty-state/index.js.map +0 -1
  336. package/dist/components/file-upload/file-upload.agent.d.ts.map +0 -1
  337. package/dist/components/file-upload/file-upload.d.ts.map +0 -1
  338. package/dist/components/file-upload/index.d.ts.map +0 -1
  339. package/dist/components/file-upload/index.js.map +0 -1
  340. package/dist/components/flag/flag.d.ts.map +0 -1
  341. package/dist/components/flag/index.d.ts.map +0 -1
  342. package/dist/components/flag/index.js.map +0 -1
  343. package/dist/components/floating-action-button/floating-action-button.d.ts.map +0 -1
  344. package/dist/components/floating-action-button/index.d.ts.map +0 -1
  345. package/dist/components/floating-action-button/index.js.map +0 -1
  346. package/dist/components/form-field/form-field-context.d.ts.map +0 -1
  347. package/dist/components/form-field/form-field.d.ts.map +0 -1
  348. package/dist/components/form-field/index.d.ts.map +0 -1
  349. package/dist/components/form-field/index.js.map +0 -1
  350. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +0 -1
  351. package/dist/components/freemium-paywall/index.d.ts.map +0 -1
  352. package/dist/components/freemium-paywall/index.js.map +0 -1
  353. package/dist/components/header/header.d.ts.map +0 -1
  354. package/dist/components/header/index.d.ts.map +0 -1
  355. package/dist/components/header/index.js.map +0 -1
  356. package/dist/components/icon-button/index.d.ts.map +0 -1
  357. package/dist/components/icon-button/index.js.map +0 -1
  358. package/dist/components/icon-button-group/icon-button-group.d.ts.map +0 -1
  359. package/dist/components/icon-button-group/index.d.ts.map +0 -1
  360. package/dist/components/icon-button-group/index.js.map +0 -1
  361. package/dist/components/index.d.ts.map +0 -1
  362. package/dist/components/kbd/index.d.ts.map +0 -1
  363. package/dist/components/kbd/index.js.map +0 -1
  364. package/dist/components/kbd/kbd.d.ts.map +0 -1
  365. package/dist/components/key-value-pair/index.d.ts.map +0 -1
  366. package/dist/components/key-value-pair/index.js.map +0 -1
  367. package/dist/components/key-value-pair/key-value-pair.d.ts.map +0 -1
  368. package/dist/components/list/index.d.ts.map +0 -1
  369. package/dist/components/list/index.js.map +0 -1
  370. package/dist/components/list/list.d.ts.map +0 -1
  371. package/dist/components/live-region/index.d.ts.map +0 -1
  372. package/dist/components/live-region/index.js.map +0 -1
  373. package/dist/components/live-region/live-region.d.ts.map +0 -1
  374. package/dist/components/logo/index.d.ts.map +0 -1
  375. package/dist/components/logo/index.js.map +0 -1
  376. package/dist/components/logo/logo.d.ts.map +0 -1
  377. package/dist/components/matrix-rain/index.d.ts.map +0 -1
  378. package/dist/components/matrix-rain/index.js.map +0 -1
  379. package/dist/components/matrix-rain/matrix-rain.d.ts.map +0 -1
  380. package/dist/components/message-card/index.d.ts.map +0 -1
  381. package/dist/components/message-card/index.js.map +0 -1
  382. package/dist/components/message-card/message-card.d.ts.map +0 -1
  383. package/dist/components/message-tray/index.d.ts.map +0 -1
  384. package/dist/components/message-tray/index.js.map +0 -1
  385. package/dist/components/message-tray/message-tray.d.ts.map +0 -1
  386. package/dist/components/multi-select/index.d.ts.map +0 -1
  387. package/dist/components/multi-select/index.js.map +0 -1
  388. package/dist/components/multi-select/multi-select.agent.d.ts.map +0 -1
  389. package/dist/components/multi-select/multi-select.d.ts.map +0 -1
  390. package/dist/components/navigation-menu/index.d.ts.map +0 -1
  391. package/dist/components/navigation-menu/index.js.map +0 -1
  392. package/dist/components/navigation-menu/navigation-menu.d.ts.map +0 -1
  393. package/dist/components/notification-card/index.d.ts.map +0 -1
  394. package/dist/components/notification-card/index.js.map +0 -1
  395. package/dist/components/notification-card/notification-card.d.ts.map +0 -1
  396. package/dist/components/notification-tray/index.d.ts.map +0 -1
  397. package/dist/components/notification-tray/index.js.map +0 -1
  398. package/dist/components/notification-tray/notification-tray.d.ts.map +0 -1
  399. package/dist/components/number-input/index.d.ts.map +0 -1
  400. package/dist/components/number-input/index.js.map +0 -1
  401. package/dist/components/number-input/number-input.d.ts.map +0 -1
  402. package/dist/components/number-input/use-locale-number.d.ts.map +0 -1
  403. package/dist/components/otp-input/index.d.ts.map +0 -1
  404. package/dist/components/otp-input/index.js.map +0 -1
  405. package/dist/components/otp-input/otp-input.d.ts.map +0 -1
  406. package/dist/components/pagination/index.d.ts.map +0 -1
  407. package/dist/components/pagination/index.js.map +0 -1
  408. package/dist/components/pagination/pagination.agent.d.ts.map +0 -1
  409. package/dist/components/pagination/pagination.d.ts.map +0 -1
  410. package/dist/components/password-input/index.d.ts.map +0 -1
  411. package/dist/components/password-input/index.js.map +0 -1
  412. package/dist/components/password-input/password-input.d.ts.map +0 -1
  413. package/dist/components/payment-form/index.d.ts.map +0 -1
  414. package/dist/components/payment-form/index.js.map +0 -1
  415. package/dist/components/payment-form/payment-form.agent.d.ts.map +0 -1
  416. package/dist/components/payment-form/payment-form.d.ts.map +0 -1
  417. package/dist/components/pdf-viewer/index.d.ts.map +0 -1
  418. package/dist/components/pdf-viewer/index.js.map +0 -1
  419. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +0 -1
  420. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +0 -1
  421. package/dist/components/phone-input/index.d.ts.map +0 -1
  422. package/dist/components/phone-input/index.js.map +0 -1
  423. package/dist/components/phone-input/phone-input.d.ts.map +0 -1
  424. package/dist/components/popover/index.d.ts.map +0 -1
  425. package/dist/components/popover/index.js.map +0 -1
  426. package/dist/components/popover/popover.agent.d.ts.map +0 -1
  427. package/dist/components/popover/popover.d.ts.map +0 -1
  428. package/dist/components/privacy-lock/index.d.ts.map +0 -1
  429. package/dist/components/privacy-lock/index.js.map +0 -1
  430. package/dist/components/privacy-lock/privacy-lock.d.ts.map +0 -1
  431. package/dist/components/progress/index.d.ts.map +0 -1
  432. package/dist/components/progress/index.js.map +0 -1
  433. package/dist/components/progress/progress.agent.d.ts.map +0 -1
  434. package/dist/components/progress/progress.d.ts.map +0 -1
  435. package/dist/components/radio/index.d.ts.map +0 -1
  436. package/dist/components/radio/index.js.map +0 -1
  437. package/dist/components/radio-group/index.d.ts.map +0 -1
  438. package/dist/components/radio-group/index.js.map +0 -1
  439. package/dist/components/radio-group/radio-group-context.d.ts.map +0 -1
  440. package/dist/components/radio-group/radio-group.d.ts.map +0 -1
  441. package/dist/components/radio-group/radio.d.ts.map +0 -1
  442. package/dist/components/resizable/index.d.ts.map +0 -1
  443. package/dist/components/resizable/index.js.map +0 -1
  444. package/dist/components/resizable/resizable-context.d.ts.map +0 -1
  445. package/dist/components/resizable/resizable.agent.d.ts.map +0 -1
  446. package/dist/components/resizable/resizable.d.ts.map +0 -1
  447. package/dist/components/rich-text-editor/index.d.ts.map +0 -1
  448. package/dist/components/rich-text-editor/index.js.map +0 -1
  449. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +0 -1
  450. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +0 -1
  451. package/dist/components/scroll-area/index.d.ts.map +0 -1
  452. package/dist/components/scroll-area/index.js.map +0 -1
  453. package/dist/components/scroll-area/scroll-area.d.ts.map +0 -1
  454. package/dist/components/search-bar/index.d.ts.map +0 -1
  455. package/dist/components/search-bar/index.js.map +0 -1
  456. package/dist/components/search-bar/search-bar.d.ts.map +0 -1
  457. package/dist/components/search-input/index.d.ts.map +0 -1
  458. package/dist/components/search-input/index.js.map +0 -1
  459. package/dist/components/search-input/search-input.d.ts.map +0 -1
  460. package/dist/components/select/index.d.ts.map +0 -1
  461. package/dist/components/select/index.js.map +0 -1
  462. package/dist/components/select/select.d.ts.map +0 -1
  463. package/dist/components/separator/index.d.ts.map +0 -1
  464. package/dist/components/separator/index.js.map +0 -1
  465. package/dist/components/separator/separator.d.ts.map +0 -1
  466. package/dist/components/sheet/index.d.ts.map +0 -1
  467. package/dist/components/sheet/index.js.map +0 -1
  468. package/dist/components/sheet/sheet.agent.d.ts.map +0 -1
  469. package/dist/components/sheet/sheet.d.ts.map +0 -1
  470. package/dist/components/sidebar/index.d.ts.map +0 -1
  471. package/dist/components/sidebar/index.js.map +0 -1
  472. package/dist/components/sidebar/sidebar.agent.d.ts.map +0 -1
  473. package/dist/components/sidebar/sidebar.d.ts.map +0 -1
  474. package/dist/components/sign-in-with-alfadocs-button/index.d.ts.map +0 -1
  475. package/dist/components/sign-in-with-alfadocs-button/index.js.map +0 -1
  476. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +0 -1
  477. package/dist/components/signature-capture/index.d.ts.map +0 -1
  478. package/dist/components/signature-capture/index.js.map +0 -1
  479. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +0 -1
  480. package/dist/components/signature-capture/signature-capture.d.ts.map +0 -1
  481. package/dist/components/skeleton/index.d.ts.map +0 -1
  482. package/dist/components/skeleton/index.js.map +0 -1
  483. package/dist/components/skeleton/skeleton.d.ts.map +0 -1
  484. package/dist/components/skip-link/index.d.ts.map +0 -1
  485. package/dist/components/skip-link/index.js.map +0 -1
  486. package/dist/components/skip-link/skip-link.d.ts.map +0 -1
  487. package/dist/components/slider/index.d.ts.map +0 -1
  488. package/dist/components/slider/index.js.map +0 -1
  489. package/dist/components/slider/slider.d.ts.map +0 -1
  490. package/dist/components/slot-grid/index.d.ts.map +0 -1
  491. package/dist/components/slot-grid/index.js.map +0 -1
  492. package/dist/components/slot-grid/slot-grid.d.ts.map +0 -1
  493. package/dist/components/sparkline/index.d.ts.map +0 -1
  494. package/dist/components/sparkline/index.js.map +0 -1
  495. package/dist/components/sparkline/sparkline.agent.d.ts.map +0 -1
  496. package/dist/components/sparkline/sparkline.d.ts.map +0 -1
  497. package/dist/components/sparkline/use-linear-trend.d.ts.map +0 -1
  498. package/dist/components/spinner/index.d.ts.map +0 -1
  499. package/dist/components/spinner/index.js.map +0 -1
  500. package/dist/components/spinner/spinner.d.ts.map +0 -1
  501. package/dist/components/stat/index.d.ts.map +0 -1
  502. package/dist/components/stat/index.js.map +0 -1
  503. package/dist/components/stat/stat.d.ts.map +0 -1
  504. package/dist/components/stepper-accordion/index.d.ts.map +0 -1
  505. package/dist/components/stepper-accordion/index.js.map +0 -1
  506. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +0 -1
  507. package/dist/components/stepper-calendar/index.d.ts.map +0 -1
  508. package/dist/components/stepper-calendar/index.js.map +0 -1
  509. package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +0 -1
  510. package/dist/components/stepper-progress/index.d.ts.map +0 -1
  511. package/dist/components/stepper-progress/index.js.map +0 -1
  512. package/dist/components/stepper-progress/stepper-progress.d.ts.map +0 -1
  513. package/dist/components/streaming-text/index.d.ts.map +0 -1
  514. package/dist/components/streaming-text/index.js.map +0 -1
  515. package/dist/components/streaming-text/streaming-text.d.ts.map +0 -1
  516. package/dist/components/suggestion-chip/index.d.ts.map +0 -1
  517. package/dist/components/suggestion-chip/index.js.map +0 -1
  518. package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +0 -1
  519. package/dist/components/switch/index.d.ts.map +0 -1
  520. package/dist/components/switch/index.js.map +0 -1
  521. package/dist/components/switch/switch.d.ts.map +0 -1
  522. package/dist/components/tabs/index.d.ts.map +0 -1
  523. package/dist/components/tabs/index.js.map +0 -1
  524. package/dist/components/tabs/tabs.agent.d.ts.map +0 -1
  525. package/dist/components/tabs/tabs.d.ts.map +0 -1
  526. package/dist/components/tag/index.d.ts.map +0 -1
  527. package/dist/components/tag/index.js.map +0 -1
  528. package/dist/components/tag/tag.d.ts.map +0 -1
  529. package/dist/components/task-card/index.d.ts.map +0 -1
  530. package/dist/components/task-card/index.js.map +0 -1
  531. package/dist/components/task-card/task-card.d.ts.map +0 -1
  532. package/dist/components/task-tray/index.d.ts.map +0 -1
  533. package/dist/components/task-tray/index.js.map +0 -1
  534. package/dist/components/task-tray/task-tray.d.ts.map +0 -1
  535. package/dist/components/text-area/index.d.ts.map +0 -1
  536. package/dist/components/text-area/index.js.map +0 -1
  537. package/dist/components/text-area/text-area.d.ts.map +0 -1
  538. package/dist/components/text-input/index.d.ts.map +0 -1
  539. package/dist/components/text-input/index.js.map +0 -1
  540. package/dist/components/text-input/text-input.d.ts.map +0 -1
  541. package/dist/components/theme-root/index.d.ts.map +0 -1
  542. package/dist/components/theme-root/index.js.map +0 -1
  543. package/dist/components/theme-root/theme-root.d.ts.map +0 -1
  544. package/dist/components/theme-toggle/index.d.ts.map +0 -1
  545. package/dist/components/theme-toggle/index.js.map +0 -1
  546. package/dist/components/theme-toggle/theme-toggle.d.ts.map +0 -1
  547. package/dist/components/time-picker/index.d.ts.map +0 -1
  548. package/dist/components/time-picker/index.js.map +0 -1
  549. package/dist/components/time-picker/time-picker.d.ts.map +0 -1
  550. package/dist/components/timeline/index.d.ts.map +0 -1
  551. package/dist/components/timeline/index.js.map +0 -1
  552. package/dist/components/timeline/timeline.d.ts.map +0 -1
  553. package/dist/components/timestamp/index.d.ts.map +0 -1
  554. package/dist/components/timestamp/index.js.map +0 -1
  555. package/dist/components/timestamp/timestamp.d.ts.map +0 -1
  556. package/dist/components/toast/index.d.ts.map +0 -1
  557. package/dist/components/toast/index.js.map +0 -1
  558. package/dist/components/toast/toast.d.ts.map +0 -1
  559. package/dist/components/tooltip/index.d.ts.map +0 -1
  560. package/dist/components/tooltip/index.js.map +0 -1
  561. package/dist/components/tooltip/tooltip.d.ts.map +0 -1
  562. package/dist/components/tooth-scheme/index.d.ts.map +0 -1
  563. package/dist/components/tooth-scheme/index.js.map +0 -1
  564. package/dist/components/tooth-scheme/tooth-data.d.ts.map +0 -1
  565. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +0 -1
  566. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +0 -1
  567. package/dist/components/transcript-panel/index.d.ts.map +0 -1
  568. package/dist/components/transcript-panel/index.js.map +0 -1
  569. package/dist/components/transcript-panel/transcript-panel.d.ts.map +0 -1
  570. package/dist/components/typing-indicator/index.d.ts.map +0 -1
  571. package/dist/components/typing-indicator/index.js.map +0 -1
  572. package/dist/components/typing-indicator/typing-indicator.d.ts.map +0 -1
  573. package/dist/components/visually-hidden/index.d.ts.map +0 -1
  574. package/dist/components/visually-hidden/index.js.map +0 -1
  575. package/dist/components/visually-hidden/visually-hidden.d.ts.map +0 -1
  576. package/dist/components/warning-stack/index.d.ts.map +0 -1
  577. package/dist/components/warning-stack/index.js.map +0 -1
  578. package/dist/components/warning-stack/warning-stack.d.ts.map +0 -1
  579. package/dist/components/workflow/index.d.ts.map +0 -1
  580. package/dist/components/workflow/index.js.map +0 -1
  581. package/dist/components/workflow/workflow-card.d.ts.map +0 -1
  582. package/dist/components/workflow/workflow-editor.d.ts.map +0 -1
  583. package/dist/components/workflow/workflow-map.d.ts.map +0 -1
  584. package/dist/components/workflow/workflow-types.d.ts.map +0 -1
  585. package/dist/hooks/index.d.ts.map +0 -1
  586. package/dist/hooks/index.js.map +0 -1
  587. package/dist/hooks/use-locale.d.ts.map +0 -1
  588. package/dist/hooks/use-media-query.d.ts.map +0 -1
  589. package/dist/hooks/use-prefers-reduced-motion.d.ts.map +0 -1
  590. package/dist/hooks/use-theme.d.ts.map +0 -1
  591. package/dist/i18n/config.d.ts.map +0 -1
  592. package/dist/i18n/config.js.map +0 -1
  593. package/dist/i18n/resources.d.ts.map +0 -1
  594. package/dist/index.js.map +0 -1
  595. package/dist/option/index.js.map +0 -1
  596. package/dist/patterns/leo-assistant/index.d.ts.map +0 -1
  597. package/dist/patterns/leo-assistant/index.js.map +0 -1
  598. package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +0 -1
  599. package/dist/patterns/leo-assistant/leo-embedded.d.ts.map +0 -1
  600. package/dist/patterns/leo-assistant/leo-popout.d.ts.map +0 -1
  601. package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +0 -1
  602. package/dist/patterns/leo-assistant/leo-types.d.ts.map +0 -1
  603. package/dist/patterns/patient-shell/index.d.ts.map +0 -1
  604. package/dist/patterns/patient-shell/index.js.map +0 -1
  605. package/dist/patterns/patient-shell/patient-shell.d.ts.map +0 -1
  606. package/dist/safe-html/index.js.map +0 -1
  607. package/dist/tokens/apexcharts-theme.d.ts.map +0 -1
  608. package/dist/tokens/themes/bridges/stripe-appearance.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown-menu-Cw3EyPZv.js","sources":["../../src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ElementRef,\n type ReactNode,\n} from 'react';\nimport * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Check, ChevronRight } from 'lucide-react';\nimport { Separator as DsSeparator } from '../separator/separator';\nimport { Kbd, type KbdNamedKey } from '../kbd/kbd';\nimport { useDocumentDirection } from '../_shared/use-direction';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst contentVariants = cva(\n [\n 'ds:z-[var(--z-dropdown)]',\n 'ds:min-w-[8rem]',\n 'ds:rounded-[var(--radius-md)]',\n // Border kept (transparent) so the forced-colors override below can\n // repaint a visible edge in HCM. In normal modes the soft drop-shadow\n // carries the edge cue; the heavy `--border` (grey-800 since WCAG\n // 1.4.11 bump in 67fef8c) made the menu read as a charcoal box.\n 'ds:border ds:border-transparent',\n 'ds:bg-[var(--popover)] ds:text-[color:var(--popover-foreground)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:p-[var(--spacing-xs)]',\n // Motion — gated on --animation-duration via Tailwind's animate-in\n // preset. motion-reduce disables via the no-preference query.\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=open]:fade-in ds:data-[state=closed]:fade-out',\n 'ds:data-[state=open]:zoom-in-95 ds:data-[state=closed]:zoom-out-95',\n 'ds:motion-reduce:animate-none',\n 'ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n);\n\nconst itemClasses = cva(\n [\n 'ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:text-[length:var(--font-size-sm)] ds:text-[color:var(--foreground)]',\n 'ds:cursor-pointer ds:select-none ds:outline-none',\n // Highlighted + hover state\n 'ds:data-[highlighted]:bg-[color:var(--muted)]/40',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid ds:focus-visible:outline-[color:var(--ring)]',\n 'ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n // Disabled\n 'ds:data-[disabled]:opacity-50 ds:data-[disabled]:cursor-not-allowed',\n 'ds:data-[disabled]:pointer-events-none',\n ].join(' '),\n);\n\nconst labelClasses = cva(\n [\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]',\n 'type-eyebrow ds:text-[color:var(--muted-foreground)]',\n 'ds:select-none',\n ].join(' '),\n);\n\nconst indicatorSlotClasses =\n 'ds:inline-flex ds:items-center ds:justify-center ds:size-4 ds:shrink-0';\n\n/* ------------------------------------------------------------------ */\n/* Root / Trigger / Portal */\n/* ------------------------------------------------------------------ */\n\ntype DropdownMenuRootProps = ComponentPropsWithoutRef<typeof RadixDropdownMenu.Root>;\n\nconst Root = ({ dir, ...props }: DropdownMenuRootProps) => {\n const autoDir = useDocumentDirection();\n return <RadixDropdownMenu.Root dir={dir ?? autoDir} {...props} />;\n};\nRoot.displayName = 'DropdownMenu.Root';\n\nconst Trigger = RadixDropdownMenu.Trigger;\nconst Portal = RadixDropdownMenu.Portal;\nconst RadixGroup = RadixDropdownMenu.Group;\nconst RadixRadioGroup = RadixDropdownMenu.RadioGroup;\n\n/* ------------------------------------------------------------------ */\n/* Content */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuContentProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Content>,\n VariantProps<typeof contentVariants> {}\n\nconst Content = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Content>,\n DropdownMenuContentProps\n>(({ className, sideOffset = 8, ...props }, ref) => (\n <RadixDropdownMenu.Portal>\n <RadixDropdownMenu.Content\n ref={ref}\n sideOffset={sideOffset}\n className={contentVariants({ className })}\n data-component=\"dropdown-menu\"\n {...props}\n />\n </RadixDropdownMenu.Portal>\n));\nContent.displayName = 'DropdownMenu.Content';\n\n/* ------------------------------------------------------------------ */\n/* Item */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuItemProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Item> {\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n description?: ReactNode;\n /** Convenience — renders a DS <Kbd keys={…}> on the inline-end. */\n shortcut?: Array<KbdNamedKey | string>;\n}\n\nconst Item = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Item>,\n DropdownMenuItemProps\n>(\n (\n { className, startIcon, endIcon, description, shortcut, children, ...props },\n ref,\n ) => (\n <RadixDropdownMenu.Item\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n {startIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center\"\n >\n {startIcon}\n </span>\n ) : null}\n <span className=\"ds:flex-1 ds:flex ds:flex-col ds:min-w-0\">\n <span className=\"ds:truncate\">{children}</span>\n {description ? (\n <span className=\"type-meta ds:text-[color:var(--muted-foreground)] ds:truncate\">\n {description}\n </span>\n ) : null}\n </span>\n {shortcut ? (\n <span className=\"ds:ms-auto\">\n <Kbd keys={shortcut} size=\"sm\" />\n </span>\n ) : endIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:ms-auto ds:inline-flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center\"\n >\n {endIcon}\n </span>\n ) : null}\n </RadixDropdownMenu.Item>\n ),\n);\nItem.displayName = 'DropdownMenu.Item';\n\n/* ------------------------------------------------------------------ */\n/* CheckboxItem */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.CheckboxItem> {}\n\nconst CheckboxItem = forwardRef<\n ElementRef<typeof RadixDropdownMenu.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(({ className, children, ...props }, ref) => (\n <RadixDropdownMenu.CheckboxItem\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n <span className={indicatorSlotClasses}>\n <RadixDropdownMenu.ItemIndicator>\n <Check aria-hidden className=\"ds:size-4\" />\n </RadixDropdownMenu.ItemIndicator>\n </span>\n <span className=\"ds:flex-1 ds:truncate\">{children}</span>\n </RadixDropdownMenu.CheckboxItem>\n));\nCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\n/* ------------------------------------------------------------------ */\n/* RadioGroup / RadioItem */\n/* ------------------------------------------------------------------ */\n\nconst RadioGroup = RadixRadioGroup;\n\nexport interface DropdownMenuRadioItemProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.RadioItem> {}\n\nconst RadioItem = forwardRef<\n ElementRef<typeof RadixDropdownMenu.RadioItem>,\n DropdownMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <RadixDropdownMenu.RadioItem\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n <span className={indicatorSlotClasses}>\n <RadixDropdownMenu.ItemIndicator>\n <Check\n aria-hidden\n className=\"ds:size-4 ds:text-[color:var(--accent)]\"\n />\n </RadixDropdownMenu.ItemIndicator>\n </span>\n <span className=\"ds:flex-1 ds:truncate\">{children}</span>\n </RadixDropdownMenu.RadioItem>\n));\nRadioItem.displayName = 'DropdownMenu.RadioItem';\n\n/* ------------------------------------------------------------------ */\n/* Label */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuLabelProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Label> {}\n\nconst Label = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Label>,\n DropdownMenuLabelProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Label\n ref={ref}\n className={labelClasses({ className })}\n {...props}\n />\n));\nLabel.displayName = 'DropdownMenu.Label';\n\n/* ------------------------------------------------------------------ */\n/* Separator */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuSeparatorProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.Separator> {}\n\nconst MenuSeparator = forwardRef<\n ElementRef<typeof RadixDropdownMenu.Separator>,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Separator ref={ref} asChild {...props}>\n <DsSeparator\n className={['ds:my-[calc(var(--spacing-xs)/2)]', className ?? '']\n .filter(Boolean)\n .join(' ')}\n />\n </RadixDropdownMenu.Separator>\n));\nMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/* ------------------------------------------------------------------ */\n/* Shortcut — thin wrapper over DS Kbd for the right side of an Item */\n/* ------------------------------------------------------------------ */\n\nexport interface DropdownMenuShortcutProps {\n keys: Array<KbdNamedKey | string>;\n separator?: 'none' | 'plus' | 'then';\n}\n\nconst Shortcut = forwardRef<HTMLSpanElement, DropdownMenuShortcutProps>(\n ({ keys, separator = 'none' }, ref) => (\n <span ref={ref} className=\"ds:ms-auto ds:ps-[var(--spacing-sm)]\">\n <Kbd keys={keys} separator={separator} size=\"sm\" />\n </span>\n ),\n);\nShortcut.displayName = 'DropdownMenu.Shortcut';\n\n/* ------------------------------------------------------------------ */\n/* Sub-menu */\n/* ------------------------------------------------------------------ */\n\nconst Sub = RadixDropdownMenu.Sub;\n\nexport interface DropdownMenuSubTriggerProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.SubTrigger> {\n startIcon?: ReactNode;\n}\n\nconst SubTrigger = forwardRef<\n ElementRef<typeof RadixDropdownMenu.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(({ className, startIcon, children, ...props }, ref) => (\n <RadixDropdownMenu.SubTrigger\n ref={ref}\n className={itemClasses({ className })}\n {...props}\n >\n {startIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:size-4 ds:shrink-0 ds:items-center ds:justify-center\"\n >\n {startIcon}\n </span>\n ) : null}\n <span className=\"ds:flex-1 ds:truncate\">{children}</span>\n <ChevronRight\n aria-hidden\n className=\"ds:ms-auto ds:size-4 ds:shrink-0 ds:rtl:-scale-x-100\"\n />\n </RadixDropdownMenu.SubTrigger>\n));\nSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nexport interface DropdownMenuSubContentProps\n extends ComponentPropsWithoutRef<typeof RadixDropdownMenu.SubContent> {}\n\nconst SubContent = forwardRef<\n ElementRef<typeof RadixDropdownMenu.SubContent>,\n DropdownMenuSubContentProps\n>(({ className, ...props }, ref) => (\n <RadixDropdownMenu.Portal>\n <RadixDropdownMenu.SubContent\n ref={ref}\n sideOffset={8}\n className={contentVariants({ className })}\n {...props}\n />\n </RadixDropdownMenu.Portal>\n));\nSubContent.displayName = 'DropdownMenu.SubContent';\n\n/* ------------------------------------------------------------------ */\n/* Assembled namespace export */\n/* ------------------------------------------------------------------ */\n\nexport const DropdownMenu = {\n Root,\n Trigger,\n Portal,\n Content,\n Group: RadixGroup,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n Label,\n Separator: MenuSeparator,\n Shortcut,\n Sub,\n SubTrigger,\n SubContent,\n};\n"],"names":["contentVariants","cva","itemClasses","labelClasses","indicatorSlotClasses","Root","dir","props","autoDir","useDocumentDirection","jsx","RadixDropdownMenu","Trigger","Portal","RadixGroup","RadixRadioGroup","Content","forwardRef","className","sideOffset","ref","Item","startIcon","endIcon","description","shortcut","children","jsxs","Kbd","CheckboxItem","Check","RadioGroup","RadioItem","Label","MenuSeparator","DsSeparator","Shortcut","keys","separator","Sub","SubTrigger","ChevronRight","SubContent","DropdownMenu"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown-menu.agent-Cry4Nmes.js","sources":["../../src/components/dropdown-menu/dropdown-menu.agent.ts"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\n\nexport const dropdownMenuAgent: AgentAdapter<unknown> = {\n id: 'dropdown-menu',\n capabilities: ['open', 'close', 'pick'],\n state: {},\n actions: {},\n domHooks: {\n root: { attr: 'data-component', value: 'dropdown-menu' },\n item: {\n attr: 'data-item-id',\n description: 'Each menu item emits its value as data-item-id.',\n },\n },\n};\n"],"names":["dropdownMenuAgent"],"mappings":"AAEO,MAAMA,IAA2C;AAAA,EACtD,IAAI;AAAA,EACJ,cAAc,CAAC,QAAQ,SAAS,MAAM;AAAA,EACtC,OAAO,CAAA;AAAA,EACP,SAAS,CAAA;AAAA,EACT,UAAU;AAAA,IACR,MAAM,EAAE,MAAM,kBAAkB,OAAO,gBAAA;AAAA,IACvC,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ellipsis-rgGdiK_9.js","sources":["../../node_modules/lucide-react/dist/esm/icons/ellipsis.js"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"19\", cy: \"12\", r: \"1\", key: \"1wjl8i\" }],\n [\"circle\", { cx: \"5\", cy: \"12\", r: \"1\", key: \"1pcz8c\" }]\n];\nconst Ellipsis = createLucideIcon(\"ellipsis\", __iconNode);\n\nexport { __iconNode, Ellipsis as default };\n//# sourceMappingURL=ellipsis.js.map\n"],"names":["__iconNode","Ellipsis","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACxD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,UAAU;AAAA,EACxD,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,KAAK,SAAQ,CAAE;AACzD,GACMC,IAAWC,EAAiB,YAAYF,CAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-state-DQPtRp2b.js","sources":["../../src/components/empty-state/empty-state.tsx"],"sourcesContent":["import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '../button/button';\n\n/* ------------------------------------------------------------------ */\n/* Ref helper */\n/* ------------------------------------------------------------------ */\n\nfunction setRef<T>(ref: Ref<T>, value: T | null) {\n if (!ref) return;\n if (typeof ref === 'function') ref(value);\n else (ref as { current: T | null }).current = value;\n}\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface EmptyStateContextValue {\n size: 'sm' | 'md' | 'lg';\n variant: 'first-use' | 'no-results' | 'error';\n titleId: string;\n registerTitle: () => void;\n}\n\nconst EmptyStateContext = createContext<EmptyStateContextValue>({\n size: 'md',\n variant: 'first-use',\n titleId: '',\n registerTitle: () => {},\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst emptyStateVariants = cva(\n 'ds:flex ds:flex-col ds:items-center ds:text-center ds:max-w-md ds:ms-auto ds:me-auto ds:w-full',\n {\n variants: {\n size: {\n sm: 'ds:p-[var(--spacing-md)] ds:gap-[var(--spacing-sm)]',\n md: 'ds:p-[var(--spacing-lg)] ds:gap-[var(--spacing-md)]',\n lg: 'ds:p-[var(--spacing-lg)] ds:gap-[var(--spacing-md)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst illustrationVariants = cva(\n 'ds:flex ds:items-center ds:justify-center ds:flex-shrink-0',\n {\n variants: {\n size: {\n sm: 'ds:w-[80px] ds:h-[80px]',\n md: 'ds:w-[160px] ds:h-[160px]',\n lg: 'ds:w-[240px] ds:h-[240px]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst titleVariants = cva('type-title-card ds:text-[var(--foreground)]', {\n variants: {\n size: {\n sm: 'ds:[--type-title-card-size:var(--font-size-sm)]',\n md: '',\n lg: 'ds:[--type-title-card-size:var(--font-size-xl)]',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\nconst descriptionVariants = cva('type-body-sm ds:text-[var(--muted-foreground)]', {\n variants: {\n size: {\n sm: 'ds:[--type-body-sm-size:var(--font-size-xs)]',\n md: '',\n lg: 'ds:[--type-body-sm-size:var(--font-size-base)]',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Built-in illustrations */\n/* ------------------------------------------------------------------ */\n\nfunction FirstUseIllustration() {\n return (\n <svg\n viewBox=\"0 0 120 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n className=\"ds:w-full ds:h-full\"\n >\n <circle\n cx=\"60\"\n cy=\"60\"\n r=\"50\"\n fill=\"var(--color-violet-50)\"\n stroke=\"var(--color-violet-200)\"\n strokeWidth=\"2\"\n />\n <rect x=\"55\" y=\"30\" width=\"10\" height=\"60\" rx=\"5\" fill=\"var(--color-violet-400)\" />\n <rect x=\"30\" y=\"55\" width=\"60\" height=\"10\" rx=\"5\" fill=\"var(--color-purple-400)\" />\n </svg>\n );\n}\n\nfunction NoResultsIllustration() {\n return (\n <svg\n viewBox=\"0 0 120 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n className=\"ds:w-full ds:h-full\"\n >\n <circle cx=\"52\" cy=\"52\" r=\"28\" stroke=\"var(--muted)\" strokeWidth=\"6\" />\n <line\n x1=\"72\"\n y1=\"72\"\n x2=\"92\"\n y2=\"92\"\n stroke=\"var(--muted)\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"42\"\n y1=\"52\"\n x2=\"62\"\n y2=\"52\"\n stroke=\"var(--muted-foreground)\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nfunction ErrorIllustration() {\n return (\n <svg\n viewBox=\"0 0 120 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n className=\"ds:w-full ds:h-full\"\n >\n <path\n d=\"M60 15 L110 95 H10 Z\"\n fill=\"var(--destructive)\"\n fillOpacity=\"0.1\"\n stroke=\"var(--destructive)\"\n strokeOpacity=\"0.4\"\n strokeWidth=\"3\"\n strokeLinejoin=\"round\"\n />\n <rect\n x=\"56\"\n y=\"45\"\n width=\"8\"\n height=\"26\"\n rx=\"4\"\n fill=\"var(--destructive)\"\n fillOpacity=\"0.6\"\n />\n <circle cx=\"60\" cy=\"82\" r=\"5\" fill=\"var(--destructive)\" fillOpacity=\"0.6\" />\n </svg>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Subcomponents */\n/* ------------------------------------------------------------------ */\n\nconst EmptyStateIllustration = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ children, className, ...props }, ref) => {\n const { size } = useContext(EmptyStateContext);\n return (\n <div\n ref={ref}\n aria-hidden=\"true\"\n className={illustrationVariants({ size, className })}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\nEmptyStateIllustration.displayName = 'EmptyState.Illustration';\n\nconst EmptyStateTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ children, className, ...props }, ref) => {\n const { size, titleId, registerTitle } = useContext(EmptyStateContext);\n const callbackRef = useCallback(\n (node: HTMLHeadingElement | null) => {\n if (node) registerTitle();\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as { current: HTMLHeadingElement | null }).current = node;\n },\n [ref, registerTitle],\n );\n return (\n <h3\n ref={callbackRef}\n id={titleId}\n className={titleVariants({ size, className })}\n {...props}\n >\n {children}\n </h3>\n );\n },\n);\nEmptyStateTitle.displayName = 'EmptyState.Title';\n\nconst EmptyStateDescription = forwardRef<\n HTMLParagraphElement,\n HTMLAttributes<HTMLParagraphElement>\n>(({ children, className, ...props }, ref) => {\n const { size } = useContext(EmptyStateContext);\n return (\n <p\n ref={ref}\n className={descriptionVariants({ size, className })}\n {...props}\n >\n {children}\n </p>\n );\n});\nEmptyStateDescription.displayName = 'EmptyState.Description';\n\nconst actionsVariants = cva(\n 'ds:flex ds:flex-row ds:flex-wrap ds:items-center ds:justify-center ds:gap-[var(--spacing-md)]',\n);\n\nconst EmptyStateActions = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ children, className, ...props }, ref) => (\n <div\n ref={ref}\n className={actionsVariants({ className })}\n {...props}\n >\n {children}\n </div>\n ),\n);\nEmptyStateActions.displayName = 'EmptyState.Actions';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport interface EmptyStateProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'role' | 'title'>,\n VariantProps<typeof emptyStateVariants> {\n variant: 'first-use' | 'no-results' | 'error';\n size?: 'sm' | 'md' | 'lg';\n title?: string;\n description?: string;\n primaryAction?: { label: string; onClick: () => void };\n secondaryAction?: { label: string; onClick: () => void; href?: string };\n autoFocus?: boolean;\n children?: ReactNode;\n}\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nconst EmptyStateRoot = forwardRef<HTMLDivElement, EmptyStateProps>(\n (\n {\n variant,\n size = 'md',\n title,\n description,\n primaryAction,\n secondaryAction,\n autoFocus = false,\n children,\n className,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const titleId = useId();\n const containerRef = useRef<HTMLDivElement | null>(null);\n const [hasTitle, setHasTitle] = useState(false);\n const registerTitle = useCallback(() => setHasTitle(true), []);\n\n useEffect(() => {\n if (!autoFocus) return;\n const firstBtn = containerRef.current?.querySelector<HTMLElement>(\n 'button:not([disabled]), a[href]',\n );\n firstBtn?.focus();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const roleProps =\n variant === 'no-results'\n ? ({ role: 'status' as const, 'aria-live': 'polite' as const })\n : ({ role: 'region' as const });\n\n const defaultTitle =\n variant === 'first-use'\n ? t('emptyState.firstUse.title')\n : variant === 'no-results'\n ? t('emptyState.noResults.title')\n : t('emptyState.error.title');\n\n const defaultDescription =\n variant === 'first-use'\n ? t('emptyState.firstUse.description')\n : variant === 'no-results'\n ? t('emptyState.noResults.description')\n : t('emptyState.error.description');\n\n const defaultCtaLabel =\n variant === 'first-use'\n ? t('emptyState.firstUse.cta')\n : variant === 'no-results'\n ? t('emptyState.noResults.cta')\n : t('emptyState.error.cta');\n\n const buttonSize = size === 'sm' ? ('sm' as const) : ('md' as const);\n\n const safeHref = (href: string) =>\n /^(https?:\\/\\/|\\/|#)/.test(href) ? href : '#';\n\n return (\n <EmptyStateContext.Provider value={{ size, variant, titleId, registerTitle }}>\n <div\n ref={(node) => {\n containerRef.current = node;\n setRef(ref, node);\n }}\n aria-labelledby={hasTitle || !children ? titleId : undefined}\n {...roleProps}\n className={emptyStateVariants({ size, className })}\n data-component=\"empty-state\"\n {...props}\n >\n {children ?? (\n <>\n <EmptyStateIllustration>\n {variant === 'first-use' && <FirstUseIllustration />}\n {variant === 'no-results' && <NoResultsIllustration />}\n {variant === 'error' && <ErrorIllustration />}\n </EmptyStateIllustration>\n <EmptyStateTitle>{title ?? defaultTitle}</EmptyStateTitle>\n <EmptyStateDescription>\n {description ?? defaultDescription}\n </EmptyStateDescription>\n {(primaryAction || secondaryAction) && (\n <EmptyStateActions>\n {primaryAction && (\n <Button\n intent=\"primary\"\n size={buttonSize}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label ?? defaultCtaLabel}\n </Button>\n )}\n {secondaryAction &&\n (secondaryAction.href ? (\n <Button intent=\"ghost\" size={buttonSize} asChild>\n <a href={safeHref(secondaryAction.href!)} onClick={secondaryAction.onClick}>\n {secondaryAction.label}\n </a>\n </Button>\n ) : (\n <Button\n intent=\"ghost\"\n size={buttonSize}\n onClick={secondaryAction.onClick}\n >\n {secondaryAction.label}\n </Button>\n ))}\n </EmptyStateActions>\n )}\n </>\n )}\n </div>\n </EmptyStateContext.Provider>\n );\n },\n);\nEmptyStateRoot.displayName = 'EmptyState';\n\n/* ------------------------------------------------------------------ */\n/* Compound export */\n/* ------------------------------------------------------------------ */\n\nexport const EmptyState = Object.assign(EmptyStateRoot, {\n Illustration: EmptyStateIllustration,\n Title: EmptyStateTitle,\n Description: EmptyStateDescription,\n Actions: EmptyStateActions,\n});\n"],"names":["setRef","ref","value","EmptyStateContext","createContext","emptyStateVariants","cva","illustrationVariants","titleVariants","descriptionVariants","FirstUseIllustration","jsxs","jsx","NoResultsIllustration","ErrorIllustration","EmptyStateIllustration","forwardRef","children","className","props","size","useContext","EmptyStateTitle","titleId","registerTitle","callbackRef","useCallback","node","EmptyStateDescription","actionsVariants","EmptyStateActions","EmptyStateRoot","variant","title","description","primaryAction","secondaryAction","autoFocus","t","useTranslation","useId","containerRef","useRef","hasTitle","setHasTitle","useState","useEffect","firstBtn","_a","roleProps","defaultTitle","defaultDescription","defaultCtaLabel","buttonSize","safeHref","href","Fragment","Button","EmptyState"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"eye-off-xEXDAh5z.js","sources":["../../node_modules/lucide-react/dist/esm/icons/eye-off.js"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode);\n\nexport { __iconNode, EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n"],"names":["__iconNode","EyeOff","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,wCAAwC,KAAK,SAAQ,CAAE;AAAA,EACrE;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAQ,CAAE;AAC7C,GACMC,IAASC,EAAiB,WAAWF,CAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-text-DSNuv2B8.js","sources":["../../node_modules/lucide-react/dist/esm/icons/file-text.js"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n];\nconst FileText = createLucideIcon(\"file-text\", __iconNode);\n\nexport { __iconNode, FileText as default };\n//# sourceMappingURL=file-text.js.map\n"],"names":["__iconNode","FileText","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AAAA,EACE,CAAC,QAAQ,EAAE,GAAG,2BAA2B,KAAK,SAAQ,CAAE;AAAA,EACxD,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAQ,CAAE;AAAA,EACxC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMC,IAAWC,EAAiB,aAAaF,CAAU;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-upload.agent-B9AN82LA.js","sources":["../../node_modules/lucide-react/dist/esm/icons/cloud-upload.js","../../node_modules/lucide-react/dist/esm/icons/file-archive.js","../../node_modules/lucide-react/dist/esm/icons/file-image.js","../../node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js","../../node_modules/lucide-react/dist/esm/icons/file.js","../../node_modules/lucide-react/dist/esm/icons/loader-circle.js","../../node_modules/lucide-react/dist/esm/icons/upload.js","../../src/components/file-upload/file-upload.tsx","../../src/components/file-upload/file-upload.agent.ts"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 13v8\", key: \"1l5pq0\" }],\n [\"path\", { d: \"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\", key: \"1pljnt\" }],\n [\"path\", { d: \"m8 17 4-4 4 4\", key: \"1quai1\" }]\n];\nconst CloudUpload = createLucideIcon(\"cloud-upload\", __iconNode);\n\nexport { __iconNode, CloudUpload as default };\n//# sourceMappingURL=cloud-upload.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 [\n \"path\",\n {\n d: \"M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5\",\n key: \"4pqfef\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M8 12v-1\", key: \"1ej8lb\" }],\n [\"path\", { d: \"M8 18v-2\", key: \"qcmpov\" }],\n [\"path\", { d: \"M8 7V6\", key: \"1nbb54\" }],\n [\"circle\", { cx: \"8\", cy: \"20\", r: \"2\", key: \"ckkr5m\" }]\n];\nconst FileArchive = createLucideIcon(\"file-archive\", __iconNode);\n\nexport { __iconNode, FileArchive as default };\n//# sourceMappingURL=file-archive.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 [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"circle\", { cx: \"10\", cy: \"12\", r: \"2\", key: \"737tya\" }],\n [\"path\", { d: \"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22\", key: \"wt3hpn\" }]\n];\nconst FileImage = createLucideIcon(\"file-image\", __iconNode);\n\nexport { __iconNode, FileImage as default };\n//# sourceMappingURL=file-image.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 [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n [\"path\", { d: \"M8 13h2\", key: \"yr2amv\" }],\n [\"path\", { d: \"M14 13h2\", key: \"un5t4a\" }],\n [\"path\", { d: \"M8 17h2\", key: \"2yhykz\" }],\n [\"path\", { d: \"M14 17h2\", key: \"10kma7\" }]\n];\nconst FileSpreadsheet = createLucideIcon(\"file-spreadsheet\", __iconNode);\n\nexport { __iconNode, FileSpreadsheet as default };\n//# sourceMappingURL=file-spreadsheet.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 [\n \"path\",\n {\n d: \"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\n key: \"1oefj6\"\n }\n ],\n [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }]\n];\nconst File = createLucideIcon(\"file\", __iconNode);\n\nexport { __iconNode, File as default };\n//# sourceMappingURL=file.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 = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.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 3v12\", key: \"1x0j5s\" }],\n [\"path\", { d: \"m17 8-5-5-5 5\", key: \"7q97r8\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }]\n];\nconst Upload = createLucideIcon(\"upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.js.map\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ClipboardEvent,\n type ReactNode,\n} from 'react';\nimport { useDropzone, type FileRejection } from 'react-dropzone';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n AlertCircle,\n CheckCircle2,\n CloudUpload,\n File as FileIcon,\n FileArchive,\n FileImage,\n FileSpreadsheet,\n FileText,\n Loader2,\n Upload,\n X,\n} from 'lucide-react';\nimport { useFormField } from '../form-field/form-field-context';\n\n/* -------------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------------- */\n\nexport interface FileUploadFile {\n file: File;\n id: string;\n status: 'pending' | 'uploading' | 'complete' | 'error';\n progress: number;\n preview?: string;\n error?: string;\n}\n\nexport interface FileUploadRejection {\n file: File;\n reason:\n | 'file-too-large'\n | 'file-too-small'\n | 'file-invalid-type'\n | 'too-many-files';\n}\n\nexport interface FileUploadProps {\n accept?: Record<string, string[]>;\n maxSize?: number;\n minSize?: number;\n maxFiles?: number;\n multiple?: boolean;\n disabled?: boolean;\n strictAccept?: boolean;\n onDrop?: (accepted: File[], rejected: FileUploadRejection[]) => void;\n onUpload?: (\n file: File,\n helpers: {\n signal: AbortSignal;\n onProgress: (percent: number) => void;\n },\n ) => Promise<void>;\n onRemove?: (file: FileUploadFile) => void;\n onReject?: (rejections: FileUploadRejection[]) => void;\n variant?: 'dropzone' | 'button' | 'both';\n showPreview?: boolean;\n className?: string;\n}\n\n/* -------------------------------------------------------------------------- */\n/* CVA */\n/* -------------------------------------------------------------------------- */\n\nconst dropzoneVariants = cva(\n [\n 'ds:relative ds:flex ds:flex-col ds:items-center ds:justify-center',\n 'ds:min-h-48 ds:px-[var(--spacing-lg)] ds:py-[var(--spacing-xl)]',\n 'ds:rounded-[var(--radius-lg)] ds:border-2 ds:border-dashed',\n 'ds:bg-background',\n 'ds:transition-all ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:cursor-pointer',\n 'ds:group',\n ].join(' '),\n {\n variants: {\n isDragActive: {\n true: 'ds:border-primary ds:bg-primary/10 ds:scale-[1.01]',\n false: 'ds:border-border ds:hover:border-muted-foreground/40 ds:hover:bg-muted/5',\n },\n hasError: {\n true: 'ds:border-destructive ds:bg-destructive/5 ds:hover:border-destructive',\n false: '',\n },\n isDisabled: {\n true: 'ds:cursor-not-allowed ds:opacity-50 ds:hover:border-border ds:hover:bg-background',\n false: '',\n },\n },\n defaultVariants: {\n isDragActive: false,\n hasError: false,\n isDisabled: false,\n },\n },\n);\n\nconst browseButtonVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center ds:gap-[var(--spacing-xs)]',\n 'ds:min-h-[var(--min-target-size)] ds:min-w-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-primary/30 ds:bg-primary/5',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:py-[var(--spacing-sm)]',\n 'ds:text-primary ds:text-[length:var(--font-size-sm)] ds:font-medium',\n 'ds:transition-all ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:hover:bg-primary/10 ds:hover:border-primary/50',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n ].join(' '),\n);\n\nconst fileItemVariants = cva(\n [\n 'ds:flex ds:items-center ds:gap-[var(--spacing-md)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:bg-background',\n 'ds:p-[var(--spacing-md)]',\n 'ds:text-[length:var(--font-size-sm)] ds:text-foreground',\n 'ds:transition-all ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n ].join(' '),\n {\n variants: {\n status: {\n pending: 'ds:border-border',\n uploading: 'ds:border-primary/30 ds:bg-primary/[0.02]',\n complete: 'ds:border-[var(--success)]/30 ds:bg-[var(--success)]/[0.02]',\n error: 'ds:border-destructive/30 ds:bg-destructive/[0.02]',\n },\n },\n defaultVariants: {\n status: 'pending',\n },\n },\n);\n\nconst actionButtonVariants = cva(\n [\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:rounded-[var(--radius-sm)]',\n 'ds:text-muted-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:hover:text-foreground ds:hover:bg-muted/40',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n ].join(' '),\n);\n\n/* -------------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------------- */\n\nfunction generateId(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;\n}\n\nfunction isImageFile(file: File): boolean {\n return file.type.startsWith('image/');\n}\n\nfunction getFileIcon(file: File): ReactNode {\n const ext = file.name.split('.').pop()?.toLowerCase() ?? '';\n if (['pdf', 'doc', 'docx', 'txt', 'rtf'].includes(ext)) {\n return <FileText aria-hidden=\"true\" className=\"ds:size-10 ds:shrink-0 ds:text-muted-foreground\" />;\n }\n if (['zip', 'rar', '7z', 'tar', 'gz'].includes(ext)) {\n return <FileArchive aria-hidden=\"true\" className=\"ds:size-10 ds:shrink-0 ds:text-muted-foreground\" />;\n }\n if (['xls', 'xlsx', 'csv'].includes(ext)) {\n return <FileSpreadsheet aria-hidden=\"true\" className=\"ds:size-10 ds:shrink-0 ds:text-muted-foreground\" />;\n }\n if (['png', 'jpg', 'jpeg', 'gif', 'webp', 'svg', 'bmp'].includes(ext)) {\n return <FileImage aria-hidden=\"true\" className=\"ds:size-10 ds:shrink-0 ds:text-muted-foreground\" />;\n }\n return <FileIcon aria-hidden=\"true\" className=\"ds:size-10 ds:shrink-0 ds:text-muted-foreground\" />;\n}\n\nfunction getStatusIcon(status: FileUploadFile['status']): ReactNode {\n switch (status) {\n case 'uploading':\n return <Loader2 aria-hidden=\"true\" className=\"ds:size-4 ds:shrink-0 ds:text-primary ds:animate-spin\" />;\n case 'complete':\n return <CheckCircle2 aria-hidden=\"true\" className=\"ds:size-4 ds:shrink-0 ds:text-[var(--success)]\" />;\n case 'error':\n return <AlertCircle aria-hidden=\"true\" className=\"ds:size-4 ds:shrink-0 ds:text-destructive\" />;\n default:\n return null;\n }\n}\n\nconst UNIT_KEYS = [\n 'ui.inputs.fileUpload.units.bytes',\n 'ui.inputs.fileUpload.units.kilobytes',\n 'ui.inputs.fileUpload.units.megabytes',\n 'ui.inputs.fileUpload.units.gigabytes',\n] as const;\n\nconst UNIT_FALLBACKS = ['B', 'KB', 'MB', 'GB'] as const;\n\nfunction formatFileSize(\n bytes: number,\n locale: string,\n t: (key: string, fallback: string) => string,\n): string {\n let value = bytes;\n let unitIndex = 0;\n while (value >= 1024 && unitIndex < UNIT_FALLBACKS.length - 1) {\n value /= 1024;\n unitIndex++;\n }\n const formatted = new Intl.NumberFormat(locale, {\n maximumFractionDigits: unitIndex === 0 ? 0 : 1,\n }).format(value);\n const unit = t(UNIT_KEYS[unitIndex], UNIT_FALLBACKS[unitIndex]);\n return `${formatted} ${unit}`;\n}\n\nfunction mapRejectionCode(\n code: string,\n): FileUploadRejection['reason'] {\n switch (code) {\n case 'file-too-large':\n return 'file-too-large';\n case 'file-too-small':\n return 'file-too-small';\n case 'file-invalid-type':\n return 'file-invalid-type';\n case 'too-many-files':\n return 'too-many-files';\n default:\n return 'file-invalid-type';\n }\n}\n\nfunction getExtensionFromName(name: string): string {\n const parts = name.split('.');\n return parts.length > 1 ? `.${parts.pop()!.toLowerCase()}` : '';\n}\n\nfunction formatAcceptHint(accept: Record<string, string[]>): string {\n const extensions: string[] = [];\n for (const exts of Object.values(accept)) {\n for (const ext of exts) {\n extensions.push(ext.toUpperCase().replace('.', ''));\n }\n }\n if (extensions.length > 0) return extensions.join(', ');\n const mimeLabels: string[] = [];\n for (const mime of Object.keys(accept)) {\n if (mime.endsWith('/*')) {\n mimeLabels.push(mime.replace('/*', '').split('/').pop() ?? mime);\n } else {\n mimeLabels.push(mime.split('/').pop() ?? mime);\n }\n }\n return mimeLabels.join(', ');\n}\n\n/* -------------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------------- */\n\nexport const FileUpload = forwardRef<HTMLDivElement, FileUploadProps>(\n (\n {\n accept,\n maxSize,\n minSize,\n maxFiles = 1,\n multiple = false,\n disabled,\n strictAccept = false,\n onDrop: onDropProp,\n onUpload,\n onRemove,\n onReject,\n variant = 'both',\n showPreview = true,\n className,\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const ctx = useFormField();\n const fallbackId = useId();\n\n const effectiveDisabled = ctx.disabled || disabled;\n const hasError = ctx.invalid;\n const inputId = ctx.id || fallbackId;\n\n const [files, setFiles] = useState<FileUploadFile[]>([]);\n const [rejections, setRejections] = useState<FileUploadRejection[]>([]);\n const abortControllers = useRef<Map<string, AbortController>>(new Map());\n const statusRef = useRef<HTMLSpanElement>(null);\n const filesRef = useRef<FileUploadFile[]>(files);\n filesRef.current = files;\n\n const announceStatus = useCallback((message: string) => {\n if (statusRef.current) {\n statusRef.current.textContent = message;\n }\n }, []);\n\n const validateStrictAccept = useCallback(\n (file: File): boolean => {\n if (!strictAccept || !accept) return true;\n for (const [mime, extensions] of Object.entries(accept)) {\n const mimeMatch =\n mime === '*/*' ||\n (mime.endsWith('/*') && file.type.startsWith(mime.replace('/*', '/'))) ||\n file.type === mime;\n const fileExt = getExtensionFromName(file.name);\n const extMatch =\n extensions.length === 0 ||\n extensions.some((ext) => ext.toLowerCase() === fileExt);\n if (mimeMatch && extMatch) return true;\n }\n return false;\n },\n [strictAccept, accept],\n );\n\n const uploadFile = useCallback(\n async (uploadFileState: FileUploadFile) => {\n if (!onUpload) return;\n const controller = new AbortController();\n abortControllers.current.set(uploadFileState.id, controller);\n\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id ? { ...f, status: 'uploading', progress: 0 } : f,\n ),\n );\n announceStatus(t('ui.inputs.fileUpload.uploading', 'Uploading\\u2026'));\n\n try {\n await onUpload(uploadFileState.file, {\n signal: controller.signal,\n onProgress: (percent: number) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id ? { ...f, progress: percent } : f,\n ),\n );\n announceStatus(\n t('ui.inputs.fileUpload.progress', '{{percent}}% uploaded', {\n percent,\n }),\n );\n },\n });\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id\n ? { ...f, status: 'complete', progress: 100 }\n : f,\n ),\n );\n announceStatus(t('ui.inputs.fileUpload.complete', 'Upload complete'));\n } catch (err: unknown) {\n if (controller.signal.aborted) {\n setFiles((prev) => prev.filter((f) => f.id !== uploadFileState.id));\n return;\n }\n const errorMessage =\n err instanceof Error ? err.message : t('ui.inputs.fileUpload.errors.uploadFailed', 'Upload failed');\n setFiles((prev) =>\n prev.map((f) =>\n f.id === uploadFileState.id\n ? { ...f, status: 'error', error: errorMessage }\n : f,\n ),\n );\n } finally {\n abortControllers.current.delete(uploadFileState.id);\n }\n },\n [onUpload, announceStatus, t],\n );\n\n const handleDrop = useCallback(\n (accepted: File[], fileRejections: FileRejection[]) => {\n const mapped: FileUploadRejection[] = fileRejections.flatMap((r) =>\n r.errors.map((e) => ({\n file: r.file,\n reason: mapRejectionCode(e.code),\n })),\n );\n\n const strictRejected: FileUploadRejection[] = [];\n const strictAccepted: File[] = [];\n for (const file of accepted) {\n if (!validateStrictAccept(file)) {\n strictRejected.push({ file, reason: 'file-invalid-type' });\n } else {\n strictAccepted.push(file);\n }\n }\n\n const allRejections = [...mapped, ...strictRejected];\n setRejections(allRejections);\n\n if (allRejections.length > 0) {\n onReject?.(allRejections);\n }\n\n const newFiles: FileUploadFile[] = strictAccepted.map((file) => ({\n file,\n id: generateId(),\n status: 'pending' as const,\n progress: 0,\n preview: isImageFile(file) ? URL.createObjectURL(file) : undefined,\n }));\n\n setFiles((prev) => {\n if (!multiple && maxFiles === 1) {\n for (const f of prev) {\n if (f.preview) URL.revokeObjectURL(f.preview);\n }\n return newFiles;\n }\n return [...prev, ...newFiles];\n });\n\n onDropProp?.(strictAccepted, allRejections);\n announceStatus(\n t('ui.inputs.fileUpload.filesSelected', '{{count}} file(s) selected', {\n count: strictAccepted.length,\n }),\n );\n\n for (const nf of newFiles) {\n void uploadFile(nf);\n }\n },\n [\n multiple,\n maxFiles,\n onDropProp,\n onReject,\n validateStrictAccept,\n announceStatus,\n uploadFile,\n t,\n ],\n );\n\n const { getRootProps, getInputProps, isDragActive, open } = useDropzone({\n accept,\n maxSize,\n minSize,\n maxFiles: multiple ? maxFiles : 1,\n multiple,\n disabled: effectiveDisabled,\n onDrop: handleDrop,\n noClick: variant === 'button',\n noKeyboard: variant === 'button',\n });\n\n const handleCancel = useCallback(\n (fileId: string) => {\n const controller = abortControllers.current.get(fileId);\n controller?.abort();\n setFiles((prev) => {\n const file = prev.find((f) => f.id === fileId);\n if (file?.preview) URL.revokeObjectURL(file.preview);\n return prev.filter((f) => f.id !== fileId);\n });\n },\n [],\n );\n\n const handleRemove = useCallback(\n (fileId: string) => {\n const removed = filesRef.current.find((f) => f.id === fileId);\n if (removed?.preview) URL.revokeObjectURL(removed.preview);\n setFiles((prev) => prev.filter((f) => f.id !== fileId));\n if (removed) {\n onRemove?.(removed);\n }\n },\n [onRemove],\n );\n\n const validatePastedFiles = useCallback(\n (pastedFiles: File[]): { accepted: File[]; rejected: FileUploadRejection[] } => {\n const accepted: File[] = [];\n const rejected: FileUploadRejection[] = [];\n const effectiveMaxFiles = multiple ? maxFiles : 1;\n\n for (const file of pastedFiles) {\n if (accepted.length >= effectiveMaxFiles) {\n rejected.push({ file, reason: 'too-many-files' });\n continue;\n }\n if (maxSize !== undefined && file.size > maxSize) {\n rejected.push({ file, reason: 'file-too-large' });\n continue;\n }\n if (minSize !== undefined && file.size < minSize) {\n rejected.push({ file, reason: 'file-too-small' });\n continue;\n }\n if (accept) {\n const fileExt = getExtensionFromName(file.name);\n const typeMatch = Object.entries(accept).some(([mime, extensions]) => {\n const mimeOk =\n mime === '*/*' ||\n (mime.endsWith('/*') && file.type.startsWith(mime.replace('/*', '/'))) ||\n file.type === mime;\n const extOk =\n extensions.length > 0 &&\n extensions.some((ext) => ext.toLowerCase() === fileExt);\n return mimeOk || extOk;\n });\n if (!typeMatch) {\n rejected.push({ file, reason: 'file-invalid-type' });\n continue;\n }\n }\n accepted.push(file);\n }\n return { accepted, rejected };\n },\n [accept, maxSize, minSize, maxFiles, multiple],\n );\n\n const handlePaste = useCallback(\n (event: ClipboardEvent<HTMLDivElement>) => {\n if (effectiveDisabled) return;\n const pastedFiles = Array.from(event.clipboardData.files);\n if (pastedFiles.length > 0) {\n event.preventDefault();\n const { accepted, rejected } = validatePastedFiles(pastedFiles);\n const fileRejections: FileRejection[] = rejected.map((r) => ({\n file: r.file,\n errors: [{ code: r.reason, message: r.reason }],\n }));\n handleDrop(accepted, fileRejections);\n }\n },\n [effectiveDisabled, handleDrop, validatePastedFiles],\n );\n\n useEffect(() => {\n return () => {\n for (const f of filesRef.current) {\n if (f.preview) URL.revokeObjectURL(f.preview);\n }\n };\n }, []);\n\n const constraintHints = useMemo(() => {\n const hints: string[] = [];\n if (accept) {\n hints.push(formatAcceptHint(accept));\n }\n if (maxSize) {\n hints.push(\n t('ui.inputs.fileUpload.maxSizeHint', 'Max {{size}}', {\n size: formatFileSize(maxSize, i18n.language, t),\n }),\n );\n }\n if (multiple && maxFiles > 1) {\n hints.push(\n t('ui.inputs.fileUpload.maxFilesHint', 'Up to {{count}} files', {\n count: maxFiles,\n }),\n );\n }\n return hints;\n }, [accept, maxSize, multiple, maxFiles, t, i18n.language]);\n\n const errorMessages = useMemo(() => {\n return rejections.map((r) => {\n switch (r.reason) {\n case 'file-too-large':\n return t('ui.inputs.fileUpload.errors.fileTooLarge', 'File exceeds {{maxSize}}', {\n maxSize: maxSize ? formatFileSize(maxSize, i18n.language, t) : '',\n });\n case 'file-too-small':\n return t('ui.inputs.fileUpload.errors.fileTooSmall', 'File is smaller than {{minSize}}', {\n minSize: minSize ? formatFileSize(minSize, i18n.language, t) : '',\n });\n case 'file-invalid-type':\n return t('ui.inputs.fileUpload.errors.fileInvalidType', 'File type not accepted');\n case 'too-many-files':\n return t('ui.inputs.fileUpload.errors.tooManyFiles', 'Maximum {{maxFiles}} files allowed', {\n maxFiles,\n });\n }\n });\n }, [rejections, t, maxSize, minSize, maxFiles, i18n.language]);\n\n const renderFileList = () => {\n if (files.length === 0) return null;\n\n return (\n <ul className=\"ds:mt-[var(--spacing-md)] ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:list-none ds:p-0 ds:m-0\">\n {files.map((f) => (\n <li key={f.id} className={fileItemVariants({ status: f.status })}>\n {showPreview && f.preview ? (\n <img\n src={f.preview}\n alt=\"\"\n aria-hidden=\"true\"\n className=\"ds:size-12 ds:shrink-0 ds:rounded-[var(--radius-md)] ds:object-cover ds:border ds:border-border\"\n />\n ) : (\n getFileIcon(f.file)\n )}\n\n <div className=\"ds:flex-1 ds:min-w-0\">\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <p className=\"ds:truncate type-label ds:m-0\">{f.file.name}</p>\n {getStatusIcon(f.status)}\n </div>\n <p className=\"type-meta ds:text-muted-foreground ds:m-0 ds:mt-0.5\">\n {formatFileSize(f.file.size, i18n.language, t)}\n {f.status === 'uploading' && (\n <span className=\"ds:ms-[var(--spacing-sm)] ds:text-primary ds:font-medium\">\n {f.progress}%\n </span>\n )}\n {f.status === 'complete' && (\n <span className=\"ds:ms-[var(--spacing-sm)] ds:text-[var(--success)] ds:font-medium\">\n {t('ui.inputs.fileUpload.complete', 'Complete')}\n </span>\n )}\n </p>\n\n {f.status === 'uploading' && (\n <div\n role=\"progressbar\"\n aria-label={f.file.name}\n aria-valuenow={f.progress}\n aria-valuemin={0}\n aria-valuemax={100}\n className=\"ds:mt-[var(--spacing-sm)] ds:h-1.5 ds:w-full ds:rounded-[var(--radius-full)] ds:bg-muted ds:overflow-hidden\"\n >\n <div\n className=\"ds:h-full ds:rounded-[var(--radius-full)] ds:bg-primary ds:transition-[inline-size] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none\"\n style={{ inlineSize: `${f.progress}%` }}\n />\n </div>\n )}\n\n {f.status === 'error' && f.error && (\n <p role=\"alert\" className=\"type-meta ds:text-destructive ds:m-0 ds:mt-[var(--spacing-xs)]\">\n {f.error}\n </p>\n )}\n </div>\n\n {f.status === 'uploading' && (\n <button\n type=\"button\"\n onClick={() => handleCancel(f.id)}\n aria-label={t('ui.inputs.fileUpload.cancel', 'Cancel upload')}\n className={actionButtonVariants()}\n >\n <X aria-hidden=\"true\" className=\"ds:size-4\" />\n </button>\n )}\n {(f.status === 'complete' || f.status === 'pending' || f.status === 'error') && (\n <button\n type=\"button\"\n onClick={() => handleRemove(f.id)}\n aria-label={t('ui.inputs.fileUpload.remove', 'Remove file')}\n className={actionButtonVariants()}\n >\n <X aria-hidden=\"true\" className=\"ds:size-4\" />\n </button>\n )}\n </li>\n ))}\n </ul>\n );\n };\n\n const renderDropzone = () => {\n if (variant === 'button') return null;\n\n const rootProps = getRootProps({\n className: dropzoneVariants({\n isDragActive,\n hasError: hasError ?? false,\n isDisabled: effectiveDisabled ?? false,\n className,\n }),\n tabIndex: effectiveDisabled ? -1 : 0,\n });\n\n return (\n <div\n {...rootProps}\n ref={ref}\n onPaste={handlePaste}\n id={inputId}\n aria-label={t('ui.inputs.fileUpload.dropHere', 'Drop files here or click to browse')}\n aria-describedby={ctx.describedBy || undefined}\n aria-invalid={ctx.invalid || undefined}\n aria-required={ctx.required || undefined}\n data-testid=\"file-upload-dropzone\"\n >\n <input {...getInputProps()} />\n\n <div className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-sm)]\">\n <div className=\"ds:flex ds:items-center ds:justify-center ds:size-14 ds:rounded-[var(--radius-full)] ds:bg-primary/10 ds:text-primary ds:transition-colors ds:duration-[var(--animation-duration)] ds:group-hover:bg-primary/15 ds:motion-reduce:transition-none\">\n {isDragActive ? (\n <CloudUpload aria-hidden=\"true\" className=\"ds:size-7\" />\n ) : (\n <Upload aria-hidden=\"true\" className=\"ds:size-7\" />\n )}\n </div>\n\n <div className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-xs)]\">\n <p className=\"type-label ds:text-foreground ds:text-center ds:m-0\">\n {isDragActive\n ? t('ui.inputs.fileUpload.dropActive', 'Drop files here')\n : t('ui.inputs.fileUpload.dropHere', 'Drop files here or click to browse')}\n </p>\n\n {constraintHints.length > 0 && !isDragActive && (\n <p className=\"type-meta ds:text-muted-foreground ds:text-center ds:m-0\">\n {constraintHints.join(' \\u00b7 ')}\n </p>\n )}\n </div>\n\n {variant === 'both' && !isDragActive && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n open();\n }}\n disabled={effectiveDisabled}\n className={browseButtonVariants({ className: 'ds:mt-[var(--spacing-xs)]' })}\n >\n <Upload aria-hidden=\"true\" className=\"ds:size-4\" />\n {t('ui.inputs.fileUpload.browse', 'Browse files')}\n </button>\n )}\n </div>\n </div>\n );\n };\n\n const renderButton = () => {\n if (variant === 'dropzone') return null;\n\n if (variant === 'button') {\n return (\n <div onPaste={handlePaste} ref={ref}>\n <input {...getInputProps()} />\n <button\n type=\"button\"\n onClick={open}\n disabled={effectiveDisabled}\n className={browseButtonVariants({ className })}\n id={variant === 'button' ? inputId : undefined}\n aria-describedby={variant === 'button' ? (ctx.describedBy || undefined) : undefined}\n aria-invalid={variant === 'button' ? (ctx.invalid || undefined) : undefined}\n aria-required={variant === 'button' ? (ctx.required || undefined) : undefined}\n >\n <Upload aria-hidden=\"true\" className=\"ds:size-4\" />\n {t('ui.inputs.fileUpload.browse', 'Browse files')}\n </button>\n </div>\n );\n }\n\n return null;\n };\n\n return (\n <div data-component=\"file-upload\">\n {renderDropzone()}\n {renderButton()}\n {renderFileList()}\n\n {errorMessages.length > 0 && (\n <div role=\"alert\" className=\"ds:mt-[var(--spacing-sm)] ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n {errorMessages.map((msg, i) => (\n <div key={i} className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <AlertCircle aria-hidden=\"true\" className=\"ds:size-3.5 ds:shrink-0 ds:text-destructive\" />\n <p className=\"type-meta ds:text-destructive ds:m-0\">{msg}</p>\n </div>\n ))}\n </div>\n )}\n\n <span\n ref={statusRef}\n role=\"status\"\n aria-live=\"polite\"\n className=\"ds:sr-only\"\n />\n </div>\n );\n },\n);\n\nFileUpload.displayName = 'FileUpload';\n","import type { AgentAdapter } from '../../agent/types';\n\nexport const fileUploadAgent: AgentAdapter<unknown> = {\n id: 'file-upload',\n capabilities: ['submit', 'dismiss'],\n state: {},\n actions: {},\n domHooks: {\n root: { attr: 'data-component', value: 'file-upload' },\n },\n};\n"],"names":["__iconNode","CloudUpload","createLucideIcon","FileArchive","FileImage","FileSpreadsheet","File","LoaderCircle","Upload","dropzoneVariants","cva","browseButtonVariants","fileItemVariants","actionButtonVariants","generateId","isImageFile","file","getFileIcon","ext","_a","jsx","FileText","FileIcon","getStatusIcon","status","Loader2","CheckCircle2","AlertCircle","UNIT_KEYS","UNIT_FALLBACKS","formatFileSize","bytes","locale","t","value","unitIndex","formatted","unit","mapRejectionCode","code","getExtensionFromName","name","parts","formatAcceptHint","accept","extensions","exts","mimeLabels","mime","FileUpload","forwardRef","maxSize","minSize","maxFiles","multiple","disabled","strictAccept","onDropProp","onUpload","onRemove","onReject","variant","showPreview","className","ref","i18n","useTranslation","ctx","useFormField","fallbackId","useId","effectiveDisabled","hasError","inputId","files","setFiles","useState","rejections","setRejections","abortControllers","useRef","statusRef","filesRef","announceStatus","useCallback","message","validateStrictAccept","mimeMatch","fileExt","extMatch","uploadFile","uploadFileState","controller","prev","f","percent","err","errorMessage","handleDrop","accepted","fileRejections","mapped","r","e","strictRejected","strictAccepted","allRejections","newFiles","nf","getRootProps","getInputProps","isDragActive","open","useDropzone","handleCancel","fileId","handleRemove","removed","validatePastedFiles","pastedFiles","rejected","effectiveMaxFiles","mimeOk","extOk","handlePaste","event","useEffect","constraintHints","useMemo","hints","errorMessages","renderFileList","jsxs","X","renderDropzone","rootProps","renderButton","msg","i","fileUploadAgent"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}