@alfadocs/ui-kit-debug 0.1.9 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (747) hide show
  1. package/README.md +30 -0
  2. package/dist/_chunks/accordion-DOmxGEWU.js +228 -0
  3. package/dist/_chunks/accordion-DOmxGEWU.js.map +1 -0
  4. package/dist/_chunks/{agenda-card-DwLIxgi7.js → agenda-card-CalZqycc.js} +12 -3
  5. package/dist/_chunks/agenda-card-CalZqycc.js.map +1 -0
  6. package/dist/_chunks/{agenda-tray-DUvengGQ.js → agenda-tray-3ffFDQZC.js} +54 -51
  7. package/dist/_chunks/agenda-tray-3ffFDQZC.js.map +1 -0
  8. package/dist/_chunks/{ai-prompt-input.agent-0NHYLTWD.js → ai-prompt-input-BBiDlEIS.js} +231 -231
  9. package/dist/_chunks/ai-prompt-input-BBiDlEIS.js.map +1 -0
  10. package/dist/_chunks/{alert-BlOUMkXj.js → alert-B1sj8Ss0.js} +24 -14
  11. package/dist/_chunks/alert-B1sj8Ss0.js.map +1 -0
  12. package/dist/_chunks/{apexcharts-theme-BkSShpEy.js → apexcharts-theme-BJigns_V.js} +7 -2
  13. package/dist/_chunks/{apexcharts-theme-BkSShpEy.js.map → apexcharts-theme-BJigns_V.js.map} +1 -1
  14. package/dist/_chunks/{app-frame-6d7Lu4ea.js → app-frame-CDJOgPXe.js} +7 -16
  15. package/dist/_chunks/app-frame-CDJOgPXe.js.map +1 -0
  16. package/dist/_chunks/aspect-ratio-DeSNzASA.js.map +1 -1
  17. package/dist/_chunks/{audio-recorder.agent--VKeykUp.js → audio-recorder-B4U1LuiQ.js} +161 -162
  18. package/dist/_chunks/audio-recorder-B4U1LuiQ.js.map +1 -0
  19. package/dist/_chunks/{audio-visualiser-CeMPCZkd.js → audio-visualiser-ByDEFLNm.js} +25 -19
  20. package/dist/_chunks/audio-visualiser-ByDEFLNm.js.map +1 -0
  21. package/dist/_chunks/autocomplete-D4oUZbsP.js +466 -0
  22. package/dist/_chunks/autocomplete-D4oUZbsP.js.map +1 -0
  23. package/dist/_chunks/avatar-Dcr6XuDQ.js.map +1 -1
  24. package/dist/_chunks/{badge-mrstWxve.js → badge-DKFbntoa.js} +16 -13
  25. package/dist/_chunks/badge-DKFbntoa.js.map +1 -0
  26. package/dist/_chunks/{balance-cell-renderer-5CA7zpAi.js → balance-cell-renderer-B8zgIM-m.js} +63 -44
  27. package/dist/_chunks/balance-cell-renderer-B8zgIM-m.js.map +1 -0
  28. package/dist/_chunks/{breadcrumb.agent-GM2hAKFX.js → breadcrumb-D1snXjPb.js} +165 -157
  29. package/dist/_chunks/breadcrumb-D1snXjPb.js.map +1 -0
  30. package/dist/_chunks/{button-7mLWcMp_.js → button-DD_0Xdmr.js} +12 -2
  31. package/dist/_chunks/button-DD_0Xdmr.js.map +1 -0
  32. package/dist/_chunks/button-group-CONver7M.js.map +1 -1
  33. package/dist/_chunks/button.agent-BuGZBktn.js.map +1 -1
  34. package/dist/_chunks/{calendar-nGEgelJs.js → calendar-zy0tUUVG.js} +13 -18
  35. package/dist/_chunks/calendar-zy0tUUVG.js.map +1 -0
  36. package/dist/_chunks/{card-BEy58ZKp.js → card-CWzuTLYE.js} +40 -34
  37. package/dist/_chunks/card-CWzuTLYE.js.map +1 -0
  38. package/dist/_chunks/{chart.agent-_pRYS17d.js → chart-BLvFl169.js} +147 -131
  39. package/dist/_chunks/chart-BLvFl169.js.map +1 -0
  40. package/dist/_chunks/chat-container-ClzsWXp2.js +220 -0
  41. package/dist/_chunks/chat-container-ClzsWXp2.js.map +1 -0
  42. package/dist/_chunks/chat-input-DOlsB1fm.js +333 -0
  43. package/dist/_chunks/chat-input-DOlsB1fm.js.map +1 -0
  44. package/dist/_chunks/{chat-message-ByouZpPP.js → chat-message-DoAhgUTj.js} +23 -13
  45. package/dist/_chunks/chat-message-DoAhgUTj.js.map +1 -0
  46. package/dist/_chunks/checkbox-CtPM6Rup.js.map +1 -1
  47. package/dist/_chunks/checkbox-group-BTdEB6Yo.js.map +1 -1
  48. package/dist/_chunks/{collapsible.agent-DkS1jVyn.js → collapsible-CuxUBoHJ.js} +97 -99
  49. package/dist/_chunks/collapsible-CuxUBoHJ.js.map +1 -0
  50. package/dist/_chunks/{color-picker-94qcBZqZ.js → color-picker-CTIcHlDF.js} +111 -45
  51. package/dist/_chunks/color-picker-CTIcHlDF.js.map +1 -0
  52. package/dist/_chunks/combobox-BLWruOxK.js +459 -0
  53. package/dist/_chunks/combobox-BLWruOxK.js.map +1 -0
  54. package/dist/_chunks/command-palette-C_vgSgrI.js +441 -0
  55. package/dist/_chunks/command-palette-C_vgSgrI.js.map +1 -0
  56. package/dist/_chunks/{date-picker-BqPTn7bO.js → date-picker-B1PO1ZQP.js} +190 -181
  57. package/dist/_chunks/{date-picker-BqPTn7bO.js.map → date-picker-B1PO1ZQP.js.map} +1 -1
  58. package/dist/_chunks/{date-range-picker-B2hGsffw.js → date-range-picker-mix2nEVC.js} +21 -8
  59. package/dist/_chunks/date-range-picker-mix2nEVC.js.map +1 -0
  60. package/dist/_chunks/{date-time-picker-Bzt0S8yO.js → date-time-picker-Dnong_BY.js} +30 -15
  61. package/dist/_chunks/date-time-picker-Dnong_BY.js.map +1 -0
  62. package/dist/_chunks/{description-list-DvJbp6Yg.js → description-list-BYA77Yud.js} +26 -23
  63. package/dist/_chunks/description-list-BYA77Yud.js.map +1 -0
  64. package/dist/_chunks/dialog-BPD7wlGE.js +211 -0
  65. package/dist/_chunks/dialog-BPD7wlGE.js.map +1 -0
  66. package/dist/_chunks/dropdown-menu-CpiF6CPz.js +300 -0
  67. package/dist/_chunks/dropdown-menu-CpiF6CPz.js.map +1 -0
  68. package/dist/_chunks/{empty-state-DQPtRp2b.js → empty-state-3CLJIXSj.js} +132 -101
  69. package/dist/_chunks/empty-state-3CLJIXSj.js.map +1 -0
  70. package/dist/_chunks/file-upload-C947ACDK.js +829 -0
  71. package/dist/_chunks/file-upload-C947ACDK.js.map +1 -0
  72. package/dist/_chunks/flag-DZ6V7-hU.js.map +1 -1
  73. package/dist/_chunks/{floating-action-button-Cnw-f6AG.js → floating-action-button-C8OYj8mE.js} +9 -2
  74. package/dist/_chunks/floating-action-button-C8OYj8mE.js.map +1 -0
  75. package/dist/_chunks/{form-field-BfsPLTSc.js → form-field-Bmkeh7WY.js} +12 -11
  76. package/dist/_chunks/form-field-Bmkeh7WY.js.map +1 -0
  77. package/dist/_chunks/{form-field-context-94LwgYTQ.js → form-field-context-B3APVHKx.js} +4 -2
  78. package/dist/_chunks/form-field-context-B3APVHKx.js.map +1 -0
  79. package/dist/_chunks/{freemium-paywall.agent-_nQqLyRF.js → freemium-paywall-CrVefV0M.js} +124 -117
  80. package/dist/_chunks/freemium-paywall-CrVefV0M.js.map +1 -0
  81. package/dist/_chunks/{header-BGn1mRp8.js → header-D0ULgQl3.js} +69 -68
  82. package/dist/_chunks/header-D0ULgQl3.js.map +1 -0
  83. package/dist/_chunks/{icon-button-Wnnde5lc.js → icon-button-C4CGcYuz.js} +11 -3
  84. package/dist/_chunks/icon-button-C4CGcYuz.js.map +1 -0
  85. package/dist/_chunks/icon-button-group-DeV3FpNY.js.map +1 -1
  86. package/dist/_chunks/{kbd-8baVw3KU.js → kbd-Cglkd7CY.js} +6 -2
  87. package/dist/_chunks/kbd-Cglkd7CY.js.map +1 -0
  88. package/dist/_chunks/{key-value-pair-JRFS9Xrh.js → key-value-pair-CgWvAIGb.js} +2 -2
  89. package/dist/_chunks/key-value-pair-CgWvAIGb.js.map +1 -0
  90. package/dist/_chunks/{leo-sidebar-BwINPdix.js → leo-sidebar-CfEY-xi2.js} +16 -20
  91. package/dist/_chunks/leo-sidebar-CfEY-xi2.js.map +1 -0
  92. package/dist/_chunks/{link-QheANk74.js → link-BcYW1eNM.js} +48 -35
  93. package/dist/_chunks/link-BcYW1eNM.js.map +1 -0
  94. package/dist/_chunks/list-qP6p0NTw.js +434 -0
  95. package/dist/_chunks/list-qP6p0NTw.js.map +1 -0
  96. package/dist/_chunks/live-region-C41SO3cA.js.map +1 -1
  97. package/dist/_chunks/{logo-BpFoCL-s.js → logo-_Z-jLq80.js} +155 -26
  98. package/dist/_chunks/logo-_Z-jLq80.js.map +1 -0
  99. package/dist/_chunks/{matrix-rain-BEkvux64.js → matrix-rain-CRPMXcVx.js} +8 -2
  100. package/dist/_chunks/matrix-rain-CRPMXcVx.js.map +1 -0
  101. package/dist/_chunks/{message-card-qhoGv947.js → message-card-DjvsB_3U.js} +58 -55
  102. package/dist/_chunks/message-card-DjvsB_3U.js.map +1 -0
  103. package/dist/_chunks/{message-tray-xHUCra-Y.js → message-tray-BbnAzlLH.js} +86 -91
  104. package/dist/_chunks/message-tray-BbnAzlLH.js.map +1 -0
  105. package/dist/_chunks/{multi-select.agent-Do6CeQUT.js → multi-select-wqqrgjUQ.js} +326 -291
  106. package/dist/_chunks/multi-select-wqqrgjUQ.js.map +1 -0
  107. package/dist/_chunks/{navigation-menu.agent-D69ND6Qq.js → navigation-menu-ClbHeawy.js} +136 -123
  108. package/dist/_chunks/navigation-menu-ClbHeawy.js.map +1 -0
  109. package/dist/_chunks/normalize-diacritics-BNGbFNlJ.js.map +1 -1
  110. package/dist/_chunks/{notification-card-CsVEYJE-.js → notification-card-uTPEvAQS.js} +22 -22
  111. package/dist/_chunks/notification-card-uTPEvAQS.js.map +1 -0
  112. package/dist/_chunks/{notification-tray-DTXMq42J.js → notification-tray-PGtMqXbP.js} +84 -80
  113. package/dist/_chunks/notification-tray-PGtMqXbP.js.map +1 -0
  114. package/dist/_chunks/{number-input-fvGmnRy9.js → number-input-Q7wkHnvQ.js} +7 -3
  115. package/dist/_chunks/number-input-Q7wkHnvQ.js.map +1 -0
  116. package/dist/_chunks/{otp-input-EglXOUue.js → otp-input-C9gUByF0.js} +6 -3
  117. package/dist/_chunks/otp-input-C9gUByF0.js.map +1 -0
  118. package/dist/_chunks/{pagination.agent-BkZQl45y.js → pagination-3AC4zTsi.js} +234 -194
  119. package/dist/_chunks/pagination-3AC4zTsi.js.map +1 -0
  120. package/dist/_chunks/{password-input-D6kuYXmr.js → password-input-C4LmjIH1.js} +6 -9
  121. package/dist/_chunks/password-input-C4LmjIH1.js.map +1 -0
  122. package/dist/_chunks/{patient-shell-BRmrrUUW.js → patient-shell-BlsEUKWB.js} +10 -15
  123. package/dist/_chunks/{patient-shell-BRmrrUUW.js.map → patient-shell-BlsEUKWB.js.map} +1 -1
  124. package/dist/_chunks/{payment-form-BWaXas8z.js → payment-form-B_BdHwjb.js} +197 -188
  125. package/dist/_chunks/payment-form-B_BdHwjb.js.map +1 -0
  126. package/dist/_chunks/{pdf-viewer.agent-BaGEDheA.js → pdf-viewer-CZIfY08H.js} +270 -241
  127. package/dist/_chunks/pdf-viewer-CZIfY08H.js.map +1 -0
  128. package/dist/_chunks/{phone-input-C8Op4sEc.js → phone-input-CSHJOJ13.js} +4 -9
  129. package/dist/_chunks/phone-input-CSHJOJ13.js.map +1 -0
  130. package/dist/_chunks/popover-DekUKNBk.js +293 -0
  131. package/dist/_chunks/popover-DekUKNBk.js.map +1 -0
  132. package/dist/_chunks/{privacy-lock.agent-C1i1-T58.js → privacy-lock-BKsI6ReN.js} +117 -109
  133. package/dist/_chunks/privacy-lock-BKsI6ReN.js.map +1 -0
  134. package/dist/_chunks/progress-C11tqhoI.js +298 -0
  135. package/dist/_chunks/progress-C11tqhoI.js.map +1 -0
  136. package/dist/_chunks/radio-DvF59ThA.js.map +1 -1
  137. package/dist/_chunks/radio-group-Cz1a4QCA.js.map +1 -1
  138. package/dist/_chunks/react-day-picker-C04L_28V.js.map +1 -1
  139. package/dist/_chunks/{recaptcha-widget.agent-BGHpU5zD.js → recaptcha-widget-NyfOfLII.js} +95 -86
  140. package/dist/_chunks/recaptcha-widget-NyfOfLII.js.map +1 -0
  141. package/dist/_chunks/resizable-mpXXyIsN.js +483 -0
  142. package/dist/_chunks/resizable-mpXXyIsN.js.map +1 -0
  143. package/dist/_chunks/{rich-text-editor.agent-DnE125Tz.js → rich-text-editor-C7TCIlQO.js} +298 -209
  144. package/dist/_chunks/rich-text-editor-C7TCIlQO.js.map +1 -0
  145. package/dist/_chunks/safe-image-src-DstKgCo7.js.map +1 -1
  146. package/dist/_chunks/{scroll-area-DLr5w9Dd.js → scroll-area-DEDU-lp-.js} +67 -54
  147. package/dist/_chunks/scroll-area-DEDU-lp-.js.map +1 -0
  148. package/dist/_chunks/{search-bar.agent-DxFAxctc.js → search-bar-BTDfgYtg.js} +291 -268
  149. package/dist/_chunks/search-bar-BTDfgYtg.js.map +1 -0
  150. package/dist/_chunks/{search-input-Xw3cdWXW.js → search-input-CdJIEjFo.js} +116 -107
  151. package/dist/_chunks/search-input-CdJIEjFo.js.map +1 -0
  152. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +1 -1
  153. package/dist/_chunks/{select-DY1Cb2Tg.js → select-y6bXV1f1.js} +84 -83
  154. package/dist/_chunks/select-y6bXV1f1.js.map +1 -0
  155. package/dist/_chunks/{separator-B4wXDLNC.js → separator-CYU_bGFn.js} +2 -5
  156. package/dist/_chunks/separator-CYU_bGFn.js.map +1 -0
  157. package/dist/_chunks/{sheet-B9kH9pcI.js → sheet-4tgMFwj0.js} +135 -60
  158. package/dist/_chunks/sheet-4tgMFwj0.js.map +1 -0
  159. package/dist/_chunks/{sidebar-CHF5xr_P.js → sidebar-Bx3wCDyy.js} +546 -457
  160. package/dist/_chunks/sidebar-Bx3wCDyy.js.map +1 -0
  161. package/dist/_chunks/{sign-in-with-alfadocs-button-BN_FPGHT.js → sign-in-with-alfadocs-button-B9UrqOqH.js} +9 -5
  162. package/dist/_chunks/sign-in-with-alfadocs-button-B9UrqOqH.js.map +1 -0
  163. package/dist/_chunks/{signature-capture.agent-BpeDwFht.js → signature-capture-DjMlFOzS.js} +210 -212
  164. package/dist/_chunks/signature-capture-DjMlFOzS.js.map +1 -0
  165. package/dist/_chunks/{skeleton-dtqyF09N.js → skeleton-CZbwyJAA.js} +9 -3
  166. package/dist/_chunks/skeleton-CZbwyJAA.js.map +1 -0
  167. package/dist/_chunks/skip-link-DmZ3c6cb.js.map +1 -1
  168. package/dist/_chunks/{slider-CcsQTZTA.js → slider-BT2bZWsy.js} +138 -134
  169. package/dist/_chunks/slider-BT2bZWsy.js.map +1 -0
  170. package/dist/_chunks/{slot-grid-D_l5VsHG.js → slot-grid-CgpYgBkW.js} +105 -95
  171. package/dist/_chunks/slot-grid-CgpYgBkW.js.map +1 -0
  172. package/dist/_chunks/{sparkline.agent-56Sj7nOP.js → sparkline-_gy8aJDG.js} +107 -100
  173. package/dist/_chunks/sparkline-_gy8aJDG.js.map +1 -0
  174. package/dist/_chunks/{spinner-GCcv67vh.js → spinner-DLaYfLPl.js} +66 -14
  175. package/dist/_chunks/spinner-DLaYfLPl.js.map +1 -0
  176. package/dist/_chunks/{stat-DUB6g90R.js → stat-B9PHSPbN.js} +45 -27
  177. package/dist/_chunks/stat-B9PHSPbN.js.map +1 -0
  178. package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js.map +1 -1
  179. package/dist/_chunks/{stepper-calendar.agent-9iT3ClIB.js → stepper-calendar-BLOJUE0-.js} +189 -187
  180. package/dist/_chunks/stepper-calendar-BLOJUE0-.js.map +1 -0
  181. package/dist/_chunks/stepper-progress-jFY8BSf7.js +208 -0
  182. package/dist/_chunks/stepper-progress-jFY8BSf7.js.map +1 -0
  183. package/dist/_chunks/streaming-text-BgjCTVOw.js.map +1 -1
  184. package/dist/_chunks/{suggestion-chip-DhFrkRPj.js → suggestion-chip-C4Jz0LrM.js} +50 -52
  185. package/dist/_chunks/suggestion-chip-C4Jz0LrM.js.map +1 -0
  186. package/dist/_chunks/suggestion-chip.agent-6sNWFj7m.js.map +1 -1
  187. package/dist/_chunks/{switch-BYEH8I53.js → switch-C0psfIQF.js} +2 -2
  188. package/dist/_chunks/switch-C0psfIQF.js.map +1 -0
  189. package/dist/_chunks/{tabs.agent-h7NvsTR1.js → tabs-DaFA3Muo.js} +183 -155
  190. package/dist/_chunks/tabs-DaFA3Muo.js.map +1 -0
  191. package/dist/_chunks/{tag-BqidXKo3.js → tag-DuLMjRbF.js} +90 -32
  192. package/dist/_chunks/tag-DuLMjRbF.js.map +1 -0
  193. package/dist/_chunks/{task-card-CY5ztNkU.js → task-card-Dw_ZJDL8.js} +5 -2
  194. package/dist/_chunks/task-card-Dw_ZJDL8.js.map +1 -0
  195. package/dist/_chunks/{task-tray-CCoUdorl.js → task-tray-XlIW9ueh.js} +50 -49
  196. package/dist/_chunks/task-tray-XlIW9ueh.js.map +1 -0
  197. package/dist/_chunks/{text-area-C_M8wliK.js → text-area-CO9Dz0qX.js} +2 -2
  198. package/dist/_chunks/text-area-CO9Dz0qX.js.map +1 -0
  199. package/dist/_chunks/{text-input-BX39e6T6.js → text-input-DZwt9L8H.js} +65 -62
  200. package/dist/_chunks/text-input-DZwt9L8H.js.map +1 -0
  201. package/dist/_chunks/{theme-root-DDb0TJjd.js → theme-root-CSKD5ZRm.js} +9 -2
  202. package/dist/_chunks/{theme-root-DDb0TJjd.js.map → theme-root-CSKD5ZRm.js.map} +1 -1
  203. package/dist/_chunks/{theme-toggle.agent-btmXTWdW.js → theme-toggle-B9zzCnvl.js} +179 -177
  204. package/dist/_chunks/theme-toggle-B9zzCnvl.js.map +1 -0
  205. package/dist/_chunks/{time-picker-B8AMIrX7.js → time-picker-DvPUmHH-.js} +95 -93
  206. package/dist/_chunks/time-picker-DvPUmHH-.js.map +1 -0
  207. package/dist/_chunks/{timeline.agent-CRPza9wc.js → timeline-BvmnQadS.js} +96 -96
  208. package/dist/_chunks/timeline-BvmnQadS.js.map +1 -0
  209. package/dist/_chunks/timestamp-BV2lC-wV.js.map +1 -1
  210. package/dist/_chunks/{toast.agent-BjEGuq1Z.js → toast.agent-BwKXA0km.js} +46 -8
  211. package/dist/_chunks/{toast.agent-BjEGuq1Z.js.map → toast.agent-BwKXA0km.js.map} +1 -1
  212. package/dist/_chunks/{tooth-scheme.agent-CWrQBjJM.js → tooth-scheme-3mITSXiZ.js} +146 -162
  213. package/dist/_chunks/tooth-scheme-3mITSXiZ.js.map +1 -0
  214. package/dist/_chunks/transaction-chip-DE6DITun.js +196 -0
  215. package/dist/_chunks/transaction-chip-DE6DITun.js.map +1 -0
  216. package/dist/_chunks/{transcript-panel.agent-BXEYP6w-.js → transcript-panel-Bx5ANMsv.js} +110 -101
  217. package/dist/_chunks/transcript-panel-Bx5ANMsv.js.map +1 -0
  218. package/dist/_chunks/{typing-indicator-CbUBf-Dx.js → typing-indicator-BZ5jXZPn.js} +27 -5
  219. package/dist/_chunks/typing-indicator-BZ5jXZPn.js.map +1 -0
  220. package/dist/_chunks/use-prefers-reduced-motion-BMwIQRjB.js.map +1 -1
  221. package/dist/_chunks/{use-theme-BMUhembX.js → use-theme-B1cwAXJR.js} +2 -5
  222. package/dist/_chunks/use-theme-B1cwAXJR.js.map +1 -0
  223. package/dist/_chunks/{visually-hidden-Bw7vBHLm.js → visually-hidden-BHxEUGyT.js} +11 -2
  224. package/dist/_chunks/{visually-hidden-Bw7vBHLm.js.map → visually-hidden-BHxEUGyT.js.map} +1 -1
  225. package/dist/_chunks/{warning-stack-8Pa3pekh.js → warning-stack-VygGHSqC.js} +11 -13
  226. package/dist/_chunks/warning-stack-VygGHSqC.js.map +1 -0
  227. package/dist/_chunks/{workflow-map-D2A7rTEG.js → workflow-map-C-nlogPC.js} +430 -452
  228. package/dist/_chunks/workflow-map-C-nlogPC.js.map +1 -0
  229. package/dist/agent-catalog.json +594 -15
  230. package/dist/brand/logo-asset/Alfadocs_Logo_BW.d.ts.map +1 -1
  231. package/dist/brand/logo-asset/Alfadocs_Logo_Main.d.ts.map +1 -1
  232. package/dist/brand/logo-asset/Alfadocs_Logo_Mark.d.ts.map +1 -1
  233. package/dist/brand/logo-asset/Alfadocs_Logo_Neg.d.ts.map +1 -1
  234. package/dist/brand/logo-asset/Alfadocs_Logo_Purple.d.ts.map +1 -1
  235. package/dist/components/_shared/date-locale.d.ts.map +1 -1
  236. package/dist/components/_shared/index.d.ts +2 -2
  237. package/dist/components/_shared/index.d.ts.map +1 -1
  238. package/dist/components/_shared/normalize-diacritics.d.ts.map +1 -1
  239. package/dist/components/_shared/safe-html.d.ts.map +1 -1
  240. package/dist/components/_shared/safe-image-src.d.ts.map +1 -1
  241. package/dist/components/_shared/use-focus-trap.d.ts.map +1 -1
  242. package/dist/components/accordion/accordion.agent.d.ts.map +1 -1
  243. package/dist/components/accordion/accordion.d.ts.map +1 -1
  244. package/dist/components/accordion/index.d.ts +1 -1
  245. package/dist/components/accordion/index.d.ts.map +1 -1
  246. package/dist/components/accordion/index.js +5 -6
  247. package/dist/components/accordion/index.js.map +1 -1
  248. package/dist/components/agenda-card/agenda-card.d.ts.map +1 -1
  249. package/dist/components/agenda-card/index.js +1 -1
  250. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -1
  251. package/dist/components/agenda-tray/agenda-tray.d.ts +1 -1
  252. package/dist/components/agenda-tray/agenda-tray.d.ts.map +1 -1
  253. package/dist/components/agenda-tray/index.js +1 -1
  254. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -1
  255. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts +1 -1
  256. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  257. package/dist/components/ai-prompt-input/index.js +1 -1
  258. package/dist/components/alert/alert.d.ts.map +1 -1
  259. package/dist/components/alert/index.d.ts +1 -1
  260. package/dist/components/alert/index.d.ts.map +1 -1
  261. package/dist/components/alert/index.js +1 -1
  262. package/dist/components/app-frame/app-frame.d.ts.map +1 -1
  263. package/dist/components/app-frame/index.js +1 -1
  264. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -1
  265. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -1
  266. package/dist/components/audio-recorder/audio-recorder.d.ts.map +1 -1
  267. package/dist/components/audio-recorder/index.js +1 -1
  268. package/dist/components/audio-visualiser/audio-visualiser.d.ts.map +1 -1
  269. package/dist/components/audio-visualiser/index.js +1 -1
  270. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -1
  271. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  272. package/dist/components/autocomplete/index.js +1 -1
  273. package/dist/components/avatar/avatar.d.ts.map +1 -1
  274. package/dist/components/badge/badge.d.ts.map +1 -1
  275. package/dist/components/badge/index.js +1 -1
  276. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -1
  277. package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
  278. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  279. package/dist/components/breadcrumb/index.js +1 -1
  280. package/dist/components/button/button.agent.d.ts.map +1 -1
  281. package/dist/components/button/button.d.ts.map +1 -1
  282. package/dist/components/button/icon-button.d.ts.map +1 -1
  283. package/dist/components/button/index.js +2 -2
  284. package/dist/components/button-group/button-group.d.ts.map +1 -1
  285. package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
  286. package/dist/components/calendar/calendar.d.ts.map +1 -1
  287. package/dist/components/calendar/contrast-warning.d.ts.map +1 -1
  288. package/dist/components/calendar/index.js +1 -1
  289. package/dist/components/card/card.d.ts.map +1 -1
  290. package/dist/components/card/index.js +1 -1
  291. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  292. package/dist/components/chart/chart.d.ts.map +1 -1
  293. package/dist/components/chart/index.d.ts +1 -1
  294. package/dist/components/chart/index.d.ts.map +1 -1
  295. package/dist/components/chart/index.js +1 -1
  296. package/dist/components/chat-container/chat-container.d.ts +1 -1
  297. package/dist/components/chat-container/chat-container.d.ts.map +1 -1
  298. package/dist/components/chat-container/index.js +2 -3
  299. package/dist/components/chat-container/index.js.map +1 -1
  300. package/dist/components/chat-input/chat-input.d.ts +1 -1
  301. package/dist/components/chat-input/chat-input.d.ts.map +1 -1
  302. package/dist/components/chat-input/index.js +3 -4
  303. package/dist/components/chat-input/index.js.map +1 -1
  304. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  305. package/dist/components/chat-message/index.js +1 -1
  306. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  307. package/dist/components/checkbox-group/checkbox-group.agent.d.ts.map +1 -1
  308. package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -1
  309. package/dist/components/checkbox-group/index.d.ts +1 -1
  310. package/dist/components/checkbox-group/index.d.ts.map +1 -1
  311. package/dist/components/collapsible/collapsible.d.ts +1 -1
  312. package/dist/components/collapsible/collapsible.d.ts.map +1 -1
  313. package/dist/components/collapsible/index.d.ts +1 -1
  314. package/dist/components/collapsible/index.d.ts.map +1 -1
  315. package/dist/components/collapsible/index.js +1 -1
  316. package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -1
  317. package/dist/components/color-picker/color-picker.d.ts.map +1 -1
  318. package/dist/components/color-picker/index.js +1 -1
  319. package/dist/components/combobox/combobox.agent.d.ts.map +1 -1
  320. package/dist/components/combobox/combobox.d.ts.map +1 -1
  321. package/dist/components/combobox/index.d.ts +1 -1
  322. package/dist/components/combobox/index.d.ts.map +1 -1
  323. package/dist/components/combobox/index.js +1 -1
  324. package/dist/components/command-palette/command-palette.d.ts +46 -13
  325. package/dist/components/command-palette/command-palette.d.ts.map +1 -1
  326. package/dist/components/command-palette/index.js +1 -1
  327. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -1
  328. package/dist/components/data-table/cell-renderers/balance-cell-renderer.d.ts.map +1 -1
  329. package/dist/components/data-table/cell-renderers/color-dot-cell-renderer.d.ts.map +1 -1
  330. package/dist/components/data-table/cell-renderers/currency-cell-renderer.d.ts.map +1 -1
  331. package/dist/components/data-table/cell-renderers/date-cell-renderer.d.ts.map +1 -1
  332. package/dist/components/data-table/cell-renderers/link-cell-renderer.d.ts.map +1 -1
  333. package/dist/components/data-table/cell-renderers/toggle-cell-renderer.d.ts.map +1 -1
  334. package/dist/components/data-table/data-table.agent.d.ts.map +1 -1
  335. package/dist/components/data-table/data-table.d.ts +3 -1
  336. package/dist/components/data-table/data-table.d.ts.map +1 -1
  337. package/dist/components/data-table/index.js +1 -1
  338. package/dist/components/data-table/toolbar.d.ts +6 -5
  339. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  340. package/dist/components/date-picker/date-picker.d.ts +1 -1
  341. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  342. package/dist/components/date-picker/index.d.ts +1 -1
  343. package/dist/components/date-picker/index.d.ts.map +1 -1
  344. package/dist/components/date-picker/index.js +1 -1
  345. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
  346. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  347. package/dist/components/date-range-picker/index.js +1 -1
  348. package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
  349. package/dist/components/date-time-picker/index.d.ts +1 -1
  350. package/dist/components/date-time-picker/index.d.ts.map +1 -1
  351. package/dist/components/date-time-picker/index.js +1 -1
  352. package/dist/components/description-list/description-list.d.ts +1 -2
  353. package/dist/components/description-list/description-list.d.ts.map +1 -1
  354. package/dist/components/description-list/index.js +1 -1
  355. package/dist/components/dialog/dialog.agent.d.ts.map +1 -1
  356. package/dist/components/dialog/dialog.d.ts +2 -2
  357. package/dist/components/dialog/dialog.d.ts.map +1 -1
  358. package/dist/components/dialog/index.js +1 -1
  359. package/dist/components/dropdown-menu/dropdown-menu.d.ts +11 -16
  360. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  361. package/dist/components/dropdown-menu/index.js +3 -4
  362. package/dist/components/dropdown-menu/index.js.map +1 -1
  363. package/dist/components/empty-state/empty-state.d.ts.map +1 -1
  364. package/dist/components/empty-state/index.js +1 -1
  365. package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -1
  366. package/dist/components/file-upload/file-upload.d.ts.map +1 -1
  367. package/dist/components/file-upload/index.d.ts +1 -1
  368. package/dist/components/file-upload/index.d.ts.map +1 -1
  369. package/dist/components/file-upload/index.js +1 -1
  370. package/dist/components/flag/flag.d.ts.map +1 -1
  371. package/dist/components/floating-action-button/floating-action-button.d.ts.map +1 -1
  372. package/dist/components/floating-action-button/index.js +1 -1
  373. package/dist/components/form-field/form-field-context.d.ts.map +1 -1
  374. package/dist/components/form-field/form-field.d.ts.map +1 -1
  375. package/dist/components/form-field/index.js +2 -2
  376. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -1
  377. package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
  378. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  379. package/dist/components/freemium-paywall/index.js +1 -1
  380. package/dist/components/header/header.d.ts.map +1 -1
  381. package/dist/components/header/index.js +1 -1
  382. package/dist/components/icon-button/index.js +1 -1
  383. package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
  384. package/dist/components/index.d.ts +1 -0
  385. package/dist/components/index.d.ts.map +1 -1
  386. package/dist/components/kbd/index.js +1 -1
  387. package/dist/components/kbd/kbd.d.ts.map +1 -1
  388. package/dist/components/key-value-pair/index.js +1 -1
  389. package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -1
  390. package/dist/components/link/index.js +1 -1
  391. package/dist/components/link/link.d.ts +1 -0
  392. package/dist/components/link/link.d.ts.map +1 -1
  393. package/dist/components/list/index.js +1 -1
  394. package/dist/components/list/list.agent.d.ts.map +1 -1
  395. package/dist/components/list/list.d.ts.map +1 -1
  396. package/dist/components/live-region/live-region.d.ts.map +1 -1
  397. package/dist/components/logo/index.js +1 -1
  398. package/dist/components/logo/logo.d.ts.map +1 -1
  399. package/dist/components/matrix-rain/index.js +1 -1
  400. package/dist/components/matrix-rain/matrix-rain.d.ts.map +1 -1
  401. package/dist/components/message-card/index.d.ts +1 -1
  402. package/dist/components/message-card/index.d.ts.map +1 -1
  403. package/dist/components/message-card/index.js +1 -1
  404. package/dist/components/message-card/message-card.d.ts.map +1 -1
  405. package/dist/components/message-tray/index.js +1 -1
  406. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  407. package/dist/components/message-tray/message-tray.d.ts +1 -1
  408. package/dist/components/message-tray/message-tray.d.ts.map +1 -1
  409. package/dist/components/multi-select/index.js +1 -1
  410. package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -1
  411. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  412. package/dist/components/navigation-menu/index.js +1 -1
  413. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -1
  414. package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
  415. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -1
  416. package/dist/components/notification-card/index.d.ts +1 -1
  417. package/dist/components/notification-card/index.d.ts.map +1 -1
  418. package/dist/components/notification-card/index.js +1 -1
  419. package/dist/components/notification-card/notification-card.d.ts.map +1 -1
  420. package/dist/components/notification-tray/index.js +1 -1
  421. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  422. package/dist/components/notification-tray/notification-tray.d.ts +1 -1
  423. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  424. package/dist/components/number-input/index.js +1 -1
  425. package/dist/components/number-input/number-input.d.ts.map +1 -1
  426. package/dist/components/number-input/use-locale-number.d.ts.map +1 -1
  427. package/dist/components/otp-input/index.js +1 -1
  428. package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -1
  429. package/dist/components/otp-input/otp-input.d.ts.map +1 -1
  430. package/dist/components/pagination/index.js +1 -1
  431. package/dist/components/pagination/pagination.d.ts +4 -6
  432. package/dist/components/pagination/pagination.d.ts.map +1 -1
  433. package/dist/components/password-input/index.js +1 -1
  434. package/dist/components/password-input/password-input.agent.d.ts.map +1 -1
  435. package/dist/components/password-input/password-input.d.ts.map +1 -1
  436. package/dist/components/payment-form/index.js +7 -8
  437. package/dist/components/payment-form/index.js.map +1 -1
  438. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
  439. package/dist/components/payment-form/payment-form.d.ts +1 -1
  440. package/dist/components/payment-form/payment-form.d.ts.map +1 -1
  441. package/dist/components/pdf-viewer/index.js +1 -1
  442. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
  443. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  444. package/dist/components/phone-input/index.d.ts +1 -1
  445. package/dist/components/phone-input/index.d.ts.map +1 -1
  446. package/dist/components/phone-input/index.js +1 -1
  447. package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -1
  448. package/dist/components/phone-input/phone-input.d.ts.map +1 -1
  449. package/dist/components/popover/index.js +3 -4
  450. package/dist/components/popover/index.js.map +1 -1
  451. package/dist/components/popover/popover.d.ts.map +1 -1
  452. package/dist/components/privacy-lock/index.js +1 -1
  453. package/dist/components/privacy-lock/privacy-lock.d.ts +1 -1
  454. package/dist/components/privacy-lock/privacy-lock.d.ts.map +1 -1
  455. package/dist/components/progress/index.js +3 -4
  456. package/dist/components/progress/index.js.map +1 -1
  457. package/dist/components/progress/progress.d.ts.map +1 -1
  458. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  459. package/dist/components/radio-group/radio.d.ts.map +1 -1
  460. package/dist/components/recaptcha-widget/index.js +1 -1
  461. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -1
  462. package/dist/components/recaptcha-widget/recaptcha-widget.d.ts.map +1 -1
  463. package/dist/components/resizable/index.d.ts +1 -1
  464. package/dist/components/resizable/index.d.ts.map +1 -1
  465. package/dist/components/resizable/index.js +1 -1
  466. package/dist/components/resizable/resizable-context.d.ts.map +1 -1
  467. package/dist/components/resizable/resizable.agent.d.ts.map +1 -1
  468. package/dist/components/resizable/resizable.d.ts.map +1 -1
  469. package/dist/components/rich-text-editor/index.js +1 -1
  470. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  471. package/dist/components/scroll-area/index.js +1 -1
  472. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
  473. package/dist/components/search-bar/index.js +1 -1
  474. package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -1
  475. package/dist/components/search-bar/search-bar.d.ts +1 -1
  476. package/dist/components/search-bar/search-bar.d.ts.map +1 -1
  477. package/dist/components/search-input/index.js +1 -1
  478. package/dist/components/search-input/search-input.agent.d.ts.map +1 -1
  479. package/dist/components/search-input/search-input.d.ts.map +1 -1
  480. package/dist/components/select/index.js +1 -1
  481. package/dist/components/select/select.agent.d.ts.map +1 -1
  482. package/dist/components/select/select.d.ts +1 -1
  483. package/dist/components/select/select.d.ts.map +1 -1
  484. package/dist/components/separator/index.js +1 -1
  485. package/dist/components/separator/separator.d.ts.map +1 -1
  486. package/dist/components/sheet/index.js +3 -4
  487. package/dist/components/sheet/index.js.map +1 -1
  488. package/dist/components/sheet/sheet.agent.d.ts.map +1 -1
  489. package/dist/components/sheet/sheet.d.ts +2 -2
  490. package/dist/components/sheet/sheet.d.ts.map +1 -1
  491. package/dist/components/sidebar/index.js +7 -8
  492. package/dist/components/sidebar/index.js.map +1 -1
  493. package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -1
  494. package/dist/components/sidebar/sidebar.d.ts +0 -2
  495. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  496. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  497. package/dist/components/sign-in-with-alfadocs-button/sign-in-with-alfadocs-button.d.ts.map +1 -1
  498. package/dist/components/signature-capture/index.js +1 -1
  499. package/dist/components/signature-capture/signature-capture.d.ts.map +1 -1
  500. package/dist/components/skeleton/index.js +1 -1
  501. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  502. package/dist/components/skip-link/skip-link.d.ts.map +1 -1
  503. package/dist/components/slider/index.js +1 -1
  504. package/dist/components/slider/slider.agent.d.ts.map +1 -1
  505. package/dist/components/slider/slider.d.ts.map +1 -1
  506. package/dist/components/slot-grid/index.js +1 -1
  507. package/dist/components/slot-grid/slot-grid.d.ts.map +1 -1
  508. package/dist/components/sparkline/index.js +1 -1
  509. package/dist/components/sparkline/sparkline.d.ts.map +1 -1
  510. package/dist/components/sparkline/use-linear-trend.d.ts.map +1 -1
  511. package/dist/components/spinner/index.js +1 -1
  512. package/dist/components/spinner/spinner.d.ts.map +1 -1
  513. package/dist/components/stat/index.js +1 -1
  514. package/dist/components/stat/stat.d.ts.map +1 -1
  515. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -1
  516. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +1 -1
  517. package/dist/components/stepper-calendar/index.js +1 -1
  518. package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts.map +1 -1
  519. package/dist/components/stepper-calendar/stepper-calendar.d.ts +1 -1
  520. package/dist/components/stepper-calendar/stepper-calendar.d.ts.map +1 -1
  521. package/dist/components/stepper-progress/index.d.ts +1 -1
  522. package/dist/components/stepper-progress/index.d.ts.map +1 -1
  523. package/dist/components/stepper-progress/index.js +1 -2
  524. package/dist/components/stepper-progress/index.js.map +1 -1
  525. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -1
  526. package/dist/components/stepper-progress/stepper-progress.d.ts +1 -1
  527. package/dist/components/stepper-progress/stepper-progress.d.ts.map +1 -1
  528. package/dist/components/streaming-text/streaming-text.d.ts.map +1 -1
  529. package/dist/components/suggestion-chip/index.js +1 -1
  530. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -1
  531. package/dist/components/suggestion-chip/suggestion-chip.d.ts.map +1 -1
  532. package/dist/components/switch/index.js +1 -1
  533. package/dist/components/switch/switch.d.ts.map +1 -1
  534. package/dist/components/tabs/index.d.ts +1 -1
  535. package/dist/components/tabs/index.d.ts.map +1 -1
  536. package/dist/components/tabs/index.js +1 -1
  537. package/dist/components/tabs/tabs.d.ts.map +1 -1
  538. package/dist/components/tag/index.js +1 -1
  539. package/dist/components/tag/tag.d.ts.map +1 -1
  540. package/dist/components/task-card/index.js +1 -1
  541. package/dist/components/task-card/task-card.d.ts.map +1 -1
  542. package/dist/components/task-tray/index.js +1 -1
  543. package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -1
  544. package/dist/components/task-tray/task-tray.d.ts +1 -1
  545. package/dist/components/task-tray/task-tray.d.ts.map +1 -1
  546. package/dist/components/text-area/index.js +1 -1
  547. package/dist/components/text-area/text-area.d.ts.map +1 -1
  548. package/dist/components/text-input/index.js +1 -1
  549. package/dist/components/text-input/text-input.d.ts.map +1 -1
  550. package/dist/components/theme-root/index.js +1 -1
  551. package/dist/components/theme-root/theme-root.d.ts.map +1 -1
  552. package/dist/components/theme-toggle/index.js +1 -1
  553. package/dist/components/theme-toggle/theme-toggle.d.ts +1 -1
  554. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -1
  555. package/dist/components/time-picker/index.js +1 -1
  556. package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -1
  557. package/dist/components/time-picker/time-picker.d.ts +1 -1
  558. package/dist/components/time-picker/time-picker.d.ts.map +1 -1
  559. package/dist/components/timeline/index.js +1 -1
  560. package/dist/components/timeline/timeline.agent.d.ts.map +1 -1
  561. package/dist/components/timeline/timeline.d.ts +1 -1
  562. package/dist/components/timeline/timeline.d.ts.map +1 -1
  563. package/dist/components/timestamp/timestamp.d.ts.map +1 -1
  564. package/dist/components/toast/index.js +1 -1
  565. package/dist/components/toast/toast.agent.d.ts.map +1 -1
  566. package/dist/components/toast/toast.d.ts.map +1 -1
  567. package/dist/components/tooth-scheme/index.js +1 -1
  568. package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -1
  569. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  570. package/dist/components/tooth-scheme/tooth-scheme.d.ts +1 -1
  571. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
  572. package/dist/components/transaction-chip/index.d.ts +3 -0
  573. package/dist/components/transaction-chip/index.d.ts.map +1 -0
  574. package/dist/components/transaction-chip/index.js +5 -0
  575. package/dist/components/transaction-chip/index.js.map +1 -0
  576. package/dist/components/transaction-chip/transaction-chip.d.ts +30 -0
  577. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -0
  578. package/dist/components/transcript-panel/index.js +1 -1
  579. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -1
  580. package/dist/components/transcript-panel/transcript-panel.d.ts +1 -1
  581. package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -1
  582. package/dist/components/typing-indicator/index.js +1 -1
  583. package/dist/components/typing-indicator/typing-indicator.d.ts.map +1 -1
  584. package/dist/components/visually-hidden/index.js +1 -1
  585. package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -1
  586. package/dist/components/warning-stack/index.js +1 -1
  587. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  588. package/dist/components/workflow/index.js +1 -1
  589. package/dist/components/workflow/workflow-card.d.ts.map +1 -1
  590. package/dist/components/workflow/workflow-editor.d.ts +1 -1
  591. package/dist/components/workflow/workflow-editor.d.ts.map +1 -1
  592. package/dist/components/workflow/workflow-map.d.ts.map +1 -1
  593. package/dist/components/workflow/workflow-types.d.ts.map +1 -1
  594. package/dist/components/workflow/workflow.agent.d.ts.map +1 -1
  595. package/dist/hooks/index.js +1 -1
  596. package/dist/hooks/use-prefers-reduced-motion.d.ts.map +1 -1
  597. package/dist/hooks/use-theme.d.ts.map +1 -1
  598. package/dist/i18n/config.d.ts.map +1 -1
  599. package/dist/i18n/config.js +36 -0
  600. package/dist/i18n/config.js.map +1 -1
  601. package/dist/i18n/resources.d.ts +36 -0
  602. package/dist/i18n/resources.d.ts.map +1 -1
  603. package/dist/index.js +394 -402
  604. package/dist/index.js.map +1 -1
  605. package/dist/locales/de.json +12 -0
  606. package/dist/locales/en.json +12 -0
  607. package/dist/locales/it.json +12 -0
  608. package/dist/patterns/leo-assistant/index.js +1 -1
  609. package/dist/patterns/leo-assistant/leo-chat-surface.d.ts.map +1 -1
  610. package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +1 -1
  611. package/dist/patterns/patient-shell/index.js +1 -1
  612. package/dist/patterns/patient-shell/patient-shell.d.ts.map +1 -1
  613. package/dist/safe-html/index.js +20 -3
  614. package/dist/safe-html/index.js.map +1 -1
  615. package/dist/tokens/apexcharts-theme.d.ts.map +1 -1
  616. package/dist/tokens.css +2 -2
  617. package/package.json +12 -2
  618. package/dist/_chunks/accordion-BEnrZmAn.js +0 -120
  619. package/dist/_chunks/accordion-BEnrZmAn.js.map +0 -1
  620. package/dist/_chunks/accordion.agent-BTjeO1Sx.js +0 -52
  621. package/dist/_chunks/accordion.agent-BTjeO1Sx.js.map +0 -1
  622. package/dist/_chunks/agenda-card-DwLIxgi7.js.map +0 -1
  623. package/dist/_chunks/agenda-tray-DUvengGQ.js.map +0 -1
  624. package/dist/_chunks/ai-prompt-input.agent-0NHYLTWD.js.map +0 -1
  625. package/dist/_chunks/alert-BlOUMkXj.js.map +0 -1
  626. package/dist/_chunks/app-frame-6d7Lu4ea.js.map +0 -1
  627. package/dist/_chunks/audio-recorder.agent--VKeykUp.js.map +0 -1
  628. package/dist/_chunks/audio-visualiser-CeMPCZkd.js.map +0 -1
  629. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js +0 -432
  630. package/dist/_chunks/autocomplete.agent-Dh7KioS6.js.map +0 -1
  631. package/dist/_chunks/badge-mrstWxve.js.map +0 -1
  632. package/dist/_chunks/balance-cell-renderer-5CA7zpAi.js.map +0 -1
  633. package/dist/_chunks/breadcrumb.agent-GM2hAKFX.js.map +0 -1
  634. package/dist/_chunks/button-7mLWcMp_.js.map +0 -1
  635. package/dist/_chunks/calendar-nGEgelJs.js.map +0 -1
  636. package/dist/_chunks/card-BEy58ZKp.js.map +0 -1
  637. package/dist/_chunks/chart.agent-_pRYS17d.js.map +0 -1
  638. package/dist/_chunks/chat-container-Dl0Kfy5a.js +0 -175
  639. package/dist/_chunks/chat-container-Dl0Kfy5a.js.map +0 -1
  640. package/dist/_chunks/chat-container.agent-CM4WModE.js +0 -27
  641. package/dist/_chunks/chat-container.agent-CM4WModE.js.map +0 -1
  642. package/dist/_chunks/chat-input-C_tMQv92.js +0 -252
  643. package/dist/_chunks/chat-input-C_tMQv92.js.map +0 -1
  644. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js +0 -69
  645. package/dist/_chunks/chat-input.agent-Bsz3ckGa.js.map +0 -1
  646. package/dist/_chunks/chat-message-ByouZpPP.js.map +0 -1
  647. package/dist/_chunks/collapsible.agent-DkS1jVyn.js.map +0 -1
  648. package/dist/_chunks/color-picker-94qcBZqZ.js.map +0 -1
  649. package/dist/_chunks/combobox.agent-CAvUkkIe.js +0 -410
  650. package/dist/_chunks/combobox.agent-CAvUkkIe.js.map +0 -1
  651. package/dist/_chunks/command-palette.agent-HatEt_EM.js +0 -391
  652. package/dist/_chunks/command-palette.agent-HatEt_EM.js.map +0 -1
  653. package/dist/_chunks/date-range-picker-B2hGsffw.js.map +0 -1
  654. package/dist/_chunks/date-time-picker-Bzt0S8yO.js.map +0 -1
  655. package/dist/_chunks/description-list-DvJbp6Yg.js.map +0 -1
  656. package/dist/_chunks/dialog.agent-Daf1TTko.js +0 -179
  657. package/dist/_chunks/dialog.agent-Daf1TTko.js.map +0 -1
  658. package/dist/_chunks/dropdown-menu-C7AZipNz.js +0 -219
  659. package/dist/_chunks/dropdown-menu-C7AZipNz.js.map +0 -1
  660. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js +0 -43
  661. package/dist/_chunks/dropdown-menu.agent-BcxIKOjK.js.map +0 -1
  662. package/dist/_chunks/empty-state-DQPtRp2b.js.map +0 -1
  663. package/dist/_chunks/file-upload.agent-DJaH2dHg.js +0 -681
  664. package/dist/_chunks/file-upload.agent-DJaH2dHg.js.map +0 -1
  665. package/dist/_chunks/floating-action-button-Cnw-f6AG.js.map +0 -1
  666. package/dist/_chunks/form-field-BfsPLTSc.js.map +0 -1
  667. package/dist/_chunks/form-field-context-94LwgYTQ.js.map +0 -1
  668. package/dist/_chunks/freemium-paywall.agent-_nQqLyRF.js.map +0 -1
  669. package/dist/_chunks/header-BGn1mRp8.js.map +0 -1
  670. package/dist/_chunks/icon-button-Wnnde5lc.js.map +0 -1
  671. package/dist/_chunks/kbd-8baVw3KU.js.map +0 -1
  672. package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +0 -1
  673. package/dist/_chunks/leo-sidebar-BwINPdix.js.map +0 -1
  674. package/dist/_chunks/link-QheANk74.js.map +0 -1
  675. package/dist/_chunks/list.agent-D0iWt4VI.js +0 -420
  676. package/dist/_chunks/list.agent-D0iWt4VI.js.map +0 -1
  677. package/dist/_chunks/logo-BpFoCL-s.js.map +0 -1
  678. package/dist/_chunks/matrix-rain-BEkvux64.js.map +0 -1
  679. package/dist/_chunks/message-card-qhoGv947.js.map +0 -1
  680. package/dist/_chunks/message-tray-xHUCra-Y.js.map +0 -1
  681. package/dist/_chunks/multi-select.agent-Do6CeQUT.js.map +0 -1
  682. package/dist/_chunks/navigation-menu.agent-D69ND6Qq.js.map +0 -1
  683. package/dist/_chunks/notification-card-CsVEYJE-.js.map +0 -1
  684. package/dist/_chunks/notification-tray-DTXMq42J.js.map +0 -1
  685. package/dist/_chunks/number-input-fvGmnRy9.js.map +0 -1
  686. package/dist/_chunks/otp-input-EglXOUue.js.map +0 -1
  687. package/dist/_chunks/pagination.agent-BkZQl45y.js.map +0 -1
  688. package/dist/_chunks/password-input-D6kuYXmr.js.map +0 -1
  689. package/dist/_chunks/payment-form-BWaXas8z.js.map +0 -1
  690. package/dist/_chunks/payment-form.agent-kuIfodCj.js +0 -31
  691. package/dist/_chunks/payment-form.agent-kuIfodCj.js.map +0 -1
  692. package/dist/_chunks/pdf-viewer.agent-BaGEDheA.js.map +0 -1
  693. package/dist/_chunks/phone-input-C8Op4sEc.js.map +0 -1
  694. package/dist/_chunks/popover-kFN8s84V.js +0 -229
  695. package/dist/_chunks/popover-kFN8s84V.js.map +0 -1
  696. package/dist/_chunks/popover.agent-K_d1cfbj.js +0 -39
  697. package/dist/_chunks/popover.agent-K_d1cfbj.js.map +0 -1
  698. package/dist/_chunks/privacy-lock.agent-C1i1-T58.js.map +0 -1
  699. package/dist/_chunks/progress-wNsqkw8I.js +0 -253
  700. package/dist/_chunks/progress-wNsqkw8I.js.map +0 -1
  701. package/dist/_chunks/progress.agent-C68rDOXL.js +0 -27
  702. package/dist/_chunks/progress.agent-C68rDOXL.js.map +0 -1
  703. package/dist/_chunks/recaptcha-widget.agent-BGHpU5zD.js.map +0 -1
  704. package/dist/_chunks/resizable.agent-CMwZzvsi.js +0 -456
  705. package/dist/_chunks/resizable.agent-CMwZzvsi.js.map +0 -1
  706. package/dist/_chunks/rich-text-editor.agent-DnE125Tz.js.map +0 -1
  707. package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +0 -1
  708. package/dist/_chunks/search-bar.agent-DxFAxctc.js.map +0 -1
  709. package/dist/_chunks/search-input-Xw3cdWXW.js.map +0 -1
  710. package/dist/_chunks/select-DY1Cb2Tg.js.map +0 -1
  711. package/dist/_chunks/separator-B4wXDLNC.js.map +0 -1
  712. package/dist/_chunks/sheet-B9kH9pcI.js.map +0 -1
  713. package/dist/_chunks/sheet.agent-QAyTOxgk.js +0 -46
  714. package/dist/_chunks/sheet.agent-QAyTOxgk.js.map +0 -1
  715. package/dist/_chunks/sidebar-CHF5xr_P.js.map +0 -1
  716. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js +0 -49
  717. package/dist/_chunks/sidebar.agent-C9TM_ZDZ.js.map +0 -1
  718. package/dist/_chunks/sign-in-with-alfadocs-button-BN_FPGHT.js.map +0 -1
  719. package/dist/_chunks/signature-capture.agent-BpeDwFht.js.map +0 -1
  720. package/dist/_chunks/skeleton-dtqyF09N.js.map +0 -1
  721. package/dist/_chunks/slider-CcsQTZTA.js.map +0 -1
  722. package/dist/_chunks/slot-grid-D_l5VsHG.js.map +0 -1
  723. package/dist/_chunks/sparkline.agent-56Sj7nOP.js.map +0 -1
  724. package/dist/_chunks/spinner-GCcv67vh.js.map +0 -1
  725. package/dist/_chunks/stat-DUB6g90R.js.map +0 -1
  726. package/dist/_chunks/stepper-calendar.agent-9iT3ClIB.js.map +0 -1
  727. package/dist/_chunks/stepper-progress-Bmen-YXB.js +0 -149
  728. package/dist/_chunks/stepper-progress-Bmen-YXB.js.map +0 -1
  729. package/dist/_chunks/stepper-progress.agent-q9InWca4.js +0 -61
  730. package/dist/_chunks/stepper-progress.agent-q9InWca4.js.map +0 -1
  731. package/dist/_chunks/suggestion-chip-DhFrkRPj.js.map +0 -1
  732. package/dist/_chunks/switch-BYEH8I53.js.map +0 -1
  733. package/dist/_chunks/tabs.agent-h7NvsTR1.js.map +0 -1
  734. package/dist/_chunks/tag-BqidXKo3.js.map +0 -1
  735. package/dist/_chunks/task-card-CY5ztNkU.js.map +0 -1
  736. package/dist/_chunks/task-tray-CCoUdorl.js.map +0 -1
  737. package/dist/_chunks/text-area-C_M8wliK.js.map +0 -1
  738. package/dist/_chunks/text-input-BX39e6T6.js.map +0 -1
  739. package/dist/_chunks/theme-toggle.agent-btmXTWdW.js.map +0 -1
  740. package/dist/_chunks/time-picker-B8AMIrX7.js.map +0 -1
  741. package/dist/_chunks/timeline.agent-CRPza9wc.js.map +0 -1
  742. package/dist/_chunks/tooth-scheme.agent-CWrQBjJM.js.map +0 -1
  743. package/dist/_chunks/transcript-panel.agent-BXEYP6w-.js.map +0 -1
  744. package/dist/_chunks/typing-indicator-CbUBf-Dx.js.map +0 -1
  745. package/dist/_chunks/use-theme-BMUhembX.js.map +0 -1
  746. package/dist/_chunks/warning-stack-8Pa3pekh.js.map +0 -1
  747. package/dist/_chunks/workflow-map-D2A7rTEG.js.map +0 -1
@@ -2,7 +2,7 @@ import { jsxs as d, jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as C, useMemo as j, Fragment as g } from "react";
3
3
  import { c as h } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as T } from "react-i18next";
5
- import { B as z } from "./button-7mLWcMp_.js";
5
+ import { B as z } from "./button-DD_0Xdmr.js";
6
6
  import { A as M } from "./avatar-Dcr6XuDQ.js";
7
7
  import { T as I } from "./timestamp-BV2lC-wV.js";
8
8
  import { s as A } from "./safe-image-src-DstKgCo7.js";
@@ -19,16 +19,19 @@ import { C as V } from "./circle-alert-ChA9opNA.js";
19
19
  const _ = [
20
20
  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
21
21
  ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
22
- ], B = F("rotate-ccw", _), D = h("ds:flex ds:w-full ds:items-start ds:gap-[var(--spacing-sm)]", {
23
- variants: {
24
- role: {
25
- user: "ds:flex-row-reverse",
26
- assistant: "ds:flex-row",
27
- system: "ds:flex-col ds:items-center ds:text-center"
28
- }
29
- },
30
- defaultVariants: { role: "assistant" }
31
- }), E = h(
22
+ ], B = F("rotate-ccw", _), D = h(
23
+ "ds:flex ds:w-full ds:items-start ds:gap-[var(--spacing-sm)]",
24
+ {
25
+ variants: {
26
+ role: {
27
+ user: "ds:flex-row-reverse",
28
+ assistant: "ds:flex-row",
29
+ system: "ds:flex-col ds:items-center ds:text-center"
30
+ }
31
+ },
32
+ defaultVariants: { role: "assistant" }
33
+ }
34
+ ), E = h(
32
35
  [
33
36
  // Cap at 42rem on wide surfaces; on narrow docks (Leo sidebar ≈22rem)
34
37
  // leave room for the avatar column (size-8 = 32px = --spacing-xl) +
@@ -135,7 +138,14 @@ const H = C(
135
138
  // Allow-list the src: LLM-supplied values can carry
136
139
  // `javascript:` / `data:text/html` / `data:image/svg+xml` and so
137
140
  // are scrubbed here before reaching <Avatar>. Fallback to initials.
138
- /* @__PURE__ */ a(M, { name: r.name, src: A(r.src), size: "sm" })
141
+ /* @__PURE__ */ a(
142
+ M,
143
+ {
144
+ name: r.name,
145
+ src: A(r.src),
146
+ size: "sm"
147
+ }
148
+ )
139
149
  ) : null,
140
150
  /* @__PURE__ */ d(
141
151
  "div",
@@ -226,4 +236,4 @@ H.displayName = "ChatMessage";
226
236
  export {
227
237
  H as C
228
238
  };
229
- //# sourceMappingURL=chat-message-ByouZpPP.js.map
239
+ //# sourceMappingURL=chat-message-DoAhgUTj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-message-DoAhgUTj.js","sources":["../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js","../../src/components/chat-message/chat-message.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n];\nconst RotateCcw = createLucideIcon(\"rotate-ccw\", __iconNode);\n\nexport { __iconNode, RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n","import {\n forwardRef,\n Fragment,\n useMemo,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { AlertCircle, Check, Clock, RotateCcw } from 'lucide-react';\nimport { Button } from '../button';\nimport { Avatar } from '../avatar';\nimport { Timestamp } from '../timestamp';\nimport { safeImageSrc } from '../_shared';\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport type ChatMessageRole = 'user' | 'assistant' | 'system';\nexport type ChatMessageStatus = 'sending' | 'sent' | 'error' | 'edited';\n\nexport interface ChatMessageAvatar {\n name?: string;\n src?: string;\n /**\n * Optional custom avatar node. When provided, it REPLACES the built-in\n * `<Avatar>` (initials / image) for this message. Used by the Leo\n * pattern to render a Sparkles identity tile instead of an avatar, and\n * by consumers that want to swap in a user-icon chip, brand glyph, etc.\n * The caller is responsible for accessible labelling on the custom node\n * — ChatMessage's own `aria-label` already announces the role/time, so\n * purely decorative nodes can be `aria-hidden`.\n */\n slot?: ReactNode;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst rowVariants = cva(\n 'ds:flex ds:w-full ds:items-start ds:gap-[var(--spacing-sm)]',\n {\n variants: {\n role: {\n user: 'ds:flex-row-reverse',\n assistant: 'ds:flex-row',\n system: 'ds:flex-col ds:items-center ds:text-center',\n },\n },\n defaultVariants: { role: 'assistant' },\n },\n);\n\nconst bubbleVariants = cva(\n [\n // Cap at 42rem on wide surfaces; on narrow docks (Leo sidebar ≈22rem)\n // leave room for the avatar column (size-8 = 32px = --spacing-xl) +\n // `gap-sm` (8px = --spacing-sm) so avatars don't clip off the inline\n // edge when the row is width-constrained.\n 'ds:relative ds:max-w-[min(42rem,calc(100%-var(--spacing-xl)-var(--spacing-sm)))]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]',\n 'type-body',\n 'ds:break-words',\n ].join(' '),\n {\n variants: {\n role: {\n user: 'ds:bg-[color:var(--primary)] ds:text-[color:var(--primary-foreground)] ds:rounded-[var(--radius-md)] ds:rounded-ee-[var(--radius-sm)]',\n assistant:\n 'ds:bg-muted/40 ds:text-foreground ds:rounded-[var(--radius-md)] ds:rounded-es-[var(--radius-sm)]',\n system:\n 'ds:bg-transparent ds:text-[color:var(--muted-foreground)] type-body-sm ds:italic',\n },\n },\n defaultVariants: { role: 'assistant' },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Safe markdown-ish (bold, inline code, line-breaks, links as text) */\n/* No dangerouslySetInnerHTML. */\n/* ------------------------------------------------------------------ */\n\ntype Token =\n | { type: 'text'; value: string }\n | { type: 'bold'; value: string }\n | { type: 'code'; value: string }\n | { type: 'br' }\n | { type: 'link'; label: string; href: string };\n\nconst SAFE_SCHEMES = /^(https?:|mailto:)/i;\n\nfunction tokenize(input: string): Token[] {\n const tokens: Token[] = [];\n let remaining = input;\n const pattern = /\\*\\*([^*]+)\\*\\*|`([^`]+)`|\\[([^\\]]+)\\]\\(([^)]+)\\)|\\n/;\n while (remaining.length > 0) {\n const match = pattern.exec(remaining);\n if (!match) {\n tokens.push({ type: 'text', value: remaining });\n break;\n }\n if (match.index > 0) {\n tokens.push({ type: 'text', value: remaining.slice(0, match.index) });\n }\n if (match[1] !== undefined) {\n tokens.push({ type: 'bold', value: match[1] });\n } else if (match[2] !== undefined) {\n tokens.push({ type: 'code', value: match[2] });\n } else if (match[3] !== undefined && match[4] !== undefined) {\n tokens.push({ type: 'link', label: match[3], href: match[4] });\n } else {\n tokens.push({ type: 'br' });\n }\n remaining = remaining.slice(match.index + match[0].length);\n }\n return tokens;\n}\n\nfunction renderBody(input: string): ReactNode {\n return tokenize(input).map((tok, i) => {\n if (tok.type === 'bold') return <strong key={i}>{tok.value}</strong>;\n if (tok.type === 'code') {\n return (\n <code\n key={i}\n dir=\"ltr\"\n className=\"ds:rounded-[var(--radius-sm)] ds:bg-muted/30 ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)] ds:font-[family-name:var(--font-mono)]\"\n >\n {tok.value}\n </code>\n );\n }\n if (tok.type === 'br') return <br key={i} />;\n if (tok.type === 'link') {\n if (!SAFE_SCHEMES.test(tok.href)) {\n // Unsafe scheme (javascript:, data:) — render as inert text.\n return <Fragment key={i}>{tok.label}</Fragment>;\n }\n return (\n <a\n key={i}\n href={tok.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"ds:underline ds:underline-offset-2 ds:hover:opacity-80\"\n >\n {tok.label}\n </a>\n );\n }\n return <Fragment key={i}>{tok.value}</Fragment>;\n });\n}\n\n/* ------------------------------------------------------------------ */\n/* ChatMessage */\n/* ------------------------------------------------------------------ */\n\ntype NativeProps = Omit<HTMLAttributes<HTMLElement>, 'content' | 'role'>;\n\nexport interface ChatMessageProps\n extends NativeProps, VariantProps<typeof bubbleVariants> {\n role: ChatMessageRole;\n content: string;\n avatar?: ChatMessageAvatar;\n timestamp?: Date | number | string;\n status?: ChatMessageStatus;\n /** Parse a small, safe subset of markdown. Never renders raw HTML. */\n renderMarkdown?: boolean;\n /** Invoked when the retry button is activated (error status only). */\n onRetry?: () => void;\n}\n\nexport const ChatMessage = forwardRef<HTMLElement, ChatMessageProps>(\n (\n {\n role,\n content,\n avatar,\n timestamp,\n status,\n renderMarkdown = false,\n onRetry,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n\n // Local format — used for the aria-label interpolation only. Visible\n // label is rendered by `<Timestamp>` below, which computes the same\n // locale-aware HH:MM internally.\n const formattedTime = useMemo(() => {\n if (!timestamp) return null;\n const date = timestamp instanceof Date ? timestamp : new Date(timestamp);\n if (Number.isNaN(date.getTime())) return null;\n return new Intl.DateTimeFormat(i18n.language, {\n hour: '2-digit',\n minute: '2-digit',\n }).format(date);\n }, [timestamp, i18n.language]);\n\n const roleLabel = t(`chat.message.role.${role}`);\n const messageLabel = formattedTime\n ? t('chat.message.label', { role: roleLabel, time: formattedTime })\n : t('chat.message.labelNoTime', { role: roleLabel });\n\n const body = renderMarkdown ? renderBody(content) : content;\n\n const statusIcon = (() => {\n if (!status || status === 'edited') return null;\n if (status === 'sending')\n return <Clock aria-hidden=\"true\" className=\"ds:size-3.5\" />;\n if (status === 'sent')\n return <Check aria-hidden=\"true\" className=\"ds:size-3.5\" />;\n return (\n <AlertCircle\n aria-hidden=\"true\"\n className=\"ds:size-3.5 ds:text-[color:var(--destructive)]\"\n />\n );\n })();\n\n const statusText = status ? t(`chat.message.status.${status}`) : null;\n\n return (\n <article\n ref={ref}\n aria-label={messageLabel}\n data-component=\"chat-message\"\n className={[\n rowVariants({ role, className }),\n // Entrance: fade + slide up on mount. `--animation-duration` is 0ms\n // under `prefers-reduced-motion` and `.theme-accessible`, so both\n // collapse the animation to an instant state change automatically.\n 'ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:slide-in-from-bottom-2',\n 'ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n ].join(' ')}\n {...rest}\n >\n {role !== 'system' && avatar ? (\n avatar.slot ? (\n // Consumer-supplied avatar node (e.g. Leo's Sparkles tile).\n avatar.slot\n ) : (\n // Allow-list the src: LLM-supplied values can carry\n // `javascript:` / `data:text/html` / `data:image/svg+xml` and so\n // are scrubbed here before reaching <Avatar>. Fallback to initials.\n <Avatar\n name={avatar.name}\n src={safeImageSrc(avatar.src)}\n size=\"sm\"\n />\n )\n ) : null}\n\n <div\n className={[\n // min-w-0 allows this flex item to shrink below its content's\n // natural width — without it, a single unbreakable token (URL,\n // CJK run, hash) can force the bubble wider than the parent\n // and spill outside narrow containers like the Leo sidebar.\n 'ds:flex ds:flex-col ds:min-w-0',\n role === 'user'\n ? 'ds:items-end'\n : role === 'assistant'\n ? 'ds:items-start'\n : 'ds:items-center',\n ].join(' ')}\n >\n <div\n dir=\"auto\"\n className={[\n bubbleVariants({ role }),\n // `break-words` (from bubbleVariants) handles soft hyphens;\n // `overflow-wrap: anywhere` is the last-resort break for\n // URLs, hashes, or CJK runs that would otherwise push the\n // bubble wider than its parent in narrow docks like Leo.\n 'ds:[overflow-wrap:anywhere]',\n ].join(' ')}\n >\n {body}\n </div>\n\n {(formattedTime || statusText) && role !== 'system' ? (\n <div\n className={[\n 'ds:mt-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'type-meta ds:text-[color:var(--muted-foreground)]',\n ].join(' ')}\n >\n {timestamp ? (\n <Timestamp\n value={timestamp}\n format=\"absolute\"\n absoluteFormat={{ hour: '2-digit', minute: '2-digit' }}\n dir=\"ltr\"\n />\n ) : null}\n {statusIcon ? (\n // `key={status}` re-mounts the span on every status change so\n // `animate-in` re-runs — gives the sending → sent → error\n // swap a subtle cross-fade instead of an abrupt pop.\n <span\n key={status}\n className={[\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'ds:motion-safe:animate-in ds:motion-safe:fade-in-0',\n 'ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n ].join(' ')}\n >\n {statusIcon}\n <span className=\"ds:sr-only\">{statusText}</span>\n </span>\n ) : null}\n {status === 'error' && onRetry ? (\n <Button\n intent=\"ghost\"\n size=\"sm\"\n onClick={onRetry}\n startIcon={<RotateCcw />}\n >\n {t('chat.message.retry')}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n </article>\n );\n },\n);\n\nChatMessage.displayName = 'ChatMessage';\n"],"names":["__iconNode","RotateCcw","createLucideIcon","rowVariants","cva","bubbleVariants","SAFE_SCHEMES","tokenize","input","tokens","remaining","pattern","match","renderBody","tok","i","jsx","Fragment","ChatMessage","forwardRef","role","content","avatar","timestamp","status","renderMarkdown","onRetry","className","rest","ref","t","i18n","useTranslation","formattedTime","useMemo","date","roleLabel","messageLabel","body","statusIcon","Clock","Check","AlertCircle","statusText","jsxs","Avatar","safeImageSrc","Timestamp","Button"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-CtPM6Rup.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 ds:data-[state=checked]:text-primary-foreground',\n 'ds:data-[state=indeterminate]:bg-primary ds:data-[state=indeterminate]:border-primary ds:data-[state=indeterminate]:text-primary-foreground',\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 size: {\n sm: 'ds:size-3.5',\n md: 'ds:size-4',\n lg: 'ds:size-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\ntype RadixRootProps = ComponentPropsWithoutRef<typeof RadixCheckbox.Root>;\n\nexport interface CheckboxProps\n extends 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 const iconSizeClass =\n size === 'sm' ? 'ds:size-3' : size === 'lg' ? 'ds:size-4' : 'ds:size-3.5';\n\n const labelClasses = [\n 'type-label ds:text-foreground ds:select-none',\n effectiveDisabled ? 'ds:cursor-not-allowed ds:opacity-50' : '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-center 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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"}
1
+ {"version":3,"file":"checkbox-CtPM6Rup.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 ds:data-[state=checked]:text-primary-foreground',\n 'ds:data-[state=indeterminate]:bg-primary ds:data-[state=indeterminate]:border-primary ds:data-[state=indeterminate]:text-primary-foreground',\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 size: {\n sm: 'ds:size-3.5',\n md: 'ds:size-4',\n lg: 'ds:size-5',\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 const iconSizeClass =\n size === 'sm' ? 'ds:size-3' : size === 'lg' ? 'ds:size-4' : 'ds:size-3.5';\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-center 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-group-BTdEB6Yo.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: '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: '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\n extends VariantProps<typeof checkboxGroupVariants> {\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":"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"}
1
+ {"version":3,"file":"checkbox-group-BTdEB6Yo.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":"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"}
@@ -1,96 +1,9 @@
1
- import { jsx as c } from "react/jsx-runtime";
2
- import { forwardRef as p, useState as y, useRef as C, useCallback as k, useImperativeHandle as w, useEffect as x } from "react";
3
- import * as b from "@radix-ui/react-collapsible";
4
- import { a as h, c as N } from "./index-D2ZczOXr.js";
5
- const R = N("", {
6
- variants: {
7
- variant: {
8
- default: "",
9
- card: "ds:bg-[var(--card)] ds:border ds:border-border ds:rounded-[var(--radius-lg)] ds:overflow-hidden",
10
- minimal: "ds:forced-colors:[border-block-end:1px_solid]"
11
- }
12
- },
13
- defaultVariants: {
14
- variant: "default"
15
- }
16
- }), T = [
17
- "ds:overflow-hidden",
18
- "ds:transition-[block-size]",
19
- "ds:duration-[var(--animation-duration)]",
20
- "ds:ease-out",
21
- "ds:motion-reduce:transition-none",
22
- "ds:data-[state=open]:[block-size:var(--radix-collapsible-content-height)]",
23
- "ds:data-[state=closed]:[block-size:0]"
24
- ].join(" "), K = p(
25
- ({
26
- variant: e,
27
- className: t,
28
- children: s,
29
- open: o,
30
- defaultOpen: i,
31
- onOpenChange: a,
32
- ...u
33
- }, f) => {
34
- const n = o !== void 0, [g, v] = y(
35
- !!i
36
- ), r = n ? !!o : g, d = C(r);
37
- d.current = r;
38
- const l = k(
39
- (m) => {
40
- n || v(m), a == null || a(m);
41
- },
42
- [n, a]
43
- );
44
- return w(
45
- f,
46
- () => ({
47
- isOpen: () => d.current,
48
- toggle: () => l(!d.current),
49
- open: () => l(!0),
50
- close: () => l(!1)
51
- }),
52
- [l]
53
- ), /* @__PURE__ */ c(
54
- b.Root,
55
- {
56
- open: r,
57
- onOpenChange: l,
58
- className: R({ variant: e, className: t }),
59
- "data-component": "collapsible",
60
- "data-component-id": u.id,
61
- ...u,
62
- children: s
63
- }
64
- );
65
- }
66
- );
67
- K.displayName = "Collapsible";
68
- const O = p(
69
- ({ asChild: e = !1, children: t, ...s }, o) => /* @__PURE__ */ c(b.Trigger, { ref: o, asChild: e, ...s, children: t })
70
- );
71
- O.displayName = "CollapsibleTrigger";
72
- const z = p(
73
- ({
74
- className: e,
75
- children: t,
76
- "aria-labelledby": s,
77
- "aria-label": o,
78
- ...i
79
- }, a) => (x(() => {
80
- }, []), /* @__PURE__ */ c(
81
- b.Content,
82
- {
83
- ref: a,
84
- "aria-labelledby": s,
85
- "aria-label": o,
86
- className: h(T, e),
87
- ...i,
88
- children: t
89
- }
90
- ))
91
- );
92
- z.displayName = "CollapsibleContent";
93
- const E = {
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { forwardRef as b, useState as C, useRef as k, useCallback as w, useMemo as x, useEffect as h } from "react";
3
+ import * as u from "@radix-ui/react-collapsible";
4
+ import { a as R, c as N } from "./index-D2ZczOXr.js";
5
+ import { u as T } from "./registry-C9nwlNyL.js";
6
+ const K = {
94
7
  id: "collapsible",
95
8
  capabilities: ["expand"],
96
9
  state: {
@@ -139,11 +52,96 @@ const E = {
139
52
  description: "Sourced from the id prop."
140
53
  }
141
54
  }
142
- };
55
+ }, O = N("", {
56
+ variants: {
57
+ variant: {
58
+ default: "",
59
+ card: "ds:bg-[var(--card)] ds:border ds:border-border ds:rounded-[var(--radius-lg)] ds:overflow-hidden",
60
+ minimal: "ds:forced-colors:[border-block-end:1px_solid]"
61
+ }
62
+ },
63
+ defaultVariants: {
64
+ variant: "default"
65
+ }
66
+ }), z = [
67
+ "ds:overflow-hidden",
68
+ "ds:transition-[block-size]",
69
+ "ds:duration-[var(--animation-duration)]",
70
+ "ds:ease-out",
71
+ "ds:motion-reduce:transition-none",
72
+ "ds:data-[state=open]:[block-size:var(--radix-collapsible-content-height)]",
73
+ "ds:data-[state=closed]:[block-size:0]"
74
+ ].join(" "), j = b(
75
+ ({
76
+ variant: e,
77
+ className: t,
78
+ children: s,
79
+ open: o,
80
+ defaultOpen: l,
81
+ onOpenChange: a,
82
+ ...n
83
+ }, f) => {
84
+ const r = o !== void 0, [g, v] = C(
85
+ !!l
86
+ ), d = r ? !!o : g, c = k(d);
87
+ c.current = d;
88
+ const i = w(
89
+ (m) => {
90
+ r || v(m), a == null || a(m);
91
+ },
92
+ [r, a]
93
+ ), y = x(
94
+ () => ({
95
+ isOpen: () => c.current,
96
+ toggle: () => i(!c.current),
97
+ open: () => i(!0),
98
+ close: () => i(!1)
99
+ }),
100
+ [i]
101
+ );
102
+ return T(K, y, n.id), /* @__PURE__ */ p(
103
+ u.Root,
104
+ {
105
+ ref: f,
106
+ open: d,
107
+ onOpenChange: i,
108
+ className: O({ variant: e, className: t }),
109
+ "data-component": "collapsible",
110
+ "data-component-id": n.id,
111
+ ...n,
112
+ children: s
113
+ }
114
+ );
115
+ }
116
+ );
117
+ j.displayName = "Collapsible";
118
+ const A = b(({ asChild: e = !1, children: t, ...s }, o) => /* @__PURE__ */ p(u.Trigger, { ref: o, asChild: e, ...s, children: t }));
119
+ A.displayName = "CollapsibleTrigger";
120
+ const B = b(
121
+ ({
122
+ className: e,
123
+ children: t,
124
+ "aria-labelledby": s,
125
+ "aria-label": o,
126
+ ...l
127
+ }, a) => (h(() => {
128
+ }, []), /* @__PURE__ */ p(
129
+ u.Content,
130
+ {
131
+ ref: a,
132
+ "aria-labelledby": s,
133
+ "aria-label": o,
134
+ className: R(z, e),
135
+ ...l,
136
+ children: t
137
+ }
138
+ ))
139
+ );
140
+ B.displayName = "CollapsibleContent";
143
141
  export {
144
- K as C,
145
- z as a,
146
- O as b,
147
- E as c
142
+ j as C,
143
+ B as a,
144
+ A as b,
145
+ K as c
148
146
  };
149
- //# sourceMappingURL=collapsible.agent-DkS1jVyn.js.map
147
+ //# sourceMappingURL=collapsible-CuxUBoHJ.js.map
@@ -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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"}