@alfadocs/ui-kit-debug 0.69.0 → 0.71.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 (788) hide show
  1. package/dist/_chunks/address-fields-CPbFJ8e8.js +246 -0
  2. package/dist/_chunks/address-fields-CPbFJ8e8.js.map +1 -0
  3. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  4. package/dist/_chunks/{agenda-card-BxSFkqgY.js.map → agenda-card-BQ-IKAru.js.map} +1 -1
  5. package/dist/_chunks/{agenda-tray-g0kg7HwB.js → agenda-tray-CGXRk58j.js} +2 -2
  6. package/dist/_chunks/{agenda-tray-g0kg7HwB.js.map → agenda-tray-CGXRk58j.js.map} +1 -1
  7. package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js → ai-consent-banner-Be-h9mRI.js} +3 -3
  8. package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js.map → ai-consent-banner-Be-h9mRI.js.map} +1 -1
  9. package/dist/_chunks/{ai-prompt-input-CuhTo9mh.js → ai-prompt-input-V4DdOeqv.js} +2 -2
  10. package/dist/_chunks/{ai-prompt-input-CuhTo9mh.js.map → ai-prompt-input-V4DdOeqv.js.map} +1 -1
  11. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  12. package/dist/_chunks/alert-CHYZ96tR.js.map +1 -0
  13. package/dist/_chunks/{alia-sidebar-B47qRQb5.js → alia-sidebar-DvIUzIX9.js} +107 -106
  14. package/dist/_chunks/alia-sidebar-DvIUzIX9.js.map +1 -0
  15. package/dist/_chunks/{anamnesis-card-DRmE24OQ.js → anamnesis-card-DvYCa16e.js} +2 -2
  16. package/dist/_chunks/{anamnesis-card-DRmE24OQ.js.map → anamnesis-card-DvYCa16e.js.map} +1 -1
  17. package/dist/_chunks/anatomy-scheme-CXSk11UJ.js +2445 -0
  18. package/dist/_chunks/anatomy-scheme-CXSk11UJ.js.map +1 -0
  19. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  20. package/dist/_chunks/annotation-marker-qt5R9WZX.js.map +1 -0
  21. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  22. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js.map → antenatal-schedule-timeline-CwXrQRm1.js.map} +1 -1
  23. package/dist/_chunks/{app-frame-BYx1gcV7.js → app-frame-DIEMIC5V.js} +67 -56
  24. package/dist/_chunks/app-frame-DIEMIC5V.js.map +1 -0
  25. package/dist/_chunks/appointment-card-DVaeJNVB.js +294 -0
  26. package/dist/_chunks/appointment-card-DVaeJNVB.js.map +1 -0
  27. package/dist/_chunks/appointment-timeline-PJgnrjFb.js +388 -0
  28. package/dist/_chunks/appointment-timeline-PJgnrjFb.js.map +1 -0
  29. package/dist/_chunks/appointment-tray-B16QPGbm.js +193 -0
  30. package/dist/_chunks/appointment-tray-B16QPGbm.js.map +1 -0
  31. package/dist/_chunks/{audio-recorder-DYXXnGug.js → audio-recorder-DNDsOLqO.js} +3 -3
  32. package/dist/_chunks/{audio-recorder-DYXXnGug.js.map → audio-recorder-DNDsOLqO.js.map} +1 -1
  33. package/dist/_chunks/{autocomplete-DOeGouCL.js → autocomplete-BrONKN8l.js} +168 -146
  34. package/dist/_chunks/autocomplete-BrONKN8l.js.map +1 -0
  35. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  36. package/dist/_chunks/badge-DCOqV9mI.js.map +1 -0
  37. package/dist/_chunks/{bishop-score-PJI3AXzA.js → bishop-score-Cym_TeQY.js} +3 -3
  38. package/dist/_chunks/{bishop-score-PJI3AXzA.js.map → bishop-score-Cym_TeQY.js.map} +1 -1
  39. package/dist/_chunks/{bmi-calculator-BZtIJ53x.js → bmi-calculator-zjeY4E7J.js} +2 -2
  40. package/dist/_chunks/{bmi-calculator-BZtIJ53x.js.map → bmi-calculator-zjeY4E7J.js.map} +1 -1
  41. package/dist/_chunks/{booking-C3VqFReX.js → booking-C7do4vaR.js} +7 -7
  42. package/dist/_chunks/{booking-C3VqFReX.js.map → booking-C7do4vaR.js.map} +1 -1
  43. package/dist/_chunks/{button-group-Ciq6J4IW.js → button-group-CvEnVzY7.js} +32 -35
  44. package/dist/_chunks/{button-group-Ciq6J4IW.js.map → button-group-CvEnVzY7.js.map} +1 -1
  45. package/dist/_chunks/{care-plan-card-CvFGXa2z.js → care-plan-card-DzPDYgtK.js} +5 -5
  46. package/dist/_chunks/{care-plan-card-CvFGXa2z.js.map → care-plan-card-DzPDYgtK.js.map} +1 -1
  47. package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js → care-plan-entry-card-CEnQy7YP.js} +5 -5
  48. package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js.map → care-plan-entry-card-CEnQy7YP.js.map} +1 -1
  49. package/dist/_chunks/care-plan-header-DcXFXWit.js +198 -0
  50. package/dist/_chunks/care-plan-header-DcXFXWit.js.map +1 -0
  51. package/dist/_chunks/{chat-message-3V54YipB.js → chat-message-DzpcJR-q.js} +25 -23
  52. package/dist/_chunks/chat-message-DzpcJR-q.js.map +1 -0
  53. package/dist/_chunks/city-input-Dkgaak7I.js +169 -0
  54. package/dist/_chunks/city-input-Dkgaak7I.js.map +1 -0
  55. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  56. package/dist/_chunks/clinical-note-card-BUvNMNGL.js.map +1 -0
  57. package/dist/_chunks/clipboard-list-S7s-MXQq.js +25 -0
  58. package/dist/_chunks/clipboard-list-S7s-MXQq.js.map +1 -0
  59. package/dist/_chunks/{combobox-Clum7gJ1.js → combobox-DnqSF0IH.js} +131 -114
  60. package/dist/_chunks/combobox-DnqSF0IH.js.map +1 -0
  61. package/dist/_chunks/connection-status-CY1HV8Wg.js +108 -0
  62. package/dist/_chunks/connection-status-CY1HV8Wg.js.map +1 -0
  63. package/dist/_chunks/{contact-profile-card-Dramqa9C.js → contact-profile-card-DDPwRFiP.js} +2 -2
  64. package/dist/_chunks/{contact-profile-card-Dramqa9C.js.map → contact-profile-card-DDPwRFiP.js.map} +1 -1
  65. package/dist/_chunks/control-room-rail-FAQZrGVL.js +333 -0
  66. package/dist/_chunks/control-room-rail-FAQZrGVL.js.map +1 -0
  67. package/dist/_chunks/country-select-BwUZQvTa.js +709 -0
  68. package/dist/_chunks/country-select-BwUZQvTa.js.map +1 -0
  69. package/dist/_chunks/{cycle-calculator-DmRGJNaT.js → cycle-calculator-CCmPwcBl.js} +2 -2
  70. package/dist/_chunks/{cycle-calculator-DmRGJNaT.js.map → cycle-calculator-CCmPwcBl.js.map} +1 -1
  71. package/dist/_chunks/{dependent-selector-CG_FOHya.js → dependent-selector-DUV4thxX.js} +2 -2
  72. package/dist/_chunks/{dependent-selector-CG_FOHya.js.map → dependent-selector-DUV4thxX.js.map} +1 -1
  73. package/dist/_chunks/{document-scanner-CTubA0-N.js → document-scanner-C_AxLooF.js} +3 -3
  74. package/dist/_chunks/{document-scanner-CTubA0-N.js.map → document-scanner-C_AxLooF.js.map} +1 -1
  75. package/dist/_chunks/{due-date-calculator-BTmsIQqD.js → due-date-calculator-Brdj-euS.js} +3 -3
  76. package/dist/_chunks/{due-date-calculator-BTmsIQqD.js.map → due-date-calculator-Brdj-euS.js.map} +1 -1
  77. package/dist/_chunks/editable-currency-cell-renderer-CGELrkIj.js +410 -0
  78. package/dist/_chunks/editable-currency-cell-renderer-CGELrkIj.js.map +1 -0
  79. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  80. package/dist/_chunks/{email-input-B_Y55f5G.js.map → email-input-DJ7EXklP.js.map} +1 -1
  81. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-DmrgYSEX.js} +38 -20
  82. package/dist/_chunks/{entity-card-COhmqHly.js.map → entity-card-DmrgYSEX.js.map} +1 -1
  83. package/dist/_chunks/entity-summary-CaM1Y-xE.js +291 -0
  84. package/dist/_chunks/entity-summary-CaM1Y-xE.js.map +1 -0
  85. package/dist/_chunks/{fetal-weight-CRz7KE2D.js → fetal-weight-DNCkyeVo.js} +2 -2
  86. package/dist/_chunks/{fetal-weight-CRz7KE2D.js.map → fetal-weight-DNCkyeVo.js.map} +1 -1
  87. package/dist/_chunks/field-array-siUZzfYe.js +146 -0
  88. package/dist/_chunks/field-array-siUZzfYe.js.map +1 -0
  89. package/dist/_chunks/field-value-3jMM0uDx.js +415 -0
  90. package/dist/_chunks/field-value-3jMM0uDx.js.map +1 -0
  91. package/dist/_chunks/{file-upload-5ScQd4fE.js → file-upload-DwZcAK8D.js} +2 -1
  92. package/dist/_chunks/{file-upload-5ScQd4fE.js.map → file-upload-DwZcAK8D.js.map} +1 -1
  93. package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js → freemium-paywall-WYlNO7yT.js} +2 -2
  94. package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js.map → freemium-paywall-WYlNO7yT.js.map} +1 -1
  95. package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js → gestational-age-calculator-DKzEV5Qi.js} +4 -4
  96. package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js.map → gestational-age-calculator-DKzEV5Qi.js.map} +1 -1
  97. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  98. package/dist/_chunks/hash-CysBBS_N.js.map +1 -0
  99. package/dist/_chunks/{hcg-doubling-CnjDXX6U.js → hcg-doubling-C7bmuaU3.js} +2 -2
  100. package/dist/_chunks/{hcg-doubling-CnjDXX6U.js.map → hcg-doubling-C7bmuaU3.js.map} +1 -1
  101. package/dist/_chunks/iban-input-B0TWzR1R.js +436 -0
  102. package/dist/_chunks/iban-input-B0TWzR1R.js.map +1 -0
  103. package/dist/_chunks/icon-picker-0B7KhrF1.js +272 -0
  104. package/dist/_chunks/icon-picker-0B7KhrF1.js.map +1 -0
  105. package/dist/_chunks/image-cropper-D9jqJy19.js +367 -0
  106. package/dist/_chunks/image-cropper-D9jqJy19.js.map +1 -0
  107. package/dist/_chunks/{actions-cell-renderer-DrcaxB0w.js → link-cell-renderer-De_SLjSq.js} +792 -668
  108. package/dist/_chunks/link-cell-renderer-De_SLjSq.js.map +1 -0
  109. package/dist/_chunks/list-checks-BUs75d_o.js +18 -0
  110. package/dist/_chunks/list-checks-BUs75d_o.js.map +1 -0
  111. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  112. package/dist/_chunks/lock-CKOIn0IK.js.map +1 -0
  113. package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js → marketplace-app-shell-BGqkywsi.js} +5 -5
  114. package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js.map → marketplace-app-shell-BGqkywsi.js.map} +1 -1
  115. package/dist/_chunks/message-card-DsHFFiL1.js +319 -0
  116. package/dist/_chunks/message-card-DsHFFiL1.js.map +1 -0
  117. package/dist/_chunks/{message-tray-DwrBLJlf.js → message-tray-C0a6CL1_.js} +172 -135
  118. package/dist/_chunks/message-tray-C0a6CL1_.js.map +1 -0
  119. package/dist/_chunks/{multi-select-BdHHDrRN.js → multi-select-WE4S9FIF.js} +75 -63
  120. package/dist/_chunks/{multi-select-BdHHDrRN.js.map → multi-select-WE4S9FIF.js.map} +1 -1
  121. package/dist/_chunks/nav-grid-9xphY3FM.js +169 -0
  122. package/dist/_chunks/nav-grid-9xphY3FM.js.map +1 -0
  123. package/dist/_chunks/notes-panel-DXiMfuvp.js +320 -0
  124. package/dist/_chunks/notes-panel-DXiMfuvp.js.map +1 -0
  125. package/dist/_chunks/notification-card-BMqNzCIt.js +290 -0
  126. package/dist/_chunks/notification-card-BMqNzCIt.js.map +1 -0
  127. package/dist/_chunks/{notification-tray-Btb9oQeZ.js → notification-tray-BmUlCx3g.js} +201 -166
  128. package/dist/_chunks/notification-tray-BmUlCx3g.js.map +1 -0
  129. package/dist/_chunks/{operator-hero-CP2Nhupm.js → operator-hero-BO8TqzX2.js} +3 -3
  130. package/dist/_chunks/{operator-hero-CP2Nhupm.js.map → operator-hero-BO8TqzX2.js.map} +1 -1
  131. package/dist/_chunks/panel-header-D313n_9-.js +105 -0
  132. package/dist/_chunks/panel-header-D313n_9-.js.map +1 -0
  133. package/dist/_chunks/patient-details-DgfTJimE.js +759 -0
  134. package/dist/_chunks/patient-details-DgfTJimE.js.map +1 -0
  135. package/dist/_chunks/{patient-search-CBC_ySF6.js → patient-search-CSWQKOSP.js} +3 -3
  136. package/dist/_chunks/{patient-search-CBC_ySF6.js.map → patient-search-CSWQKOSP.js.map} +1 -1
  137. package/dist/_chunks/{patient-shell-DV3XEtIB.js → patient-shell-BMwsIKlW.js} +3 -3
  138. package/dist/_chunks/{patient-shell-DV3XEtIB.js.map → patient-shell-BMwsIKlW.js.map} +1 -1
  139. package/dist/_chunks/patient-summary-card-D4NdgYJB.js +452 -0
  140. package/dist/_chunks/patient-summary-card-D4NdgYJB.js.map +1 -0
  141. package/dist/_chunks/patient-table-CERknpd8.js +1110 -0
  142. package/dist/_chunks/patient-table-CERknpd8.js.map +1 -0
  143. package/dist/_chunks/{payment-form-DvjwYVIT.js → payment-form-CxqIXqw7.js} +2 -2
  144. package/dist/_chunks/{payment-form-DvjwYVIT.js.map → payment-form-CxqIXqw7.js.map} +1 -1
  145. package/dist/_chunks/{payment-request-card-DioWKBUq.js → payment-request-card-Blf-MFNY.js} +125 -136
  146. package/dist/_chunks/payment-request-card-Blf-MFNY.js.map +1 -0
  147. package/dist/_chunks/{pdf-viewer-D6BPfW2D.js → pdf-viewer-QfebdLOd.js} +192 -214
  148. package/dist/_chunks/pdf-viewer-QfebdLOd.js.map +1 -0
  149. package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js → periodontal-chart-card-hRRJY1NN.js} +2 -2
  150. package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js.map → periodontal-chart-card-hRRJY1NN.js.map} +1 -1
  151. package/dist/_chunks/permission-matrix-Bw5oexUt.js +174 -0
  152. package/dist/_chunks/permission-matrix-Bw5oexUt.js.map +1 -0
  153. package/dist/_chunks/position-grid-CcvqHaKN.js +169 -0
  154. package/dist/_chunks/position-grid-CcvqHaKN.js.map +1 -0
  155. package/dist/_chunks/postal-code-input-UCOYuRY2.js +192 -0
  156. package/dist/_chunks/postal-code-input-UCOYuRY2.js.map +1 -0
  157. package/dist/_chunks/{practice-results-KrTHqZua.js → practice-results-El5Z-oVp.js} +4 -4
  158. package/dist/_chunks/{practice-results-KrTHqZua.js.map → practice-results-El5Z-oVp.js.map} +1 -1
  159. package/dist/_chunks/{pregnancy-dating-DORUAOHB.js → pregnancy-dating-CunHrOpO.js} +4 -4
  160. package/dist/_chunks/{pregnancy-dating-DORUAOHB.js.map → pregnancy-dating-CunHrOpO.js.map} +1 -1
  161. package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js → pregnancy-weight-gain-BUNpTsH-.js} +2 -2
  162. package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js.map → pregnancy-weight-gain-BUNpTsH-.js.map} +1 -1
  163. package/dist/_chunks/{product-hub-panel-e6pW220e.js → product-hub-panel-DtU7KXxm.js} +257 -217
  164. package/dist/_chunks/product-hub-panel-DtU7KXxm.js.map +1 -0
  165. package/dist/_chunks/province-select-D_TZvix3.js +261 -0
  166. package/dist/_chunks/province-select-D_TZvix3.js.map +1 -0
  167. package/dist/_chunks/{public-header.agent-DqkqA-ca.js → public-header.agent-TxmC_x1I.js} +2 -2
  168. package/dist/_chunks/{public-header.agent-DqkqA-ca.js.map → public-header.agent-TxmC_x1I.js.map} +1 -1
  169. package/dist/_chunks/radiograph-panel.agent-tWjN2nHX.js +553 -0
  170. package/dist/_chunks/radiograph-panel.agent-tWjN2nHX.js.map +1 -0
  171. package/dist/_chunks/reviews-panel-DxkSrgMl.js +559 -0
  172. package/dist/_chunks/reviews-panel-DxkSrgMl.js.map +1 -0
  173. package/dist/_chunks/rich-text-editor-C8tyGjfb.js +2621 -0
  174. package/dist/_chunks/rich-text-editor-C8tyGjfb.js.map +1 -0
  175. package/dist/_chunks/{scroll-area-5wNK0Cyz.js → scroll-area-BZOvUhwQ.js} +2 -2
  176. package/dist/_chunks/scroll-area-BZOvUhwQ.js.map +1 -0
  177. package/dist/_chunks/{select-DMLG44F5.js → select-KsyRr8WH.js} +114 -102
  178. package/dist/_chunks/select-KsyRr8WH.js.map +1 -0
  179. package/dist/_chunks/{sheet-BxsE7eQm.js → sheet-umkfZjF6.js} +53 -42
  180. package/dist/_chunks/sheet-umkfZjF6.js.map +1 -0
  181. package/dist/_chunks/{sidebar-DY9jGjgt.js → sidebar-QCp9wHNP.js} +125 -113
  182. package/dist/_chunks/sidebar-QCp9wHNP.js.map +1 -0
  183. package/dist/_chunks/{sign-document-B4DeRhTe.js → sign-document-By6hMOra.js} +2 -2
  184. package/dist/_chunks/{sign-document-B4DeRhTe.js.map → sign-document-By6hMOra.js.map} +1 -1
  185. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  186. package/dist/_chunks/stepper-accordion-DC-H-8v4.js.map +1 -0
  187. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  188. package/dist/_chunks/tab-bar-Bv9nGNdO.js.map +1 -0
  189. package/dist/_chunks/{tabs-BxcOziCo.js → tabs-CYZVKKDl.js} +2 -2
  190. package/dist/_chunks/{tabs-BxcOziCo.js.map → tabs-CYZVKKDl.js.map} +1 -1
  191. package/dist/_chunks/task-card-DCdsI0ZT.js +189 -0
  192. package/dist/_chunks/task-card-DCdsI0ZT.js.map +1 -0
  193. package/dist/_chunks/{task-tray-qOEQflu4.js → task-tray-DNVejijD.js} +2 -2
  194. package/dist/_chunks/{task-tray-qOEQflu4.js.map → task-tray-DNVejijD.js.map} +1 -1
  195. package/dist/_chunks/tasks-panel-C9odmawT.js +757 -0
  196. package/dist/_chunks/tasks-panel-C9odmawT.js.map +1 -0
  197. package/dist/_chunks/token-insert-menu-CFQqTe_n.js +147 -0
  198. package/dist/_chunks/token-insert-menu-CFQqTe_n.js.map +1 -0
  199. package/dist/_chunks/tool-rail-BZx0-yIr.js +524 -0
  200. package/dist/_chunks/tool-rail-BZx0-yIr.js.map +1 -0
  201. package/dist/_chunks/tooth-scheme-DJZtzfeY.js +2133 -0
  202. package/dist/_chunks/tooth-scheme-DJZtzfeY.js.map +1 -0
  203. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  204. package/dist/_chunks/transaction-chip-CscoQbxF.js.map +1 -0
  205. package/dist/_chunks/{transcript-panel-3THQX6nJ.js → transcript-panel-CHGHHHdT.js} +95 -83
  206. package/dist/_chunks/transcript-panel-CHGHHHdT.js.map +1 -0
  207. package/dist/_chunks/{unit-converter-YEpD9evj.js → unit-converter-CwlZbfdn.js} +2 -2
  208. package/dist/_chunks/{unit-converter-YEpD9evj.js.map → unit-converter-CwlZbfdn.js.map} +1 -1
  209. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  210. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js.map +1 -0
  211. package/dist/_chunks/use-edge-resize-ZnGG7gyO.js.map +1 -1
  212. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  213. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js.map +1 -0
  214. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  215. package/dist/_chunks/use-persistent-state-nZwZAnE9.js.map +1 -0
  216. package/dist/_chunks/{warning-stack-BsgaEbL8.js → warning-stack--sTrrBDA.js} +86 -101
  217. package/dist/_chunks/warning-stack--sTrrBDA.js.map +1 -0
  218. package/dist/_chunks/{workflow-map-Bdam9pGp.js → workflow-map-M8MBBHQm.js} +107 -119
  219. package/dist/_chunks/workflow-map-M8MBBHQm.js.map +1 -0
  220. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  221. package/dist/_chunks/zoom-out-CgVtf2Wx.js.map +1 -0
  222. package/dist/agent/index.js +5 -4
  223. package/dist/agent/index.js.map +1 -1
  224. package/dist/agent/types.d.ts +19 -2
  225. package/dist/agent/types.d.ts.map +1 -1
  226. package/dist/agent-catalog.json +3325 -322
  227. package/dist/agent-i18n/en.json +314 -14
  228. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  229. package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -1
  230. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  231. package/dist/components/_shared/entity-card/index.d.ts.map +1 -1
  232. package/dist/components/_shared/field-value.d.ts +21 -0
  233. package/dist/components/_shared/field-value.d.ts.map +1 -0
  234. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  235. package/dist/components/_shared/field-visibility-cog.d.ts.map +1 -0
  236. package/dist/components/_shared/field-visibility.d.ts +36 -0
  237. package/dist/components/_shared/field-visibility.d.ts.map +1 -0
  238. package/dist/components/_shared/option.d.ts +2 -0
  239. package/dist/components/_shared/option.d.ts.map +1 -1
  240. package/dist/components/_shared/patient-fields.d.ts +119 -0
  241. package/dist/components/_shared/patient-fields.d.ts.map +1 -0
  242. package/dist/components/address-fields/address-fields.agent.d.ts +9 -0
  243. package/dist/components/address-fields/address-fields.agent.d.ts.map +1 -0
  244. package/dist/components/address-fields/address-fields.d.ts +29 -0
  245. package/dist/components/address-fields/address-fields.d.ts.map +1 -0
  246. package/dist/components/address-fields/index.d.ts +5 -0
  247. package/dist/components/address-fields/index.d.ts.map +1 -0
  248. package/dist/components/address-fields/index.js +6 -0
  249. package/dist/components/agenda-card/index.js +1 -1
  250. package/dist/components/agenda-tray/index.js +1 -1
  251. package/dist/components/ai-consent-banner/index.js +1 -1
  252. package/dist/components/ai-prompt-input/index.js +1 -1
  253. package/dist/components/alert/alert.d.ts +5 -0
  254. package/dist/components/alert/alert.d.ts.map +1 -1
  255. package/dist/components/alert/index.js +1 -1
  256. package/dist/components/anamnesis-card/index.js +1 -1
  257. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  258. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts.map +1 -0
  259. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  260. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts.map +1 -0
  261. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  262. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts.map +1 -0
  263. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  264. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts.map +1 -0
  265. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  266. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts.map +1 -0
  267. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  268. package/dist/components/anatomy-scheme/index.d.ts.map +1 -0
  269. package/dist/components/anatomy-scheme/index.js +17 -0
  270. package/dist/components/anatomy-scheme/index.js.map +1 -0
  271. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  272. package/dist/components/annotation-marker/annotation-marker.d.ts.map +1 -0
  273. package/dist/components/annotation-marker/index.d.ts +3 -0
  274. package/dist/components/annotation-marker/index.d.ts.map +1 -0
  275. package/dist/components/annotation-marker/index.js +7 -0
  276. package/dist/components/annotation-marker/index.js.map +1 -0
  277. package/dist/components/app-frame/app-frame.d.ts +2 -2
  278. package/dist/components/app-frame/app-frame.d.ts.map +1 -1
  279. package/dist/components/app-frame/index.js +1 -1
  280. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  281. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  282. package/dist/components/appointment-card/index.js +6 -5
  283. package/dist/components/appointment-card/index.js.map +1 -1
  284. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  285. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts.map +1 -0
  286. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  287. package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -0
  288. package/dist/components/appointment-timeline/index.d.ts +4 -0
  289. package/dist/components/appointment-timeline/index.d.ts.map +1 -0
  290. package/dist/components/appointment-timeline/index.js +6 -0
  291. package/dist/components/appointment-timeline/index.js.map +1 -0
  292. package/dist/components/audio-recorder/index.js +1 -1
  293. package/dist/components/autocomplete/autocomplete.d.ts +10 -0
  294. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  295. package/dist/components/autocomplete/index.js +1 -1
  296. package/dist/components/badge/badge.d.ts +6 -2
  297. package/dist/components/badge/badge.d.ts.map +1 -1
  298. package/dist/components/badge/index.js +1 -1
  299. package/dist/components/bishop-score/index.js +1 -1
  300. package/dist/components/bmi-calculator/index.js +1 -1
  301. package/dist/components/booking/index.js +1 -1
  302. package/dist/components/button-group/button-group.d.ts.map +1 -1
  303. package/dist/components/button-group/index.js +1 -1
  304. package/dist/components/care-plan-card/index.js +1 -1
  305. package/dist/components/care-plan-entry-card/index.js +1 -1
  306. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  307. package/dist/components/care-plan-header/care-plan-header.agent.d.ts.map +1 -0
  308. package/dist/components/care-plan-header/care-plan-header.d.ts +111 -0
  309. package/dist/components/care-plan-header/care-plan-header.d.ts.map +1 -0
  310. package/dist/components/care-plan-header/index.d.ts +4 -0
  311. package/dist/components/care-plan-header/index.d.ts.map +1 -0
  312. package/dist/components/care-plan-header/index.js +6 -0
  313. package/dist/components/care-plan-header/index.js.map +1 -0
  314. package/dist/components/chat-message/chat-message.d.ts.map +1 -1
  315. package/dist/components/chat-message/index.js +1 -1
  316. package/dist/components/city-input/city-input.agent.d.ts +8 -0
  317. package/dist/components/city-input/city-input.agent.d.ts.map +1 -0
  318. package/dist/components/city-input/city-input.d.ts +57 -0
  319. package/dist/components/city-input/city-input.d.ts.map +1 -0
  320. package/dist/components/city-input/index.d.ts +5 -0
  321. package/dist/components/city-input/index.d.ts.map +1 -0
  322. package/dist/components/city-input/index.js +6 -0
  323. package/dist/components/city-input/index.js.map +1 -0
  324. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  325. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
  326. package/dist/components/clinical-note-card/index.js +1 -1
  327. package/dist/components/combobox/combobox.d.ts +17 -0
  328. package/dist/components/combobox/combobox.d.ts.map +1 -1
  329. package/dist/components/combobox/index.js +1 -1
  330. package/dist/components/connection-status/connection-status.agent.d.ts +4 -0
  331. package/dist/components/connection-status/connection-status.agent.d.ts.map +1 -0
  332. package/dist/components/connection-status/connection-status.d.ts +36 -0
  333. package/dist/components/connection-status/connection-status.d.ts.map +1 -0
  334. package/dist/components/connection-status/index.d.ts +4 -0
  335. package/dist/components/connection-status/index.d.ts.map +1 -0
  336. package/dist/components/connection-status/index.js +6 -0
  337. package/dist/components/connection-status/index.js.map +1 -0
  338. package/dist/components/contact-profile-card/index.js +1 -1
  339. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  340. package/dist/components/control-room-rail/control-room-context.d.ts.map +1 -0
  341. package/dist/components/control-room-rail/control-room-rail.agent.d.ts +4 -0
  342. package/dist/components/control-room-rail/control-room-rail.agent.d.ts.map +1 -0
  343. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  344. package/dist/components/control-room-rail/control-room-rail.d.ts.map +1 -0
  345. package/dist/components/control-room-rail/index.d.ts +6 -0
  346. package/dist/components/control-room-rail/index.d.ts.map +1 -0
  347. package/dist/components/control-room-rail/index.js +10 -0
  348. package/dist/components/control-room-rail/index.js.map +1 -0
  349. package/dist/components/counter/counter.d.ts +1 -1
  350. package/dist/components/country-select/country-select.agent.d.ts +8 -0
  351. package/dist/components/country-select/country-select.agent.d.ts.map +1 -0
  352. package/dist/components/country-select/country-select.d.ts +51 -0
  353. package/dist/components/country-select/country-select.d.ts.map +1 -0
  354. package/dist/components/country-select/index.d.ts +6 -0
  355. package/dist/components/country-select/index.d.ts.map +1 -0
  356. package/dist/components/country-select/index.js +9 -0
  357. package/dist/components/country-select/index.js.map +1 -0
  358. package/dist/components/country-select/iso-3166.d.ts +15 -0
  359. package/dist/components/country-select/iso-3166.d.ts.map +1 -0
  360. package/dist/components/cycle-calculator/index.js +1 -1
  361. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  362. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -1
  363. package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts +34 -0
  364. package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts.map +1 -0
  365. package/dist/components/data-table/filters/select-filter.d.ts.map +1 -1
  366. package/dist/components/data-table/index.d.ts +3 -1
  367. package/dist/components/data-table/index.d.ts.map +1 -1
  368. package/dist/components/data-table/index.js +35 -32
  369. package/dist/components/dependent-selector/index.js +1 -1
  370. package/dist/components/document-scanner/index.js +1 -1
  371. package/dist/components/due-date-calculator/index.js +2 -2
  372. package/dist/components/email-input/email-input.d.ts.map +1 -1
  373. package/dist/components/email-input/index.js +1 -1
  374. package/dist/components/entity-summary/entity-summary.agent.d.ts +4 -0
  375. package/dist/components/entity-summary/entity-summary.agent.d.ts.map +1 -0
  376. package/dist/components/entity-summary/entity-summary.d.ts +92 -0
  377. package/dist/components/entity-summary/entity-summary.d.ts.map +1 -0
  378. package/dist/components/entity-summary/index.d.ts +3 -0
  379. package/dist/components/entity-summary/index.d.ts.map +1 -0
  380. package/dist/components/entity-summary/index.js +5 -0
  381. package/dist/components/entity-summary/index.js.map +1 -0
  382. package/dist/components/fetal-weight/index.js +1 -1
  383. package/dist/components/field-array/field-array.agent.d.ts +4 -0
  384. package/dist/components/field-array/field-array.agent.d.ts.map +1 -0
  385. package/dist/components/field-array/field-array.d.ts +45 -0
  386. package/dist/components/field-array/field-array.d.ts.map +1 -0
  387. package/dist/components/field-array/index.d.ts +4 -0
  388. package/dist/components/field-array/index.d.ts.map +1 -0
  389. package/dist/components/field-array/index.js +6 -0
  390. package/dist/components/field-array/index.js.map +1 -0
  391. package/dist/components/file-upload/index.js +1 -1
  392. package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
  393. package/dist/components/freemium-paywall/index.js +1 -1
  394. package/dist/components/gestational-age-calculator/index.js +1 -1
  395. package/dist/components/hcg-doubling/index.js +1 -1
  396. package/dist/components/iban-input/iban-input.agent.d.ts +4 -0
  397. package/dist/components/iban-input/iban-input.agent.d.ts.map +1 -0
  398. package/dist/components/iban-input/iban-input.d.ts +51 -0
  399. package/dist/components/iban-input/iban-input.d.ts.map +1 -0
  400. package/dist/components/iban-input/index.d.ts +5 -0
  401. package/dist/components/iban-input/index.d.ts.map +1 -0
  402. package/dist/components/iban-input/index.js +13 -0
  403. package/dist/components/iban-input/index.js.map +1 -0
  404. package/dist/components/iban-input/is-valid-iban.d.ts +31 -0
  405. package/dist/components/iban-input/is-valid-iban.d.ts.map +1 -0
  406. package/dist/components/icon-picker/icon-picker.agent.d.ts +4 -0
  407. package/dist/components/icon-picker/icon-picker.agent.d.ts.map +1 -0
  408. package/dist/components/icon-picker/icon-picker.d.ts +41 -0
  409. package/dist/components/icon-picker/icon-picker.d.ts.map +1 -0
  410. package/dist/components/icon-picker/index.d.ts +4 -0
  411. package/dist/components/icon-picker/index.d.ts.map +1 -0
  412. package/dist/components/icon-picker/index.js +6 -0
  413. package/dist/components/icon-picker/index.js.map +1 -0
  414. package/dist/components/image-cropper/crop-geometry.d.ts +30 -0
  415. package/dist/components/image-cropper/crop-geometry.d.ts.map +1 -0
  416. package/dist/components/image-cropper/image-cropper.agent.d.ts +4 -0
  417. package/dist/components/image-cropper/image-cropper.agent.d.ts.map +1 -0
  418. package/dist/components/image-cropper/image-cropper.d.ts +32 -0
  419. package/dist/components/image-cropper/image-cropper.d.ts.map +1 -0
  420. package/dist/components/image-cropper/index.d.ts +5 -0
  421. package/dist/components/image-cropper/index.d.ts.map +1 -0
  422. package/dist/components/image-cropper/index.js +11 -0
  423. package/dist/components/image-cropper/index.js.map +1 -0
  424. package/dist/components/index.d.ts +25 -1
  425. package/dist/components/index.d.ts.map +1 -1
  426. package/dist/components/message-card/index.js +1 -1
  427. package/dist/components/message-card/message-card.d.ts +14 -0
  428. package/dist/components/message-card/message-card.d.ts.map +1 -1
  429. package/dist/components/message-tray/index.js +1 -1
  430. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  431. package/dist/components/message-tray/message-tray.d.ts +4 -0
  432. package/dist/components/message-tray/message-tray.d.ts.map +1 -1
  433. package/dist/components/multi-select/index.js +1 -1
  434. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  435. package/dist/components/nav-grid/index.d.ts +4 -0
  436. package/dist/components/nav-grid/index.d.ts.map +1 -0
  437. package/dist/components/nav-grid/index.js +7 -0
  438. package/dist/components/nav-grid/index.js.map +1 -0
  439. package/dist/components/nav-grid/nav-grid.agent.d.ts +4 -0
  440. package/dist/components/nav-grid/nav-grid.agent.d.ts.map +1 -0
  441. package/dist/components/nav-grid/nav-grid.d.ts +41 -0
  442. package/dist/components/nav-grid/nav-grid.d.ts.map +1 -0
  443. package/dist/components/notes-panel/index.d.ts +3 -0
  444. package/dist/components/notes-panel/index.d.ts.map +1 -0
  445. package/dist/components/notes-panel/index.js +5 -0
  446. package/dist/components/notes-panel/index.js.map +1 -0
  447. package/dist/components/notes-panel/notes-panel.agent.d.ts +4 -0
  448. package/dist/components/notes-panel/notes-panel.agent.d.ts.map +1 -0
  449. package/dist/components/notes-panel/notes-panel.d.ts +94 -0
  450. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -0
  451. package/dist/components/notification-card/index.js +1 -1
  452. package/dist/components/notification-card/notification-card.d.ts +15 -0
  453. package/dist/components/notification-card/notification-card.d.ts.map +1 -1
  454. package/dist/components/notification-tray/index.js +1 -1
  455. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  456. package/dist/components/notification-tray/notification-tray.d.ts +4 -0
  457. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  458. package/dist/components/operator-hero/index.js +1 -1
  459. package/dist/components/panel-header/index.d.ts +3 -0
  460. package/dist/components/panel-header/index.d.ts.map +1 -0
  461. package/dist/components/panel-header/index.js +7 -0
  462. package/dist/components/panel-header/index.js.map +1 -0
  463. package/dist/components/panel-header/panel-header.d.ts +41 -0
  464. package/dist/components/panel-header/panel-header.d.ts.map +1 -0
  465. package/dist/components/patient-details/index.d.ts +5 -0
  466. package/dist/components/patient-details/index.d.ts.map +1 -0
  467. package/dist/components/patient-details/index.js +6 -0
  468. package/dist/components/patient-details/index.js.map +1 -0
  469. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  470. package/dist/components/patient-details/patient-details.agent.d.ts.map +1 -0
  471. package/dist/components/patient-details/patient-details.d.ts +96 -0
  472. package/dist/components/patient-details/patient-details.d.ts.map +1 -0
  473. package/dist/components/patient-search/index.js +1 -1
  474. package/dist/components/patient-summary-card/index.js +1 -1
  475. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -1
  476. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  477. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  478. package/dist/components/patient-table/columns.d.ts +69 -40
  479. package/dist/components/patient-table/columns.d.ts.map +1 -1
  480. package/dist/components/patient-table/index.d.ts +2 -6
  481. package/dist/components/patient-table/index.d.ts.map +1 -1
  482. package/dist/components/patient-table/index.js +8 -9
  483. package/dist/components/patient-table/patient-table.d.ts +38 -4
  484. package/dist/components/patient-table/patient-table.d.ts.map +1 -1
  485. package/dist/components/patient-table/types.d.ts +52 -2
  486. package/dist/components/patient-table/types.d.ts.map +1 -1
  487. package/dist/components/patient-table/use-responsive-columns.d.ts +8 -6
  488. package/dist/components/patient-table/use-responsive-columns.d.ts.map +1 -1
  489. package/dist/components/payment-card/index.js +1 -1
  490. package/dist/components/payment-form/index.js +1 -1
  491. package/dist/components/pdf-viewer/index.js +1 -1
  492. package/dist/components/periodontal-chart-card/index.js +1 -1
  493. package/dist/components/permission-matrix/index.d.ts +4 -0
  494. package/dist/components/permission-matrix/index.d.ts.map +1 -0
  495. package/dist/components/permission-matrix/index.js +7 -0
  496. package/dist/components/permission-matrix/index.js.map +1 -0
  497. package/dist/components/permission-matrix/permission-matrix.agent.d.ts +4 -0
  498. package/dist/components/permission-matrix/permission-matrix.agent.d.ts.map +1 -0
  499. package/dist/components/permission-matrix/permission-matrix.d.ts +47 -0
  500. package/dist/components/permission-matrix/permission-matrix.d.ts.map +1 -0
  501. package/dist/components/position-grid/index.d.ts +4 -0
  502. package/dist/components/position-grid/index.d.ts.map +1 -0
  503. package/dist/components/position-grid/index.js +7 -0
  504. package/dist/components/position-grid/index.js.map +1 -0
  505. package/dist/components/position-grid/position-grid.agent.d.ts +4 -0
  506. package/dist/components/position-grid/position-grid.agent.d.ts.map +1 -0
  507. package/dist/components/position-grid/position-grid.d.ts +39 -0
  508. package/dist/components/position-grid/position-grid.d.ts.map +1 -0
  509. package/dist/components/postal-code-input/index.d.ts +5 -0
  510. package/dist/components/postal-code-input/index.d.ts.map +1 -0
  511. package/dist/components/postal-code-input/index.js +6 -0
  512. package/dist/components/postal-code-input/index.js.map +1 -0
  513. package/dist/components/postal-code-input/postal-code-input.agent.d.ts +8 -0
  514. package/dist/components/postal-code-input/postal-code-input.agent.d.ts.map +1 -0
  515. package/dist/components/postal-code-input/postal-code-input.d.ts +27 -0
  516. package/dist/components/postal-code-input/postal-code-input.d.ts.map +1 -0
  517. package/dist/components/practice-results/index.js +1 -1
  518. package/dist/components/pregnancy-dating/index.js +1 -1
  519. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  520. package/dist/components/product-hub-tray/index.js +1 -1
  521. package/dist/components/product-hub-tray/product-hub-tray.d.ts +13 -1
  522. package/dist/components/product-hub-tray/product-hub-tray.d.ts.map +1 -1
  523. package/dist/components/province-select/index.d.ts +6 -0
  524. package/dist/components/province-select/index.d.ts.map +1 -0
  525. package/dist/components/province-select/index.js +7 -0
  526. package/dist/components/province-select/index.js.map +1 -0
  527. package/dist/components/province-select/it-provinces.d.ts +8 -0
  528. package/dist/components/province-select/it-provinces.d.ts.map +1 -0
  529. package/dist/components/province-select/province-select.agent.d.ts +8 -0
  530. package/dist/components/province-select/province-select.agent.d.ts.map +1 -0
  531. package/dist/components/province-select/province-select.d.ts +38 -0
  532. package/dist/components/province-select/province-select.d.ts.map +1 -0
  533. package/dist/components/public-footer/public-footer.d.ts +1 -1
  534. package/dist/components/public-header/index.js +1 -1
  535. package/dist/components/radiograph-panel/index.d.ts +4 -0
  536. package/dist/components/radiograph-panel/index.d.ts.map +1 -0
  537. package/dist/components/radiograph-panel/index.js +7 -0
  538. package/dist/components/radiograph-panel/index.js.map +1 -0
  539. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  540. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts.map +1 -0
  541. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  542. package/dist/components/radiograph-panel/radiograph-panel.d.ts.map +1 -0
  543. package/dist/components/reviews-panel/index.js +1 -1
  544. package/dist/components/reviews-panel/reviews-panel.d.ts.map +1 -1
  545. package/dist/components/rich-text-editor/editor-toolbar.d.ts +17 -0
  546. package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
  547. package/dist/components/rich-text-editor/index.js +1 -1
  548. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -1
  549. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  550. package/dist/components/scroll-area/index.js +1 -1
  551. package/dist/components/select/index.js +1 -1
  552. package/dist/components/select/select.d.ts +8 -2
  553. package/dist/components/select/select.d.ts.map +1 -1
  554. package/dist/components/sheet/index.js +1 -1
  555. package/dist/components/sheet/sheet.d.ts.map +1 -1
  556. package/dist/components/sidebar/index.js +2 -2
  557. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  558. package/dist/components/sign-document/index.js +1 -1
  559. package/dist/components/skeleton/skeleton.d.ts +1 -1
  560. package/dist/components/stepper-accordion/index.js +1 -1
  561. package/dist/components/tab-bar/index.js +1 -1
  562. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  563. package/dist/components/tab-bar/tab-bar.d.ts.map +1 -1
  564. package/dist/components/tabs/index.js +1 -1
  565. package/dist/components/task-card/index.js +1 -1
  566. package/dist/components/task-card/task-card.d.ts +14 -6
  567. package/dist/components/task-card/task-card.d.ts.map +1 -1
  568. package/dist/components/task-tray/index.js +1 -1
  569. package/dist/components/tasks-panel/index.d.ts +4 -0
  570. package/dist/components/tasks-panel/index.d.ts.map +1 -0
  571. package/dist/components/tasks-panel/index.js +6 -0
  572. package/dist/components/tasks-panel/index.js.map +1 -0
  573. package/dist/components/tasks-panel/tasks-panel.agent.d.ts +4 -0
  574. package/dist/components/tasks-panel/tasks-panel.agent.d.ts.map +1 -0
  575. package/dist/components/tasks-panel/tasks-panel.d.ts +152 -0
  576. package/dist/components/tasks-panel/tasks-panel.d.ts.map +1 -0
  577. package/dist/components/token-insert-menu/index.d.ts +4 -0
  578. package/dist/components/token-insert-menu/index.d.ts.map +1 -0
  579. package/dist/components/token-insert-menu/index.js +6 -0
  580. package/dist/components/token-insert-menu/index.js.map +1 -0
  581. package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts +4 -0
  582. package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts.map +1 -0
  583. package/dist/components/token-insert-menu/token-insert-menu.d.ts +33 -0
  584. package/dist/components/token-insert-menu/token-insert-menu.d.ts.map +1 -0
  585. package/dist/components/tool-rail/index.d.ts +4 -0
  586. package/dist/components/tool-rail/index.d.ts.map +1 -0
  587. package/dist/components/tool-rail/index.js +6 -0
  588. package/dist/components/tool-rail/index.js.map +1 -0
  589. package/dist/components/tool-rail/tool-rail.agent.d.ts +4 -0
  590. package/dist/components/tool-rail/tool-rail.agent.d.ts.map +1 -0
  591. package/dist/components/tool-rail/tool-rail.d.ts +160 -0
  592. package/dist/components/tool-rail/tool-rail.d.ts.map +1 -0
  593. package/dist/components/tooth-scheme/index.d.ts +2 -2
  594. package/dist/components/tooth-scheme/index.d.ts.map +1 -1
  595. package/dist/components/tooth-scheme/index.js +30 -23
  596. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  597. package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -1
  598. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  599. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  600. package/dist/components/tooth-scheme/tooth-scheme.d.ts +84 -11
  601. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
  602. package/dist/components/transaction-chip/index.js +1 -1
  603. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  604. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -1
  605. package/dist/components/transcript-panel/index.js +1 -1
  606. package/dist/components/transcript-panel/transcript-panel.d.ts +2 -2
  607. package/dist/components/transcript-panel/transcript-panel.d.ts.map +1 -1
  608. package/dist/components/unit-converter/index.js +1 -1
  609. package/dist/components/warning-stack/index.js +1 -1
  610. package/dist/components/warning-stack/warning-stack.d.ts +10 -7
  611. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  612. package/dist/components/workflow/index.js +1 -1
  613. package/dist/hooks/index.d.ts +1 -0
  614. package/dist/hooks/index.d.ts.map +1 -1
  615. package/dist/hooks/index.js +24 -22
  616. package/dist/hooks/index.js.map +1 -1
  617. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  618. package/dist/hooks/use-clamp-overflow.d.ts.map +1 -0
  619. package/dist/hooks/use-edge-resize.d.ts +2 -2
  620. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  621. package/dist/hooks/use-overflow-collapse.d.ts.map +1 -0
  622. package/dist/hooks/use-persistent-state.d.ts +7 -1
  623. package/dist/hooks/use-persistent-state.d.ts.map +1 -1
  624. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  625. package/dist/hooks/use-scroll-overflow.d.ts.map +1 -0
  626. package/dist/i18n/locales/ar.d.ts +475 -26
  627. package/dist/i18n/locales/ar.d.ts.map +1 -1
  628. package/dist/i18n/locales/ar.js +478 -31
  629. package/dist/i18n/locales/ar.js.map +1 -1
  630. package/dist/i18n/locales/de.d.ts +475 -26
  631. package/dist/i18n/locales/de.d.ts.map +1 -1
  632. package/dist/i18n/locales/de.js +480 -31
  633. package/dist/i18n/locales/de.js.map +1 -1
  634. package/dist/i18n/locales/el.d.ts +475 -26
  635. package/dist/i18n/locales/el.d.ts.map +1 -1
  636. package/dist/i18n/locales/el.js +485 -31
  637. package/dist/i18n/locales/el.js.map +1 -1
  638. package/dist/i18n/locales/en.d.ts +476 -34
  639. package/dist/i18n/locales/en.d.ts.map +1 -1
  640. package/dist/i18n/locales/en.js +492 -39
  641. package/dist/i18n/locales/en.js.map +1 -1
  642. package/dist/i18n/locales/es.d.ts +475 -26
  643. package/dist/i18n/locales/es.d.ts.map +1 -1
  644. package/dist/i18n/locales/es.js +477 -31
  645. package/dist/i18n/locales/es.js.map +1 -1
  646. package/dist/i18n/locales/fr.d.ts +475 -26
  647. package/dist/i18n/locales/fr.d.ts.map +1 -1
  648. package/dist/i18n/locales/fr.js +480 -31
  649. package/dist/i18n/locales/fr.js.map +1 -1
  650. package/dist/i18n/locales/hi.d.ts +475 -26
  651. package/dist/i18n/locales/hi.d.ts.map +1 -1
  652. package/dist/i18n/locales/hi.js +476 -31
  653. package/dist/i18n/locales/hi.js.map +1 -1
  654. package/dist/i18n/locales/it.d.ts +475 -26
  655. package/dist/i18n/locales/it.d.ts.map +1 -1
  656. package/dist/i18n/locales/it.js +480 -31
  657. package/dist/i18n/locales/it.js.map +1 -1
  658. package/dist/i18n/locales/ja.d.ts +475 -26
  659. package/dist/i18n/locales/ja.d.ts.map +1 -1
  660. package/dist/i18n/locales/ja.js +481 -31
  661. package/dist/i18n/locales/ja.js.map +1 -1
  662. package/dist/i18n/locales/nl.d.ts +475 -26
  663. package/dist/i18n/locales/nl.d.ts.map +1 -1
  664. package/dist/i18n/locales/nl.js +473 -31
  665. package/dist/i18n/locales/nl.js.map +1 -1
  666. package/dist/i18n/locales/pl.d.ts +475 -26
  667. package/dist/i18n/locales/pl.d.ts.map +1 -1
  668. package/dist/i18n/locales/pl.js +481 -31
  669. package/dist/i18n/locales/pl.js.map +1 -1
  670. package/dist/i18n/locales/pt.d.ts +475 -26
  671. package/dist/i18n/locales/pt.d.ts.map +1 -1
  672. package/dist/i18n/locales/pt.js +485 -31
  673. package/dist/i18n/locales/pt.js.map +1 -1
  674. package/dist/i18n/locales/ro.d.ts +475 -26
  675. package/dist/i18n/locales/ro.d.ts.map +1 -1
  676. package/dist/i18n/locales/ro.js +485 -31
  677. package/dist/i18n/locales/ro.js.map +1 -1
  678. package/dist/i18n/locales/ru.d.ts +475 -26
  679. package/dist/i18n/locales/ru.d.ts.map +1 -1
  680. package/dist/i18n/locales/ru.js +478 -31
  681. package/dist/i18n/locales/ru.js.map +1 -1
  682. package/dist/i18n/locales/sq.d.ts +475 -26
  683. package/dist/i18n/locales/sq.d.ts.map +1 -1
  684. package/dist/i18n/locales/sq.js +482 -31
  685. package/dist/i18n/locales/sq.js.map +1 -1
  686. package/dist/i18n/locales/sv.d.ts +475 -26
  687. package/dist/i18n/locales/sv.d.ts.map +1 -1
  688. package/dist/i18n/locales/sv.js +480 -31
  689. package/dist/i18n/locales/sv.js.map +1 -1
  690. package/dist/i18n/locales/tr.d.ts +475 -26
  691. package/dist/i18n/locales/tr.d.ts.map +1 -1
  692. package/dist/i18n/locales/tr.js +478 -31
  693. package/dist/i18n/locales/tr.js.map +1 -1
  694. package/dist/i18n/locales/zh.d.ts +475 -26
  695. package/dist/i18n/locales/zh.d.ts.map +1 -1
  696. package/dist/i18n/locales/zh.js +473 -31
  697. package/dist/i18n/locales/zh.js.map +1 -1
  698. package/dist/index.js +826 -709
  699. package/dist/index.js.map +1 -1
  700. package/dist/locales/ar.json +480 -31
  701. package/dist/locales/de.json +480 -31
  702. package/dist/locales/el.json +480 -31
  703. package/dist/locales/en.json +480 -31
  704. package/dist/locales/es.json +480 -31
  705. package/dist/locales/fr.json +480 -31
  706. package/dist/locales/hi.json +480 -31
  707. package/dist/locales/it.json +480 -31
  708. package/dist/locales/ja.json +480 -31
  709. package/dist/locales/nl.json +480 -31
  710. package/dist/locales/pl.json +480 -31
  711. package/dist/locales/pt.json +480 -31
  712. package/dist/locales/ro.json +480 -31
  713. package/dist/locales/ru.json +480 -31
  714. package/dist/locales/sq.json +480 -31
  715. package/dist/locales/sv.json +480 -31
  716. package/dist/locales/tr.json +480 -31
  717. package/dist/locales/zh.json +480 -31
  718. package/dist/patterns/alia-assistant/alia-chat-surface.d.ts.map +1 -1
  719. package/dist/patterns/alia-assistant/alia-types.d.ts +9 -0
  720. package/dist/patterns/alia-assistant/alia-types.d.ts.map +1 -1
  721. package/dist/patterns/alia-assistant/index.js +1 -1
  722. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  723. package/dist/patterns/patient-shell/index.js +1 -1
  724. package/dist/tokens.css +9 -1
  725. package/package.json +101 -5
  726. package/dist/_chunks/actions-cell-renderer-DrcaxB0w.js.map +0 -1
  727. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js +0 -373
  728. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js.map +0 -1
  729. package/dist/_chunks/alert-_mUKLmwA.js.map +0 -1
  730. package/dist/_chunks/alia-sidebar-B47qRQb5.js.map +0 -1
  731. package/dist/_chunks/app-frame-BYx1gcV7.js.map +0 -1
  732. package/dist/_chunks/appointment-tray-CZtvtaH-.js +0 -431
  733. package/dist/_chunks/appointment-tray-CZtvtaH-.js.map +0 -1
  734. package/dist/_chunks/autocomplete-DOeGouCL.js.map +0 -1
  735. package/dist/_chunks/badge-CqGsX32l.js.map +0 -1
  736. package/dist/_chunks/chat-message-3V54YipB.js.map +0 -1
  737. package/dist/_chunks/clinical-note-card-DqQYf_D4.js +0 -333
  738. package/dist/_chunks/clinical-note-card-DqQYf_D4.js.map +0 -1
  739. package/dist/_chunks/combobox-Clum7gJ1.js.map +0 -1
  740. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +0 -448
  741. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js.map +0 -1
  742. package/dist/_chunks/email-input-B_Y55f5G.js +0 -396
  743. package/dist/_chunks/message-card-Bx4GmLvf.js +0 -277
  744. package/dist/_chunks/message-card-Bx4GmLvf.js.map +0 -1
  745. package/dist/_chunks/message-tray-DwrBLJlf.js.map +0 -1
  746. package/dist/_chunks/notification-card-BiESdm8q.js +0 -255
  747. package/dist/_chunks/notification-card-BiESdm8q.js.map +0 -1
  748. package/dist/_chunks/notification-tray-Btb9oQeZ.js.map +0 -1
  749. package/dist/_chunks/patient-summary-card-B836_fDB.js +0 -435
  750. package/dist/_chunks/patient-summary-card-B836_fDB.js.map +0 -1
  751. package/dist/_chunks/patient-table-CDuosVru.js +0 -889
  752. package/dist/_chunks/patient-table-CDuosVru.js.map +0 -1
  753. package/dist/_chunks/payment-request-card-DioWKBUq.js.map +0 -1
  754. package/dist/_chunks/pdf-viewer-D6BPfW2D.js.map +0 -1
  755. package/dist/_chunks/product-hub-panel-e6pW220e.js.map +0 -1
  756. package/dist/_chunks/reviews-panel-Dq7LMDcH.js +0 -555
  757. package/dist/_chunks/reviews-panel-Dq7LMDcH.js.map +0 -1
  758. package/dist/_chunks/rich-text-editor-BsV7zUdg.js +0 -2142
  759. package/dist/_chunks/rich-text-editor-BsV7zUdg.js.map +0 -1
  760. package/dist/_chunks/scroll-area-5wNK0Cyz.js.map +0 -1
  761. package/dist/_chunks/select-DMLG44F5.js.map +0 -1
  762. package/dist/_chunks/sheet-BxsE7eQm.js.map +0 -1
  763. package/dist/_chunks/sidebar-DY9jGjgt.js.map +0 -1
  764. package/dist/_chunks/stepper-accordion-Dki6r9ZE.js.map +0 -1
  765. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  766. package/dist/_chunks/tab-bar-B1ovILzh.js.map +0 -1
  767. package/dist/_chunks/task-card-BwY9jaV1.js +0 -124
  768. package/dist/_chunks/task-card-BwY9jaV1.js.map +0 -1
  769. package/dist/_chunks/tooth-scheme-yBr53cvv.js +0 -1330
  770. package/dist/_chunks/tooth-scheme-yBr53cvv.js.map +0 -1
  771. package/dist/_chunks/transaction-chip-DK84XCBU.js.map +0 -1
  772. package/dist/_chunks/transcript-panel-3THQX6nJ.js.map +0 -1
  773. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  774. package/dist/_chunks/use-persistent-state-i23OWy6G.js.map +0 -1
  775. package/dist/_chunks/warning-stack-BsgaEbL8.js.map +0 -1
  776. package/dist/_chunks/workflow-map-Bdam9pGp.js.map +0 -1
  777. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +0 -4
  778. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +0 -1
  779. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +0 -68
  780. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +0 -1
  781. package/dist/components/ai-tools-rail/index.d.ts +0 -4
  782. package/dist/components/ai-tools-rail/index.d.ts.map +0 -1
  783. package/dist/components/ai-tools-rail/index.js +0 -6
  784. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +0 -45
  785. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts.map +0 -1
  786. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +0 -26
  787. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts.map +0 -1
  788. /package/dist/components/{ai-tools-rail → address-fields}/index.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-BrONKN8l.js","sources":["../../src/components/autocomplete/autocomplete.agent.ts","../../src/components/autocomplete/autocomplete.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — Autocomplete. */\n/* */\n/* Single-choice combobox with a free-text filter. The committed value */\n/* persists (value state slot + set_value) so the choice is `select_single`*/\n/* rather than a non-persisting `pick`. Filtering, open, and close are */\n/* pure view state. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { AutocompleteHandle } from './autocomplete';\n\nexport const autocompleteAgent: AgentAdapter<AutocompleteHandle> = {\n id: 'autocomplete',\n capabilities: ['select_single', 'filter', 'open', 'close'],\n state: {\n value: {\n type: 'string | null',\n descriptionKey: 'ui.agent.autocomplete.state.value',\n description:\n 'Currently-selected option value, or null when nothing is committed.',\n read: (handle) => handle.getValue(),\n },\n query: {\n type: 'string',\n descriptionKey: 'ui.agent.autocomplete.state.query',\n description: 'Current free-text query in the input.',\n read: (handle) => handle.getQuery(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.autocomplete.state.isOpen',\n description: 'True when the suggestion list is visible.',\n read: (handle) => handle.getIsOpen(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ value: string | null }',\n argsSchema: {\n type: 'object',\n properties: { value: { type: ['string', 'null'] } },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.autocomplete.actions.setValue',\n description: 'Set the committed value programmatically.',\n invoke: (handle, args: { value: string | null }) => {\n handle.setValue(args.value);\n },\n },\n apply_filter: {\n safety: 'read',\n argsType: '{ query: string }',\n argsSchema: {\n type: 'object',\n properties: { query: { type: 'string' } },\n required: ['query'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.autocomplete.actions.applyFilter',\n description: 'Set the input query, which filters the suggestion list.',\n invoke: (handle, args: { query: string }) => {\n handle.setQuery(args.query);\n },\n },\n clear: {\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.autocomplete.actions.clear',\n description:\n 'Clear the committed value and the query. Discards the typed input.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.autocomplete.actions.open',\n description: 'Open the suggestion list.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.autocomplete.actions.close',\n description: 'Close the suggestion list.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: { attr: 'data-component', value: 'autocomplete' },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description: 'Each suggestion emits its value as data-option-id.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type CompositionEvent,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n type Ref,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { Command } from 'cmdk';\nimport * as Popover from '@radix-ui/react-popover';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Spinner } from '../spinner/spinner';\nimport { useFormField } from '../form-field/form-field-context';\nimport { useControllableState } from '../../hooks/use-controllable-state';\nimport { useDebouncedCallback } from '../_shared/use-debounced-callback';\nimport type { OptionShape } from '../_shared/option';\nimport { groupOptions } from '../_shared/group-options';\nimport {\n INPUT_SURFACE_CHROME,\n INPUT_SURFACE_HEIGHT,\n INPUT_SURFACE_TEXT,\n INPUT_SURFACE_TONE,\n} from '../_shared/input-surface';\nimport { useAgentRegistration } from '../../agent';\nimport { autocompleteAgent } from './autocomplete.agent';\n\n// ---------------------------------------------------------------------------\n// CVA — sizing / chrome tokens come from _shared/input-surface so the four\n// input surfaces (TextInput, Autocomplete, Combobox, MultiSelect) cannot drift.\n// ---------------------------------------------------------------------------\n\nconst autocompleteVariants = cva(\n ['ds:flex ds:w-full ds:items-center', INPUT_SURFACE_CHROME].join(' '),\n {\n variants: {\n size: {\n sm: `${INPUT_SURFACE_HEIGHT.sm} ${INPUT_SURFACE_TEXT.sm}`,\n md: `${INPUT_SURFACE_HEIGHT.md} ${INPUT_SURFACE_TEXT.md}`,\n lg: `${INPUT_SURFACE_HEIGHT.lg} ${INPUT_SURFACE_TEXT.lg}`,\n },\n tone: INPUT_SURFACE_TONE,\n },\n defaultVariants: { size: 'md', tone: 'default' },\n },\n);\n\nconst inputVariants = cva(\n [\n 'ds:flex-1 ds:min-w-0 ds:bg-transparent ds:text-foreground',\n 'ds:placeholder:text-muted-foreground',\n 'ds:outline-none ds:focus:outline-none ds:focus-visible:outline-none',\n 'ds:disabled:cursor-not-allowed',\n 'ds:read-only:cursor-default',\n ].join(' '),\n {\n variants: {\n hasStart: { true: 'ds:ps-2', false: 'ds:ps-3' },\n hasEnd: { true: 'ds:pe-2', false: 'ds:pe-3' },\n },\n defaultVariants: { hasStart: false, hasEnd: false },\n },\n);\n\nconst contentVariants = cva(\n [\n 'ds:z-[var(--z-dropdown)] ds:overflow-hidden',\n 'ds:rounded-[var(--radius-sm)] ds:border ds:border-border ds:bg-background',\n 'ds:shadow-[var(--shadow-md)]',\n 'ds:w-[var(--radix-popover-trigger-width)]',\n 'ds:animate-in ds:fade-in ds:zoom-in-95',\n 'ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out',\n 'ds:data-[state=closed]:zoom-out-95',\n 'ds:motion-reduce:animate-none',\n ].join(' '),\n);\n\nconst itemVariants = cva(\n [\n 'ds:relative ds:flex ds:items-center ds:gap-[var(--spacing-sm)]',\n 'ds:ps-3 ds:pe-3 ds:py-2 ds:text-[length:var(--font-size-sm)] ds:text-foreground',\n 'ds:rounded-[var(--radius-sm)] ds:select-none ds:cursor-pointer',\n 'ds:data-[disabled=true]:pointer-events-none ds:data-[disabled=true]:opacity-50',\n 'ds:data-[selected=true]:bg-primary ds:data-[selected=true]:text-primary-foreground',\n 'ds:hover:bg-muted ds:data-[selected=true]:hover:bg-primary',\n ].join(' '),\n);\n\nconst groupClasses = [\n 'ds:[&_[cmdk-group-heading]]:ps-3',\n 'ds:[&_[cmdk-group-heading]]:pe-3',\n 'ds:[&_[cmdk-group-heading]]:py-1.5',\n 'ds:[&_[cmdk-group-heading]]:type-eyebrow',\n 'ds:[&_[cmdk-group-heading]]:text-muted-foreground',\n].join(' ');\n\nconst adornmentBase =\n 'ds:inline-flex ds:items-center ds:shrink-0 ds:text-muted-foreground ds:[&_svg]:size-4';\n\n// ---------------------------------------------------------------------------\n// Agent handle — curated surface for agent-readiness adapter.\n//\n// The autocomplete `forwardRef` exposes the underlying `HTMLInputElement` for\n// form integration; the agent handle is a separate, structural contract\n// referenced by `autocomplete.agent.ts`. Consumers wire it via the platform\n// registry — it is not the component's React ref.\n// ---------------------------------------------------------------------------\n\nexport interface AutocompleteHandle {\n getValue: () => string | null;\n getQuery: () => string;\n getIsOpen: () => boolean;\n setValue: (value: string | null) => void;\n setQuery: (query: string) => void;\n clear: () => void;\n open: () => void;\n close: () => void;\n}\n\n// ---------------------------------------------------------------------------\n// Props\n// ---------------------------------------------------------------------------\n\ntype CVAProps = VariantProps<typeof autocompleteVariants>;\n\nexport interface AutocompleteProps<T extends string = string> extends Pick<\n CVAProps,\n 'size' | 'tone'\n> {\n loadOptions: (\n query: string,\n opts: { signal: AbortSignal; locale: string },\n ) => Promise<OptionShape<T>[]>;\n debounceMs?: number;\n\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onSelect?: (option: OptionShape<T>) => void;\n\n recents?: OptionShape<T>[];\n onRecentSelect?: (option: OptionShape<T>) => void;\n\n snapOnBlur?: boolean;\n\n startAdornment?: ReactNode;\n endAdornment?: ReactNode;\n placeholder?: string;\n\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n name?: string;\n id?: string;\n className?: string;\n 'aria-label'?: string;\n /**\n * Invalid-state fallback for use OUTSIDE a `<FormField>` (e.g. an inline\n * editor). Inside a FormField the context wins.\n */\n 'aria-invalid'?: boolean;\n /**\n * Error-message id fallback for use OUTSIDE a `<FormField>`. Inside a\n * FormField the context's `describedBy` wins.\n */\n 'aria-describedby'?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Implementation\n// ---------------------------------------------------------------------------\n\nfunction itemIdFor(idPrefix: string, kind: 'recent' | 'option', value: string) {\n return `${idPrefix}-${kind}-${value}`;\n}\n\nfunction cmdkValueFor(kind: 'recent' | 'option', value: string) {\n return `${kind}:${value}`;\n}\n\nconst AutocompleteImpl = forwardRef<HTMLInputElement, AutocompleteProps>(\n function Autocomplete(\n {\n loadOptions,\n debounceMs = 250,\n value,\n defaultValue,\n onChange,\n onSelect,\n recents,\n onRecentSelect,\n snapOnBlur = false,\n size = 'md',\n tone = 'default',\n startAdornment,\n endAdornment,\n placeholder,\n disabled,\n readOnly,\n required,\n name,\n id,\n className,\n 'aria-label': ariaLabel,\n 'aria-invalid': ariaInvalid,\n 'aria-describedby': ariaDescribedBy,\n },\n ref,\n ) {\n const { t, i18n } = useTranslation();\n const ctx = useFormField();\n\n const reactId = useId();\n const idPrefix = id ?? ctx.id ?? reactId;\n const listId = `${idPrefix}-listbox`;\n const liveRegionId = `${idPrefix}-live`;\n\n const effectiveDisabled = Boolean(ctx.disabled || disabled);\n const effectiveRequired = Boolean(ctx.required || required);\n const effectiveInvalid = ctx.invalid || Boolean(ariaInvalid);\n const effectiveTone: 'default' | 'error' = effectiveInvalid\n ? 'error'\n : (tone ?? 'default');\n const describedBy = ctx.describedBy || ariaDescribedBy || undefined;\n\n const [currentValueRaw, commitValueRaw] = useControllableState<string>({\n value,\n defaultValue: defaultValue ?? '',\n onChange,\n });\n const currentValue = currentValueRaw ?? '';\n\n const [open, setOpen] = useState(false);\n const [suggestions, setSuggestions] = useState<OptionShape[]>([]);\n const [loading, setLoading] = useState(false);\n const [cmdkValue, setCmdkValue] = useState<string>('');\n\n const composingRef = useRef(false);\n const abortRef = useRef<AbortController | null>(null);\n const latestQueryRef = useRef<string>(currentValue);\n const suggestionsByValueRef = useRef<Map<string, OptionShape>>(new Map());\n const recentsByValueRef = useRef<Map<string, OptionShape>>(new Map());\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const setRefs = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const locale = i18n.language;\n\n useEffect(() => {\n const map = new Map<string, OptionShape>();\n for (const option of suggestions) map.set(option.value, option);\n suggestionsByValueRef.current = map;\n }, [suggestions]);\n\n useEffect(() => {\n const map = new Map<string, OptionShape>();\n if (recents) for (const option of recents) map.set(option.value, option);\n recentsByValueRef.current = map;\n }, [recents]);\n\n const runFetch = useCallback(\n (query: string) => {\n if (effectiveDisabled || readOnly) return;\n if (composingRef.current) return;\n abortRef.current?.abort();\n const controller = new AbortController();\n abortRef.current = controller;\n latestQueryRef.current = query;\n setLoading(true);\n loadOptions(query, { signal: controller.signal, locale })\n .then((results) => {\n if (controller.signal.aborted) return;\n if (latestQueryRef.current !== query) return;\n setSuggestions(results);\n setLoading(false);\n })\n .catch((error: unknown) => {\n if (controller.signal.aborted) return;\n if (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n (error as { name?: string }).name === 'AbortError'\n ) {\n return;\n }\n if (latestQueryRef.current !== query) return;\n setSuggestions([]);\n setLoading(false);\n });\n },\n [effectiveDisabled, readOnly, loadOptions, locale],\n );\n\n const debouncedFetch = useDebouncedCallback(runFetch, debounceMs);\n\n useEffect(() => {\n return () => {\n debouncedFetch.cancel();\n abortRef.current?.abort();\n };\n }, [debouncedFetch]);\n\n const commitValue = useCallback(\n (next: string) => {\n commitValueRaw(next);\n },\n [commitValueRaw],\n );\n\n const resolveCmdkValue = useCallback(\n (\n raw: string,\n ): { kind: 'recent' | 'option'; option: OptionShape } | null => {\n const [kind, val] = raw.split(':');\n if (!val || (kind !== 'recent' && kind !== 'option')) return null;\n const lookup =\n kind === 'recent'\n ? recentsByValueRef.current\n : suggestionsByValueRef.current;\n const option = lookup.get(val);\n return option ? { kind, option } : null;\n },\n [],\n );\n\n const handleInputValueChange = (next: string) => {\n commitValue(next);\n if (effectiveDisabled || readOnly) return;\n if (!open) setOpen(true);\n if (composingRef.current) return;\n debouncedFetch(next);\n };\n\n const handleCompositionStart = (\n _event: CompositionEvent<HTMLInputElement>,\n ) => {\n composingRef.current = true;\n };\n\n const handleCompositionEnd = (\n event: CompositionEvent<HTMLInputElement>,\n ) => {\n composingRef.current = false;\n const next = event.currentTarget.value;\n debouncedFetch(next);\n };\n\n const handleFocus = (_event: FocusEvent<HTMLInputElement>) => {\n if (effectiveDisabled || readOnly) return;\n setOpen(true);\n if (currentValue) debouncedFetch(currentValue);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n const next = event.relatedTarget as Node | null;\n // Focus moved into the popover — keep listbox open (pointer-down on item\n // moves focus into the portal but we treat that as \"still interacting\").\n if (next && contentRef.current && contentRef.current.contains(next)) {\n return;\n }\n if (snapOnBlur && cmdkValue) {\n const resolved = resolveCmdkValue(cmdkValue);\n if (resolved) {\n commitValue(resolved.option.label);\n onSelect?.(resolved.option);\n }\n }\n setOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.nativeEvent.isComposing) return;\n if (event.key === 'Escape') {\n if (open) {\n event.preventDefault();\n event.stopPropagation();\n setOpen(false);\n }\n return;\n }\n if (event.key === 'ArrowDown' && !open) {\n event.preventDefault();\n setOpen(true);\n if (currentValue) debouncedFetch(currentValue);\n return;\n }\n if (event.key === 'Tab' && open && cmdkValue) {\n const resolved = resolveCmdkValue(cmdkValue);\n if (resolved) {\n commitValue(resolved.option.label);\n onSelect?.(resolved.option);\n setOpen(false);\n }\n }\n };\n\n const handleItemSelect = (\n kind: 'recent' | 'option',\n option: OptionShape,\n ) => {\n commitValue(option.label);\n if (kind === 'recent') onRecentSelect?.(option);\n else onSelect?.(option);\n setOpen(false);\n inputRef.current?.focus();\n };\n\n // Prevent input blur when clicking an item — keeps focus management predictable.\n const preventBlur = (event: MouseEvent<HTMLElement>) => {\n event.preventDefault();\n };\n\n const showRecents =\n Boolean(recents && recents.length > 0) && currentValue.length === 0;\n const groupedSuggestions = useMemo(\n () => groupOptions(suggestions),\n [suggestions],\n );\n\n const hasStart = Boolean(startAdornment);\n const hasEnd = Boolean(endAdornment) || loading;\n\n const wrapperClass = autocompleteVariants({\n size,\n tone: effectiveTone,\n className,\n });\n\n const activeDescendant = useMemo(() => {\n if (!cmdkValue) return undefined;\n const [kind, val] = cmdkValue.split(':');\n if (!val || (kind !== 'recent' && kind !== 'option')) return undefined;\n return itemIdFor(idPrefix, kind, val);\n }, [cmdkValue, idPrefix]);\n\n const hasSuggestions = suggestions.length > 0;\n const showEmpty =\n !showRecents && !hasSuggestions && !loading && currentValue.length > 0;\n const showLoadingRow = loading && !hasSuggestions;\n // Suppress the popover when there is nothing to render — prevents an empty\n // 1-line strip appearing under the input on focus with no query + no recents.\n const hasPopoverContent =\n showRecents || hasSuggestions || showEmpty || showLoadingRow;\n\n // Agent handle — refs mirror state for fresh reads from the memoized handle.\n const valueRefAgent = useRef<string>(currentValue);\n useEffect(() => {\n valueRefAgent.current = currentValue;\n }, [currentValue]);\n const openRefAgent = useRef<boolean>(open);\n useEffect(() => {\n openRefAgent.current = open;\n }, [open]);\n\n const agentHandle = useMemo<AutocompleteHandle>(\n () => ({\n getValue: () => valueRefAgent.current || null,\n getQuery: () => valueRefAgent.current,\n getIsOpen: () => openRefAgent.current,\n setValue: (next) => {\n commitValue(next ?? '');\n },\n setQuery: (query) => {\n commitValue(query);\n },\n clear: () => {\n commitValue('');\n },\n open: () => {\n setOpen(true);\n },\n close: () => {\n setOpen(false);\n },\n }),\n [commitValue],\n );\n useAgentRegistration(autocompleteAgent, agentHandle, id);\n\n const resultCount = suggestions.length;\n const liveMessage = loading\n ? t('common.loading', 'Loading…')\n : open && currentValue.length > 0\n ? t('inputs.autocomplete.results', {\n count: resultCount,\n defaultValue: '{{count}} results',\n })\n : '';\n\n return (\n <Command\n shouldFilter={false}\n value={cmdkValue}\n onValueChange={setCmdkValue}\n label={ariaLabel ?? placeholder}\n className=\"ds:w-full\"\n >\n <Popover.Root\n open={open && !effectiveDisabled && !readOnly && hasPopoverContent}\n >\n <Popover.Anchor asChild>\n <div\n className={wrapperClass}\n data-component=\"autocomplete\"\n data-component-id={id}\n data-disabled={effectiveDisabled || undefined}\n >\n {startAdornment ? (\n <span aria-hidden=\"true\" className={`${adornmentBase} ds:ps-3`}>\n {startAdornment}\n </span>\n ) : null}\n <Command.Input\n ref={setRefs}\n id={idPrefix}\n name={name}\n placeholder={placeholder}\n value={currentValue}\n onValueChange={handleInputValueChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n disabled={effectiveDisabled}\n readOnly={readOnly}\n required={effectiveRequired}\n role=\"combobox\"\n aria-autocomplete=\"both\"\n aria-expanded={open}\n // Only advertise aria-controls while the listbox is mounted\n // — Command.List lives inside the Popover.Content and only\n // renders when `open` is true. Pointing aria-controls at a\n // non-existent id fails axe's aria-valid-attr-value rule.\n aria-controls={open ? listId : undefined}\n aria-activedescendant={activeDescendant}\n aria-describedby={describedBy}\n aria-invalid={effectiveInvalid || undefined}\n // Default to a generic searchable-input label when the\n // consumer doesn't supply one — without this, axe flags\n // the combobox role for missing accessible name. Apps\n // that have meaningful surrounding context (a visible\n // label, a `<label for>` association) should pass\n // their own `aria-label` to be content-specific.\n aria-label={ariaLabel ?? t('inputs.autocomplete.ariaLabel')}\n autoComplete=\"off\"\n className={inputVariants({ hasStart, hasEnd })}\n />\n {loading ? (\n <span className={`${adornmentBase} ds:pe-3`} aria-hidden=\"true\">\n <Spinner variant=\"pulse\" size=\"sm\" />\n </span>\n ) : endAdornment ? (\n <span aria-hidden=\"true\" className={`${adornmentBase} ds:pe-3`}>\n {endAdornment}\n </span>\n ) : null}\n <span\n id={liveRegionId}\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ds:sr-only\"\n >\n {liveMessage}\n </span>\n </div>\n </Popover.Anchor>\n <Popover.Portal forceMount>\n <Popover.Content\n ref={contentRef}\n // `forceMount` keeps Command.List in the DOM even when the\n // popover is closed, so the input's cmdk-set\n // `aria-controls` always points at a real id (axe's\n // aria-valid-attr-value rule). Visibility is gated by\n // data-state via CSS / the `hidden` attribute below.\n forceMount\n hidden={!open}\n side=\"bottom\"\n align=\"start\"\n sideOffset={4}\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n onPointerDownOutside={(event) => {\n const target = event.target as Node | null;\n if (target && inputRef.current?.contains(target)) {\n event.preventDefault();\n return;\n }\n setOpen(false);\n }}\n onEscapeKeyDown={() => setOpen(false)}\n onMouseDown={preventBlur}\n className={contentVariants()}\n >\n <Command.List\n id={listId}\n className=\"ds:max-h-[min(24rem,var(--radix-popover-content-available-height))] ds:overflow-auto ds:p-1\"\n >\n {showRecents ? (\n <Command.Group\n heading={t('inputs.autocomplete.recent', 'Recent')}\n className={groupClasses}\n >\n {(recents ?? []).map((option) => (\n <Command.Item\n key={`recent-${option.value}`}\n id={itemIdFor(idPrefix, 'recent', option.value)}\n data-option-id={option.value}\n value={cmdkValueFor('recent', option.value)}\n disabled={option.disabled}\n onSelect={() => handleItemSelect('recent', option)}\n onMouseDown={preventBlur}\n className={itemVariants()}\n >\n {option.startAdornment ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:items-center ds:shrink-0\"\n >\n {option.startAdornment}\n </span>\n ) : null}\n <span className=\"ds:flex-1 ds:truncate\">\n {option.label}\n </span>\n </Command.Item>\n ))}\n </Command.Group>\n ) : null}\n {showEmpty ? (\n <div className=\"ds:ps-3 ds:pe-3 ds:py-2 type-body-sm ds:text-muted-foreground\">\n {t('inputs.autocomplete.noResults', 'No results')}\n </div>\n ) : null}\n {showLoadingRow ? (\n <div className=\"ds:flex ds:items-center ds:gap-[var(--spacing-sm)] ds:ps-3 ds:pe-3 ds:py-2 type-body-sm ds:text-muted-foreground\">\n <Spinner variant=\"pulse\" size=\"sm\" />\n <span>{t('common.loading', 'Loading…')}</span>\n </div>\n ) : null}\n {!showRecents && hasSuggestions\n ? groupedSuggestions.map((group, index) => {\n const body = group.items.map((option) => (\n <Command.Item\n key={`option-${option.value}`}\n id={itemIdFor(idPrefix, 'option', option.value)}\n data-option-id={option.value}\n value={cmdkValueFor('option', option.value)}\n disabled={option.disabled}\n onSelect={() => handleItemSelect('option', option)}\n onMouseDown={preventBlur}\n className={itemVariants()}\n >\n {option.startAdornment ? (\n <span\n aria-hidden=\"true\"\n className=\"ds:inline-flex ds:items-center ds:shrink-0\"\n >\n {option.startAdornment}\n </span>\n ) : null}\n <span className=\"ds:flex-1 ds:truncate\">\n {option.label}\n </span>\n </Command.Item>\n ));\n if (!group.group) {\n return (\n <Command.Group key={`group-${index}`}>\n {body}\n </Command.Group>\n );\n }\n return (\n <Command.Group\n key={`group-${group.group}`}\n heading={group.group}\n className={groupClasses}\n >\n {body}\n </Command.Group>\n );\n })\n : null}\n </Command.List>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </Command>\n );\n },\n);\n\ninterface AutocompleteComponent {\n <T extends string = string>(\n props: AutocompleteProps<T> & { ref?: Ref<HTMLInputElement> },\n ): ReactElement | null;\n displayName?: string;\n}\n\nexport const Autocomplete =\n AutocompleteImpl as unknown as AutocompleteComponent;\n(Autocomplete as { displayName?: string }).displayName = 'Autocomplete';\n\nexport { autocompleteVariants };\n"],"names":["autocompleteAgent","handle","args","autocompleteVariants","cva","INPUT_SURFACE_CHROME","INPUT_SURFACE_HEIGHT","INPUT_SURFACE_TEXT","INPUT_SURFACE_TONE","inputVariants","contentVariants","itemVariants","groupClasses","adornmentBase","itemIdFor","idPrefix","kind","value","cmdkValueFor","AutocompleteImpl","forwardRef","loadOptions","debounceMs","defaultValue","onChange","onSelect","recents","onRecentSelect","snapOnBlur","size","tone","startAdornment","endAdornment","placeholder","disabled","readOnly","required","name","id","className","ariaLabel","ariaInvalid","ariaDescribedBy","ref","t","i18n","useTranslation","ctx","useFormField","reactId","useId","listId","liveRegionId","effectiveDisabled","effectiveRequired","effectiveInvalid","effectiveTone","describedBy","currentValueRaw","commitValueRaw","useControllableState","currentValue","open","setOpen","useState","suggestions","setSuggestions","loading","setLoading","cmdkValue","setCmdkValue","composingRef","useRef","abortRef","latestQueryRef","suggestionsByValueRef","recentsByValueRef","inputRef","contentRef","setRefs","useCallback","node","locale","useEffect","map","option","runFetch","query","_a","controller","results","error","debouncedFetch","useDebouncedCallback","commitValue","next","resolveCmdkValue","raw","val","handleInputValueChange","handleCompositionStart","_event","handleCompositionEnd","event","handleFocus","handleBlur","resolved","handleKeyDown","handleItemSelect","preventBlur","showRecents","groupedSuggestions","useMemo","groupOptions","hasStart","hasEnd","wrapperClass","activeDescendant","hasSuggestions","showEmpty","showLoadingRow","hasPopoverContent","valueRefAgent","openRefAgent","agentHandle","useAgentRegistration","resultCount","liveMessage","jsx","Command","jsxs","Popover","Spinner","target","group","index","body","Autocomplete"],"mappings":"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"}
@@ -39,7 +39,11 @@ const z = d(
39
39
  // trust-signal chips in hero contexts where a tonal `info` / `neutral`
40
40
  // would blend into the brand backdrop.
41
41
  brand: "ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)] ds:border ds:border-[color:color-mix(in_srgb,var(--foreground)_15%,transparent)]",
42
- accent: "ds:bg-[var(--accent)] ds:text-[var(--accent-foreground)] ds:border ds:border-[color:color-mix(in_srgb,var(--foreground)_15%,transparent)]"
42
+ accent: "ds:bg-[var(--accent)] ds:text-[var(--accent-foreground)] ds:border ds:border-[color:color-mix(in_srgb,var(--foreground)_15%,transparent)]",
43
+ // Tonal accent (magenta ≈ pink) — the `info` recipe applied to accent.
44
+ // The kit has no paired tinted-accent foreground, so the label/edge tone
45
+ // is mixed toward `--foreground` to clear AA on the wash (all 4 themes).
46
+ accentSoft: "ds:bg-[color:color-mix(in_srgb,var(--accent)_15%,transparent)] ds:text-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))] ds:border ds:border-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))]"
43
47
  },
44
48
  size: {
45
49
  sm: "ds:h-4 ds:ps-1 ds:pe-1 ds:[--type-eyebrow-size:var(--font-size-2xs)]",
@@ -57,7 +61,7 @@ const z = d(
57
61
  shape: "pill"
58
62
  }
59
63
  }
60
- ), N = d(
64
+ ), _ = d(
61
65
  "ds:text-[length:var(--font-size-dot)] ds:leading-none ds:shrink-0",
62
66
  {
63
67
  variants: {
@@ -70,12 +74,13 @@ const z = d(
70
74
  // Solid-fill variants: dot draws in the paired foreground tone so
71
75
  // it stays visible against the saturated primary/accent fill.
72
76
  brand: "ds:text-[var(--primary-foreground)]",
73
- accent: "ds:text-[var(--accent-foreground)]"
77
+ accent: "ds:text-[var(--accent-foreground)]",
78
+ accentSoft: "ds:text-[var(--accent)]"
74
79
  }
75
80
  },
76
81
  defaultVariants: { variant: "neutral" }
77
82
  }
78
- ), V = d("ds:shrink-0 ds:[&>svg]:block", {
83
+ ), N = d("ds:shrink-0 ds:[&>svg]:block", {
79
84
  variants: {
80
85
  size: {
81
86
  // Icons shrink with the compact Badge scale: sm badge is 16 px tall, so
@@ -86,43 +91,43 @@ const z = d(
86
91
  }
87
92
  },
88
93
  defaultVariants: { size: "md" }
89
- }), _ = w(
94
+ }), V = w(
90
95
  ({
91
- variant: o = "neutral",
92
- size: a = "md",
96
+ variant: a = "neutral",
97
+ size: n = "md",
93
98
  shape: g = "pill",
94
- leading: n,
95
- withDot: u = !1,
96
- truncate: t = !1,
97
- className: f,
99
+ leading: t,
100
+ withDot: f = !1,
101
+ truncate: i = !1,
102
+ className: u,
98
103
  children: r,
99
- "aria-label": i,
104
+ "aria-label": e,
100
105
  ...v
101
- }, p) => {
102
- const { t: b } = h(), e = !r && !!i, m = typeof r == "number", c = /* @__PURE__ */ l(
106
+ }, b) => {
107
+ const { t: p } = h(), o = !r && !!e, m = typeof r == "number", c = /* @__PURE__ */ l(
103
108
  "span",
104
109
  {
105
- ref: p,
106
- className: z({ variant: o, size: a, shape: g, className: f }),
110
+ ref: b,
111
+ className: z({ variant: a, size: n, shape: g, className: u }),
107
112
  "data-component": "badge",
108
- role: e ? "img" : void 0,
109
- "aria-label": e ? i : void 0,
113
+ role: o ? "img" : void 0,
114
+ "aria-label": o ? e : void 0,
110
115
  ...v,
111
116
  children: [
112
- u && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: N({ variant: o }), children: "●" }),
113
- n && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: V({ size: a }), children: n }),
114
- !e && (m ? /* @__PURE__ */ l(x, { children: [
117
+ f && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: _({ variant: a }), children: "●" }),
118
+ t && /* @__PURE__ */ s("span", { "aria-hidden": "true", className: N({ size: n }), children: t }),
119
+ !o && (m ? /* @__PURE__ */ l(x, { children: [
115
120
  /* @__PURE__ */ s("span", { "aria-hidden": "true", children: r }),
116
- /* @__PURE__ */ s("span", { className: "ds:sr-only", children: b("badge.notifications", { count: r }) })
117
- ] }) : t ? /* @__PURE__ */ s("span", { className: "ds:max-w-[var(--badge-truncate-max-width)] ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap", children: r }) : r)
121
+ /* @__PURE__ */ s("span", { className: "ds:sr-only", children: e ?? p("badge.notifications", { count: r }) })
122
+ ] }) : i ? /* @__PURE__ */ s("span", { className: "ds:max-w-[var(--badge-truncate-max-width)] ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap", children: r }) : r)
118
123
  ]
119
124
  }
120
125
  );
121
- return t && typeof r == "string" ? /* @__PURE__ */ s(y, { label: r, children: c }) : c;
126
+ return i && typeof r == "string" ? /* @__PURE__ */ s(y, { label: r, children: c }) : c;
122
127
  }
123
128
  );
124
- _.displayName = "Badge";
129
+ V.displayName = "Badge";
125
130
  export {
126
- _ as B
131
+ V as B
127
132
  };
128
- //# sourceMappingURL=badge-CqGsX32l.js.map
133
+ //# sourceMappingURL=badge-DCOqV9mI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-DCOqV9mI.js","sources":["../../src/components/badge/badge.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Tooltip } from '../tooltip';\n\n/* ------------------------------------------------------------------ */\n/* CVA — badge root */\n/* ------------------------------------------------------------------ */\n\nconst badgeVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:gap-1',\n // Typography comes from the eyebrow role: Medium 500 + uppercase + expanded tracking.\n // CVA size variants below override just `--type-eyebrow-size` so weight/transform/\n // tracking/line-height stay role-owned — same chip-family pattern as Tag.\n 'type-eyebrow',\n 'ds:whitespace-nowrap',\n 'ds:focus-visible:outline-none',\n 'ds:focus-visible:ring-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:ring-[color:var(--ring)]',\n 'ds:focus-visible:ring-offset-[length:var(--focus-ring-offset)]',\n ].join(' '),\n {\n variants: {\n variant: {\n // `bg-muted` at full opacity (not /20) — `--muted` is already\n // a light grey (#eaeaee in light, similarly soft in dark). The\n // semantic variants below use /15 against saturated source\n // colours; applying the same reduction to `muted` made the\n // neutral chip nearly invisible against a white surface\n // (~5% grey wash with no perceptible edge). Full opacity\n // gives ~6:1 surface contrast and the chip reads as a chip.\n // Every chip carries a border so it reads as a defined chip on any\n // surface (matching Tag). Tinted semantic variants take a colour-matched\n // edge at twice the fill opacity; neutral takes the shared `--border`.\n neutral:\n 'ds:bg-muted ds:text-muted-foreground ds:border ds:border-[color:var(--border)]',\n info: 'ds:bg-info/15 ds:text-[var(--info-foreground)] ds:border ds:border-[color:var(--info-foreground)]',\n success:\n 'ds:bg-success/15 ds:text-[var(--success-foreground)] ds:border ds:border-[color:var(--success-foreground)]',\n warning:\n 'ds:bg-warning/15 ds:text-[var(--warning-foreground)] ds:border ds:border-[color:var(--warning-foreground)]',\n error:\n 'ds:bg-destructive/15 ds:text-[var(--error-foreground)] ds:border ds:border-[color:var(--error-foreground)]',\n // Solid-fill brand variants carry the same subtle foreground-mix edge as\n // Tag's solid fill, foreground paired with the semantic token. Use for\n // trust-signal chips in hero contexts where a tonal `info` / `neutral`\n // would blend into the brand backdrop.\n brand:\n 'ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)] ds:border ds:border-[color:color-mix(in_srgb,var(--foreground)_15%,transparent)]',\n accent:\n 'ds:bg-[var(--accent)] ds:text-[var(--accent-foreground)] ds:border ds:border-[color:color-mix(in_srgb,var(--foreground)_15%,transparent)]',\n // Tonal accent (magenta ≈ pink) — the `info` recipe applied to accent.\n // The kit has no paired tinted-accent foreground, so the label/edge tone\n // is mixed toward `--foreground` to clear AA on the wash (all 4 themes).\n accentSoft:\n 'ds:bg-[color:color-mix(in_srgb,var(--accent)_15%,transparent)] ds:text-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))] ds:border ds:border-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))]',\n },\n size: {\n sm: 'ds:h-4 ds:ps-1 ds:pe-1 ds:[--type-eyebrow-size:var(--font-size-2xs)]',\n md: 'ds:h-5 ds:ps-1.5 ds:pe-1.5 ds:[--type-eyebrow-size:var(--font-size-2xs)]',\n lg: 'ds:h-6 ds:ps-2 ds:pe-2 ds:[--type-eyebrow-size:var(--font-size-xs)]',\n },\n shape: {\n pill: 'ds:rounded-[var(--radius-full)]',\n rectangular: 'ds:rounded-[var(--radius-sm)]',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n size: 'md',\n shape: 'pill',\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — leading dot */\n/* ------------------------------------------------------------------ */\n\nconst dotVariants = cva(\n 'ds:text-[length:var(--font-size-dot)] ds:leading-none ds:shrink-0',\n {\n variants: {\n variant: {\n neutral: 'ds:text-muted-foreground',\n info: 'ds:text-info',\n success: 'ds:text-success',\n warning: 'ds:text-warning',\n error: 'ds:text-destructive',\n // Solid-fill variants: dot draws in the paired foreground tone so\n // it stays visible against the saturated primary/accent fill.\n brand: 'ds:text-[var(--primary-foreground)]',\n accent: 'ds:text-[var(--accent-foreground)]',\n accentSoft: 'ds:text-[var(--accent)]',\n },\n },\n defaultVariants: { variant: 'neutral' },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — leading icon wrapper */\n/* ------------------------------------------------------------------ */\n\nconst iconWrapperVariants = cva('ds:shrink-0 ds:[&>svg]:block', {\n variants: {\n size: {\n // Icons shrink with the compact Badge scale: sm badge is 16 px tall, so\n // a 10 px glyph leaves room for the 1 px internal padding.\n sm: 'ds:[&>svg]:size-2.5',\n md: 'ds:[&>svg]:size-3',\n lg: 'ds:[&>svg]:size-3.5',\n },\n },\n defaultVariants: { size: 'md' },\n});\n\n/* ------------------------------------------------------------------ */\n/* BadgeProps */\n/* ------------------------------------------------------------------ */\n\nexport interface BadgeProps\n extends\n React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n /** Leading icon — renders before the label */\n leading?: ReactNode;\n /** Show a leading dot indicator (● shape) for colour-blind accessibility */\n withDot?: boolean;\n /** Truncate long text with ellipsis + tooltip showing full text */\n truncate?: boolean;\n /**\n * For icon-only badges, provides the accessible name. For count (numeric)\n * badges, overrides the default \"{count} notifications\" screen-reader label\n * so a non-notification count reads correctly (e.g. `aria-label=\"4 treatments\"`).\n */\n 'aria-label'?: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Badge */\n/* ------------------------------------------------------------------ */\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (\n {\n variant = 'neutral',\n size = 'md',\n shape = 'pill',\n leading,\n withDot = false,\n truncate = false,\n className,\n children,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const isIconOnly = !children && !!ariaLabel;\n const isCount = typeof children === 'number';\n\n const badge = (\n <span\n ref={ref}\n className={badgeVariants({ variant, size, shape, className })}\n data-component=\"badge\"\n role={isIconOnly ? 'img' : undefined}\n aria-label={isIconOnly ? ariaLabel : undefined}\n {...props}\n >\n {withDot && (\n <span aria-hidden=\"true\" className={dotVariants({ variant })}>\n ●\n </span>\n )}\n {leading && (\n <span aria-hidden=\"true\" className={iconWrapperVariants({ size })}>\n {leading}\n </span>\n )}\n {!isIconOnly &&\n (isCount ? (\n <>\n <span aria-hidden=\"true\">{children}</span>\n <span className=\"ds:sr-only\">\n {ariaLabel ?? t('badge.notifications', { count: children })}\n </span>\n </>\n ) : truncate ? (\n <span className=\"ds:max-w-[var(--badge-truncate-max-width)] ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap\">\n {children}\n </span>\n ) : (\n children\n ))}\n </span>\n );\n\n if (truncate && typeof children === 'string') {\n return <Tooltip label={children}>{badge}</Tooltip>;\n }\n\n return badge;\n },\n);\n\nBadge.displayName = 'Badge';\n"],"names":["badgeVariants","cva","dotVariants","iconWrapperVariants","Badge","forwardRef","variant","size","shape","leading","withDot","truncate","className","children","ariaLabel","props","ref","t","useTranslation","isIconOnly","isCount","badge","jsxs","jsx","Fragment","Tooltip"],"mappings":"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"}
@@ -4,9 +4,9 @@ import { c as A } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as K } from "react-i18next";
5
5
  import { u as L } from "./registry-DvAUVLHh.js";
6
6
  import { F } from "./form-field-BOm9hK35.js";
7
- import { S as H } from "./select-DMLG44F5.js";
7
+ import { S as H } from "./select-KsyRr8WH.js";
8
8
  import { C as O } from "./card-DPmk26CL.js";
9
- import { B as M } from "./badge-CqGsX32l.js";
9
+ import { B as M } from "./badge-DCOqV9mI.js";
10
10
  import { I as j } from "./insert-result-njqBthzT.js";
11
11
  const D = [
12
12
  "dilation",
@@ -301,4 +301,4 @@ export {
301
301
  V as d,
302
302
  G as e
303
303
  };
304
- //# sourceMappingURL=bishop-score-PJI3AXzA.js.map
304
+ //# sourceMappingURL=bishop-score-Cym_TeQY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bishop-score-PJI3AXzA.js","sources":["../../src/components/bishop-score/bishop-score.agent.ts","../../src/components/bishop-score/bishop.ts","../../src/components/bishop-score/bishop-score.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — BishopScore. */\n/* */\n/* Cervical-favourability calculator. The agent-relevant surface is the */\n/* read-only computed result (total + band) plus the five enumerated */\n/* findings, and `set_value` actions to drive each finding. NO patient */\n/* identity is ever exposed — only the structural exam findings and the */\n/* derived score. The handle is the curated `BishopScoreHandle`, never */\n/* React state. See `src/docs/26-agent-readiness.mdx`. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { BishopScoreHandle } from './bishop-score';\nimport type { BishopComponent } from './bishop';\n\n/**\n * Enumerated finding ids, mirrored from `./bishop`'s `BISHOP_COMPONENTS`.\n * Inlined as a literal (rather than runtime-imported) so the ESM catalog\n * build can load this pure module without TS path resolution. The `satisfies`\n * keeps it in lockstep with the `BishopComponent` union at compile time.\n */\nconst COMPONENT_IDS = [\n 'dilation',\n 'effacement',\n 'station',\n 'consistency',\n 'position',\n] as const satisfies readonly BishopComponent[];\n\nexport const bishopScoreAgent: AgentAdapter<BishopScoreHandle> = {\n id: 'bishop-score',\n capabilities: ['set_value'],\n state: {\n selection: {\n type: 'Partial<Record<BishopComponent, string>>',\n descriptionKey: 'ui.agent.bishopScore.state.selection',\n description:\n 'The five cervical-exam findings keyed by component (dilation, effacement, station, consistency, position). Each value is an enumerated option key, not free text.',\n read: (handle) => handle.getSelection(),\n },\n result: {\n type: '{ total: number, band: string } | null',\n descriptionKey: 'ui.agent.bishopScore.state.result',\n description:\n 'Computed Bishop result — total (0–13) and favourability band (unfavourable / intermediate / favourable). Null until all five findings are set.',\n read: (handle) => handle.getResult(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ component: BishopComponent, value: string }',\n argsSchema: {\n type: 'object',\n properties: {\n component: {\n enum: [...COMPONENT_IDS],\n description: 'Which cervical-exam finding to set.',\n },\n value: {\n type: 'string',\n description:\n 'Enumerated option key for that finding (e.g. dilation \"closed\" | \"1-2\" | \"3-4\" | \"5+\").',\n },\n },\n required: ['component', 'value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.bishopScore.actions.setValue',\n description:\n 'Set one cervical-exam finding to an enumerated option value. Unknown component/value pairs are ignored.',\n examples: [\n {\n args: { component: 'dilation', value: '3-4' },\n note: 'Record cervical dilation of 3–4 cm (2 points).',\n },\n ],\n invoke: (handle, args: { component: BishopComponent; value: string }) => {\n handle.setComponent(args.component, args.value);\n },\n },\n reset: {\n safety: 'write',\n idempotent: true,\n descriptionKey: 'ui.agent.bishopScore.actions.reset',\n description: 'Clear all five findings and the computed result.',\n invoke: (handle) => {\n handle.reset();\n },\n },\n get_result: {\n safety: 'read',\n returns: '{ total: number, band: string } | null',\n returnsSchema: {\n oneOf: [\n {\n type: 'object',\n properties: {\n total: { type: 'integer', minimum: 0, maximum: 13 },\n band: {\n enum: ['unfavourable', 'intermediate', 'favourable'],\n },\n },\n required: ['total', 'band'],\n },\n { type: 'null' },\n ],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.bishopScore.actions.getResult',\n description:\n 'Return the computed Bishop result, or null until all five findings are set.',\n invoke: (handle) => handle.getResult(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'bishop-score',\n description: 'Marks the BishopScore calculator 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 calculator instance.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* Bishop score — cervical favourability for induction of labour. */\n/* */\n/* Pure, framework-free, unit-testable. Five components scored 0–3 */\n/* (dilation, effacement, station) or 0–2 (consistency, position), */\n/* summed to a 0–13 total. Bands per ACOG: ≤6 unfavourable (cervical */\n/* ripening advised), 7 intermediate, ≥8 favourable. */\n/* */\n/* Bishop EH, Obstet Gynecol 1964; thresholds per ACOG Practice */\n/* Bulletin 107 (Induction of Labor). */\n/* ------------------------------------------------------------------ */\n\nexport type BishopComponent =\n | 'dilation'\n | 'effacement'\n | 'station'\n | 'consistency'\n | 'position';\n\n/** The component fields in the order they are scored / displayed. */\nexport const BISHOP_COMPONENTS: readonly BishopComponent[] = [\n 'dilation',\n 'effacement',\n 'station',\n 'consistency',\n 'position',\n] as const;\n\nexport interface BishopOption {\n /** Stable value key → i18n lookup `bishopScore.<component>.<value>`. */\n value: string;\n /** Points this option contributes. */\n score: number;\n}\n\n/**\n * Scored options per component. Dilation / effacement / station run 0–3;\n * consistency / position run 0–2 (the classic Bishop weighting).\n */\nexport const BISHOP_OPTIONS: Record<BishopComponent, BishopOption[]> = {\n dilation: [\n { value: 'closed', score: 0 },\n { value: '1-2', score: 1 },\n { value: '3-4', score: 2 },\n { value: '5+', score: 3 },\n ],\n effacement: [\n { value: '0-30', score: 0 },\n { value: '40-50', score: 1 },\n { value: '60-70', score: 2 },\n { value: '80+', score: 3 },\n ],\n station: [\n { value: '-3', score: 0 },\n { value: '-2', score: 1 },\n { value: '-1-0', score: 2 },\n { value: '+1+2', score: 3 },\n ],\n consistency: [\n { value: 'firm', score: 0 },\n { value: 'medium', score: 1 },\n { value: 'soft', score: 2 },\n ],\n position: [\n { value: 'posterior', score: 0 },\n { value: 'mid', score: 1 },\n { value: 'anterior', score: 2 },\n ],\n};\n\nexport type BishopBand = 'unfavourable' | 'intermediate' | 'favourable';\n\n/** Highest attainable total (3 + 3 + 3 + 2 + 2). */\nexport const BISHOP_MAX_SCORE = 13;\n\n/** Classify a total into a favourability band (ACOG thresholds). */\nexport function bishopBand(total: number): BishopBand {\n if (total <= 6) return 'unfavourable';\n if (total >= 8) return 'favourable';\n return 'intermediate';\n}\n\nexport type BishopSelection = Partial<Record<BishopComponent, string>>;\n\nexport interface BishopResult {\n total: number;\n band: BishopBand;\n}\n\n/** Look up the score for a component's selected option, or `null` if unknown. */\nfunction scoreFor(component: BishopComponent, value: string): number | null {\n return (\n BISHOP_OPTIONS[component].find((o) => o.value === value)?.score ?? null\n );\n}\n\n/**\n * Sum the Bishop score. Returns `null` until every one of the five components\n * has a valid selection (a partial exam doesn't yield a meaningful total).\n */\nexport function bishopScore(selection: BishopSelection): BishopResult | null {\n let total = 0;\n for (const component of BISHOP_COMPONENTS) {\n const value = selection[component];\n if (value === undefined) return null;\n const score = scoreFor(component, value);\n if (score === null) return null;\n total += score;\n }\n return { total, band: bishopBand(total) };\n}\n","/* ------------------------------------------------------------------ */\n/* BishopScore — cervical favourability for induction of labour. */\n/* */\n/* Five enumerated cervical-exam findings → a 0–13 total with a */\n/* favourability band. Maths lives in `./bishop` (pure, tested). */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { bishopScoreAgent } from './bishop-score.agent';\nimport { FormField } from '../form-field';\nimport { Select } from '../select';\nimport { Card } from '../card';\nimport { Badge } from '../badge';\nimport {\n InsertButton,\n type InsertPayload,\n type InsertVariant,\n type InsertMode,\n} from '../_shared/insert-result';\nimport {\n type BishopComponent,\n type BishopSelection,\n type BishopResult,\n type BishopBand,\n BISHOP_COMPONENTS,\n BISHOP_OPTIONS,\n BISHOP_MAX_SCORE,\n bishopScore,\n} from './bishop';\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]', {\n variants: {\n width: { full: 'ds:w-full', auto: 'ds:inline-flex' },\n },\n defaultVariants: { width: 'full' },\n});\n\n/** Band → on-screen Badge variant + inserted-card chip token. */\nconst BAND_BADGE: Record<BishopBand, 'warning' | 'info' | 'success'> = {\n unfavourable: 'warning',\n intermediate: 'info',\n favourable: 'success',\n};\nconst BAND_TOKEN: Record<BishopBand, string> = {\n unfavourable: '--warning-readable',\n intermediate: '--info',\n favourable: '--success',\n};\n\nexport interface BishopScoreProps extends VariantProps<typeof rootVariants> {\n /** Fires whenever all five findings are set (and `null` when not). */\n onResultChange?: (result: BishopResult | null) => void;\n /** When provided, shows the result-action buttons that emit / copy the result. */\n onInsert?: (payload: InsertPayload) => void;\n /** Which verb the result button performs. Defaults to `'insert'`. */\n insertVariant?: InsertVariant;\n /** `copy` variant only — fired after a successful clipboard write. */\n onCopy?: (mode: InsertMode) => void;\n /** `copy` variant only — fired if the clipboard write can't proceed. */\n onError?: (error: unknown) => void;\n /** Brand wordmark printed in the inserted/copied result-card footer. */\n insertBrand?: string | false;\n /** Opaque instance id, emitted as `data-component-id`. */\n id?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\n/**\n * Curated imperative handle for agent / external automation. Exposes the\n * structural exam findings + computed result and lets a caller set one\n * finding at a time. Never exposes patient identity. Consumed by the\n * `bishop-score.agent.ts` adapter; the public `ref` stays the DOM element.\n */\nexport interface BishopScoreHandle {\n /** Snapshot of the five findings keyed by component. */\n getSelection: () => BishopSelection;\n /** Current computed result, or null until all five findings are set. */\n getResult: () => BishopResult | null;\n /** Set one finding to an enumerated option value (unknown pairs are ignored). */\n setComponent: (component: BishopComponent, value: string) => void;\n /** Clear all findings. */\n reset: () => void;\n}\n\nexport const BishopScore = forwardRef<HTMLDivElement, BishopScoreProps>(\n (\n {\n onResultChange,\n onInsert,\n insertVariant = 'insert',\n onCopy,\n onError,\n insertBrand,\n id,\n width,\n className,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const [selection, setSelection] = useState<BishopSelection>({});\n\n const result = useMemo(() => bishopScore(selection), [selection]);\n\n useEffect(() => {\n onResultChange?.(result);\n }, [result, onResultChange]);\n\n // Live refs so the once-built agent handle reads/writes current state\n // without re-creating on every keystroke. Public `ref` stays the DOM node.\n const selectionRef = useRef(selection);\n selectionRef.current = selection;\n const resultRef = useRef(result);\n resultRef.current = result;\n const agentHandle = useMemo<BishopScoreHandle>(\n () => ({\n getSelection: () => ({ ...selectionRef.current }),\n getResult: () => resultRef.current,\n setComponent: (component, value) => {\n const allowed = BISHOP_OPTIONS[component]?.some(\n (o) => o.value === value,\n );\n if (!allowed) return;\n setSelection((prev) => ({ ...prev, [component]: value }));\n },\n reset: () => setSelection({}),\n }),\n [],\n );\n useAgentRegistration(bishopScoreAgent, agentHandle, id);\n\n const optionsFor = (component: BishopComponent) =>\n BISHOP_OPTIONS[component].map((o) => ({\n value: o.value,\n label: t(`bishopScore.${component}.${o.value}`),\n }));\n\n const bandLabel = (band: BishopBand): string =>\n t(`bishopScore.band.${band}`);\n\n return (\n <div\n ref={ref}\n data-component=\"bishop-score\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n {BISHOP_COMPONENTS.map((component) => (\n <FormField\n key={component}\n label={t(`bishopScore.${component}.label`)}\n >\n <Select\n options={optionsFor(component)}\n value={selection[component] ?? ''}\n onValueChange={(next) =>\n setSelection((prev) => ({ ...prev, [component]: next }))\n }\n />\n </FormField>\n ))}\n </div>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {result\n ? `${t('bishopScore.totalLabel')}: ${t('bishopScore.scoreOf', {\n score: result.total,\n max: BISHOP_MAX_SCORE,\n })}. ${bandLabel(result.band)}.`\n : ''}\n </p>\n\n {result ? (\n <Card variant=\"elevated\">\n <Card.Body className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\">\n <dl className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n <div className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('bishopScore.totalLabel')}\n </dt>\n <dd className=\"type-metric ds:text-foreground\">\n {t('bishopScore.scoreOf', {\n score: result.total,\n max: BISHOP_MAX_SCORE,\n })}\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:items-end ds:gap-[var(--spacing-xs)] ds:text-end\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('bishopScore.bandLabel')}\n </dt>\n <dd>\n <Badge variant={BAND_BADGE[result.band]} size=\"lg\">\n {bandLabel(result.band)}\n </Badge>\n </dd>\n </div>\n </dl>\n <p className=\"type-body-sm ds:text-muted-foreground\">\n {t(`bishopScore.interpretation.${result.band}`)}\n </p>\n {insertVariant === 'copy' || onInsert ? (\n <InsertButton\n onInsert={onInsert}\n variant={insertVariant}\n onCopy={onCopy}\n onError={onError}\n card={{\n title: t('insert.title.bishop'),\n icon: 'activity',\n highlight: bandLabel(result.band),\n highlightToken: BAND_TOKEN[result.band],\n brand: insertBrand,\n fields: [\n {\n icon: 'percent',\n label: t('bishopScore.totalLabel'),\n value: t('bishopScore.scoreOf', {\n score: result.total,\n max: BISHOP_MAX_SCORE,\n }),\n },\n {\n icon: 'tag',\n label: t('bishopScore.bandLabel'),\n value: bandLabel(result.band),\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('bishopScore.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nBishopScore.displayName = 'BishopScore';\n"],"names":["COMPONENT_IDS","bishopScoreAgent","handle","args","BISHOP_COMPONENTS","BISHOP_OPTIONS","BISHOP_MAX_SCORE","bishopBand","total","scoreFor","component","value","_a","o","bishopScore","selection","score","rootVariants","cva","BAND_BADGE","BAND_TOKEN","BishopScore","forwardRef","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","useTranslation","setSelection","useState","result","useMemo","useEffect","selectionRef","useRef","resultRef","agentHandle","prev","useAgentRegistration","optionsFor","bandLabel","band","jsxs","jsx","FormField","Select","next","Card","Badge","InsertButton"],"mappings":"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"}
1
+ {"version":3,"file":"bishop-score-Cym_TeQY.js","sources":["../../src/components/bishop-score/bishop-score.agent.ts","../../src/components/bishop-score/bishop.ts","../../src/components/bishop-score/bishop-score.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — BishopScore. */\n/* */\n/* Cervical-favourability calculator. The agent-relevant surface is the */\n/* read-only computed result (total + band) plus the five enumerated */\n/* findings, and `set_value` actions to drive each finding. NO patient */\n/* identity is ever exposed — only the structural exam findings and the */\n/* derived score. The handle is the curated `BishopScoreHandle`, never */\n/* React state. See `src/docs/26-agent-readiness.mdx`. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { BishopScoreHandle } from './bishop-score';\nimport type { BishopComponent } from './bishop';\n\n/**\n * Enumerated finding ids, mirrored from `./bishop`'s `BISHOP_COMPONENTS`.\n * Inlined as a literal (rather than runtime-imported) so the ESM catalog\n * build can load this pure module without TS path resolution. The `satisfies`\n * keeps it in lockstep with the `BishopComponent` union at compile time.\n */\nconst COMPONENT_IDS = [\n 'dilation',\n 'effacement',\n 'station',\n 'consistency',\n 'position',\n] as const satisfies readonly BishopComponent[];\n\nexport const bishopScoreAgent: AgentAdapter<BishopScoreHandle> = {\n id: 'bishop-score',\n capabilities: ['set_value'],\n state: {\n selection: {\n type: 'Partial<Record<BishopComponent, string>>',\n descriptionKey: 'ui.agent.bishopScore.state.selection',\n description:\n 'The five cervical-exam findings keyed by component (dilation, effacement, station, consistency, position). Each value is an enumerated option key, not free text.',\n read: (handle) => handle.getSelection(),\n },\n result: {\n type: '{ total: number, band: string } | null',\n descriptionKey: 'ui.agent.bishopScore.state.result',\n description:\n 'Computed Bishop result — total (0–13) and favourability band (unfavourable / intermediate / favourable). Null until all five findings are set.',\n read: (handle) => handle.getResult(),\n },\n },\n actions: {\n set_value: {\n safety: 'write',\n argsType: '{ component: BishopComponent, value: string }',\n argsSchema: {\n type: 'object',\n properties: {\n component: {\n enum: [...COMPONENT_IDS],\n description: 'Which cervical-exam finding to set.',\n },\n value: {\n type: 'string',\n description:\n 'Enumerated option key for that finding (e.g. dilation \"closed\" | \"1-2\" | \"3-4\" | \"5+\").',\n },\n },\n required: ['component', 'value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.bishopScore.actions.setValue',\n description:\n 'Set one cervical-exam finding to an enumerated option value. Unknown component/value pairs are ignored.',\n examples: [\n {\n args: { component: 'dilation', value: '3-4' },\n note: 'Record cervical dilation of 3–4 cm (2 points).',\n },\n ],\n invoke: (handle, args: { component: BishopComponent; value: string }) => {\n handle.setComponent(args.component, args.value);\n },\n },\n reset: {\n safety: 'write',\n idempotent: true,\n descriptionKey: 'ui.agent.bishopScore.actions.reset',\n description: 'Clear all five findings and the computed result.',\n invoke: (handle) => {\n handle.reset();\n },\n },\n get_result: {\n safety: 'read',\n returns: '{ total: number, band: string } | null',\n returnsSchema: {\n oneOf: [\n {\n type: 'object',\n properties: {\n total: { type: 'integer', minimum: 0, maximum: 13 },\n band: {\n enum: ['unfavourable', 'intermediate', 'favourable'],\n },\n },\n required: ['total', 'band'],\n },\n { type: 'null' },\n ],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.bishopScore.actions.getResult',\n description:\n 'Return the computed Bishop result, or null until all five findings are set.',\n invoke: (handle) => handle.getResult(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'bishop-score',\n description: 'Marks the BishopScore calculator 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 calculator instance.',\n },\n },\n};\n","/* ------------------------------------------------------------------ */\n/* Bishop score — cervical favourability for induction of labour. */\n/* */\n/* Pure, framework-free, unit-testable. Five components scored 0–3 */\n/* (dilation, effacement, station) or 0–2 (consistency, position), */\n/* summed to a 0–13 total. Bands per ACOG: ≤6 unfavourable (cervical */\n/* ripening advised), 7 intermediate, ≥8 favourable. */\n/* */\n/* Bishop EH, Obstet Gynecol 1964; thresholds per ACOG Practice */\n/* Bulletin 107 (Induction of Labor). */\n/* ------------------------------------------------------------------ */\n\nexport type BishopComponent =\n | 'dilation'\n | 'effacement'\n | 'station'\n | 'consistency'\n | 'position';\n\n/** The component fields in the order they are scored / displayed. */\nexport const BISHOP_COMPONENTS: readonly BishopComponent[] = [\n 'dilation',\n 'effacement',\n 'station',\n 'consistency',\n 'position',\n] as const;\n\nexport interface BishopOption {\n /** Stable value key → i18n lookup `bishopScore.<component>.<value>`. */\n value: string;\n /** Points this option contributes. */\n score: number;\n}\n\n/**\n * Scored options per component. Dilation / effacement / station run 0–3;\n * consistency / position run 0–2 (the classic Bishop weighting).\n */\nexport const BISHOP_OPTIONS: Record<BishopComponent, BishopOption[]> = {\n dilation: [\n { value: 'closed', score: 0 },\n { value: '1-2', score: 1 },\n { value: '3-4', score: 2 },\n { value: '5+', score: 3 },\n ],\n effacement: [\n { value: '0-30', score: 0 },\n { value: '40-50', score: 1 },\n { value: '60-70', score: 2 },\n { value: '80+', score: 3 },\n ],\n station: [\n { value: '-3', score: 0 },\n { value: '-2', score: 1 },\n { value: '-1-0', score: 2 },\n { value: '+1+2', score: 3 },\n ],\n consistency: [\n { value: 'firm', score: 0 },\n { value: 'medium', score: 1 },\n { value: 'soft', score: 2 },\n ],\n position: [\n { value: 'posterior', score: 0 },\n { value: 'mid', score: 1 },\n { value: 'anterior', score: 2 },\n ],\n};\n\nexport type BishopBand = 'unfavourable' | 'intermediate' | 'favourable';\n\n/** Highest attainable total (3 + 3 + 3 + 2 + 2). */\nexport const BISHOP_MAX_SCORE = 13;\n\n/** Classify a total into a favourability band (ACOG thresholds). */\nexport function bishopBand(total: number): BishopBand {\n if (total <= 6) return 'unfavourable';\n if (total >= 8) return 'favourable';\n return 'intermediate';\n}\n\nexport type BishopSelection = Partial<Record<BishopComponent, string>>;\n\nexport interface BishopResult {\n total: number;\n band: BishopBand;\n}\n\n/** Look up the score for a component's selected option, or `null` if unknown. */\nfunction scoreFor(component: BishopComponent, value: string): number | null {\n return (\n BISHOP_OPTIONS[component].find((o) => o.value === value)?.score ?? null\n );\n}\n\n/**\n * Sum the Bishop score. Returns `null` until every one of the five components\n * has a valid selection (a partial exam doesn't yield a meaningful total).\n */\nexport function bishopScore(selection: BishopSelection): BishopResult | null {\n let total = 0;\n for (const component of BISHOP_COMPONENTS) {\n const value = selection[component];\n if (value === undefined) return null;\n const score = scoreFor(component, value);\n if (score === null) return null;\n total += score;\n }\n return { total, band: bishopBand(total) };\n}\n","/* ------------------------------------------------------------------ */\n/* BishopScore — cervical favourability for induction of labour. */\n/* */\n/* Five enumerated cervical-exam findings → a 0–13 total with a */\n/* favourability band. Maths lives in `./bishop` (pure, tested). */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { bishopScoreAgent } from './bishop-score.agent';\nimport { FormField } from '../form-field';\nimport { Select } from '../select';\nimport { Card } from '../card';\nimport { Badge } from '../badge';\nimport {\n InsertButton,\n type InsertPayload,\n type InsertVariant,\n type InsertMode,\n} from '../_shared/insert-result';\nimport {\n type BishopComponent,\n type BishopSelection,\n type BishopResult,\n type BishopBand,\n BISHOP_COMPONENTS,\n BISHOP_OPTIONS,\n BISHOP_MAX_SCORE,\n bishopScore,\n} from './bishop';\n\nconst rootVariants = cva('ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]', {\n variants: {\n width: { full: 'ds:w-full', auto: 'ds:inline-flex' },\n },\n defaultVariants: { width: 'full' },\n});\n\n/** Band → on-screen Badge variant + inserted-card chip token. */\nconst BAND_BADGE: Record<BishopBand, 'warning' | 'info' | 'success'> = {\n unfavourable: 'warning',\n intermediate: 'info',\n favourable: 'success',\n};\nconst BAND_TOKEN: Record<BishopBand, string> = {\n unfavourable: '--warning-readable',\n intermediate: '--info',\n favourable: '--success',\n};\n\nexport interface BishopScoreProps extends VariantProps<typeof rootVariants> {\n /** Fires whenever all five findings are set (and `null` when not). */\n onResultChange?: (result: BishopResult | null) => void;\n /** When provided, shows the result-action buttons that emit / copy the result. */\n onInsert?: (payload: InsertPayload) => void;\n /** Which verb the result button performs. Defaults to `'insert'`. */\n insertVariant?: InsertVariant;\n /** `copy` variant only — fired after a successful clipboard write. */\n onCopy?: (mode: InsertMode) => void;\n /** `copy` variant only — fired if the clipboard write can't proceed. */\n onError?: (error: unknown) => void;\n /** Brand wordmark printed in the inserted/copied result-card footer. */\n insertBrand?: string | false;\n /** Opaque instance id, emitted as `data-component-id`. */\n id?: string;\n /** Extra class names on the wrapper. */\n className?: string;\n}\n\n/**\n * Curated imperative handle for agent / external automation. Exposes the\n * structural exam findings + computed result and lets a caller set one\n * finding at a time. Never exposes patient identity. Consumed by the\n * `bishop-score.agent.ts` adapter; the public `ref` stays the DOM element.\n */\nexport interface BishopScoreHandle {\n /** Snapshot of the five findings keyed by component. */\n getSelection: () => BishopSelection;\n /** Current computed result, or null until all five findings are set. */\n getResult: () => BishopResult | null;\n /** Set one finding to an enumerated option value (unknown pairs are ignored). */\n setComponent: (component: BishopComponent, value: string) => void;\n /** Clear all findings. */\n reset: () => void;\n}\n\nexport const BishopScore = forwardRef<HTMLDivElement, BishopScoreProps>(\n (\n {\n onResultChange,\n onInsert,\n insertVariant = 'insert',\n onCopy,\n onError,\n insertBrand,\n id,\n width,\n className,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const [selection, setSelection] = useState<BishopSelection>({});\n\n const result = useMemo(() => bishopScore(selection), [selection]);\n\n useEffect(() => {\n onResultChange?.(result);\n }, [result, onResultChange]);\n\n // Live refs so the once-built agent handle reads/writes current state\n // without re-creating on every keystroke. Public `ref` stays the DOM node.\n const selectionRef = useRef(selection);\n selectionRef.current = selection;\n const resultRef = useRef(result);\n resultRef.current = result;\n const agentHandle = useMemo<BishopScoreHandle>(\n () => ({\n getSelection: () => ({ ...selectionRef.current }),\n getResult: () => resultRef.current,\n setComponent: (component, value) => {\n const allowed = BISHOP_OPTIONS[component]?.some(\n (o) => o.value === value,\n );\n if (!allowed) return;\n setSelection((prev) => ({ ...prev, [component]: value }));\n },\n reset: () => setSelection({}),\n }),\n [],\n );\n useAgentRegistration(bishopScoreAgent, agentHandle, id);\n\n const optionsFor = (component: BishopComponent) =>\n BISHOP_OPTIONS[component].map((o) => ({\n value: o.value,\n label: t(`bishopScore.${component}.${o.value}`),\n }));\n\n const bandLabel = (band: BishopBand): string =>\n t(`bishopScore.band.${band}`);\n\n return (\n <div\n ref={ref}\n data-component=\"bishop-score\"\n data-component-id={id}\n className={rootVariants({ width, className })}\n >\n <div className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n {BISHOP_COMPONENTS.map((component) => (\n <FormField\n key={component}\n label={t(`bishopScore.${component}.label`)}\n >\n <Select\n options={optionsFor(component)}\n value={selection[component] ?? ''}\n onValueChange={(next) =>\n setSelection((prev) => ({ ...prev, [component]: next }))\n }\n />\n </FormField>\n ))}\n </div>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {result\n ? `${t('bishopScore.totalLabel')}: ${t('bishopScore.scoreOf', {\n score: result.total,\n max: BISHOP_MAX_SCORE,\n })}. ${bandLabel(result.band)}.`\n : ''}\n </p>\n\n {result ? (\n <Card variant=\"elevated\">\n <Card.Body className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-md)]\">\n <dl className=\"ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)] ds:sm:grid-cols-2\">\n <div className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('bishopScore.totalLabel')}\n </dt>\n <dd className=\"type-metric ds:text-foreground\">\n {t('bishopScore.scoreOf', {\n score: result.total,\n max: BISHOP_MAX_SCORE,\n })}\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:items-end ds:gap-[var(--spacing-xs)] ds:text-end\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('bishopScore.bandLabel')}\n </dt>\n <dd>\n <Badge variant={BAND_BADGE[result.band]} size=\"lg\">\n {bandLabel(result.band)}\n </Badge>\n </dd>\n </div>\n </dl>\n <p className=\"type-body-sm ds:text-muted-foreground\">\n {t(`bishopScore.interpretation.${result.band}`)}\n </p>\n {insertVariant === 'copy' || onInsert ? (\n <InsertButton\n onInsert={onInsert}\n variant={insertVariant}\n onCopy={onCopy}\n onError={onError}\n card={{\n title: t('insert.title.bishop'),\n icon: 'activity',\n highlight: bandLabel(result.band),\n highlightToken: BAND_TOKEN[result.band],\n brand: insertBrand,\n fields: [\n {\n icon: 'percent',\n label: t('bishopScore.totalLabel'),\n value: t('bishopScore.scoreOf', {\n score: result.total,\n max: BISHOP_MAX_SCORE,\n }),\n },\n {\n icon: 'tag',\n label: t('bishopScore.bandLabel'),\n value: bandLabel(result.band),\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('bishopScore.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nBishopScore.displayName = 'BishopScore';\n"],"names":["COMPONENT_IDS","bishopScoreAgent","handle","args","BISHOP_COMPONENTS","BISHOP_OPTIONS","BISHOP_MAX_SCORE","bishopBand","total","scoreFor","component","value","_a","o","bishopScore","selection","score","rootVariants","cva","BAND_BADGE","BAND_TOKEN","BishopScore","forwardRef","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","useTranslation","setSelection","useState","result","useMemo","useEffect","selectionRef","useRef","resultRef","agentHandle","prev","useAgentRegistration","optionsFor","bandLabel","band","jsxs","jsx","FormField","Select","next","Card","Badge","InsertButton"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { R as ue } from "./radio-group-BPt7pKZW.js";
8
8
  import { F as G } from "./form-field-BOm9hK35.js";
9
9
  import { N as L } from "./number-input-DxphVG_A.js";
10
10
  import { C as j } from "./card-DPmk26CL.js";
11
- import { B as me } from "./badge-CqGsX32l.js";
11
+ import { B as me } from "./badge-DCOqV9mI.js";
12
12
  import { B as de, I as ge, b as pe } from "./insert-result-njqBthzT.js";
13
13
  import { c as q, b as he, e as be, l as D, f as V, k as z } from "./bmi-BxD-tFzU.js";
14
14
  const ye = {
@@ -431,4 +431,4 @@ we.displayName = "BmiCalculator";
431
431
  export {
432
432
  we as B
433
433
  };
434
- //# sourceMappingURL=bmi-calculator-BZtIJ53x.js.map
434
+ //# sourceMappingURL=bmi-calculator-zjeY4E7J.js.map