@alfadocs/ui-kit-debug 0.68.0 → 0.70.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 (930) 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/address-autocomplete-BEX9PXty.js +496 -0
  4. package/dist/_chunks/address-autocomplete-BEX9PXty.js.map +1 -0
  5. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  6. package/dist/_chunks/{agenda-card-BxSFkqgY.js.map → agenda-card-BQ-IKAru.js.map} +1 -1
  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-CGXRk58j.js} +37 -25
  10. package/dist/_chunks/agenda-tray-CGXRk58j.js.map +1 -0
  11. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js → ai-consent-banner-Be-h9mRI.js} +5 -5
  12. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js.map → ai-consent-banner-Be-h9mRI.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-B5NEghsp.js +511 -0
  16. package/dist/_chunks/ai-tools-rail-B5NEghsp.js.map +1 -0
  17. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  18. package/dist/_chunks/alert-CHYZ96tR.js.map +1 -0
  19. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js → alia-sidebar-B47qRQb5.js} +5 -5
  20. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js.map → alia-sidebar-B47qRQb5.js.map} +1 -1
  21. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js → anamnesis-card-DvYCa16e.js} +3 -3
  22. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js.map → anamnesis-card-DvYCa16e.js.map} +1 -1
  23. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
  24. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js.map +1 -0
  25. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  26. package/dist/_chunks/annotation-marker-qt5R9WZX.js.map +1 -0
  27. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  28. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js.map → antenatal-schedule-timeline-CwXrQRm1.js.map} +1 -1
  29. package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
  30. package/dist/_chunks/appointment-card-C06aZqA7.js.map +1 -0
  31. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
  32. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js.map +1 -0
  33. package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
  34. package/dist/_chunks/appointment-tray-DRRw5ROi.js.map +1 -0
  35. package/dist/_chunks/{audio-recorder-DjXLP4aF.js → audio-recorder-Cpdk5qpQ.js} +60 -57
  36. package/dist/_chunks/audio-recorder-Cpdk5qpQ.js.map +1 -0
  37. package/dist/_chunks/{autocomplete-CcCFlVf-.js → autocomplete-DOeGouCL.js} +157 -132
  38. package/dist/_chunks/autocomplete-DOeGouCL.js.map +1 -0
  39. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  40. package/dist/_chunks/badge-DCOqV9mI.js.map +1 -0
  41. package/dist/_chunks/bishop-score-DnYWtZa_.js +304 -0
  42. package/dist/_chunks/bishop-score-DnYWtZa_.js.map +1 -0
  43. package/dist/_chunks/bmi-calculator-zjeY4E7J.js +434 -0
  44. package/dist/_chunks/bmi-calculator-zjeY4E7J.js.map +1 -0
  45. package/dist/_chunks/{booking-L8-YP8BJ.js → booking-DUBI0oqt.js} +422 -399
  46. package/dist/_chunks/booking-DUBI0oqt.js.map +1 -0
  47. package/dist/_chunks/{breadcrumb-OTbaY70e.js → breadcrumb-CchdeG7d.js} +42 -28
  48. package/dist/_chunks/breadcrumb-CchdeG7d.js.map +1 -0
  49. package/dist/_chunks/{calculator-dialog-CFk4I91b.js → calculator-dialog-BR5iU0kf.js} +2 -2
  50. package/dist/_chunks/{calculator-dialog-CFk4I91b.js.map → calculator-dialog-BR5iU0kf.js.map} +1 -1
  51. package/dist/_chunks/{calendar-oYWOCrnf.js → calendar-CZUjL8SZ.js} +258 -201
  52. package/dist/_chunks/calendar-CZUjL8SZ.js.map +1 -0
  53. package/dist/_chunks/{care-plan-card-BwVUyUBb.js → care-plan-card-C5sTfY9G.js} +13 -9
  54. package/dist/_chunks/care-plan-card-C5sTfY9G.js.map +1 -0
  55. package/dist/_chunks/{care-plan-entry-card-VzdQHcOL.js → care-plan-entry-card-CXnxGCWA.js} +20 -16
  56. package/dist/_chunks/care-plan-entry-card-CXnxGCWA.js.map +1 -0
  57. package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
  58. package/dist/_chunks/care-plan-header-BUwqDTtz.js.map +1 -0
  59. package/dist/_chunks/{carousel.agent-vt21A_el.js → carousel.agent-4v8Emr9E.js} +219 -198
  60. package/dist/_chunks/{carousel.agent-vt21A_el.js.map → carousel.agent-4v8Emr9E.js.map} +1 -1
  61. package/dist/_chunks/{chart-Cg3e9EH9.js → chart-CMr3eW62.js} +150 -109
  62. package/dist/_chunks/chart-CMr3eW62.js.map +1 -0
  63. package/dist/_chunks/{chat-container-ogB4OskO.js → chat-container-DWho5hPR.js} +47 -34
  64. package/dist/_chunks/chat-container-DWho5hPR.js.map +1 -0
  65. package/dist/_chunks/{chat-input-B5zjNEUN.js → chat-input-BcXTetgM.js} +57 -41
  66. package/dist/_chunks/chat-input-BcXTetgM.js.map +1 -0
  67. package/dist/_chunks/{checkbox-DRcOdmXv.js → checkbox-BuZ1u__2.js} +41 -27
  68. package/dist/_chunks/checkbox-BuZ1u__2.js.map +1 -0
  69. package/dist/_chunks/{checkbox-group-CpUwlHug.js → checkbox-group-PqNmQ-cE.js} +3 -3
  70. package/dist/_chunks/{checkbox-group-CpUwlHug.js.map → checkbox-group-PqNmQ-cE.js.map} +1 -1
  71. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  72. package/dist/_chunks/clinical-note-card-BUvNMNGL.js.map +1 -0
  73. package/dist/_chunks/{collapsible-X3oaLPU3.js → collapsible-BrnRiCC6.js} +26 -23
  74. package/dist/_chunks/collapsible-BrnRiCC6.js.map +1 -0
  75. package/dist/_chunks/{color-picker-FXpItIaF.js → color-picker-C_fZl6sA.js} +124 -112
  76. package/dist/_chunks/color-picker-C_fZl6sA.js.map +1 -0
  77. package/dist/_chunks/{combobox-BC-DFx8G.js → combobox-Clum7gJ1.js} +165 -128
  78. package/dist/_chunks/combobox-Clum7gJ1.js.map +1 -0
  79. package/dist/_chunks/{command-palette-BiPAAno-.js → command-palette-CJzmc5pC.js} +87 -64
  80. package/dist/_chunks/command-palette-CJzmc5pC.js.map +1 -0
  81. package/dist/_chunks/{contact-profile-card-7BMB85T6.js → contact-profile-card-DDPwRFiP.js} +13 -11
  82. package/dist/_chunks/contact-profile-card-DDPwRFiP.js.map +1 -0
  83. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
  84. package/dist/_chunks/control-room-rail-Y8ryLYsP.js.map +1 -0
  85. package/dist/_chunks/{copy-field-CCq7j6Zc.js → copy-field-Bjw9u2cV.js} +42 -35
  86. package/dist/_chunks/copy-field-Bjw9u2cV.js.map +1 -0
  87. package/dist/_chunks/counter-dRlTNC_y.js +55 -0
  88. package/dist/_chunks/counter-dRlTNC_y.js.map +1 -0
  89. package/dist/_chunks/{cycle-calculator-BF0ointe.js → cycle-calculator-CCmPwcBl.js} +4 -4
  90. package/dist/_chunks/{cycle-calculator-BF0ointe.js.map → cycle-calculator-CCmPwcBl.js.map} +1 -1
  91. package/dist/_chunks/{date-picker-oGg5BnXL.js → date-picker-Dl9RKxaV.js} +76 -57
  92. package/dist/_chunks/{date-picker-oGg5BnXL.js.map → date-picker-Dl9RKxaV.js.map} +1 -1
  93. package/dist/_chunks/{date-range-picker-C5BWfH_T.js → date-range-picker-CTUeR6Bj.js} +73 -46
  94. package/dist/_chunks/date-range-picker-CTUeR6Bj.js.map +1 -0
  95. package/dist/_chunks/{date-time-picker-Ze1My59T.js → date-time-picker-BhoogS5Q.js} +64 -40
  96. package/dist/_chunks/date-time-picker-BhoogS5Q.js.map +1 -0
  97. package/dist/_chunks/{dependent-selector-DpzGtr_J.js → dependent-selector-DUV4thxX.js} +45 -31
  98. package/dist/_chunks/dependent-selector-DUV4thxX.js.map +1 -0
  99. package/dist/_chunks/{dialog-DMGnSelc.js → dialog-ZNuboNmy.js} +35 -28
  100. package/dist/_chunks/dialog-ZNuboNmy.js.map +1 -0
  101. package/dist/_chunks/{document-scanner-D2qehl3-.js → document-scanner-C_AxLooF.js} +13 -5
  102. package/dist/_chunks/document-scanner-C_AxLooF.js.map +1 -0
  103. package/dist/_chunks/{dropdown-menu-DwwPovMZ.js → dropdown-menu-qrxjymfw.js} +94 -93
  104. package/dist/_chunks/dropdown-menu-qrxjymfw.js.map +1 -0
  105. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js → due-date-calculator-Brdj-euS.js} +6 -6
  106. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js.map → due-date-calculator-Brdj-euS.js.map} +1 -1
  107. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
  108. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js.map +1 -0
  109. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  110. package/dist/_chunks/{email-input-lQivsFrw.js.map → email-input-DJ7EXklP.js.map} +1 -1
  111. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
  112. package/dist/_chunks/{entity-card-COhmqHly.js.map → entity-card-9_62gY7l.js.map} +1 -1
  113. package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
  114. package/dist/_chunks/entity-summary-BxRjFh_4.js.map +1 -0
  115. package/dist/_chunks/{fetal-weight-BVSzOhuR.js → fetal-weight-DNCkyeVo.js} +3 -3
  116. package/dist/_chunks/{fetal-weight-BVSzOhuR.js.map → fetal-weight-DNCkyeVo.js.map} +1 -1
  117. package/dist/_chunks/field-value-NXYczdpO.js +415 -0
  118. package/dist/_chunks/field-value-NXYczdpO.js.map +1 -0
  119. package/dist/_chunks/{file-upload-BosbPDb1.js → file-upload-DwZcAK8D.js} +119 -100
  120. package/dist/_chunks/file-upload-DwZcAK8D.js.map +1 -0
  121. package/dist/_chunks/{fiscal-code-input-DPtqluVb.js → fiscal-code-input-Cf-8O4Fj.js} +76 -63
  122. package/dist/_chunks/fiscal-code-input-Cf-8O4Fj.js.map +1 -0
  123. package/dist/_chunks/{freemium-paywall-CkWjv3o6.js → freemium-paywall-WYlNO7yT.js} +78 -71
  124. package/dist/_chunks/freemium-paywall-WYlNO7yT.js.map +1 -0
  125. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js → gestational-age-calculator-CF2ISaYQ.js} +7 -7
  126. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js.map → gestational-age-calculator-CF2ISaYQ.js.map} +1 -1
  127. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  128. package/dist/_chunks/hash-CysBBS_N.js.map +1 -0
  129. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js → hcg-doubling-C7bmuaU3.js} +4 -4
  130. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js.map → hcg-doubling-C7bmuaU3.js.map} +1 -1
  131. package/dist/_chunks/{header-settings-CNOqIhoW.js → header-settings-DJqoAl5m.js} +86 -46
  132. package/dist/_chunks/header-settings-DJqoAl5m.js.map +1 -0
  133. package/dist/_chunks/{index.modern-D2LGACWg.js → index.modern-Zta-A4Jm.js} +3 -3
  134. package/dist/_chunks/{index.modern-D2LGACWg.js.map → index.modern-Zta-A4Jm.js.map} +1 -1
  135. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js +2184 -0
  136. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js.map +1 -0
  137. package/dist/_chunks/{list-BOwqwy03.js → list-DgE1xWBM.js} +99 -84
  138. package/dist/_chunks/list-DgE1xWBM.js.map +1 -0
  139. package/dist/_chunks/{locale-picker-C9JmBht3.js → locale-picker-ChYYSX2N.js} +47 -35
  140. package/dist/_chunks/locale-picker-ChYYSX2N.js.map +1 -0
  141. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  142. package/dist/_chunks/lock-CKOIn0IK.js.map +1 -0
  143. package/dist/_chunks/{map-view-Tb5VfK9Y.js → map-view-BkOoGoX2.js} +160 -115
  144. package/dist/_chunks/map-view-BkOoGoX2.js.map +1 -0
  145. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js → marketplace-app-shell-Skhfp6vK.js} +6 -6
  146. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js.map → marketplace-app-shell-Skhfp6vK.js.map} +1 -1
  147. package/dist/_chunks/{message-card.agent-4IeIgrnJ.js → message-card.agent-ZLhx3Bs5.js} +6 -1
  148. package/dist/_chunks/message-card.agent-ZLhx3Bs5.js.map +1 -0
  149. package/dist/_chunks/{message-tray-CVyJajVJ.js → message-tray-DwrBLJlf.js} +90 -48
  150. package/dist/_chunks/message-tray-DwrBLJlf.js.map +1 -0
  151. package/dist/_chunks/{multi-select-BcPylvHR.js → multi-select-BdHHDrRN.js} +196 -153
  152. package/dist/_chunks/multi-select-BdHHDrRN.js.map +1 -0
  153. package/dist/_chunks/{navigation-menu-C6lBYVv9.js → navigation-menu-DRUi6sSj.js} +75 -42
  154. package/dist/_chunks/navigation-menu-DRUi6sSj.js.map +1 -0
  155. package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
  156. package/dist/_chunks/notes-panel-ay8_lPrA.js.map +1 -0
  157. package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
  158. package/dist/_chunks/notification-card-D2jiKSJJ.js.map +1 -0
  159. package/dist/_chunks/{notification-card.agent-Rqt3ofk9.js → notification-card.agent-DxGBZb8T.js} +5 -1
  160. package/dist/_chunks/notification-card.agent-DxGBZb8T.js.map +1 -0
  161. package/dist/_chunks/{notification-tray-DlgenTEe.js → notification-tray-AEun6DN2.js} +112 -97
  162. package/dist/_chunks/notification-tray-AEun6DN2.js.map +1 -0
  163. package/dist/_chunks/{number-input-Dj5L3pXK.js → number-input-DxphVG_A.js} +36 -27
  164. package/dist/_chunks/number-input-DxphVG_A.js.map +1 -0
  165. package/dist/_chunks/{operator-hero-f_KaRhw5.js → operator-hero-CR0Rqh4-.js} +14 -10
  166. package/dist/_chunks/operator-hero-CR0Rqh4-.js.map +1 -0
  167. package/dist/_chunks/{otp-input-xQ4Ps5VY.js → otp-input-DzBQ-CpE.js} +52 -33
  168. package/dist/_chunks/otp-input-DzBQ-CpE.js.map +1 -0
  169. package/dist/_chunks/{pagination-DQOgnxxw.js → pagination-D58kglCr.js} +181 -162
  170. package/dist/_chunks/pagination-D58kglCr.js.map +1 -0
  171. package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
  172. package/dist/_chunks/patient-details-Dlhqb5ig.js.map +1 -0
  173. package/dist/_chunks/{patient-search-DR9XUYRQ.js → patient-search-Be6cLrHR.js} +70 -61
  174. package/dist/_chunks/patient-search-Be6cLrHR.js.map +1 -0
  175. package/dist/_chunks/{patient-shell-BfgufL_q.js → patient-shell-DV3XEtIB.js} +3 -3
  176. package/dist/_chunks/{patient-shell-BfgufL_q.js.map → patient-shell-DV3XEtIB.js.map} +1 -1
  177. package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
  178. package/dist/_chunks/patient-summary-card-WySCMwwA.js.map +1 -0
  179. package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
  180. package/dist/_chunks/patient-table-CHxf3Oqk.js.map +1 -0
  181. package/dist/_chunks/{payment-form-nXocS_MX.js → payment-form-CxqIXqw7.js} +57 -45
  182. package/dist/_chunks/payment-form-CxqIXqw7.js.map +1 -0
  183. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js → payment-request-card-BcZJwu9z.js} +125 -136
  184. package/dist/_chunks/payment-request-card-BcZJwu9z.js.map +1 -0
  185. package/dist/_chunks/{pdf-viewer-GsfNqeeT.js → pdf-viewer-QfebdLOd.js} +317 -291
  186. package/dist/_chunks/pdf-viewer-QfebdLOd.js.map +1 -0
  187. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js → periodontal-chart-card-hRRJY1NN.js} +3 -3
  188. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js.map → periodontal-chart-card-hRRJY1NN.js.map} +1 -1
  189. package/dist/_chunks/{phone-input-DVXhNlIl.js → phone-input-DjU-XmO_.js} +64 -47
  190. package/dist/_chunks/phone-input-DjU-XmO_.js.map +1 -0
  191. package/dist/_chunks/{popover-DTbfAuR0.js → popover-B2qCDhJC.js} +37 -32
  192. package/dist/_chunks/popover-B2qCDhJC.js.map +1 -0
  193. package/dist/_chunks/{practice-results-DND2SAt7.js → practice-results-C6qDfxos.js} +280 -244
  194. package/dist/_chunks/practice-results-C6qDfxos.js.map +1 -0
  195. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js → pregnancy-dating-CRVWswD-.js} +8 -8
  196. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js.map → pregnancy-dating-CRVWswD-.js.map} +1 -1
  197. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js → pregnancy-weight-gain-BUNpTsH-.js} +4 -4
  198. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js.map → pregnancy-weight-gain-BUNpTsH-.js.map} +1 -1
  199. package/dist/_chunks/{privacy-lock-C7JyMf0y.js → privacy-lock-BzMLQu-j.js} +32 -28
  200. package/dist/_chunks/privacy-lock-BzMLQu-j.js.map +1 -0
  201. package/dist/_chunks/{product-hub-panel-CAXDFeGP.js → product-hub-panel-e6pW220e.js} +45 -27
  202. package/dist/_chunks/product-hub-panel-e6pW220e.js.map +1 -0
  203. package/dist/_chunks/{progress-kzIRcdaq.js → progress-DA413-zn.js} +2 -2
  204. package/dist/_chunks/{progress-kzIRcdaq.js.map → progress-DA413-zn.js.map} +1 -1
  205. package/dist/_chunks/{public-footer.agent-CfXuW1x6.js → public-footer.agent-D0cFbjWl.js} +151 -146
  206. package/dist/_chunks/public-footer.agent-D0cFbjWl.js.map +1 -0
  207. package/dist/_chunks/{public-header.agent-BOhJgZEU.js → public-header.agent-DqkqA-ca.js} +107 -102
  208. package/dist/_chunks/{public-header.agent-BOhJgZEU.js.map → public-header.agent-DqkqA-ca.js.map} +1 -1
  209. package/dist/_chunks/{qr-code-DNXhi6se.js → qr-code-CPkEs5mG.js} +52 -46
  210. package/dist/_chunks/qr-code-CPkEs5mG.js.map +1 -0
  211. package/dist/_chunks/{radio-group-CLjK-SlK.js → radio-group-BPt7pKZW.js} +5 -5
  212. package/dist/_chunks/{radio-group-CLjK-SlK.js.map → radio-group-BPt7pKZW.js.map} +1 -1
  213. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
  214. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js.map +1 -0
  215. package/dist/_chunks/{recaptcha-widget-BCNHsgqt.js → recaptcha-widget-BC-4To9b.js} +9 -2
  216. package/dist/_chunks/recaptcha-widget-BC-4To9b.js.map +1 -0
  217. package/dist/_chunks/registry-DvAUVLHh.js +51 -0
  218. package/dist/_chunks/registry-DvAUVLHh.js.map +1 -0
  219. package/dist/_chunks/{resizable-3vzqDlg6.js → resizable-DVGcfOrk.js} +193 -173
  220. package/dist/_chunks/resizable-DVGcfOrk.js.map +1 -0
  221. package/dist/_chunks/{reviews-panel-DBktKm7i.js → reviews-panel-Dq7LMDcH.js} +87 -68
  222. package/dist/_chunks/reviews-panel-Dq7LMDcH.js.map +1 -0
  223. package/dist/_chunks/{rich-text-editor-VawKN1FI.js → rich-text-editor-DlCqPixb.js} +833 -728
  224. package/dist/_chunks/rich-text-editor-DlCqPixb.js.map +1 -0
  225. package/dist/_chunks/{search-bar-SY2BcV2N.js → search-bar-C_T3pBJn.js} +105 -78
  226. package/dist/_chunks/search-bar-C_T3pBJn.js.map +1 -0
  227. package/dist/_chunks/{search-input-DbxrnHkW.js → search-input-DQvGxR74.js} +2 -2
  228. package/dist/_chunks/{search-input-DbxrnHkW.js.map → search-input-DQvGxR74.js.map} +1 -1
  229. package/dist/_chunks/{search-input.agent-CfZvViOd.js → search-input.agent-DRH54coT.js} +19 -4
  230. package/dist/_chunks/search-input.agent-DRH54coT.js.map +1 -0
  231. package/dist/_chunks/{select-CEtRcon5.js → select-DMLG44F5.js} +72 -56
  232. package/dist/_chunks/select-DMLG44F5.js.map +1 -0
  233. package/dist/_chunks/{session-countdown-LPnhTHjn.js → session-countdown-X1Ki6i0M.js} +3 -3
  234. package/dist/_chunks/{session-countdown-LPnhTHjn.js.map → session-countdown-X1Ki6i0M.js.map} +1 -1
  235. package/dist/_chunks/{sheet-taJer-Ha.js → sheet-BxsE7eQm.js} +59 -45
  236. package/dist/_chunks/sheet-BxsE7eQm.js.map +1 -0
  237. package/dist/_chunks/{sidebar-DaB4ulxH.js → sidebar-DY9jGjgt.js} +254 -248
  238. package/dist/_chunks/sidebar-DY9jGjgt.js.map +1 -0
  239. package/dist/_chunks/{sign-document-CdAiHiCh.js → sign-document-By6hMOra.js} +75 -49
  240. package/dist/_chunks/sign-document-By6hMOra.js.map +1 -0
  241. package/dist/_chunks/{signature-capture-COi0Uiqu.js → signature-capture-Ct_4Md4e.js} +138 -104
  242. package/dist/_chunks/signature-capture-Ct_4Md4e.js.map +1 -0
  243. package/dist/_chunks/{slider-BHWzXdjt.js → slider-DN1CWkKB.js} +85 -65
  244. package/dist/_chunks/slider-DN1CWkKB.js.map +1 -0
  245. package/dist/_chunks/{sparkline-DGhCSw8M.js → sparkline-iOXYgvJe.js} +75 -53
  246. package/dist/_chunks/sparkline-iOXYgvJe.js.map +1 -0
  247. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  248. package/dist/_chunks/stepper-accordion-DC-H-8v4.js.map +1 -0
  249. package/dist/_chunks/{stepper-accordion.agent-C4quJ-MD.js → stepper-accordion.agent-cmEguIdx.js} +7 -1
  250. package/dist/_chunks/stepper-accordion.agent-cmEguIdx.js.map +1 -0
  251. package/dist/_chunks/{stepper-progress-DDjq5nei.js → stepper-progress-Bv0njx4g.js} +30 -24
  252. package/dist/_chunks/stepper-progress-Bv0njx4g.js.map +1 -0
  253. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js → suggestion-chip.agent-Brn3CiFE.js} +9 -8
  254. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js.map → suggestion-chip.agent-Brn3CiFE.js.map} +1 -1
  255. package/dist/_chunks/{switch-BJ6HD3Mn.js → switch-OILsBLWo.js} +25 -19
  256. package/dist/_chunks/switch-OILsBLWo.js.map +1 -0
  257. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  258. package/dist/_chunks/tab-bar-Bv9nGNdO.js.map +1 -0
  259. package/dist/_chunks/{tabs-BIQ0ew1T.js → tabs-BxcOziCo.js} +67 -58
  260. package/dist/_chunks/tabs-BxcOziCo.js.map +1 -0
  261. package/dist/_chunks/{task-card.agent-CUPKYd7w.js → task-card.agent-Bt14CzUd.js} +4 -1
  262. package/dist/_chunks/task-card.agent-Bt14CzUd.js.map +1 -0
  263. package/dist/_chunks/{task-tray-CAncV-QQ.js → task-tray-qOEQflu4.js} +74 -57
  264. package/dist/_chunks/task-tray-qOEQflu4.js.map +1 -0
  265. package/dist/_chunks/{text-area-BIx0tZ05.js → text-area-Bt3p7Pt0.js} +41 -34
  266. package/dist/_chunks/text-area-Bt3p7Pt0.js.map +1 -0
  267. package/dist/_chunks/{text-input-BaClJL8Y.js → text-input-B-OWQ1Je.js} +15 -8
  268. package/dist/_chunks/text-input-B-OWQ1Je.js.map +1 -0
  269. package/dist/_chunks/{theme-toggle-DETmSu_h.js → theme-toggle-XB6o_lgs.js} +38 -26
  270. package/dist/_chunks/theme-toggle-XB6o_lgs.js.map +1 -0
  271. package/dist/_chunks/{time-picker-B5umYwfv.js → time-picker-BPlJWm8w.js} +41 -31
  272. package/dist/_chunks/time-picker-BPlJWm8w.js.map +1 -0
  273. package/dist/_chunks/{timeline-DQa5Tyz4.js → timeline-CqA4nKTI.js} +33 -25
  274. package/dist/_chunks/timeline-CqA4nKTI.js.map +1 -0
  275. package/dist/_chunks/{toast.agent-vuLRRn2a.js → toast.agent-57UzyR9U.js} +62 -45
  276. package/dist/_chunks/{toast.agent-vuLRRn2a.js.map → toast.agent-57UzyR9U.js.map} +1 -1
  277. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
  278. package/dist/_chunks/tooth-scheme-BhQoPNBD.js.map +1 -0
  279. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  280. package/dist/_chunks/transaction-chip-CscoQbxF.js.map +1 -0
  281. package/dist/_chunks/{transcript-panel-CLHmv83g.js → transcript-panel-3THQX6nJ.js} +47 -33
  282. package/dist/_chunks/transcript-panel-3THQX6nJ.js.map +1 -0
  283. package/dist/_chunks/unit-converter-YEpD9evj.js +337 -0
  284. package/dist/_chunks/unit-converter-YEpD9evj.js.map +1 -0
  285. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  286. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js.map +1 -0
  287. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  288. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js.map +1 -0
  289. package/dist/_chunks/{use-password-requirements-DsgduV1x.js → use-password-requirements-BXvS2MBS.js} +131 -117
  290. package/dist/_chunks/use-password-requirements-BXvS2MBS.js.map +1 -0
  291. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  292. package/dist/_chunks/use-persistent-state-nZwZAnE9.js.map +1 -0
  293. package/dist/_chunks/users-MBVtUzwd.js +17 -0
  294. package/dist/_chunks/users-MBVtUzwd.js.map +1 -0
  295. package/dist/_chunks/warning-stack--sTrrBDA.js +268 -0
  296. package/dist/_chunks/warning-stack--sTrrBDA.js.map +1 -0
  297. package/dist/_chunks/{whatsapp-button-DUjlWGKf.js → whatsapp-button-BIy6NaJK.js} +6 -3
  298. package/dist/_chunks/whatsapp-button-BIy6NaJK.js.map +1 -0
  299. package/dist/_chunks/{workflow-map-JAZryZJr.js → workflow-map-Dy8mLCqF.js} +101 -90
  300. package/dist/_chunks/workflow-map-Dy8mLCqF.js.map +1 -0
  301. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  302. package/dist/_chunks/zoom-out-CgVtf2Wx.js.map +1 -0
  303. package/dist/agent/index.d.ts +4 -4
  304. package/dist/agent/index.d.ts.map +1 -1
  305. package/dist/agent/index.js +37 -0
  306. package/dist/agent/index.js.map +1 -0
  307. package/dist/agent/registry.d.ts +33 -0
  308. package/dist/agent/registry.d.ts.map +1 -1
  309. package/dist/agent/types.d.ts +97 -4
  310. package/dist/agent/types.d.ts.map +1 -1
  311. package/dist/agent-catalog.json +8081 -518
  312. package/dist/agent-i18n/en.json +1277 -0
  313. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  314. package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -1
  315. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  316. package/dist/components/_shared/entity-card/index.d.ts.map +1 -1
  317. package/dist/components/_shared/field-value.d.ts +21 -0
  318. package/dist/components/_shared/field-value.d.ts.map +1 -0
  319. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  320. package/dist/components/_shared/field-visibility-cog.d.ts.map +1 -0
  321. package/dist/components/_shared/field-visibility.d.ts +36 -0
  322. package/dist/components/_shared/field-visibility.d.ts.map +1 -0
  323. package/dist/components/_shared/patient-fields.d.ts +119 -0
  324. package/dist/components/_shared/patient-fields.d.ts.map +1 -0
  325. package/dist/components/accordion/accordion.agent.d.ts.map +1 -1
  326. package/dist/components/accordion/accordion.d.ts.map +1 -1
  327. package/dist/components/accordion/index.js +1 -1
  328. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts +4 -0
  329. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts.map +1 -0
  330. package/dist/components/address-autocomplete/address-autocomplete.d.ts +18 -0
  331. package/dist/components/address-autocomplete/address-autocomplete.d.ts.map +1 -1
  332. package/dist/components/address-autocomplete/index.d.ts +2 -1
  333. package/dist/components/address-autocomplete/index.d.ts.map +1 -1
  334. package/dist/components/address-autocomplete/index.js +3 -2
  335. package/dist/components/agenda-card/agenda-card.agent.d.ts.map +1 -1
  336. package/dist/components/agenda-card/index.js +2 -2
  337. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -1
  338. package/dist/components/agenda-tray/index.js +1 -1
  339. package/dist/components/ai-consent-banner/index.js +1 -1
  340. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -1
  341. package/dist/components/ai-prompt-input/index.js +1 -1
  342. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +1 -1
  343. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
  344. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +1 -1
  345. package/dist/components/ai-tools-rail/index.js +1 -1
  346. package/dist/components/alert/alert.d.ts +5 -0
  347. package/dist/components/alert/alert.d.ts.map +1 -1
  348. package/dist/components/alert/index.js +1 -1
  349. package/dist/components/anamnesis-card/index.js +1 -1
  350. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  351. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts.map +1 -0
  352. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  353. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts.map +1 -0
  354. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  355. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts.map +1 -0
  356. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  357. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts.map +1 -0
  358. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  359. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts.map +1 -0
  360. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  361. package/dist/components/anatomy-scheme/index.d.ts.map +1 -0
  362. package/dist/components/anatomy-scheme/index.js +17 -0
  363. package/dist/components/anatomy-scheme/index.js.map +1 -0
  364. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  365. package/dist/components/annotation-marker/annotation-marker.d.ts.map +1 -0
  366. package/dist/components/annotation-marker/index.d.ts +3 -0
  367. package/dist/components/annotation-marker/index.d.ts.map +1 -0
  368. package/dist/components/annotation-marker/index.js +7 -0
  369. package/dist/components/annotation-marker/index.js.map +1 -0
  370. package/dist/components/appointment-card/appointment-card.agent.d.ts.map +1 -1
  371. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  372. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  373. package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -1
  374. package/dist/components/appointment-card/index.js +6 -5
  375. package/dist/components/appointment-card/index.js.map +1 -1
  376. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  377. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts.map +1 -0
  378. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  379. package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -0
  380. package/dist/components/appointment-timeline/index.d.ts +4 -0
  381. package/dist/components/appointment-timeline/index.d.ts.map +1 -0
  382. package/dist/components/appointment-timeline/index.js +6 -0
  383. package/dist/components/appointment-timeline/index.js.map +1 -0
  384. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -1
  385. package/dist/components/audio-recorder/index.js +1 -1
  386. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -1
  387. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  388. package/dist/components/autocomplete/index.js +1 -1
  389. package/dist/components/badge/badge.d.ts +6 -2
  390. package/dist/components/badge/badge.d.ts.map +1 -1
  391. package/dist/components/badge/index.js +1 -1
  392. package/dist/components/bishop-score/bishop-score.agent.d.ts +4 -0
  393. package/dist/components/bishop-score/bishop-score.agent.d.ts.map +1 -0
  394. package/dist/components/bishop-score/bishop-score.d.ts +17 -1
  395. package/dist/components/bishop-score/bishop-score.d.ts.map +1 -1
  396. package/dist/components/bishop-score/index.js +1 -1
  397. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts +4 -0
  398. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts.map +1 -0
  399. package/dist/components/bmi-calculator/bmi-calculator.d.ts +26 -0
  400. package/dist/components/bmi-calculator/bmi-calculator.d.ts.map +1 -1
  401. package/dist/components/bmi-calculator/index.js +1 -1
  402. package/dist/components/booking/booking.agent.d.ts.map +1 -1
  403. package/dist/components/booking/index.js +1 -1
  404. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -1
  405. package/dist/components/breadcrumb/index.js +1 -1
  406. package/dist/components/calculator-dialog/index.js +1 -1
  407. package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
  408. package/dist/components/calendar/index.js +1 -1
  409. package/dist/components/care-plan-card/care-plan-card.agent.d.ts.map +1 -1
  410. package/dist/components/care-plan-card/index.js +1 -1
  411. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts.map +1 -1
  412. package/dist/components/care-plan-entry-card/index.js +1 -1
  413. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  414. package/dist/components/care-plan-header/care-plan-header.agent.d.ts.map +1 -0
  415. package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
  416. package/dist/components/care-plan-header/care-plan-header.d.ts.map +1 -0
  417. package/dist/components/care-plan-header/index.d.ts +4 -0
  418. package/dist/components/care-plan-header/index.d.ts.map +1 -0
  419. package/dist/components/care-plan-header/index.js +6 -0
  420. package/dist/components/care-plan-header/index.js.map +1 -0
  421. package/dist/components/carousel/carousel.agent.d.ts.map +1 -1
  422. package/dist/components/carousel/index.js +1 -1
  423. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  424. package/dist/components/chart/index.js +1 -1
  425. package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -1
  426. package/dist/components/chat-container/index.js +1 -1
  427. package/dist/components/chat-input/chat-input.agent.d.ts.map +1 -1
  428. package/dist/components/chat-input/index.js +1 -1
  429. package/dist/components/checkbox/checkbox.agent.d.ts.map +1 -1
  430. package/dist/components/checkbox/index.js +1 -1
  431. package/dist/components/checkbox-group/index.js +1 -1
  432. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  433. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
  434. package/dist/components/clinical-note-card/index.js +1 -1
  435. package/dist/components/collapsible/collapsible.agent.d.ts.map +1 -1
  436. package/dist/components/collapsible/index.js +1 -1
  437. package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -1
  438. package/dist/components/color-picker/index.js +1 -1
  439. package/dist/components/combobox/combobox.agent.d.ts.map +1 -1
  440. package/dist/components/combobox/combobox.d.ts.map +1 -1
  441. package/dist/components/combobox/index.js +1 -1
  442. package/dist/components/command-palette/command-palette.agent.d.ts.map +1 -1
  443. package/dist/components/command-palette/command-palette.d.ts.map +1 -1
  444. package/dist/components/command-palette/index.js +1 -1
  445. package/dist/components/contact-profile-card/contact-profile-card.agent.d.ts.map +1 -1
  446. package/dist/components/contact-profile-card/index.js +1 -1
  447. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  448. package/dist/components/control-room-rail/control-room-context.d.ts.map +1 -0
  449. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  450. package/dist/components/control-room-rail/control-room-rail.d.ts.map +1 -0
  451. package/dist/components/control-room-rail/index.d.ts +5 -0
  452. package/dist/components/control-room-rail/index.d.ts.map +1 -0
  453. package/dist/components/control-room-rail/index.js +9 -0
  454. package/dist/components/control-room-rail/index.js.map +1 -0
  455. package/dist/components/copy-field/copy-field.agent.d.ts.map +1 -1
  456. package/dist/components/copy-field/index.js +1 -1
  457. package/dist/components/counter/counter.d.ts +22 -0
  458. package/dist/components/counter/counter.d.ts.map +1 -0
  459. package/dist/components/counter/index.d.ts +3 -0
  460. package/dist/components/counter/index.d.ts.map +1 -0
  461. package/dist/components/counter/index.js +5 -0
  462. package/dist/components/counter/index.js.map +1 -0
  463. package/dist/components/cycle-calculator/index.js +1 -1
  464. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  465. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -1
  466. package/dist/components/data-table/data-table.agent.d.ts.map +1 -1
  467. package/dist/components/data-table/index.d.ts +1 -1
  468. package/dist/components/data-table/index.d.ts.map +1 -1
  469. package/dist/components/data-table/index.js +32 -30
  470. package/dist/components/data-table/index.js.map +1 -1
  471. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  472. package/dist/components/date-picker/date-picker.agent.d.ts.map +1 -1
  473. package/dist/components/date-picker/index.js +1 -1
  474. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
  475. package/dist/components/date-range-picker/index.js +1 -1
  476. package/dist/components/date-time-picker/date-time-picker.agent.d.ts.map +1 -1
  477. package/dist/components/date-time-picker/index.js +1 -1
  478. package/dist/components/dependent-selector/dependent-selector.agent.d.ts.map +1 -1
  479. package/dist/components/dependent-selector/index.js +1 -1
  480. package/dist/components/dialog/dialog.agent.d.ts.map +1 -1
  481. package/dist/components/dialog/index.js +1 -1
  482. package/dist/components/document-scanner/document-scanner.agent.d.ts.map +1 -1
  483. package/dist/components/document-scanner/index.js +1 -1
  484. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +1 -1
  485. package/dist/components/dropdown-menu/index.js +1 -1
  486. package/dist/components/due-date-calculator/index.js +2 -2
  487. package/dist/components/email-input/email-input.d.ts.map +1 -1
  488. package/dist/components/email-input/index.js +1 -1
  489. package/dist/components/entity-summary/entity-summary.d.ts +43 -0
  490. package/dist/components/entity-summary/entity-summary.d.ts.map +1 -0
  491. package/dist/components/entity-summary/index.d.ts +3 -0
  492. package/dist/components/entity-summary/index.d.ts.map +1 -0
  493. package/dist/components/entity-summary/index.js +5 -0
  494. package/dist/components/entity-summary/index.js.map +1 -0
  495. package/dist/components/fetal-weight/index.js +1 -1
  496. package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -1
  497. package/dist/components/file-upload/index.js +1 -1
  498. package/dist/components/fiscal-code-input/fiscal-code-input.agent.d.ts.map +1 -1
  499. package/dist/components/fiscal-code-input/index.js +1 -1
  500. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -1
  501. package/dist/components/freemium-paywall/freemium-paywall.d.ts +6 -0
  502. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  503. package/dist/components/freemium-paywall/index.js +1 -1
  504. package/dist/components/gestational-age-calculator/index.js +1 -1
  505. package/dist/components/hcg-doubling/index.js +1 -1
  506. package/dist/components/header-settings/header-settings.agent.d.ts.map +1 -1
  507. package/dist/components/header-settings/index.js +1 -1
  508. package/dist/components/index.d.ts +11 -0
  509. package/dist/components/index.d.ts.map +1 -1
  510. package/dist/components/list/index.js +1 -1
  511. package/dist/components/list/list.agent.d.ts.map +1 -1
  512. package/dist/components/locale-picker/index.js +1 -1
  513. package/dist/components/locale-picker/locale-picker.agent.d.ts.map +1 -1
  514. package/dist/components/map-view/index.js +1 -1
  515. package/dist/components/map-view/map-view.agent.d.ts.map +1 -1
  516. package/dist/components/message-card/index.js +1 -1
  517. package/dist/components/message-card/message-card.agent.d.ts.map +1 -1
  518. package/dist/components/message-tray/index.js +1 -1
  519. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  520. package/dist/components/multi-select/index.js +1 -1
  521. package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -1
  522. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  523. package/dist/components/navigation-menu/index.js +1 -1
  524. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -1
  525. package/dist/components/notes-panel/index.d.ts +3 -0
  526. package/dist/components/notes-panel/index.d.ts.map +1 -0
  527. package/dist/components/notes-panel/index.js +5 -0
  528. package/dist/components/notes-panel/index.js.map +1 -0
  529. package/dist/components/notes-panel/notes-panel.d.ts +64 -0
  530. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -0
  531. package/dist/components/notification-card/index.js +2 -2
  532. package/dist/components/notification-card/notification-card.agent.d.ts.map +1 -1
  533. package/dist/components/notification-card/notification-card.d.ts.map +1 -1
  534. package/dist/components/notification-tray/index.js +1 -1
  535. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  536. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  537. package/dist/components/number-input/index.js +1 -1
  538. package/dist/components/number-input/number-input.agent.d.ts.map +1 -1
  539. package/dist/components/operator-hero/index.js +1 -1
  540. package/dist/components/operator-hero/operator-hero.agent.d.ts.map +1 -1
  541. package/dist/components/otp-input/index.js +1 -1
  542. package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -1
  543. package/dist/components/pagination/index.js +1 -1
  544. package/dist/components/pagination/pagination.agent.d.ts.map +1 -1
  545. package/dist/components/password-input/index.js +1 -1
  546. package/dist/components/password-input/password-input.agent.d.ts.map +1 -1
  547. package/dist/components/patient-details/index.d.ts +5 -0
  548. package/dist/components/patient-details/index.d.ts.map +1 -0
  549. package/dist/components/patient-details/index.js +6 -0
  550. package/dist/components/patient-details/index.js.map +1 -0
  551. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  552. package/dist/components/patient-details/patient-details.agent.d.ts.map +1 -0
  553. package/dist/components/patient-details/patient-details.d.ts +96 -0
  554. package/dist/components/patient-details/patient-details.d.ts.map +1 -0
  555. package/dist/components/patient-search/index.js +1 -1
  556. package/dist/components/patient-search/patient-search.agent.d.ts.map +1 -1
  557. package/dist/components/patient-summary-card/index.js +1 -1
  558. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -1
  559. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  560. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  561. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts +13 -0
  562. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts.map +1 -0
  563. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts +43 -0
  564. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts.map +1 -0
  565. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts +24 -0
  566. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts.map +1 -0
  567. package/dist/components/patient-table/columns.d.ts +131 -0
  568. package/dist/components/patient-table/columns.d.ts.map +1 -0
  569. package/dist/components/patient-table/index.d.ts +20 -0
  570. package/dist/components/patient-table/index.d.ts.map +1 -0
  571. package/dist/components/patient-table/index.js +12 -0
  572. package/dist/components/patient-table/index.js.map +1 -0
  573. package/dist/components/patient-table/patient-table.d.ts +172 -0
  574. package/dist/components/patient-table/patient-table.d.ts.map +1 -0
  575. package/dist/components/patient-table/types.d.ts +222 -0
  576. package/dist/components/patient-table/types.d.ts.map +1 -0
  577. package/dist/components/patient-table/use-responsive-columns.d.ts +111 -0
  578. package/dist/components/patient-table/use-responsive-columns.d.ts.map +1 -0
  579. package/dist/components/payment-card/index.js +1 -1
  580. package/dist/components/payment-form/index.js +1 -1
  581. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
  582. package/dist/components/pdf-viewer/index.js +1 -1
  583. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
  584. package/dist/components/periodontal-chart-card/index.js +1 -1
  585. package/dist/components/phone-input/index.js +1 -1
  586. package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -1
  587. package/dist/components/popover/index.js +1 -1
  588. package/dist/components/popover/popover.agent.d.ts.map +1 -1
  589. package/dist/components/practice-results/index.js +1 -1
  590. package/dist/components/practice-results/practice-results.agent.d.ts.map +1 -1
  591. package/dist/components/pregnancy-dating/index.js +1 -1
  592. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  593. package/dist/components/privacy-lock/index.js +1 -1
  594. package/dist/components/privacy-lock/privacy-lock.agent.d.ts.map +1 -1
  595. package/dist/components/product-hub-tray/index.js +1 -1
  596. package/dist/components/product-hub-tray/product-hub-panel.agent.d.ts.map +1 -1
  597. package/dist/components/product-hub-tray/product-hub-tray.agent.d.ts.map +1 -1
  598. package/dist/components/progress/index.js +1 -1
  599. package/dist/components/public-footer/index.js +1 -1
  600. package/dist/components/public-footer/public-footer.agent.d.ts.map +1 -1
  601. package/dist/components/public-footer/public-footer.d.ts.map +1 -1
  602. package/dist/components/public-header/index.js +1 -1
  603. package/dist/components/public-header/public-header.agent.d.ts.map +1 -1
  604. package/dist/components/qr-code/index.js +1 -1
  605. package/dist/components/qr-code/qr-code.agent.d.ts.map +1 -1
  606. package/dist/components/radio-group/index.js +1 -1
  607. package/dist/components/radiograph-panel/index.d.ts +4 -0
  608. package/dist/components/radiograph-panel/index.d.ts.map +1 -0
  609. package/dist/components/radiograph-panel/index.js +7 -0
  610. package/dist/components/radiograph-panel/index.js.map +1 -0
  611. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  612. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts.map +1 -0
  613. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  614. package/dist/components/radiograph-panel/radiograph-panel.d.ts.map +1 -0
  615. package/dist/components/recaptcha-widget/index.js +1 -1
  616. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -1
  617. package/dist/components/resizable/index.js +1 -1
  618. package/dist/components/resizable/resizable.agent.d.ts.map +1 -1
  619. package/dist/components/resizable/resizable.d.ts.map +1 -1
  620. package/dist/components/reviews-panel/index.js +1 -1
  621. package/dist/components/reviews-panel/reviews-panel.agent.d.ts.map +1 -1
  622. package/dist/components/rich-text-editor/index.js +1 -1
  623. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -1
  624. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  625. package/dist/components/search-bar/index.js +1 -1
  626. package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -1
  627. package/dist/components/search-input/index.js +2 -2
  628. package/dist/components/search-input/search-input.agent.d.ts.map +1 -1
  629. package/dist/components/select/index.js +1 -1
  630. package/dist/components/select/select.agent.d.ts.map +1 -1
  631. package/dist/components/session-countdown/index.js +1 -1
  632. package/dist/components/sheet/index.js +1 -1
  633. package/dist/components/sheet/sheet.agent.d.ts.map +1 -1
  634. package/dist/components/sidebar/index.js +2 -2
  635. package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -1
  636. package/dist/components/sidebar/sidebar.d.ts +7 -0
  637. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  638. package/dist/components/sign-document/index.js +1 -1
  639. package/dist/components/sign-document/sign-document.agent.d.ts.map +1 -1
  640. package/dist/components/signature-capture/index.js +1 -1
  641. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +1 -1
  642. package/dist/components/slider/index.js +1 -1
  643. package/dist/components/slider/slider.agent.d.ts.map +1 -1
  644. package/dist/components/sparkline/index.js +1 -1
  645. package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -1
  646. package/dist/components/stepper-accordion/index.js +2 -2
  647. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -1
  648. package/dist/components/stepper-progress/index.js +1 -1
  649. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -1
  650. package/dist/components/suggestion-chip/index.js +1 -1
  651. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -1
  652. package/dist/components/switch/index.js +1 -1
  653. package/dist/components/switch/switch.agent.d.ts.map +1 -1
  654. package/dist/components/tab-bar/index.js +1 -1
  655. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  656. package/dist/components/tab-bar/tab-bar.d.ts.map +1 -1
  657. package/dist/components/tabs/index.js +1 -1
  658. package/dist/components/tabs/tabs.agent.d.ts.map +1 -1
  659. package/dist/components/tabs/tabs.d.ts.map +1 -1
  660. package/dist/components/task-card/index.js +1 -1
  661. package/dist/components/task-card/task-card.agent.d.ts.map +1 -1
  662. package/dist/components/task-tray/index.js +1 -1
  663. package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -1
  664. package/dist/components/text-area/index.js +1 -1
  665. package/dist/components/text-area/text-area.agent.d.ts.map +1 -1
  666. package/dist/components/text-input/index.js +1 -1
  667. package/dist/components/text-input/text-input.agent.d.ts.map +1 -1
  668. package/dist/components/theme-toggle/index.js +1 -1
  669. package/dist/components/theme-toggle/theme-toggle.agent.d.ts.map +1 -1
  670. package/dist/components/time-picker/index.js +1 -1
  671. package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -1
  672. package/dist/components/timeline/index.js +1 -1
  673. package/dist/components/timeline/timeline.agent.d.ts.map +1 -1
  674. package/dist/components/toast/index.js +1 -1
  675. package/dist/components/toast/toast.agent.d.ts.map +1 -1
  676. package/dist/components/toast/toast.d.ts.map +1 -1
  677. package/dist/components/tooth-scheme/index.d.ts +2 -2
  678. package/dist/components/tooth-scheme/index.d.ts.map +1 -1
  679. package/dist/components/tooth-scheme/index.js +30 -23
  680. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  681. package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -1
  682. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  683. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  684. package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
  685. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
  686. package/dist/components/transaction-chip/index.js +1 -1
  687. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  688. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -1
  689. package/dist/components/transcript-panel/index.js +1 -1
  690. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -1
  691. package/dist/components/unit-converter/index.js +1 -1
  692. package/dist/components/unit-converter/unit-converter.agent.d.ts +4 -0
  693. package/dist/components/unit-converter/unit-converter.agent.d.ts.map +1 -0
  694. package/dist/components/unit-converter/unit-converter.d.ts +27 -0
  695. package/dist/components/unit-converter/unit-converter.d.ts.map +1 -1
  696. package/dist/components/warning-stack/index.js +1 -1
  697. package/dist/components/warning-stack/warning-stack.d.ts +14 -2
  698. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  699. package/dist/components/whatsapp-button/index.d.ts +1 -1
  700. package/dist/components/whatsapp-button/index.d.ts.map +1 -1
  701. package/dist/components/whatsapp-button/index.js +3 -2
  702. package/dist/components/whatsapp-button/whatsapp-button.d.ts +3 -0
  703. package/dist/components/whatsapp-button/whatsapp-button.d.ts.map +1 -1
  704. package/dist/components/workflow/index.js +1 -1
  705. package/dist/components/workflow/workflow.agent.d.ts.map +1 -1
  706. package/dist/hooks/index.d.ts +1 -0
  707. package/dist/hooks/index.d.ts.map +1 -1
  708. package/dist/hooks/index.js +24 -22
  709. package/dist/hooks/index.js.map +1 -1
  710. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  711. package/dist/hooks/use-clamp-overflow.d.ts.map +1 -0
  712. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  713. package/dist/hooks/use-overflow-collapse.d.ts.map +1 -0
  714. package/dist/hooks/use-persistent-state.d.ts +7 -1
  715. package/dist/hooks/use-persistent-state.d.ts.map +1 -1
  716. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  717. package/dist/hooks/use-scroll-overflow.d.ts.map +1 -0
  718. package/dist/i18n/locales/ar.d.ts +356 -0
  719. package/dist/i18n/locales/ar.d.ts.map +1 -1
  720. package/dist/i18n/locales/ar.js +370 -3
  721. package/dist/i18n/locales/ar.js.map +1 -1
  722. package/dist/i18n/locales/de.d.ts +356 -0
  723. package/dist/i18n/locales/de.d.ts.map +1 -1
  724. package/dist/i18n/locales/de.js +370 -3
  725. package/dist/i18n/locales/de.js.map +1 -1
  726. package/dist/i18n/locales/el.d.ts +356 -0
  727. package/dist/i18n/locales/el.d.ts.map +1 -1
  728. package/dist/i18n/locales/el.js +370 -3
  729. package/dist/i18n/locales/el.js.map +1 -1
  730. package/dist/i18n/locales/en.d.ts +367 -0
  731. package/dist/i18n/locales/en.d.ts.map +1 -1
  732. package/dist/i18n/locales/en.js +381 -3
  733. package/dist/i18n/locales/en.js.map +1 -1
  734. package/dist/i18n/locales/es.d.ts +356 -0
  735. package/dist/i18n/locales/es.d.ts.map +1 -1
  736. package/dist/i18n/locales/es.js +370 -3
  737. package/dist/i18n/locales/es.js.map +1 -1
  738. package/dist/i18n/locales/fr.d.ts +356 -0
  739. package/dist/i18n/locales/fr.d.ts.map +1 -1
  740. package/dist/i18n/locales/fr.js +370 -3
  741. package/dist/i18n/locales/fr.js.map +1 -1
  742. package/dist/i18n/locales/hi.d.ts +356 -0
  743. package/dist/i18n/locales/hi.d.ts.map +1 -1
  744. package/dist/i18n/locales/hi.js +370 -3
  745. package/dist/i18n/locales/hi.js.map +1 -1
  746. package/dist/i18n/locales/it.d.ts +356 -0
  747. package/dist/i18n/locales/it.d.ts.map +1 -1
  748. package/dist/i18n/locales/it.js +370 -3
  749. package/dist/i18n/locales/it.js.map +1 -1
  750. package/dist/i18n/locales/ja.d.ts +356 -0
  751. package/dist/i18n/locales/ja.d.ts.map +1 -1
  752. package/dist/i18n/locales/ja.js +370 -3
  753. package/dist/i18n/locales/ja.js.map +1 -1
  754. package/dist/i18n/locales/nl.d.ts +356 -0
  755. package/dist/i18n/locales/nl.d.ts.map +1 -1
  756. package/dist/i18n/locales/nl.js +370 -3
  757. package/dist/i18n/locales/nl.js.map +1 -1
  758. package/dist/i18n/locales/pl.d.ts +356 -0
  759. package/dist/i18n/locales/pl.d.ts.map +1 -1
  760. package/dist/i18n/locales/pl.js +370 -3
  761. package/dist/i18n/locales/pl.js.map +1 -1
  762. package/dist/i18n/locales/pt.d.ts +356 -0
  763. package/dist/i18n/locales/pt.d.ts.map +1 -1
  764. package/dist/i18n/locales/pt.js +370 -3
  765. package/dist/i18n/locales/pt.js.map +1 -1
  766. package/dist/i18n/locales/ro.d.ts +356 -0
  767. package/dist/i18n/locales/ro.d.ts.map +1 -1
  768. package/dist/i18n/locales/ro.js +370 -3
  769. package/dist/i18n/locales/ro.js.map +1 -1
  770. package/dist/i18n/locales/ru.d.ts +356 -0
  771. package/dist/i18n/locales/ru.d.ts.map +1 -1
  772. package/dist/i18n/locales/ru.js +370 -3
  773. package/dist/i18n/locales/ru.js.map +1 -1
  774. package/dist/i18n/locales/sq.d.ts +356 -0
  775. package/dist/i18n/locales/sq.d.ts.map +1 -1
  776. package/dist/i18n/locales/sq.js +370 -3
  777. package/dist/i18n/locales/sq.js.map +1 -1
  778. package/dist/i18n/locales/sv.d.ts +356 -0
  779. package/dist/i18n/locales/sv.d.ts.map +1 -1
  780. package/dist/i18n/locales/sv.js +370 -3
  781. package/dist/i18n/locales/sv.js.map +1 -1
  782. package/dist/i18n/locales/tr.d.ts +356 -0
  783. package/dist/i18n/locales/tr.d.ts.map +1 -1
  784. package/dist/i18n/locales/tr.js +370 -3
  785. package/dist/i18n/locales/tr.js.map +1 -1
  786. package/dist/i18n/locales/zh.d.ts +356 -0
  787. package/dist/i18n/locales/zh.d.ts.map +1 -1
  788. package/dist/i18n/locales/zh.js +370 -3
  789. package/dist/i18n/locales/zh.js.map +1 -1
  790. package/dist/index.js +740 -676
  791. package/dist/index.js.map +1 -1
  792. package/dist/locales/ar.json +359 -3
  793. package/dist/locales/de.json +359 -3
  794. package/dist/locales/el.json +359 -3
  795. package/dist/locales/en.json +359 -3
  796. package/dist/locales/es.json +359 -3
  797. package/dist/locales/fr.json +359 -3
  798. package/dist/locales/hi.json +359 -3
  799. package/dist/locales/it.json +359 -3
  800. package/dist/locales/ja.json +359 -3
  801. package/dist/locales/nl.json +359 -3
  802. package/dist/locales/pl.json +359 -3
  803. package/dist/locales/pt.json +359 -3
  804. package/dist/locales/ro.json +359 -3
  805. package/dist/locales/ru.json +359 -3
  806. package/dist/locales/sq.json +359 -3
  807. package/dist/locales/sv.json +359 -3
  808. package/dist/locales/tr.json +359 -3
  809. package/dist/locales/zh.json +359 -3
  810. package/dist/patterns/alia-assistant/index.js +1 -1
  811. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  812. package/dist/patterns/patient-shell/index.js +1 -1
  813. package/dist/tokens.css +3 -2
  814. package/package.json +50 -1
  815. package/dist/_chunks/accordion-9lJSMMsZ.js.map +0 -1
  816. package/dist/_chunks/address-autocomplete-CT-9AOli.js +0 -358
  817. package/dist/_chunks/address-autocomplete-CT-9AOli.js.map +0 -1
  818. package/dist/_chunks/agenda-tray-T-BumlGZ.js.map +0 -1
  819. package/dist/_chunks/ai-prompt-input-BwEACCPm.js.map +0 -1
  820. package/dist/_chunks/ai-tools-rail-CInA_1-E.js +0 -356
  821. package/dist/_chunks/ai-tools-rail-CInA_1-E.js.map +0 -1
  822. package/dist/_chunks/alert-_mUKLmwA.js.map +0 -1
  823. package/dist/_chunks/appointment-tray-BMl89NPW.js +0 -419
  824. package/dist/_chunks/appointment-tray-BMl89NPW.js.map +0 -1
  825. package/dist/_chunks/audio-recorder-DjXLP4aF.js.map +0 -1
  826. package/dist/_chunks/autocomplete-CcCFlVf-.js.map +0 -1
  827. package/dist/_chunks/badge-CqGsX32l.js.map +0 -1
  828. package/dist/_chunks/bishop-score-CjsB9bM-.js +0 -185
  829. package/dist/_chunks/bishop-score-CjsB9bM-.js.map +0 -1
  830. package/dist/_chunks/bmi-calculator-n-823_1V.js +0 -258
  831. package/dist/_chunks/bmi-calculator-n-823_1V.js.map +0 -1
  832. package/dist/_chunks/booking-L8-YP8BJ.js.map +0 -1
  833. package/dist/_chunks/breadcrumb-OTbaY70e.js.map +0 -1
  834. package/dist/_chunks/calendar-oYWOCrnf.js.map +0 -1
  835. package/dist/_chunks/care-plan-card-BwVUyUBb.js.map +0 -1
  836. package/dist/_chunks/care-plan-entry-card-VzdQHcOL.js.map +0 -1
  837. package/dist/_chunks/chart-Cg3e9EH9.js.map +0 -1
  838. package/dist/_chunks/chat-container-ogB4OskO.js.map +0 -1
  839. package/dist/_chunks/chat-input-B5zjNEUN.js.map +0 -1
  840. package/dist/_chunks/checkbox-DRcOdmXv.js.map +0 -1
  841. package/dist/_chunks/clinical-note-card-gtrxv6zn.js +0 -333
  842. package/dist/_chunks/clinical-note-card-gtrxv6zn.js.map +0 -1
  843. package/dist/_chunks/collapsible-X3oaLPU3.js.map +0 -1
  844. package/dist/_chunks/color-picker-FXpItIaF.js.map +0 -1
  845. package/dist/_chunks/combobox-BC-DFx8G.js.map +0 -1
  846. package/dist/_chunks/command-palette-BiPAAno-.js.map +0 -1
  847. package/dist/_chunks/contact-profile-card-7BMB85T6.js.map +0 -1
  848. package/dist/_chunks/copy-field-CCq7j6Zc.js.map +0 -1
  849. package/dist/_chunks/date-range-picker-C5BWfH_T.js.map +0 -1
  850. package/dist/_chunks/date-time-picker-Ze1My59T.js.map +0 -1
  851. package/dist/_chunks/dependent-selector-DpzGtr_J.js.map +0 -1
  852. package/dist/_chunks/dialog-DMGnSelc.js.map +0 -1
  853. package/dist/_chunks/document-scanner-D2qehl3-.js.map +0 -1
  854. package/dist/_chunks/dropdown-menu-DwwPovMZ.js.map +0 -1
  855. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js +0 -2409
  856. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js.map +0 -1
  857. package/dist/_chunks/email-input-lQivsFrw.js +0 -396
  858. package/dist/_chunks/file-upload-BosbPDb1.js.map +0 -1
  859. package/dist/_chunks/fiscal-code-input-DPtqluVb.js.map +0 -1
  860. package/dist/_chunks/freemium-paywall-CkWjv3o6.js.map +0 -1
  861. package/dist/_chunks/header-settings-CNOqIhoW.js.map +0 -1
  862. package/dist/_chunks/list-BOwqwy03.js.map +0 -1
  863. package/dist/_chunks/locale-picker-C9JmBht3.js.map +0 -1
  864. package/dist/_chunks/map-view-Tb5VfK9Y.js.map +0 -1
  865. package/dist/_chunks/message-card.agent-4IeIgrnJ.js.map +0 -1
  866. package/dist/_chunks/message-tray-CVyJajVJ.js.map +0 -1
  867. package/dist/_chunks/multi-select-BcPylvHR.js.map +0 -1
  868. package/dist/_chunks/navigation-menu-C6lBYVv9.js.map +0 -1
  869. package/dist/_chunks/notification-card-BiESdm8q.js.map +0 -1
  870. package/dist/_chunks/notification-card.agent-Rqt3ofk9.js.map +0 -1
  871. package/dist/_chunks/notification-tray-DlgenTEe.js.map +0 -1
  872. package/dist/_chunks/number-input-Dj5L3pXK.js.map +0 -1
  873. package/dist/_chunks/operator-hero-f_KaRhw5.js.map +0 -1
  874. package/dist/_chunks/otp-input-xQ4Ps5VY.js.map +0 -1
  875. package/dist/_chunks/pagination-DQOgnxxw.js.map +0 -1
  876. package/dist/_chunks/patient-search-DR9XUYRQ.js.map +0 -1
  877. package/dist/_chunks/patient-summary-card-hEmr4eTW.js +0 -443
  878. package/dist/_chunks/patient-summary-card-hEmr4eTW.js.map +0 -1
  879. package/dist/_chunks/payment-form-nXocS_MX.js.map +0 -1
  880. package/dist/_chunks/payment-request-card-CYE5vhZ0.js.map +0 -1
  881. package/dist/_chunks/pdf-viewer-GsfNqeeT.js.map +0 -1
  882. package/dist/_chunks/phone-input-DVXhNlIl.js.map +0 -1
  883. package/dist/_chunks/popover-DTbfAuR0.js.map +0 -1
  884. package/dist/_chunks/practice-results-DND2SAt7.js.map +0 -1
  885. package/dist/_chunks/privacy-lock-C7JyMf0y.js.map +0 -1
  886. package/dist/_chunks/product-hub-panel-CAXDFeGP.js.map +0 -1
  887. package/dist/_chunks/public-footer.agent-CfXuW1x6.js.map +0 -1
  888. package/dist/_chunks/qr-code-DNXhi6se.js.map +0 -1
  889. package/dist/_chunks/recaptcha-widget-BCNHsgqt.js.map +0 -1
  890. package/dist/_chunks/registry-nPAVE19X.js +0 -21
  891. package/dist/_chunks/registry-nPAVE19X.js.map +0 -1
  892. package/dist/_chunks/resizable-3vzqDlg6.js.map +0 -1
  893. package/dist/_chunks/reviews-panel-DBktKm7i.js.map +0 -1
  894. package/dist/_chunks/rich-text-editor-VawKN1FI.js.map +0 -1
  895. package/dist/_chunks/search-bar-SY2BcV2N.js.map +0 -1
  896. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +0 -1
  897. package/dist/_chunks/select-CEtRcon5.js.map +0 -1
  898. package/dist/_chunks/sheet-taJer-Ha.js.map +0 -1
  899. package/dist/_chunks/sidebar-DaB4ulxH.js.map +0 -1
  900. package/dist/_chunks/sign-document-CdAiHiCh.js.map +0 -1
  901. package/dist/_chunks/signature-capture-COi0Uiqu.js.map +0 -1
  902. package/dist/_chunks/slider-BHWzXdjt.js.map +0 -1
  903. package/dist/_chunks/sparkline-DGhCSw8M.js.map +0 -1
  904. package/dist/_chunks/stepper-accordion-Dki6r9ZE.js.map +0 -1
  905. package/dist/_chunks/stepper-accordion.agent-C4quJ-MD.js.map +0 -1
  906. package/dist/_chunks/stepper-progress-DDjq5nei.js.map +0 -1
  907. package/dist/_chunks/switch-BJ6HD3Mn.js.map +0 -1
  908. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  909. package/dist/_chunks/tab-bar-B1ovILzh.js.map +0 -1
  910. package/dist/_chunks/tabs-BIQ0ew1T.js.map +0 -1
  911. package/dist/_chunks/task-card.agent-CUPKYd7w.js.map +0 -1
  912. package/dist/_chunks/task-tray-CAncV-QQ.js.map +0 -1
  913. package/dist/_chunks/text-area-BIx0tZ05.js.map +0 -1
  914. package/dist/_chunks/text-input-BaClJL8Y.js.map +0 -1
  915. package/dist/_chunks/theme-toggle-DETmSu_h.js.map +0 -1
  916. package/dist/_chunks/time-picker-B5umYwfv.js.map +0 -1
  917. package/dist/_chunks/timeline-DQa5Tyz4.js.map +0 -1
  918. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js +0 -1257
  919. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js.map +0 -1
  920. package/dist/_chunks/transaction-chip-DK84XCBU.js.map +0 -1
  921. package/dist/_chunks/transcript-panel-CLHmv83g.js.map +0 -1
  922. package/dist/_chunks/unit-converter-C1V3ACM9.js +0 -196
  923. package/dist/_chunks/unit-converter-C1V3ACM9.js.map +0 -1
  924. package/dist/_chunks/use-password-requirements-DsgduV1x.js.map +0 -1
  925. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  926. package/dist/_chunks/use-persistent-state-i23OWy6G.js.map +0 -1
  927. package/dist/_chunks/warning-stack-Cv4fr5zo.js +0 -220
  928. package/dist/_chunks/warning-stack-Cv4fr5zo.js.map +0 -1
  929. package/dist/_chunks/whatsapp-button-DUjlWGKf.js.map +0 -1
  930. package/dist/_chunks/workflow-map-JAZryZJr.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appointment-tray-DRRw5ROi.js","sources":["../../src/components/appointment-card/appointment-card.agent.ts","../../src/components/appointment-card/appointment-tray.agent.ts","../../src/components/appointment-card/appointment-tray.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — AppointmentCard. */\n/* */\n/* Single-appointment surface. Activation is owned by the consumer / */\n/* host tray; the card emits a DOM hook so a future MCP UI bridge can */\n/* address one rendered card by its appointment id. Read-only — the card */\n/* exposes no imperative handle of its own (the tray owns activation). */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\n\nexport const appointmentCardAgent: AgentAdapter = {\n id: 'appointment-card',\n // 'pick' (non-persisting activation) is host-delegated: the card exposes no\n // handle of its own — its enclosing AppointmentTray performs the pick via\n // `appointment-tray.select_item`, addressing this card by its data-component-id.\n capabilities: ['pick'],\n state: {},\n actions: {},\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'appointment-card',\n description:\n 'Marks the element as a kit AppointmentCard. The root also emits data-component-id sourced from item.id, data-state with the appointment lifecycle, and data-type with the delivery channel.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'item.id',\n description: 'Sourced from item.id — the stable appointment identifier.',\n },\n },\n};\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — AppointmentTray. */\n/* */\n/* Tray-level surface: read appointment ids + lifecycle state (never */\n/* patient names / treatments), and route an activation through the */\n/* curated handle. AppointmentTray is in-page (no open/close). */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { AppointmentTrayHandle } from './appointment-tray';\n\nexport const appointmentTrayAgent: AgentAdapter<AppointmentTrayHandle> = {\n id: 'appointment-tray',\n // 'pick' (non-persisting activation): select_item routes an activation\n // through onActivate — it does not persist a \"selected appointment\" value,\n // so this is a focus/pick, not a select_single.\n capabilities: ['pick'],\n state: {\n items: {\n type: 'Array<{ id: string; state: string }>',\n descriptionKey: 'ui.agent.appointmentTray.state.items',\n description:\n 'Currently-displayed appointments. Ids + lifecycle state only — never patient identity.',\n read: (handle) => handle.getItems(),\n },\n },\n actions: {\n select_item: {\n safety: 'read',\n argsType: '{ id: string }',\n argsSchema: {\n type: 'object',\n properties: { id: { type: 'string' } },\n required: ['id'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.appointmentTray.actions.selectItem',\n description: 'Activate the appointment with the given id.',\n invoke: (handle, args: { id: string }) => {\n handle.selectItem(args.id);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'appointment-tray',\n description: 'Marks the AppointmentTray wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description:\n 'Sourced from the id prop. Required to address a specific tray from the agent.',\n },\n item: {\n attr: 'data-appointment-id',\n description:\n 'Stable appointment id emitted on each rendered AppointmentCard inside the tray.',\n },\n },\n};\n","import {\n forwardRef,\n useImperativeHandle,\n useMemo,\n useRef,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { CalendarDays, Plus } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { EmptyState } from '../empty-state/empty-state';\nimport { AppointmentCard, type AppointmentItem } from './appointment-card';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { appointmentTrayAgent } from './appointment-tray.agent';\n\n/* -------------------------------------------------------------------- */\n/* AppointmentTray */\n/* */\n/* Bordered panel that hosts a list of AppointmentCards — header with a */\n/* title + optional caption + an \"Add\" affordance, a body that branches */\n/* on loading (Skeleton) / empty (EmptyState) / list. Mirrors AgendaTray */\n/* but composes the richer AppointmentCard row. */\n/* */\n/* All visible text flows through useTranslation('ui') against the */\n/* `appointmentTray.*` namespace. */\n/* -------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------- */\n/* CVA — panel surface */\n/* -------------------------------------------------------------------- */\n\nconst appointmentTrayVariants = cva(\n [\n 'ds:flex ds:flex-col',\n 'ds:rounded-[var(--radius-md)] ds:shadow-[var(--shadow-card)]',\n 'ds:border ds:border-[color:var(--card-border)] ds:[.theme-accessible_&]:border-2',\n 'ds:bg-[color:var(--card)] ds:text-[color:var(--card-foreground)]',\n 'ds:overflow-hidden',\n ].join(' '),\n {\n variants: {\n size: {\n sm: '',\n md: '',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n },\n);\n\n/* -------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------- */\n\n/**\n * Curated imperative handle for AppointmentTray — the forwardRef target so a\n * future agent / MCP UI bridge can drive the tray without touching the DOM.\n * Reads identifiers + lifecycle state only, never patient identity. See\n * `appointment-tray.agent.ts`.\n */\nexport interface AppointmentTrayHandle {\n getItems: () => Array<{ id: string; state: string }>;\n selectItem: (id: string) => void;\n}\n\nexport interface AppointmentTrayProps\n extends\n Omit<HTMLAttributes<HTMLElement>, 'onClick' | 'id'>,\n VariantProps<typeof appointmentTrayVariants> {\n /**\n * Stable instance id. Surfaced on the root as `data-component-id` so an\n * agent / MCP UI bridge can address this specific tray.\n */\n id?: string;\n /** The appointments to render. */\n items: AppointmentItem[];\n /** Section title — rendered in the header. Localised by the consumer. */\n title?: string;\n /** Optional small caption (e.g. localised date) shown next to the title. */\n caption?: string;\n /** Visual density passed through to each AppointmentCard. */\n size?: 'sm' | 'md';\n /** BCP-47 locale override passed to each AppointmentCard. */\n locale?: string;\n /** ISO-4217 currency code passed to each AppointmentCard. */\n currency?: string;\n onOpenAppointment?: (item: AppointmentItem) => void;\n onAddAppointment?: () => void;\n /** Localised label for the \"Add\" affordance. */\n addLabel?: string;\n loading?: boolean;\n emptyTitle?: string;\n emptyDescription?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const AppointmentTray = forwardRef<HTMLElement, AppointmentTrayProps>(\n (\n {\n id,\n items,\n title,\n caption,\n size = 'sm',\n locale,\n currency,\n onOpenAppointment,\n onAddAppointment,\n addLabel,\n loading = false,\n emptyTitle,\n emptyDescription,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const heading = title ?? t('appointmentTray.title');\n const resolvedAddLabel = addLabel ?? t('appointmentTray.add');\n const isEmpty = !loading && items.length === 0;\n\n let body: ReactNode;\n if (loading) {\n body = (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]\">\n {[0, 1, 2].map((i) => (\n <Skeleton key={i} variant=\"rectangular\" height=\"3.5rem\" />\n ))}\n </div>\n );\n } else if (isEmpty) {\n body = (\n <div className=\"ds:p-[var(--spacing-md)]\">\n <EmptyState\n variant=\"first-use\"\n size=\"sm\"\n title={emptyTitle ?? t('appointmentTray.empty.title')}\n description={\n emptyDescription ?? t('appointmentTray.empty.description')\n }\n />\n </div>\n );\n } else {\n body = (\n <ul className=\"ds:flex ds:list-none ds:flex-col ds:gap-[var(--spacing-2xs)] ds:p-[var(--spacing-2xs)]\">\n {items.map((item) => (\n <AppointmentCard\n key={item.id}\n item={item}\n size={size}\n locale={locale}\n currency={currency}\n onActivate={onOpenAppointment}\n data-appointment-id={item.id}\n />\n ))}\n </ul>\n );\n }\n\n /* Curated imperative handle for agent integration. See\n * appointment-tray.agent.ts. */\n const itemsRef = useRef<AppointmentItem[]>(items);\n itemsRef.current = items;\n\n const innerRef = useRef<HTMLElement>(null);\n useImperativeHandle(ref, () => innerRef.current as HTMLElement, []);\n\n const handle = useMemo<AppointmentTrayHandle>(\n () => ({\n getItems: () =>\n itemsRef.current.map((i) => ({ id: i.id, state: i.state })),\n selectItem: (targetId: string) => {\n const found = itemsRef.current.find((i) => i.id === targetId);\n if (found) onOpenAppointment?.(found);\n },\n }),\n [onOpenAppointment],\n );\n\n useAgentRegistration(appointmentTrayAgent, handle, id);\n\n return (\n <section\n ref={innerRef}\n aria-label={heading}\n data-component=\"appointment-tray\"\n data-component-id={id}\n className={appointmentTrayVariants({ size, className })}\n {...rest}\n >\n <header className=\"ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]\">\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:min-w-0\">\n <h3 className=\"ds:m-0 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] type-title-card\">\n <CalendarDays aria-hidden=\"true\" className=\"ds:size-4\" />\n {heading}\n </h3>\n {caption ? (\n <span className=\"type-eyebrow ds:text-[color:var(--muted-foreground)]\">\n {caption}\n </span>\n ) : null}\n </div>\n {onAddAppointment ? (\n <IconButton\n icon={<Plus />}\n intent=\"outline\"\n size=\"sm\"\n aria-label={resolvedAddLabel}\n onClick={onAddAppointment}\n />\n ) : null}\n </header>\n {body}\n </section>\n );\n },\n);\n\nAppointmentTray.displayName = 'AppointmentTray';\n"],"names":["appointmentCardAgent","appointmentTrayAgent","handle","args","appointmentTrayVariants","cva","AppointmentTray","forwardRef","id","items","title","caption","size","locale","currency","onOpenAppointment","onAddAppointment","addLabel","loading","emptyTitle","emptyDescription","className","rest","ref","t","useTranslation","heading","resolvedAddLabel","isEmpty","body","jsx","i","Skeleton","EmptyState","item","AppointmentCard","itemsRef","useRef","innerRef","useImperativeHandle","useMemo","targetId","found","useAgentRegistration","jsxs","CalendarDays","IconButton","Plus"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { jsxs as R, jsx as s, Fragment as se } from "react/jsx-runtime";
2
- import { forwardRef as ae, useReducer as ne, useState as x, useRef as l, useEffect as D, useCallback as h, useMemo as de, useImperativeHandle as ce } from "react";
2
+ import { forwardRef as ne, useReducer as ae, useState as x, useRef as l, useEffect as N, useCallback as h, useMemo as de, useImperativeHandle as ce } from "react";
3
3
  import { c as oe } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as ue } from "react-i18next";
5
5
  import { B as G } from "./button-DD_0Xdmr.js";
6
- import { I as N } from "./icon-button-LqoiKcUN.js";
7
- import { S as pe } from "./select-CEtRcon5.js";
6
+ import { I as D } from "./icon-button-LqoiKcUN.js";
7
+ import { S as pe } from "./select-DMLG44F5.js";
8
8
  import { A as le } from "./audio-visualiser-l6zPd0AG.js";
9
- import { A as F } from "./alert-_mUKLmwA.js";
10
- import { u as me } from "./registry-nPAVE19X.js";
9
+ import { A as F } from "./alert-CHYZ96tR.js";
10
+ import { u as me } from "./registry-DvAUVLHh.js";
11
11
  import { M as fe } from "./mic-B4Gog3Gi.js";
12
12
  import { c as J } from "./createLucideIcon-CrFbzy84.js";
13
13
  import { S as ge } from "./square-CZoGU14v.js";
@@ -38,7 +38,7 @@ const ke = [
38
38
  ]
39
39
  ], be = J("play", ke), Re = {
40
40
  id: "audio-recorder",
41
- capabilities: ["submit"],
41
+ capabilities: ["capture", "submit"],
42
42
  state: {
43
43
  isRecording: {
44
44
  type: "boolean",
@@ -62,8 +62,10 @@ const ke = [
62
62
  actions: {
63
63
  start_recording: {
64
64
  safety: "write",
65
+ returns: "void",
65
66
  descriptionKey: "ui.agent.audioRecorder.actions.startRecording",
66
67
  description: "Request microphone permission and begin recording.",
68
+ errors: ["Microphone permission denied", "No audio input device"],
67
69
  invoke: (r) => r.startRecording()
68
70
  },
69
71
  stop_recording: {
@@ -76,6 +78,7 @@ const ke = [
76
78
  },
77
79
  discard: {
78
80
  safety: "destructive",
81
+ idempotent: !0,
79
82
  descriptionKey: "ui.agent.audioRecorder.actions.discard",
80
83
  description: "Cancel the recording. Irreversible — the captured audio is dropped.",
81
84
  invoke: (r) => {
@@ -135,7 +138,7 @@ function we(r, u) {
135
138
  return r;
136
139
  }
137
140
  }
138
- const Ae = oe(
141
+ const Me = oe(
139
142
  [
140
143
  "ds:inline-flex ds:flex-col ds:items-stretch ds:gap-[var(--spacing-sm)]",
141
144
  "ds:rounded-[var(--radius-md)] ds:border ds:border-border",
@@ -152,7 +155,7 @@ const Ae = oe(
152
155
  },
153
156
  defaultVariants: { size: "md" }
154
157
  }
155
- ), Me = [
158
+ ), Ae = [
156
159
  "audio/webm;codecs=opus",
157
160
  "audio/webm",
158
161
  "audio/mp4",
@@ -160,15 +163,15 @@ const Ae = oe(
160
163
  ];
161
164
  function xe() {
162
165
  if (!(typeof MediaRecorder > "u")) {
163
- for (const r of Me)
166
+ for (const r of Ae)
164
167
  if (MediaRecorder.isTypeSupported(r)) return r;
165
168
  }
166
169
  }
167
- function De(r, u) {
170
+ function Ne(r, u) {
168
171
  const m = Math.max(0, Math.floor(r / 1e3)), i = Math.floor(m / 60), f = m % 60, v = (S) => new Intl.NumberFormat(u, { minimumIntegerDigits: 2 }).format(S);
169
172
  return `${v(i)}:${v(f)}`;
170
173
  }
171
- const Ne = ae(
174
+ const De = ne(
172
175
  ({
173
176
  size: r = "md",
174
177
  onRecordingComplete: u,
@@ -179,23 +182,23 @@ const Ne = ae(
179
182
  className: S,
180
183
  ...I
181
184
  }, Q) => {
182
- const { t: d, i18n: W } = ue(), [t, p] = ne(we, { kind: "idle" }), [z, T] = x(null), [Y, Z] = x(Date.now()), [E, ee] = x([]), [w, te] = x(""), c = l(null), y = l([]), _ = l(0), V = l(0), g = l(null), B = l(!1), k = l(!1), H = l(0), b = typeof MediaRecorder < "u";
183
- D(() => {
185
+ const { t: d, i18n: W } = ue(), [t, p] = ae(we, { kind: "idle" }), [z, T] = x(null), [Y, Z] = x(Date.now()), [E, ee] = x([]), [w, te] = x(""), c = l(null), y = l([]), _ = l(0), V = l(0), g = l(null), B = l(!1), k = l(!1), H = l(0), b = typeof MediaRecorder < "u";
186
+ N(() => {
184
187
  var e;
185
- !b || !((e = navigator.mediaDevices) != null && e.enumerateDevices) || navigator.mediaDevices.enumerateDevices().then((a) => {
186
- const o = a.filter((n) => n.kind === "audioinput");
188
+ !b || !((e = navigator.mediaDevices) != null && e.enumerateDevices) || navigator.mediaDevices.enumerateDevices().then((n) => {
189
+ const o = n.filter((a) => a.kind === "audioinput");
187
190
  ee(o);
188
191
  }).catch(() => {
189
192
  });
190
- }, [b]), D(() => {
193
+ }, [b]), N(() => {
191
194
  if (t.kind !== "recording") return;
192
195
  const e = window.setInterval(() => Z(Date.now()), 250);
193
196
  return () => window.clearInterval(e);
194
197
  }, [t.kind]);
195
198
  const $ = h(() => {
196
199
  const e = g.current ?? z;
197
- e == null || e.getTracks().forEach((a) => a.stop()), g.current = null, T(null);
198
- }, [z]), A = h(async () => {
200
+ e == null || e.getTracks().forEach((n) => n.stop()), g.current = null, T(null);
201
+ }, [z]), M = h(async () => {
199
202
  if (!b) {
200
203
  p({ type: "error", kind: "unsupported" }), i == null || i("unsupported");
201
204
  return;
@@ -206,17 +209,17 @@ const Ne = ae(
206
209
  audio: w ? { deviceId: { exact: w } } : !0
207
210
  });
208
211
  if (B.current || k.current) {
209
- e.getTracks().forEach((n) => n.stop());
212
+ e.getTracks().forEach((a) => a.stop());
210
213
  return;
211
214
  }
212
215
  g.current = e, T(e);
213
- const a = xe(), o = new MediaRecorder(
216
+ const n = xe(), o = new MediaRecorder(
214
217
  e,
215
- a ? { mimeType: a } : void 0
218
+ n ? { mimeType: n } : void 0
216
219
  );
217
- c.current = o, y.current = [], _.current = 0, o.ondataavailable = (n) => {
220
+ c.current = o, y.current = [], _.current = 0, o.ondataavailable = (a) => {
218
221
  var X;
219
- if (n.data && n.data.size > 0 && (y.current.push(n.data), _.current += n.data.size, typeof v == "number" && _.current >= v && ((X = c.current) == null ? void 0 : X.state) === "recording")) {
222
+ if (a.data && a.data.size > 0 && (y.current.push(a.data), _.current += a.data.size, typeof v == "number" && _.current >= v && ((X = c.current) == null ? void 0 : X.state) === "recording")) {
220
223
  i == null || i("max-size");
221
224
  try {
222
225
  c.current.stop();
@@ -225,16 +228,16 @@ const Ne = ae(
225
228
  }
226
229
  }, o.onstop = () => {
227
230
  if (!k.current) {
228
- const n = new Blob(y.current, {
229
- type: a ?? "audio/webm"
231
+ const a = new Blob(y.current, {
232
+ type: n ?? "audio/webm"
230
233
  });
231
- u == null || u(n, V.current);
234
+ u == null || u(a, V.current);
232
235
  }
233
- y.current = [], c.current = null, e.getTracks().forEach((n) => n.stop()), g.current = null, T(null), k.current = !1;
236
+ y.current = [], c.current = null, e.getTracks().forEach((a) => a.stop()), g.current = null, T(null), k.current = !1;
234
237
  }, H.current = performance.now(), o.start(1e3), p({ type: "start" });
235
238
  } catch (e) {
236
- const a = e instanceof Error ? e.name : "";
237
- a === "NotAllowedError" || a === "SecurityError" ? (p({ type: "error", kind: "permission-denied" }), i == null || i("permission-denied")) : a === "NotFoundError" || a === "OverconstrainedError" ? (p({ type: "error", kind: "no-device" }), i == null || i("no-device")) : (p({ type: "error", kind: "capture-failed" }), i == null || i("capture-failed"));
239
+ const n = e instanceof Error ? e.name : "";
240
+ n === "NotAllowedError" || n === "SecurityError" ? (p({ type: "error", kind: "permission-denied" }), i == null || i("permission-denied")) : n === "NotFoundError" || n === "OverconstrainedError" ? (p({ type: "error", kind: "no-device" }), i == null || i("no-device")) : (p({ type: "error", kind: "capture-failed" }), i == null || i("capture-failed"));
238
241
  }
239
242
  }, [i, u, w, b]), re = h(() => {
240
243
  var e;
@@ -245,8 +248,8 @@ const Ne = ae(
245
248
  }, []), q = h(() => {
246
249
  var e;
247
250
  if (t.kind === "recording" || t.kind === "paused") {
248
- const a = t.startedAt, o = t.pausedMs, n = Date.now() - a - o;
249
- V.current = Math.max(0, n), p({ type: "stop", duration: n });
251
+ const n = t.startedAt, o = t.pausedMs, a = Date.now() - n - o;
252
+ V.current = Math.max(0, a), p({ type: "stop", duration: a });
250
253
  }
251
254
  try {
252
255
  (e = c.current) == null || e.stop();
@@ -261,38 +264,38 @@ const Ne = ae(
261
264
  }
262
265
  y.current = [], c.current = null, $(), p({ type: "cancel" }), m == null || m();
263
266
  }, [$, m]);
264
- D(() => {
267
+ N(() => {
265
268
  if (t.kind !== "recording" || typeof f != "number" || f <= 0) return;
266
- const e = performance.now() - H.current - t.pausedMs, a = Math.max(0, f - e), o = window.setTimeout(() => {
267
- var n;
268
- if (((n = c.current) == null ? void 0 : n.state) === "recording") {
269
+ const e = performance.now() - H.current - t.pausedMs, n = Math.max(0, f - e), o = window.setTimeout(() => {
270
+ var a;
271
+ if (((a = c.current) == null ? void 0 : a.state) === "recording") {
269
272
  i == null || i("max-duration");
270
273
  try {
271
274
  c.current.stop();
272
275
  } catch {
273
276
  }
274
277
  }
275
- }, a);
278
+ }, n);
276
279
  return () => window.clearTimeout(o);
277
- }, [t, f, i]), D(() => () => {
278
- var e, a;
280
+ }, [t, f, i]), N(() => () => {
281
+ var e, n;
279
282
  B.current = !0;
280
283
  try {
281
284
  (e = c.current) == null || e.stop();
282
285
  } catch {
283
286
  }
284
- (a = g.current) == null || a.getTracks().forEach((o) => o.stop()), g.current = null;
287
+ (n = g.current) == null || n.getTracks().forEach((o) => o.stop()), g.current = null;
285
288
  }, []);
286
289
  const j = t.kind === "recording" ? Y - t.startedAt - t.pausedMs : t.kind === "paused" ? t.pausedAt - t.startedAt - t.pausedMs : t.kind === "stopped" ? t.duration : 0, P = de(
287
290
  () => ({
288
291
  isRecording: () => t.kind === "recording",
289
292
  getDuration: () => j,
290
293
  hasRecording: () => t.kind === "stopped",
291
- startRecording: () => A(),
294
+ startRecording: () => M(),
292
295
  stopRecording: () => q(),
293
296
  discard: () => K()
294
297
  }),
295
- [t, j, A, q, K]
298
+ [t, j, M, q, K]
296
299
  );
297
300
  ce(Q, () => P, [P]), me(Re, P, I.id);
298
301
  const C = E.map((e) => ({
@@ -313,13 +316,13 @@ const Ne = ae(
313
316
  case "error":
314
317
  return t.type === "permission-denied" ? d("chat.audio.permissionDenied") : t.type === "unsupported" ? d("chat.audio.unsupported") : d("chat.audio.idle");
315
318
  }
316
- })(), M = t.kind === "recording", L = t.kind === "paused", U = t.kind === "error";
319
+ })(), A = t.kind === "recording", L = t.kind === "paused", U = t.kind === "error";
317
320
  return /* @__PURE__ */ R(
318
321
  "div",
319
322
  {
320
323
  "data-component": "audio-recorder",
321
324
  "data-component-id": I.id,
322
- className: Ae({ size: r, className: S }),
325
+ className: Me({ size: r, className: S }),
323
326
  ...I,
324
327
  children: [
325
328
  /* @__PURE__ */ R("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]", children: [
@@ -329,9 +332,9 @@ const Ne = ae(
329
332
  "aria-hidden": "true",
330
333
  className: [
331
334
  "ds:relative ds:inline-flex ds:size-3 ds:items-center ds:justify-center ds:rounded-[var(--radius-full)]",
332
- M ? "ds:bg-[color:var(--destructive)]" : "ds:bg-[color:var(--muted)]"
335
+ A ? "ds:bg-[color:var(--destructive)]" : "ds:bg-[color:var(--muted)]"
333
336
  ].join(" "),
334
- children: M ? /* @__PURE__ */ s(
337
+ children: A ? /* @__PURE__ */ s(
335
338
  "span",
336
339
  {
337
340
  className: [
@@ -359,7 +362,7 @@ const Ne = ae(
359
362
  dir: "ltr",
360
363
  "aria-hidden": "true",
361
364
  className: "ds:tabular-nums type-meta ds:text-[color:var(--muted-foreground)]",
362
- children: De(j, W.language)
365
+ children: Ne(j, W.language)
363
366
  }
364
367
  )
365
368
  ] }),
@@ -371,13 +374,13 @@ const Ne = ae(
371
374
  intent: "primary",
372
375
  size: "sm",
373
376
  startIcon: /* @__PURE__ */ s(fe, {}),
374
- onClick: A,
377
+ onClick: M,
375
378
  disabled: !b,
376
379
  children: d("chat.audio.record")
377
380
  }
378
381
  ) : null,
379
- M ? /* @__PURE__ */ s(
380
- N,
382
+ A ? /* @__PURE__ */ s(
383
+ D,
381
384
  {
382
385
  icon: /* @__PURE__ */ s(ye, {}),
383
386
  "aria-label": d("chat.audio.pause"),
@@ -387,7 +390,7 @@ const Ne = ae(
387
390
  }
388
391
  ) : null,
389
392
  L ? /* @__PURE__ */ s(
390
- N,
393
+ D,
391
394
  {
392
395
  icon: /* @__PURE__ */ s(be, {}),
393
396
  "aria-label": d("chat.audio.resume"),
@@ -396,9 +399,9 @@ const Ne = ae(
396
399
  onClick: ie
397
400
  }
398
401
  ) : null,
399
- M || L ? /* @__PURE__ */ R(se, { children: [
402
+ A || L ? /* @__PURE__ */ R(se, { children: [
400
403
  /* @__PURE__ */ s(
401
- N,
404
+ D,
402
405
  {
403
406
  icon: /* @__PURE__ */ s(ge, {}),
404
407
  "aria-label": d("chat.audio.stop"),
@@ -408,7 +411,7 @@ const Ne = ae(
408
411
  }
409
412
  ),
410
413
  /* @__PURE__ */ s(
411
- N,
414
+ D,
412
415
  {
413
416
  icon: /* @__PURE__ */ s(he, {}),
414
417
  "aria-label": d("chat.audio.cancel"),
@@ -432,16 +435,16 @@ const Ne = ae(
432
435
  ] }),
433
436
  U && t.kind === "error" ? /* @__PURE__ */ R(F, { variant: "error", live: "polite", children: [
434
437
  /* @__PURE__ */ s(F.Description, { children: O }),
435
- t.type === "permission-denied" ? /* @__PURE__ */ s(F.Action, { children: /* @__PURE__ */ s(G, { intent: "ghost", size: "sm", onClick: A, children: d("chat.audio.retry") }) }) : null
438
+ t.type === "permission-denied" ? /* @__PURE__ */ s(F.Action, { children: /* @__PURE__ */ s(G, { intent: "ghost", size: "sm", onClick: M, children: d("chat.audio.retry") }) }) : null
436
439
  ] }) : null
437
440
  ]
438
441
  }
439
442
  );
440
443
  }
441
444
  );
442
- Ne.displayName = "AudioRecorder";
445
+ De.displayName = "AudioRecorder";
443
446
  export {
444
- Ne as A,
447
+ De as A,
445
448
  Re as a
446
449
  };
447
- //# sourceMappingURL=audio-recorder-DjXLP4aF.js.map
450
+ //# sourceMappingURL=audio-recorder-Cpdk5qpQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-recorder-Cpdk5qpQ.js","sources":["../../node_modules/lucide-react/dist/esm/icons/pause.js","../../node_modules/lucide-react/dist/esm/icons/play.js","../../src/components/audio-recorder/audio-recorder.agent.ts","../../src/components/audio-recorder/audio-recorder.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { x: \"14\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"kaeet6\" }],\n [\"rect\", { x: \"5\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"1wsw3u\" }]\n];\nconst Pause = createLucideIcon(\"pause\", __iconNode);\n\nexport { __iconNode, Pause as default };\n//# sourceMappingURL=pause.js.map\n","/**\n * @license lucide-react v1.8.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\",\n key: \"10ikf1\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode);\n\nexport { __iconNode, Play as default };\n//# sourceMappingURL=play.js.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — AudioRecorder. */\n/* */\n/* Multi-step media-capture lifecycle (request → record → stop → submit / */\n/* discard). Exposes `capture` for the start/stop steps and `submit` for */\n/* the final commit via onRecordingComplete. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { AudioRecorderHandle } from './audio-recorder';\n\nexport const audioRecorderAgent: AgentAdapter<AudioRecorderHandle> = {\n id: 'audio-recorder',\n capabilities: ['capture', 'submit'],\n state: {\n isRecording: {\n type: 'boolean',\n descriptionKey: 'ui.agent.audioRecorder.state.isRecording',\n description: 'True while actively capturing audio (not paused).',\n read: (handle) => handle.isRecording(),\n },\n duration: {\n type: 'number',\n descriptionKey: 'ui.agent.audioRecorder.state.duration',\n description:\n 'Elapsed recording time in milliseconds (paused time excluded).',\n read: (handle) => handle.getDuration(),\n },\n hasRecording: {\n type: 'boolean',\n descriptionKey: 'ui.agent.audioRecorder.state.hasRecording',\n description:\n 'True when a completed recording is available for submission.',\n read: (handle) => handle.hasRecording(),\n },\n },\n actions: {\n start_recording: {\n safety: 'write',\n returns: 'void',\n descriptionKey: 'ui.agent.audioRecorder.actions.startRecording',\n description: 'Request microphone permission and begin recording.',\n errors: ['Microphone permission denied', 'No audio input device'],\n invoke: (handle) => handle.startRecording(),\n },\n stop_recording: {\n safety: 'write',\n descriptionKey: 'ui.agent.audioRecorder.actions.stopRecording',\n description: 'Stop the current recording and finalise the blob.',\n invoke: (handle) => {\n handle.stopRecording();\n },\n },\n discard: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.audioRecorder.actions.discard',\n description:\n 'Cancel the recording. Irreversible — the captured audio is dropped.',\n invoke: (handle) => {\n handle.discard();\n },\n },\n submit: {\n safety: 'write',\n descriptionKey: 'ui.agent.audioRecorder.actions.submit',\n description:\n 'Stop the active recording, finalising it via onRecordingComplete.',\n invoke: (handle) => {\n handle.stopRecording();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'audio-recorder',\n description: 'Marks the AudioRecorder 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 useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n type HTMLAttributes,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Mic, Pause, Play, Square, X } from 'lucide-react';\nimport { IconButton, Button } from '../button';\nimport { Select, type SelectOption } from '../select/select';\nimport { AudioVisualiser } from '../audio-visualiser';\nimport { Alert } from '../alert';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { audioRecorderAgent } from './audio-recorder.agent';\n\ntype State =\n | { kind: 'idle' }\n | { kind: 'requesting' }\n | { kind: 'recording'; startedAt: number; pausedMs: number }\n | { kind: 'paused'; startedAt: number; pausedMs: number; pausedAt: number }\n | { kind: 'stopped'; duration: number }\n | {\n kind: 'error';\n type:\n | 'permission-denied'\n | 'no-device'\n | 'unsupported'\n | 'capture-failed';\n };\n\ntype Action =\n | { type: 'request' }\n | { type: 'start' }\n | { type: 'pause' }\n | { type: 'resume' }\n | { type: 'stop'; duration: number }\n | { type: 'cancel' }\n | {\n type: 'error';\n kind:\n | 'permission-denied'\n | 'no-device'\n | 'unsupported'\n | 'capture-failed';\n }\n | { type: 'reset' };\n\nfunction reducer(state: State, action: Action): State {\n switch (action.type) {\n case 'request':\n return { kind: 'requesting' };\n case 'start':\n return { kind: 'recording', startedAt: Date.now(), pausedMs: 0 };\n case 'pause':\n if (state.kind !== 'recording') return state;\n return {\n kind: 'paused',\n startedAt: state.startedAt,\n pausedMs: state.pausedMs,\n pausedAt: Date.now(),\n };\n case 'resume':\n if (state.kind !== 'paused') return state;\n return {\n kind: 'recording',\n startedAt: state.startedAt,\n pausedMs: state.pausedMs + (Date.now() - state.pausedAt),\n };\n case 'stop':\n return { kind: 'stopped', duration: action.duration };\n case 'cancel':\n return { kind: 'idle' };\n case 'error':\n return { kind: 'error', type: action.kind };\n case 'reset':\n return { kind: 'idle' };\n default:\n return state;\n }\n}\n\nconst rootVariants = cva(\n [\n 'ds:inline-flex ds:flex-col ds:items-stretch ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)] ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]',\n 'ds:bg-background',\n ].join(' '),\n {\n variants: {\n size: {\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: { size: 'md' },\n },\n);\n\nconst MIME_PREFERENCES = [\n 'audio/webm;codecs=opus',\n 'audio/webm',\n 'audio/mp4',\n 'audio/ogg;codecs=opus',\n];\n\nfunction pickMimeType(): string | undefined {\n if (typeof MediaRecorder === 'undefined') return undefined;\n for (const mime of MIME_PREFERENCES) {\n if (MediaRecorder.isTypeSupported(mime)) return mime;\n }\n return undefined;\n}\n\nfunction formatTimer(ms: number, locale: string): string {\n const total = Math.max(0, Math.floor(ms / 1000));\n const minutes = Math.floor(total / 60);\n const seconds = total % 60;\n const fmt = (n: number) =>\n new Intl.NumberFormat(locale, { minimumIntegerDigits: 2 }).format(n);\n return `${fmt(minutes)}:${fmt(seconds)}`;\n}\n\n/** Curated imperative handle for agent / external automation. */\nexport interface AudioRecorderHandle {\n isRecording: () => boolean;\n getDuration: () => number;\n hasRecording: () => boolean;\n startRecording: () => Promise<void> | void;\n stopRecording: () => void;\n discard: () => void;\n}\n\nexport interface AudioRecorderProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onError'>,\n VariantProps<typeof rootVariants> {\n /** Called on stop with the final blob + duration in ms. */\n onRecordingComplete?: (blob: Blob, durationMs: number) => void;\n /** Called when recording is cancelled. */\n onCancel?: () => void;\n /** Called when an error occurs. */\n onError?: (\n error:\n | 'permission-denied'\n | 'no-device'\n | 'unsupported'\n | 'capture-failed'\n | 'max-duration'\n | 'max-size',\n ) => void;\n /**\n * Auto-stop after this many milliseconds of active recording. Default\n * 30 minutes. Set `null` to disable.\n */\n maxDurationMs?: number | null;\n /**\n * Auto-stop when the accumulated blob chunks exceed this many bytes.\n * Default 250 MB. Set `null` to disable.\n */\n maxBytes?: number | null;\n}\n\nexport const AudioRecorder = forwardRef<\n AudioRecorderHandle,\n AudioRecorderProps\n>(\n (\n {\n size = 'md',\n onRecordingComplete,\n onCancel,\n onError,\n maxDurationMs = 30 * 60 * 1000,\n maxBytes = 250 * 1024 * 1024,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t, i18n } = useTranslation();\n const [state, dispatch] = useReducer(reducer, { kind: 'idle' });\n const [stream, setStream] = useState<MediaStream | null>(null);\n const [now, setNow] = useState<number>(Date.now());\n const [devices, setDevices] = useState<MediaDeviceInfo[]>([]);\n const [selectedDeviceId, setSelectedDeviceId] = useState<string>('');\n\n const recorderRef = useRef<MediaRecorder | null>(null);\n const chunksRef = useRef<Blob[]>([]);\n // Running total of bytes accumulated in `chunksRef` — reading\n // `chunksRef.current.reduce(...)` on every ondataavailable scales\n // poorly; maintain the sum incrementally instead.\n const byteCountRef = useRef<number>(0);\n const durationAtStopRef = useRef<number>(0);\n // Tracks the *currently-held* MediaStream in a ref so the unmount\n // cleanup effect (which closes over [] deps) sees the latest value.\n // Without this, a unmount while getUserMedia is pending would never\n // stop() tracks and the browser mic indicator stays on.\n const streamRef = useRef<MediaStream | null>(null);\n // Flips to true on unmount; consulted inside the getUserMedia promise\n // resolution so we don't try to setStream() on a dead component and\n // so the freshly-acquired tracks get released immediately.\n const unmountedRef = useRef<boolean>(false);\n // Flips to true when cancel() is called; the onstop handler reads it\n // so `onRecordingComplete` is NOT invoked on a cancel path with a blank\n // blob. Reset on each recording start.\n const cancelledRef = useRef<boolean>(false);\n // Monotonic `performance.now()` start timestamp for the max-duration\n // timer. Wall-clock `Date.now()` jumps on NTP / timezone changes.\n const perfStartRef = useRef<number>(0);\n\n const supported = typeof MediaRecorder !== 'undefined';\n\n /* ── Enumerate devices once (after any prior permission grant) ── */\n useEffect(() => {\n if (!supported || !navigator.mediaDevices?.enumerateDevices) return;\n navigator.mediaDevices\n .enumerateDevices()\n .then((list) => {\n const mics = list.filter((d) => d.kind === 'audioinput');\n setDevices(mics);\n })\n .catch(() => {\n /* ignore */\n });\n }, [supported]);\n\n /* ── Timer tick ── */\n useEffect(() => {\n if (state.kind !== 'recording') return;\n const handle = window.setInterval(() => setNow(Date.now()), 250);\n return () => window.clearInterval(handle);\n }, [state.kind]);\n\n const cleanupStream = useCallback(() => {\n const held = streamRef.current ?? stream;\n held?.getTracks().forEach((t) => t.stop());\n streamRef.current = null;\n setStream(null);\n }, [stream]);\n\n const requestAndStart = useCallback(async () => {\n if (!supported) {\n dispatch({ type: 'error', kind: 'unsupported' });\n onError?.('unsupported');\n return;\n }\n dispatch({ type: 'request' });\n cancelledRef.current = false;\n try {\n const nextStream = await navigator.mediaDevices.getUserMedia({\n audio: selectedDeviceId\n ? { deviceId: { exact: selectedDeviceId } }\n : true,\n });\n // Guard against unmount OR a cancel() between the permission prompt\n // and resolution — otherwise the freshly-acquired tracks leak and the\n // browser's mic indicator stays live, secretly capturing audio.\n if (unmountedRef.current || cancelledRef.current) {\n nextStream.getTracks().forEach((tr) => tr.stop());\n return;\n }\n streamRef.current = nextStream;\n setStream(nextStream);\n const mimeType = pickMimeType();\n const recorder = new MediaRecorder(\n nextStream,\n mimeType ? { mimeType } : undefined,\n );\n recorderRef.current = recorder;\n chunksRef.current = [];\n byteCountRef.current = 0;\n recorder.ondataavailable = (event) => {\n if (event.data && event.data.size > 0) {\n chunksRef.current.push(event.data);\n byteCountRef.current += event.data.size;\n // Byte-cap: auto-stop if the recording would exceed maxBytes.\n // Cheaper than summing on every tick; stop once and bail.\n if (\n typeof maxBytes === 'number' &&\n byteCountRef.current >= maxBytes &&\n recorderRef.current?.state === 'recording'\n ) {\n onError?.('max-size');\n try {\n recorderRef.current.stop();\n } catch {\n /* ignore */\n }\n }\n }\n };\n recorder.onstop = () => {\n // Cancel path: drop the blob on the floor — consumers who called\n // cancel() must not receive a silent empty recording.\n if (!cancelledRef.current) {\n const blob = new Blob(chunksRef.current, {\n type: mimeType ?? 'audio/webm',\n });\n onRecordingComplete?.(blob, durationAtStopRef.current);\n }\n chunksRef.current = [];\n recorderRef.current = null;\n nextStream.getTracks().forEach((tr) => tr.stop());\n streamRef.current = null;\n setStream(null);\n cancelledRef.current = false;\n };\n perfStartRef.current = performance.now();\n recorder.start(1000);\n dispatch({ type: 'start' });\n } catch (err: unknown) {\n const errorName = err instanceof Error ? err.name : '';\n if (errorName === 'NotAllowedError' || errorName === 'SecurityError') {\n dispatch({ type: 'error', kind: 'permission-denied' });\n onError?.('permission-denied');\n } else if (\n errorName === 'NotFoundError' ||\n errorName === 'OverconstrainedError'\n ) {\n dispatch({ type: 'error', kind: 'no-device' });\n onError?.('no-device');\n } else {\n dispatch({ type: 'error', kind: 'capture-failed' });\n onError?.('capture-failed');\n }\n }\n }, [onError, onRecordingComplete, selectedDeviceId, supported]);\n\n const pause = useCallback(() => {\n recorderRef.current?.pause();\n dispatch({ type: 'pause' });\n }, []);\n\n const resume = useCallback(() => {\n recorderRef.current?.resume();\n dispatch({ type: 'resume' });\n }, []);\n\n const stop = useCallback(() => {\n if (state.kind === 'recording' || state.kind === 'paused') {\n const started = state.startedAt;\n const pausedMs = state.pausedMs;\n const duration = Date.now() - started - pausedMs;\n durationAtStopRef.current = Math.max(0, duration);\n dispatch({ type: 'stop', duration: duration });\n }\n try {\n recorderRef.current?.stop();\n } catch {\n /* stop() throws on non-recording state; safe to swallow */\n }\n }, [state]);\n\n const cancel = useCallback(() => {\n // Flip the cancelled flag BEFORE asking MediaRecorder to stop so the\n // async onstop handler sees it and skips onRecordingComplete.\n cancelledRef.current = true;\n try {\n recorderRef.current?.stop();\n } catch {\n /* ignore */\n }\n chunksRef.current = [];\n recorderRef.current = null;\n cleanupStream();\n dispatch({ type: 'cancel' });\n onCancel?.();\n }, [cleanupStream, onCancel]);\n\n /* ── Max-duration auto-stop ── */\n useEffect(() => {\n if (state.kind !== 'recording') return;\n if (typeof maxDurationMs !== 'number' || maxDurationMs <= 0) return;\n // Use the monotonic clock so an NTP / timezone jump mid-recording\n // doesn't skew the remaining-time calc.\n const alreadyElapsed =\n performance.now() - perfStartRef.current - state.pausedMs;\n const remaining = Math.max(0, maxDurationMs - alreadyElapsed);\n const handle = window.setTimeout(() => {\n if (recorderRef.current?.state === 'recording') {\n onError?.('max-duration');\n try {\n recorderRef.current.stop();\n } catch {\n /* ignore */\n }\n }\n }, remaining);\n return () => window.clearTimeout(handle);\n }, [state, maxDurationMs, onError]);\n\n /* ── Unmount cleanup: release mic if still held ── */\n useEffect(() => {\n return () => {\n unmountedRef.current = true;\n try {\n recorderRef.current?.stop();\n } catch {\n /* ignore */\n }\n // Use streamRef so we see a stream that was acquired by an\n // in-flight getUserMedia resolution — not just the one captured\n // by the closure at mount.\n streamRef.current?.getTracks().forEach((tr) => tr.stop());\n streamRef.current = null;\n };\n }, []);\n\n const elapsedMs =\n state.kind === 'recording'\n ? now - state.startedAt - state.pausedMs\n : state.kind === 'paused'\n ? state.pausedAt - state.startedAt - state.pausedMs\n : state.kind === 'stopped'\n ? state.duration\n : 0;\n\n const agentHandle = useMemo<AudioRecorderHandle>(\n () => ({\n isRecording: () => state.kind === 'recording',\n getDuration: () => elapsedMs,\n hasRecording: () => state.kind === 'stopped',\n startRecording: () => requestAndStart(),\n stopRecording: () => stop(),\n discard: () => cancel(),\n }),\n [state, elapsedMs, requestAndStart, stop, cancel],\n );\n useImperativeHandle(ref, () => agentHandle, [agentHandle]);\n useAgentRegistration(audioRecorderAgent, agentHandle, rest.id);\n\n const deviceOptions: SelectOption<string>[] = devices.map((d) => ({\n value: d.deviceId,\n label: d.label || t('chat.audio.selectDevice'),\n }));\n\n const statusText = (() => {\n switch (state.kind) {\n case 'idle':\n return t('chat.audio.idle');\n case 'requesting':\n return t('common.loading');\n case 'recording':\n return t('chat.audio.recording');\n case 'paused':\n return t('chat.audio.paused');\n case 'stopped':\n return t('chat.audio.idle');\n case 'error':\n if (state.type === 'permission-denied')\n return t('chat.audio.permissionDenied');\n if (state.type === 'unsupported') return t('chat.audio.unsupported');\n return t('chat.audio.idle');\n }\n })();\n\n const isRecording = state.kind === 'recording';\n const isPaused = state.kind === 'paused';\n const hasError = state.kind === 'error';\n\n return (\n <div\n data-component=\"audio-recorder\"\n data-component-id={rest.id}\n className={rootVariants({ size, className })}\n {...rest}\n >\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span\n aria-hidden=\"true\"\n className={[\n 'ds:relative ds:inline-flex ds:size-3 ds:items-center ds:justify-center ds:rounded-[var(--radius-full)]',\n isRecording\n ? 'ds:bg-[color:var(--destructive)]'\n : 'ds:bg-[color:var(--muted)]',\n ].join(' ')}\n >\n {isRecording ? (\n <span\n className={[\n 'ds:absolute ds:inset-0 ds:rounded-[var(--radius-full)]',\n 'ds:bg-[color:var(--destructive)]',\n 'ds:motion-safe:animate-[recorder-pulse_1.2s_ease-out_infinite]',\n 'ds:[.theme-accessible_&]:animate-none',\n ].join(' ')}\n />\n ) : null}\n </span>\n <AudioVisualiser\n stream={stream}\n size=\"sm\"\n aria-hidden=\"true\"\n className=\"ds:flex-1\"\n />\n <time\n dir=\"ltr\"\n aria-hidden=\"true\"\n className=\"ds:tabular-nums type-meta ds:text-[color:var(--muted-foreground)]\"\n >\n {formatTimer(elapsedMs, i18n.language)}\n </time>\n </div>\n\n <span role=\"status\" aria-live=\"polite\" className=\"ds:sr-only\">\n {statusText}\n </span>\n\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {state.kind === 'idle' || state.kind === 'stopped' || hasError ? (\n <Button\n intent=\"primary\"\n size=\"sm\"\n startIcon={<Mic />}\n onClick={requestAndStart}\n disabled={!supported}\n >\n {t('chat.audio.record')}\n </Button>\n ) : null}\n {isRecording ? (\n <IconButton\n icon={<Pause />}\n aria-label={t('chat.audio.pause')}\n intent=\"secondary\"\n size=\"sm\"\n onClick={pause}\n />\n ) : null}\n {isPaused ? (\n <IconButton\n icon={<Play />}\n aria-label={t('chat.audio.resume')}\n intent=\"secondary\"\n size=\"sm\"\n onClick={resume}\n />\n ) : null}\n {isRecording || isPaused ? (\n <>\n <IconButton\n icon={<Square />}\n aria-label={t('chat.audio.stop')}\n intent=\"primary\"\n size=\"sm\"\n onClick={stop}\n />\n <IconButton\n icon={<X />}\n aria-label={t('chat.audio.cancel')}\n intent=\"ghost\"\n size=\"sm\"\n onClick={cancel}\n />\n </>\n ) : null}\n {state.kind === 'idle' && deviceOptions.length > 1 ? (\n <div className=\"ds:ms-auto ds:min-w-[160px]\">\n <Select\n aria-label={t('chat.audio.selectDevice')}\n options={deviceOptions}\n value={selectedDeviceId}\n onValueChange={(v) => setSelectedDeviceId(v)}\n size=\"sm\"\n clearable\n />\n </div>\n ) : null}\n </div>\n\n {hasError && state.kind === 'error' ? (\n <Alert variant=\"error\" live=\"polite\">\n <Alert.Description>{statusText}</Alert.Description>\n {state.type === 'permission-denied' ? (\n <Alert.Action>\n <Button intent=\"ghost\" size=\"sm\" onClick={requestAndStart}>\n {t('chat.audio.retry')}\n </Button>\n </Alert.Action>\n ) : null}\n </Alert>\n ) : null}\n </div>\n );\n },\n);\n\nAudioRecorder.displayName = 'AudioRecorder';\n"],"names":["__iconNode","Pause","createLucideIcon","Play","audioRecorderAgent","handle","reducer","state","action","rootVariants","cva","MIME_PREFERENCES","pickMimeType","mime","formatTimer","ms","locale","total","minutes","seconds","fmt","n","AudioRecorder","forwardRef","size","onRecordingComplete","onCancel","onError","maxDurationMs","maxBytes","className","rest","ref","t","i18n","useTranslation","dispatch","useReducer","stream","setStream","useState","now","setNow","devices","setDevices","selectedDeviceId","setSelectedDeviceId","recorderRef","useRef","chunksRef","byteCountRef","durationAtStopRef","streamRef","unmountedRef","cancelledRef","perfStartRef","supported","useEffect","_a","list","mics","d","cleanupStream","useCallback","held","requestAndStart","nextStream","tr","mimeType","recorder","event","blob","err","errorName","pause","resume","stop","started","pausedMs","duration","cancel","alreadyElapsed","remaining","_b","elapsedMs","agentHandle","useMemo","useImperativeHandle","useAgentRegistration","deviceOptions","statusText","isRecording","isPaused","hasError","jsxs","jsx","AudioVisualiser","Button","Mic","IconButton","Fragment","Square","X","Select","v","Alert"],"mappings":"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","x_google_ignoreList":[0,1]}