@alfadocs/ui-kit 0.4.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. package/dist/_chunks/accordion-DOmxGEWU.js.map +1 -0
  2. package/dist/_chunks/agenda-card-CalZqycc.js.map +1 -0
  3. package/dist/_chunks/agenda-card.agent-B_R47-c9.js.map +1 -0
  4. package/dist/_chunks/agenda-tray-3ffFDQZC.js.map +1 -0
  5. package/dist/_chunks/ai-prompt-input-DLgY8lrW.js.map +1 -0
  6. package/dist/_chunks/alert-B1sj8Ss0.js.map +1 -0
  7. package/dist/_chunks/apexcharts-theme-BJigns_V.js.map +1 -0
  8. package/dist/_chunks/app-frame-CDJOgPXe.js.map +1 -0
  9. package/dist/_chunks/aspect-ratio-DeSNzASA.js.map +1 -0
  10. package/dist/_chunks/audio-recorder-BdBbU-UK.js.map +1 -0
  11. package/dist/_chunks/audio-visualiser-ByDEFLNm.js.map +1 -0
  12. package/dist/_chunks/autocomplete-D4oUZbsP.js.map +1 -0
  13. package/dist/_chunks/avatar-Dcr6XuDQ.js.map +1 -0
  14. package/dist/_chunks/badge-DKFbntoa.js.map +1 -0
  15. package/dist/_chunks/{balance-cell-renderer-B8zgIM-m.js → balance-cell-renderer-BuExGe6u.js} +2 -2
  16. package/dist/_chunks/balance-cell-renderer-BuExGe6u.js.map +1 -0
  17. package/dist/_chunks/breadcrumb-D1snXjPb.js.map +1 -0
  18. package/dist/_chunks/button-DD_0Xdmr.js.map +1 -0
  19. package/dist/_chunks/button-group-CONver7M.js.map +1 -0
  20. package/dist/_chunks/button.agent-BuGZBktn.js.map +1 -0
  21. package/dist/_chunks/calendar-zy0tUUVG.js.map +1 -0
  22. package/dist/_chunks/card-CWzuTLYE.js.map +1 -0
  23. package/dist/_chunks/chart-BLvFl169.js.map +1 -0
  24. package/dist/_chunks/chat-container-ClzsWXp2.js.map +1 -0
  25. package/dist/_chunks/chat-input-Bov-gkwP.js.map +1 -0
  26. package/dist/_chunks/chat-message-DoAhgUTj.js.map +1 -0
  27. package/dist/_chunks/check-DPdL_Sm7.js.map +1 -0
  28. package/dist/_chunks/{checkbox-CtPM6Rup.js → checkbox-D5EHnB14.js} +53 -46
  29. package/dist/_chunks/checkbox-D5EHnB14.js.map +1 -0
  30. package/dist/_chunks/{checkbox-group-BTdEB6Yo.js → checkbox-group-CarPLDIC.js} +2 -2
  31. package/dist/_chunks/checkbox-group-CarPLDIC.js.map +1 -0
  32. package/dist/_chunks/chevron-down-BX_NP2Yh.js.map +1 -0
  33. package/dist/_chunks/chevron-left-CX1jqD2M.js.map +1 -0
  34. package/dist/_chunks/chevron-right-BrpYejk0.js.map +1 -0
  35. package/dist/_chunks/chevron-up-zOEDrmBB.js.map +1 -0
  36. package/dist/_chunks/chevrons-right-d9MwesPG.js.map +1 -0
  37. package/dist/_chunks/circle-BkqTgYmt.js.map +1 -0
  38. package/dist/_chunks/circle-alert-ChA9opNA.js.map +1 -0
  39. package/dist/_chunks/circle-check-9AeSgJD_.js.map +1 -0
  40. package/dist/_chunks/circle-x-Du2CmjaU.js.map +1 -0
  41. package/dist/_chunks/clock-21AGPWJ5.js.map +1 -0
  42. package/dist/_chunks/collapsible-CuxUBoHJ.js.map +1 -0
  43. package/dist/_chunks/color-picker-CTIcHlDF.js.map +1 -0
  44. package/dist/_chunks/combobox-BLWruOxK.js.map +1 -0
  45. package/dist/_chunks/command-palette-DkL-aW4O.js.map +1 -0
  46. package/dist/_chunks/compose-refs-C0k0tdqF.js.map +1 -0
  47. package/dist/_chunks/contact-card-DNyATxKv.js +137 -0
  48. package/dist/_chunks/contact-card-DNyATxKv.js.map +1 -0
  49. package/dist/_chunks/copy-B00HK7tj.js.map +1 -0
  50. package/dist/_chunks/createLucideIcon-CrFbzy84.js.map +1 -0
  51. package/dist/_chunks/date-picker-B1PO1ZQP.js.map +1 -0
  52. package/dist/_chunks/date-range-picker-mix2nEVC.js.map +1 -0
  53. package/dist/_chunks/date-time-picker-Dnong_BY.js.map +1 -0
  54. package/dist/_chunks/description-list-BYA77Yud.js.map +1 -0
  55. package/dist/_chunks/dialog-W8uDfXD8.js.map +1 -0
  56. package/dist/_chunks/dropdown-menu-dyV7gHh_.js.map +1 -0
  57. package/dist/_chunks/ellipsis-rgGdiK_9.js.map +1 -0
  58. package/dist/_chunks/empty-state-3CLJIXSj.js.map +1 -0
  59. package/dist/_chunks/eye-off-xEXDAh5z.js.map +1 -0
  60. package/dist/_chunks/file-text-DSNuv2B8.js.map +1 -0
  61. package/dist/_chunks/file-upload-C947ACDK.js.map +1 -0
  62. package/dist/_chunks/flag-DZ6V7-hU.js.map +1 -0
  63. package/dist/_chunks/floating-action-button-C8OYj8mE.js.map +1 -0
  64. package/dist/_chunks/form-field-Bmkeh7WY.js.map +1 -0
  65. package/dist/_chunks/form-field-context-B3APVHKx.js.map +1 -0
  66. package/dist/_chunks/freemium-paywall-CrVefV0M.js.map +1 -0
  67. package/dist/_chunks/globe-BkEFMNSg.js.map +1 -0
  68. package/dist/_chunks/group-options-BvKhQ3xb.js.map +1 -0
  69. package/dist/_chunks/header-D0ULgQl3.js.map +1 -0
  70. package/dist/_chunks/icon-button-C4CGcYuz.js.map +1 -0
  71. package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +1 -0
  72. package/dist/_chunks/index-4xgbg-sn.js.map +1 -0
  73. package/dist/_chunks/index-CJE9uQmb.js.map +1 -0
  74. package/dist/_chunks/index-CeY1nNvd.js.map +1 -0
  75. package/dist/_chunks/index-D2ZczOXr.js.map +1 -0
  76. package/dist/_chunks/info-B9XNKn05.js.map +1 -0
  77. package/dist/_chunks/input-surface-u4QB0lxe.js.map +1 -0
  78. package/dist/_chunks/isSameDay-ecuM8PBB.js.map +1 -0
  79. package/dist/_chunks/isSameMonth-5wNF2f4I.js.map +1 -0
  80. package/dist/_chunks/kbd-Cglkd7CY.js.map +1 -0
  81. package/dist/_chunks/key-value-pair-CgWvAIGb.js.map +1 -0
  82. package/dist/_chunks/leo-sidebar-BWECDYpu.js.map +1 -0
  83. package/dist/_chunks/link-BcYW1eNM.js.map +1 -0
  84. package/dist/_chunks/list-qP6p0NTw.js.map +1 -0
  85. package/dist/_chunks/live-region-C41SO3cA.js.map +1 -0
  86. package/dist/_chunks/log-out-616hnn2-.js.map +1 -0
  87. package/dist/_chunks/logo-_Z-jLq80.js.map +1 -0
  88. package/dist/_chunks/mail-C8irm52s.js.map +1 -0
  89. package/dist/_chunks/matrix-rain-CRPMXcVx.js.map +1 -0
  90. package/dist/_chunks/message-card-DjvsB_3U.js.map +1 -0
  91. package/dist/_chunks/message-card.agent-4IeIgrnJ.js.map +1 -0
  92. package/dist/_chunks/message-tray-BbnAzlLH.js.map +1 -0
  93. package/dist/_chunks/multi-select-wqqrgjUQ.js.map +1 -0
  94. package/dist/_chunks/navigation-menu-ClbHeawy.js.map +1 -0
  95. package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +1 -0
  96. package/dist/_chunks/notification-card-uTPEvAQS.js.map +1 -0
  97. package/dist/_chunks/notification-card.agent-Rqt3ofk9.js.map +1 -0
  98. package/dist/_chunks/notification-tray-PGtMqXbP.js.map +1 -0
  99. package/dist/_chunks/number-input-Q7wkHnvQ.js.map +1 -0
  100. package/dist/_chunks/otp-input-C9gUByF0.js.map +1 -0
  101. package/dist/_chunks/pagination-3AC4zTsi.js.map +1 -0
  102. package/dist/_chunks/password-input-C4LmjIH1.js.map +1 -0
  103. package/dist/_chunks/patient-shell-IhMULVrt.js.map +1 -0
  104. package/dist/_chunks/payment-form-B_BdHwjb.js.map +1 -0
  105. package/dist/_chunks/pdf-viewer-CZIfY08H.js.map +1 -0
  106. package/dist/_chunks/phone-input-CSHJOJ13.js.map +1 -0
  107. package/dist/_chunks/plus-CYKNmfuA.js.map +1 -0
  108. package/dist/_chunks/popover-DekUKNBk.js.map +1 -0
  109. package/dist/_chunks/printer-CeVEWfQq.js.map +1 -0
  110. package/dist/_chunks/privacy-lock-BKsI6ReN.js.map +1 -0
  111. package/dist/_chunks/progress-C11tqhoI.js.map +1 -0
  112. package/dist/_chunks/purify.es-DpIUMBYC.js.map +1 -0
  113. package/dist/_chunks/radio-DvF59ThA.js.map +1 -0
  114. package/dist/_chunks/radio-group-Cz1a4QCA.js.map +1 -0
  115. package/dist/_chunks/react-day-picker-C04L_28V.js.map +1 -0
  116. package/dist/_chunks/recaptcha-widget-NyfOfLII.js.map +1 -0
  117. package/dist/_chunks/registry-C9nwlNyL.js.map +1 -0
  118. package/dist/_chunks/resizable-mpXXyIsN.js.map +1 -0
  119. package/dist/_chunks/rich-text-editor-C7TCIlQO.js.map +1 -0
  120. package/dist/_chunks/safe-image-src-DstKgCo7.js.map +1 -0
  121. package/dist/_chunks/scroll-area-DEDU-lp-.js.map +1 -0
  122. package/dist/_chunks/search-BonnQsHv.js.map +1 -0
  123. package/dist/_chunks/search-bar-BTDfgYtg.js.map +1 -0
  124. package/dist/_chunks/search-input-CdJIEjFo.js.map +1 -0
  125. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +1 -0
  126. package/dist/_chunks/select-BOU_Osnf.js.map +1 -0
  127. package/dist/_chunks/send-CySZIRPJ.js.map +1 -0
  128. package/dist/_chunks/separator-CYU_bGFn.js.map +1 -0
  129. package/dist/_chunks/sheet-BAg7GY9j.js.map +1 -0
  130. package/dist/_chunks/sidebar-Bx3wCDyy.js.map +1 -0
  131. package/dist/_chunks/sign-in-with-alfadocs-button-B9UrqOqH.js.map +1 -0
  132. package/dist/_chunks/signature-capture-DjMlFOzS.js.map +1 -0
  133. package/dist/_chunks/skeleton-CZbwyJAA.js.map +1 -0
  134. package/dist/_chunks/skip-link-DmZ3c6cb.js.map +1 -0
  135. package/dist/_chunks/slider-BT2bZWsy.js.map +1 -0
  136. package/dist/_chunks/slot-grid-CgpYgBkW.js.map +1 -0
  137. package/dist/_chunks/sparkline-_gy8aJDG.js.map +1 -0
  138. package/dist/_chunks/spinner-DLaYfLPl.js.map +1 -0
  139. package/dist/_chunks/square-CZoGU14v.js.map +1 -0
  140. package/dist/_chunks/square-check-big-Jr-0202D.js.map +1 -0
  141. package/dist/_chunks/stat-B9PHSPbN.js.map +1 -0
  142. package/dist/_chunks/stepper-C-sIpRRU.js.map +1 -0
  143. package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js.map +1 -0
  144. package/dist/_chunks/stepper-calendar-BLOJUE0-.js.map +1 -0
  145. package/dist/_chunks/stepper-progress-jFY8BSf7.js.map +1 -0
  146. package/dist/_chunks/streaming-text-BgjCTVOw.js.map +1 -0
  147. package/dist/_chunks/suggestion-chip-C4Jz0LrM.js.map +1 -0
  148. package/dist/_chunks/suggestion-chip.agent-6sNWFj7m.js.map +1 -0
  149. package/dist/_chunks/switch-C0psfIQF.js.map +1 -0
  150. package/dist/_chunks/tabs-BZQy_Rmb.js.map +1 -0
  151. package/dist/_chunks/tag-DuLMjRbF.js.map +1 -0
  152. package/dist/_chunks/task-card-Dw_ZJDL8.js.map +1 -0
  153. package/dist/_chunks/task-card.agent-CUPKYd7w.js.map +1 -0
  154. package/dist/_chunks/task-tray-XlIW9ueh.js.map +1 -0
  155. package/dist/_chunks/text-area-CO9Dz0qX.js.map +1 -0
  156. package/dist/_chunks/text-input-DZwt9L8H.js.map +1 -0
  157. package/dist/_chunks/theme-root-CSKD5ZRm.js.map +1 -0
  158. package/dist/_chunks/theme-toggle-B3UR6ouK.js.map +1 -0
  159. package/dist/_chunks/time-picker-DvPUmHH-.js.map +1 -0
  160. package/dist/_chunks/timeline-BvmnQadS.js.map +1 -0
  161. package/dist/_chunks/timestamp-BV2lC-wV.js.map +1 -0
  162. package/dist/_chunks/toast.agent-DihA6MON.js.map +1 -0
  163. package/dist/_chunks/tooltip-DHik5yRI.js.map +1 -0
  164. package/dist/_chunks/tooth-scheme-3mITSXiZ.js.map +1 -0
  165. package/dist/_chunks/transaction-chip-DE6DITun.js.map +1 -0
  166. package/dist/_chunks/transcript-panel-Bx5ANMsv.js.map +1 -0
  167. package/dist/_chunks/triangle-alert-CBPUIzQo.js.map +1 -0
  168. package/dist/_chunks/typing-indicator-BZ5jXZPn.js.map +1 -0
  169. package/dist/_chunks/use-debounced-callback-BisrB-Fq.js.map +1 -0
  170. package/dist/_chunks/use-direction-D6rvvG9G.js.map +1 -0
  171. package/dist/_chunks/use-locale-BuXR_Zl9.js.map +1 -0
  172. package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +1 -0
  173. package/dist/_chunks/use-theme-B1cwAXJR.js.map +1 -0
  174. package/dist/_chunks/user-CPxpqFjJ.js.map +1 -0
  175. package/dist/_chunks/visually-hidden-BHxEUGyT.js.map +1 -0
  176. package/dist/_chunks/warning-stack-VygGHSqC.js.map +1 -0
  177. package/dist/_chunks/workflow-map-Bi5liGzo.js.map +1 -0
  178. package/dist/_chunks/x-CCcI3eJp.js.map +1 -0
  179. package/dist/agent/index.d.ts.map +1 -0
  180. package/dist/agent/registry.d.ts.map +1 -0
  181. package/dist/agent/types.d.ts.map +1 -0
  182. package/dist/agent-catalog.json +15 -1
  183. package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +1 -0
  184. package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +1 -0
  185. package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +1 -0
  186. package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +1 -0
  187. package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +1 -0
  188. package/dist/brand/logo-asset/index.d.ts.map +1 -0
  189. package/dist/components/_shared/calendar-chevron.d.ts.map +1 -0
  190. package/dist/components/_shared/compose-refs.d.ts.map +1 -0
  191. package/dist/components/_shared/date-locale.d.ts.map +1 -0
  192. package/dist/components/_shared/date-picker-variants.d.ts.map +1 -0
  193. package/dist/components/_shared/date-utils.d.ts.map +1 -0
  194. package/dist/components/_shared/group-options.d.ts.map +1 -0
  195. package/dist/components/_shared/index.d.ts.map +1 -0
  196. package/dist/components/_shared/input-surface.d.ts.map +1 -0
  197. package/dist/components/_shared/normalize-diacritics.d.ts.map +1 -0
  198. package/dist/components/_shared/option.d.ts.map +1 -0
  199. package/dist/components/_shared/safe-html.d.ts.map +1 -0
  200. package/dist/components/_shared/safe-image-src.d.ts.map +1 -0
  201. package/dist/components/_shared/stepper.d.ts.map +1 -0
  202. package/dist/components/_shared/time.d.ts.map +1 -0
  203. package/dist/components/_shared/use-debounced-callback.d.ts.map +1 -0
  204. package/dist/components/_shared/use-direction.d.ts.map +1 -0
  205. package/dist/components/_shared/use-focus-trap.d.ts.map +1 -0
  206. package/dist/components/_shared/use-neutralize-hidden-focus.d.ts.map +1 -0
  207. package/dist/components/accordion/accordion.agent.d.ts.map +1 -0
  208. package/dist/components/accordion/accordion.d.ts.map +1 -0
  209. package/dist/components/accordion/index.d.ts.map +1 -0
  210. package/dist/components/accordion/index.js.map +1 -0
  211. package/dist/components/agenda-card/agenda-card.agent.d.ts.map +1 -0
  212. package/dist/components/agenda-card/agenda-card.d.ts.map +1 -0
  213. package/dist/components/agenda-card/index.d.ts.map +1 -0
  214. package/dist/components/agenda-card/index.js.map +1 -0
  215. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -0
  216. package/dist/components/agenda-tray/agenda-tray.d.ts.map +1 -0
  217. package/dist/components/agenda-tray/index.d.ts.map +1 -0
  218. package/dist/components/agenda-tray/index.js.map +1 -0
  219. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -0
  220. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -0
  221. package/dist/components/ai-prompt-input/index.d.ts.map +1 -0
  222. package/dist/components/ai-prompt-input/index.js.map +1 -0
  223. package/dist/components/alert/alert.d.ts.map +1 -0
  224. package/dist/components/alert/index.d.ts.map +1 -0
  225. package/dist/components/alert/index.js.map +1 -0
  226. package/dist/components/app-frame/app-frame.d.ts.map +1 -0
  227. package/dist/components/app-frame/index.d.ts.map +1 -0
  228. package/dist/components/app-frame/index.js.map +1 -0
  229. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  230. package/dist/components/aspect-ratio/index.d.ts.map +1 -0
  231. package/dist/components/aspect-ratio/index.js.map +1 -0
  232. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -0
  233. package/dist/components/audio-recorder/audio-recorder.d.ts.map +1 -0
  234. package/dist/components/audio-recorder/index.d.ts.map +1 -0
  235. package/dist/components/audio-recorder/index.js.map +1 -0
  236. package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +1 -0
  237. package/dist/components/audio-visualiser/index.d.ts.map +1 -0
  238. package/dist/components/audio-visualiser/index.js.map +1 -0
  239. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -0
  240. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -0
  241. package/dist/components/autocomplete/index.d.ts.map +1 -0
  242. package/dist/components/autocomplete/index.js.map +1 -0
  243. package/dist/components/avatar/avatar.d.ts.map +1 -0
  244. package/dist/components/avatar/index.d.ts.map +1 -0
  245. package/dist/components/avatar/index.js.map +1 -0
  246. package/dist/components/badge/badge.d.ts.map +1 -0
  247. package/dist/components/badge/index.d.ts.map +1 -0
  248. package/dist/components/badge/index.js.map +1 -0
  249. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -0
  250. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  251. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  252. package/dist/components/breadcrumb/index.js.map +1 -0
  253. package/dist/components/button/button.agent.d.ts.map +1 -0
  254. package/dist/components/button/button.d.ts.map +1 -0
  255. package/dist/components/button/icon-button.d.ts.map +1 -0
  256. package/dist/components/button/index.d.ts.map +1 -0
  257. package/dist/components/button/index.js.map +1 -0
  258. package/dist/components/button-group/button-group.d.ts.map +1 -0
  259. package/dist/components/button-group/index.d.ts.map +1 -0
  260. package/dist/components/button-group/index.js.map +1 -0
  261. package/dist/components/calendar/calendar.agent.d.ts.map +1 -0
  262. package/dist/components/calendar/calendar.d.ts.map +1 -0
  263. package/dist/components/calendar/contrast-warning.d.ts.map +1 -0
  264. package/dist/components/calendar/index.d.ts.map +1 -0
  265. package/dist/components/calendar/index.js.map +1 -0
  266. package/dist/components/card/card.d.ts.map +1 -0
  267. package/dist/components/card/index.d.ts.map +1 -0
  268. package/dist/components/card/index.js.map +1 -0
  269. package/dist/components/chart/chart.agent.d.ts.map +1 -0
  270. package/dist/components/chart/chart.d.ts.map +1 -0
  271. package/dist/components/chart/index.d.ts.map +1 -0
  272. package/dist/components/chart/index.js.map +1 -0
  273. package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -0
  274. package/dist/components/chat-container/chat-container.d.ts.map +1 -0
  275. package/dist/components/chat-container/index.d.ts.map +1 -0
  276. package/dist/components/chat-container/index.js.map +1 -0
  277. package/dist/components/chat-input/chat-input.agent.d.ts.map +1 -0
  278. package/dist/components/chat-input/chat-input.d.ts.map +1 -0
  279. package/dist/components/chat-input/index.d.ts.map +1 -0
  280. package/dist/components/chat-input/index.js.map +1 -0
  281. package/dist/components/chat-message/chat-message.d.ts.map +1 -0
  282. package/dist/components/chat-message/index.d.ts.map +1 -0
  283. package/dist/components/chat-message/index.js.map +1 -0
  284. package/dist/components/checkbox/checkbox-group-context.d.ts.map +1 -0
  285. package/dist/components/checkbox/checkbox.agent.d.ts.map +1 -0
  286. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  287. package/dist/components/checkbox/index.d.ts.map +1 -0
  288. package/dist/components/checkbox/index.js +1 -1
  289. package/dist/components/checkbox/index.js.map +1 -0
  290. package/dist/components/checkbox-group/checkbox-group.agent.d.ts.map +1 -0
  291. package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -0
  292. package/dist/components/checkbox-group/index.d.ts.map +1 -0
  293. package/dist/components/checkbox-group/index.js +1 -1
  294. package/dist/components/checkbox-group/index.js.map +1 -0
  295. package/dist/components/collapsible/collapsible.agent.d.ts.map +1 -0
  296. package/dist/components/collapsible/collapsible.d.ts.map +1 -0
  297. package/dist/components/collapsible/index.d.ts.map +1 -0
  298. package/dist/components/collapsible/index.js.map +1 -0
  299. package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -0
  300. package/dist/components/color-picker/color-picker.d.ts.map +1 -0
  301. package/dist/components/color-picker/color-utils.d.ts.map +1 -0
  302. package/dist/components/color-picker/index.d.ts.map +1 -0
  303. package/dist/components/color-picker/index.js.map +1 -0
  304. package/dist/components/color-picker/palettes.d.ts.map +1 -0
  305. package/dist/components/combobox/combobox.agent.d.ts.map +1 -0
  306. package/dist/components/combobox/combobox.d.ts.map +1 -0
  307. package/dist/components/combobox/index.d.ts.map +1 -0
  308. package/dist/components/combobox/index.js.map +1 -0
  309. package/dist/components/command-palette/command-palette.agent.d.ts.map +1 -0
  310. package/dist/components/command-palette/command-palette.d.ts.map +1 -0
  311. package/dist/components/command-palette/index.d.ts.map +1 -0
  312. package/dist/components/command-palette/index.js.map +1 -0
  313. package/dist/components/contact-card/contact-card.d.ts +74 -0
  314. package/dist/components/contact-card/contact-card.d.ts.map +1 -0
  315. package/dist/components/contact-card/index.d.ts +3 -0
  316. package/dist/components/contact-card/index.d.ts.map +1 -0
  317. package/dist/components/contact-card/index.js +5 -0
  318. package/dist/components/contact-card/index.js.map +1 -0
  319. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -0
  320. package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +1 -0
  321. package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +1 -0
  322. package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +1 -0
  323. package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +1 -0
  324. package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +1 -0
  325. package/dist/components/data-table/cell-renderers/status-cell-renderer.d.ts.map +1 -0
  326. package/dist/components/data-table/cell-renderers/tag-list-cell-renderer.d.ts.map +1 -0
  327. package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +1 -0
  328. package/dist/components/data-table/cell-renderers/user-cell-renderer.d.ts.map +1 -0
  329. package/dist/components/data-table/data-table.agent.d.ts.map +1 -0
  330. package/dist/components/data-table/data-table.d.ts.map +1 -0
  331. package/dist/components/data-table/hooks/use-total-row.d.ts.map +1 -0
  332. package/dist/components/data-table/index.d.ts.map +1 -0
  333. package/dist/components/data-table/index.js +1 -1
  334. package/dist/components/data-table/index.js.map +1 -0
  335. package/dist/components/data-table/toolbar.d.ts.map +1 -0
  336. package/dist/components/date-picker/date-picker.agent.d.ts.map +1 -0
  337. package/dist/components/date-picker/date-picker.d.ts.map +1 -0
  338. package/dist/components/date-picker/index.d.ts.map +1 -0
  339. package/dist/components/date-picker/index.js.map +1 -0
  340. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -0
  341. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -0
  342. package/dist/components/date-range-picker/index.d.ts.map +1 -0
  343. package/dist/components/date-range-picker/index.js.map +1 -0
  344. package/dist/components/date-time-picker/date-time-picker.agent.d.ts.map +1 -0
  345. package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -0
  346. package/dist/components/date-time-picker/index.d.ts.map +1 -0
  347. package/dist/components/date-time-picker/index.js.map +1 -0
  348. package/dist/components/description-list/description-list.d.ts.map +1 -0
  349. package/dist/components/description-list/index.d.ts.map +1 -0
  350. package/dist/components/description-list/index.js.map +1 -0
  351. package/dist/components/dialog/dialog.agent.d.ts.map +1 -0
  352. package/dist/components/dialog/dialog.d.ts.map +1 -0
  353. package/dist/components/dialog/index.d.ts.map +1 -0
  354. package/dist/components/dialog/index.js.map +1 -0
  355. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +1 -0
  356. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  357. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  358. package/dist/components/dropdown-menu/index.js.map +1 -0
  359. package/dist/components/empty-state/empty-state.d.ts.map +1 -0
  360. package/dist/components/empty-state/index.d.ts.map +1 -0
  361. package/dist/components/empty-state/index.js.map +1 -0
  362. package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -0
  363. package/dist/components/file-upload/file-upload.d.ts.map +1 -0
  364. package/dist/components/file-upload/index.d.ts.map +1 -0
  365. package/dist/components/file-upload/index.js.map +1 -0
  366. package/dist/components/flag/flag.d.ts.map +1 -0
  367. package/dist/components/flag/index.d.ts.map +1 -0
  368. package/dist/components/flag/index.js.map +1 -0
  369. package/dist/components/floating-action-button/floating-action-button.d.ts.map +1 -0
  370. package/dist/components/floating-action-button/index.d.ts.map +1 -0
  371. package/dist/components/floating-action-button/index.js.map +1 -0
  372. package/dist/components/form-field/form-field-context.d.ts.map +1 -0
  373. package/dist/components/form-field/form-field.d.ts.map +1 -0
  374. package/dist/components/form-field/index.d.ts.map +1 -0
  375. package/dist/components/form-field/index.js.map +1 -0
  376. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -0
  377. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -0
  378. package/dist/components/freemium-paywall/index.d.ts.map +1 -0
  379. package/dist/components/freemium-paywall/index.js.map +1 -0
  380. package/dist/components/header/header.d.ts.map +1 -0
  381. package/dist/components/header/index.d.ts.map +1 -0
  382. package/dist/components/header/index.js.map +1 -0
  383. package/dist/components/icon-button/index.d.ts.map +1 -0
  384. package/dist/components/icon-button/index.js.map +1 -0
  385. package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -0
  386. package/dist/components/icon-button-group/index.d.ts.map +1 -0
  387. package/dist/components/icon-button-group/index.js.map +1 -0
  388. package/dist/components/index.d.ts +1 -0
  389. package/dist/components/index.d.ts.map +1 -0
  390. package/dist/components/kbd/index.d.ts.map +1 -0
  391. package/dist/components/kbd/index.js.map +1 -0
  392. package/dist/components/kbd/kbd.d.ts.map +1 -0
  393. package/dist/components/key-value-pair/index.d.ts.map +1 -0
  394. package/dist/components/key-value-pair/index.js.map +1 -0
  395. package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -0
  396. package/dist/components/link/index.d.ts.map +1 -0
  397. package/dist/components/link/index.js.map +1 -0
  398. package/dist/components/link/link.d.ts.map +1 -0
  399. package/dist/components/list/index.d.ts.map +1 -0
  400. package/dist/components/list/index.js.map +1 -0
  401. package/dist/components/list/list.agent.d.ts.map +1 -0
  402. package/dist/components/list/list.d.ts.map +1 -0
  403. package/dist/components/live-region/index.d.ts.map +1 -0
  404. package/dist/components/live-region/index.js.map +1 -0
  405. package/dist/components/live-region/live-region.d.ts.map +1 -0
  406. package/dist/components/logo/index.d.ts.map +1 -0
  407. package/dist/components/logo/index.js.map +1 -0
  408. package/dist/components/logo/logo.d.ts.map +1 -0
  409. package/dist/components/matrix-rain/index.d.ts.map +1 -0
  410. package/dist/components/matrix-rain/index.js.map +1 -0
  411. package/dist/components/matrix-rain/matrix-rain.d.ts.map +1 -0
  412. package/dist/components/message-card/index.d.ts.map +1 -0
  413. package/dist/components/message-card/index.js.map +1 -0
  414. package/dist/components/message-card/message-card.agent.d.ts.map +1 -0
  415. package/dist/components/message-card/message-card.d.ts.map +1 -0
  416. package/dist/components/message-tray/index.d.ts.map +1 -0
  417. package/dist/components/message-tray/index.js.map +1 -0
  418. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -0
  419. package/dist/components/message-tray/message-tray.d.ts.map +1 -0
  420. package/dist/components/multi-select/index.d.ts.map +1 -0
  421. package/dist/components/multi-select/index.js.map +1 -0
  422. package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -0
  423. package/dist/components/multi-select/multi-select.d.ts.map +1 -0
  424. package/dist/components/navigation-menu/index.d.ts.map +1 -0
  425. package/dist/components/navigation-menu/index.js.map +1 -0
  426. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -0
  427. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -0
  428. package/dist/components/notification-card/index.d.ts.map +1 -0
  429. package/dist/components/notification-card/index.js.map +1 -0
  430. package/dist/components/notification-card/notification-card.agent.d.ts.map +1 -0
  431. package/dist/components/notification-card/notification-card.d.ts.map +1 -0
  432. package/dist/components/notification-tray/index.d.ts.map +1 -0
  433. package/dist/components/notification-tray/index.js.map +1 -0
  434. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -0
  435. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -0
  436. package/dist/components/number-input/index.d.ts.map +1 -0
  437. package/dist/components/number-input/index.js.map +1 -0
  438. package/dist/components/number-input/number-input.agent.d.ts.map +1 -0
  439. package/dist/components/number-input/number-input.d.ts.map +1 -0
  440. package/dist/components/number-input/use-locale-number.d.ts.map +1 -0
  441. package/dist/components/otp-input/index.d.ts.map +1 -0
  442. package/dist/components/otp-input/index.js.map +1 -0
  443. package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -0
  444. package/dist/components/otp-input/otp-input.d.ts.map +1 -0
  445. package/dist/components/pagination/index.d.ts.map +1 -0
  446. package/dist/components/pagination/index.js.map +1 -0
  447. package/dist/components/pagination/pagination.agent.d.ts.map +1 -0
  448. package/dist/components/pagination/pagination.d.ts.map +1 -0
  449. package/dist/components/password-input/index.d.ts.map +1 -0
  450. package/dist/components/password-input/index.js.map +1 -0
  451. package/dist/components/password-input/password-input.agent.d.ts.map +1 -0
  452. package/dist/components/password-input/password-input.d.ts.map +1 -0
  453. package/dist/components/payment-form/index.d.ts.map +1 -0
  454. package/dist/components/payment-form/index.js.map +1 -0
  455. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -0
  456. package/dist/components/payment-form/payment-form.d.ts.map +1 -0
  457. package/dist/components/pdf-viewer/index.d.ts.map +1 -0
  458. package/dist/components/pdf-viewer/index.js.map +1 -0
  459. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -0
  460. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -0
  461. package/dist/components/phone-input/index.d.ts.map +1 -0
  462. package/dist/components/phone-input/index.js.map +1 -0
  463. package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -0
  464. package/dist/components/phone-input/phone-input.d.ts.map +1 -0
  465. package/dist/components/popover/index.d.ts.map +1 -0
  466. package/dist/components/popover/index.js.map +1 -0
  467. package/dist/components/popover/popover.agent.d.ts.map +1 -0
  468. package/dist/components/popover/popover.d.ts.map +1 -0
  469. package/dist/components/privacy-lock/index.d.ts.map +1 -0
  470. package/dist/components/privacy-lock/index.js.map +1 -0
  471. package/dist/components/privacy-lock/privacy-lock.agent.d.ts.map +1 -0
  472. package/dist/components/privacy-lock/privacy-lock.d.ts.map +1 -0
  473. package/dist/components/progress/index.d.ts.map +1 -0
  474. package/dist/components/progress/index.js.map +1 -0
  475. package/dist/components/progress/progress.agent.d.ts.map +1 -0
  476. package/dist/components/progress/progress.d.ts.map +1 -0
  477. package/dist/components/radio/index.d.ts.map +1 -0
  478. package/dist/components/radio/index.js.map +1 -0
  479. package/dist/components/radio-group/index.d.ts.map +1 -0
  480. package/dist/components/radio-group/index.js.map +1 -0
  481. package/dist/components/radio-group/radio-group-context.d.ts.map +1 -0
  482. package/dist/components/radio-group/radio-group.agent.d.ts.map +1 -0
  483. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  484. package/dist/components/radio-group/radio.d.ts.map +1 -0
  485. package/dist/components/recaptcha-widget/index.d.ts.map +1 -0
  486. package/dist/components/recaptcha-widget/index.js.map +1 -0
  487. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -0
  488. package/dist/components/recaptcha-widget/recaptcha-widget.d.ts.map +1 -0
  489. package/dist/components/resizable/index.d.ts.map +1 -0
  490. package/dist/components/resizable/index.js.map +1 -0
  491. package/dist/components/resizable/resizable-context.d.ts.map +1 -0
  492. package/dist/components/resizable/resizable.agent.d.ts.map +1 -0
  493. package/dist/components/resizable/resizable.d.ts.map +1 -0
  494. package/dist/components/rich-text-editor/index.d.ts.map +1 -0
  495. package/dist/components/rich-text-editor/index.js.map +1 -0
  496. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -0
  497. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -0
  498. package/dist/components/scroll-area/index.d.ts.map +1 -0
  499. package/dist/components/scroll-area/index.js.map +1 -0
  500. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -0
  501. package/dist/components/search-bar/index.d.ts.map +1 -0
  502. package/dist/components/search-bar/index.js.map +1 -0
  503. package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -0
  504. package/dist/components/search-bar/search-bar.d.ts.map +1 -0
  505. package/dist/components/search-input/index.d.ts.map +1 -0
  506. package/dist/components/search-input/index.js.map +1 -0
  507. package/dist/components/search-input/search-input.agent.d.ts.map +1 -0
  508. package/dist/components/search-input/search-input.d.ts.map +1 -0
  509. package/dist/components/select/index.d.ts.map +1 -0
  510. package/dist/components/select/index.js.map +1 -0
  511. package/dist/components/select/select.agent.d.ts.map +1 -0
  512. package/dist/components/select/select.d.ts.map +1 -0
  513. package/dist/components/separator/index.d.ts.map +1 -0
  514. package/dist/components/separator/index.js.map +1 -0
  515. package/dist/components/separator/separator.d.ts.map +1 -0
  516. package/dist/components/sheet/index.d.ts.map +1 -0
  517. package/dist/components/sheet/index.js.map +1 -0
  518. package/dist/components/sheet/sheet.agent.d.ts.map +1 -0
  519. package/dist/components/sheet/sheet.d.ts.map +1 -0
  520. package/dist/components/sidebar/index.d.ts.map +1 -0
  521. package/dist/components/sidebar/index.js.map +1 -0
  522. package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -0
  523. package/dist/components/sidebar/sidebar.d.ts.map +1 -0
  524. package/dist/components/sign-in-with-alfadocs-button/index.d.ts.map +1 -0
  525. package/dist/components/sign-in-with-alfadocs-button/index.js.map +1 -0
  526. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +1 -0
  527. package/dist/components/signature-capture/index.d.ts.map +1 -0
  528. package/dist/components/signature-capture/index.js.map +1 -0
  529. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +1 -0
  530. package/dist/components/signature-capture/signature-capture.d.ts.map +1 -0
  531. package/dist/components/skeleton/index.d.ts.map +1 -0
  532. package/dist/components/skeleton/index.js.map +1 -0
  533. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  534. package/dist/components/skip-link/index.d.ts.map +1 -0
  535. package/dist/components/skip-link/index.js.map +1 -0
  536. package/dist/components/skip-link/skip-link.d.ts.map +1 -0
  537. package/dist/components/slider/index.d.ts.map +1 -0
  538. package/dist/components/slider/index.js.map +1 -0
  539. package/dist/components/slider/slider.agent.d.ts.map +1 -0
  540. package/dist/components/slider/slider.d.ts.map +1 -0
  541. package/dist/components/slot-grid/index.d.ts.map +1 -0
  542. package/dist/components/slot-grid/index.js.map +1 -0
  543. package/dist/components/slot-grid/slot-grid.d.ts.map +1 -0
  544. package/dist/components/sparkline/index.d.ts.map +1 -0
  545. package/dist/components/sparkline/index.js.map +1 -0
  546. package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -0
  547. package/dist/components/sparkline/sparkline.d.ts.map +1 -0
  548. package/dist/components/sparkline/use-linear-trend.d.ts.map +1 -0
  549. package/dist/components/spinner/index.d.ts.map +1 -0
  550. package/dist/components/spinner/index.js.map +1 -0
  551. package/dist/components/spinner/spinner.d.ts.map +1 -0
  552. package/dist/components/stat/index.d.ts.map +1 -0
  553. package/dist/components/stat/index.js.map +1 -0
  554. package/dist/components/stat/stat.d.ts.map +1 -0
  555. package/dist/components/stepper-accordion/index.d.ts.map +1 -0
  556. package/dist/components/stepper-accordion/index.js.map +1 -0
  557. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -0
  558. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +1 -0
  559. package/dist/components/stepper-calendar/index.d.ts.map +1 -0
  560. package/dist/components/stepper-calendar/index.js.map +1 -0
  561. package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts.map +1 -0
  562. package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +1 -0
  563. package/dist/components/stepper-progress/index.d.ts.map +1 -0
  564. package/dist/components/stepper-progress/index.js.map +1 -0
  565. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -0
  566. package/dist/components/stepper-progress/stepper-progress.d.ts.map +1 -0
  567. package/dist/components/streaming-text/index.d.ts.map +1 -0
  568. package/dist/components/streaming-text/index.js.map +1 -0
  569. package/dist/components/streaming-text/streaming-text.d.ts.map +1 -0
  570. package/dist/components/suggestion-chip/index.d.ts.map +1 -0
  571. package/dist/components/suggestion-chip/index.js.map +1 -0
  572. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -0
  573. package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +1 -0
  574. package/dist/components/switch/index.d.ts.map +1 -0
  575. package/dist/components/switch/index.js.map +1 -0
  576. package/dist/components/switch/switch.agent.d.ts.map +1 -0
  577. package/dist/components/switch/switch.d.ts.map +1 -0
  578. package/dist/components/tabs/index.d.ts.map +1 -0
  579. package/dist/components/tabs/index.js.map +1 -0
  580. package/dist/components/tabs/tabs.agent.d.ts.map +1 -0
  581. package/dist/components/tabs/tabs.d.ts.map +1 -0
  582. package/dist/components/tag/index.d.ts.map +1 -0
  583. package/dist/components/tag/index.js.map +1 -0
  584. package/dist/components/tag/tag.d.ts.map +1 -0
  585. package/dist/components/task-card/index.d.ts.map +1 -0
  586. package/dist/components/task-card/index.js.map +1 -0
  587. package/dist/components/task-card/task-card.agent.d.ts.map +1 -0
  588. package/dist/components/task-card/task-card.d.ts.map +1 -0
  589. package/dist/components/task-tray/index.d.ts.map +1 -0
  590. package/dist/components/task-tray/index.js.map +1 -0
  591. package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -0
  592. package/dist/components/task-tray/task-tray.d.ts.map +1 -0
  593. package/dist/components/text-area/index.d.ts.map +1 -0
  594. package/dist/components/text-area/index.js.map +1 -0
  595. package/dist/components/text-area/text-area.agent.d.ts.map +1 -0
  596. package/dist/components/text-area/text-area.d.ts.map +1 -0
  597. package/dist/components/text-input/index.d.ts.map +1 -0
  598. package/dist/components/text-input/index.js.map +1 -0
  599. package/dist/components/text-input/text-input.agent.d.ts.map +1 -0
  600. package/dist/components/text-input/text-input.d.ts.map +1 -0
  601. package/dist/components/theme-root/index.d.ts.map +1 -0
  602. package/dist/components/theme-root/index.js.map +1 -0
  603. package/dist/components/theme-root/theme-root.d.ts.map +1 -0
  604. package/dist/components/theme-toggle/index.d.ts.map +1 -0
  605. package/dist/components/theme-toggle/index.js.map +1 -0
  606. package/dist/components/theme-toggle/theme-toggle.agent.d.ts.map +1 -0
  607. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -0
  608. package/dist/components/time-picker/index.d.ts.map +1 -0
  609. package/dist/components/time-picker/index.js.map +1 -0
  610. package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -0
  611. package/dist/components/time-picker/time-picker.d.ts.map +1 -0
  612. package/dist/components/timeline/index.d.ts.map +1 -0
  613. package/dist/components/timeline/index.js.map +1 -0
  614. package/dist/components/timeline/timeline.agent.d.ts.map +1 -0
  615. package/dist/components/timeline/timeline.d.ts.map +1 -0
  616. package/dist/components/timestamp/index.d.ts.map +1 -0
  617. package/dist/components/timestamp/index.js.map +1 -0
  618. package/dist/components/timestamp/timestamp.d.ts.map +1 -0
  619. package/dist/components/toast/index.d.ts.map +1 -0
  620. package/dist/components/toast/index.js.map +1 -0
  621. package/dist/components/toast/toast.agent.d.ts.map +1 -0
  622. package/dist/components/toast/toast.d.ts.map +1 -0
  623. package/dist/components/tooltip/index.d.ts.map +1 -0
  624. package/dist/components/tooltip/index.js.map +1 -0
  625. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  626. package/dist/components/tooth-scheme/index.d.ts.map +1 -0
  627. package/dist/components/tooth-scheme/index.js.map +1 -0
  628. package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -0
  629. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -0
  630. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -0
  631. package/dist/components/transaction-chip/index.d.ts.map +1 -0
  632. package/dist/components/transaction-chip/index.js.map +1 -0
  633. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -0
  634. package/dist/components/transcript-panel/index.d.ts.map +1 -0
  635. package/dist/components/transcript-panel/index.js.map +1 -0
  636. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -0
  637. package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -0
  638. package/dist/components/typing-indicator/index.d.ts.map +1 -0
  639. package/dist/components/typing-indicator/index.js.map +1 -0
  640. package/dist/components/typing-indicator/typing-indicator.d.ts.map +1 -0
  641. package/dist/components/visually-hidden/index.d.ts.map +1 -0
  642. package/dist/components/visually-hidden/index.js.map +1 -0
  643. package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -0
  644. package/dist/components/warning-stack/index.d.ts.map +1 -0
  645. package/dist/components/warning-stack/index.js.map +1 -0
  646. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -0
  647. package/dist/components/workflow/index.d.ts.map +1 -0
  648. package/dist/components/workflow/index.js.map +1 -0
  649. package/dist/components/workflow/workflow-card.d.ts.map +1 -0
  650. package/dist/components/workflow/workflow-editor.d.ts.map +1 -0
  651. package/dist/components/workflow/workflow-map.d.ts.map +1 -0
  652. package/dist/components/workflow/workflow-types.d.ts.map +1 -0
  653. package/dist/components/workflow/workflow.agent.d.ts.map +1 -0
  654. package/dist/hooks/index.d.ts.map +1 -0
  655. package/dist/hooks/index.js.map +1 -0
  656. package/dist/hooks/use-locale.d.ts.map +1 -0
  657. package/dist/hooks/use-media-query.d.ts.map +1 -0
  658. package/dist/hooks/use-prefers-reduced-motion.d.ts.map +1 -0
  659. package/dist/hooks/use-theme.d.ts.map +1 -0
  660. package/dist/i18n/config.d.ts.map +1 -0
  661. package/dist/i18n/config.js +12 -0
  662. package/dist/i18n/config.js.map +1 -0
  663. package/dist/i18n/resources.d.ts +12 -0
  664. package/dist/i18n/resources.d.ts.map +1 -0
  665. package/dist/index.js +357 -355
  666. package/dist/index.js.map +1 -0
  667. package/dist/locales/de.json +4 -0
  668. package/dist/locales/en.json +4 -0
  669. package/dist/locales/it.json +4 -0
  670. package/dist/option/index.js.map +1 -0
  671. package/dist/patterns/leo-assistant/index.d.ts.map +1 -0
  672. package/dist/patterns/leo-assistant/index.js.map +1 -0
  673. package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +1 -0
  674. package/dist/patterns/leo-assistant/leo-embedded.d.ts.map +1 -0
  675. package/dist/patterns/leo-assistant/leo-popout.d.ts.map +1 -0
  676. package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +1 -0
  677. package/dist/patterns/leo-assistant/leo-types.d.ts.map +1 -0
  678. package/dist/patterns/patient-shell/index.d.ts.map +1 -0
  679. package/dist/patterns/patient-shell/index.js.map +1 -0
  680. package/dist/patterns/patient-shell/patient-shell.d.ts.map +1 -0
  681. package/dist/safe-html/index.js.map +1 -0
  682. package/dist/tokens/apexcharts-theme.d.ts.map +1 -0
  683. package/dist/tokens/themes/bridges/stripe-appearance.d.ts.map +1 -0
  684. package/dist/tokens.css +1 -1
  685. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { jsxs as G, jsx as i } from "react/jsx-runtime";
1
+ import { jsxs as G, jsx as r } from "react/jsx-runtime";
2
2
  import { createContext as K, useContext as O, forwardRef as T, useId as A, useState as B, useRef as F, useMemo as H } from "react";
3
- import * as x from "@radix-ui/react-checkbox";
3
+ import * as v from "@radix-ui/react-checkbox";
4
4
  import { c as V } from "./index-D2ZczOXr.js";
5
5
  import { T as W } from "./tooltip-DHik5yRI.js";
6
6
  import { u as C } from "./registry-C9nwlNyL.js";
@@ -25,8 +25,8 @@ const q = {
25
25
  argsType: '{ checked: boolean | "indeterminate" }',
26
26
  descriptionKey: "ui.agent.checkbox.actions.setChecked",
27
27
  description: "Set the checked state to a specific value.",
28
- invoke: (t, a) => {
29
- t.setChecked(a.checked);
28
+ invoke: (t, n) => {
29
+ t.setChecked(n.checked);
30
30
  }
31
31
  },
32
32
  toggle: {
@@ -50,12 +50,12 @@ const q = {
50
50
  description: "Sourced from the id prop."
51
51
  }
52
52
  }
53
- }, v = [
53
+ }, x = [
54
54
  "ds:[stroke-dasharray:1] ds:[stroke-dashoffset:1]",
55
55
  "ds:animate-[checkbox-indicator-draw_var(--animation-duration)_ease-out_forwards]"
56
56
  ].join(" ");
57
57
  function E({ className: t }) {
58
- return /* @__PURE__ */ i(
58
+ return /* @__PURE__ */ r(
59
59
  "svg",
60
60
  {
61
61
  viewBox: "0 0 24 24",
@@ -67,12 +67,12 @@ function E({ className: t }) {
67
67
  "aria-hidden": "true",
68
68
  "data-slot": "checkbox-check-icon",
69
69
  className: t,
70
- children: /* @__PURE__ */ i("path", { pathLength: "1", d: "M5 12l5 5L20 7", className: v })
70
+ children: /* @__PURE__ */ r("path", { pathLength: "1", d: "M5 12l5 5L20 7", className: x })
71
71
  }
72
72
  );
73
73
  }
74
74
  function J({ className: t }) {
75
- return /* @__PURE__ */ i(
75
+ return /* @__PURE__ */ r(
76
76
  "svg",
77
77
  {
78
78
  viewBox: "0 0 24 24",
@@ -83,7 +83,7 @@ function J({ className: t }) {
83
83
  "aria-hidden": "true",
84
84
  "data-slot": "checkbox-indeterminate-icon",
85
85
  className: t,
86
- children: /* @__PURE__ */ i("path", { pathLength: "1", d: "M5 12h14", className: v })
86
+ children: /* @__PURE__ */ r("path", { pathLength: "1", d: "M5 12h14", className: x })
87
87
  }
88
88
  );
89
89
  }
@@ -95,16 +95,20 @@ const Q = V(
95
95
  "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
96
96
  "ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
97
97
  "ds:disabled:cursor-not-allowed ds:disabled:opacity-50",
98
- "ds:data-[state=checked]:bg-primary ds:data-[state=checked]:border-primary ds:data-[state=checked]:text-primary-foreground",
99
- "ds:data-[state=indeterminate]:bg-primary ds:data-[state=indeterminate]:border-primary ds:data-[state=indeterminate]:text-primary-foreground",
98
+ "ds:data-[state=checked]:bg-primary ds:data-[state=checked]:border-primary",
99
+ "ds:data-[state=indeterminate]:bg-primary ds:data-[state=indeterminate]:border-primary",
100
100
  'ds:relative ds:before:absolute ds:before:inset-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[""]'
101
101
  ].join(" "),
102
102
  {
103
103
  variants: {
104
+ // Per-size `mt` centers the box optically on the first line of the
105
+ // label using the type-label line-box height — important when the
106
+ // label wraps, because the wrapper uses `items-start` so children
107
+ // align to the top edge rather than the multi-line block's centre.
104
108
  size: {
105
- sm: "ds:size-3.5",
106
- md: "ds:size-4",
107
- lg: "ds:size-5"
109
+ sm: "ds:size-3.5 ds:mt-[calc((var(--type-label-size)*var(--type-label-line-height)-0.875rem)/2)]",
110
+ md: "ds:size-4 ds:mt-[calc((var(--type-label-size)*var(--type-label-line-height)-1rem)/2)]",
111
+ lg: "ds:size-5 ds:mt-[calc((var(--type-label-size)*var(--type-label-line-height)-1.25rem)/2)]"
108
112
  }
109
113
  },
110
114
  defaultVariants: {
@@ -114,46 +118,49 @@ const Q = V(
114
118
  ), U = T(
115
119
  ({
116
120
  label: t,
117
- checked: a,
121
+ checked: n,
118
122
  onCheckedChange: s,
119
123
  size: m = "md",
120
124
  disabled: y,
121
125
  disabledReason: b,
122
126
  name: w,
123
- value: r,
127
+ value: o,
124
128
  id: f,
125
- className: I,
126
- ...N
127
- }, z) => {
128
- const j = A(), h = f ?? j, e = P(), d = e !== null && r !== void 0, [L, p] = B(a ?? !1), c = a !== void 0, l = d ? e.value.has(r) : c ? a : L, R = d ? () => e.toggle(r) : (o) => {
129
- c || p(o), s == null || s(o);
130
- }, _ = (e == null ? void 0 : e.name) ?? w, u = (e == null ? void 0 : e.disabled) || y, n = F(
129
+ className: z,
130
+ ...I
131
+ }, N) => {
132
+ const j = A(), h = f ?? j, e = P(), c = e !== null && o !== void 0, [L, p] = B(n ?? !1), d = n !== void 0, l = c ? e.value.has(o) : d ? n : L, R = c ? () => e.toggle(o) : (i) => {
133
+ d || p(i), s == null || s(i);
134
+ }, _ = (e == null ? void 0 : e.name) ?? w, u = (e == null ? void 0 : e.disabled) || y, a = F(
131
135
  l ?? !1
132
136
  );
133
- n.current = l ?? !1;
137
+ a.current = l ?? !1;
134
138
  const M = H(
135
139
  () => ({
136
- getChecked: () => n.current,
137
- setChecked: (o) => {
138
- if (d) {
139
- (n.current === !0 || n.current === "indeterminate") !== (o === !0 || o === "indeterminate") && e.toggle(r);
140
+ getChecked: () => a.current,
141
+ setChecked: (i) => {
142
+ if (c) {
143
+ (a.current === !0 || a.current === "indeterminate") !== (i === !0 || i === "indeterminate") && e.toggle(o);
140
144
  return;
141
145
  }
142
- c || p(o), s == null || s(o);
146
+ d || p(i), s == null || s(i);
143
147
  },
144
148
  toggle: () => {
145
- if (d) {
146
- e.toggle(r);
149
+ if (c) {
150
+ e.toggle(o);
147
151
  return;
148
152
  }
149
- const o = !(n.current === !0 || n.current === "indeterminate");
150
- c || p(o), s == null || s(o);
153
+ const i = !(a.current === !0 || a.current === "indeterminate");
154
+ d || p(i), s == null || s(i);
151
155
  }
152
156
  }),
153
- [d, e, r, c, s]
157
+ [c, e, o, d, s]
154
158
  );
155
159
  C(q, M, f);
156
- const k = m === "sm" ? "ds:size-3" : m === "lg" ? "ds:size-4" : "ds:size-3.5", S = [
160
+ const k = [
161
+ "ds:text-primary-foreground",
162
+ m === "sm" ? "ds:size-3" : m === "lg" ? "ds:size-4" : "ds:size-3.5"
163
+ ].join(" "), S = [
157
164
  "type-label ds:text-foreground ds:select-none",
158
165
  u ? "ds:cursor-not-allowed ds:opacity-50" : "ds:cursor-pointer"
159
166
  ].join(" "), g = /* @__PURE__ */ G(
@@ -161,30 +168,30 @@ const Q = V(
161
168
  {
162
169
  "data-component": "checkbox",
163
170
  "data-component-id": f,
164
- "data-option-id": r,
165
- className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]",
171
+ "data-option-id": o,
172
+ className: "ds:inline-flex ds:items-start ds:gap-[var(--spacing-sm)]",
166
173
  children: [
167
- /* @__PURE__ */ i(
168
- x.Root,
174
+ /* @__PURE__ */ r(
175
+ v.Root,
169
176
  {
170
- ref: z,
177
+ ref: N,
171
178
  id: h,
172
179
  checked: l,
173
180
  onCheckedChange: R,
174
181
  disabled: u,
175
182
  "aria-disabled": u || void 0,
176
183
  name: _,
177
- value: r,
178
- className: Q({ size: m, className: I }),
179
- ...N,
180
- children: /* @__PURE__ */ i(x.Indicator, { children: l === "indeterminate" ? /* @__PURE__ */ i(J, { className: k }) : /* @__PURE__ */ i(E, { className: k }) })
184
+ value: o,
185
+ className: Q({ size: m, className: z }),
186
+ ...I,
187
+ children: /* @__PURE__ */ r(v.Indicator, { children: l === "indeterminate" ? /* @__PURE__ */ r(J, { className: k }) : /* @__PURE__ */ r(E, { className: k }) })
181
188
  }
182
189
  ),
183
- /* @__PURE__ */ i("label", { htmlFor: h, className: S, children: t })
190
+ /* @__PURE__ */ r("label", { htmlFor: h, className: S, children: t })
184
191
  ]
185
192
  }
186
193
  );
187
- return u && b ? /* @__PURE__ */ i(W, { label: b, children: g }) : g;
194
+ return u && b ? /* @__PURE__ */ r(W, { label: b, children: g }) : g;
188
195
  }
189
196
  );
190
197
  U.displayName = "Checkbox";
@@ -193,4 +200,4 @@ export {
193
200
  D as a,
194
201
  P as u
195
202
  };
196
- //# sourceMappingURL=checkbox-CtPM6Rup.js.map
203
+ //# sourceMappingURL=checkbox-D5EHnB14.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-D5EHnB14.js","sources":["../../src/components/checkbox/checkbox-group-context.ts","../../src/components/checkbox/checkbox.agent.ts","../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface CheckboxGroupContextShape {\n name?: string;\n value: Set<string>;\n toggle: (itemValue: string) => void;\n disabled: boolean;\n}\n\nexport const CheckboxGroupContext =\n createContext<CheckboxGroupContextShape | null>(null);\n\nexport function useCheckboxGroup(): CheckboxGroupContextShape | null {\n return useContext(CheckboxGroupContext);\n}\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — Checkbox. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { CheckboxHandle } from './checkbox';\n\nexport const checkboxAgent: AgentAdapter<CheckboxHandle> = {\n id: 'checkbox',\n capabilities: ['select_single'],\n state: {\n checked: {\n type: 'boolean | \"indeterminate\"',\n descriptionKey: 'ui.agent.checkbox.state.checked',\n description: 'Current checked state.',\n read: (handle) => handle.getChecked(),\n },\n },\n actions: {\n set_checked: {\n safety: 'write',\n argsType: '{ checked: boolean | \"indeterminate\" }',\n descriptionKey: 'ui.agent.checkbox.actions.setChecked',\n description: 'Set the checked state to a specific value.',\n invoke: (handle, args: { checked: boolean | 'indeterminate' }) => {\n handle.setChecked(args.checked);\n },\n },\n toggle: {\n safety: 'write',\n descriptionKey: 'ui.agent.checkbox.actions.toggle',\n description: 'Flip the checked state between checked and unchecked.',\n invoke: (handle) => {\n handle.toggle();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'checkbox',\n description: 'Marks the Checkbox wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n} from 'react';\nimport * as RadixCheckbox from '@radix-ui/react-checkbox';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useCheckboxGroup } from './checkbox-group-context';\nimport { Tooltip } from '../tooltip';\nimport { useAgentRegistration } from '../../agent';\nimport { checkboxAgent } from './checkbox.agent';\n\n/** Agent-readiness curated handle for Checkbox. */\nexport interface CheckboxHandle {\n getChecked: () => boolean | 'indeterminate';\n setChecked: (checked: boolean | 'indeterminate') => void;\n toggle: () => void;\n}\n\nconst drawClasses = [\n 'ds:[stroke-dasharray:1] ds:[stroke-dashoffset:1]',\n 'ds:animate-[checkbox-indicator-draw_var(--animation-duration)_ease-out_forwards]',\n].join(' ');\n\nfunction CheckIcon({ className }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n data-slot=\"checkbox-check-icon\"\n className={className}\n >\n <path pathLength=\"1\" d=\"M5 12l5 5L20 7\" className={drawClasses} />\n </svg>\n );\n}\n\nfunction IndeterminateIcon({ className }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n aria-hidden=\"true\"\n data-slot=\"checkbox-indeterminate-icon\"\n className={className}\n >\n <path pathLength=\"1\" d=\"M5 12h14\" className={drawClasses} />\n </svg>\n );\n}\n\nconst checkboxVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center ds:shrink-0',\n 'ds:border ds:border-border ds:rounded-[var(--radius-sm)] ds:bg-background',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:data-[state=checked]:bg-primary ds:data-[state=checked]:border-primary',\n 'ds:data-[state=indeterminate]:bg-primary ds:data-[state=indeterminate]:border-primary',\n 'ds:relative ds:before:absolute ds:before:inset-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"]',\n ].join(' '),\n {\n variants: {\n // Per-size `mt` centers the box optically on the first line of the\n // label using the type-label line-box height — important when the\n // label wraps, because the wrapper uses `items-start` so children\n // align to the top edge rather than the multi-line block's centre.\n size: {\n sm: 'ds:size-3.5 ds:mt-[calc((var(--type-label-size)*var(--type-label-line-height)-0.875rem)/2)]',\n md: 'ds:size-4 ds:mt-[calc((var(--type-label-size)*var(--type-label-line-height)-1rem)/2)]',\n lg: 'ds:size-5 ds:mt-[calc((var(--type-label-size)*var(--type-label-line-height)-1.25rem)/2)]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\ntype RadixRootProps = ComponentPropsWithoutRef<typeof RadixCheckbox.Root>;\n\nexport interface CheckboxProps\n extends\n Omit<RadixRootProps, 'checked' | 'onCheckedChange' | 'children'>,\n VariantProps<typeof checkboxVariants> {\n label: string;\n checked?: boolean | 'indeterminate';\n onCheckedChange?: (checked: boolean | 'indeterminate') => void;\n size?: 'sm' | 'md' | 'lg';\n disabledReason?: string;\n value?: string;\n}\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n label,\n checked,\n onCheckedChange,\n size = 'md',\n disabled,\n disabledReason,\n name,\n value,\n id,\n className,\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const checkboxId = id ?? generatedId;\n const group = useCheckboxGroup();\n\n const inGroup = group !== null && value !== undefined;\n const [internalChecked, setInternalChecked] = useState<\n boolean | 'indeterminate'\n >(checked ?? false);\n const isControlled = checked !== undefined;\n const ownChecked = isControlled ? checked : internalChecked;\n const effectiveChecked = inGroup ? group.value.has(value) : ownChecked;\n const effectiveOnChange = inGroup\n ? () => group.toggle(value)\n : (next: boolean | 'indeterminate') => {\n if (!isControlled) setInternalChecked(next);\n onCheckedChange?.(next);\n };\n const effectiveName = group?.name ?? name;\n const effectiveDisabled = group?.disabled || disabled;\n\n const checkedRef = useRef<boolean | 'indeterminate'>(\n effectiveChecked ?? false,\n );\n checkedRef.current = effectiveChecked ?? false;\n\n const agentHandle = useMemo<CheckboxHandle>(\n () => ({\n getChecked: () => checkedRef.current,\n setChecked: (next) => {\n if (inGroup) {\n // Inside a group: toggle implements set via the group context.\n const isOn =\n checkedRef.current === true ||\n checkedRef.current === 'indeterminate';\n const want = next === true || next === 'indeterminate';\n if (isOn !== want) group.toggle(value);\n return;\n }\n if (!isControlled) setInternalChecked(next);\n onCheckedChange?.(next);\n },\n toggle: () => {\n if (inGroup) {\n group.toggle(value);\n return;\n }\n const next =\n checkedRef.current === true ||\n checkedRef.current === 'indeterminate'\n ? false\n : true;\n if (!isControlled) setInternalChecked(next);\n onCheckedChange?.(next);\n },\n }),\n [inGroup, group, value, isControlled, onCheckedChange],\n );\n useAgentRegistration(checkboxAgent, agentHandle, id);\n\n // `text-primary-foreground` lives on the SVG (not the <button> Root) so\n // a legacy consumer rule like `button, input, … { color: inherit }`\n // can't intercept it — the unlayered consumer rule would beat any\n // @layer utilities rule on the button itself, leaving the tick paint\n // (currentColor) inheriting the consumer's body text colour. See\n // styles.css for the matching form-element revert inside [data-component].\n const iconSizeClass = [\n 'ds:text-primary-foreground',\n size === 'sm' ? 'ds:size-3' : size === 'lg' ? 'ds:size-4' : 'ds:size-3.5',\n ].join(' ');\n\n const labelClasses = [\n 'type-label ds:text-foreground ds:select-none',\n effectiveDisabled\n ? 'ds:cursor-not-allowed ds:opacity-50'\n : 'ds:cursor-pointer',\n ].join(' ');\n\n const content = (\n <div\n data-component=\"checkbox\"\n data-component-id={id}\n data-option-id={value}\n className=\"ds:inline-flex ds:items-start ds:gap-[var(--spacing-sm)]\"\n >\n <RadixCheckbox.Root\n ref={ref}\n id={checkboxId}\n checked={effectiveChecked}\n onCheckedChange={effectiveOnChange}\n disabled={effectiveDisabled}\n aria-disabled={effectiveDisabled || undefined}\n name={effectiveName}\n value={value}\n className={checkboxVariants({ size, className })}\n {...props}\n >\n <RadixCheckbox.Indicator>\n {effectiveChecked === 'indeterminate' ? (\n <IndeterminateIcon className={iconSizeClass} />\n ) : (\n <CheckIcon className={iconSizeClass} />\n )}\n </RadixCheckbox.Indicator>\n </RadixCheckbox.Root>\n <label htmlFor={checkboxId} className={labelClasses}>\n {label}\n </label>\n </div>\n );\n\n if (effectiveDisabled && disabledReason) {\n return <Tooltip label={disabledReason}>{content}</Tooltip>;\n }\n\n return content;\n },\n);\n\nCheckbox.displayName = 'Checkbox';\n"],"names":["CheckboxGroupContext","createContext","useCheckboxGroup","useContext","checkboxAgent","handle","args","drawClasses","CheckIcon","className","jsx","IndeterminateIcon","checkboxVariants","cva","Checkbox","forwardRef","label","checked","onCheckedChange","size","disabled","disabledReason","name","value","id","props","ref","generatedId","useId","checkboxId","group","inGroup","internalChecked","setInternalChecked","useState","isControlled","effectiveChecked","effectiveOnChange","next","effectiveName","effectiveDisabled","checkedRef","useRef","agentHandle","useMemo","useAgentRegistration","iconSizeClass","labelClasses","content","jsxs","RadixCheckbox","Tooltip"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as s, jsxs as M } from "react/jsx-runtime";
2
2
  import { forwardRef as T, useId as W, useState as K, useMemo as S, useRef as X, Children as Y, isValidElement as Z } from "react";
3
3
  import { c as V } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as ee } from "react-i18next";
5
- import { C as _, a as se } from "./checkbox-CtPM6Rup.js";
5
+ import { C as _, a as se } from "./checkbox-D5EHnB14.js";
6
6
  import { u as te } from "./registry-C9nwlNyL.js";
7
7
  import { C as ce } from "./circle-alert-ChA9opNA.js";
8
8
  const re = {
@@ -205,4 +205,4 @@ oe.displayName = "CheckboxGroup";
205
205
  export {
206
206
  oe as C
207
207
  };
208
- //# sourceMappingURL=checkbox-group-BTdEB6Yo.js.map
208
+ //# sourceMappingURL=checkbox-group-CarPLDIC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-group-CarPLDIC.js","sources":["../../src/components/checkbox-group/checkbox-group.agent.ts","../../src/components/checkbox-group/checkbox-group.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — CheckboxGroup. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { CheckboxGroupHandle } from './checkbox-group';\n\nexport const checkboxGroupAgent: AgentAdapter<CheckboxGroupHandle> = {\n id: 'checkbox-group',\n capabilities: ['select_multiple'],\n state: {\n selection: {\n type: 'string[]',\n descriptionKey: 'ui.agent.checkboxGroup.state.selection',\n description: 'Values of currently-checked options.',\n read: (handle) => handle.getSelection(),\n },\n },\n actions: {\n set_selection: {\n safety: 'write',\n argsType: '{ ids: string[] }',\n descriptionKey: 'ui.agent.checkboxGroup.actions.setSelection',\n description:\n 'Replace the current selection with the given option values.',\n invoke: (handle, args: { ids: string[] }) => {\n handle.setSelection(args.ids);\n },\n },\n clear_selection: {\n safety: 'destructive',\n descriptionKey: 'ui.agent.checkboxGroup.actions.clearSelection',\n description: 'Uncheck every option in the group.',\n invoke: (handle) => {\n handle.clearSelection();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'checkbox-group',\n description: 'Marks the CheckboxGroup fieldset.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description:\n 'Stable opaque value emitted on each rendered Checkbox child within the group.',\n },\n },\n};\n","import {\n Children,\n forwardRef,\n isValidElement,\n useId,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { AlertCircle } from 'lucide-react';\nimport { Checkbox } from '../checkbox/checkbox';\nimport {\n CheckboxGroupContext,\n type CheckboxGroupContextShape,\n} from '../checkbox/checkbox-group-context';\nimport { useAgentRegistration } from '../../agent';\nimport { checkboxGroupAgent } from './checkbox-group.agent';\n\n/** Agent-readiness curated handle for CheckboxGroup. */\nexport interface CheckboxGroupHandle {\n getSelection: () => string[];\n setSelection: (ids: string[]) => void;\n clearSelection: () => void;\n}\n\nconst checkboxGroupVariants = cva('', {\n variants: {\n orientation: {\n vertical: 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]',\n horizontal:\n 'ds:flex ds:flex-wrap ds:gap-x-[var(--spacing-lg)] ds:gap-y-[var(--spacing-sm)]',\n },\n },\n defaultVariants: { orientation: 'vertical' },\n});\n\nexport interface CheckboxGroupOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface CheckboxGroupProps extends VariantProps<\n typeof checkboxGroupVariants\n> {\n label: string;\n value?: string[];\n onChange?: (value: string[]) => void;\n name?: string;\n /** Stable id, used to address this instance from the agent runtime. */\n id?: string;\n orientation?: 'vertical' | 'horizontal';\n disabled?: boolean;\n min?: number;\n max?: number;\n onConstraintViolation?: (type: 'min' | 'max') => void;\n withSelectAll?: boolean;\n options?: CheckboxGroupOption[];\n error?: string;\n helperText?: string;\n className?: string;\n children?: ReactNode;\n}\n\nfunction collectChildValues(children: ReactNode): string[] {\n const values: string[] = [];\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n const props = child.props as { value?: unknown };\n if (typeof props.value === 'string') values.push(props.value);\n });\n return values;\n}\n\nexport const CheckboxGroup = forwardRef<\n HTMLFieldSetElement,\n CheckboxGroupProps\n>(\n (\n {\n label,\n value: controlledValue,\n onChange,\n name,\n id,\n orientation = 'vertical',\n disabled = false,\n min,\n max,\n onConstraintViolation,\n withSelectAll = false,\n options,\n error,\n helperText,\n className,\n children,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const baseId = useId();\n const helperId = `${baseId}-helper`;\n const errorId = `${baseId}-error`;\n const counterId = `${baseId}-counter`;\n\n const [internalValue, setInternalValue] = useState<string[]>([]);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const valueSet = useMemo(() => new Set(currentValue), [currentValue]);\n\n const [violationMsg, setViolationMsg] = useState<string>('');\n\n const allValues = useMemo<string[]>(\n () =>\n options ? options.map((o) => o.value) : collectChildValues(children),\n [options, children],\n );\n\n const commit = (next: string[]): void => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n };\n\n const currentValueRef = useRef<string[]>(currentValue);\n currentValueRef.current = currentValue;\n\n const agentHandle = useMemo<CheckboxGroupHandle>(\n () => ({\n getSelection: () => currentValueRef.current.slice(),\n setSelection: (ids) => commit(ids),\n clearSelection: () => commit([]),\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isControlled, onChange],\n );\n useAgentRegistration(checkboxGroupAgent, agentHandle, id);\n\n const toggle = (itemValue: string): void => {\n if (valueSet.has(itemValue)) {\n if (typeof min === 'number' && currentValue.length <= min) {\n setViolationMsg(t('ui.inputs.checkboxGroup.minReached', { min }));\n onConstraintViolation?.('min');\n return;\n }\n setViolationMsg('');\n commit(currentValue.filter((v) => v !== itemValue));\n return;\n }\n if (typeof max === 'number' && currentValue.length >= max) {\n setViolationMsg(t('ui.inputs.checkboxGroup.maxReached', { max }));\n onConstraintViolation?.('max');\n return;\n }\n setViolationMsg('');\n commit([...currentValue, itemValue]);\n };\n\n const ctxValue: CheckboxGroupContextShape = {\n name,\n value: valueSet,\n toggle,\n disabled,\n };\n\n const total = allValues.length;\n const count = currentValue.length;\n\n const parentChecked: boolean | 'indeterminate' =\n total === 0 || count === 0\n ? false\n : count >= total\n ? true\n : 'indeterminate';\n\n const handleSelectAll = (): void => {\n if (parentChecked === true) {\n if (typeof min === 'number' && min > 0) {\n setViolationMsg(t('ui.inputs.checkboxGroup.minReached', { min }));\n onConstraintViolation?.('min');\n return;\n }\n commit([]);\n setViolationMsg('');\n return;\n }\n const toCheck =\n typeof max === 'number' ? allValues.slice(0, max) : allValues;\n commit(toCheck);\n setViolationMsg('');\n };\n\n const describedBy =\n [\n helperText ? helperId : null,\n error ? errorId : null,\n total > 0 ? counterId : null,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n\n const resolvedChildren =\n children ??\n (options\n ? options.map((opt) => (\n <Checkbox\n key={opt.value}\n value={opt.value}\n label={opt.label}\n disabled={opt.disabled}\n />\n ))\n : null);\n\n const fieldsetClasses = [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:min-w-0 ds:border-0 ds:p-0 ds:m-0',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <fieldset\n ref={ref}\n id={id}\n className={fieldsetClasses}\n aria-describedby={describedBy}\n aria-invalid={Boolean(error) || undefined}\n data-component=\"checkbox-group\"\n data-component-id={id}\n >\n <legend className=\"type-label ds:text-foreground ds:p-0 ds:mb-[var(--spacing-sm)]\">\n {label}\n </legend>\n {withSelectAll ? (\n <Checkbox\n label={t('ui.inputs.checkboxGroup.selectAll')}\n checked={parentChecked}\n onCheckedChange={handleSelectAll}\n disabled={disabled}\n />\n ) : null}\n <CheckboxGroupContext.Provider value={ctxValue}>\n <div className={checkboxGroupVariants({ orientation })}>\n {resolvedChildren}\n </div>\n </CheckboxGroupContext.Provider>\n {helperText ? (\n <p id={helperId} className=\"type-body-sm ds:text-muted-foreground\">\n {helperText}\n </p>\n ) : null}\n {error ? (\n <p\n id={errorId}\n role=\"alert\"\n className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-body-sm ds:text-destructive\"\n >\n <AlertCircle aria-hidden=\"true\" className=\"ds:size-4 ds:shrink-0\" />\n <span>{error}</span>\n </p>\n ) : null}\n <span\n id={counterId}\n role=\"status\"\n aria-live=\"polite\"\n className=\"ds:sr-only\"\n >\n {total > 0\n ? t('ui.inputs.checkboxGroup.counter', { count, total })\n : ''}\n </span>\n <span role=\"status\" aria-live=\"polite\" className=\"ds:sr-only\">\n {violationMsg}\n </span>\n </fieldset>\n );\n },\n);\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n"],"names":["checkboxGroupAgent","handle","args","checkboxGroupVariants","cva","collectChildValues","children","values","Children","child","isValidElement","props","CheckboxGroup","forwardRef","label","controlledValue","onChange","name","id","orientation","disabled","min","max","onConstraintViolation","withSelectAll","options","error","helperText","className","ref","t","useTranslation","baseId","useId","helperId","errorId","counterId","internalValue","setInternalValue","useState","isControlled","currentValue","valueSet","useMemo","violationMsg","setViolationMsg","allValues","o","commit","next","currentValueRef","useRef","agentHandle","ids","useAgentRegistration","ctxValue","itemValue","v","total","count","parentChecked","handleSelectAll","toCheck","describedBy","resolvedChildren","opt","jsx","Checkbox","fieldsetClasses","jsxs","CheckboxGroupContext","AlertCircle"],"mappings":";;;;;;;AASO,MAAMA,KAAwD;AAAA,EACnE,IAAI;AAAA,EACJ,cAAc,CAAC,iBAAiB;AAAA,EAChC,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACC,MAAWA,EAAO,aAAA;AAAA,IAAa;AAAA,EACxC;AAAA,EAEF,SAAS;AAAA,IACP,eAAe;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,aACE;AAAA,MACF,QAAQ,CAACA,GAAQC,MAA4B;AAC3C,QAAAD,EAAO,aAAaC,EAAK,GAAG;AAAA,MAC9B;AAAA,IAAA;AAAA,IAEF,iBAAiB;AAAA,MACf,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,QAAQ,CAACD,MAAW;AAClB,QAAAA,EAAO,eAAA;AAAA,MACT;AAAA,IAAA;AAAA,EACF;AAAA,EAEF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,IAAA;AAAA,IAEf,YAAY;AAAA,MACV,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,IAEf,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aACE;AAAA,IAAA;AAAA,EACJ;AAEJ,GC7BME,KAAwBC,EAAI,IAAI;AAAA,EACpC,UAAU;AAAA,IACR,aAAa;AAAA,MACX,UAAU;AAAA,MACV,YACE;AAAA,IAAA;AAAA,EACJ;AAAA,EAEF,iBAAiB,EAAE,aAAa,WAAA;AAClC,CAAC;AA8BD,SAASC,GAAmBC,GAA+B;AACzD,QAAMC,IAAmB,CAAA;AACzB,SAAAC,EAAS,QAAQF,GAAU,CAACG,MAAU;AACpC,QAAI,CAACC,EAAeD,CAAK,EAAG;AAC5B,UAAME,IAAQF,EAAM;AACpB,IAAI,OAAOE,EAAM,SAAU,YAAUJ,EAAO,KAAKI,EAAM,KAAK;AAAA,EAC9D,CAAC,GACMJ;AACT;AAEO,MAAMK,KAAgBC;AAAA,EAI3B,CACE;AAAA,IACE,OAAAC;AAAA,IACA,OAAOC;AAAA,IACP,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,IAAAC;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,UAAAC,IAAW;AAAA,IACX,KAAAC;AAAA,IACA,KAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,eAAAC,IAAgB;AAAA,IAChB,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAtB;AAAA,EAAA,GAEFuB,MACG;AACH,UAAM,EAAE,GAAAC,EAAA,IAAMC,GAAA,GACRC,IAASC,EAAA,GACTC,IAAW,GAAGF,CAAM,WACpBG,IAAU,GAAGH,CAAM,UACnBI,IAAY,GAAGJ,CAAM,YAErB,CAACK,GAAeC,CAAgB,IAAIC,EAAmB,CAAA,CAAE,GACzDC,IAAezB,MAAoB,QACnC0B,IAAeD,IAAezB,IAAkBsB,GAEhDK,IAAWC,EAAQ,MAAM,IAAI,IAAIF,CAAY,GAAG,CAACA,CAAY,CAAC,GAE9D,CAACG,GAAcC,CAAe,IAAIN,EAAiB,EAAE,GAErDO,IAAYH;AAAA,MAChB,MACElB,IAAUA,EAAQ,IAAI,CAACsB,MAAMA,EAAE,KAAK,IAAI1C,GAAmBC,CAAQ;AAAA,MACrE,CAACmB,GAASnB,CAAQ;AAAA,IAAA,GAGd0C,IAAS,CAACC,MAAyB;AACvC,MAAKT,KAAcF,EAAiBW,CAAI,GACxCjC,KAAA,QAAAA,EAAWiC;AAAA,IACb,GAEMC,IAAkBC,EAAiBV,CAAY;AACrD,IAAAS,EAAgB,UAAUT;AAE1B,UAAMW,IAAcT;AAAA,MAClB,OAAO;AAAA,QACL,cAAc,MAAMO,EAAgB,QAAQ,MAAA;AAAA,QAC5C,cAAc,CAACG,MAAQL,EAAOK,CAAG;AAAA,QACjC,gBAAgB,MAAML,EAAO,CAAA,CAAE;AAAA,MAAA;AAAA;AAAA,MAGjC,CAACR,GAAcxB,CAAQ;AAAA,IAAA;AAEzB,IAAAsC,GAAqBtD,IAAoBoD,GAAalC,CAAE;AAsBxD,UAAMqC,IAAsC;AAAA,MAC1C,MAAAtC;AAAA,MACA,OAAOyB;AAAA,MACP,QAvBa,CAACc,MAA4B;AAC1C,YAAId,EAAS,IAAIc,CAAS,GAAG;AAC3B,cAAI,OAAOnC,KAAQ,YAAYoB,EAAa,UAAUpB,GAAK;AACzD,YAAAwB,EAAgBf,EAAE,sCAAsC,EAAE,KAAAT,EAAA,CAAK,CAAC,GAChEE,KAAA,QAAAA,EAAwB;AACxB;AAAA,UACF;AACA,UAAAsB,EAAgB,EAAE,GAClBG,EAAOP,EAAa,OAAO,CAACgB,MAAMA,MAAMD,CAAS,CAAC;AAClD;AAAA,QACF;AACA,YAAI,OAAOlC,KAAQ,YAAYmB,EAAa,UAAUnB,GAAK;AACzD,UAAAuB,EAAgBf,EAAE,sCAAsC,EAAE,KAAAR,EAAA,CAAK,CAAC,GAChEC,KAAA,QAAAA,EAAwB;AACxB;AAAA,QACF;AACA,QAAAsB,EAAgB,EAAE,GAClBG,EAAO,CAAC,GAAGP,GAAce,CAAS,CAAC;AAAA,MACrC;AAAA,MAME,UAAApC;AAAA,IAAA,GAGIsC,IAAQZ,EAAU,QAClBa,IAAQlB,EAAa,QAErBmB,IACJF,MAAU,KAAKC,MAAU,IACrB,KACAA,KAASD,IACP,KACA,iBAEFG,IAAkB,MAAY;AAClC,UAAID,MAAkB,IAAM;AAC1B,YAAI,OAAOvC,KAAQ,YAAYA,IAAM,GAAG;AACtC,UAAAwB,EAAgBf,EAAE,sCAAsC,EAAE,KAAAT,EAAA,CAAK,CAAC,GAChEE,KAAA,QAAAA,EAAwB;AACxB;AAAA,QACF;AACA,QAAAyB,EAAO,CAAA,CAAE,GACTH,EAAgB,EAAE;AAClB;AAAA,MACF;AACA,YAAMiB,IACJ,OAAOxC,KAAQ,WAAWwB,EAAU,MAAM,GAAGxB,CAAG,IAAIwB;AACtD,MAAAE,EAAOc,CAAO,GACdjB,EAAgB,EAAE;AAAA,IACpB,GAEMkB,IACJ;AAAA,MACEpC,IAAaO,IAAW;AAAA,MACxBR,IAAQS,IAAU;AAAA,MAClBuB,IAAQ,IAAItB,IAAY;AAAA,IAAA,EAEvB,OAAO,OAAO,EACd,KAAK,GAAG,KAAK,QAEZ4B,IACJ1D,MACCmB,IACGA,EAAQ,IAAI,CAACwC,MACX,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QAEC,OAAOF,EAAI;AAAA,QACX,OAAOA,EAAI;AAAA,QACX,UAAUA,EAAI;AAAA,MAAA;AAAA,MAHTA,EAAI;AAAA,IAAA,CAKZ,IACD,OAEAG,IAAkB;AAAA,MACtB;AAAA,MACAxC;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE,gBAAAyC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAxC;AAAA,QACA,IAAAX;AAAA,QACA,WAAWkD;AAAA,QACX,oBAAkBL;AAAA,QAClB,gBAAc,EAAQrC,KAAU;AAAA,QAChC,kBAAe;AAAA,QACf,qBAAmBR;AAAA,QAEnB,UAAA;AAAA,UAAA,gBAAAgD,EAAC,UAAA,EAAO,WAAU,kEACf,UAAApD,GACH;AAAA,UACCU,IACC,gBAAA0C;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,OAAOrC,EAAE,mCAAmC;AAAA,cAC5C,SAAS8B;AAAA,cACT,iBAAiBC;AAAA,cACjB,UAAAzC;AAAA,YAAA;AAAA,UAAA,IAEA;AAAA,UACJ,gBAAA8C,EAACI,GAAqB,UAArB,EAA8B,OAAOf,GACpC,UAAA,gBAAAW,EAAC,OAAA,EAAI,WAAW/D,GAAsB,EAAE,aAAAgB,EAAA,CAAa,GAClD,aACH,GACF;AAAA,UACCQ,sBACE,KAAA,EAAE,IAAIO,GAAU,WAAU,yCACxB,aACH,IACE;AAAA,UACHR,IACC,gBAAA2C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIlC;AAAA,cACJ,MAAK;AAAA,cACL,WAAU;AAAA,cAEV,UAAA;AAAA,gBAAA,gBAAA+B,EAACK,IAAA,EAAY,eAAY,QAAO,WAAU,yBAAwB;AAAA,gBAClE,gBAAAL,EAAC,UAAM,UAAAxC,EAAA,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,IAEb;AAAA,UACJ,gBAAAwC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI9B;AAAA,cACJ,MAAK;AAAA,cACL,aAAU;AAAA,cACV,WAAU;AAAA,cAET,UAAAsB,IAAQ,IACL5B,EAAE,mCAAmC,EAAE,OAAA6B,GAAO,OAAAD,EAAA,CAAO,IACrD;AAAA,YAAA;AAAA,UAAA;AAAA,UAEN,gBAAAQ,EAAC,UAAK,MAAK,UAAS,aAAU,UAAS,WAAU,cAC9C,UAAAtB,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEAhC,GAAc,cAAc;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chevron-down-BX_NP2Yh.js","sources":["../../node_modules/lucide-react/dist/esm/icons/chevron-down.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 = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n"],"names":["__iconNode","ChevronDown","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAQ,CAAE,CAAC,GAC5DC,IAAcC,EAAiB,gBAAgBF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chevron-left-CX1jqD2M.js","sources":["../../node_modules/lucide-react/dist/esm/icons/chevron-left.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 = [[\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]];\nconst ChevronLeft = createLucideIcon(\"chevron-left\", __iconNode);\n\nexport { __iconNode, ChevronLeft as default };\n//# sourceMappingURL=chevron-left.js.map\n"],"names":["__iconNode","ChevronLeft","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE,CAAC,GAC9DC,IAAcC,EAAiB,gBAAgBF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chevron-right-BrpYejk0.js","sources":["../../node_modules/lucide-react/dist/esm/icons/chevron-right.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 = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n"],"names":["__iconNode","ChevronRight","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE,CAAC,GAC7DC,IAAeC,EAAiB,iBAAiBF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chevron-up-zOEDrmBB.js","sources":["../../node_modules/lucide-react/dist/esm/icons/chevron-up.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 = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n"],"names":["__iconNode","ChevronUp","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE,CAAC,GAC9DC,IAAYC,EAAiB,cAAcF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chevrons-right-d9MwesPG.js","sources":["../../node_modules/lucide-react/dist/esm/icons/chevrons-left.js","../../node_modules/lucide-react/dist/esm/icons/chevrons-right.js"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m11 17-5-5 5-5\", key: \"13zhaf\" }],\n [\"path\", { d: \"m18 17-5-5 5-5\", key: \"h8a8et\" }]\n];\nconst ChevronsLeft = createLucideIcon(\"chevrons-left\", __iconNode);\n\nexport { __iconNode, ChevronsLeft as default };\n//# sourceMappingURL=chevrons-left.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: \"m6 17 5-5-5-5\", key: \"xnjwq\" }],\n [\"path\", { d: \"m13 17 5-5-5-5\", key: \"17xmmf\" }]\n];\nconst ChevronsRight = createLucideIcon(\"chevrons-right\", __iconNode);\n\nexport { __iconNode, ChevronsRight as default };\n//# sourceMappingURL=chevrons-right.js.map\n"],"names":["__iconNode","ChevronsLeft","createLucideIcon","ChevronsRight"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AAAA,EAC/C,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AACjD,GACMC,IAAeC,EAAiB,iBAAiBF,CAAU;ACbjE;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,QAAO,CAAE;AAAA,EAC7C,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AACjD,GACMG,IAAgBD,EAAiB,kBAAkBF,CAAU;","x_google_ignoreList":[0,1]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-BkqTgYmt.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle.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 = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n"],"names":["__iconNode","Circle","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa,CAAC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,SAAQ,CAAE,CAAC,GACxEC,IAASC,EAAiB,UAAUF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-alert-ChA9opNA.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle-alert.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: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode);\n\nexport { __iconNode, CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n"],"names":["__iconNode","CircleAlert","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,KAAK,SAAQ,CAAE;AAAA,EACjE,CAAC,QAAQ,EAAE,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,KAAK,SAAQ,CAAE;AACvE,GACMC,IAAcC,EAAiB,gBAAgBF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-check-9AeSgJD_.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle-check.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: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n];\nconst CircleCheck = createLucideIcon(\"circle-check\", __iconNode);\n\nexport { __iconNode, CircleCheck as default };\n//# sourceMappingURL=circle-check.js.map\n"],"names":["__iconNode","CircleCheck","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAQ,CAAE;AAChD,GACMC,IAAcC,EAAiB,gBAAgBF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-x-Du2CmjaU.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle-x.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: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m15 9-6 6\", key: \"1uzhvr\" }],\n [\"path\", { d: \"m9 9 6 6\", key: \"z0biqf\" }]\n];\nconst CircleX = createLucideIcon(\"circle-x\", __iconNode);\n\nexport { __iconNode, CircleX as default };\n//# sourceMappingURL=circle-x.js.map\n"],"names":["__iconNode","CircleX","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,GAAG,aAAa,KAAK,SAAQ,CAAE;AAAA,EAC1C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAC3C,GACMC,IAAUC,EAAiB,YAAYF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock-21AGPWJ5.js","sources":["../../node_modules/lucide-react/dist/esm/icons/clock.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: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 6v6l4 2\", key: \"mmk7yg\" }]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode);\n\nexport { __iconNode, Clock as default };\n//# sourceMappingURL=clock.js.map\n"],"names":["__iconNode","Clock","createLucideIcon"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAa;AAAA,EACjB,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,GAAG,eAAe,KAAK,SAAQ,CAAE;AAC9C,GACMC,IAAQC,EAAiB,SAASF,CAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible-CuxUBoHJ.js","sources":["../../src/components/collapsible/collapsible.agent.ts","../../src/components/collapsible/collapsible.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — Collapsible. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { CollapsibleHandle } from './collapsible';\n\nexport const collapsibleAgent: AgentAdapter<CollapsibleHandle> = {\n id: 'collapsible',\n capabilities: ['expand'],\n state: {\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.collapsible.state.isOpen',\n description: 'True when the content panel is expanded.',\n read: (handle) => handle.isOpen(),\n },\n },\n actions: {\n toggle: {\n safety: 'write',\n descriptionKey: 'ui.agent.collapsible.actions.toggle',\n description: 'Toggle between open and closed.',\n invoke: (handle) => {\n handle.toggle();\n },\n },\n open: {\n safety: 'write',\n descriptionKey: 'ui.agent.collapsible.actions.open',\n description: 'Expand the content panel.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'write',\n descriptionKey: 'ui.agent.collapsible.actions.close',\n description: 'Collapse the content panel.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'collapsible',\n description: 'Marks the Collapsible root.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ElementRef,\n} from 'react';\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\nimport { cva, cx, type VariantProps } from 'class-variance-authority';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { collapsibleAgent } from './collapsible.agent';\n\nconst collapsibleVariants = cva('', {\n variants: {\n variant: {\n default: '',\n card: 'ds:bg-[var(--card)] ds:border ds:border-border ds:rounded-[var(--radius-lg)] ds:overflow-hidden',\n minimal: 'ds:forced-colors:[border-block-end:1px_solid]',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst contentCls = [\n 'ds:overflow-hidden',\n 'ds:transition-[block-size]',\n 'ds:duration-[var(--animation-duration)]',\n 'ds:ease-out',\n 'ds:motion-reduce:transition-none',\n 'ds:data-[state=open]:[block-size:var(--radix-collapsible-content-height)]',\n 'ds:data-[state=closed]:[block-size:0]',\n].join(' ');\n\ntype RootProps = ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Root>;\ntype TriggerProps = ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.Trigger\n>;\ntype PrimitiveContentProps = ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.Content\n>;\n\nexport interface CollapsibleProps\n extends\n Omit<RootProps, 'asChild'>,\n VariantProps<typeof collapsibleVariants> {}\n\n/** Curated imperative handle for agent / external automation. */\nexport interface CollapsibleHandle {\n isOpen: () => boolean;\n toggle: () => void;\n open: () => void;\n close: () => void;\n}\n\nexport type CollapsibleTriggerProps = TriggerProps;\n\nexport type CollapsibleContentProps = PrimitiveContentProps;\n\ntype CollapsibleRootElement = ElementRef<typeof CollapsiblePrimitive.Root>;\n\nexport const Collapsible = forwardRef<CollapsibleRootElement, CollapsibleProps>(\n (\n {\n variant,\n className,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n ...props\n },\n ref,\n ) => {\n const isControlled = openProp !== undefined;\n const [internalOpen, setInternalOpen] = useState<boolean>(\n Boolean(defaultOpen),\n );\n const currentOpen = isControlled ? Boolean(openProp) : internalOpen;\n // Latest snapshot for the imperative handle — keeps invoke callers from\n // reading stale state when they fire `toggle()` then `isOpen()` in rapid\n // succession (the latest setState batch may not have flushed yet).\n const latestRef = useRef(currentOpen);\n latestRef.current = currentOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n const agentHandle = useMemo<CollapsibleHandle>(\n () => ({\n isOpen: () => latestRef.current,\n toggle: () => setOpen(!latestRef.current),\n open: () => setOpen(true),\n close: () => setOpen(false),\n }),\n [setOpen],\n );\n useAgentRegistration(collapsibleAgent, agentHandle, props.id);\n\n return (\n <CollapsiblePrimitive.Root\n ref={ref}\n open={currentOpen}\n onOpenChange={setOpen}\n className={collapsibleVariants({ variant, className })}\n data-component=\"collapsible\"\n data-component-id={props.id}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Root>\n );\n },\n);\nCollapsible.displayName = 'Collapsible';\n\nexport const CollapsibleTrigger = forwardRef<\n HTMLButtonElement,\n CollapsibleTriggerProps\n>(({ asChild = false, children, ...props }, ref) => (\n <CollapsiblePrimitive.Trigger ref={ref} asChild={asChild} {...props}>\n {children}\n </CollapsiblePrimitive.Trigger>\n));\nCollapsibleTrigger.displayName = 'CollapsibleTrigger';\n\nexport const CollapsibleContent = forwardRef<\n HTMLDivElement,\n CollapsibleContentProps\n>(\n (\n {\n className,\n children,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n ) => {\n useEffect(() => {\n if (import.meta.env.DEV && !ariaLabelledBy && !ariaLabel) {\n console.warn(\n 'CollapsibleContent: Provide `aria-labelledby` pointing at the trigger id, or `aria-label`, so screen readers can identify this region.',\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <CollapsiblePrimitive.Content\n ref={ref}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel}\n className={cx(contentCls, className)}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Content>\n );\n },\n);\nCollapsibleContent.displayName = 'CollapsibleContent';\n"],"names":["collapsibleAgent","handle","collapsibleVariants","cva","contentCls","Collapsible","forwardRef","variant","className","children","openProp","defaultOpen","onOpenChange","props","ref","isControlled","internalOpen","setInternalOpen","useState","currentOpen","latestRef","useRef","setOpen","useCallback","next","agentHandle","useMemo","useAgentRegistration","jsx","CollapsiblePrimitive","CollapsibleTrigger","asChild","CollapsibleContent","ariaLabelledBy","ariaLabel","useEffect","cx"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker-CTIcHlDF.js","sources":["../../src/components/color-picker/color-picker.agent.ts","../../src/components/color-picker/color-utils.ts","../../src/components/color-picker/palettes.ts","../../src/components/color-picker/color-picker.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — ColorPicker. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ColorPickerHandle } from './color-picker';\n\nexport const colorPickerAgent: AgentAdapter<ColorPickerHandle> = {\n id: 'color-picker',\n capabilities: ['pick'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.colorPicker.state.value',\n description: 'Currently picked colour as a hex string (e.g. \"#3b82f6\").',\n read: (handle) => handle.getValue(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ hex: string }',\n descriptionKey: 'ui.agent.colorPicker.actions.setValue',\n description: 'Set the picked colour from a hex string.',\n invoke: (handle, args: { hex: string }) => {\n handle.setValue(args.hex);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'color-picker',\n description:\n 'Marks the ColorPicker wrapper (inline) or trigger (popover variant).',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","/**\n * Pure colour-conversion utilities for the ColorPicker component.\n *\n * This is the ONLY file where hex/rgb literals are permitted (for conversion\n * math). The component file (`color-picker.tsx`) must not contain hex/rgb\n * literals — it references `var(--…)` tokens for its own UI.\n */\n\nexport interface HSLA {\n h: number; // 0–360\n s: number; // 0–100\n l: number; // 0–100\n a: number; // 0–1\n}\n\n/* ------------------------------------------------------------------ */\n/* Hex ↔ HSL */\n/* ------------------------------------------------------------------ */\n\n/** Parse a hex string (#rgb, #rrggbb, #rrggbbaa) into HSLA. */\nexport function hexToHsl(hex: string): HSLA {\n let h = hex.startsWith('#') ? hex.slice(1) : hex;\n\n // Expand shorthand (#rgb → #rrggbb, #rgba → #rrggbbaa)\n if (h.length === 3 || h.length === 4) {\n h = h\n .split('')\n .map((c) => c + c)\n .join('');\n }\n\n const r = parseInt(h.slice(0, 2), 16) / 255;\n const g = parseInt(h.slice(2, 4), 16) / 255;\n const b = parseInt(h.slice(4, 6), 16) / 255;\n const a = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;\n\n return rgbToHsl(r, g, b, a);\n}\n\n/** Convert normalised RGB (0–1) + alpha to HSLA. */\nfunction rgbToHsl(r: number, g: number, b: number, a: number): HSLA {\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let hue = 0;\n let sat = 0;\n\n if (max !== min) {\n const d = max - min;\n sat = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n if (max === r) {\n hue = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n } else if (max === g) {\n hue = ((b - r) / d + 2) / 6;\n } else {\n hue = ((r - g) / d + 4) / 6;\n }\n }\n\n return {\n h: Math.round(hue * 360),\n s: Math.round(sat * 100),\n l: Math.round(l * 100),\n a: Math.round(a * 100) / 100,\n };\n}\n\n/** Convert HSLA to a hex string (#rrggbb or #rrggbbaa when a < 1). */\nexport function hslToHex(hsl: HSLA): string {\n const { r, g, b } = hslToRgbComponents(hsl);\n const toHex = (n: number) =>\n Math.round(n * 255)\n .toString(16)\n .padStart(2, '0');\n\n const base = `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n if (hsl.a < 1) {\n return `${base}${toHex(hsl.a)}`;\n }\n return base;\n}\n\n/** Convert HSLA to an rgba() string. */\nexport function hslToRgba(hsl: HSLA): string {\n const { r, g, b } = hslToRgbComponents(hsl);\n const ri = Math.round(r * 255);\n const gi = Math.round(g * 255);\n const bi = Math.round(b * 255);\n\n if (hsl.a < 1) {\n return `rgba(${ri}, ${gi}, ${bi}, ${hsl.a})`;\n }\n return `rgba(${ri}, ${gi}, ${bi}, 1)`;\n}\n\n/** Internal: convert HSLA to normalised RGB components (0–1). */\nfunction hslToRgbComponents(hsl: HSLA): {\n r: number;\n g: number;\n b: number;\n} {\n const h = hsl.h / 360;\n const s = hsl.s / 100;\n const l = hsl.l / 100;\n\n if (s === 0) {\n return { r: l, g: l, b: l };\n }\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n return {\n r: hueToRgb(p, q, h + 1 / 3),\n g: hueToRgb(p, q, h),\n b: hueToRgb(p, q, h - 1 / 3),\n };\n}\n\nfunction hueToRgb(p: number, q: number, t: number): number {\n let tt = t;\n if (tt < 0) tt += 1;\n if (tt > 1) tt -= 1;\n if (tt < 1 / 6) return p + (q - p) * 6 * tt;\n if (tt < 1 / 2) return q;\n if (tt < 2 / 3) return p + (q - p) * (2 / 3 - tt) * 6;\n return p;\n}\n\n/* ------------------------------------------------------------------ */\n/* Format / Parse */\n/* ------------------------------------------------------------------ */\n\n/** Format an HSLA value to the specified output format. */\nexport function formatOutput(\n hsl: HSLA,\n format: 'hex' | 'hsl' | 'rgba',\n): string {\n switch (format) {\n case 'hex':\n return hslToHex(hsl);\n case 'hsl':\n if (hsl.a < 1) {\n return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${hsl.a})`;\n }\n return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;\n case 'rgba':\n return hslToRgba(hsl);\n }\n}\n\n/** Parse any supported colour string into HSLA. Returns null on failure. */\nexport function parseInput(value: string): HSLA | null {\n const trimmed = value.trim();\n if (!trimmed) return null;\n\n // Hex: #rgb, #rrggbb, #rrggbbaa\n if (trimmed.startsWith('#')) {\n const body = trimmed.slice(1);\n if (!/^[0-9a-fA-F]{3,8}$/.test(body)) return null;\n if (![3, 4, 6, 8].includes(body.length)) return null;\n return hexToHsl(trimmed);\n }\n\n // hsla(h, s%, l%, a) or hsl(h, s%, l%)\n const hslaMatch = trimmed.match(\n /^hsla?\\(\\s*([\\d.]+)\\s*[,/]\\s*([\\d.]+)%?\\s*[,/]\\s*([\\d.]+)%?\\s*(?:[,/]\\s*([\\d.]+))?\\s*\\)$/,\n );\n if (hslaMatch) {\n return {\n h: Math.round(parseFloat(hslaMatch[1])) % 360,\n s: Math.round(parseFloat(hslaMatch[2])),\n l: Math.round(parseFloat(hslaMatch[3])),\n a: hslaMatch[4] !== undefined ? parseFloat(hslaMatch[4]) : 1,\n };\n }\n\n // rgba(r, g, b, a) or rgb(r, g, b)\n const rgbaMatch = trimmed.match(\n /^rgba?\\(\\s*([\\d.]+)\\s*[,/]\\s*([\\d.]+)\\s*[,/]\\s*([\\d.]+)\\s*(?:[,/]\\s*([\\d.]+))?\\s*\\)$/,\n );\n if (rgbaMatch) {\n const r = parseFloat(rgbaMatch[1]) / 255;\n const g = parseFloat(rgbaMatch[2]) / 255;\n const b = parseFloat(rgbaMatch[3]) / 255;\n const a = rgbaMatch[4] !== undefined ? parseFloat(rgbaMatch[4]) : 1;\n return rgbToHsl(r, g, b, a);\n }\n\n return null;\n}\n\n/* ------------------------------------------------------------------ */\n/* Contrast — WCAG 2.x relative luminance */\n/* ------------------------------------------------------------------ */\n\n/** Relative luminance per WCAG 2.x (0 = black, 1 = white). */\nexport function relativeLuminance(hsl: HSLA): number {\n const { r, g, b } = hslToRgbComponents(hsl);\n const linearise = (c: number) =>\n c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n return 0.2126 * linearise(r) + 0.7152 * linearise(g) + 0.0722 * linearise(b);\n}\n\n/** WCAG 2.x contrast ratio between two colours. */\nexport function contrastRatio(fg: HSLA, bg: HSLA): number {\n const lum1 = relativeLuminance(fg);\n const lum2 = relativeLuminance(bg);\n const lighter = Math.max(lum1, lum2);\n const darker = Math.min(lum1, lum2);\n return Math.round(((lighter + 0.05) / (darker + 0.05)) * 100) / 100;\n}\n\n/** Meets WCAG AA for normal text (≥ 4.5:1). */\nexport function meetsAA(ratio: number): boolean {\n return ratio >= 4.5;\n}\n\n/** Meets WCAG AAA for normal text (≥ 7:1). */\nexport function meetsAAA(ratio: number): boolean {\n return ratio >= 7;\n}\n","export interface PaletteSwatch {\n name: string;\n hex: string;\n /** Recommended text colour for contrast. */\n textColor?: '#000000' | '#ffffff';\n}\n\n/**\n * Material Design appointment colours — mirrors the platform's `DoctorColor`\n * entity. Pink 500 is first because it's the default appointment colour;\n * remaining dark (white-text) colours follow alphabetically, then light\n * (black-text) colours alphabetically.\n */\nexport const APPOINTMENT_PALETTE: PaletteSwatch[] = [\n { name: 'Pink 500', hex: '#e91e63', textColor: '#ffffff' },\n { name: 'Black', hex: '#000000', textColor: '#ffffff' },\n { name: 'Blue 500', hex: '#2196f3', textColor: '#ffffff' },\n { name: 'Blue 900', hex: '#0d47a1', textColor: '#ffffff' },\n { name: 'Blue Grey 500', hex: '#607d8b', textColor: '#ffffff' },\n { name: 'Blue Grey 800', hex: '#37474f', textColor: '#ffffff' },\n { name: 'Brown 500', hex: '#795548', textColor: '#ffffff' },\n { name: 'Deep Orange 500', hex: '#ff5722', textColor: '#ffffff' },\n { name: 'Deep Purple 500', hex: '#673ab7', textColor: '#ffffff' },\n { name: 'Green 500', hex: '#4caf50', textColor: '#ffffff' },\n { name: 'Green 900', hex: '#1b5e20', textColor: '#ffffff' },\n { name: 'Indigo 500', hex: '#3f51b5', textColor: '#ffffff' },\n { name: 'Indigo 900', hex: '#1a237e', textColor: '#ffffff' },\n { name: 'Pink 900', hex: '#880e4f', textColor: '#ffffff' },\n { name: 'Purple 500', hex: '#9c27b0', textColor: '#ffffff' },\n { name: 'Purple 900', hex: '#4a148c', textColor: '#ffffff' },\n { name: 'Red 500', hex: '#f44336', textColor: '#ffffff' },\n { name: 'Red 900', hex: '#b71c1c', textColor: '#ffffff' },\n { name: 'Teal 500', hex: '#009688', textColor: '#ffffff' },\n { name: 'Teal 900', hex: '#004d40', textColor: '#ffffff' },\n { name: 'Amber 500', hex: '#ffc107', textColor: '#000000' },\n { name: 'Cyan 500', hex: '#00bcd4', textColor: '#000000' },\n { name: 'Grey 500', hex: '#9e9e9e', textColor: '#000000' },\n { name: 'Light Blue 500', hex: '#03a9f4', textColor: '#000000' },\n { name: 'Light Green 500', hex: '#8bc34a', textColor: '#000000' },\n { name: 'Lime 500', hex: '#cddc39', textColor: '#000000' },\n { name: 'Orange 500', hex: '#ff9800', textColor: '#000000' },\n { name: 'Orange 900', hex: '#e65100', textColor: '#000000' },\n { name: 'White', hex: '#ffffff', textColor: '#000000' },\n { name: 'Yellow 500', hex: '#ffeb3b', textColor: '#000000' },\n];\n\n/** Alfadocs brand palette — the six brand families × 3 shades (300/500/700). */\nexport const BRAND_PALETTE: PaletteSwatch[] = [\n { name: 'Blue 300', hex: '#70738c' },\n { name: 'Blue 500', hex: '#292e53' },\n { name: 'Blue 700', hex: '#1d213b' },\n { name: 'Violet 300', hex: '#9995ee' },\n { name: 'Violet 500', hex: '#6761e5' },\n { name: 'Violet 700', hex: '#4945a3' },\n { name: 'Purple 300', hex: '#ccaafa' },\n { name: 'Purple 500', hex: '#b380f8' },\n { name: 'Purple 700', hex: '#7f5bb0' },\n { name: 'Magenta 300', hex: '#ea7ffc' },\n { name: 'Magenta 500', hex: '#e040fb' },\n { name: 'Magenta 700', hex: '#9f2db2' },\n { name: 'Fuchsia 300', hex: '#fa76fc' },\n { name: 'Fuchsia 500', hex: '#f732fb' },\n { name: 'Fuchsia 700', hex: '#af24b2' },\n { name: 'Grey 300', hex: '#f9f6f3' },\n { name: 'Grey 500', hex: '#f6f1ed' },\n { name: 'Grey 700', hex: '#afaba8' },\n];\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react';\nimport * as Popover from '@radix-ui/react-popover';\nimport { cva } from 'class-variance-authority';\nimport { Check, X } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useFormField } from '../form-field/form-field-context';\nimport { Slider } from '../slider/slider';\nimport { useAgentRegistration } from '../../agent';\nimport { colorPickerAgent } from './color-picker.agent';\n\n/** Agent-readiness curated handle for ColorPicker. */\nexport interface ColorPickerHandle {\n getValue: () => string;\n setValue: (hex: string) => void;\n}\nimport {\n contrastRatio,\n formatOutput,\n hexToHsl,\n hslToHex,\n meetsAA,\n meetsAAA,\n parseInput,\n type HSLA,\n} from './color-utils';\nimport { APPOINTMENT_PALETTE, type PaletteSwatch } from './palettes';\n\nconst COLS = 6;\n\nconst triggerVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:w-full',\n 'ds:rounded-[var(--radius-sm)] ds:border ds:border-[color:var(--border)] ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--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 variants: {\n size: {\n sm: 'ds:h-8 ds:text-[length:var(--font-size-sm)] ds:ps-3 ds:pe-3',\n md: 'ds:h-[var(--min-target-size)] ds:text-[length:var(--font-size-base)] ds:ps-3 ds:pe-3',\n lg: 'ds:h-12 ds:text-[length:var(--font-size-lg)] ds:ps-4 ds:pe-4',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst swatchVariants = cva(\n [\n 'ds:relative ds:rounded-[var(--radius-sm)] ds:border-2 ds:cursor-pointer',\n 'ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]',\n 'ds:transition-[transform,box-shadow] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:hover:scale-110',\n // The swatch background is the user-picked colour — set as a CSS custom\n // property via inline `style` per 23-constraints §Runtime-computed\n // dimensions (CSS custom property setter; the bg rule lives on the class).\n 'ds:bg-[var(--swatch-bg)]',\n ].join(' '),\n {\n variants: {\n selected: {\n true: 'ds:border-[var(--primary)] ds:shadow-[var(--shadow-md)]',\n false: 'ds:border-transparent',\n },\n },\n defaultVariants: { selected: false },\n },\n);\n\nconst PANEL_CLASSES = [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-md)]',\n 'ds:rounded-[var(--radius-md)] ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:p-[var(--spacing-md)]',\n].join(' ');\n\n// Checkerboard under the opacity track — static geometry, so expressed as\n// Tailwind arbitrary values rather than inline `style`. `grey-700` comes\n// from the closed palette so the tile colour still tracks the token ramp.\nconst OPACITY_CHECKER_CLASSES = [\n 'ds:bg-[image:repeating-conic-gradient(var(--color-grey-700)_0%_25%,transparent_0%_50%)]',\n 'ds:bg-[size:8px_8px]',\n].join(' ');\n\nconst PANEL_COMPACT_CLASSES = [\n 'ds:rounded-[var(--radius-md)] ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:p-[var(--spacing-sm)]',\n].join(' ');\n\nconst POPOVER_CONTENT_CLASSES = [\n 'ds:z-[var(--z-popover)] ds:rounded-[var(--radius-md)]',\n 'ds:border ds:border-[color:var(--border)] ds:bg-[var(--background)] ds:shadow-[var(--shadow-lg)]',\n 'ds:w-72',\n 'ds:data-[state=open]:animate-in ds:data-[state=open]:fade-in-0 ds:data-[state=open]:zoom-in-95',\n 'ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out-0 ds:data-[state=closed]:zoom-out-95',\n 'ds:data-[side=bottom]:slide-in-from-top-2 ds:data-[side=top]:slide-in-from-bottom-2',\n 'ds:data-[side=left]:slide-in-from-right-2 ds:data-[side=right]:slide-in-from-left-2',\n].join(' ');\n\nconst HEX_INPUT_CLASSES = [\n 'ds:w-full ds:rounded-[var(--radius-sm)] ds:border ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:py-[var(--spacing-xs)] ds:text-[var(--font-size-sm)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n].join(' ');\n\n// Makes the Slider track/range transparent so the gradient behind shows through\nconst TRANSPARENT_SLIDER =\n 'ds:[&>span:first-child]:bg-transparent ds:[&>span:first-child>span]:bg-transparent';\n\nexport interface ColorPickerProps {\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n format?: 'hex' | 'hsl' | 'rgba';\n allowOpacity?: boolean;\n palette?: (string | PaletteSwatch)[];\n against?: string;\n size?: 'sm' | 'md' | 'lg';\n disabled?: boolean;\n variant?: 'inline' | 'popover';\n /** Show only the swatch grid without sliders, hex input, or contrast readout */\n compact?: boolean;\n className?: string;\n}\n\nexport const ColorPicker = forwardRef<HTMLDivElement, ColorPickerProps>(\n (props, ref) => {\n const {\n value,\n defaultValue,\n onChange,\n format = 'hex',\n allowOpacity = false,\n palette,\n against,\n size = 'md',\n disabled = false,\n variant = 'inline',\n compact = true,\n className,\n } = props;\n\n const { t } = useTranslation();\n const ctx = useFormField();\n const generatedId = useId();\n const pickerId = ctx.id || generatedId;\n const effectiveDisabled = ctx.disabled || disabled;\n\n const isControlled = value !== undefined;\n const [internalHsl, setInternalHsl] = useState<HSLA>(() => {\n const initial = value ?? defaultValue;\n if (initial) {\n const parsed = parseInput(initial);\n if (parsed) return parsed;\n }\n return { h: 0, s: 100, l: 50, a: 1 };\n });\n\n const currentHsl: HSLA = useMemo(() => {\n if (isControlled && value) {\n const parsed = parseInput(value);\n if (parsed) return parsed;\n }\n return internalHsl;\n }, [isControlled, value, internalHsl]);\n\n const emitChange = useCallback(\n (hsl: HSLA) => {\n const finalHsl = allowOpacity ? hsl : { ...hsl, a: 1 };\n if (!isControlled) setInternalHsl(finalHsl);\n onChange?.(formatOutput(finalHsl, format));\n },\n [allowOpacity, format, isControlled, onChange],\n );\n\n const [hexInput, setHexInput] = useState(() => hslToHex(currentHsl));\n const [hexError, setHexError] = useState(false);\n const revertTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const currentHslRef = useRef(currentHsl);\n currentHslRef.current = currentHsl;\n\n useEffect(() => {\n setHexInput(hslToHex(currentHsl));\n setHexError(false);\n if (revertTimerRef.current !== undefined) {\n clearTimeout(revertTimerRef.current);\n revertTimerRef.current = undefined;\n }\n }, [currentHsl]);\n\n useEffect(() => {\n return () => {\n if (revertTimerRef.current !== undefined) {\n clearTimeout(revertTimerRef.current);\n }\n };\n }, []);\n\n const handleHexBlur = () => {\n const parsed = parseInput(hexInput);\n if (parsed) {\n setHexError(false);\n emitChange(parsed);\n } else {\n setHexError(true);\n revertTimerRef.current = setTimeout(() => {\n revertTimerRef.current = undefined;\n setHexError(false);\n setHexInput(hslToHex(currentHslRef.current));\n }, 800);\n }\n };\n\n const swatches: PaletteSwatch[] = useMemo(() => {\n if (!palette) return APPOINTMENT_PALETTE;\n return palette.map((item) =>\n typeof item === 'string'\n ? { name: item.toUpperCase(), hex: item }\n : item,\n );\n }, [palette]);\n\n const currentHex = hslToHex(currentHsl);\n const selectedSwatchIndex = swatches.findIndex(\n (s) => s.hex.toLowerCase() === currentHex.toLowerCase(),\n );\n\n const gridRef = useRef<HTMLDivElement>(null);\n const [focusedIndex, setFocusedIndex] = useState(\n selectedSwatchIndex >= 0 ? selectedSwatchIndex : 0,\n );\n\n const focusSwatch = (index: number) => {\n const cells =\n gridRef.current?.querySelectorAll<HTMLElement>('[role=\"gridcell\"]');\n if (cells?.[index]) {\n cells[index].focus();\n setFocusedIndex(index);\n }\n };\n\n const handleGridKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (effectiveDisabled) return;\n const total = swatches.length;\n let next = focusedIndex;\n\n switch (event.key) {\n case 'ArrowRight':\n next = (focusedIndex + 1) % total;\n break;\n case 'ArrowLeft':\n next = (focusedIndex - 1 + total) % total;\n break;\n case 'ArrowDown':\n next = Math.min(focusedIndex + COLS, total - 1);\n break;\n case 'ArrowUp':\n next = Math.max(focusedIndex - COLS, 0);\n break;\n case 'Home':\n next = Math.floor(focusedIndex / COLS) * COLS;\n break;\n case 'End':\n next = Math.min(\n Math.floor(focusedIndex / COLS) * COLS + COLS - 1,\n total - 1,\n );\n break;\n case 'PageUp':\n next = focusedIndex % COLS;\n break;\n case 'PageDown': {\n const lastRowStart = Math.floor((total - 1) / COLS) * COLS;\n next = Math.min(lastRowStart + (focusedIndex % COLS), total - 1);\n break;\n }\n case 'Enter':\n case ' ':\n event.preventDefault();\n emitChange(hexToHsl(swatches[focusedIndex].hex));\n return;\n default:\n return;\n }\n\n event.preventDefault();\n focusSwatch(next);\n };\n\n const [open, setOpen] = useState(false);\n\n const agentHandle = useMemo<ColorPickerHandle>(\n () => ({\n getValue: () => hslToHex(currentHslRef.current),\n setValue: (hex) => {\n const parsed = parseInput(hex);\n if (parsed) emitChange(parsed);\n },\n }),\n [emitChange],\n );\n useAgentRegistration(colorPickerAgent, agentHandle, pickerId);\n\n const contrastInfo = useMemo(() => {\n if (!against) return null;\n const bgHsl = parseInput(against);\n if (!bgHsl) return null;\n const ratio = contrastRatio(currentHsl, bgHsl);\n return { ratio, aa: meetsAA(ratio), aaa: meetsAAA(ratio) };\n }, [against, currentHsl]);\n\n const swatchGrid = (\n // eslint-disable-next-line jsx-a11y/interactive-supports-focus -- inner gridcells are individually focusable via roving tabindex\n <div\n ref={gridRef}\n role=\"grid\"\n aria-label={t('ui.inputs.colorPicker.paletteLabel', 'Colour swatches')}\n onKeyDown={handleGridKeyDown}\n className=\"ds:grid ds:grid-cols-6 ds:gap-[var(--spacing-xs)]\"\n >\n {swatches.map((_swatch, i) => {\n const rowStart = Math.floor(i / COLS) * COLS;\n const isFirstInRow = i === rowStart;\n return isFirstInRow ? (\n <div key={i} role=\"row\" className=\"ds:contents\">\n {swatches.slice(rowStart, rowStart + COLS).map((s, j) => {\n const idx = rowStart + j;\n const sel = s.hex.toLowerCase() === currentHex.toLowerCase();\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events -- parent grid handles keyboard navigation via onKeyDown\n <div\n key={s.hex}\n role=\"gridcell\"\n aria-selected={sel}\n aria-label={t('ui.inputs.colorPicker.swatchLabel', {\n name: s.name,\n hex: s.hex,\n })}\n tabIndex={idx === focusedIndex ? 0 : -1}\n onClick={() => {\n if (effectiveDisabled) return;\n emitChange(hexToHsl(s.hex));\n setFocusedIndex(idx);\n }}\n className={swatchVariants({ selected: sel })}\n // eslint-disable-next-line react/forbid-dom-props -- user-picked swatch hex injected via --swatch-bg CSS variable\n style={{ ['--swatch-bg' as string]: s.hex }}\n >\n {sel ? (\n <Check\n aria-hidden=\"true\"\n className=\"ds:absolute ds:inset-0 ds:m-auto ds:size-4 ds:text-[var(--background)] ds:mix-blend-difference\"\n />\n ) : null}\n </div>\n );\n })}\n </div>\n ) : null;\n })}\n </div>\n );\n\n const fullControls = compact ? null : (\n <>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <label\n htmlFor={`${pickerId}-hex`}\n className=\"ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]\"\n >\n {t('ui.inputs.colorPicker.hex', 'Hex')}\n </label>\n <bdi dir=\"ltr\">\n <input\n id={`${pickerId}-hex`}\n type=\"text\"\n value={hexInput}\n disabled={effectiveDisabled}\n onChange={(e) => setHexInput(e.target.value)}\n onBlur={handleHexBlur}\n className={`${HEX_INPUT_CLASSES} ${hexError ? 'ds:border-[var(--destructive)]' : 'ds:border-[color:var(--border)]'}`}\n />\n </bdi>\n </div>\n\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <SliderWithGradient\n label={t('ui.inputs.colorPicker.hue', 'Hue')}\n gradient=\"linear-gradient(to right, hsl(0,100%,50%), hsl(60,100%,50%), hsl(120,100%,50%), hsl(180,100%,50%), hsl(240,100%,50%), hsl(300,100%,50%), hsl(360,100%,50%))\"\n min={0}\n max={360}\n value={currentHsl.h}\n onChange={(h) => emitChange({ ...currentHsl, h })}\n formatValue={(v) => `H ${v}°`}\n disabled={effectiveDisabled}\n />\n <SliderWithGradient\n label={t('ui.inputs.colorPicker.saturation', 'Saturation')}\n gradient={`linear-gradient(to right, hsl(${currentHsl.h},0%,${currentHsl.l}%), hsl(${currentHsl.h},100%,${currentHsl.l}%))`}\n min={0}\n max={100}\n value={currentHsl.s}\n onChange={(s) => emitChange({ ...currentHsl, s })}\n formatValue={(v) => `S ${v}%`}\n disabled={effectiveDisabled}\n />\n <SliderWithGradient\n label={t('ui.inputs.colorPicker.lightness', 'Lightness')}\n gradient={`linear-gradient(to right, hsl(${currentHsl.h},${currentHsl.s}%,0%), hsl(${currentHsl.h},${currentHsl.s}%,50%), hsl(${currentHsl.h},${currentHsl.s}%,100%))`}\n min={0}\n max={100}\n value={currentHsl.l}\n onChange={(l) => emitChange({ ...currentHsl, l })}\n formatValue={(v) => `L ${v}%`}\n disabled={effectiveDisabled}\n />\n {allowOpacity ? (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <label className=\"ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]\">\n {t('ui.inputs.colorPicker.opacity', 'Opacity')}\n </label>\n <div className=\"ds:relative\">\n <div\n className={`ds:absolute ds:inset-0 ds:rounded-[var(--radius-full)] ds:pointer-events-none ${OPACITY_CHECKER_CLASSES}`}\n aria-hidden=\"true\"\n />\n <div\n className=\"ds:absolute ds:inset-0 ds:rounded-[var(--radius-full)] ds:pointer-events-none ds:bg-[image:var(--opacity-gradient)]\"\n // eslint-disable-next-line react/forbid-dom-props -- opacity-track gradient derived from live HSL, no token equivalent\n style={{\n ['--opacity-gradient' as string]: `linear-gradient(to right, hsla(${currentHsl.h},${currentHsl.s}%,${currentHsl.l}%,0), hsl(${currentHsl.h},${currentHsl.s}%,${currentHsl.l}%))`,\n }}\n aria-hidden=\"true\"\n />\n <Slider\n min={0}\n max={100}\n step={1}\n value={[Math.round(currentHsl.a * 100)]}\n onValueChange={([v]) =>\n emitChange({ ...currentHsl, a: v / 100 })\n }\n aria-label={t('ui.inputs.colorPicker.opacity', 'Opacity')}\n formatValue={(v) => `${v}%`}\n disabled={effectiveDisabled}\n className={TRANSPARENT_SLIDER}\n />\n </div>\n </div>\n ) : null}\n </div>\n\n {contrastInfo ? (\n <div\n className=\"ds:flex ds:items-center ds:gap-[var(--spacing-sm)] ds:text-[length:var(--font-size-sm)]\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <span className=\"ds:tabular-nums\">\n {t('ui.inputs.colorPicker.contrastRatio', {\n ratio: contrastInfo.ratio.toFixed(1),\n })}\n </span>\n <ContrastBadge level=\"AA\" passes={contrastInfo.aa} t={t} />\n <ContrastBadge level=\"AAA\" passes={contrastInfo.aaa} t={t} />\n </div>\n ) : null}\n\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-sm)]\">\n <div\n className=\"ds:size-8 ds:rounded-[var(--radius-sm)] ds:border ds:border-[color:var(--border)] ds:bg-[var(--swatch-bg)]\"\n // eslint-disable-next-line react/forbid-dom-props -- live picked colour injected via --swatch-bg CSS variable\n style={{ ['--swatch-bg' as string]: hslToHex(currentHsl) }}\n aria-hidden=\"true\"\n />\n <span className=\"ds:text-[length:var(--font-size-sm)] ds:text-[var(--muted-foreground)] ds:tabular-nums\">\n {formatOutput(currentHsl, format)}\n </span>\n </div>\n </>\n );\n\n const panelContent = (\n <div className={compact ? PANEL_COMPACT_CLASSES : PANEL_CLASSES}>\n {swatchGrid}\n {fullControls}\n </div>\n );\n\n if (variant === 'inline') {\n return (\n <div\n ref={ref}\n id={pickerId}\n className={className}\n aria-describedby={ctx.describedBy || undefined}\n aria-invalid={ctx.invalid || undefined}\n aria-disabled={effectiveDisabled || undefined}\n data-component=\"color-picker\"\n data-component-id={pickerId}\n data-testid=\"color-picker\"\n >\n {panelContent}\n </div>\n );\n }\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild disabled={effectiveDisabled}>\n {/* eslint-disable-next-line jsx-a11y/role-supports-aria-props -- FormField propagates invalid state to its trigger; users rely on this for validation announcements */}\n <button\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n id={pickerId}\n aria-describedby={ctx.describedBy || undefined}\n aria-invalid={ctx.invalid || undefined}\n // In compact mode the trigger only renders the swatch (which is\n // aria-hidden). Provide a fallback name so the button is named\n // for AT regardless of variant. The current value is announced\n // separately via the hex/HSL output inside the popover.\n aria-label={\n compact\n ? t('ui.inputs.colorPicker.triggerLabel', 'Choose a colour')\n : undefined\n }\n className={triggerVariants({ size, className })}\n data-component=\"color-picker\"\n data-component-id={pickerId}\n data-testid=\"color-picker-trigger\"\n >\n <span\n className={`ds:inline-block ds:size-5 ds:rounded-[var(--radius-sm)] ds:border ds:border-[color:var(--border)] ds:shrink-0 ds:bg-[var(--swatch-bg)]${compact ? '' : ' ds:me-[var(--spacing-sm)]'}`}\n aria-hidden=\"true\"\n // eslint-disable-next-line react/forbid-dom-props -- trigger preview swatch shows current picked colour via --swatch-bg\n style={{ ['--swatch-bg' as string]: hslToHex(currentHsl) }}\n />\n {compact ? null : (\n <span className=\"ds:text-start ds:truncate ds:tabular-nums\">\n {formatOutput(currentHsl, format)}\n </span>\n )}\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n sideOffset={4}\n align=\"start\"\n className={POPOVER_CONTENT_CLASSES}\n >\n {panelContent}\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n },\n);\n\nColorPicker.displayName = 'ColorPicker';\n\nfunction ContrastBadge({\n level,\n passes,\n t,\n}: {\n level: string;\n passes: boolean;\n t: (key: string, fallback: string) => string;\n}) {\n return (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n <abbr\n title={`Web Content Accessibility Guidelines Level ${level}`}\n className=\"ds:no-underline ds:font-medium\"\n >\n {level}\n </abbr>\n {passes ? (\n <Check\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:text-[var(--success)]\"\n />\n ) : (\n <X\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:text-[var(--destructive)]\"\n />\n )}\n <span className=\"ds:sr-only\">\n {passes\n ? t('ui.inputs.colorPicker.contrastPass', 'Pass')\n : t('ui.inputs.colorPicker.contrastFail', 'Fail')}\n </span>\n </span>\n );\n}\n\nfunction SliderWithGradient({\n label,\n gradient,\n min,\n max,\n value,\n onChange,\n formatValue,\n disabled,\n}: {\n label: string;\n gradient: string;\n min: number;\n max: number;\n value: number;\n onChange: (v: number) => void;\n formatValue: (v: number) => string;\n disabled: boolean;\n}) {\n return (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <label className=\"ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]\">\n {label}\n </label>\n <div className=\"ds:relative\">\n <div\n className=\"ds:absolute ds:inset-0 ds:rounded-[var(--radius-full)] ds:pointer-events-none ds:bg-[image:var(--slider-gradient)]\"\n // eslint-disable-next-line react/forbid-dom-props -- hue/saturation/lightness gradient derived from live HSL, no token equivalent\n style={{ ['--slider-gradient' as string]: gradient }}\n aria-hidden=\"true\"\n />\n <Slider\n min={min}\n max={max}\n step={1}\n value={[value]}\n onValueChange={([v]) => onChange(v)}\n aria-label={label}\n formatValue={formatValue}\n disabled={disabled}\n className={TRANSPARENT_SLIDER}\n />\n </div>\n </div>\n );\n}\n"],"names":["colorPickerAgent","handle","args","hexToHsl","hex","h","g","b","a","rgbToHsl","r","max","min","l","hue","sat","d","hslToHex","hsl","hslToRgbComponents","toHex","n","base","hslToRgba","ri","gi","bi","s","q","p","hueToRgb","t","tt","formatOutput","format","parseInput","value","trimmed","body","hslaMatch","rgbaMatch","relativeLuminance","linearise","c","contrastRatio","fg","bg","lum1","lum2","lighter","darker","meetsAA","ratio","meetsAAA","APPOINTMENT_PALETTE","BRAND_PALETTE","COLS","triggerVariants","cva","swatchVariants","PANEL_CLASSES","OPACITY_CHECKER_CLASSES","PANEL_COMPACT_CLASSES","POPOVER_CONTENT_CLASSES","HEX_INPUT_CLASSES","TRANSPARENT_SLIDER","ColorPicker","forwardRef","props","ref","defaultValue","onChange","allowOpacity","palette","against","size","disabled","variant","compact","className","useTranslation","ctx","useFormField","generatedId","useId","pickerId","effectiveDisabled","isControlled","internalHsl","setInternalHsl","useState","initial","parsed","currentHsl","useMemo","emitChange","useCallback","finalHsl","hexInput","setHexInput","hexError","setHexError","revertTimerRef","useRef","currentHslRef","useEffect","handleHexBlur","swatches","item","currentHex","selectedSwatchIndex","gridRef","focusedIndex","setFocusedIndex","focusSwatch","index","cells","_a","handleGridKeyDown","event","total","next","lastRowStart","open","setOpen","agentHandle","useAgentRegistration","contrastInfo","bgHsl","swatchGrid","jsx","_swatch","i","rowStart","j","idx","sel","Check","fullControls","jsxs","Fragment","e","SliderWithGradient","v","Slider","ContrastBadge","panelContent","Popover","level","passes","X","label","gradient","formatValue"],"mappings":"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"}