@alfadocs/ui-kit-debug 0.67.1 → 0.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/dist/_chunks/{accordion-9lJSMMsZ.js → accordion-DnIa7OHX.js} +69 -47
  2. package/dist/_chunks/accordion-DnIa7OHX.js.map +1 -0
  3. package/dist/_chunks/actions-cell-renderer-DrcaxB0w.js +2061 -0
  4. package/dist/_chunks/actions-cell-renderer-DrcaxB0w.js.map +1 -0
  5. package/dist/_chunks/address-autocomplete-BEX9PXty.js +496 -0
  6. package/dist/_chunks/address-autocomplete-BEX9PXty.js.map +1 -0
  7. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js → agenda-card.agent-mTCrkKSZ.js} +6 -1
  8. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js.map → agenda-card.agent-mTCrkKSZ.js.map} +1 -1
  9. package/dist/_chunks/{agenda-tray-T-BumlGZ.js → agenda-tray-g0kg7HwB.js} +36 -24
  10. package/dist/_chunks/agenda-tray-g0kg7HwB.js.map +1 -0
  11. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js → ai-consent-banner-CXlsNX1c.js} +3 -3
  12. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js.map → ai-consent-banner-CXlsNX1c.js.map} +1 -1
  13. package/dist/_chunks/{ai-prompt-input-BwEACCPm.js → ai-prompt-input-CuhTo9mh.js} +80 -61
  14. package/dist/_chunks/ai-prompt-input-CuhTo9mh.js.map +1 -0
  15. package/dist/_chunks/{ai-tools-rail-CInA_1-E.js → ai-tools-rail-BA_sqy1A.js} +87 -70
  16. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js.map +1 -0
  17. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js → alia-sidebar-B47qRQb5.js} +5 -5
  18. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js.map → alia-sidebar-B47qRQb5.js.map} +1 -1
  19. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js → anamnesis-card-DRmE24OQ.js} +2 -2
  20. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js.map → anamnesis-card-DRmE24OQ.js.map} +1 -1
  21. package/dist/_chunks/{appointment-tray-BMl89NPW.js → appointment-tray-CZtvtaH-.js} +32 -20
  22. package/dist/_chunks/appointment-tray-CZtvtaH-.js.map +1 -0
  23. package/dist/_chunks/{audio-recorder-DjXLP4aF.js → audio-recorder-DYXXnGug.js} +59 -56
  24. package/dist/_chunks/audio-recorder-DYXXnGug.js.map +1 -0
  25. package/dist/_chunks/{autocomplete-CcCFlVf-.js → autocomplete-DOeGouCL.js} +157 -132
  26. package/dist/_chunks/autocomplete-DOeGouCL.js.map +1 -0
  27. package/dist/_chunks/bishop-score-PJI3AXzA.js +304 -0
  28. package/dist/_chunks/bishop-score-PJI3AXzA.js.map +1 -0
  29. package/dist/_chunks/bmi-calculator-BZtIJ53x.js +434 -0
  30. package/dist/_chunks/bmi-calculator-BZtIJ53x.js.map +1 -0
  31. package/dist/_chunks/{booking-L8-YP8BJ.js → booking-C3VqFReX.js} +420 -397
  32. package/dist/_chunks/booking-C3VqFReX.js.map +1 -0
  33. package/dist/_chunks/{breadcrumb-OTbaY70e.js → breadcrumb-CchdeG7d.js} +42 -28
  34. package/dist/_chunks/breadcrumb-CchdeG7d.js.map +1 -0
  35. package/dist/_chunks/{calculator-dialog-CFk4I91b.js → calculator-dialog-BR5iU0kf.js} +2 -2
  36. package/dist/_chunks/{calculator-dialog-CFk4I91b.js.map → calculator-dialog-BR5iU0kf.js.map} +1 -1
  37. package/dist/_chunks/{calendar-oYWOCrnf.js → calendar-CZUjL8SZ.js} +258 -201
  38. package/dist/_chunks/calendar-CZUjL8SZ.js.map +1 -0
  39. package/dist/_chunks/{care-plan-card-BwVUyUBb.js → care-plan-card-CvFGXa2z.js} +10 -6
  40. package/dist/_chunks/care-plan-card-CvFGXa2z.js.map +1 -0
  41. package/dist/_chunks/{care-plan-entry-card-VzdQHcOL.js → care-plan-entry-card-C3E_gClk.js} +17 -13
  42. package/dist/_chunks/care-plan-entry-card-C3E_gClk.js.map +1 -0
  43. package/dist/_chunks/{carousel.agent-vt21A_el.js → carousel.agent-4v8Emr9E.js} +219 -198
  44. package/dist/_chunks/{carousel.agent-vt21A_el.js.map → carousel.agent-4v8Emr9E.js.map} +1 -1
  45. package/dist/_chunks/{chart-Cg3e9EH9.js → chart-CMr3eW62.js} +150 -109
  46. package/dist/_chunks/chart-CMr3eW62.js.map +1 -0
  47. package/dist/_chunks/{chat-container-ogB4OskO.js → chat-container-DWho5hPR.js} +47 -34
  48. package/dist/_chunks/chat-container-DWho5hPR.js.map +1 -0
  49. package/dist/_chunks/{chat-input-B5zjNEUN.js → chat-input-BcXTetgM.js} +57 -41
  50. package/dist/_chunks/chat-input-BcXTetgM.js.map +1 -0
  51. package/dist/_chunks/{checkbox-DRcOdmXv.js → checkbox-BuZ1u__2.js} +41 -27
  52. package/dist/_chunks/checkbox-BuZ1u__2.js.map +1 -0
  53. package/dist/_chunks/{checkbox-group-CpUwlHug.js → checkbox-group-PqNmQ-cE.js} +3 -3
  54. package/dist/_chunks/{checkbox-group-CpUwlHug.js.map → checkbox-group-PqNmQ-cE.js.map} +1 -1
  55. package/dist/_chunks/{clinical-note-card-gtrxv6zn.js → clinical-note-card-DqQYf_D4.js} +2 -2
  56. package/dist/_chunks/{clinical-note-card-gtrxv6zn.js.map → clinical-note-card-DqQYf_D4.js.map} +1 -1
  57. package/dist/_chunks/{collapsible-X3oaLPU3.js → collapsible-BrnRiCC6.js} +26 -23
  58. package/dist/_chunks/collapsible-BrnRiCC6.js.map +1 -0
  59. package/dist/_chunks/{color-picker-FXpItIaF.js → color-picker-C_fZl6sA.js} +124 -112
  60. package/dist/_chunks/color-picker-C_fZl6sA.js.map +1 -0
  61. package/dist/_chunks/{combobox-BC-DFx8G.js → combobox-Clum7gJ1.js} +165 -128
  62. package/dist/_chunks/combobox-Clum7gJ1.js.map +1 -0
  63. package/dist/_chunks/{command-palette-BiPAAno-.js → command-palette-CJzmc5pC.js} +87 -64
  64. package/dist/_chunks/command-palette-CJzmc5pC.js.map +1 -0
  65. package/dist/_chunks/{contact-profile-card-7BMB85T6.js → contact-profile-card-Dramqa9C.js} +13 -11
  66. package/dist/_chunks/contact-profile-card-Dramqa9C.js.map +1 -0
  67. package/dist/_chunks/{copy-field-CCq7j6Zc.js → copy-field-Bjw9u2cV.js} +42 -35
  68. package/dist/_chunks/copy-field-Bjw9u2cV.js.map +1 -0
  69. package/dist/_chunks/counter-dRlTNC_y.js +55 -0
  70. package/dist/_chunks/counter-dRlTNC_y.js.map +1 -0
  71. package/dist/_chunks/{cycle-calculator-BF0ointe.js → cycle-calculator-DmRGJNaT.js} +3 -3
  72. package/dist/_chunks/{cycle-calculator-BF0ointe.js.map → cycle-calculator-DmRGJNaT.js.map} +1 -1
  73. package/dist/_chunks/{date-picker-oGg5BnXL.js → date-picker-Dl9RKxaV.js} +76 -57
  74. package/dist/_chunks/{date-picker-oGg5BnXL.js.map → date-picker-Dl9RKxaV.js.map} +1 -1
  75. package/dist/_chunks/{date-range-picker-C5BWfH_T.js → date-range-picker-CTUeR6Bj.js} +73 -46
  76. package/dist/_chunks/date-range-picker-CTUeR6Bj.js.map +1 -0
  77. package/dist/_chunks/{date-time-picker-Ze1My59T.js → date-time-picker-BhoogS5Q.js} +64 -40
  78. package/dist/_chunks/date-time-picker-BhoogS5Q.js.map +1 -0
  79. package/dist/_chunks/{dependent-selector-DpzGtr_J.js → dependent-selector-CG_FOHya.js} +44 -30
  80. package/dist/_chunks/dependent-selector-CG_FOHya.js.map +1 -0
  81. package/dist/_chunks/{dialog-DMGnSelc.js → dialog-ZNuboNmy.js} +35 -28
  82. package/dist/_chunks/dialog-ZNuboNmy.js.map +1 -0
  83. package/dist/_chunks/{document-scanner-D2qehl3-.js → document-scanner-CTubA0-N.js} +12 -4
  84. package/dist/_chunks/document-scanner-CTubA0-N.js.map +1 -0
  85. package/dist/_chunks/{dropdown-menu-DwwPovMZ.js → dropdown-menu-qrxjymfw.js} +94 -93
  86. package/dist/_chunks/dropdown-menu-qrxjymfw.js.map +1 -0
  87. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js → due-date-calculator-BTmsIQqD.js} +4 -4
  88. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js.map → due-date-calculator-BTmsIQqD.js.map} +1 -1
  89. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +448 -0
  90. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js.map +1 -0
  91. package/dist/_chunks/editor-overlay-wYm22wZK.js.map +1 -1
  92. package/dist/_chunks/{email-input-lQivsFrw.js → email-input-B_Y55f5G.js} +3 -3
  93. package/dist/_chunks/{email-input-lQivsFrw.js.map → email-input-B_Y55f5G.js.map} +1 -1
  94. package/dist/_chunks/{fetal-weight-BVSzOhuR.js → fetal-weight-CRz7KE2D.js} +2 -2
  95. package/dist/_chunks/{fetal-weight-BVSzOhuR.js.map → fetal-weight-CRz7KE2D.js.map} +1 -1
  96. package/dist/_chunks/{file-upload-BosbPDb1.js → file-upload-5ScQd4fE.js} +118 -100
  97. package/dist/_chunks/file-upload-5ScQd4fE.js.map +1 -0
  98. package/dist/_chunks/{fiscal-code-input-DPtqluVb.js → fiscal-code-input-Cf-8O4Fj.js} +76 -63
  99. package/dist/_chunks/fiscal-code-input-Cf-8O4Fj.js.map +1 -0
  100. package/dist/_chunks/{freemium-paywall-CkWjv3o6.js → freemium-paywall-DZ2mBS3w.js} +78 -71
  101. package/dist/_chunks/freemium-paywall-DZ2mBS3w.js.map +1 -0
  102. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js → gestational-age-calculator-BleUdhbI.js} +5 -5
  103. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js.map → gestational-age-calculator-BleUdhbI.js.map} +1 -1
  104. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js → hcg-doubling-CnjDXX6U.js} +3 -3
  105. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js.map → hcg-doubling-CnjDXX6U.js.map} +1 -1
  106. package/dist/_chunks/{header-settings-CNOqIhoW.js → header-settings-DJqoAl5m.js} +86 -46
  107. package/dist/_chunks/header-settings-DJqoAl5m.js.map +1 -0
  108. package/dist/_chunks/{index.modern-D2LGACWg.js → index.modern-Zta-A4Jm.js} +3 -3
  109. package/dist/_chunks/{index.modern-D2LGACWg.js.map → index.modern-Zta-A4Jm.js.map} +1 -1
  110. package/dist/_chunks/{list-BOwqwy03.js → list-DgE1xWBM.js} +99 -84
  111. package/dist/_chunks/list-DgE1xWBM.js.map +1 -0
  112. package/dist/_chunks/{locale-picker-C9JmBht3.js → locale-picker-ChYYSX2N.js} +47 -35
  113. package/dist/_chunks/locale-picker-ChYYSX2N.js.map +1 -0
  114. package/dist/_chunks/{map-view-Tb5VfK9Y.js → map-view-BkOoGoX2.js} +160 -115
  115. package/dist/_chunks/map-view-BkOoGoX2.js.map +1 -0
  116. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js → marketplace-app-shell-6T9W4Knl.js} +4 -4
  117. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js.map → marketplace-app-shell-6T9W4Knl.js.map} +1 -1
  118. package/dist/_chunks/{message-card.agent-4IeIgrnJ.js → message-card.agent-ZLhx3Bs5.js} +6 -1
  119. package/dist/_chunks/message-card.agent-ZLhx3Bs5.js.map +1 -0
  120. package/dist/_chunks/{message-tray-CVyJajVJ.js → message-tray-DwrBLJlf.js} +90 -48
  121. package/dist/_chunks/message-tray-DwrBLJlf.js.map +1 -0
  122. package/dist/_chunks/{multi-select-BcPylvHR.js → multi-select-BdHHDrRN.js} +196 -153
  123. package/dist/_chunks/multi-select-BdHHDrRN.js.map +1 -0
  124. package/dist/_chunks/{navigation-menu-C6lBYVv9.js → navigation-menu-DRUi6sSj.js} +75 -42
  125. package/dist/_chunks/navigation-menu-DRUi6sSj.js.map +1 -0
  126. package/dist/_chunks/{notification-card.agent-Rqt3ofk9.js → notification-card.agent-DxGBZb8T.js} +5 -1
  127. package/dist/_chunks/notification-card.agent-DxGBZb8T.js.map +1 -0
  128. package/dist/_chunks/{notification-tray-DlgenTEe.js → notification-tray-Btb9oQeZ.js} +112 -97
  129. package/dist/_chunks/notification-tray-Btb9oQeZ.js.map +1 -0
  130. package/dist/_chunks/{number-input-Dj5L3pXK.js → number-input-DxphVG_A.js} +36 -27
  131. package/dist/_chunks/number-input-DxphVG_A.js.map +1 -0
  132. package/dist/_chunks/{operator-hero-f_KaRhw5.js → operator-hero-CP2Nhupm.js} +12 -8
  133. package/dist/_chunks/operator-hero-CP2Nhupm.js.map +1 -0
  134. package/dist/_chunks/{otp-input-xQ4Ps5VY.js → otp-input-DzBQ-CpE.js} +52 -33
  135. package/dist/_chunks/otp-input-DzBQ-CpE.js.map +1 -0
  136. package/dist/_chunks/{pagination-DQOgnxxw.js → pagination-D58kglCr.js} +181 -162
  137. package/dist/_chunks/pagination-D58kglCr.js.map +1 -0
  138. package/dist/_chunks/{patient-search-DR9XUYRQ.js → patient-search-CBC_ySF6.js} +69 -60
  139. package/dist/_chunks/patient-search-CBC_ySF6.js.map +1 -0
  140. package/dist/_chunks/{patient-shell-BfgufL_q.js → patient-shell-DV3XEtIB.js} +3 -3
  141. package/dist/_chunks/{patient-shell-BfgufL_q.js.map → patient-shell-DV3XEtIB.js.map} +1 -1
  142. package/dist/_chunks/{patient-summary-card-hEmr4eTW.js → patient-summary-card-B836_fDB.js} +95 -103
  143. package/dist/_chunks/patient-summary-card-B836_fDB.js.map +1 -0
  144. package/dist/_chunks/patient-table-CDuosVru.js +889 -0
  145. package/dist/_chunks/patient-table-CDuosVru.js.map +1 -0
  146. package/dist/_chunks/{payment-form-nXocS_MX.js → payment-form-DvjwYVIT.js} +56 -44
  147. package/dist/_chunks/payment-form-DvjwYVIT.js.map +1 -0
  148. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js → payment-request-card-DioWKBUq.js} +2 -2
  149. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js.map → payment-request-card-DioWKBUq.js.map} +1 -1
  150. package/dist/_chunks/{pdf-viewer-GsfNqeeT.js → pdf-viewer-D6BPfW2D.js} +205 -157
  151. package/dist/_chunks/pdf-viewer-D6BPfW2D.js.map +1 -0
  152. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js → periodontal-chart-card-BuDEMbHE.js} +2 -2
  153. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js.map → periodontal-chart-card-BuDEMbHE.js.map} +1 -1
  154. package/dist/_chunks/{phone-input-DVXhNlIl.js → phone-input-DjU-XmO_.js} +64 -47
  155. package/dist/_chunks/phone-input-DjU-XmO_.js.map +1 -0
  156. package/dist/_chunks/{popover-DTbfAuR0.js → popover-B2qCDhJC.js} +37 -32
  157. package/dist/_chunks/popover-B2qCDhJC.js.map +1 -0
  158. package/dist/_chunks/{practice-results-DND2SAt7.js → practice-results-KrTHqZua.js} +278 -242
  159. package/dist/_chunks/practice-results-KrTHqZua.js.map +1 -0
  160. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js → pregnancy-dating-DORUAOHB.js} +6 -6
  161. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js.map → pregnancy-dating-DORUAOHB.js.map} +1 -1
  162. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js → pregnancy-weight-gain-DVz4rr7-.js} +3 -3
  163. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js.map → pregnancy-weight-gain-DVz4rr7-.js.map} +1 -1
  164. package/dist/_chunks/{privacy-lock-C7JyMf0y.js → privacy-lock-BzMLQu-j.js} +32 -28
  165. package/dist/_chunks/privacy-lock-BzMLQu-j.js.map +1 -0
  166. package/dist/_chunks/{product-hub-panel-CAXDFeGP.js → product-hub-panel-e6pW220e.js} +45 -27
  167. package/dist/_chunks/product-hub-panel-e6pW220e.js.map +1 -0
  168. package/dist/_chunks/{progress-kzIRcdaq.js → progress-DA413-zn.js} +2 -2
  169. package/dist/_chunks/{progress-kzIRcdaq.js.map → progress-DA413-zn.js.map} +1 -1
  170. package/dist/_chunks/{public-footer.agent-CfXuW1x6.js → public-footer.agent-D0cFbjWl.js} +151 -146
  171. package/dist/_chunks/public-footer.agent-D0cFbjWl.js.map +1 -0
  172. package/dist/_chunks/{public-header.agent-BOhJgZEU.js → public-header.agent-DqkqA-ca.js} +107 -102
  173. package/dist/_chunks/{public-header.agent-BOhJgZEU.js.map → public-header.agent-DqkqA-ca.js.map} +1 -1
  174. package/dist/_chunks/{qr-code-DNXhi6se.js → qr-code-CPkEs5mG.js} +52 -46
  175. package/dist/_chunks/qr-code-CPkEs5mG.js.map +1 -0
  176. package/dist/_chunks/{radio-group-CLjK-SlK.js → radio-group-BPt7pKZW.js} +5 -5
  177. package/dist/_chunks/{radio-group-CLjK-SlK.js.map → radio-group-BPt7pKZW.js.map} +1 -1
  178. package/dist/_chunks/{recaptcha-widget-BCNHsgqt.js → recaptcha-widget-BC-4To9b.js} +9 -2
  179. package/dist/_chunks/recaptcha-widget-BC-4To9b.js.map +1 -0
  180. package/dist/_chunks/registry-DvAUVLHh.js +51 -0
  181. package/dist/_chunks/registry-DvAUVLHh.js.map +1 -0
  182. package/dist/_chunks/{resizable-3vzqDlg6.js → resizable-DVGcfOrk.js} +193 -173
  183. package/dist/_chunks/resizable-DVGcfOrk.js.map +1 -0
  184. package/dist/_chunks/{reviews-panel-DBktKm7i.js → reviews-panel-Dq7LMDcH.js} +87 -68
  185. package/dist/_chunks/reviews-panel-Dq7LMDcH.js.map +1 -0
  186. package/dist/_chunks/rich-text-editor-BsV7zUdg.js +2142 -0
  187. package/dist/_chunks/rich-text-editor-BsV7zUdg.js.map +1 -0
  188. package/dist/_chunks/{search-bar-SY2BcV2N.js → search-bar-C_T3pBJn.js} +105 -78
  189. package/dist/_chunks/search-bar-C_T3pBJn.js.map +1 -0
  190. package/dist/_chunks/{search-input-DbxrnHkW.js → search-input-DQvGxR74.js} +2 -2
  191. package/dist/_chunks/{search-input-DbxrnHkW.js.map → search-input-DQvGxR74.js.map} +1 -1
  192. package/dist/_chunks/{search-input.agent-CfZvViOd.js → search-input.agent-DRH54coT.js} +19 -4
  193. package/dist/_chunks/search-input.agent-DRH54coT.js.map +1 -0
  194. package/dist/_chunks/{select-CEtRcon5.js → select-DMLG44F5.js} +72 -56
  195. package/dist/_chunks/select-DMLG44F5.js.map +1 -0
  196. package/dist/_chunks/{session-countdown-LPnhTHjn.js → session-countdown-X1Ki6i0M.js} +3 -3
  197. package/dist/_chunks/{session-countdown-LPnhTHjn.js.map → session-countdown-X1Ki6i0M.js.map} +1 -1
  198. package/dist/_chunks/{sheet-taJer-Ha.js → sheet-BxsE7eQm.js} +59 -45
  199. package/dist/_chunks/sheet-BxsE7eQm.js.map +1 -0
  200. package/dist/_chunks/{sidebar-DaB4ulxH.js → sidebar-DY9jGjgt.js} +254 -248
  201. package/dist/_chunks/sidebar-DY9jGjgt.js.map +1 -0
  202. package/dist/_chunks/{sign-document-CdAiHiCh.js → sign-document-B4DeRhTe.js} +75 -49
  203. package/dist/_chunks/sign-document-B4DeRhTe.js.map +1 -0
  204. package/dist/_chunks/{signature-capture-COi0Uiqu.js → signature-capture-Ct_4Md4e.js} +138 -104
  205. package/dist/_chunks/signature-capture-Ct_4Md4e.js.map +1 -0
  206. package/dist/_chunks/{slider-BHWzXdjt.js → slider-DN1CWkKB.js} +85 -65
  207. package/dist/_chunks/slider-DN1CWkKB.js.map +1 -0
  208. package/dist/_chunks/{sparkline-DGhCSw8M.js → sparkline-iOXYgvJe.js} +75 -53
  209. package/dist/_chunks/sparkline-iOXYgvJe.js.map +1 -0
  210. package/dist/_chunks/{stepper-accordion.agent-C4quJ-MD.js → stepper-accordion.agent-cmEguIdx.js} +7 -1
  211. package/dist/_chunks/stepper-accordion.agent-cmEguIdx.js.map +1 -0
  212. package/dist/_chunks/{stepper-progress-DDjq5nei.js → stepper-progress-Bv0njx4g.js} +30 -24
  213. package/dist/_chunks/stepper-progress-Bv0njx4g.js.map +1 -0
  214. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js → suggestion-chip.agent-Brn3CiFE.js} +9 -8
  215. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js.map → suggestion-chip.agent-Brn3CiFE.js.map} +1 -1
  216. package/dist/_chunks/{switch-BJ6HD3Mn.js → switch-OILsBLWo.js} +25 -19
  217. package/dist/_chunks/switch-OILsBLWo.js.map +1 -0
  218. package/dist/_chunks/{tabs-BIQ0ew1T.js → tabs-BxcOziCo.js} +67 -58
  219. package/dist/_chunks/tabs-BxcOziCo.js.map +1 -0
  220. package/dist/_chunks/{task-card.agent-CUPKYd7w.js → task-card.agent-Bt14CzUd.js} +4 -1
  221. package/dist/_chunks/task-card.agent-Bt14CzUd.js.map +1 -0
  222. package/dist/_chunks/{task-tray-CAncV-QQ.js → task-tray-qOEQflu4.js} +74 -57
  223. package/dist/_chunks/task-tray-qOEQflu4.js.map +1 -0
  224. package/dist/_chunks/{text-area-BIx0tZ05.js → text-area-Bt3p7Pt0.js} +41 -34
  225. package/dist/_chunks/text-area-Bt3p7Pt0.js.map +1 -0
  226. package/dist/_chunks/{text-input-BaClJL8Y.js → text-input-B-OWQ1Je.js} +15 -8
  227. package/dist/_chunks/text-input-B-OWQ1Je.js.map +1 -0
  228. package/dist/_chunks/{theme-toggle-DETmSu_h.js → theme-toggle-XB6o_lgs.js} +38 -26
  229. package/dist/_chunks/theme-toggle-XB6o_lgs.js.map +1 -0
  230. package/dist/_chunks/{time-picker-B5umYwfv.js → time-picker-BPlJWm8w.js} +41 -31
  231. package/dist/_chunks/time-picker-BPlJWm8w.js.map +1 -0
  232. package/dist/_chunks/{timeline-DQa5Tyz4.js → timeline-CqA4nKTI.js} +33 -25
  233. package/dist/_chunks/timeline-CqA4nKTI.js.map +1 -0
  234. package/dist/_chunks/{toast.agent-vuLRRn2a.js → toast.agent-57UzyR9U.js} +62 -45
  235. package/dist/_chunks/{toast.agent-vuLRRn2a.js.map → toast.agent-57UzyR9U.js.map} +1 -1
  236. package/dist/_chunks/{tooth-scheme-BIx1O2aJ.js → tooth-scheme-yBr53cvv.js} +421 -348
  237. package/dist/_chunks/tooth-scheme-yBr53cvv.js.map +1 -0
  238. package/dist/_chunks/{transcript-panel-CLHmv83g.js → transcript-panel-3THQX6nJ.js} +47 -33
  239. package/dist/_chunks/transcript-panel-3THQX6nJ.js.map +1 -0
  240. package/dist/_chunks/unit-converter-YEpD9evj.js +337 -0
  241. package/dist/_chunks/unit-converter-YEpD9evj.js.map +1 -0
  242. package/dist/_chunks/{use-password-requirements-DsgduV1x.js → use-password-requirements-BXvS2MBS.js} +131 -117
  243. package/dist/_chunks/use-password-requirements-BXvS2MBS.js.map +1 -0
  244. package/dist/_chunks/users-MBVtUzwd.js +17 -0
  245. package/dist/_chunks/users-MBVtUzwd.js.map +1 -0
  246. package/dist/_chunks/warning-stack-BsgaEbL8.js +283 -0
  247. package/dist/_chunks/warning-stack-BsgaEbL8.js.map +1 -0
  248. package/dist/_chunks/{whatsapp-button-DUjlWGKf.js → whatsapp-button-BIy6NaJK.js} +6 -3
  249. package/dist/_chunks/whatsapp-button-BIy6NaJK.js.map +1 -0
  250. package/dist/_chunks/{workflow-map-JAZryZJr.js → workflow-map-Bdam9pGp.js} +99 -88
  251. package/dist/_chunks/workflow-map-Bdam9pGp.js.map +1 -0
  252. package/dist/agent/index.d.ts +4 -4
  253. package/dist/agent/index.d.ts.map +1 -1
  254. package/dist/agent/index.js +36 -0
  255. package/dist/agent/index.js.map +1 -0
  256. package/dist/agent/registry.d.ts +33 -0
  257. package/dist/agent/registry.d.ts.map +1 -1
  258. package/dist/agent/types.d.ts +78 -2
  259. package/dist/agent/types.d.ts.map +1 -1
  260. package/dist/agent-catalog.json +6905 -509
  261. package/dist/agent-i18n/en.json +1175 -0
  262. package/dist/components/accordion/accordion.agent.d.ts.map +1 -1
  263. package/dist/components/accordion/accordion.d.ts.map +1 -1
  264. package/dist/components/accordion/index.js +1 -1
  265. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts +4 -0
  266. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts.map +1 -0
  267. package/dist/components/address-autocomplete/address-autocomplete.d.ts +18 -0
  268. package/dist/components/address-autocomplete/address-autocomplete.d.ts.map +1 -1
  269. package/dist/components/address-autocomplete/index.d.ts +2 -1
  270. package/dist/components/address-autocomplete/index.d.ts.map +1 -1
  271. package/dist/components/address-autocomplete/index.js +3 -2
  272. package/dist/components/agenda-card/agenda-card.agent.d.ts.map +1 -1
  273. package/dist/components/agenda-card/index.js +1 -1
  274. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -1
  275. package/dist/components/agenda-tray/index.js +1 -1
  276. package/dist/components/ai-consent-banner/index.js +1 -1
  277. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -1
  278. package/dist/components/ai-prompt-input/index.js +1 -1
  279. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +1 -1
  280. package/dist/components/ai-tools-rail/index.js +1 -1
  281. package/dist/components/anamnesis-card/index.js +1 -1
  282. package/dist/components/appointment-card/appointment-card.agent.d.ts.map +1 -1
  283. package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -1
  284. package/dist/components/appointment-card/index.js +1 -1
  285. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -1
  286. package/dist/components/audio-recorder/index.js +1 -1
  287. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -1
  288. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  289. package/dist/components/autocomplete/index.js +1 -1
  290. package/dist/components/bishop-score/bishop-score.agent.d.ts +4 -0
  291. package/dist/components/bishop-score/bishop-score.agent.d.ts.map +1 -0
  292. package/dist/components/bishop-score/bishop-score.d.ts +17 -1
  293. package/dist/components/bishop-score/bishop-score.d.ts.map +1 -1
  294. package/dist/components/bishop-score/index.js +1 -1
  295. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts +4 -0
  296. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts.map +1 -0
  297. package/dist/components/bmi-calculator/bmi-calculator.d.ts +26 -0
  298. package/dist/components/bmi-calculator/bmi-calculator.d.ts.map +1 -1
  299. package/dist/components/bmi-calculator/index.js +1 -1
  300. package/dist/components/booking/booking.agent.d.ts.map +1 -1
  301. package/dist/components/booking/index.js +1 -1
  302. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -1
  303. package/dist/components/breadcrumb/index.js +1 -1
  304. package/dist/components/calculator-dialog/index.js +1 -1
  305. package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
  306. package/dist/components/calendar/index.js +1 -1
  307. package/dist/components/care-plan-card/care-plan-card.agent.d.ts.map +1 -1
  308. package/dist/components/care-plan-card/index.js +1 -1
  309. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts.map +1 -1
  310. package/dist/components/care-plan-entry-card/index.js +1 -1
  311. package/dist/components/carousel/carousel.agent.d.ts.map +1 -1
  312. package/dist/components/carousel/index.js +1 -1
  313. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  314. package/dist/components/chart/index.js +1 -1
  315. package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -1
  316. package/dist/components/chat-container/index.js +1 -1
  317. package/dist/components/chat-input/chat-input.agent.d.ts.map +1 -1
  318. package/dist/components/chat-input/index.js +1 -1
  319. package/dist/components/checkbox/checkbox.agent.d.ts.map +1 -1
  320. package/dist/components/checkbox/index.js +1 -1
  321. package/dist/components/checkbox-group/index.js +1 -1
  322. package/dist/components/clinical-note-card/index.js +1 -1
  323. package/dist/components/collapsible/collapsible.agent.d.ts.map +1 -1
  324. package/dist/components/collapsible/index.js +1 -1
  325. package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -1
  326. package/dist/components/color-picker/index.js +1 -1
  327. package/dist/components/combobox/combobox.agent.d.ts.map +1 -1
  328. package/dist/components/combobox/combobox.d.ts.map +1 -1
  329. package/dist/components/combobox/index.js +1 -1
  330. package/dist/components/command-palette/command-palette.agent.d.ts.map +1 -1
  331. package/dist/components/command-palette/command-palette.d.ts.map +1 -1
  332. package/dist/components/command-palette/index.js +1 -1
  333. package/dist/components/contact-profile-card/contact-profile-card.agent.d.ts.map +1 -1
  334. package/dist/components/contact-profile-card/index.js +1 -1
  335. package/dist/components/copy-field/copy-field.agent.d.ts.map +1 -1
  336. package/dist/components/copy-field/index.js +1 -1
  337. package/dist/components/counter/counter.d.ts +22 -0
  338. package/dist/components/counter/counter.d.ts.map +1 -0
  339. package/dist/components/counter/index.d.ts +3 -0
  340. package/dist/components/counter/index.d.ts.map +1 -0
  341. package/dist/components/counter/index.js +5 -0
  342. package/dist/components/counter/index.js.map +1 -0
  343. package/dist/components/cycle-calculator/index.js +1 -1
  344. package/dist/components/data-table/data-table.agent.d.ts.map +1 -1
  345. package/dist/components/data-table/data-table.d.ts +1 -1
  346. package/dist/components/data-table/data-table.d.ts.map +1 -1
  347. package/dist/components/data-table/filters/date-range-filter.d.ts +1 -1
  348. package/dist/components/data-table/filters/date-range-filter.d.ts.map +1 -1
  349. package/dist/components/data-table/index.js +31 -30
  350. package/dist/components/data-table/index.js.map +1 -1
  351. package/dist/components/data-table/toolbar.d.ts +4 -1
  352. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  353. package/dist/components/date-picker/date-picker.agent.d.ts.map +1 -1
  354. package/dist/components/date-picker/index.js +1 -1
  355. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
  356. package/dist/components/date-range-picker/index.js +1 -1
  357. package/dist/components/date-time-picker/date-time-picker.agent.d.ts.map +1 -1
  358. package/dist/components/date-time-picker/index.js +1 -1
  359. package/dist/components/dependent-selector/dependent-selector.agent.d.ts.map +1 -1
  360. package/dist/components/dependent-selector/index.js +1 -1
  361. package/dist/components/dialog/dialog.agent.d.ts.map +1 -1
  362. package/dist/components/dialog/index.js +1 -1
  363. package/dist/components/document-scanner/document-scanner.agent.d.ts.map +1 -1
  364. package/dist/components/document-scanner/index.js +1 -1
  365. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +1 -1
  366. package/dist/components/dropdown-menu/index.js +1 -1
  367. package/dist/components/due-date-calculator/index.js +1 -1
  368. package/dist/components/editor-overlay/editor-overlay.d.ts.map +1 -1
  369. package/dist/components/email-input/index.js +1 -1
  370. package/dist/components/fetal-weight/index.js +1 -1
  371. package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -1
  372. package/dist/components/file-upload/index.js +1 -1
  373. package/dist/components/fiscal-code-input/fiscal-code-input.agent.d.ts.map +1 -1
  374. package/dist/components/fiscal-code-input/index.js +1 -1
  375. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -1
  376. package/dist/components/freemium-paywall/freemium-paywall.d.ts +6 -0
  377. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  378. package/dist/components/freemium-paywall/index.js +1 -1
  379. package/dist/components/gestational-age-calculator/index.js +1 -1
  380. package/dist/components/hcg-doubling/index.js +1 -1
  381. package/dist/components/header-settings/header-settings.agent.d.ts.map +1 -1
  382. package/dist/components/header-settings/index.js +1 -1
  383. package/dist/components/index.d.ts +2 -0
  384. package/dist/components/index.d.ts.map +1 -1
  385. package/dist/components/list/index.js +1 -1
  386. package/dist/components/list/list.agent.d.ts.map +1 -1
  387. package/dist/components/locale-picker/index.js +1 -1
  388. package/dist/components/locale-picker/locale-picker.agent.d.ts.map +1 -1
  389. package/dist/components/map-view/index.js +1 -1
  390. package/dist/components/map-view/map-view.agent.d.ts.map +1 -1
  391. package/dist/components/message-card/index.js +1 -1
  392. package/dist/components/message-card/message-card.agent.d.ts.map +1 -1
  393. package/dist/components/message-tray/index.js +1 -1
  394. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  395. package/dist/components/multi-select/index.js +1 -1
  396. package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -1
  397. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  398. package/dist/components/navigation-menu/index.js +1 -1
  399. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -1
  400. package/dist/components/notification-card/index.js +1 -1
  401. package/dist/components/notification-card/notification-card.agent.d.ts.map +1 -1
  402. package/dist/components/notification-tray/index.js +1 -1
  403. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  404. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  405. package/dist/components/number-input/index.js +1 -1
  406. package/dist/components/number-input/number-input.agent.d.ts.map +1 -1
  407. package/dist/components/operator-hero/index.js +1 -1
  408. package/dist/components/operator-hero/operator-hero.agent.d.ts.map +1 -1
  409. package/dist/components/otp-input/index.js +1 -1
  410. package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -1
  411. package/dist/components/pagination/index.js +1 -1
  412. package/dist/components/pagination/pagination.agent.d.ts.map +1 -1
  413. package/dist/components/password-input/index.js +1 -1
  414. package/dist/components/password-input/password-input.agent.d.ts.map +1 -1
  415. package/dist/components/patient-search/index.js +1 -1
  416. package/dist/components/patient-search/patient-search.agent.d.ts.map +1 -1
  417. package/dist/components/patient-summary-card/index.js +1 -1
  418. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -1
  419. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts +13 -0
  420. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts.map +1 -0
  421. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts +43 -0
  422. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts.map +1 -0
  423. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +45 -0
  424. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts.map +1 -0
  425. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts +24 -0
  426. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts.map +1 -0
  427. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +26 -0
  428. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts.map +1 -0
  429. package/dist/components/patient-table/columns.d.ts +102 -0
  430. package/dist/components/patient-table/columns.d.ts.map +1 -0
  431. package/dist/components/patient-table/index.d.ts +24 -0
  432. package/dist/components/patient-table/index.d.ts.map +1 -0
  433. package/dist/components/patient-table/index.js +13 -0
  434. package/dist/components/patient-table/index.js.map +1 -0
  435. package/dist/components/patient-table/patient-table.d.ts +138 -0
  436. package/dist/components/patient-table/patient-table.d.ts.map +1 -0
  437. package/dist/components/patient-table/types.d.ts +172 -0
  438. package/dist/components/patient-table/types.d.ts.map +1 -0
  439. package/dist/components/patient-table/use-responsive-columns.d.ts +109 -0
  440. package/dist/components/patient-table/use-responsive-columns.d.ts.map +1 -0
  441. package/dist/components/payment-card/index.js +1 -1
  442. package/dist/components/payment-form/index.js +1 -1
  443. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
  444. package/dist/components/pdf-viewer/index.js +1 -1
  445. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
  446. package/dist/components/periodontal-chart-card/index.js +1 -1
  447. package/dist/components/phone-input/index.js +1 -1
  448. package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -1
  449. package/dist/components/popover/index.js +1 -1
  450. package/dist/components/popover/popover.agent.d.ts.map +1 -1
  451. package/dist/components/practice-results/index.js +1 -1
  452. package/dist/components/practice-results/practice-results.agent.d.ts.map +1 -1
  453. package/dist/components/pregnancy-dating/index.js +1 -1
  454. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  455. package/dist/components/privacy-lock/index.js +1 -1
  456. package/dist/components/privacy-lock/privacy-lock.agent.d.ts.map +1 -1
  457. package/dist/components/product-hub-tray/index.js +1 -1
  458. package/dist/components/product-hub-tray/product-hub-panel.agent.d.ts.map +1 -1
  459. package/dist/components/product-hub-tray/product-hub-tray.agent.d.ts.map +1 -1
  460. package/dist/components/progress/index.js +1 -1
  461. package/dist/components/public-footer/index.js +1 -1
  462. package/dist/components/public-footer/public-footer.agent.d.ts.map +1 -1
  463. package/dist/components/public-footer/public-footer.d.ts.map +1 -1
  464. package/dist/components/public-header/index.js +1 -1
  465. package/dist/components/public-header/public-header.agent.d.ts.map +1 -1
  466. package/dist/components/qr-code/index.js +1 -1
  467. package/dist/components/qr-code/qr-code.agent.d.ts.map +1 -1
  468. package/dist/components/radio-group/index.js +1 -1
  469. package/dist/components/recaptcha-widget/index.js +1 -1
  470. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -1
  471. package/dist/components/resizable/index.js +1 -1
  472. package/dist/components/resizable/resizable.agent.d.ts.map +1 -1
  473. package/dist/components/resizable/resizable.d.ts.map +1 -1
  474. package/dist/components/reviews-panel/index.js +1 -1
  475. package/dist/components/reviews-panel/reviews-panel.agent.d.ts.map +1 -1
  476. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts.map +1 -1
  477. package/dist/components/rich-text-editor/index.js +1 -1
  478. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -1
  479. package/dist/components/rich-text-editor/rich-text-editor.d.ts +15 -0
  480. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  481. package/dist/components/search-bar/index.js +1 -1
  482. package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -1
  483. package/dist/components/search-input/index.js +2 -2
  484. package/dist/components/search-input/search-input.agent.d.ts.map +1 -1
  485. package/dist/components/select/index.js +1 -1
  486. package/dist/components/select/select.agent.d.ts.map +1 -1
  487. package/dist/components/session-countdown/index.js +1 -1
  488. package/dist/components/sheet/index.js +1 -1
  489. package/dist/components/sheet/sheet.agent.d.ts.map +1 -1
  490. package/dist/components/sidebar/index.js +1 -1
  491. package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -1
  492. package/dist/components/sidebar/sidebar.d.ts +7 -0
  493. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  494. package/dist/components/sign-document/index.js +1 -1
  495. package/dist/components/sign-document/sign-document.agent.d.ts.map +1 -1
  496. package/dist/components/signature-capture/index.js +1 -1
  497. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +1 -1
  498. package/dist/components/slider/index.js +1 -1
  499. package/dist/components/slider/slider.agent.d.ts.map +1 -1
  500. package/dist/components/sparkline/index.js +1 -1
  501. package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -1
  502. package/dist/components/stepper-accordion/index.js +1 -1
  503. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -1
  504. package/dist/components/stepper-progress/index.js +1 -1
  505. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -1
  506. package/dist/components/suggestion-chip/index.js +1 -1
  507. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -1
  508. package/dist/components/switch/index.js +1 -1
  509. package/dist/components/switch/switch.agent.d.ts.map +1 -1
  510. package/dist/components/tabs/index.js +1 -1
  511. package/dist/components/tabs/tabs.agent.d.ts.map +1 -1
  512. package/dist/components/tabs/tabs.d.ts.map +1 -1
  513. package/dist/components/task-card/index.js +1 -1
  514. package/dist/components/task-card/task-card.agent.d.ts.map +1 -1
  515. package/dist/components/task-tray/index.js +1 -1
  516. package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -1
  517. package/dist/components/text-area/index.js +1 -1
  518. package/dist/components/text-area/text-area.agent.d.ts.map +1 -1
  519. package/dist/components/text-input/index.js +1 -1
  520. package/dist/components/text-input/text-input.agent.d.ts.map +1 -1
  521. package/dist/components/theme-toggle/index.js +1 -1
  522. package/dist/components/theme-toggle/theme-toggle.agent.d.ts.map +1 -1
  523. package/dist/components/time-picker/index.js +1 -1
  524. package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -1
  525. package/dist/components/timeline/index.js +1 -1
  526. package/dist/components/timeline/timeline.agent.d.ts.map +1 -1
  527. package/dist/components/toast/index.js +1 -1
  528. package/dist/components/toast/toast.agent.d.ts.map +1 -1
  529. package/dist/components/toast/toast.d.ts.map +1 -1
  530. package/dist/components/tooth-scheme/index.js +1 -1
  531. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  532. package/dist/components/transcript-panel/index.js +1 -1
  533. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -1
  534. package/dist/components/unit-converter/index.js +1 -1
  535. package/dist/components/unit-converter/unit-converter.agent.d.ts +4 -0
  536. package/dist/components/unit-converter/unit-converter.agent.d.ts.map +1 -0
  537. package/dist/components/unit-converter/unit-converter.d.ts +27 -0
  538. package/dist/components/unit-converter/unit-converter.d.ts.map +1 -1
  539. package/dist/components/warning-stack/index.js +1 -1
  540. package/dist/components/warning-stack/warning-stack.d.ts +9 -0
  541. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  542. package/dist/components/whatsapp-button/index.d.ts +1 -1
  543. package/dist/components/whatsapp-button/index.d.ts.map +1 -1
  544. package/dist/components/whatsapp-button/index.js +3 -2
  545. package/dist/components/whatsapp-button/whatsapp-button.d.ts +3 -0
  546. package/dist/components/whatsapp-button/whatsapp-button.d.ts.map +1 -1
  547. package/dist/components/workflow/index.js +1 -1
  548. package/dist/components/workflow/workflow.agent.d.ts.map +1 -1
  549. package/dist/i18n/locales/ar.d.ts +74 -0
  550. package/dist/i18n/locales/ar.d.ts.map +1 -1
  551. package/dist/i18n/locales/ar.js +76 -2
  552. package/dist/i18n/locales/ar.js.map +1 -1
  553. package/dist/i18n/locales/de.d.ts +74 -0
  554. package/dist/i18n/locales/de.d.ts.map +1 -1
  555. package/dist/i18n/locales/de.js +76 -2
  556. package/dist/i18n/locales/de.js.map +1 -1
  557. package/dist/i18n/locales/el.d.ts +74 -0
  558. package/dist/i18n/locales/el.d.ts.map +1 -1
  559. package/dist/i18n/locales/el.js +76 -2
  560. package/dist/i18n/locales/el.js.map +1 -1
  561. package/dist/i18n/locales/en.d.ts +92 -0
  562. package/dist/i18n/locales/en.d.ts.map +1 -1
  563. package/dist/i18n/locales/en.js +94 -2
  564. package/dist/i18n/locales/en.js.map +1 -1
  565. package/dist/i18n/locales/es.d.ts +74 -0
  566. package/dist/i18n/locales/es.d.ts.map +1 -1
  567. package/dist/i18n/locales/es.js +76 -2
  568. package/dist/i18n/locales/es.js.map +1 -1
  569. package/dist/i18n/locales/fr.d.ts +74 -0
  570. package/dist/i18n/locales/fr.d.ts.map +1 -1
  571. package/dist/i18n/locales/fr.js +76 -2
  572. package/dist/i18n/locales/fr.js.map +1 -1
  573. package/dist/i18n/locales/hi.d.ts +74 -0
  574. package/dist/i18n/locales/hi.d.ts.map +1 -1
  575. package/dist/i18n/locales/hi.js +76 -2
  576. package/dist/i18n/locales/hi.js.map +1 -1
  577. package/dist/i18n/locales/it.d.ts +74 -0
  578. package/dist/i18n/locales/it.d.ts.map +1 -1
  579. package/dist/i18n/locales/it.js +76 -2
  580. package/dist/i18n/locales/it.js.map +1 -1
  581. package/dist/i18n/locales/ja.d.ts +74 -0
  582. package/dist/i18n/locales/ja.d.ts.map +1 -1
  583. package/dist/i18n/locales/ja.js +76 -2
  584. package/dist/i18n/locales/ja.js.map +1 -1
  585. package/dist/i18n/locales/nl.d.ts +74 -0
  586. package/dist/i18n/locales/nl.d.ts.map +1 -1
  587. package/dist/i18n/locales/nl.js +76 -2
  588. package/dist/i18n/locales/nl.js.map +1 -1
  589. package/dist/i18n/locales/pl.d.ts +74 -0
  590. package/dist/i18n/locales/pl.d.ts.map +1 -1
  591. package/dist/i18n/locales/pl.js +76 -2
  592. package/dist/i18n/locales/pl.js.map +1 -1
  593. package/dist/i18n/locales/pt.d.ts +74 -0
  594. package/dist/i18n/locales/pt.d.ts.map +1 -1
  595. package/dist/i18n/locales/pt.js +76 -2
  596. package/dist/i18n/locales/pt.js.map +1 -1
  597. package/dist/i18n/locales/ro.d.ts +74 -0
  598. package/dist/i18n/locales/ro.d.ts.map +1 -1
  599. package/dist/i18n/locales/ro.js +76 -2
  600. package/dist/i18n/locales/ro.js.map +1 -1
  601. package/dist/i18n/locales/ru.d.ts +74 -0
  602. package/dist/i18n/locales/ru.d.ts.map +1 -1
  603. package/dist/i18n/locales/ru.js +76 -2
  604. package/dist/i18n/locales/ru.js.map +1 -1
  605. package/dist/i18n/locales/sq.d.ts +74 -0
  606. package/dist/i18n/locales/sq.d.ts.map +1 -1
  607. package/dist/i18n/locales/sq.js +76 -2
  608. package/dist/i18n/locales/sq.js.map +1 -1
  609. package/dist/i18n/locales/sv.d.ts +74 -0
  610. package/dist/i18n/locales/sv.d.ts.map +1 -1
  611. package/dist/i18n/locales/sv.js +76 -2
  612. package/dist/i18n/locales/sv.js.map +1 -1
  613. package/dist/i18n/locales/tr.d.ts +74 -0
  614. package/dist/i18n/locales/tr.d.ts.map +1 -1
  615. package/dist/i18n/locales/tr.js +76 -2
  616. package/dist/i18n/locales/tr.js.map +1 -1
  617. package/dist/i18n/locales/zh.d.ts +74 -0
  618. package/dist/i18n/locales/zh.d.ts.map +1 -1
  619. package/dist/i18n/locales/zh.js +76 -2
  620. package/dist/i18n/locales/zh.js.map +1 -1
  621. package/dist/index.js +688 -673
  622. package/dist/index.js.map +1 -1
  623. package/dist/locales/ar.json +76 -2
  624. package/dist/locales/de.json +76 -2
  625. package/dist/locales/el.json +76 -2
  626. package/dist/locales/en.json +76 -2
  627. package/dist/locales/es.json +76 -2
  628. package/dist/locales/fr.json +76 -2
  629. package/dist/locales/hi.json +76 -2
  630. package/dist/locales/it.json +76 -2
  631. package/dist/locales/ja.json +76 -2
  632. package/dist/locales/nl.json +76 -2
  633. package/dist/locales/pl.json +76 -2
  634. package/dist/locales/pt.json +76 -2
  635. package/dist/locales/ro.json +76 -2
  636. package/dist/locales/ru.json +76 -2
  637. package/dist/locales/sq.json +76 -2
  638. package/dist/locales/sv.json +76 -2
  639. package/dist/locales/tr.json +76 -2
  640. package/dist/locales/zh.json +76 -2
  641. package/dist/patterns/alia-assistant/index.js +1 -1
  642. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  643. package/dist/patterns/patient-shell/index.js +1 -1
  644. package/dist/tokens.css +3 -2
  645. package/package.json +14 -1
  646. package/dist/_chunks/accordion-9lJSMMsZ.js.map +0 -1
  647. package/dist/_chunks/address-autocomplete-CT-9AOli.js +0 -358
  648. package/dist/_chunks/address-autocomplete-CT-9AOli.js.map +0 -1
  649. package/dist/_chunks/agenda-tray-T-BumlGZ.js.map +0 -1
  650. package/dist/_chunks/ai-prompt-input-BwEACCPm.js.map +0 -1
  651. package/dist/_chunks/ai-tools-rail-CInA_1-E.js.map +0 -1
  652. package/dist/_chunks/appointment-tray-BMl89NPW.js.map +0 -1
  653. package/dist/_chunks/audio-recorder-DjXLP4aF.js.map +0 -1
  654. package/dist/_chunks/autocomplete-CcCFlVf-.js.map +0 -1
  655. package/dist/_chunks/bishop-score-CjsB9bM-.js +0 -185
  656. package/dist/_chunks/bishop-score-CjsB9bM-.js.map +0 -1
  657. package/dist/_chunks/bmi-calculator-n-823_1V.js +0 -258
  658. package/dist/_chunks/bmi-calculator-n-823_1V.js.map +0 -1
  659. package/dist/_chunks/booking-L8-YP8BJ.js.map +0 -1
  660. package/dist/_chunks/breadcrumb-OTbaY70e.js.map +0 -1
  661. package/dist/_chunks/calendar-oYWOCrnf.js.map +0 -1
  662. package/dist/_chunks/care-plan-card-BwVUyUBb.js.map +0 -1
  663. package/dist/_chunks/care-plan-entry-card-VzdQHcOL.js.map +0 -1
  664. package/dist/_chunks/chart-Cg3e9EH9.js.map +0 -1
  665. package/dist/_chunks/chat-container-ogB4OskO.js.map +0 -1
  666. package/dist/_chunks/chat-input-B5zjNEUN.js.map +0 -1
  667. package/dist/_chunks/checkbox-DRcOdmXv.js.map +0 -1
  668. package/dist/_chunks/collapsible-X3oaLPU3.js.map +0 -1
  669. package/dist/_chunks/color-picker-FXpItIaF.js.map +0 -1
  670. package/dist/_chunks/combobox-BC-DFx8G.js.map +0 -1
  671. package/dist/_chunks/command-palette-BiPAAno-.js.map +0 -1
  672. package/dist/_chunks/contact-profile-card-7BMB85T6.js.map +0 -1
  673. package/dist/_chunks/copy-field-CCq7j6Zc.js.map +0 -1
  674. package/dist/_chunks/date-range-picker-C5BWfH_T.js.map +0 -1
  675. package/dist/_chunks/date-time-picker-Ze1My59T.js.map +0 -1
  676. package/dist/_chunks/dependent-selector-DpzGtr_J.js.map +0 -1
  677. package/dist/_chunks/dialog-DMGnSelc.js.map +0 -1
  678. package/dist/_chunks/document-scanner-D2qehl3-.js.map +0 -1
  679. package/dist/_chunks/dropdown-menu-DwwPovMZ.js.map +0 -1
  680. package/dist/_chunks/editable-currency-cell-renderer-D1ewvJKO.js +0 -2391
  681. package/dist/_chunks/editable-currency-cell-renderer-D1ewvJKO.js.map +0 -1
  682. package/dist/_chunks/file-upload-BosbPDb1.js.map +0 -1
  683. package/dist/_chunks/fiscal-code-input-DPtqluVb.js.map +0 -1
  684. package/dist/_chunks/freemium-paywall-CkWjv3o6.js.map +0 -1
  685. package/dist/_chunks/header-settings-CNOqIhoW.js.map +0 -1
  686. package/dist/_chunks/list-BOwqwy03.js.map +0 -1
  687. package/dist/_chunks/locale-picker-C9JmBht3.js.map +0 -1
  688. package/dist/_chunks/map-view-Tb5VfK9Y.js.map +0 -1
  689. package/dist/_chunks/message-card.agent-4IeIgrnJ.js.map +0 -1
  690. package/dist/_chunks/message-tray-CVyJajVJ.js.map +0 -1
  691. package/dist/_chunks/multi-select-BcPylvHR.js.map +0 -1
  692. package/dist/_chunks/navigation-menu-C6lBYVv9.js.map +0 -1
  693. package/dist/_chunks/notification-card.agent-Rqt3ofk9.js.map +0 -1
  694. package/dist/_chunks/notification-tray-DlgenTEe.js.map +0 -1
  695. package/dist/_chunks/number-input-Dj5L3pXK.js.map +0 -1
  696. package/dist/_chunks/operator-hero-f_KaRhw5.js.map +0 -1
  697. package/dist/_chunks/otp-input-xQ4Ps5VY.js.map +0 -1
  698. package/dist/_chunks/pagination-DQOgnxxw.js.map +0 -1
  699. package/dist/_chunks/patient-search-DR9XUYRQ.js.map +0 -1
  700. package/dist/_chunks/patient-summary-card-hEmr4eTW.js.map +0 -1
  701. package/dist/_chunks/payment-form-nXocS_MX.js.map +0 -1
  702. package/dist/_chunks/pdf-viewer-GsfNqeeT.js.map +0 -1
  703. package/dist/_chunks/phone-input-DVXhNlIl.js.map +0 -1
  704. package/dist/_chunks/popover-DTbfAuR0.js.map +0 -1
  705. package/dist/_chunks/practice-results-DND2SAt7.js.map +0 -1
  706. package/dist/_chunks/privacy-lock-C7JyMf0y.js.map +0 -1
  707. package/dist/_chunks/product-hub-panel-CAXDFeGP.js.map +0 -1
  708. package/dist/_chunks/public-footer.agent-CfXuW1x6.js.map +0 -1
  709. package/dist/_chunks/qr-code-DNXhi6se.js.map +0 -1
  710. package/dist/_chunks/recaptcha-widget-BCNHsgqt.js.map +0 -1
  711. package/dist/_chunks/registry-nPAVE19X.js +0 -21
  712. package/dist/_chunks/registry-nPAVE19X.js.map +0 -1
  713. package/dist/_chunks/resizable-3vzqDlg6.js.map +0 -1
  714. package/dist/_chunks/reviews-panel-DBktKm7i.js.map +0 -1
  715. package/dist/_chunks/rich-text-editor-DAeCXiQG.js +0 -1973
  716. package/dist/_chunks/rich-text-editor-DAeCXiQG.js.map +0 -1
  717. package/dist/_chunks/search-bar-SY2BcV2N.js.map +0 -1
  718. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +0 -1
  719. package/dist/_chunks/select-CEtRcon5.js.map +0 -1
  720. package/dist/_chunks/sheet-taJer-Ha.js.map +0 -1
  721. package/dist/_chunks/sidebar-DaB4ulxH.js.map +0 -1
  722. package/dist/_chunks/sign-document-CdAiHiCh.js.map +0 -1
  723. package/dist/_chunks/signature-capture-COi0Uiqu.js.map +0 -1
  724. package/dist/_chunks/slider-BHWzXdjt.js.map +0 -1
  725. package/dist/_chunks/sparkline-DGhCSw8M.js.map +0 -1
  726. package/dist/_chunks/stepper-accordion.agent-C4quJ-MD.js.map +0 -1
  727. package/dist/_chunks/stepper-progress-DDjq5nei.js.map +0 -1
  728. package/dist/_chunks/switch-BJ6HD3Mn.js.map +0 -1
  729. package/dist/_chunks/tabs-BIQ0ew1T.js.map +0 -1
  730. package/dist/_chunks/task-card.agent-CUPKYd7w.js.map +0 -1
  731. package/dist/_chunks/task-tray-CAncV-QQ.js.map +0 -1
  732. package/dist/_chunks/text-area-BIx0tZ05.js.map +0 -1
  733. package/dist/_chunks/text-input-BaClJL8Y.js.map +0 -1
  734. package/dist/_chunks/theme-toggle-DETmSu_h.js.map +0 -1
  735. package/dist/_chunks/time-picker-B5umYwfv.js.map +0 -1
  736. package/dist/_chunks/timeline-DQa5Tyz4.js.map +0 -1
  737. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js.map +0 -1
  738. package/dist/_chunks/transcript-panel-CLHmv83g.js.map +0 -1
  739. package/dist/_chunks/unit-converter-C1V3ACM9.js +0 -196
  740. package/dist/_chunks/unit-converter-C1V3ACM9.js.map +0 -1
  741. package/dist/_chunks/use-password-requirements-DsgduV1x.js.map +0 -1
  742. package/dist/_chunks/warning-stack-Cv4fr5zo.js +0 -220
  743. package/dist/_chunks/warning-stack-Cv4fr5zo.js.map +0 -1
  744. package/dist/_chunks/whatsapp-button-DUjlWGKf.js.map +0 -1
  745. package/dist/_chunks/workflow-map-JAZryZJr.js.map +0 -1
@@ -1,21 +1,34 @@
1
1
  import { jsxs as m, jsx as t } from "react/jsx-runtime";
2
- import { forwardRef as B, useRef as u, useState as C, useCallback as H, useImperativeHandle as L, useMemo as E, useEffect as M } from "react";
3
- import { c as k } from "./index-D2ZczOXr.js";
4
- import { useTranslation as O } from "react-i18next";
5
- import { u as S } from "./registry-nPAVE19X.js";
6
- import { u as j } from "./index-CJE9uQmb.js";
2
+ import { forwardRef as B, useRef as p, useState as C, useCallback as H, useImperativeHandle as L, useMemo as S, useEffect as j } from "react";
3
+ import { c as w } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as E } from "react-i18next";
5
+ import { u as M } from "./registry-DvAUVLHh.js";
6
+ import { u as O } from "./index-CJE9uQmb.js";
7
7
  import { F as A } from "./floating-action-button-pojvb9gG.js";
8
- import { u as P } from "./use-prefers-reduced-motion-BMwIQRjB.js";
9
- import { u as $ } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
10
- import { C as D } from "./chevron-down-BX_NP2Yh.js";
11
- const F = {
8
+ import { u as F } from "./use-prefers-reduced-motion-BMwIQRjB.js";
9
+ import { u as K } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
10
+ import { C as P } from "./chevron-down-BX_NP2Yh.js";
11
+ const $ = {
12
12
  id: "chat-container",
13
- capabilities: ["navigate"],
13
+ // Scrolling the log viewport is pure ephemeral view state — `scroll`,
14
+ // not `navigate` (nothing routes; the conversation stays in place).
15
+ capabilities: ["scroll"],
14
16
  state: {},
15
17
  actions: {
16
18
  scroll_to_bottom: {
17
19
  safety: "read",
18
20
  argsType: "{ smooth?: boolean }",
21
+ argsSchema: {
22
+ type: "object",
23
+ properties: {
24
+ smooth: {
25
+ type: "boolean",
26
+ description: "Animate the scroll when true (default). Forced off under reduced motion."
27
+ }
28
+ }
29
+ },
30
+ idempotent: !0,
31
+ descriptionKey: "ui.agent.chatContainer.actions.scrollToBottom",
19
32
  description: "Scroll the conversation viewport to the latest message.",
20
33
  invoke: (o, r) => {
21
34
  o.scrollToBottom(r);
@@ -30,7 +43,7 @@ const F = {
30
43
  description: "Sourced from the id prop."
31
44
  }
32
45
  }
33
- }, K = k(
46
+ }, D = w(
34
47
  "ds:relative ds:flex ds:w-full ds:flex-col ds:overflow-hidden ds:bg-background",
35
48
  {
36
49
  variants: {
@@ -41,7 +54,7 @@ const F = {
41
54
  },
42
55
  defaultVariants: { density: "default" }
43
56
  }
44
- ), U = k(
57
+ ), U = w(
45
58
  [
46
59
  "ds:flex-1 ds:min-h-0 ds:overflow-y-auto ds:overflow-x-hidden",
47
60
  "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
@@ -65,34 +78,34 @@ const F = {
65
78
  ({
66
79
  messages: o,
67
80
  composer: r,
68
- density: w = "default",
69
- className: I,
70
- id: p,
81
+ density: y = "default",
82
+ className: k,
83
+ id: u,
71
84
  onAutoScrollChange: i,
72
- showScrollToLatest: N = !1,
73
- ...y
85
+ showScrollToLatest: I = !1,
86
+ ...N
74
87
  }, T) => {
75
- const { t: f } = O(), a = u(null), v = u(null), [c, _] = C(!0), g = P(), n = H(
88
+ const { t: f } = E(), a = p(null), v = p(null), [c, _] = C(!0), h = F(), n = H(
76
89
  (e) => {
77
90
  const s = a.current;
78
91
  if (!s) return;
79
- const d = ((e == null ? void 0 : e.smooth) ?? !0) && !g;
92
+ const d = ((e == null ? void 0 : e.smooth) ?? !0) && !h;
80
93
  s.scrollTo({
81
94
  top: s.scrollHeight,
82
95
  behavior: d ? "smooth" : "auto"
83
96
  });
84
97
  },
85
- [g]
86
- ), h = u(null);
87
- L(T, () => h.current, []);
88
- const R = E(
98
+ [h]
99
+ ), g = p(null);
100
+ L(T, () => g.current, []);
101
+ const R = S(
89
102
  () => ({
90
103
  scrollToBottom: n,
91
104
  getScrollViewport: () => a.current
92
105
  }),
93
106
  [n]
94
107
  );
95
- S(F, R, p), M(() => {
108
+ M($, R, u), j(() => {
96
109
  const e = a.current, s = v.current;
97
110
  if (!e || !s) return;
98
111
  const d = new IntersectionObserver(
@@ -110,10 +123,10 @@ const F = {
110
123
  return d.observe(s), () => d.disconnect();
111
124
  }, [i]);
112
125
  const z = o.length;
113
- $(() => {
126
+ K(() => {
114
127
  c && n({ smooth: !1 });
115
128
  }, [z, c, n]);
116
- const b = o.length > X, l = j({
129
+ const b = o.length > X, l = O({
117
130
  count: b ? o.length : 0,
118
131
  getScrollElement: () => a.current,
119
132
  estimateSize: () => 80,
@@ -126,11 +139,11 @@ const F = {
126
139
  return /* @__PURE__ */ m(
127
140
  "div",
128
141
  {
129
- ref: h,
130
- className: K({ density: w, className: I }),
142
+ ref: g,
143
+ className: D({ density: y, className: k }),
131
144
  "data-component": "chat-container",
132
- "data-component-id": p,
133
- ...y,
145
+ "data-component-id": u,
146
+ ...N,
134
147
  children: [
135
148
  /* @__PURE__ */ m("div", { className: "ds:relative ds:flex-1 ds:min-h-0 ds:flex ds:flex-col", children: [
136
149
  /* @__PURE__ */ m(
@@ -176,7 +189,7 @@ const F = {
176
189
  ]
177
190
  }
178
191
  ),
179
- N && !c ? /* @__PURE__ */ t(
192
+ I && !c ? /* @__PURE__ */ t(
180
193
  "div",
181
194
  {
182
195
  className: [
@@ -196,7 +209,7 @@ const F = {
196
209
  children: /* @__PURE__ */ t("div", { className: "ds:pointer-events-auto", children: /* @__PURE__ */ t(
197
210
  A,
198
211
  {
199
- icon: /* @__PURE__ */ t(D, {}),
212
+ icon: /* @__PURE__ */ t(P, {}),
200
213
  "aria-label": f("chat.scrollToLatest"),
201
214
  size: "sm",
202
215
  variant: "secondary",
@@ -216,6 +229,6 @@ const F = {
216
229
  Z.displayName = "ChatContainer";
217
230
  export {
218
231
  Z as C,
219
- F as c
232
+ $ as c
220
233
  };
221
- //# sourceMappingURL=chat-container-ogB4OskO.js.map
234
+ //# sourceMappingURL=chat-container-DWho5hPR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-container-DWho5hPR.js","sources":["../../src/components/chat-container/chat-container.agent.ts","../../src/components/chat-container/chat-container.tsx"],"sourcesContent":["import type { AgentAdapter } from '../../agent/types';\nimport type { ChatContainerHandle } from './chat-container';\n\nexport const chatContainerAgent: AgentAdapter<ChatContainerHandle> = {\n id: 'chat-container',\n // Scrolling the log viewport is pure ephemeral view state — `scroll`,\n // not `navigate` (nothing routes; the conversation stays in place).\n capabilities: ['scroll'],\n state: {},\n actions: {\n scroll_to_bottom: {\n safety: 'read',\n argsType: '{ smooth?: boolean }',\n argsSchema: {\n type: 'object',\n properties: {\n smooth: {\n type: 'boolean',\n description:\n 'Animate the scroll when true (default). Forced off under reduced motion.',\n },\n },\n },\n idempotent: true,\n descriptionKey: 'ui.agent.chatContainer.actions.scrollToBottom',\n description: 'Scroll the conversation viewport to the latest message.',\n invoke: (handle, args: { smooth?: boolean }) => {\n handle.scrollToBottom(args);\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'chat-container' },\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 useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { chatContainerAgent } from './chat-container.agent';\nimport { ChevronDown } from 'lucide-react';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { FloatingActionButton } from '../floating-action-button/floating-action-button';\nimport {\n useIsomorphicLayoutEffect,\n usePrefersReducedMotion,\n} from '../../hooks';\n\nconst rootVariants = cva(\n 'ds:relative ds:flex ds:w-full ds:flex-col ds:overflow-hidden ds:bg-background',\n {\n variants: {\n density: {\n default: 'ds:gap-[var(--spacing-md)]',\n compact: 'ds:gap-[var(--spacing-sm)]',\n },\n },\n defaultVariants: { density: 'default' },\n },\n);\n\nconst scrollViewportVariants = cva(\n [\n 'ds:flex-1 ds:min-h-0 ds:overflow-y-auto ds:overflow-x-hidden',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n 'ds:pt-[var(--spacing-md)] ds:pb-[var(--spacing-md)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:scroll-smooth ds:motion-reduce:scroll-auto ds:[.theme-accessible_&]:scroll-auto',\n // Edge fade — content near the scroll boundaries fades into the\n // container surface instead of clipping abruptly against the header\n // or composer, so avatars / bubbles don't look \"cut in half\" as they\n // pass the viewport edge. Fade width matches the viewport padding so\n // a row can slide fully behind the mask before disappearing.\n // Disabled under HCM (mask strips content), reduced motion (less\n // decoration when motion is off), and the accessible theme.\n 'ds:[mask-image:linear-gradient(to_bottom,transparent_0,black_var(--spacing-md),black_calc(100%-var(--spacing-md)),transparent_100%)]',\n 'ds:motion-reduce:[mask-image:none]',\n 'ds:[.theme-accessible_&]:[mask-image:none]',\n 'ds:forced-colors:[mask-image:none]',\n ].join(' '),\n);\n\nconst VIRTUALIZATION_THRESHOLD = 100;\n/** Pixel slack against the bottom edge that still counts as \"at bottom\". */\nconst BOTTOM_SLACK_PX = 48;\n\nexport interface ChatContainerHandle {\n scrollToBottom: (opts?: { smooth?: boolean }) => void;\n getScrollViewport: () => HTMLDivElement | null;\n}\n\nexport interface ChatContainerProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'id'>,\n VariantProps<typeof rootVariants> {\n /** Opaque instance id — emitted as `data-component-id` for the agent registry. */\n id?: string;\n /** Array of messages to render. When the array exceeds 100 items the\n * list is virtualised via @tanstack/react-virtual. */\n messages: Array<{ id: string; node: ReactNode }>;\n /** Composer slot pinned to the block-end. */\n composer?: ReactNode;\n /** Fires when the user's auto-scroll preference flips. */\n onAutoScrollChange?: (isAtBottom: boolean) => void;\n /**\n * When true, renders a \"scroll to latest\" FloatingActionButton in the\n * bottom-end of the scroll column whenever the user has scrolled\n * away from the newest message. Defaults to `false` because the\n * affordance is only useful in long-form chat surfaces (fullscreen\n * assistants, dedicated messaging views); in compact docks — e.g. the\n * Alia side-panel — conversations rarely exceed one screen and the FAB\n * just adds visual noise. Turn on for fullscreen chat surfaces.\n */\n showScrollToLatest?: boolean;\n}\n\nexport const ChatContainer = forwardRef<HTMLDivElement, ChatContainerProps>(\n (\n {\n messages,\n composer,\n density = 'default',\n className,\n id,\n onAutoScrollChange,\n showScrollToLatest = false,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const viewportRef = useRef<HTMLDivElement | null>(null);\n const sentinelRef = useRef<HTMLDivElement | null>(null);\n const [isAtBottom, setIsAtBottom] = useState(true);\n\n const prefersReducedMotion = usePrefersReducedMotion();\n\n const scrollToBottom = useCallback(\n (opts?: { smooth?: boolean }) => {\n const el = viewportRef.current;\n if (!el) return;\n const smooth = (opts?.smooth ?? true) && !prefersReducedMotion;\n el.scrollTo({\n top: el.scrollHeight,\n behavior: smooth ? 'smooth' : 'auto',\n });\n },\n [prefersReducedMotion],\n );\n\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref, () => rootRef.current as HTMLDivElement, []);\n\n const agentHandle = useMemo<ChatContainerHandle>(\n () => ({\n scrollToBottom,\n getScrollViewport: () => viewportRef.current,\n }),\n [scrollToBottom],\n );\n useAgentRegistration(chatContainerAgent, agentHandle, id);\n\n /* ── Intersection observer: track \"at bottom\" via a sentinel ── */\n useEffect(() => {\n const root = viewportRef.current;\n const sentinel = sentinelRef.current;\n if (!root || !sentinel) return;\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n setIsAtBottom(entry.isIntersecting);\n onAutoScrollChange?.(entry.isIntersecting);\n },\n {\n root,\n // Fire when the sentinel is within BOTTOM_SLACK_PX of being visible.\n rootMargin: `0px 0px ${BOTTOM_SLACK_PX}px 0px`,\n threshold: 0,\n },\n );\n observer.observe(sentinel);\n return () => observer.disconnect();\n }, [onAutoScrollChange]);\n\n /* ── Auto-scroll on new messages when at bottom ── */\n const messagesLength = messages.length;\n useIsomorphicLayoutEffect(() => {\n // `smooth: false` — when we're already pinned to the bottom and a\n // new message appends, the user doesn't perceive any scroll motion\n // (the sentinel just slides a few px). But a smooth animation DOES\n // give the IntersectionObserver a window in which the sentinel is\n // temporarily outside the rootMargin zone — that's what causes the\n // scroll-to-latest FAB to flicker in and out on every new message.\n // Instant scroll settles in one frame; FAB state stays stable.\n // The user-initiated FAB click below still uses smooth because the\n // jump is large and the motion communicates the travel.\n if (isAtBottom) scrollToBottom({ smooth: false });\n // Intentionally watching only length — individual node updates (streaming)\n // are driven by their own scroll decisions.\n }, [messagesLength, isAtBottom, scrollToBottom]);\n\n const virtualized = messages.length > VIRTUALIZATION_THRESHOLD;\n\n const virtualizer = useVirtualizer({\n count: virtualized ? messages.length : 0,\n getScrollElement: () => viewportRef.current,\n estimateSize: () => 80,\n overscan: 6,\n getItemKey: (i) => messages[i]?.id ?? i,\n });\n\n return (\n <div\n ref={rootRef}\n className={rootVariants({ density, className })}\n data-component=\"chat-container\"\n data-component-id={id}\n {...rest}\n >\n {/* Scroll column wraps the viewport AND the FAB together so the\n FAB's absolute `bottom` is measured from the top of the\n composer (this wrapper's end edge), not from the root — which\n would drop the FAB inside the composer/suggestion-chip area. */}\n <div className=\"ds:relative ds:flex-1 ds:min-h-0 ds:flex ds:flex-col\">\n <div\n ref={viewportRef}\n role=\"log\"\n aria-live=\"polite\"\n aria-relevant=\"additions\"\n aria-label={t('chat.container')}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- scrollable log region needs to be keyboard focusable for axe scrollable-region-focusable\n tabIndex={0}\n className={scrollViewportVariants()}\n >\n {virtualized ? (\n <ol\n className=\"ds:relative ds:list-none ds:ps-0 ds:m-0\"\n // eslint-disable-next-line react/forbid-dom-props -- virtualizer total size, runtime-computed\n style={{ blockSize: `${virtualizer.getTotalSize()}px` }}\n >\n {virtualizer.getVirtualItems().map((vi) => {\n const msg = messages[vi.index];\n if (!msg) return null;\n return (\n <li\n key={msg.id}\n data-index={vi.index}\n ref={virtualizer.measureElement}\n className=\"ds:absolute ds:start-0 ds:end-0 ds:top-0 ds:w-full\"\n // eslint-disable-next-line react/forbid-dom-props -- virtualizer translateY offset, runtime-computed\n style={{ transform: `translateY(${vi.start}px)` }}\n >\n <div className=\"ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]\">\n {msg.node}\n </div>\n </li>\n );\n })}\n </ol>\n ) : (\n <ol className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:list-none ds:ps-0 ds:m-0\">\n {messages.map((m) => (\n <li key={m.id}>{m.node}</li>\n ))}\n </ol>\n )}\n <div\n ref={sentinelRef}\n aria-hidden=\"true\"\n className=\"ds:h-1 ds:w-full\"\n />\n </div>\n\n {showScrollToLatest && !isAtBottom ? (\n <div\n className={[\n 'ds:pointer-events-none ds:absolute ds:inset-inline-end-0',\n // `bottom` is measured from the bottom of the scroll\n // column (i.e. the top edge of the composer slot). A\n // small spacing-md gap keeps the FAB clear of the\n // divider border above the composer.\n 'ds:bottom-[var(--spacing-md)] ds:pe-[var(--spacing-md)]',\n // Enter animation — fade + scale in from 95%. The FAB only\n // unmounts when the user returns to bottom, so an exit\n // animation isn't justified (abrupt disappearance reads as\n // \"task complete\" when they've scrolled back).\n 'ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:zoom-in-95',\n 'ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]',\n ].join(' ')}\n >\n <div className=\"ds:pointer-events-auto\">\n <FloatingActionButton\n icon={<ChevronDown />}\n aria-label={t('chat.scrollToLatest')}\n size=\"sm\"\n variant=\"secondary\"\n // `position=\"static\"` — the wrapper is already\n // absolutely-positioned. Without this, FAB's default\n // `bottom-end` variant applies `position: fixed` and\n // pins the button to the browser viewport corner,\n // escaping the container and appearing as an orphan\n // circle that stays put while the chat scrolls.\n position=\"static\"\n onClick={() => scrollToBottom({ smooth: true })}\n />\n </div>\n </div>\n ) : null}\n </div>\n\n {composer ? (\n <div className=\"ds:shrink-0 ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)] ds:bg-background\">\n {composer}\n </div>\n ) : null}\n </div>\n );\n },\n);\n\nChatContainer.displayName = 'ChatContainer';\n"],"names":["chatContainerAgent","handle","args","rootVariants","cva","scrollViewportVariants","VIRTUALIZATION_THRESHOLD","BOTTOM_SLACK_PX","ChatContainer","forwardRef","messages","composer","density","className","id","onAutoScrollChange","showScrollToLatest","rest","ref","t","useTranslation","viewportRef","useRef","sentinelRef","isAtBottom","setIsAtBottom","useState","prefersReducedMotion","usePrefersReducedMotion","scrollToBottom","useCallback","opts","el","smooth","rootRef","useImperativeHandle","agentHandle","useMemo","useAgentRegistration","useEffect","root","sentinel","observer","entries","entry","messagesLength","useIsomorphicLayoutEffect","virtualized","virtualizer","useVirtualizer","i","_a","jsxs","jsx","vi","msg","m","FloatingActionButton","ChevronDown"],"mappings":"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"}
@@ -2,20 +2,20 @@ import { jsxs as v, jsx as i, Fragment as ge } from "react/jsx-runtime";
2
2
  import { forwardRef as ve, useId as ye, useRef as k, useCallback as W, useImperativeHandle as be, useMemo as xe } from "react";
3
3
  import { c as Ie } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as ke } from "react-i18next";
5
- import { I as A } from "./icon-button-LqoiKcUN.js";
5
+ import { I as q } from "./icon-button-LqoiKcUN.js";
6
6
  import { u as we } from "./use-controllable-state-BiY4xTzM.js";
7
7
  import { u as Ce } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
8
- import { u as Ne } from "./registry-nPAVE19X.js";
8
+ import { u as Ne } from "./registry-DvAUVLHh.js";
9
9
  import { c as Ve } from "./createLucideIcon-CrFbzy84.js";
10
- import { C as ze } from "./circle-alert-ChA9opNA.js";
11
- import { S as He } from "./send-CySZIRPJ.js";
10
+ import { C as je } from "./circle-alert-ChA9opNA.js";
11
+ import { S as ze } from "./send-CySZIRPJ.js";
12
12
  /**
13
13
  * @license lucide-react v1.8.0 - ISC
14
14
  *
15
15
  * This source code is licensed under the ISC license.
16
16
  * See the LICENSE file in the root directory of this source tree.
17
17
  */
18
- const Te = [
18
+ const He = [
19
19
  [
20
20
  "path",
21
21
  {
@@ -23,7 +23,7 @@ const Te = [
23
23
  key: "1miecu"
24
24
  }
25
25
  ]
26
- ], je = Ve("paperclip", Te), Ee = {
26
+ ], Se = Ve("paperclip", He), Te = {
27
27
  id: "chat-input",
28
28
  capabilities: ["edit_inline", "submit"],
29
29
  state: {
@@ -44,6 +44,17 @@ const Te = [
44
44
  set_value: {
45
45
  safety: "write",
46
46
  argsType: "{ value: string }",
47
+ argsSchema: {
48
+ type: "object",
49
+ properties: {
50
+ value: {
51
+ type: "string",
52
+ description: "New composer text, replacing the current value."
53
+ }
54
+ },
55
+ required: ["value"]
56
+ },
57
+ idempotent: !0,
47
58
  descriptionKey: "ui.agent.chatInput.actions.setValue",
48
59
  description: "Replace the composer text.",
49
60
  invoke: (t, n) => {
@@ -51,7 +62,9 @@ const Te = [
51
62
  }
52
63
  },
53
64
  clear: {
65
+ // Discards whatever the user has typed — irreversible from this UI.
54
66
  safety: "destructive",
67
+ idempotent: !0,
55
68
  descriptionKey: "ui.agent.chatInput.actions.clear",
56
69
  description: "Clear the composer. Irreversible from the same UI.",
57
70
  invoke: (t) => {
@@ -60,6 +73,9 @@ const Te = [
60
73
  },
61
74
  submit: {
62
75
  safety: "write",
76
+ // Hands the composer text to the host `onSubmit` callback, which sends
77
+ // the message to a backend / model — an external side effect.
78
+ openWorld: !0,
63
79
  descriptionKey: "ui.agent.chatInput.actions.submit",
64
80
  description: "Submit the current composer state via onSubmit.",
65
81
  invoke: (t) => {
@@ -87,7 +103,7 @@ const Te = [
87
103
  description: "Sourced from the id prop."
88
104
  }
89
105
  }
90
- }, Me = Ie(
106
+ }, Ee = Ie(
91
107
  [
92
108
  "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:w-full",
93
109
  // Uses the kit's shared input-chrome tokens — `--input` for fill,
@@ -112,7 +128,7 @@ const Te = [
112
128
  defaultVariants: { size: "md" }
113
129
  }
114
130
  );
115
- function Se(t, n) {
131
+ function Me(t, n) {
116
132
  if (typeof Intl < "u" && typeof Intl.Segmenter == "function")
117
133
  try {
118
134
  const l = new Intl.Segmenter(n, { granularity: "grapheme" });
@@ -147,26 +163,26 @@ const Ke = ve(
147
163
  maxRows: d = 8,
148
164
  onSubmit: u,
149
165
  onAttach: b,
150
- accept: G,
166
+ accept: A,
151
167
  disabled: x,
152
- toolbar: U,
153
- label: E,
154
- placeholder: Y,
155
- className: q,
168
+ toolbar: G,
169
+ label: T,
170
+ placeholder: U,
171
+ className: Y,
156
172
  onChange: w,
157
173
  onKeyDown: C,
158
174
  onCompositionStart: N,
159
175
  onCompositionEnd: V,
160
- id: z,
176
+ id: j,
161
177
  ...J
162
178
  }, L) => {
163
- const { t: c, i18n: M } = ke(), O = ye(), p = k(!1), S = k(null), H = k(null), Q = W((e) => {
164
- H.current = e;
179
+ const { t: c, i18n: E } = ke(), O = ye(), p = k(!1), M = k(null), z = k(null), Q = W((e) => {
180
+ z.current = e;
165
181
  }, []), [X, m] = we({
166
182
  value: n === void 0 ? void 0 : String(n),
167
183
  defaultValue: String(l ?? "")
168
- }), a = X ?? "", T = Se(a, M.language), f = typeof s == "number" && s > 0, Z = f ? Math.max(0, s - T) : 0, D = f && T > s * 0.9, h = f && T >= s, F = W(() => {
169
- const e = H.current;
184
+ }), a = X ?? "", H = Me(a, E.language), f = typeof s == "number" && s > 0, Z = f ? Math.max(0, s - H) : 0, D = f && H > s * 0.9, h = f && H >= s, F = W(() => {
185
+ const e = z.current;
170
186
  if (!e) return;
171
187
  const r = window.getComputedStyle(e), I = parseFloat(r.lineHeight) || 24, de = parseFloat(r.paddingTop) || 0, ue = parseFloat(r.paddingBottom) || 0, pe = parseFloat(r.borderTopWidth) || 0, me = parseFloat(r.borderBottomWidth) || 0, _ = de + ue + pe + me, fe = I * o + _, $ = I * d + _;
172
188
  e.style.height = "auto";
@@ -178,12 +194,12 @@ const Ke = ve(
178
194
  }, [F, a]);
179
195
  const ee = (e) => {
180
196
  let r = e.target.value;
181
- f && !p.current && (r = Fe(r, s, M.language)), m(r), !p.current && (w == null || w(e));
197
+ f && !p.current && (r = Fe(r, s, E.language)), m(r), !p.current && (w == null || w(e));
182
198
  }, te = (e) => {
183
199
  p.current = !0, N == null || N(e);
184
200
  }, se = (e) => {
185
201
  p.current = !1, V == null || V(e);
186
- }, re = (e) => e.nativeEvent.isComposing || e.keyCode === 229 || p.current, j = () => {
202
+ }, re = (e) => e.nativeEvent.isComposing || e.keyCode === 229 || p.current, S = () => {
187
203
  !a.trim() || x || h || (u == null || u(a), m(""));
188
204
  }, K = k(null);
189
205
  be(L, () => K.current, []);
@@ -198,11 +214,11 @@ const Ke = ve(
198
214
  m("");
199
215
  },
200
216
  submit: () => {
201
- j();
217
+ S();
202
218
  },
203
219
  focus: () => {
204
220
  var e;
205
- (e = H.current) == null || e.focus();
221
+ (e = z.current) == null || e.focus();
206
222
  }
207
223
  }),
208
224
  // `submit` is a local closure that always sees the latest currentValue
@@ -211,32 +227,32 @@ const Ke = ve(
211
227
  // eslint-disable-next-line react-hooks/exhaustive-deps
212
228
  [a, m]
213
229
  );
214
- Ne(Ee, ne, z);
230
+ Ne(Te, ne, j);
215
231
  const ae = (e) => {
216
232
  if (C == null || C(e), !e.defaultPrevented && !re(e) && e.key === "Enter") {
217
233
  const r = e.metaKey || e.ctrlKey, I = y && !e.shiftKey;
218
- (r || I) && (e.preventDefault(), j());
234
+ (r || I) && (e.preventDefault(), S());
219
235
  }
220
236
  }, ie = () => {
221
237
  var e;
222
- (e = S.current) == null || e.click();
238
+ (e = M.current) == null || e.click();
223
239
  }, oe = (e) => {
224
240
  e.target.files && e.target.files.length > 0 && (b == null || b(e.target.files)), e.target.value = "";
225
- }, g = z ?? O, R = `${g}-label`, B = f ? `${g}-counter` : void 0, P = `${g}-hint`, ce = Y ?? c("chat.input.placeholder"), le = E ?? c("chat.prompt");
241
+ }, g = j ?? O, R = `${g}-label`, B = f ? `${g}-counter` : void 0, P = `${g}-hint`, ce = U ?? c("chat.input.placeholder"), le = T ?? c("chat.prompt");
226
242
  return /* @__PURE__ */ v(
227
243
  "div",
228
244
  {
229
245
  ref: K,
230
246
  "data-component": "chat-input",
231
- "data-component-id": z,
232
- className: Me({ size: t, className: q }),
247
+ "data-component-id": j,
248
+ className: Ee({ size: t, className: Y }),
233
249
  children: [
234
250
  /* @__PURE__ */ i(
235
251
  "label",
236
252
  {
237
253
  id: R,
238
254
  htmlFor: g,
239
- className: E ? "type-label ds:ps-[var(--spacing-sm)] ds:pt-[var(--spacing-sm)]" : "ds:sr-only",
255
+ className: T ? "type-label ds:ps-[var(--spacing-sm)] ds:pt-[var(--spacing-sm)]" : "ds:sr-only",
240
256
  children: le
241
257
  }
242
258
  ),
@@ -279,20 +295,20 @@ const Ke = ve(
279
295
  /* @__PURE__ */ i(
280
296
  "input",
281
297
  {
282
- ref: S,
298
+ ref: M,
283
299
  type: "file",
284
300
  className: "ds:sr-only",
285
301
  multiple: !0,
286
- accept: G,
302
+ accept: A,
287
303
  onChange: oe,
288
304
  "aria-label": c("chat.input.attach"),
289
305
  tabIndex: -1
290
306
  }
291
307
  ),
292
308
  /* @__PURE__ */ i(
293
- A,
309
+ q,
294
310
  {
295
- icon: /* @__PURE__ */ i(je, {}),
311
+ icon: /* @__PURE__ */ i(Se, {}),
296
312
  "aria-label": c("chat.input.attach"),
297
313
  intent: "ghost",
298
314
  size: "sm",
@@ -301,7 +317,7 @@ const Ke = ve(
301
317
  }
302
318
  )
303
319
  ] }) : null,
304
- U,
320
+ G,
305
321
  /* @__PURE__ */ v("div", { className: "ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]", children: [
306
322
  D ? /* @__PURE__ */ v(
307
323
  "span",
@@ -317,7 +333,7 @@ const Ke = ve(
317
333
  h ? (
318
334
  // Icon pairs with --destructive colour so the at-limit
319
335
  // state is not conveyed by hue alone (WCAG 1.4.1).
320
- /* @__PURE__ */ i(ze, { "aria-hidden": "true", className: "ds:size-3.5" })
336
+ /* @__PURE__ */ i(je, { "aria-hidden": "true", className: "ds:size-3.5" })
321
337
  ) : null,
322
338
  c("chat.input.remaining", { count: Z })
323
339
  ]
@@ -325,14 +341,14 @@ const Ke = ve(
325
341
  ) : null,
326
342
  /* @__PURE__ */ i("span", { id: P, className: "ds:sr-only", children: c("chat.input.sendHint") }),
327
343
  /* @__PURE__ */ i(
328
- A,
344
+ q,
329
345
  {
330
- icon: /* @__PURE__ */ i(He, {}),
346
+ icon: /* @__PURE__ */ i(ze, {}),
331
347
  "aria-label": c("chat.send"),
332
348
  intent: "primary",
333
349
  size: "sm",
334
350
  disabled: x || !a.trim() || h,
335
- onClick: j,
351
+ onClick: S,
336
352
  "aria-keyshortcuts": "Meta+Enter Control+Enter"
337
353
  }
338
354
  )
@@ -346,7 +362,7 @@ const Ke = ve(
346
362
  Ke.displayName = "ChatInput";
347
363
  export {
348
364
  Ke as C,
349
- je as P,
350
- Ee as c
365
+ Se as P,
366
+ Te as c
351
367
  };
352
- //# sourceMappingURL=chat-input-B5zjNEUN.js.map
368
+ //# sourceMappingURL=chat-input-BcXTetgM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-input-BcXTetgM.js","sources":["../../node_modules/lucide-react/dist/esm/icons/paperclip.js","../../src/components/chat-input/chat-input.agent.ts","../../src/components/chat-input/chat-input.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 [\n \"path\",\n {\n d: \"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\",\n key: \"1miecu\"\n }\n ]\n];\nconst Paperclip = createLucideIcon(\"paperclip\", __iconNode);\n\nexport { __iconNode, Paperclip as default };\n//# sourceMappingURL=paperclip.js.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — ChatInput. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ChatInputHandle } from './chat-input';\n\nexport const chatInputAgent: AgentAdapter<ChatInputHandle> = {\n id: 'chat-input',\n capabilities: ['edit_inline', 'submit'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.chatInput.state.value',\n description: 'Current text in the composer.',\n read: (handle) => handle.getValue(),\n },\n isEmpty: {\n type: 'boolean',\n descriptionKey: 'ui.agent.chatInput.state.isEmpty',\n description: 'True when the composer has no text.',\n read: (handle) => handle.isEmpty(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: {\n value: {\n type: 'string',\n description: 'New composer text, replacing the current value.',\n },\n },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.chatInput.actions.setValue',\n description: 'Replace the composer text.',\n invoke: (handle, args: { value: string }) => {\n handle.setValue(args.value);\n },\n },\n clear: {\n // Discards whatever the user has typed — irreversible from this UI.\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.chatInput.actions.clear',\n description: 'Clear the composer. Irreversible from the same UI.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n submit: {\n safety: 'write',\n // Hands the composer text to the host `onSubmit` callback, which sends\n // the message to a backend / model — an external side effect.\n openWorld: true,\n descriptionKey: 'ui.agent.chatInput.actions.submit',\n description: 'Submit the current composer state via onSubmit.',\n invoke: (handle) => {\n handle.submit();\n },\n },\n focus: {\n safety: 'read',\n descriptionKey: 'ui.agent.chatInput.actions.focus',\n description: 'Move keyboard focus into the textarea.',\n invoke: (handle) => {\n handle.focus();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'chat-input',\n description: 'Marks the ChatInput 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 useCallback,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n type ChangeEvent,\n type CompositionEvent,\n type KeyboardEvent,\n type ReactNode,\n type TextareaHTMLAttributes,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { AlertCircle, Paperclip, Send } from 'lucide-react';\nimport { IconButton } from '../button';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { chatInputAgent } from './chat-input.agent';\n\nconst rootVariants = cva(\n [\n 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:w-full',\n // Uses the kit's shared input-chrome tokens — `--input` for fill,\n // `--shadow-input` for the halo. Border stays at 1px (`--border`,\n // softened to `grey-700` in light) so the focus-within override and\n // forced-colors fallback both still paint a visible edge.\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border',\n 'ds:bg-input ds:shadow-[var(--shadow-input)]',\n 'ds:focus-within:border-[color:var(--primary)]',\n 'ds:transition-[border-color,box-shadow] ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:text-[length:var(--font-size-sm)]',\n md: 'ds:text-[length:var(--font-size-base)]',\n lg: 'ds:text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\ntype NativeTextareaProps = Omit<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n 'size' | 'onSubmit' | 'children'\n>;\n\n/** Curated imperative handle for agent / external automation. */\nexport interface ChatInputHandle {\n getValue: () => string;\n isEmpty: () => boolean;\n setValue: (value: string) => void;\n clear: () => void;\n submit: () => void;\n focus: () => void;\n}\n\nexport interface ChatInputProps\n extends NativeTextareaProps, VariantProps<typeof rootVariants> {\n /** Invoked when the user submits (Cmd/Ctrl+Enter, or send button). */\n onSubmit?: (text: string) => void;\n /** Maximum allowed characters (grapheme clusters via Intl.Segmenter when available). */\n maxLength?: number;\n /** When true, plain Enter submits and Shift+Enter inserts a newline.\n * Default false (Enter inserts newline; Cmd/Ctrl+Enter submits). */\n submitOnEnter?: boolean;\n /** Minimum visible rows. Default 1. */\n minRows?: number;\n /** Maximum visible rows before the field scrolls. Default 8. */\n maxRows?: number;\n /** Optional attachment handler — when provided, renders the attachment button. */\n onAttach?: (files: FileList) => void;\n /** `accept` forwarded to the hidden file input. */\n accept?: string;\n /** Controls whether the textarea is disabled and submit is blocked. */\n disabled?: boolean;\n /** Optional slot placed between the textarea and the send button. */\n toolbar?: ReactNode;\n /** Visible label above the textarea. When omitted, a visually-hidden label is used. */\n label?: string;\n}\n\nfunction graphemeCount(value: string, locale: string): number {\n if (typeof Intl !== 'undefined' && typeof Intl.Segmenter === 'function') {\n try {\n const seg = new Intl.Segmenter(locale, { granularity: 'grapheme' });\n let n = 0;\n for (const _s of seg.segment(value)) n += 1;\n return n;\n } catch {\n /* fall through to Array.from */\n }\n }\n return Array.from(value).length;\n}\n\n/** Truncate `value` to at most `max` graphemes. Returns the original\n * string when it already fits so callers can compare references. */\nfunction truncateToGraphemes(\n value: string,\n max: number,\n locale: string,\n): string {\n if (typeof Intl !== 'undefined' && typeof Intl.Segmenter === 'function') {\n try {\n const seg = new Intl.Segmenter(locale, { granularity: 'grapheme' });\n const parts: string[] = [];\n for (const s of seg.segment(value)) {\n parts.push(s.segment);\n if (parts.length >= max) break;\n }\n const joined = parts.join('');\n return joined.length === value.length ? value : joined;\n } catch {\n /* fall through to code-point split */\n }\n }\n const cps = Array.from(value);\n return cps.length <= max ? value : cps.slice(0, max).join('');\n}\n\nexport const ChatInput = forwardRef<HTMLDivElement, ChatInputProps>(\n (\n {\n size = 'md',\n value,\n defaultValue,\n maxLength,\n submitOnEnter = false,\n minRows = 1,\n maxRows = 8,\n onSubmit,\n onAttach,\n accept,\n disabled,\n toolbar,\n label,\n placeholder,\n className,\n onChange,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n id,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const textareaId = useId();\n const composingRef = useRef(false);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const innerRef = useRef<HTMLTextAreaElement | null>(null);\n\n const setRefs = useCallback((node: HTMLTextAreaElement | null) => {\n innerRef.current = node;\n }, []);\n\n const [currentValueRaw, setChatValue] = useControllableState<string>({\n value: value === undefined ? undefined : String(value),\n defaultValue: String(defaultValue ?? ''),\n });\n const currentValue = currentValueRaw ?? '';\n\n const count = graphemeCount(currentValue, i18n.language);\n const hasMaxLength = typeof maxLength === 'number' && maxLength > 0;\n const remaining = hasMaxLength ? Math.max(0, maxLength - count) : 0;\n const showCounter = hasMaxLength && count > (maxLength as number) * 0.9;\n const atLimit = hasMaxLength && count >= maxLength;\n\n /* Auto-grow — compute height from scrollHeight, clamped to [minRows, maxRows].\n Imperative `.style` write is permitted per 23-constraints\n §Runtime-computed dimensions (textarea scrollHeight measurement). */\n const resize = useCallback(() => {\n const el = innerRef.current;\n if (!el) return;\n const styles = window.getComputedStyle(el);\n const lineHeight = parseFloat(styles.lineHeight) || 24;\n const padTop = parseFloat(styles.paddingTop) || 0;\n const padBot = parseFloat(styles.paddingBottom) || 0;\n const borderTop = parseFloat(styles.borderTopWidth) || 0;\n const borderBot = parseFloat(styles.borderBottomWidth) || 0;\n const chrome = padTop + padBot + borderTop + borderBot;\n const minH = lineHeight * minRows + chrome;\n const maxH = lineHeight * maxRows + chrome;\n el.style.height = 'auto';\n const next = Math.max(minH, Math.min(el.scrollHeight, maxH));\n el.style.height = `${next}px`;\n el.style.overflowY = el.scrollHeight > maxH ? 'auto' : 'hidden';\n }, [minRows, maxRows]);\n\n useIsomorphicLayoutEffect(() => {\n resize();\n }, [resize, currentValue]);\n\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n let next = e.target.value;\n // Enforce a grapheme cap so emoji like 👨‍👩‍👧 (1 grapheme, 11 UTF-16\n // units) stay aligned with the visible counter. Skip during IME\n // composition so the in-progress text is preserved verbatim.\n if (hasMaxLength && !composingRef.current) {\n next = truncateToGraphemes(next, maxLength as number, i18n.language);\n }\n setChatValue(next);\n if (composingRef.current) return;\n onChange?.(e);\n };\n\n const handleCompositionStart = (\n e: CompositionEvent<HTMLTextAreaElement>,\n ) => {\n composingRef.current = true;\n onCompositionStart?.(e);\n };\n const handleCompositionEnd = (e: CompositionEvent<HTMLTextAreaElement>) => {\n composingRef.current = false;\n onCompositionEnd?.(e);\n };\n\n const isIMEKey = (e: KeyboardEvent<HTMLTextAreaElement>) =>\n e.nativeEvent.isComposing || e.keyCode === 229 || composingRef.current;\n\n const submit = () => {\n const text = currentValue.trim();\n if (!text || disabled || atLimit) return;\n onSubmit?.(currentValue);\n setChatValue('');\n };\n\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref, () => rootRef.current as HTMLDivElement, []);\n\n const agentHandle = useMemo<ChatInputHandle>(\n () => ({\n getValue: () => currentValue,\n isEmpty: () => !currentValue.trim(),\n setValue: (next: string) => {\n setChatValue(next);\n },\n clear: () => {\n setChatValue('');\n },\n submit: () => {\n submit();\n },\n focus: () => {\n innerRef.current?.focus();\n },\n }),\n // `submit` is a local closure that always sees the latest currentValue\n // via React's render cycle — depend on currentValue so the handle\n // picks up new values across renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [currentValue, setChatValue],\n );\n useAgentRegistration(chatInputAgent, agentHandle, id);\n\n const handleKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n if (isIMEKey(e)) return;\n\n if (e.key === 'Enter') {\n const explicitSubmit = e.metaKey || e.ctrlKey;\n const plainEnterSubmits = submitOnEnter && !e.shiftKey;\n if (explicitSubmit || plainEnterSubmits) {\n e.preventDefault();\n submit();\n }\n }\n };\n\n const handleAttach = () => {\n fileInputRef.current?.click();\n };\n\n const handleFilePick = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n onAttach?.(e.target.files);\n }\n // Reset so picking the same file twice still fires change.\n e.target.value = '';\n };\n\n const effectiveId = id ?? textareaId;\n const labelId = `${effectiveId}-label`;\n const counterId = hasMaxLength ? `${effectiveId}-counter` : undefined;\n const hintId = `${effectiveId}-hint`;\n\n const resolvedPlaceholder = placeholder ?? t('chat.input.placeholder');\n const resolvedLabel = label ?? t('chat.prompt');\n\n return (\n <div\n ref={rootRef}\n data-component=\"chat-input\"\n data-component-id={id}\n className={rootVariants({ size, className })}\n >\n <label\n id={labelId}\n htmlFor={effectiveId}\n className={\n label\n ? 'type-label ds:ps-[var(--spacing-sm)] ds:pt-[var(--spacing-sm)]'\n : 'ds:sr-only'\n }\n >\n {resolvedLabel}\n </label>\n <textarea\n ref={setRefs}\n id={effectiveId}\n value={currentValue}\n disabled={disabled}\n rows={minRows}\n placeholder={resolvedPlaceholder}\n aria-labelledby={labelId}\n aria-describedby={\n [counterId, hintId].filter(Boolean).join(' ') || undefined\n }\n aria-invalid={atLimit || undefined}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n className={[\n 'ds:w-full ds:resize-none ds:bg-transparent',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]',\n 'ds:placeholder:text-[color:var(--muted-foreground)]',\n 'ds:leading-[var(--line-height-base)]',\n 'ds:disabled:opacity-50 ds:disabled:cursor-not-allowed',\n // Tokenised focus ring on the textarea itself — the 1px border\n // shift on the wrapper alone fails the 3px accessible-theme\n // requirement. See a11y-critical-fixes.mdx.\n 'ds:outline-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n ].join(' ')}\n {...rest}\n />\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]\">\n {onAttach ? (\n <>\n <input\n ref={fileInputRef}\n type=\"file\"\n className=\"ds:sr-only\"\n multiple\n accept={accept}\n onChange={handleFilePick}\n aria-label={t('chat.input.attach')}\n tabIndex={-1}\n />\n <IconButton\n icon={<Paperclip />}\n aria-label={t('chat.input.attach')}\n intent=\"ghost\"\n size=\"sm\"\n onClick={handleAttach}\n disabled={disabled}\n />\n </>\n ) : null}\n {toolbar}\n <div className=\"ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-sm)]\">\n {showCounter ? (\n <span\n id={counterId}\n aria-live=\"polite\"\n className={[\n 'ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]',\n 'type-meta ds:tabular-nums',\n atLimit\n ? 'ds:text-[color:var(--destructive)]'\n : 'ds:text-[color:var(--muted-foreground)]',\n ].join(' ')}\n >\n {atLimit ? (\n // Icon pairs with --destructive colour so the at-limit\n // state is not conveyed by hue alone (WCAG 1.4.1).\n <AlertCircle aria-hidden=\"true\" className=\"ds:size-3.5\" />\n ) : null}\n {t('chat.input.remaining', { count: remaining })}\n </span>\n ) : null}\n <span id={hintId} className=\"ds:sr-only\">\n {t('chat.input.sendHint')}\n </span>\n <IconButton\n icon={<Send />}\n aria-label={t('chat.send')}\n intent=\"primary\"\n size=\"sm\"\n disabled={disabled || !currentValue.trim() || atLimit}\n onClick={submit}\n aria-keyshortcuts=\"Meta+Enter Control+Enter\"\n />\n </div>\n </div>\n </div>\n );\n },\n);\n\nChatInput.displayName = 'ChatInput';\n"],"names":["__iconNode","Paperclip","createLucideIcon","chatInputAgent","handle","args","rootVariants","cva","graphemeCount","value","locale","seg","n","_s","truncateToGraphemes","max","parts","s","joined","cps","ChatInput","forwardRef","size","defaultValue","maxLength","submitOnEnter","minRows","maxRows","onSubmit","onAttach","accept","disabled","toolbar","label","placeholder","className","onChange","onKeyDown","onCompositionStart","onCompositionEnd","id","rest","ref","t","i18n","useTranslation","textareaId","useId","composingRef","useRef","fileInputRef","innerRef","setRefs","useCallback","node","currentValueRaw","setChatValue","useControllableState","currentValue","count","hasMaxLength","remaining","showCounter","atLimit","resize","el","styles","lineHeight","padTop","padBot","borderTop","borderBot","chrome","minH","maxH","next","useIsomorphicLayoutEffect","handleChange","handleCompositionStart","handleCompositionEnd","isIMEKey","submit","rootRef","useImperativeHandle","agentHandle","useMemo","_a","useAgentRegistration","handleKeyDown","explicitSubmit","plainEnterSubmits","handleAttach","handleFilePick","effectiveId","labelId","counterId","hintId","resolvedPlaceholder","resolvedLabel","jsxs","jsx","Fragment","IconButton","AlertCircle","Send"],"mappings":"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","x_google_ignoreList":[0]}