@alfadocs/ui-kit-debug 0.68.0 → 0.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (930) hide show
  1. package/dist/_chunks/{accordion-9lJSMMsZ.js → accordion-DnIa7OHX.js} +69 -47
  2. package/dist/_chunks/accordion-DnIa7OHX.js.map +1 -0
  3. package/dist/_chunks/address-autocomplete-BEX9PXty.js +496 -0
  4. package/dist/_chunks/address-autocomplete-BEX9PXty.js.map +1 -0
  5. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  6. package/dist/_chunks/{agenda-card-BxSFkqgY.js.map → agenda-card-BQ-IKAru.js.map} +1 -1
  7. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js → agenda-card.agent-mTCrkKSZ.js} +6 -1
  8. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js.map → agenda-card.agent-mTCrkKSZ.js.map} +1 -1
  9. package/dist/_chunks/{agenda-tray-T-BumlGZ.js → agenda-tray-CGXRk58j.js} +37 -25
  10. package/dist/_chunks/agenda-tray-CGXRk58j.js.map +1 -0
  11. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js → ai-consent-banner-Be-h9mRI.js} +5 -5
  12. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js.map → ai-consent-banner-Be-h9mRI.js.map} +1 -1
  13. package/dist/_chunks/{ai-prompt-input-BwEACCPm.js → ai-prompt-input-CuhTo9mh.js} +80 -61
  14. package/dist/_chunks/ai-prompt-input-CuhTo9mh.js.map +1 -0
  15. package/dist/_chunks/ai-tools-rail-B5NEghsp.js +511 -0
  16. package/dist/_chunks/ai-tools-rail-B5NEghsp.js.map +1 -0
  17. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  18. package/dist/_chunks/alert-CHYZ96tR.js.map +1 -0
  19. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js → alia-sidebar-B47qRQb5.js} +5 -5
  20. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js.map → alia-sidebar-B47qRQb5.js.map} +1 -1
  21. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js → anamnesis-card-DvYCa16e.js} +3 -3
  22. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js.map → anamnesis-card-DvYCa16e.js.map} +1 -1
  23. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
  24. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js.map +1 -0
  25. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  26. package/dist/_chunks/annotation-marker-qt5R9WZX.js.map +1 -0
  27. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  28. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js.map → antenatal-schedule-timeline-CwXrQRm1.js.map} +1 -1
  29. package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
  30. package/dist/_chunks/appointment-card-C06aZqA7.js.map +1 -0
  31. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
  32. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js.map +1 -0
  33. package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
  34. package/dist/_chunks/appointment-tray-DRRw5ROi.js.map +1 -0
  35. package/dist/_chunks/{audio-recorder-DjXLP4aF.js → audio-recorder-Cpdk5qpQ.js} +60 -57
  36. package/dist/_chunks/audio-recorder-Cpdk5qpQ.js.map +1 -0
  37. package/dist/_chunks/{autocomplete-CcCFlVf-.js → autocomplete-DOeGouCL.js} +157 -132
  38. package/dist/_chunks/autocomplete-DOeGouCL.js.map +1 -0
  39. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  40. package/dist/_chunks/badge-DCOqV9mI.js.map +1 -0
  41. package/dist/_chunks/bishop-score-DnYWtZa_.js +304 -0
  42. package/dist/_chunks/bishop-score-DnYWtZa_.js.map +1 -0
  43. package/dist/_chunks/bmi-calculator-zjeY4E7J.js +434 -0
  44. package/dist/_chunks/bmi-calculator-zjeY4E7J.js.map +1 -0
  45. package/dist/_chunks/{booking-L8-YP8BJ.js → booking-DUBI0oqt.js} +422 -399
  46. package/dist/_chunks/booking-DUBI0oqt.js.map +1 -0
  47. package/dist/_chunks/{breadcrumb-OTbaY70e.js → breadcrumb-CchdeG7d.js} +42 -28
  48. package/dist/_chunks/breadcrumb-CchdeG7d.js.map +1 -0
  49. package/dist/_chunks/{calculator-dialog-CFk4I91b.js → calculator-dialog-BR5iU0kf.js} +2 -2
  50. package/dist/_chunks/{calculator-dialog-CFk4I91b.js.map → calculator-dialog-BR5iU0kf.js.map} +1 -1
  51. package/dist/_chunks/{calendar-oYWOCrnf.js → calendar-CZUjL8SZ.js} +258 -201
  52. package/dist/_chunks/calendar-CZUjL8SZ.js.map +1 -0
  53. package/dist/_chunks/{care-plan-card-BwVUyUBb.js → care-plan-card-C5sTfY9G.js} +13 -9
  54. package/dist/_chunks/care-plan-card-C5sTfY9G.js.map +1 -0
  55. package/dist/_chunks/{care-plan-entry-card-VzdQHcOL.js → care-plan-entry-card-CXnxGCWA.js} +20 -16
  56. package/dist/_chunks/care-plan-entry-card-CXnxGCWA.js.map +1 -0
  57. package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
  58. package/dist/_chunks/care-plan-header-BUwqDTtz.js.map +1 -0
  59. package/dist/_chunks/{carousel.agent-vt21A_el.js → carousel.agent-4v8Emr9E.js} +219 -198
  60. package/dist/_chunks/{carousel.agent-vt21A_el.js.map → carousel.agent-4v8Emr9E.js.map} +1 -1
  61. package/dist/_chunks/{chart-Cg3e9EH9.js → chart-CMr3eW62.js} +150 -109
  62. package/dist/_chunks/chart-CMr3eW62.js.map +1 -0
  63. package/dist/_chunks/{chat-container-ogB4OskO.js → chat-container-DWho5hPR.js} +47 -34
  64. package/dist/_chunks/chat-container-DWho5hPR.js.map +1 -0
  65. package/dist/_chunks/{chat-input-B5zjNEUN.js → chat-input-BcXTetgM.js} +57 -41
  66. package/dist/_chunks/chat-input-BcXTetgM.js.map +1 -0
  67. package/dist/_chunks/{checkbox-DRcOdmXv.js → checkbox-BuZ1u__2.js} +41 -27
  68. package/dist/_chunks/checkbox-BuZ1u__2.js.map +1 -0
  69. package/dist/_chunks/{checkbox-group-CpUwlHug.js → checkbox-group-PqNmQ-cE.js} +3 -3
  70. package/dist/_chunks/{checkbox-group-CpUwlHug.js.map → checkbox-group-PqNmQ-cE.js.map} +1 -1
  71. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  72. package/dist/_chunks/clinical-note-card-BUvNMNGL.js.map +1 -0
  73. package/dist/_chunks/{collapsible-X3oaLPU3.js → collapsible-BrnRiCC6.js} +26 -23
  74. package/dist/_chunks/collapsible-BrnRiCC6.js.map +1 -0
  75. package/dist/_chunks/{color-picker-FXpItIaF.js → color-picker-C_fZl6sA.js} +124 -112
  76. package/dist/_chunks/color-picker-C_fZl6sA.js.map +1 -0
  77. package/dist/_chunks/{combobox-BC-DFx8G.js → combobox-Clum7gJ1.js} +165 -128
  78. package/dist/_chunks/combobox-Clum7gJ1.js.map +1 -0
  79. package/dist/_chunks/{command-palette-BiPAAno-.js → command-palette-CJzmc5pC.js} +87 -64
  80. package/dist/_chunks/command-palette-CJzmc5pC.js.map +1 -0
  81. package/dist/_chunks/{contact-profile-card-7BMB85T6.js → contact-profile-card-DDPwRFiP.js} +13 -11
  82. package/dist/_chunks/contact-profile-card-DDPwRFiP.js.map +1 -0
  83. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
  84. package/dist/_chunks/control-room-rail-Y8ryLYsP.js.map +1 -0
  85. package/dist/_chunks/{copy-field-CCq7j6Zc.js → copy-field-Bjw9u2cV.js} +42 -35
  86. package/dist/_chunks/copy-field-Bjw9u2cV.js.map +1 -0
  87. package/dist/_chunks/counter-dRlTNC_y.js +55 -0
  88. package/dist/_chunks/counter-dRlTNC_y.js.map +1 -0
  89. package/dist/_chunks/{cycle-calculator-BF0ointe.js → cycle-calculator-CCmPwcBl.js} +4 -4
  90. package/dist/_chunks/{cycle-calculator-BF0ointe.js.map → cycle-calculator-CCmPwcBl.js.map} +1 -1
  91. package/dist/_chunks/{date-picker-oGg5BnXL.js → date-picker-Dl9RKxaV.js} +76 -57
  92. package/dist/_chunks/{date-picker-oGg5BnXL.js.map → date-picker-Dl9RKxaV.js.map} +1 -1
  93. package/dist/_chunks/{date-range-picker-C5BWfH_T.js → date-range-picker-CTUeR6Bj.js} +73 -46
  94. package/dist/_chunks/date-range-picker-CTUeR6Bj.js.map +1 -0
  95. package/dist/_chunks/{date-time-picker-Ze1My59T.js → date-time-picker-BhoogS5Q.js} +64 -40
  96. package/dist/_chunks/date-time-picker-BhoogS5Q.js.map +1 -0
  97. package/dist/_chunks/{dependent-selector-DpzGtr_J.js → dependent-selector-DUV4thxX.js} +45 -31
  98. package/dist/_chunks/dependent-selector-DUV4thxX.js.map +1 -0
  99. package/dist/_chunks/{dialog-DMGnSelc.js → dialog-ZNuboNmy.js} +35 -28
  100. package/dist/_chunks/dialog-ZNuboNmy.js.map +1 -0
  101. package/dist/_chunks/{document-scanner-D2qehl3-.js → document-scanner-C_AxLooF.js} +13 -5
  102. package/dist/_chunks/document-scanner-C_AxLooF.js.map +1 -0
  103. package/dist/_chunks/{dropdown-menu-DwwPovMZ.js → dropdown-menu-qrxjymfw.js} +94 -93
  104. package/dist/_chunks/dropdown-menu-qrxjymfw.js.map +1 -0
  105. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js → due-date-calculator-Brdj-euS.js} +6 -6
  106. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js.map → due-date-calculator-Brdj-euS.js.map} +1 -1
  107. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
  108. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js.map +1 -0
  109. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  110. package/dist/_chunks/{email-input-lQivsFrw.js.map → email-input-DJ7EXklP.js.map} +1 -1
  111. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
  112. package/dist/_chunks/{entity-card-COhmqHly.js.map → entity-card-9_62gY7l.js.map} +1 -1
  113. package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
  114. package/dist/_chunks/entity-summary-BxRjFh_4.js.map +1 -0
  115. package/dist/_chunks/{fetal-weight-BVSzOhuR.js → fetal-weight-DNCkyeVo.js} +3 -3
  116. package/dist/_chunks/{fetal-weight-BVSzOhuR.js.map → fetal-weight-DNCkyeVo.js.map} +1 -1
  117. package/dist/_chunks/field-value-NXYczdpO.js +415 -0
  118. package/dist/_chunks/field-value-NXYczdpO.js.map +1 -0
  119. package/dist/_chunks/{file-upload-BosbPDb1.js → file-upload-DwZcAK8D.js} +119 -100
  120. package/dist/_chunks/file-upload-DwZcAK8D.js.map +1 -0
  121. package/dist/_chunks/{fiscal-code-input-DPtqluVb.js → fiscal-code-input-Cf-8O4Fj.js} +76 -63
  122. package/dist/_chunks/fiscal-code-input-Cf-8O4Fj.js.map +1 -0
  123. package/dist/_chunks/{freemium-paywall-CkWjv3o6.js → freemium-paywall-WYlNO7yT.js} +78 -71
  124. package/dist/_chunks/freemium-paywall-WYlNO7yT.js.map +1 -0
  125. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js → gestational-age-calculator-CF2ISaYQ.js} +7 -7
  126. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js.map → gestational-age-calculator-CF2ISaYQ.js.map} +1 -1
  127. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  128. package/dist/_chunks/hash-CysBBS_N.js.map +1 -0
  129. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js → hcg-doubling-C7bmuaU3.js} +4 -4
  130. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js.map → hcg-doubling-C7bmuaU3.js.map} +1 -1
  131. package/dist/_chunks/{header-settings-CNOqIhoW.js → header-settings-DJqoAl5m.js} +86 -46
  132. package/dist/_chunks/header-settings-DJqoAl5m.js.map +1 -0
  133. package/dist/_chunks/{index.modern-D2LGACWg.js → index.modern-Zta-A4Jm.js} +3 -3
  134. package/dist/_chunks/{index.modern-D2LGACWg.js.map → index.modern-Zta-A4Jm.js.map} +1 -1
  135. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js +2184 -0
  136. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js.map +1 -0
  137. package/dist/_chunks/{list-BOwqwy03.js → list-DgE1xWBM.js} +99 -84
  138. package/dist/_chunks/list-DgE1xWBM.js.map +1 -0
  139. package/dist/_chunks/{locale-picker-C9JmBht3.js → locale-picker-ChYYSX2N.js} +47 -35
  140. package/dist/_chunks/locale-picker-ChYYSX2N.js.map +1 -0
  141. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  142. package/dist/_chunks/lock-CKOIn0IK.js.map +1 -0
  143. package/dist/_chunks/{map-view-Tb5VfK9Y.js → map-view-BkOoGoX2.js} +160 -115
  144. package/dist/_chunks/map-view-BkOoGoX2.js.map +1 -0
  145. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js → marketplace-app-shell-Skhfp6vK.js} +6 -6
  146. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js.map → marketplace-app-shell-Skhfp6vK.js.map} +1 -1
  147. package/dist/_chunks/{message-card.agent-4IeIgrnJ.js → message-card.agent-ZLhx3Bs5.js} +6 -1
  148. package/dist/_chunks/message-card.agent-ZLhx3Bs5.js.map +1 -0
  149. package/dist/_chunks/{message-tray-CVyJajVJ.js → message-tray-DwrBLJlf.js} +90 -48
  150. package/dist/_chunks/message-tray-DwrBLJlf.js.map +1 -0
  151. package/dist/_chunks/{multi-select-BcPylvHR.js → multi-select-BdHHDrRN.js} +196 -153
  152. package/dist/_chunks/multi-select-BdHHDrRN.js.map +1 -0
  153. package/dist/_chunks/{navigation-menu-C6lBYVv9.js → navigation-menu-DRUi6sSj.js} +75 -42
  154. package/dist/_chunks/navigation-menu-DRUi6sSj.js.map +1 -0
  155. package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
  156. package/dist/_chunks/notes-panel-ay8_lPrA.js.map +1 -0
  157. package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
  158. package/dist/_chunks/notification-card-D2jiKSJJ.js.map +1 -0
  159. package/dist/_chunks/{notification-card.agent-Rqt3ofk9.js → notification-card.agent-DxGBZb8T.js} +5 -1
  160. package/dist/_chunks/notification-card.agent-DxGBZb8T.js.map +1 -0
  161. package/dist/_chunks/{notification-tray-DlgenTEe.js → notification-tray-AEun6DN2.js} +112 -97
  162. package/dist/_chunks/notification-tray-AEun6DN2.js.map +1 -0
  163. package/dist/_chunks/{number-input-Dj5L3pXK.js → number-input-DxphVG_A.js} +36 -27
  164. package/dist/_chunks/number-input-DxphVG_A.js.map +1 -0
  165. package/dist/_chunks/{operator-hero-f_KaRhw5.js → operator-hero-CR0Rqh4-.js} +14 -10
  166. package/dist/_chunks/operator-hero-CR0Rqh4-.js.map +1 -0
  167. package/dist/_chunks/{otp-input-xQ4Ps5VY.js → otp-input-DzBQ-CpE.js} +52 -33
  168. package/dist/_chunks/otp-input-DzBQ-CpE.js.map +1 -0
  169. package/dist/_chunks/{pagination-DQOgnxxw.js → pagination-D58kglCr.js} +181 -162
  170. package/dist/_chunks/pagination-D58kglCr.js.map +1 -0
  171. package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
  172. package/dist/_chunks/patient-details-Dlhqb5ig.js.map +1 -0
  173. package/dist/_chunks/{patient-search-DR9XUYRQ.js → patient-search-Be6cLrHR.js} +70 -61
  174. package/dist/_chunks/patient-search-Be6cLrHR.js.map +1 -0
  175. package/dist/_chunks/{patient-shell-BfgufL_q.js → patient-shell-DV3XEtIB.js} +3 -3
  176. package/dist/_chunks/{patient-shell-BfgufL_q.js.map → patient-shell-DV3XEtIB.js.map} +1 -1
  177. package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
  178. package/dist/_chunks/patient-summary-card-WySCMwwA.js.map +1 -0
  179. package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
  180. package/dist/_chunks/patient-table-CHxf3Oqk.js.map +1 -0
  181. package/dist/_chunks/{payment-form-nXocS_MX.js → payment-form-CxqIXqw7.js} +57 -45
  182. package/dist/_chunks/payment-form-CxqIXqw7.js.map +1 -0
  183. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js → payment-request-card-BcZJwu9z.js} +125 -136
  184. package/dist/_chunks/payment-request-card-BcZJwu9z.js.map +1 -0
  185. package/dist/_chunks/{pdf-viewer-GsfNqeeT.js → pdf-viewer-QfebdLOd.js} +317 -291
  186. package/dist/_chunks/pdf-viewer-QfebdLOd.js.map +1 -0
  187. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js → periodontal-chart-card-hRRJY1NN.js} +3 -3
  188. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js.map → periodontal-chart-card-hRRJY1NN.js.map} +1 -1
  189. package/dist/_chunks/{phone-input-DVXhNlIl.js → phone-input-DjU-XmO_.js} +64 -47
  190. package/dist/_chunks/phone-input-DjU-XmO_.js.map +1 -0
  191. package/dist/_chunks/{popover-DTbfAuR0.js → popover-B2qCDhJC.js} +37 -32
  192. package/dist/_chunks/popover-B2qCDhJC.js.map +1 -0
  193. package/dist/_chunks/{practice-results-DND2SAt7.js → practice-results-C6qDfxos.js} +280 -244
  194. package/dist/_chunks/practice-results-C6qDfxos.js.map +1 -0
  195. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js → pregnancy-dating-CRVWswD-.js} +8 -8
  196. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js.map → pregnancy-dating-CRVWswD-.js.map} +1 -1
  197. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js → pregnancy-weight-gain-BUNpTsH-.js} +4 -4
  198. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js.map → pregnancy-weight-gain-BUNpTsH-.js.map} +1 -1
  199. package/dist/_chunks/{privacy-lock-C7JyMf0y.js → privacy-lock-BzMLQu-j.js} +32 -28
  200. package/dist/_chunks/privacy-lock-BzMLQu-j.js.map +1 -0
  201. package/dist/_chunks/{product-hub-panel-CAXDFeGP.js → product-hub-panel-e6pW220e.js} +45 -27
  202. package/dist/_chunks/product-hub-panel-e6pW220e.js.map +1 -0
  203. package/dist/_chunks/{progress-kzIRcdaq.js → progress-DA413-zn.js} +2 -2
  204. package/dist/_chunks/{progress-kzIRcdaq.js.map → progress-DA413-zn.js.map} +1 -1
  205. package/dist/_chunks/{public-footer.agent-CfXuW1x6.js → public-footer.agent-D0cFbjWl.js} +151 -146
  206. package/dist/_chunks/public-footer.agent-D0cFbjWl.js.map +1 -0
  207. package/dist/_chunks/{public-header.agent-BOhJgZEU.js → public-header.agent-DqkqA-ca.js} +107 -102
  208. package/dist/_chunks/{public-header.agent-BOhJgZEU.js.map → public-header.agent-DqkqA-ca.js.map} +1 -1
  209. package/dist/_chunks/{qr-code-DNXhi6se.js → qr-code-CPkEs5mG.js} +52 -46
  210. package/dist/_chunks/qr-code-CPkEs5mG.js.map +1 -0
  211. package/dist/_chunks/{radio-group-CLjK-SlK.js → radio-group-BPt7pKZW.js} +5 -5
  212. package/dist/_chunks/{radio-group-CLjK-SlK.js.map → radio-group-BPt7pKZW.js.map} +1 -1
  213. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
  214. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js.map +1 -0
  215. package/dist/_chunks/{recaptcha-widget-BCNHsgqt.js → recaptcha-widget-BC-4To9b.js} +9 -2
  216. package/dist/_chunks/recaptcha-widget-BC-4To9b.js.map +1 -0
  217. package/dist/_chunks/registry-DvAUVLHh.js +51 -0
  218. package/dist/_chunks/registry-DvAUVLHh.js.map +1 -0
  219. package/dist/_chunks/{resizable-3vzqDlg6.js → resizable-DVGcfOrk.js} +193 -173
  220. package/dist/_chunks/resizable-DVGcfOrk.js.map +1 -0
  221. package/dist/_chunks/{reviews-panel-DBktKm7i.js → reviews-panel-Dq7LMDcH.js} +87 -68
  222. package/dist/_chunks/reviews-panel-Dq7LMDcH.js.map +1 -0
  223. package/dist/_chunks/{rich-text-editor-VawKN1FI.js → rich-text-editor-DlCqPixb.js} +833 -728
  224. package/dist/_chunks/rich-text-editor-DlCqPixb.js.map +1 -0
  225. package/dist/_chunks/{search-bar-SY2BcV2N.js → search-bar-C_T3pBJn.js} +105 -78
  226. package/dist/_chunks/search-bar-C_T3pBJn.js.map +1 -0
  227. package/dist/_chunks/{search-input-DbxrnHkW.js → search-input-DQvGxR74.js} +2 -2
  228. package/dist/_chunks/{search-input-DbxrnHkW.js.map → search-input-DQvGxR74.js.map} +1 -1
  229. package/dist/_chunks/{search-input.agent-CfZvViOd.js → search-input.agent-DRH54coT.js} +19 -4
  230. package/dist/_chunks/search-input.agent-DRH54coT.js.map +1 -0
  231. package/dist/_chunks/{select-CEtRcon5.js → select-DMLG44F5.js} +72 -56
  232. package/dist/_chunks/select-DMLG44F5.js.map +1 -0
  233. package/dist/_chunks/{session-countdown-LPnhTHjn.js → session-countdown-X1Ki6i0M.js} +3 -3
  234. package/dist/_chunks/{session-countdown-LPnhTHjn.js.map → session-countdown-X1Ki6i0M.js.map} +1 -1
  235. package/dist/_chunks/{sheet-taJer-Ha.js → sheet-BxsE7eQm.js} +59 -45
  236. package/dist/_chunks/sheet-BxsE7eQm.js.map +1 -0
  237. package/dist/_chunks/{sidebar-DaB4ulxH.js → sidebar-DY9jGjgt.js} +254 -248
  238. package/dist/_chunks/sidebar-DY9jGjgt.js.map +1 -0
  239. package/dist/_chunks/{sign-document-CdAiHiCh.js → sign-document-By6hMOra.js} +75 -49
  240. package/dist/_chunks/sign-document-By6hMOra.js.map +1 -0
  241. package/dist/_chunks/{signature-capture-COi0Uiqu.js → signature-capture-Ct_4Md4e.js} +138 -104
  242. package/dist/_chunks/signature-capture-Ct_4Md4e.js.map +1 -0
  243. package/dist/_chunks/{slider-BHWzXdjt.js → slider-DN1CWkKB.js} +85 -65
  244. package/dist/_chunks/slider-DN1CWkKB.js.map +1 -0
  245. package/dist/_chunks/{sparkline-DGhCSw8M.js → sparkline-iOXYgvJe.js} +75 -53
  246. package/dist/_chunks/sparkline-iOXYgvJe.js.map +1 -0
  247. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  248. package/dist/_chunks/stepper-accordion-DC-H-8v4.js.map +1 -0
  249. package/dist/_chunks/{stepper-accordion.agent-C4quJ-MD.js → stepper-accordion.agent-cmEguIdx.js} +7 -1
  250. package/dist/_chunks/stepper-accordion.agent-cmEguIdx.js.map +1 -0
  251. package/dist/_chunks/{stepper-progress-DDjq5nei.js → stepper-progress-Bv0njx4g.js} +30 -24
  252. package/dist/_chunks/stepper-progress-Bv0njx4g.js.map +1 -0
  253. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js → suggestion-chip.agent-Brn3CiFE.js} +9 -8
  254. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js.map → suggestion-chip.agent-Brn3CiFE.js.map} +1 -1
  255. package/dist/_chunks/{switch-BJ6HD3Mn.js → switch-OILsBLWo.js} +25 -19
  256. package/dist/_chunks/switch-OILsBLWo.js.map +1 -0
  257. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  258. package/dist/_chunks/tab-bar-Bv9nGNdO.js.map +1 -0
  259. package/dist/_chunks/{tabs-BIQ0ew1T.js → tabs-BxcOziCo.js} +67 -58
  260. package/dist/_chunks/tabs-BxcOziCo.js.map +1 -0
  261. package/dist/_chunks/{task-card.agent-CUPKYd7w.js → task-card.agent-Bt14CzUd.js} +4 -1
  262. package/dist/_chunks/task-card.agent-Bt14CzUd.js.map +1 -0
  263. package/dist/_chunks/{task-tray-CAncV-QQ.js → task-tray-qOEQflu4.js} +74 -57
  264. package/dist/_chunks/task-tray-qOEQflu4.js.map +1 -0
  265. package/dist/_chunks/{text-area-BIx0tZ05.js → text-area-Bt3p7Pt0.js} +41 -34
  266. package/dist/_chunks/text-area-Bt3p7Pt0.js.map +1 -0
  267. package/dist/_chunks/{text-input-BaClJL8Y.js → text-input-B-OWQ1Je.js} +15 -8
  268. package/dist/_chunks/text-input-B-OWQ1Je.js.map +1 -0
  269. package/dist/_chunks/{theme-toggle-DETmSu_h.js → theme-toggle-XB6o_lgs.js} +38 -26
  270. package/dist/_chunks/theme-toggle-XB6o_lgs.js.map +1 -0
  271. package/dist/_chunks/{time-picker-B5umYwfv.js → time-picker-BPlJWm8w.js} +41 -31
  272. package/dist/_chunks/time-picker-BPlJWm8w.js.map +1 -0
  273. package/dist/_chunks/{timeline-DQa5Tyz4.js → timeline-CqA4nKTI.js} +33 -25
  274. package/dist/_chunks/timeline-CqA4nKTI.js.map +1 -0
  275. package/dist/_chunks/{toast.agent-vuLRRn2a.js → toast.agent-57UzyR9U.js} +62 -45
  276. package/dist/_chunks/{toast.agent-vuLRRn2a.js.map → toast.agent-57UzyR9U.js.map} +1 -1
  277. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
  278. package/dist/_chunks/tooth-scheme-BhQoPNBD.js.map +1 -0
  279. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  280. package/dist/_chunks/transaction-chip-CscoQbxF.js.map +1 -0
  281. package/dist/_chunks/{transcript-panel-CLHmv83g.js → transcript-panel-3THQX6nJ.js} +47 -33
  282. package/dist/_chunks/transcript-panel-3THQX6nJ.js.map +1 -0
  283. package/dist/_chunks/unit-converter-YEpD9evj.js +337 -0
  284. package/dist/_chunks/unit-converter-YEpD9evj.js.map +1 -0
  285. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  286. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js.map +1 -0
  287. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  288. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js.map +1 -0
  289. package/dist/_chunks/{use-password-requirements-DsgduV1x.js → use-password-requirements-BXvS2MBS.js} +131 -117
  290. package/dist/_chunks/use-password-requirements-BXvS2MBS.js.map +1 -0
  291. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  292. package/dist/_chunks/use-persistent-state-nZwZAnE9.js.map +1 -0
  293. package/dist/_chunks/users-MBVtUzwd.js +17 -0
  294. package/dist/_chunks/users-MBVtUzwd.js.map +1 -0
  295. package/dist/_chunks/warning-stack--sTrrBDA.js +268 -0
  296. package/dist/_chunks/warning-stack--sTrrBDA.js.map +1 -0
  297. package/dist/_chunks/{whatsapp-button-DUjlWGKf.js → whatsapp-button-BIy6NaJK.js} +6 -3
  298. package/dist/_chunks/whatsapp-button-BIy6NaJK.js.map +1 -0
  299. package/dist/_chunks/{workflow-map-JAZryZJr.js → workflow-map-Dy8mLCqF.js} +101 -90
  300. package/dist/_chunks/workflow-map-Dy8mLCqF.js.map +1 -0
  301. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  302. package/dist/_chunks/zoom-out-CgVtf2Wx.js.map +1 -0
  303. package/dist/agent/index.d.ts +4 -4
  304. package/dist/agent/index.d.ts.map +1 -1
  305. package/dist/agent/index.js +37 -0
  306. package/dist/agent/index.js.map +1 -0
  307. package/dist/agent/registry.d.ts +33 -0
  308. package/dist/agent/registry.d.ts.map +1 -1
  309. package/dist/agent/types.d.ts +97 -4
  310. package/dist/agent/types.d.ts.map +1 -1
  311. package/dist/agent-catalog.json +8081 -518
  312. package/dist/agent-i18n/en.json +1277 -0
  313. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  314. package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -1
  315. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  316. package/dist/components/_shared/entity-card/index.d.ts.map +1 -1
  317. package/dist/components/_shared/field-value.d.ts +21 -0
  318. package/dist/components/_shared/field-value.d.ts.map +1 -0
  319. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  320. package/dist/components/_shared/field-visibility-cog.d.ts.map +1 -0
  321. package/dist/components/_shared/field-visibility.d.ts +36 -0
  322. package/dist/components/_shared/field-visibility.d.ts.map +1 -0
  323. package/dist/components/_shared/patient-fields.d.ts +119 -0
  324. package/dist/components/_shared/patient-fields.d.ts.map +1 -0
  325. package/dist/components/accordion/accordion.agent.d.ts.map +1 -1
  326. package/dist/components/accordion/accordion.d.ts.map +1 -1
  327. package/dist/components/accordion/index.js +1 -1
  328. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts +4 -0
  329. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts.map +1 -0
  330. package/dist/components/address-autocomplete/address-autocomplete.d.ts +18 -0
  331. package/dist/components/address-autocomplete/address-autocomplete.d.ts.map +1 -1
  332. package/dist/components/address-autocomplete/index.d.ts +2 -1
  333. package/dist/components/address-autocomplete/index.d.ts.map +1 -1
  334. package/dist/components/address-autocomplete/index.js +3 -2
  335. package/dist/components/agenda-card/agenda-card.agent.d.ts.map +1 -1
  336. package/dist/components/agenda-card/index.js +2 -2
  337. package/dist/components/agenda-tray/agenda-tray.agent.d.ts.map +1 -1
  338. package/dist/components/agenda-tray/index.js +1 -1
  339. package/dist/components/ai-consent-banner/index.js +1 -1
  340. package/dist/components/ai-prompt-input/ai-prompt-input.agent.d.ts.map +1 -1
  341. package/dist/components/ai-prompt-input/index.js +1 -1
  342. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts.map +1 -1
  343. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
  344. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts.map +1 -1
  345. package/dist/components/ai-tools-rail/index.js +1 -1
  346. package/dist/components/alert/alert.d.ts +5 -0
  347. package/dist/components/alert/alert.d.ts.map +1 -1
  348. package/dist/components/alert/index.js +1 -1
  349. package/dist/components/anamnesis-card/index.js +1 -1
  350. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  351. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts.map +1 -0
  352. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  353. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts.map +1 -0
  354. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  355. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts.map +1 -0
  356. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  357. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts.map +1 -0
  358. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  359. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts.map +1 -0
  360. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  361. package/dist/components/anatomy-scheme/index.d.ts.map +1 -0
  362. package/dist/components/anatomy-scheme/index.js +17 -0
  363. package/dist/components/anatomy-scheme/index.js.map +1 -0
  364. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  365. package/dist/components/annotation-marker/annotation-marker.d.ts.map +1 -0
  366. package/dist/components/annotation-marker/index.d.ts +3 -0
  367. package/dist/components/annotation-marker/index.d.ts.map +1 -0
  368. package/dist/components/annotation-marker/index.js +7 -0
  369. package/dist/components/annotation-marker/index.js.map +1 -0
  370. package/dist/components/appointment-card/appointment-card.agent.d.ts.map +1 -1
  371. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  372. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  373. package/dist/components/appointment-card/appointment-tray.agent.d.ts.map +1 -1
  374. package/dist/components/appointment-card/index.js +6 -5
  375. package/dist/components/appointment-card/index.js.map +1 -1
  376. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  377. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts.map +1 -0
  378. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  379. package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -0
  380. package/dist/components/appointment-timeline/index.d.ts +4 -0
  381. package/dist/components/appointment-timeline/index.d.ts.map +1 -0
  382. package/dist/components/appointment-timeline/index.js +6 -0
  383. package/dist/components/appointment-timeline/index.js.map +1 -0
  384. package/dist/components/audio-recorder/audio-recorder.agent.d.ts.map +1 -1
  385. package/dist/components/audio-recorder/index.js +1 -1
  386. package/dist/components/autocomplete/autocomplete.agent.d.ts.map +1 -1
  387. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  388. package/dist/components/autocomplete/index.js +1 -1
  389. package/dist/components/badge/badge.d.ts +6 -2
  390. package/dist/components/badge/badge.d.ts.map +1 -1
  391. package/dist/components/badge/index.js +1 -1
  392. package/dist/components/bishop-score/bishop-score.agent.d.ts +4 -0
  393. package/dist/components/bishop-score/bishop-score.agent.d.ts.map +1 -0
  394. package/dist/components/bishop-score/bishop-score.d.ts +17 -1
  395. package/dist/components/bishop-score/bishop-score.d.ts.map +1 -1
  396. package/dist/components/bishop-score/index.js +1 -1
  397. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts +4 -0
  398. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts.map +1 -0
  399. package/dist/components/bmi-calculator/bmi-calculator.d.ts +26 -0
  400. package/dist/components/bmi-calculator/bmi-calculator.d.ts.map +1 -1
  401. package/dist/components/bmi-calculator/index.js +1 -1
  402. package/dist/components/booking/booking.agent.d.ts.map +1 -1
  403. package/dist/components/booking/index.js +1 -1
  404. package/dist/components/breadcrumb/breadcrumb.agent.d.ts.map +1 -1
  405. package/dist/components/breadcrumb/index.js +1 -1
  406. package/dist/components/calculator-dialog/index.js +1 -1
  407. package/dist/components/calendar/calendar.agent.d.ts.map +1 -1
  408. package/dist/components/calendar/index.js +1 -1
  409. package/dist/components/care-plan-card/care-plan-card.agent.d.ts.map +1 -1
  410. package/dist/components/care-plan-card/index.js +1 -1
  411. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts.map +1 -1
  412. package/dist/components/care-plan-entry-card/index.js +1 -1
  413. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  414. package/dist/components/care-plan-header/care-plan-header.agent.d.ts.map +1 -0
  415. package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
  416. package/dist/components/care-plan-header/care-plan-header.d.ts.map +1 -0
  417. package/dist/components/care-plan-header/index.d.ts +4 -0
  418. package/dist/components/care-plan-header/index.d.ts.map +1 -0
  419. package/dist/components/care-plan-header/index.js +6 -0
  420. package/dist/components/care-plan-header/index.js.map +1 -0
  421. package/dist/components/carousel/carousel.agent.d.ts.map +1 -1
  422. package/dist/components/carousel/index.js +1 -1
  423. package/dist/components/chart/chart.agent.d.ts.map +1 -1
  424. package/dist/components/chart/index.js +1 -1
  425. package/dist/components/chat-container/chat-container.agent.d.ts.map +1 -1
  426. package/dist/components/chat-container/index.js +1 -1
  427. package/dist/components/chat-input/chat-input.agent.d.ts.map +1 -1
  428. package/dist/components/chat-input/index.js +1 -1
  429. package/dist/components/checkbox/checkbox.agent.d.ts.map +1 -1
  430. package/dist/components/checkbox/index.js +1 -1
  431. package/dist/components/checkbox-group/index.js +1 -1
  432. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  433. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
  434. package/dist/components/clinical-note-card/index.js +1 -1
  435. package/dist/components/collapsible/collapsible.agent.d.ts.map +1 -1
  436. package/dist/components/collapsible/index.js +1 -1
  437. package/dist/components/color-picker/color-picker.agent.d.ts.map +1 -1
  438. package/dist/components/color-picker/index.js +1 -1
  439. package/dist/components/combobox/combobox.agent.d.ts.map +1 -1
  440. package/dist/components/combobox/combobox.d.ts.map +1 -1
  441. package/dist/components/combobox/index.js +1 -1
  442. package/dist/components/command-palette/command-palette.agent.d.ts.map +1 -1
  443. package/dist/components/command-palette/command-palette.d.ts.map +1 -1
  444. package/dist/components/command-palette/index.js +1 -1
  445. package/dist/components/contact-profile-card/contact-profile-card.agent.d.ts.map +1 -1
  446. package/dist/components/contact-profile-card/index.js +1 -1
  447. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  448. package/dist/components/control-room-rail/control-room-context.d.ts.map +1 -0
  449. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  450. package/dist/components/control-room-rail/control-room-rail.d.ts.map +1 -0
  451. package/dist/components/control-room-rail/index.d.ts +5 -0
  452. package/dist/components/control-room-rail/index.d.ts.map +1 -0
  453. package/dist/components/control-room-rail/index.js +9 -0
  454. package/dist/components/control-room-rail/index.js.map +1 -0
  455. package/dist/components/copy-field/copy-field.agent.d.ts.map +1 -1
  456. package/dist/components/copy-field/index.js +1 -1
  457. package/dist/components/counter/counter.d.ts +22 -0
  458. package/dist/components/counter/counter.d.ts.map +1 -0
  459. package/dist/components/counter/index.d.ts +3 -0
  460. package/dist/components/counter/index.d.ts.map +1 -0
  461. package/dist/components/counter/index.js +5 -0
  462. package/dist/components/counter/index.js.map +1 -0
  463. package/dist/components/cycle-calculator/index.js +1 -1
  464. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  465. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts.map +1 -1
  466. package/dist/components/data-table/data-table.agent.d.ts.map +1 -1
  467. package/dist/components/data-table/index.d.ts +1 -1
  468. package/dist/components/data-table/index.d.ts.map +1 -1
  469. package/dist/components/data-table/index.js +32 -30
  470. package/dist/components/data-table/index.js.map +1 -1
  471. package/dist/components/data-table/toolbar.d.ts.map +1 -1
  472. package/dist/components/date-picker/date-picker.agent.d.ts.map +1 -1
  473. package/dist/components/date-picker/index.js +1 -1
  474. package/dist/components/date-range-picker/date-range-picker.agent.d.ts.map +1 -1
  475. package/dist/components/date-range-picker/index.js +1 -1
  476. package/dist/components/date-time-picker/date-time-picker.agent.d.ts.map +1 -1
  477. package/dist/components/date-time-picker/index.js +1 -1
  478. package/dist/components/dependent-selector/dependent-selector.agent.d.ts.map +1 -1
  479. package/dist/components/dependent-selector/index.js +1 -1
  480. package/dist/components/dialog/dialog.agent.d.ts.map +1 -1
  481. package/dist/components/dialog/index.js +1 -1
  482. package/dist/components/document-scanner/document-scanner.agent.d.ts.map +1 -1
  483. package/dist/components/document-scanner/index.js +1 -1
  484. package/dist/components/dropdown-menu/dropdown-menu.agent.d.ts.map +1 -1
  485. package/dist/components/dropdown-menu/index.js +1 -1
  486. package/dist/components/due-date-calculator/index.js +2 -2
  487. package/dist/components/email-input/email-input.d.ts.map +1 -1
  488. package/dist/components/email-input/index.js +1 -1
  489. package/dist/components/entity-summary/entity-summary.d.ts +43 -0
  490. package/dist/components/entity-summary/entity-summary.d.ts.map +1 -0
  491. package/dist/components/entity-summary/index.d.ts +3 -0
  492. package/dist/components/entity-summary/index.d.ts.map +1 -0
  493. package/dist/components/entity-summary/index.js +5 -0
  494. package/dist/components/entity-summary/index.js.map +1 -0
  495. package/dist/components/fetal-weight/index.js +1 -1
  496. package/dist/components/file-upload/file-upload.agent.d.ts.map +1 -1
  497. package/dist/components/file-upload/index.js +1 -1
  498. package/dist/components/fiscal-code-input/fiscal-code-input.agent.d.ts.map +1 -1
  499. package/dist/components/fiscal-code-input/index.js +1 -1
  500. package/dist/components/freemium-paywall/freemium-paywall.agent.d.ts.map +1 -1
  501. package/dist/components/freemium-paywall/freemium-paywall.d.ts +6 -0
  502. package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
  503. package/dist/components/freemium-paywall/index.js +1 -1
  504. package/dist/components/gestational-age-calculator/index.js +1 -1
  505. package/dist/components/hcg-doubling/index.js +1 -1
  506. package/dist/components/header-settings/header-settings.agent.d.ts.map +1 -1
  507. package/dist/components/header-settings/index.js +1 -1
  508. package/dist/components/index.d.ts +11 -0
  509. package/dist/components/index.d.ts.map +1 -1
  510. package/dist/components/list/index.js +1 -1
  511. package/dist/components/list/list.agent.d.ts.map +1 -1
  512. package/dist/components/locale-picker/index.js +1 -1
  513. package/dist/components/locale-picker/locale-picker.agent.d.ts.map +1 -1
  514. package/dist/components/map-view/index.js +1 -1
  515. package/dist/components/map-view/map-view.agent.d.ts.map +1 -1
  516. package/dist/components/message-card/index.js +1 -1
  517. package/dist/components/message-card/message-card.agent.d.ts.map +1 -1
  518. package/dist/components/message-tray/index.js +1 -1
  519. package/dist/components/message-tray/message-tray.agent.d.ts.map +1 -1
  520. package/dist/components/multi-select/index.js +1 -1
  521. package/dist/components/multi-select/multi-select.agent.d.ts.map +1 -1
  522. package/dist/components/multi-select/multi-select.d.ts.map +1 -1
  523. package/dist/components/navigation-menu/index.js +1 -1
  524. package/dist/components/navigation-menu/navigation-menu.agent.d.ts.map +1 -1
  525. package/dist/components/notes-panel/index.d.ts +3 -0
  526. package/dist/components/notes-panel/index.d.ts.map +1 -0
  527. package/dist/components/notes-panel/index.js +5 -0
  528. package/dist/components/notes-panel/index.js.map +1 -0
  529. package/dist/components/notes-panel/notes-panel.d.ts +64 -0
  530. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -0
  531. package/dist/components/notification-card/index.js +2 -2
  532. package/dist/components/notification-card/notification-card.agent.d.ts.map +1 -1
  533. package/dist/components/notification-card/notification-card.d.ts.map +1 -1
  534. package/dist/components/notification-tray/index.js +1 -1
  535. package/dist/components/notification-tray/notification-tray.agent.d.ts.map +1 -1
  536. package/dist/components/notification-tray/notification-tray.d.ts.map +1 -1
  537. package/dist/components/number-input/index.js +1 -1
  538. package/dist/components/number-input/number-input.agent.d.ts.map +1 -1
  539. package/dist/components/operator-hero/index.js +1 -1
  540. package/dist/components/operator-hero/operator-hero.agent.d.ts.map +1 -1
  541. package/dist/components/otp-input/index.js +1 -1
  542. package/dist/components/otp-input/otp-input.agent.d.ts.map +1 -1
  543. package/dist/components/pagination/index.js +1 -1
  544. package/dist/components/pagination/pagination.agent.d.ts.map +1 -1
  545. package/dist/components/password-input/index.js +1 -1
  546. package/dist/components/password-input/password-input.agent.d.ts.map +1 -1
  547. package/dist/components/patient-details/index.d.ts +5 -0
  548. package/dist/components/patient-details/index.d.ts.map +1 -0
  549. package/dist/components/patient-details/index.js +6 -0
  550. package/dist/components/patient-details/index.js.map +1 -0
  551. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  552. package/dist/components/patient-details/patient-details.agent.d.ts.map +1 -0
  553. package/dist/components/patient-details/patient-details.d.ts +96 -0
  554. package/dist/components/patient-details/patient-details.d.ts.map +1 -0
  555. package/dist/components/patient-search/index.js +1 -1
  556. package/dist/components/patient-search/patient-search.agent.d.ts.map +1 -1
  557. package/dist/components/patient-summary-card/index.js +1 -1
  558. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts.map +1 -1
  559. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  560. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  561. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts +13 -0
  562. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts.map +1 -0
  563. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts +43 -0
  564. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts.map +1 -0
  565. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts +24 -0
  566. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts.map +1 -0
  567. package/dist/components/patient-table/columns.d.ts +131 -0
  568. package/dist/components/patient-table/columns.d.ts.map +1 -0
  569. package/dist/components/patient-table/index.d.ts +20 -0
  570. package/dist/components/patient-table/index.d.ts.map +1 -0
  571. package/dist/components/patient-table/index.js +12 -0
  572. package/dist/components/patient-table/index.js.map +1 -0
  573. package/dist/components/patient-table/patient-table.d.ts +172 -0
  574. package/dist/components/patient-table/patient-table.d.ts.map +1 -0
  575. package/dist/components/patient-table/types.d.ts +222 -0
  576. package/dist/components/patient-table/types.d.ts.map +1 -0
  577. package/dist/components/patient-table/use-responsive-columns.d.ts +111 -0
  578. package/dist/components/patient-table/use-responsive-columns.d.ts.map +1 -0
  579. package/dist/components/payment-card/index.js +1 -1
  580. package/dist/components/payment-form/index.js +1 -1
  581. package/dist/components/payment-form/payment-form.agent.d.ts.map +1 -1
  582. package/dist/components/pdf-viewer/index.js +1 -1
  583. package/dist/components/pdf-viewer/pdf-viewer.agent.d.ts.map +1 -1
  584. package/dist/components/periodontal-chart-card/index.js +1 -1
  585. package/dist/components/phone-input/index.js +1 -1
  586. package/dist/components/phone-input/phone-input.agent.d.ts.map +1 -1
  587. package/dist/components/popover/index.js +1 -1
  588. package/dist/components/popover/popover.agent.d.ts.map +1 -1
  589. package/dist/components/practice-results/index.js +1 -1
  590. package/dist/components/practice-results/practice-results.agent.d.ts.map +1 -1
  591. package/dist/components/pregnancy-dating/index.js +1 -1
  592. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  593. package/dist/components/privacy-lock/index.js +1 -1
  594. package/dist/components/privacy-lock/privacy-lock.agent.d.ts.map +1 -1
  595. package/dist/components/product-hub-tray/index.js +1 -1
  596. package/dist/components/product-hub-tray/product-hub-panel.agent.d.ts.map +1 -1
  597. package/dist/components/product-hub-tray/product-hub-tray.agent.d.ts.map +1 -1
  598. package/dist/components/progress/index.js +1 -1
  599. package/dist/components/public-footer/index.js +1 -1
  600. package/dist/components/public-footer/public-footer.agent.d.ts.map +1 -1
  601. package/dist/components/public-footer/public-footer.d.ts.map +1 -1
  602. package/dist/components/public-header/index.js +1 -1
  603. package/dist/components/public-header/public-header.agent.d.ts.map +1 -1
  604. package/dist/components/qr-code/index.js +1 -1
  605. package/dist/components/qr-code/qr-code.agent.d.ts.map +1 -1
  606. package/dist/components/radio-group/index.js +1 -1
  607. package/dist/components/radiograph-panel/index.d.ts +4 -0
  608. package/dist/components/radiograph-panel/index.d.ts.map +1 -0
  609. package/dist/components/radiograph-panel/index.js +7 -0
  610. package/dist/components/radiograph-panel/index.js.map +1 -0
  611. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  612. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts.map +1 -0
  613. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  614. package/dist/components/radiograph-panel/radiograph-panel.d.ts.map +1 -0
  615. package/dist/components/recaptcha-widget/index.js +1 -1
  616. package/dist/components/recaptcha-widget/recaptcha-widget.agent.d.ts.map +1 -1
  617. package/dist/components/resizable/index.js +1 -1
  618. package/dist/components/resizable/resizable.agent.d.ts.map +1 -1
  619. package/dist/components/resizable/resizable.d.ts.map +1 -1
  620. package/dist/components/reviews-panel/index.js +1 -1
  621. package/dist/components/reviews-panel/reviews-panel.agent.d.ts.map +1 -1
  622. package/dist/components/rich-text-editor/index.js +1 -1
  623. package/dist/components/rich-text-editor/rich-text-editor.agent.d.ts.map +1 -1
  624. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  625. package/dist/components/search-bar/index.js +1 -1
  626. package/dist/components/search-bar/search-bar.agent.d.ts.map +1 -1
  627. package/dist/components/search-input/index.js +2 -2
  628. package/dist/components/search-input/search-input.agent.d.ts.map +1 -1
  629. package/dist/components/select/index.js +1 -1
  630. package/dist/components/select/select.agent.d.ts.map +1 -1
  631. package/dist/components/session-countdown/index.js +1 -1
  632. package/dist/components/sheet/index.js +1 -1
  633. package/dist/components/sheet/sheet.agent.d.ts.map +1 -1
  634. package/dist/components/sidebar/index.js +2 -2
  635. package/dist/components/sidebar/sidebar.agent.d.ts.map +1 -1
  636. package/dist/components/sidebar/sidebar.d.ts +7 -0
  637. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  638. package/dist/components/sign-document/index.js +1 -1
  639. package/dist/components/sign-document/sign-document.agent.d.ts.map +1 -1
  640. package/dist/components/signature-capture/index.js +1 -1
  641. package/dist/components/signature-capture/signature-capture.agent.d.ts.map +1 -1
  642. package/dist/components/slider/index.js +1 -1
  643. package/dist/components/slider/slider.agent.d.ts.map +1 -1
  644. package/dist/components/sparkline/index.js +1 -1
  645. package/dist/components/sparkline/sparkline.agent.d.ts.map +1 -1
  646. package/dist/components/stepper-accordion/index.js +2 -2
  647. package/dist/components/stepper-accordion/stepper-accordion.agent.d.ts.map +1 -1
  648. package/dist/components/stepper-progress/index.js +1 -1
  649. package/dist/components/stepper-progress/stepper-progress.agent.d.ts.map +1 -1
  650. package/dist/components/suggestion-chip/index.js +1 -1
  651. package/dist/components/suggestion-chip/suggestion-chip.agent.d.ts.map +1 -1
  652. package/dist/components/switch/index.js +1 -1
  653. package/dist/components/switch/switch.agent.d.ts.map +1 -1
  654. package/dist/components/tab-bar/index.js +1 -1
  655. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  656. package/dist/components/tab-bar/tab-bar.d.ts.map +1 -1
  657. package/dist/components/tabs/index.js +1 -1
  658. package/dist/components/tabs/tabs.agent.d.ts.map +1 -1
  659. package/dist/components/tabs/tabs.d.ts.map +1 -1
  660. package/dist/components/task-card/index.js +1 -1
  661. package/dist/components/task-card/task-card.agent.d.ts.map +1 -1
  662. package/dist/components/task-tray/index.js +1 -1
  663. package/dist/components/task-tray/task-tray.agent.d.ts.map +1 -1
  664. package/dist/components/text-area/index.js +1 -1
  665. package/dist/components/text-area/text-area.agent.d.ts.map +1 -1
  666. package/dist/components/text-input/index.js +1 -1
  667. package/dist/components/text-input/text-input.agent.d.ts.map +1 -1
  668. package/dist/components/theme-toggle/index.js +1 -1
  669. package/dist/components/theme-toggle/theme-toggle.agent.d.ts.map +1 -1
  670. package/dist/components/time-picker/index.js +1 -1
  671. package/dist/components/time-picker/time-picker.agent.d.ts.map +1 -1
  672. package/dist/components/timeline/index.js +1 -1
  673. package/dist/components/timeline/timeline.agent.d.ts.map +1 -1
  674. package/dist/components/toast/index.js +1 -1
  675. package/dist/components/toast/toast.agent.d.ts.map +1 -1
  676. package/dist/components/toast/toast.d.ts.map +1 -1
  677. package/dist/components/tooth-scheme/index.d.ts +2 -2
  678. package/dist/components/tooth-scheme/index.d.ts.map +1 -1
  679. package/dist/components/tooth-scheme/index.js +30 -23
  680. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  681. package/dist/components/tooth-scheme/tooth-data.d.ts.map +1 -1
  682. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  683. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts.map +1 -1
  684. package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
  685. package/dist/components/tooth-scheme/tooth-scheme.d.ts.map +1 -1
  686. package/dist/components/transaction-chip/index.js +1 -1
  687. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  688. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -1
  689. package/dist/components/transcript-panel/index.js +1 -1
  690. package/dist/components/transcript-panel/transcript-panel.agent.d.ts.map +1 -1
  691. package/dist/components/unit-converter/index.js +1 -1
  692. package/dist/components/unit-converter/unit-converter.agent.d.ts +4 -0
  693. package/dist/components/unit-converter/unit-converter.agent.d.ts.map +1 -0
  694. package/dist/components/unit-converter/unit-converter.d.ts +27 -0
  695. package/dist/components/unit-converter/unit-converter.d.ts.map +1 -1
  696. package/dist/components/warning-stack/index.js +1 -1
  697. package/dist/components/warning-stack/warning-stack.d.ts +14 -2
  698. package/dist/components/warning-stack/warning-stack.d.ts.map +1 -1
  699. package/dist/components/whatsapp-button/index.d.ts +1 -1
  700. package/dist/components/whatsapp-button/index.d.ts.map +1 -1
  701. package/dist/components/whatsapp-button/index.js +3 -2
  702. package/dist/components/whatsapp-button/whatsapp-button.d.ts +3 -0
  703. package/dist/components/whatsapp-button/whatsapp-button.d.ts.map +1 -1
  704. package/dist/components/workflow/index.js +1 -1
  705. package/dist/components/workflow/workflow.agent.d.ts.map +1 -1
  706. package/dist/hooks/index.d.ts +1 -0
  707. package/dist/hooks/index.d.ts.map +1 -1
  708. package/dist/hooks/index.js +24 -22
  709. package/dist/hooks/index.js.map +1 -1
  710. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  711. package/dist/hooks/use-clamp-overflow.d.ts.map +1 -0
  712. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  713. package/dist/hooks/use-overflow-collapse.d.ts.map +1 -0
  714. package/dist/hooks/use-persistent-state.d.ts +7 -1
  715. package/dist/hooks/use-persistent-state.d.ts.map +1 -1
  716. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  717. package/dist/hooks/use-scroll-overflow.d.ts.map +1 -0
  718. package/dist/i18n/locales/ar.d.ts +356 -0
  719. package/dist/i18n/locales/ar.d.ts.map +1 -1
  720. package/dist/i18n/locales/ar.js +370 -3
  721. package/dist/i18n/locales/ar.js.map +1 -1
  722. package/dist/i18n/locales/de.d.ts +356 -0
  723. package/dist/i18n/locales/de.d.ts.map +1 -1
  724. package/dist/i18n/locales/de.js +370 -3
  725. package/dist/i18n/locales/de.js.map +1 -1
  726. package/dist/i18n/locales/el.d.ts +356 -0
  727. package/dist/i18n/locales/el.d.ts.map +1 -1
  728. package/dist/i18n/locales/el.js +370 -3
  729. package/dist/i18n/locales/el.js.map +1 -1
  730. package/dist/i18n/locales/en.d.ts +367 -0
  731. package/dist/i18n/locales/en.d.ts.map +1 -1
  732. package/dist/i18n/locales/en.js +381 -3
  733. package/dist/i18n/locales/en.js.map +1 -1
  734. package/dist/i18n/locales/es.d.ts +356 -0
  735. package/dist/i18n/locales/es.d.ts.map +1 -1
  736. package/dist/i18n/locales/es.js +370 -3
  737. package/dist/i18n/locales/es.js.map +1 -1
  738. package/dist/i18n/locales/fr.d.ts +356 -0
  739. package/dist/i18n/locales/fr.d.ts.map +1 -1
  740. package/dist/i18n/locales/fr.js +370 -3
  741. package/dist/i18n/locales/fr.js.map +1 -1
  742. package/dist/i18n/locales/hi.d.ts +356 -0
  743. package/dist/i18n/locales/hi.d.ts.map +1 -1
  744. package/dist/i18n/locales/hi.js +370 -3
  745. package/dist/i18n/locales/hi.js.map +1 -1
  746. package/dist/i18n/locales/it.d.ts +356 -0
  747. package/dist/i18n/locales/it.d.ts.map +1 -1
  748. package/dist/i18n/locales/it.js +370 -3
  749. package/dist/i18n/locales/it.js.map +1 -1
  750. package/dist/i18n/locales/ja.d.ts +356 -0
  751. package/dist/i18n/locales/ja.d.ts.map +1 -1
  752. package/dist/i18n/locales/ja.js +370 -3
  753. package/dist/i18n/locales/ja.js.map +1 -1
  754. package/dist/i18n/locales/nl.d.ts +356 -0
  755. package/dist/i18n/locales/nl.d.ts.map +1 -1
  756. package/dist/i18n/locales/nl.js +370 -3
  757. package/dist/i18n/locales/nl.js.map +1 -1
  758. package/dist/i18n/locales/pl.d.ts +356 -0
  759. package/dist/i18n/locales/pl.d.ts.map +1 -1
  760. package/dist/i18n/locales/pl.js +370 -3
  761. package/dist/i18n/locales/pl.js.map +1 -1
  762. package/dist/i18n/locales/pt.d.ts +356 -0
  763. package/dist/i18n/locales/pt.d.ts.map +1 -1
  764. package/dist/i18n/locales/pt.js +370 -3
  765. package/dist/i18n/locales/pt.js.map +1 -1
  766. package/dist/i18n/locales/ro.d.ts +356 -0
  767. package/dist/i18n/locales/ro.d.ts.map +1 -1
  768. package/dist/i18n/locales/ro.js +370 -3
  769. package/dist/i18n/locales/ro.js.map +1 -1
  770. package/dist/i18n/locales/ru.d.ts +356 -0
  771. package/dist/i18n/locales/ru.d.ts.map +1 -1
  772. package/dist/i18n/locales/ru.js +370 -3
  773. package/dist/i18n/locales/ru.js.map +1 -1
  774. package/dist/i18n/locales/sq.d.ts +356 -0
  775. package/dist/i18n/locales/sq.d.ts.map +1 -1
  776. package/dist/i18n/locales/sq.js +370 -3
  777. package/dist/i18n/locales/sq.js.map +1 -1
  778. package/dist/i18n/locales/sv.d.ts +356 -0
  779. package/dist/i18n/locales/sv.d.ts.map +1 -1
  780. package/dist/i18n/locales/sv.js +370 -3
  781. package/dist/i18n/locales/sv.js.map +1 -1
  782. package/dist/i18n/locales/tr.d.ts +356 -0
  783. package/dist/i18n/locales/tr.d.ts.map +1 -1
  784. package/dist/i18n/locales/tr.js +370 -3
  785. package/dist/i18n/locales/tr.js.map +1 -1
  786. package/dist/i18n/locales/zh.d.ts +356 -0
  787. package/dist/i18n/locales/zh.d.ts.map +1 -1
  788. package/dist/i18n/locales/zh.js +370 -3
  789. package/dist/i18n/locales/zh.js.map +1 -1
  790. package/dist/index.js +740 -676
  791. package/dist/index.js.map +1 -1
  792. package/dist/locales/ar.json +359 -3
  793. package/dist/locales/de.json +359 -3
  794. package/dist/locales/el.json +359 -3
  795. package/dist/locales/en.json +359 -3
  796. package/dist/locales/es.json +359 -3
  797. package/dist/locales/fr.json +359 -3
  798. package/dist/locales/hi.json +359 -3
  799. package/dist/locales/it.json +359 -3
  800. package/dist/locales/ja.json +359 -3
  801. package/dist/locales/nl.json +359 -3
  802. package/dist/locales/pl.json +359 -3
  803. package/dist/locales/pt.json +359 -3
  804. package/dist/locales/ro.json +359 -3
  805. package/dist/locales/ru.json +359 -3
  806. package/dist/locales/sq.json +359 -3
  807. package/dist/locales/sv.json +359 -3
  808. package/dist/locales/tr.json +359 -3
  809. package/dist/locales/zh.json +359 -3
  810. package/dist/patterns/alia-assistant/index.js +1 -1
  811. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  812. package/dist/patterns/patient-shell/index.js +1 -1
  813. package/dist/tokens.css +3 -2
  814. package/package.json +50 -1
  815. package/dist/_chunks/accordion-9lJSMMsZ.js.map +0 -1
  816. package/dist/_chunks/address-autocomplete-CT-9AOli.js +0 -358
  817. package/dist/_chunks/address-autocomplete-CT-9AOli.js.map +0 -1
  818. package/dist/_chunks/agenda-tray-T-BumlGZ.js.map +0 -1
  819. package/dist/_chunks/ai-prompt-input-BwEACCPm.js.map +0 -1
  820. package/dist/_chunks/ai-tools-rail-CInA_1-E.js +0 -356
  821. package/dist/_chunks/ai-tools-rail-CInA_1-E.js.map +0 -1
  822. package/dist/_chunks/alert-_mUKLmwA.js.map +0 -1
  823. package/dist/_chunks/appointment-tray-BMl89NPW.js +0 -419
  824. package/dist/_chunks/appointment-tray-BMl89NPW.js.map +0 -1
  825. package/dist/_chunks/audio-recorder-DjXLP4aF.js.map +0 -1
  826. package/dist/_chunks/autocomplete-CcCFlVf-.js.map +0 -1
  827. package/dist/_chunks/badge-CqGsX32l.js.map +0 -1
  828. package/dist/_chunks/bishop-score-CjsB9bM-.js +0 -185
  829. package/dist/_chunks/bishop-score-CjsB9bM-.js.map +0 -1
  830. package/dist/_chunks/bmi-calculator-n-823_1V.js +0 -258
  831. package/dist/_chunks/bmi-calculator-n-823_1V.js.map +0 -1
  832. package/dist/_chunks/booking-L8-YP8BJ.js.map +0 -1
  833. package/dist/_chunks/breadcrumb-OTbaY70e.js.map +0 -1
  834. package/dist/_chunks/calendar-oYWOCrnf.js.map +0 -1
  835. package/dist/_chunks/care-plan-card-BwVUyUBb.js.map +0 -1
  836. package/dist/_chunks/care-plan-entry-card-VzdQHcOL.js.map +0 -1
  837. package/dist/_chunks/chart-Cg3e9EH9.js.map +0 -1
  838. package/dist/_chunks/chat-container-ogB4OskO.js.map +0 -1
  839. package/dist/_chunks/chat-input-B5zjNEUN.js.map +0 -1
  840. package/dist/_chunks/checkbox-DRcOdmXv.js.map +0 -1
  841. package/dist/_chunks/clinical-note-card-gtrxv6zn.js +0 -333
  842. package/dist/_chunks/clinical-note-card-gtrxv6zn.js.map +0 -1
  843. package/dist/_chunks/collapsible-X3oaLPU3.js.map +0 -1
  844. package/dist/_chunks/color-picker-FXpItIaF.js.map +0 -1
  845. package/dist/_chunks/combobox-BC-DFx8G.js.map +0 -1
  846. package/dist/_chunks/command-palette-BiPAAno-.js.map +0 -1
  847. package/dist/_chunks/contact-profile-card-7BMB85T6.js.map +0 -1
  848. package/dist/_chunks/copy-field-CCq7j6Zc.js.map +0 -1
  849. package/dist/_chunks/date-range-picker-C5BWfH_T.js.map +0 -1
  850. package/dist/_chunks/date-time-picker-Ze1My59T.js.map +0 -1
  851. package/dist/_chunks/dependent-selector-DpzGtr_J.js.map +0 -1
  852. package/dist/_chunks/dialog-DMGnSelc.js.map +0 -1
  853. package/dist/_chunks/document-scanner-D2qehl3-.js.map +0 -1
  854. package/dist/_chunks/dropdown-menu-DwwPovMZ.js.map +0 -1
  855. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js +0 -2409
  856. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js.map +0 -1
  857. package/dist/_chunks/email-input-lQivsFrw.js +0 -396
  858. package/dist/_chunks/file-upload-BosbPDb1.js.map +0 -1
  859. package/dist/_chunks/fiscal-code-input-DPtqluVb.js.map +0 -1
  860. package/dist/_chunks/freemium-paywall-CkWjv3o6.js.map +0 -1
  861. package/dist/_chunks/header-settings-CNOqIhoW.js.map +0 -1
  862. package/dist/_chunks/list-BOwqwy03.js.map +0 -1
  863. package/dist/_chunks/locale-picker-C9JmBht3.js.map +0 -1
  864. package/dist/_chunks/map-view-Tb5VfK9Y.js.map +0 -1
  865. package/dist/_chunks/message-card.agent-4IeIgrnJ.js.map +0 -1
  866. package/dist/_chunks/message-tray-CVyJajVJ.js.map +0 -1
  867. package/dist/_chunks/multi-select-BcPylvHR.js.map +0 -1
  868. package/dist/_chunks/navigation-menu-C6lBYVv9.js.map +0 -1
  869. package/dist/_chunks/notification-card-BiESdm8q.js.map +0 -1
  870. package/dist/_chunks/notification-card.agent-Rqt3ofk9.js.map +0 -1
  871. package/dist/_chunks/notification-tray-DlgenTEe.js.map +0 -1
  872. package/dist/_chunks/number-input-Dj5L3pXK.js.map +0 -1
  873. package/dist/_chunks/operator-hero-f_KaRhw5.js.map +0 -1
  874. package/dist/_chunks/otp-input-xQ4Ps5VY.js.map +0 -1
  875. package/dist/_chunks/pagination-DQOgnxxw.js.map +0 -1
  876. package/dist/_chunks/patient-search-DR9XUYRQ.js.map +0 -1
  877. package/dist/_chunks/patient-summary-card-hEmr4eTW.js +0 -443
  878. package/dist/_chunks/patient-summary-card-hEmr4eTW.js.map +0 -1
  879. package/dist/_chunks/payment-form-nXocS_MX.js.map +0 -1
  880. package/dist/_chunks/payment-request-card-CYE5vhZ0.js.map +0 -1
  881. package/dist/_chunks/pdf-viewer-GsfNqeeT.js.map +0 -1
  882. package/dist/_chunks/phone-input-DVXhNlIl.js.map +0 -1
  883. package/dist/_chunks/popover-DTbfAuR0.js.map +0 -1
  884. package/dist/_chunks/practice-results-DND2SAt7.js.map +0 -1
  885. package/dist/_chunks/privacy-lock-C7JyMf0y.js.map +0 -1
  886. package/dist/_chunks/product-hub-panel-CAXDFeGP.js.map +0 -1
  887. package/dist/_chunks/public-footer.agent-CfXuW1x6.js.map +0 -1
  888. package/dist/_chunks/qr-code-DNXhi6se.js.map +0 -1
  889. package/dist/_chunks/recaptcha-widget-BCNHsgqt.js.map +0 -1
  890. package/dist/_chunks/registry-nPAVE19X.js +0 -21
  891. package/dist/_chunks/registry-nPAVE19X.js.map +0 -1
  892. package/dist/_chunks/resizable-3vzqDlg6.js.map +0 -1
  893. package/dist/_chunks/reviews-panel-DBktKm7i.js.map +0 -1
  894. package/dist/_chunks/rich-text-editor-VawKN1FI.js.map +0 -1
  895. package/dist/_chunks/search-bar-SY2BcV2N.js.map +0 -1
  896. package/dist/_chunks/search-input.agent-CfZvViOd.js.map +0 -1
  897. package/dist/_chunks/select-CEtRcon5.js.map +0 -1
  898. package/dist/_chunks/sheet-taJer-Ha.js.map +0 -1
  899. package/dist/_chunks/sidebar-DaB4ulxH.js.map +0 -1
  900. package/dist/_chunks/sign-document-CdAiHiCh.js.map +0 -1
  901. package/dist/_chunks/signature-capture-COi0Uiqu.js.map +0 -1
  902. package/dist/_chunks/slider-BHWzXdjt.js.map +0 -1
  903. package/dist/_chunks/sparkline-DGhCSw8M.js.map +0 -1
  904. package/dist/_chunks/stepper-accordion-Dki6r9ZE.js.map +0 -1
  905. package/dist/_chunks/stepper-accordion.agent-C4quJ-MD.js.map +0 -1
  906. package/dist/_chunks/stepper-progress-DDjq5nei.js.map +0 -1
  907. package/dist/_chunks/switch-BJ6HD3Mn.js.map +0 -1
  908. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  909. package/dist/_chunks/tab-bar-B1ovILzh.js.map +0 -1
  910. package/dist/_chunks/tabs-BIQ0ew1T.js.map +0 -1
  911. package/dist/_chunks/task-card.agent-CUPKYd7w.js.map +0 -1
  912. package/dist/_chunks/task-tray-CAncV-QQ.js.map +0 -1
  913. package/dist/_chunks/text-area-BIx0tZ05.js.map +0 -1
  914. package/dist/_chunks/text-input-BaClJL8Y.js.map +0 -1
  915. package/dist/_chunks/theme-toggle-DETmSu_h.js.map +0 -1
  916. package/dist/_chunks/time-picker-B5umYwfv.js.map +0 -1
  917. package/dist/_chunks/timeline-DQa5Tyz4.js.map +0 -1
  918. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js +0 -1257
  919. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js.map +0 -1
  920. package/dist/_chunks/transaction-chip-DK84XCBU.js.map +0 -1
  921. package/dist/_chunks/transcript-panel-CLHmv83g.js.map +0 -1
  922. package/dist/_chunks/unit-converter-C1V3ACM9.js +0 -196
  923. package/dist/_chunks/unit-converter-C1V3ACM9.js.map +0 -1
  924. package/dist/_chunks/use-password-requirements-DsgduV1x.js.map +0 -1
  925. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  926. package/dist/_chunks/use-persistent-state-i23OWy6G.js.map +0 -1
  927. package/dist/_chunks/warning-stack-Cv4fr5zo.js +0 -220
  928. package/dist/_chunks/warning-stack-Cv4fr5zo.js.map +0 -1
  929. package/dist/_chunks/whatsapp-button-DUjlWGKf.js.map +0 -1
  930. package/dist/_chunks/workflow-map-JAZryZJr.js.map +0 -1
@@ -3,11 +3,11 @@ import { forwardRef as U, useState as y, useMemo as K, useEffect as V } from "re
3
3
  import { c as q } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as J } from "react-i18next";
5
5
  import { R as I } from "./radio-TWf9Q-mp.js";
6
- import { R as Q } from "./radio-group-CLjK-SlK.js";
6
+ import { R as Q } from "./radio-group-BPt7pKZW.js";
7
7
  import { F as $ } from "./form-field-BOm9hK35.js";
8
- import { N as R } from "./number-input-Dj5L3pXK.js";
8
+ import { N as R } from "./number-input-DxphVG_A.js";
9
9
  import { C as P } from "./card-DPmk26CL.js";
10
- import { B as k } from "./badge-CqGsX32l.js";
10
+ import { B as k } from "./badge-DCOqV9mI.js";
11
11
  import { I as X } from "./insert-result-njqBthzT.js";
12
12
  import { b as Y, e as Z } from "./bmi-BxD-tFzU.js";
13
13
  const ee = {
@@ -319,4 +319,4 @@ export {
319
319
  ie as a,
320
320
  te as r
321
321
  };
322
- //# sourceMappingURL=pregnancy-weight-gain-DOJXXNYP.js.map
322
+ //# sourceMappingURL=pregnancy-weight-gain-BUNpTsH-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pregnancy-weight-gain-DOJXXNYP.js","sources":["../../src/components/pregnancy-weight-gain/weight-gain.ts","../../src/components/pregnancy-weight-gain/pregnancy-weight-gain.tsx"],"sourcesContent":["/* ------------------------------------------------------------------ */\n/* Pregnancy weight-gain guidance — pure, framework-free, testable. */\n/* */\n/* Recommended ranges follow the US IOM/NAM (2009) guidelines, keyed off */\n/* pre-pregnancy BMI category. Singletons use the published total-gain */\n/* band plus a first-trimester gain (≤13 wk) and a per-week 2nd/3rd- */\n/* trimester rate. Twins use the IOM twin total bands, pro-rated linearly */\n/* for the \"to date\" estimate (the IOM does not publish a twin weekly */\n/* rate). The IOM provides NO range for triplets, and none for */\n/* underweight twins — those cases return `null` so the UI can say so */\n/* rather than invent a number. */\n/* */\n/* Guidance only — not a substitute for clinical judgement. */\n/* ------------------------------------------------------------------ */\n\nimport { type BmiCategory, bmiCategory } from '../bmi-calculator/bmi';\nimport type { Plurality } from '../_shared/obstetrics';\n\nexport interface GainBand {\n /** Lower bound, kg. */\n min: number;\n /** Upper bound, kg. */\n max: number;\n}\n\nexport type GainStatus = 'below' | 'within' | 'above';\n\n/** IOM (2009) total recommended gain for a singleton pregnancy, kg. */\nexport const TOTAL_GAIN_BANDS: Record<BmiCategory, GainBand> = {\n underweight: { min: 12.5, max: 18 },\n normal: { min: 11.5, max: 16 },\n overweight: { min: 7, max: 11.5 },\n obese: { min: 5, max: 9 },\n};\n\n/**\n * IOM (2009) total recommended gain for a TWIN pregnancy, kg. The IOM gives\n * no firm range for underweight twins (insufficient evidence), so that\n * category is intentionally absent and resolves to `null`. There is no IOM\n * range for triplets at all.\n */\nexport const TWIN_TOTAL_GAIN_BANDS: Partial<Record<BmiCategory, GainBand>> = {\n normal: { min: 16.8, max: 24.5 },\n overweight: { min: 14.1, max: 22.7 },\n obese: { min: 11.3, max: 19.1 },\n};\n\n/** Resolve the total-gain band for a category + plurality, or `null` if the IOM gives none. */\nexport function totalGainBand(\n category: BmiCategory,\n plurality: Plurality = 'singleton',\n): GainBand | null {\n if (plurality === 'triplet') return null; // no IOM guideline for triplets\n if (plurality === 'twin') return TWIN_TOTAL_GAIN_BANDS[category] ?? null;\n return TOTAL_GAIN_BANDS[category];\n}\n\n/** IOM (2009) mean rate of gain in the 2nd/3rd trimester, kg per week. */\nexport const RATE_BANDS: Record<BmiCategory, GainBand> = {\n underweight: { min: 0.44, max: 0.58 },\n normal: { min: 0.35, max: 0.5 },\n overweight: { min: 0.23, max: 0.33 },\n obese: { min: 0.17, max: 0.27 },\n};\n\n/** First-trimester total gain band, kg (category-independent in IOM). */\nexport const FIRST_TRIMESTER_GAIN: GainBand = { min: 0.5, max: 2 };\n/** Completed weeks counted as the first trimester for gain purposes. */\nexport const FIRST_TRIMESTER_WEEKS = 13;\n\nexport interface WeightGainInput {\n /** Pre-pregnancy BMI (kg/m²) — drives the category. */\n prePregnancyBmi: number;\n /** Pre-pregnancy weight, kg. */\n prePregnancyWeightKg: number;\n /** Current weight, kg. */\n currentWeightKg: number;\n /** Completed gestational weeks. */\n gestationalWeeks: number;\n /** Number of babies. Defaults to `'singleton'`. */\n plurality?: Plurality;\n}\n\nexport interface WeightGainResult {\n category: BmiCategory;\n /** Number of babies the assessment was computed for. */\n plurality: Plurality;\n /**\n * Recommended TOTAL gain across the whole pregnancy, or `null` when the IOM\n * publishes no range (triplets, and underweight twins).\n */\n totalRange: GainBand | null;\n /** Recommended gain accumulated by the current week, or `null` (see above). */\n recommendedToDate: GainBand | null;\n /** Actual gain so far (current − pre-pregnancy), kg. */\n actualGainKg: number;\n /** Where the actual gain sits against the to-date recommendation, or `null`. */\n status: GainStatus | null;\n /**\n * Estimated 2nd/3rd-trimester average weekly gain to date (kg/week), or `null`\n * before week 14 / when no singleton rate band applies. A snapshot estimate\n * (assumes the mid first-trimester gain), not a between-visit measurement.\n */\n weeklyRate: number | null;\n /** Where the weekly rate sits against the IOM rate band, or `null`. */\n rateStatus: GainStatus | null;\n}\n\n/** Mid-point of the category-independent first-trimester gain band, kg. */\nconst FIRST_TRIMESTER_MIDPOINT =\n (FIRST_TRIMESTER_GAIN.min + FIRST_TRIMESTER_GAIN.max) / 2;\n\n/* Singleton (default) keeps a non-null return; multiples may be null. */\nexport function recommendedGainToDate(\n category: BmiCategory,\n weeks: number,\n plurality?: 'singleton',\n): GainBand;\nexport function recommendedGainToDate(\n category: BmiCategory,\n weeks: number,\n plurality: Plurality,\n): GainBand | null;\n/** Recommended cumulative gain by a given gestational week. */\nexport function recommendedGainToDate(\n category: BmiCategory,\n weeks: number,\n plurality: Plurality = 'singleton',\n): GainBand | null {\n if (plurality !== 'singleton') {\n // Twins/triplets: no IOM weekly rate is published, so pro-rate the total\n // band linearly across the 40 weeks. `null` total ⇒ no guideline.\n const total = totalGainBand(category, plurality);\n if (!total) return null;\n if (weeks <= 0) return { min: 0, max: 0 };\n const frac = Math.min(weeks, 40) / 40;\n return { min: total.min * frac, max: total.max * frac };\n }\n if (weeks <= 0) return { min: 0, max: 0 };\n if (weeks <= FIRST_TRIMESTER_WEEKS) {\n const frac = weeks / FIRST_TRIMESTER_WEEKS;\n return {\n min: FIRST_TRIMESTER_GAIN.min * frac,\n max: FIRST_TRIMESTER_GAIN.max * frac,\n };\n }\n const extraWeeks = Math.min(weeks, 40) - FIRST_TRIMESTER_WEEKS;\n const rate = RATE_BANDS[category];\n return {\n min: FIRST_TRIMESTER_GAIN.min + rate.min * extraWeeks,\n max: FIRST_TRIMESTER_GAIN.max + rate.max * extraWeeks,\n };\n}\n\nexport function assessWeightGain(input: WeightGainInput): WeightGainResult {\n const category = bmiCategory(input.prePregnancyBmi);\n const plurality = input.plurality ?? 'singleton';\n const totalRange = totalGainBand(category, plurality);\n const recommendedToDate = totalRange\n ? recommendedGainToDate(category, input.gestationalWeeks, plurality)\n : null;\n const actualGainKg = input.currentWeightKg - input.prePregnancyWeightKg;\n const status: GainStatus | null = recommendedToDate\n ? actualGainKg < recommendedToDate.min\n ? 'below'\n : actualGainKg > recommendedToDate.max\n ? 'above'\n : 'within'\n : null;\n\n // 2nd/3rd-trimester average weekly rate to date — singleton only (the IOM\n // publishes weekly rate bands only for singletons), and only after week 13.\n let weeklyRate: number | null = null;\n let rateStatus: GainStatus | null = null;\n if (\n plurality === 'singleton' &&\n input.gestationalWeeks > FIRST_TRIMESTER_WEEKS\n ) {\n const weeks = input.gestationalWeeks - FIRST_TRIMESTER_WEEKS;\n weeklyRate = (actualGainKg - FIRST_TRIMESTER_MIDPOINT) / weeks;\n const band = RATE_BANDS[category];\n rateStatus =\n weeklyRate < band.min\n ? 'below'\n : weeklyRate > band.max\n ? 'above'\n : 'within';\n }\n\n return {\n category,\n plurality,\n totalRange,\n recommendedToDate,\n actualGainKg,\n status,\n weeklyRate,\n rateStatus,\n };\n}\n","/* ------------------------------------------------------------------ */\n/* PregnancyWeightGain — actual vs IOM-recommended gestational weight */\n/* gain, keyed off pre-pregnancy BMI. */\n/* */\n/* Composes the BMI maths from bmi-calculator and the IOM bands in */\n/* `./weight-gain` (both pure, separately tested). Metric only. */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { RadioGroup, Radio } from '../radio-group';\nimport { FormField } from '../form-field';\nimport { NumberInput } from '../number-input';\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 { computeBmi } from '../bmi-calculator/bmi';\nimport type { Plurality } from '../_shared/obstetrics';\nimport {\n type WeightGainResult,\n type GainStatus,\n type GainBand,\n assessWeightGain,\n} from './weight-gain';\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\nconst STATUS_BADGE: Record<GainStatus, 'info' | 'success' | 'warning'> = {\n below: 'warning',\n within: 'success',\n above: 'warning',\n};\n\n/**\n * DS token NAME backing each gain-status chip — the solid-fill companion of the\n * on-screen `STATUS_BADGE` variant (Badge `warning` fills `--warning`,\n * `success` fills `--success`). Passed as the card's `highlightToken` so the\n * inserted PNG chip matches the on-screen status badge; `InsertButton` resolves\n * the name to a concrete colour at raster time.\n */\nconst STATUS_HIGHLIGHT_TOKEN: Record<GainStatus, string> = {\n below: '--warning-readable',\n within: '--success',\n above: '--warning-readable',\n};\n\n/**\n * Gain-status chip token. The `below` / `above` statuses resolve to\n * `--warning-readable`, which the result card's colour probe resolves in the live\n * themed DOM: orange-600 in light, non-accessible mode (where bare `--warning`\n * yellow only reaches ~3.2:1 on the white card) and `--warning` elsewhere, whose\n * deepened ramp already clears contrast. Resolving the token NAME at the card\n * means the choice tracks the live theme regardless of where the theme class\n * lives. The `within` (`--success`) status is unchanged.\n */\nfunction statusHighlightToken(status: GainStatus): string {\n return STATUS_HIGHLIGHT_TOKEN[status];\n}\n\nexport interface PregnancyWeightGainProps extends VariantProps<\n typeof rootVariants\n> {\n /** Initial number of babies. Defaults to `'singleton'`. */\n defaultPlurality?: Plurality;\n /** Pre-fill the height (cm) — e.g. shared from a BMI measurement. */\n defaultHeightCm?: number;\n /** Pre-fill the pre-pregnancy weight (kg) from the patient record. */\n defaultPrePregnancyKg?: number;\n /** Fires whenever a result can be computed (and `null` when it can't). */\n onResultChange?: (result: WeightGainResult | null) => void;\n /** When provided, shows the result-action buttons that emit / copy the result. */\n onInsert?: (payload: InsertPayload) => void;\n /**\n * Verb the result-action buttons perform. Defaults to `'insert'` (editor\n * extension). Pass `'copy'` from an app shell to copy the result to the\n * clipboard instead.\n */\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 /**\n * Brand wordmark printed in the inserted/copied result-card footer.\n * Omitted → no brand line (and no footer hairline); a string → that custom\n * brand; `false` → no brand line. Brand is opt-in.\n */\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\nexport const PregnancyWeightGain = forwardRef<\n HTMLDivElement,\n PregnancyWeightGainProps\n>(\n (\n {\n defaultPlurality = 'singleton',\n defaultHeightCm,\n defaultPrePregnancyKg,\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, i18n } = useTranslation();\n\n const [heightCm, setHeightCm] = useState<number | null>(\n defaultHeightCm ?? null,\n );\n const [prePregnancyKg, setPrePregnancyKg] = useState<number | null>(\n defaultPrePregnancyKg ?? null,\n );\n const [currentKg, setCurrentKg] = useState<number | null>(null);\n const [weeks, setWeeks] = useState<number | null>(null);\n const [plurality, setPlurality] = useState<Plurality>(defaultPlurality);\n\n const prePregnancyBmi = computeBmi(prePregnancyKg, heightCm);\n\n const result = useMemo<WeightGainResult | null>(() => {\n if (\n prePregnancyBmi === null ||\n prePregnancyKg === null ||\n currentKg === null ||\n weeks === null\n ) {\n return null;\n }\n return assessWeightGain({\n prePregnancyBmi,\n prePregnancyWeightKg: prePregnancyKg,\n currentWeightKg: currentKg,\n gestationalWeeks: weeks,\n plurality,\n });\n }, [prePregnancyBmi, prePregnancyKg, currentKg, weeks, plurality]);\n\n const kg = useMemo(\n () =>\n new Intl.NumberFormat(i18n.language, {\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }),\n [i18n.language],\n );\n\n useEffect(() => {\n onResultChange?.(result);\n }, [result, onResultChange]);\n\n const unit = t('pregnancyWeightGain.units.kg');\n const band = (b: GainBand): string =>\n `${kg.format(b.min)} – ${kg.format(b.max)} ${unit}`;\n\n return (\n <div\n ref={ref}\n data-component=\"pregnancy-weight-gain\"\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 <FormField\n label={`${t('pregnancyWeightGain.height')} (${t('pregnancyWeightGain.units.cm')})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.5}\n value={heightCm}\n onChange={setHeightCm}\n />\n </FormField>\n <FormField\n label={`${t('pregnancyWeightGain.prePregnancyWeight')} (${unit})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.1}\n value={prePregnancyKg}\n onChange={setPrePregnancyKg}\n />\n </FormField>\n <FormField\n label={`${t('pregnancyWeightGain.currentWeight')} (${unit})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.1}\n value={currentKg}\n onChange={setCurrentKg}\n />\n </FormField>\n <FormField label={t('pregnancyWeightGain.gestationalWeeks')}>\n <NumberInput\n mode=\"integer\"\n min={0}\n max={42}\n value={weeks}\n onChange={setWeeks}\n />\n </FormField>\n </div>\n\n <RadioGroup\n label={t('pregnancyWeightGain.plurality.label')}\n variant=\"horizontal\"\n value={plurality}\n onValueChange={(next) => setPlurality(next as Plurality)}\n >\n <Radio\n label={t('pregnancyWeightGain.plurality.singleton')}\n value=\"singleton\"\n />\n <Radio label={t('pregnancyWeightGain.plurality.twin')} value=\"twin\" />\n <Radio\n label={t('pregnancyWeightGain.plurality.triplet')}\n value=\"triplet\"\n />\n </RadioGroup>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {result\n ? `${t('pregnancyWeightGain.actualGain')}: ${kg.format(\n result.actualGainKg,\n )} ${unit}.${\n result.status\n ? ` ${t(`pregnancyWeightGain.status.${result.status}`)}.`\n : ` ${t('pregnancyWeightGain.noGuideline')}`\n }`\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:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.prePregnancyBmi')}\n </dt>\n <dd className=\"type-body ds:text-foreground\">\n {kg.format(prePregnancyBmi ?? 0)} ·{' '}\n {t(`pregnancyWeightGain.category.${result.category}`)}\n </dd>\n </div>\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('pregnancyWeightGain.actualGain')}\n </dt>\n <dd className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)]\">\n <span className=\"type-metric ds:text-foreground\">\n {kg.format(result.actualGainKg)} {unit}\n </span>\n {result.status ? (\n <Badge variant={STATUS_BADGE[result.status]} size=\"lg\">\n {t(`pregnancyWeightGain.status.${result.status}`)}\n </Badge>\n ) : null}\n </dd>\n </div>\n {result.recommendedToDate && result.totalRange ? (\n <>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.recommendedToDate')}\n </dt>\n <dd className=\"type-body ds:text-foreground\">\n {band(result.recommendedToDate)}\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.recommendedTotal')}\n </dt>\n <dd className=\"type-body ds:text-foreground\">\n {band(result.totalRange)}\n </dd>\n </div>\n </>\n ) : null}\n </dl>\n {result.totalRange ? null : (\n <p className=\"type-body ds:text-foreground\">\n {t('pregnancyWeightGain.noGuideline')}\n </p>\n )}\n {result.weeklyRate !== null && result.rateStatus ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.weeklyRate')}\n </span>\n <span className=\"type-body ds:text-foreground\">\n {t('pregnancyWeightGain.perWeek', {\n value: kg.format(result.weeklyRate),\n })}\n </span>\n <Badge variant={STATUS_BADGE[result.rateStatus]}>\n {t(`pregnancyWeightGain.status.${result.rateStatus}`)}\n </Badge>\n </div>\n ) : null}\n <p className=\"type-body-sm ds:text-muted-foreground\">\n {t(\n plurality === 'singleton'\n ? 'pregnancyWeightGain.disclaimer'\n : 'pregnancyWeightGain.disclaimerMultiple',\n )}\n </p>\n {result.status &&\n result.recommendedToDate &&\n result.totalRange &&\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.weightGain'),\n icon: 'baby',\n highlight: t(`pregnancyWeightGain.status.${result.status}`),\n // Chip shares the gain-status semantic token so the\n // inserted PNG chip matches the on-screen status badge —\n // with the contrast-safe orange override for the\n // `--warning` below/above statuses.\n highlightToken: statusHighlightToken(result.status),\n brand: insertBrand,\n fields: [\n {\n // Actual gain is the headline trend → trending-up glyph.\n icon: 'trending-up',\n label: t('pregnancyWeightGain.actualGain'),\n value: `${kg.format(result.actualGainKg)} ${unit}`,\n },\n {\n // Recommended weight band → scale glyph.\n icon: 'scale',\n label: t('pregnancyWeightGain.recommendedToDate'),\n value: band(result.recommendedToDate),\n },\n {\n // Recommended total weight band → scale glyph.\n icon: 'scale',\n label: t('pregnancyWeightGain.recommendedTotal'),\n value: band(result.totalRange),\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('pregnancyWeightGain.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nPregnancyWeightGain.displayName = 'PregnancyWeightGain';\n"],"names":["TOTAL_GAIN_BANDS","TWIN_TOTAL_GAIN_BANDS","totalGainBand","category","plurality","RATE_BANDS","FIRST_TRIMESTER_GAIN","FIRST_TRIMESTER_WEEKS","FIRST_TRIMESTER_MIDPOINT","recommendedGainToDate","weeks","total","frac","extraWeeks","rate","assessWeightGain","input","bmiCategory","totalRange","recommendedToDate","actualGainKg","status","weeklyRate","rateStatus","band","rootVariants","cva","STATUS_BADGE","STATUS_HIGHLIGHT_TOKEN","statusHighlightToken","PregnancyWeightGain","forwardRef","defaultPlurality","defaultHeightCm","defaultPrePregnancyKg","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","i18n","useTranslation","heightCm","setHeightCm","useState","prePregnancyKg","setPrePregnancyKg","currentKg","setCurrentKg","setWeeks","setPlurality","prePregnancyBmi","computeBmi","result","useMemo","kg","useEffect","unit","b","jsxs","jsx","FormField","NumberInput","RadioGroup","next","Radio","Card","Badge","Fragment","InsertButton"],"mappings":"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"}
1
+ {"version":3,"file":"pregnancy-weight-gain-BUNpTsH-.js","sources":["../../src/components/pregnancy-weight-gain/weight-gain.ts","../../src/components/pregnancy-weight-gain/pregnancy-weight-gain.tsx"],"sourcesContent":["/* ------------------------------------------------------------------ */\n/* Pregnancy weight-gain guidance — pure, framework-free, testable. */\n/* */\n/* Recommended ranges follow the US IOM/NAM (2009) guidelines, keyed off */\n/* pre-pregnancy BMI category. Singletons use the published total-gain */\n/* band plus a first-trimester gain (≤13 wk) and a per-week 2nd/3rd- */\n/* trimester rate. Twins use the IOM twin total bands, pro-rated linearly */\n/* for the \"to date\" estimate (the IOM does not publish a twin weekly */\n/* rate). The IOM provides NO range for triplets, and none for */\n/* underweight twins — those cases return `null` so the UI can say so */\n/* rather than invent a number. */\n/* */\n/* Guidance only — not a substitute for clinical judgement. */\n/* ------------------------------------------------------------------ */\n\nimport { type BmiCategory, bmiCategory } from '../bmi-calculator/bmi';\nimport type { Plurality } from '../_shared/obstetrics';\n\nexport interface GainBand {\n /** Lower bound, kg. */\n min: number;\n /** Upper bound, kg. */\n max: number;\n}\n\nexport type GainStatus = 'below' | 'within' | 'above';\n\n/** IOM (2009) total recommended gain for a singleton pregnancy, kg. */\nexport const TOTAL_GAIN_BANDS: Record<BmiCategory, GainBand> = {\n underweight: { min: 12.5, max: 18 },\n normal: { min: 11.5, max: 16 },\n overweight: { min: 7, max: 11.5 },\n obese: { min: 5, max: 9 },\n};\n\n/**\n * IOM (2009) total recommended gain for a TWIN pregnancy, kg. The IOM gives\n * no firm range for underweight twins (insufficient evidence), so that\n * category is intentionally absent and resolves to `null`. There is no IOM\n * range for triplets at all.\n */\nexport const TWIN_TOTAL_GAIN_BANDS: Partial<Record<BmiCategory, GainBand>> = {\n normal: { min: 16.8, max: 24.5 },\n overweight: { min: 14.1, max: 22.7 },\n obese: { min: 11.3, max: 19.1 },\n};\n\n/** Resolve the total-gain band for a category + plurality, or `null` if the IOM gives none. */\nexport function totalGainBand(\n category: BmiCategory,\n plurality: Plurality = 'singleton',\n): GainBand | null {\n if (plurality === 'triplet') return null; // no IOM guideline for triplets\n if (plurality === 'twin') return TWIN_TOTAL_GAIN_BANDS[category] ?? null;\n return TOTAL_GAIN_BANDS[category];\n}\n\n/** IOM (2009) mean rate of gain in the 2nd/3rd trimester, kg per week. */\nexport const RATE_BANDS: Record<BmiCategory, GainBand> = {\n underweight: { min: 0.44, max: 0.58 },\n normal: { min: 0.35, max: 0.5 },\n overweight: { min: 0.23, max: 0.33 },\n obese: { min: 0.17, max: 0.27 },\n};\n\n/** First-trimester total gain band, kg (category-independent in IOM). */\nexport const FIRST_TRIMESTER_GAIN: GainBand = { min: 0.5, max: 2 };\n/** Completed weeks counted as the first trimester for gain purposes. */\nexport const FIRST_TRIMESTER_WEEKS = 13;\n\nexport interface WeightGainInput {\n /** Pre-pregnancy BMI (kg/m²) — drives the category. */\n prePregnancyBmi: number;\n /** Pre-pregnancy weight, kg. */\n prePregnancyWeightKg: number;\n /** Current weight, kg. */\n currentWeightKg: number;\n /** Completed gestational weeks. */\n gestationalWeeks: number;\n /** Number of babies. Defaults to `'singleton'`. */\n plurality?: Plurality;\n}\n\nexport interface WeightGainResult {\n category: BmiCategory;\n /** Number of babies the assessment was computed for. */\n plurality: Plurality;\n /**\n * Recommended TOTAL gain across the whole pregnancy, or `null` when the IOM\n * publishes no range (triplets, and underweight twins).\n */\n totalRange: GainBand | null;\n /** Recommended gain accumulated by the current week, or `null` (see above). */\n recommendedToDate: GainBand | null;\n /** Actual gain so far (current − pre-pregnancy), kg. */\n actualGainKg: number;\n /** Where the actual gain sits against the to-date recommendation, or `null`. */\n status: GainStatus | null;\n /**\n * Estimated 2nd/3rd-trimester average weekly gain to date (kg/week), or `null`\n * before week 14 / when no singleton rate band applies. A snapshot estimate\n * (assumes the mid first-trimester gain), not a between-visit measurement.\n */\n weeklyRate: number | null;\n /** Where the weekly rate sits against the IOM rate band, or `null`. */\n rateStatus: GainStatus | null;\n}\n\n/** Mid-point of the category-independent first-trimester gain band, kg. */\nconst FIRST_TRIMESTER_MIDPOINT =\n (FIRST_TRIMESTER_GAIN.min + FIRST_TRIMESTER_GAIN.max) / 2;\n\n/* Singleton (default) keeps a non-null return; multiples may be null. */\nexport function recommendedGainToDate(\n category: BmiCategory,\n weeks: number,\n plurality?: 'singleton',\n): GainBand;\nexport function recommendedGainToDate(\n category: BmiCategory,\n weeks: number,\n plurality: Plurality,\n): GainBand | null;\n/** Recommended cumulative gain by a given gestational week. */\nexport function recommendedGainToDate(\n category: BmiCategory,\n weeks: number,\n plurality: Plurality = 'singleton',\n): GainBand | null {\n if (plurality !== 'singleton') {\n // Twins/triplets: no IOM weekly rate is published, so pro-rate the total\n // band linearly across the 40 weeks. `null` total ⇒ no guideline.\n const total = totalGainBand(category, plurality);\n if (!total) return null;\n if (weeks <= 0) return { min: 0, max: 0 };\n const frac = Math.min(weeks, 40) / 40;\n return { min: total.min * frac, max: total.max * frac };\n }\n if (weeks <= 0) return { min: 0, max: 0 };\n if (weeks <= FIRST_TRIMESTER_WEEKS) {\n const frac = weeks / FIRST_TRIMESTER_WEEKS;\n return {\n min: FIRST_TRIMESTER_GAIN.min * frac,\n max: FIRST_TRIMESTER_GAIN.max * frac,\n };\n }\n const extraWeeks = Math.min(weeks, 40) - FIRST_TRIMESTER_WEEKS;\n const rate = RATE_BANDS[category];\n return {\n min: FIRST_TRIMESTER_GAIN.min + rate.min * extraWeeks,\n max: FIRST_TRIMESTER_GAIN.max + rate.max * extraWeeks,\n };\n}\n\nexport function assessWeightGain(input: WeightGainInput): WeightGainResult {\n const category = bmiCategory(input.prePregnancyBmi);\n const plurality = input.plurality ?? 'singleton';\n const totalRange = totalGainBand(category, plurality);\n const recommendedToDate = totalRange\n ? recommendedGainToDate(category, input.gestationalWeeks, plurality)\n : null;\n const actualGainKg = input.currentWeightKg - input.prePregnancyWeightKg;\n const status: GainStatus | null = recommendedToDate\n ? actualGainKg < recommendedToDate.min\n ? 'below'\n : actualGainKg > recommendedToDate.max\n ? 'above'\n : 'within'\n : null;\n\n // 2nd/3rd-trimester average weekly rate to date — singleton only (the IOM\n // publishes weekly rate bands only for singletons), and only after week 13.\n let weeklyRate: number | null = null;\n let rateStatus: GainStatus | null = null;\n if (\n plurality === 'singleton' &&\n input.gestationalWeeks > FIRST_TRIMESTER_WEEKS\n ) {\n const weeks = input.gestationalWeeks - FIRST_TRIMESTER_WEEKS;\n weeklyRate = (actualGainKg - FIRST_TRIMESTER_MIDPOINT) / weeks;\n const band = RATE_BANDS[category];\n rateStatus =\n weeklyRate < band.min\n ? 'below'\n : weeklyRate > band.max\n ? 'above'\n : 'within';\n }\n\n return {\n category,\n plurality,\n totalRange,\n recommendedToDate,\n actualGainKg,\n status,\n weeklyRate,\n rateStatus,\n };\n}\n","/* ------------------------------------------------------------------ */\n/* PregnancyWeightGain — actual vs IOM-recommended gestational weight */\n/* gain, keyed off pre-pregnancy BMI. */\n/* */\n/* Composes the BMI maths from bmi-calculator and the IOM bands in */\n/* `./weight-gain` (both pure, separately tested). Metric only. */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, useEffect, useMemo, useState } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { RadioGroup, Radio } from '../radio-group';\nimport { FormField } from '../form-field';\nimport { NumberInput } from '../number-input';\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 { computeBmi } from '../bmi-calculator/bmi';\nimport type { Plurality } from '../_shared/obstetrics';\nimport {\n type WeightGainResult,\n type GainStatus,\n type GainBand,\n assessWeightGain,\n} from './weight-gain';\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\nconst STATUS_BADGE: Record<GainStatus, 'info' | 'success' | 'warning'> = {\n below: 'warning',\n within: 'success',\n above: 'warning',\n};\n\n/**\n * DS token NAME backing each gain-status chip — the solid-fill companion of the\n * on-screen `STATUS_BADGE` variant (Badge `warning` fills `--warning`,\n * `success` fills `--success`). Passed as the card's `highlightToken` so the\n * inserted PNG chip matches the on-screen status badge; `InsertButton` resolves\n * the name to a concrete colour at raster time.\n */\nconst STATUS_HIGHLIGHT_TOKEN: Record<GainStatus, string> = {\n below: '--warning-readable',\n within: '--success',\n above: '--warning-readable',\n};\n\n/**\n * Gain-status chip token. The `below` / `above` statuses resolve to\n * `--warning-readable`, which the result card's colour probe resolves in the live\n * themed DOM: orange-600 in light, non-accessible mode (where bare `--warning`\n * yellow only reaches ~3.2:1 on the white card) and `--warning` elsewhere, whose\n * deepened ramp already clears contrast. Resolving the token NAME at the card\n * means the choice tracks the live theme regardless of where the theme class\n * lives. The `within` (`--success`) status is unchanged.\n */\nfunction statusHighlightToken(status: GainStatus): string {\n return STATUS_HIGHLIGHT_TOKEN[status];\n}\n\nexport interface PregnancyWeightGainProps extends VariantProps<\n typeof rootVariants\n> {\n /** Initial number of babies. Defaults to `'singleton'`. */\n defaultPlurality?: Plurality;\n /** Pre-fill the height (cm) — e.g. shared from a BMI measurement. */\n defaultHeightCm?: number;\n /** Pre-fill the pre-pregnancy weight (kg) from the patient record. */\n defaultPrePregnancyKg?: number;\n /** Fires whenever a result can be computed (and `null` when it can't). */\n onResultChange?: (result: WeightGainResult | null) => void;\n /** When provided, shows the result-action buttons that emit / copy the result. */\n onInsert?: (payload: InsertPayload) => void;\n /**\n * Verb the result-action buttons perform. Defaults to `'insert'` (editor\n * extension). Pass `'copy'` from an app shell to copy the result to the\n * clipboard instead.\n */\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 /**\n * Brand wordmark printed in the inserted/copied result-card footer.\n * Omitted → no brand line (and no footer hairline); a string → that custom\n * brand; `false` → no brand line. Brand is opt-in.\n */\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\nexport const PregnancyWeightGain = forwardRef<\n HTMLDivElement,\n PregnancyWeightGainProps\n>(\n (\n {\n defaultPlurality = 'singleton',\n defaultHeightCm,\n defaultPrePregnancyKg,\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, i18n } = useTranslation();\n\n const [heightCm, setHeightCm] = useState<number | null>(\n defaultHeightCm ?? null,\n );\n const [prePregnancyKg, setPrePregnancyKg] = useState<number | null>(\n defaultPrePregnancyKg ?? null,\n );\n const [currentKg, setCurrentKg] = useState<number | null>(null);\n const [weeks, setWeeks] = useState<number | null>(null);\n const [plurality, setPlurality] = useState<Plurality>(defaultPlurality);\n\n const prePregnancyBmi = computeBmi(prePregnancyKg, heightCm);\n\n const result = useMemo<WeightGainResult | null>(() => {\n if (\n prePregnancyBmi === null ||\n prePregnancyKg === null ||\n currentKg === null ||\n weeks === null\n ) {\n return null;\n }\n return assessWeightGain({\n prePregnancyBmi,\n prePregnancyWeightKg: prePregnancyKg,\n currentWeightKg: currentKg,\n gestationalWeeks: weeks,\n plurality,\n });\n }, [prePregnancyBmi, prePregnancyKg, currentKg, weeks, plurality]);\n\n const kg = useMemo(\n () =>\n new Intl.NumberFormat(i18n.language, {\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }),\n [i18n.language],\n );\n\n useEffect(() => {\n onResultChange?.(result);\n }, [result, onResultChange]);\n\n const unit = t('pregnancyWeightGain.units.kg');\n const band = (b: GainBand): string =>\n `${kg.format(b.min)} – ${kg.format(b.max)} ${unit}`;\n\n return (\n <div\n ref={ref}\n data-component=\"pregnancy-weight-gain\"\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 <FormField\n label={`${t('pregnancyWeightGain.height')} (${t('pregnancyWeightGain.units.cm')})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.5}\n value={heightCm}\n onChange={setHeightCm}\n />\n </FormField>\n <FormField\n label={`${t('pregnancyWeightGain.prePregnancyWeight')} (${unit})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.1}\n value={prePregnancyKg}\n onChange={setPrePregnancyKg}\n />\n </FormField>\n <FormField\n label={`${t('pregnancyWeightGain.currentWeight')} (${unit})`}\n >\n <NumberInput\n mode=\"decimal\"\n min={0}\n step={0.1}\n value={currentKg}\n onChange={setCurrentKg}\n />\n </FormField>\n <FormField label={t('pregnancyWeightGain.gestationalWeeks')}>\n <NumberInput\n mode=\"integer\"\n min={0}\n max={42}\n value={weeks}\n onChange={setWeeks}\n />\n </FormField>\n </div>\n\n <RadioGroup\n label={t('pregnancyWeightGain.plurality.label')}\n variant=\"horizontal\"\n value={plurality}\n onValueChange={(next) => setPlurality(next as Plurality)}\n >\n <Radio\n label={t('pregnancyWeightGain.plurality.singleton')}\n value=\"singleton\"\n />\n <Radio label={t('pregnancyWeightGain.plurality.twin')} value=\"twin\" />\n <Radio\n label={t('pregnancyWeightGain.plurality.triplet')}\n value=\"triplet\"\n />\n </RadioGroup>\n\n <p className=\"ds:sr-only\" role=\"status\" aria-live=\"polite\">\n {result\n ? `${t('pregnancyWeightGain.actualGain')}: ${kg.format(\n result.actualGainKg,\n )} ${unit}.${\n result.status\n ? ` ${t(`pregnancyWeightGain.status.${result.status}`)}.`\n : ` ${t('pregnancyWeightGain.noGuideline')}`\n }`\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:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.prePregnancyBmi')}\n </dt>\n <dd className=\"type-body ds:text-foreground\">\n {kg.format(prePregnancyBmi ?? 0)} ·{' '}\n {t(`pregnancyWeightGain.category.${result.category}`)}\n </dd>\n </div>\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('pregnancyWeightGain.actualGain')}\n </dt>\n <dd className=\"ds:flex ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)]\">\n <span className=\"type-metric ds:text-foreground\">\n {kg.format(result.actualGainKg)} {unit}\n </span>\n {result.status ? (\n <Badge variant={STATUS_BADGE[result.status]} size=\"lg\">\n {t(`pregnancyWeightGain.status.${result.status}`)}\n </Badge>\n ) : null}\n </dd>\n </div>\n {result.recommendedToDate && result.totalRange ? (\n <>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.recommendedToDate')}\n </dt>\n <dd className=\"type-body ds:text-foreground\">\n {band(result.recommendedToDate)}\n </dd>\n </div>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <dt className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.recommendedTotal')}\n </dt>\n <dd className=\"type-body ds:text-foreground\">\n {band(result.totalRange)}\n </dd>\n </div>\n </>\n ) : null}\n </dl>\n {result.totalRange ? null : (\n <p className=\"type-body ds:text-foreground\">\n {t('pregnancyWeightGain.noGuideline')}\n </p>\n )}\n {result.weeklyRate !== null && result.rateStatus ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]\">\n <span className=\"type-label ds:text-muted-foreground\">\n {t('pregnancyWeightGain.weeklyRate')}\n </span>\n <span className=\"type-body ds:text-foreground\">\n {t('pregnancyWeightGain.perWeek', {\n value: kg.format(result.weeklyRate),\n })}\n </span>\n <Badge variant={STATUS_BADGE[result.rateStatus]}>\n {t(`pregnancyWeightGain.status.${result.rateStatus}`)}\n </Badge>\n </div>\n ) : null}\n <p className=\"type-body-sm ds:text-muted-foreground\">\n {t(\n plurality === 'singleton'\n ? 'pregnancyWeightGain.disclaimer'\n : 'pregnancyWeightGain.disclaimerMultiple',\n )}\n </p>\n {result.status &&\n result.recommendedToDate &&\n result.totalRange &&\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.weightGain'),\n icon: 'baby',\n highlight: t(`pregnancyWeightGain.status.${result.status}`),\n // Chip shares the gain-status semantic token so the\n // inserted PNG chip matches the on-screen status badge —\n // with the contrast-safe orange override for the\n // `--warning` below/above statuses.\n highlightToken: statusHighlightToken(result.status),\n brand: insertBrand,\n fields: [\n {\n // Actual gain is the headline trend → trending-up glyph.\n icon: 'trending-up',\n label: t('pregnancyWeightGain.actualGain'),\n value: `${kg.format(result.actualGainKg)} ${unit}`,\n },\n {\n // Recommended weight band → scale glyph.\n icon: 'scale',\n label: t('pregnancyWeightGain.recommendedToDate'),\n value: band(result.recommendedToDate),\n },\n {\n // Recommended total weight band → scale glyph.\n icon: 'scale',\n label: t('pregnancyWeightGain.recommendedTotal'),\n value: band(result.totalRange),\n },\n ],\n }}\n />\n ) : null}\n </Card.Body>\n </Card>\n ) : (\n <p className=\"type-body ds:text-muted-foreground\">\n {t('pregnancyWeightGain.empty')}\n </p>\n )}\n </div>\n );\n },\n);\n\nPregnancyWeightGain.displayName = 'PregnancyWeightGain';\n"],"names":["TOTAL_GAIN_BANDS","TWIN_TOTAL_GAIN_BANDS","totalGainBand","category","plurality","RATE_BANDS","FIRST_TRIMESTER_GAIN","FIRST_TRIMESTER_WEEKS","FIRST_TRIMESTER_MIDPOINT","recommendedGainToDate","weeks","total","frac","extraWeeks","rate","assessWeightGain","input","bmiCategory","totalRange","recommendedToDate","actualGainKg","status","weeklyRate","rateStatus","band","rootVariants","cva","STATUS_BADGE","STATUS_HIGHLIGHT_TOKEN","statusHighlightToken","PregnancyWeightGain","forwardRef","defaultPlurality","defaultHeightCm","defaultPrePregnancyKg","onResultChange","onInsert","insertVariant","onCopy","onError","insertBrand","id","width","className","ref","t","i18n","useTranslation","heightCm","setHeightCm","useState","prePregnancyKg","setPrePregnancyKg","currentKg","setCurrentKg","setWeeks","setPlurality","prePregnancyBmi","computeBmi","result","useMemo","kg","useEffect","unit","b","jsxs","jsx","FormField","NumberInput","RadioGroup","next","Radio","Card","Badge","Fragment","InsertButton"],"mappings":"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"}
@@ -1,17 +1,19 @@
1
1
  import { jsxs as n, jsx as o } from "react/jsx-runtime";
2
2
  import { forwardRef as q, useState as G, useCallback as g, useRef as L, useImperativeHandle as J, useMemo as Q } from "react";
3
3
  import { useTranslation as V } from "react-i18next";
4
- import * as i from "@radix-ui/react-dialog";
4
+ import * as a from "@radix-ui/react-dialog";
5
5
  import { B as u } from "./button-DD_0Xdmr.js";
6
6
  import { I as W } from "./icon-button-LqoiKcUN.js";
7
7
  import { L as X } from "./logo-1FuSGx0n.js";
8
- import { u as Y } from "./registry-nPAVE19X.js";
8
+ import { u as Y } from "./registry-DvAUVLHh.js";
9
9
  import { E as h } from "./eye-off-xEXDAh5z.js";
10
10
  import { U as Z } from "./user-CPxpqFjJ.js";
11
11
  import { L as _ } from "./log-out-616hnn2-.js";
12
12
  const $ = {
13
13
  id: "privacy-lock",
14
- capabilities: ["submit", "dismiss"],
14
+ // lock() opens the privacy overlay → `open`; unlock() closes it → `dismiss`.
15
+ // There is no form to submit, so the previous `submit` capability is dropped.
16
+ capabilities: ["open", "dismiss"],
15
17
  state: {
16
18
  isLocked: {
17
19
  type: "boolean",
@@ -22,7 +24,8 @@ const $ = {
22
24
  },
23
25
  actions: {
24
26
  lock: {
25
- safety: "write",
27
+ safety: "read",
28
+ idempotent: !0,
26
29
  descriptionKey: "ui.agent.privacyLock.actions.lock",
27
30
  description: "Open the privacy overlay.",
28
31
  invoke: (t) => {
@@ -30,7 +33,8 @@ const $ = {
30
33
  }
31
34
  },
32
35
  unlock: {
33
- safety: "write",
36
+ safety: "read",
37
+ idempotent: !0,
34
38
  descriptionKey: "ui.agent.privacyLock.actions.unlock",
35
39
  description: "Close the privacy overlay (consumer-confirmed action).",
36
40
  invoke: (t) => {
@@ -58,18 +62,18 @@ const $ = {
58
62
  onUnlock: b,
59
63
  onAccountPage: m,
60
64
  onSignOut: v,
61
- triggerIcon: w,
62
- triggerAriaLabel: D,
63
- triggerTooltip: P,
64
- title: T,
65
- description: I,
66
- unlockLabel: O,
65
+ triggerIcon: D,
66
+ triggerAriaLabel: P,
67
+ triggerTooltip: T,
68
+ title: I,
69
+ description: O,
70
+ unlockLabel: w,
67
71
  accountPageLabel: A,
68
72
  signOutLabel: N,
69
73
  className: R,
70
74
  ...c
71
75
  }, j) => {
72
- const { t: r } = V(), [z, C] = G(x), d = t !== void 0, l = d ? t : z, a = g(
76
+ const { t: r } = V(), [z, C] = G(x), d = t !== void 0, l = d ? t : z, i = g(
73
77
  (e) => {
74
78
  d || C(e), s == null || s(e);
75
79
  },
@@ -81,10 +85,10 @@ const $ = {
81
85
  const U = Q(
82
86
  () => ({
83
87
  isLocked: () => f.current,
84
- lock: () => a(!0),
85
- unlock: () => a(!1)
88
+ lock: () => i(!0),
89
+ unlock: () => i(!1)
86
90
  }),
87
- [a]
91
+ [i]
88
92
  );
89
93
  Y(
90
94
  $,
@@ -93,19 +97,19 @@ const $ = {
93
97
  );
94
98
  const p = g(
95
99
  (e) => (F) => {
96
- e == null || e(), F.defaultPrevented || a(!1);
100
+ e == null || e(), F.defaultPrevented || i(!1);
97
101
  },
98
- [a]
99
- ), K = D ?? r("privacyLock.triggerAriaLabel", "Lock screen for privacy"), B = P ?? r("privacyLock.triggerTooltip", "Lock screen"), k = T ?? r("privacyLock.title", "Screen locked for privacy"), E = I ?? r(
102
+ [i]
103
+ ), K = P ?? r("privacyLock.triggerAriaLabel", "Lock screen for privacy"), B = T ?? r("privacyLock.triggerTooltip", "Lock screen"), k = I ?? r("privacyLock.title", "Screen locked for privacy"), E = O ?? r(
100
104
  "privacyLock.description",
101
105
  "Locking the screen helps protect the privacy of your data."
102
- ), H = O ?? r("privacyLock.unlock", "Unlock screen"), S = A ?? r("privacyLock.accountPage", "Account page"), M = N ?? r("privacyLock.signOut", "Log out");
103
- return /* @__PURE__ */ n(i.Root, { open: l, onOpenChange: a, children: [
104
- /* @__PURE__ */ o(i.Trigger, { asChild: !0, children: /* @__PURE__ */ o(
106
+ ), H = w ?? r("privacyLock.unlock", "Unlock screen"), S = A ?? r("privacyLock.accountPage", "Account page"), M = N ?? r("privacyLock.signOut", "Log out");
107
+ return /* @__PURE__ */ n(a.Root, { open: l, onOpenChange: i, children: [
108
+ /* @__PURE__ */ o(a.Trigger, { asChild: !0, children: /* @__PURE__ */ o(
105
109
  W,
106
110
  {
107
111
  ref: y,
108
- icon: w ?? /* @__PURE__ */ o(h, { "aria-hidden": !0 }),
112
+ icon: D ?? /* @__PURE__ */ o(h, { "aria-hidden": !0 }),
109
113
  "aria-label": K,
110
114
  tooltip: B,
111
115
  className: R,
@@ -114,9 +118,9 @@ const $ = {
114
118
  ...c
115
119
  }
116
120
  ) }),
117
- /* @__PURE__ */ n(i.Portal, { children: [
121
+ /* @__PURE__ */ n(a.Portal, { children: [
118
122
  /* @__PURE__ */ o(
119
- i.Overlay,
123
+ a.Overlay,
120
124
  {
121
125
  className: [
122
126
  "ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]",
@@ -130,7 +134,7 @@ const $ = {
130
134
  }
131
135
  ),
132
136
  /* @__PURE__ */ o(
133
- i.Content,
137
+ a.Content,
134
138
  {
135
139
  "aria-label": k,
136
140
  onEscapeKeyDown: (e) => e.preventDefault(),
@@ -147,7 +151,7 @@ const $ = {
147
151
  ].join(" "),
148
152
  children: /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-lg)] ds:w-[min(22rem,calc(100vw-var(--spacing-xl)))] ds:text-center", children: [
149
153
  /* @__PURE__ */ o(X, { size: "xl", decorative: !0 }),
150
- /* @__PURE__ */ o(i.Title, { className: "ds:sr-only", children: k }),
154
+ /* @__PURE__ */ o(a.Title, { className: "ds:sr-only", children: k }),
151
155
  /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:w-full", children: [
152
156
  /* @__PURE__ */ o(
153
157
  u,
@@ -177,7 +181,7 @@ const $ = {
177
181
  }
178
182
  ) : null
179
183
  ] }),
180
- /* @__PURE__ */ o(i.Description, { className: "type-body-sm ds:opacity-90", children: E })
184
+ /* @__PURE__ */ o(a.Description, { className: "type-body-sm ds:opacity-90", children: E })
181
185
  ] })
182
186
  }
183
187
  )
@@ -190,4 +194,4 @@ export {
190
194
  ee as P,
191
195
  $ as p
192
196
  };
193
- //# sourceMappingURL=privacy-lock-C7JyMf0y.js.map
197
+ //# sourceMappingURL=privacy-lock-BzMLQu-j.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-lock-BzMLQu-j.js","sources":["../../src/components/privacy-lock/privacy-lock.agent.ts","../../src/components/privacy-lock/privacy-lock.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — PrivacyLock. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { PrivacyLockHandle } from './privacy-lock';\n\nexport const privacyLockAgent: AgentAdapter<PrivacyLockHandle> = {\n id: 'privacy-lock',\n // lock() opens the privacy overlay → `open`; unlock() closes it → `dismiss`.\n // There is no form to submit, so the previous `submit` capability is dropped.\n capabilities: ['open', 'dismiss'],\n state: {\n isLocked: {\n type: 'boolean',\n descriptionKey: 'ui.agent.privacyLock.state.isLocked',\n description: 'True when the privacy overlay is open.',\n read: (handle) => handle.isLocked(),\n },\n },\n actions: {\n lock: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.privacyLock.actions.lock',\n description: 'Open the privacy overlay.',\n invoke: (handle) => {\n handle.lock();\n },\n },\n unlock: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.privacyLock.actions.unlock',\n description: 'Close the privacy overlay (consumer-confirmed action).',\n invoke: (handle) => {\n handle.unlock();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'privacy-lock',\n description: 'Marks the PrivacyLock trigger.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","/* -------------------------------------------------------------------- */\n/* PrivacyLock — a one-click \"lock my screen\" dialog for operator */\n/* workstations on shared clinic hardware. Clicking the trigger paints */\n/* a full-viewport privacy overlay (blurred backdrop + centred card); */\n/* the only ways out are the three action buttons the consumer wires. */\n/* */\n/* Composed of one `IconButton` trigger and a Radix Dialog overlay. The */\n/* dialog is intentionally *not* dismissible via Escape or outside-click */\n/* — the whole point is to make the screen unreadable until the user */\n/* takes an explicit action. */\n/* */\n/* See `src/components/privacy-lock/privacy-lock.mdx` for usage. */\n/* -------------------------------------------------------------------- */\n\nimport {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type MouseEvent,\n type ReactNode,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport { EyeOff, LogOut, User } from 'lucide-react';\nimport { Button } from '../button';\nimport { IconButton } from '../button/icon-button';\nimport { Logo } from '../logo';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { privacyLockAgent } from './privacy-lock.agent';\n\n/* ------------------------------------------------------------------ */\n/* Props */\n/* ------------------------------------------------------------------ */\n\n/** Curated imperative handle for agent / external automation. */\nexport interface PrivacyLockHandle {\n isLocked: () => boolean;\n lock: () => void;\n unlock: () => void;\n}\n\nexport interface PrivacyLockProps {\n /** Controlled open state. Pair with `onOpenChange`. */\n open?: boolean;\n /** Uncontrolled initial state. Ignored when `open` is provided. */\n defaultOpen?: boolean;\n /** Fires whenever the dialog opens or closes — trigger click, action button, etc. */\n onOpenChange?: (open: boolean) => void;\n\n /** Fires when the \"Unlock screen\" button is activated. Dialog closes automatically. */\n onUnlock?: () => void;\n /** Fires when \"Account page\" is activated. Button is omitted when undefined. Dialog closes automatically. */\n onAccountPage?: () => void;\n /** Fires when \"Log out\" is activated. Button is omitted when undefined. Dialog closes automatically. */\n onSignOut?: () => void;\n\n /** Override the trigger icon. Default: `lucide-react` `<EyeOff />`. */\n triggerIcon?: ReactNode;\n /** Accessible name for the trigger. Default: t('privacyLock.triggerAriaLabel'). */\n triggerAriaLabel?: string;\n /** Tooltip for the trigger. Default: t('privacyLock.triggerTooltip'). */\n triggerTooltip?: string;\n\n /** Accessible title of the dialog (visually hidden). Default: t('privacyLock.title'). */\n title?: string;\n /** Visible supporting text under the action buttons. Default: t('privacyLock.description'). */\n description?: string;\n /** Label for the \"Unlock screen\" button. Default: t('privacyLock.unlock'). */\n unlockLabel?: string;\n /** Label for the \"Account page\" button. Default: t('privacyLock.accountPage'). */\n accountPageLabel?: string;\n /** Label for the \"Log out\" button. Default: t('privacyLock.signOut'). */\n signOutLabel?: string;\n\n /** Extra classes on the trigger `IconButton`. */\n className?: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nexport const PrivacyLock = forwardRef<HTMLButtonElement, PrivacyLockProps>(\n (\n {\n open,\n defaultOpen = false,\n onOpenChange,\n onUnlock,\n onAccountPage,\n onSignOut,\n triggerIcon,\n triggerAriaLabel,\n triggerTooltip,\n title,\n description,\n unlockLabel,\n accountPageLabel,\n signOutLabel,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : uncontrolledOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setUncontrolledOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n const latestOpenRef = useRef(isOpen);\n latestOpenRef.current = isOpen;\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n useImperativeHandle(ref, () => triggerRef.current as HTMLButtonElement, []);\n\n const agentHandle = useMemo<PrivacyLockHandle>(\n () => ({\n isLocked: () => latestOpenRef.current,\n lock: () => setOpen(true),\n unlock: () => setOpen(false),\n }),\n [setOpen],\n );\n useAgentRegistration(\n privacyLockAgent,\n agentHandle,\n (rest as { id?: string }).id,\n );\n\n // Every action closes the dialog after firing the consumer's\n // callback. Consumers that need to keep the dialog open (e.g.\n // confirmation step) should control `open` themselves and skip the\n // close on the relevant callback.\n const handleAction = useCallback(\n (callback?: () => void) => (event: MouseEvent<HTMLButtonElement>) => {\n callback?.();\n // Only close if the consumer didn't preventDefault — lets a\n // controlled consumer stop the auto-close for guarded actions.\n if (!event.defaultPrevented) setOpen(false);\n },\n [setOpen],\n );\n\n const resolvedTriggerAriaLabel =\n triggerAriaLabel ??\n t('privacyLock.triggerAriaLabel', 'Lock screen for privacy');\n const resolvedTriggerTooltip =\n triggerTooltip ?? t('privacyLock.triggerTooltip', 'Lock screen');\n const resolvedTitle =\n title ?? t('privacyLock.title', 'Screen locked for privacy');\n const resolvedDescription =\n description ??\n t(\n 'privacyLock.description',\n 'Locking the screen helps protect the privacy of your data.',\n );\n const resolvedUnlockLabel =\n unlockLabel ?? t('privacyLock.unlock', 'Unlock screen');\n const resolvedAccountPageLabel =\n accountPageLabel ?? t('privacyLock.accountPage', 'Account page');\n const resolvedSignOutLabel =\n signOutLabel ?? t('privacyLock.signOut', 'Log out');\n\n return (\n <RadixDialog.Root open={isOpen} onOpenChange={setOpen}>\n <RadixDialog.Trigger asChild>\n <IconButton\n ref={triggerRef}\n icon={triggerIcon ?? <EyeOff aria-hidden />}\n aria-label={resolvedTriggerAriaLabel}\n tooltip={resolvedTriggerTooltip}\n className={className}\n data-component=\"privacy-lock\"\n data-component-id={(rest as { id?: string }).id}\n {...rest}\n />\n </RadixDialog.Trigger>\n <RadixDialog.Portal>\n <RadixDialog.Overlay\n className={[\n 'ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]',\n 'ds:bg-[var(--background)]/40 ds:backdrop-blur-xl',\n // Fade-in / fade-out via Radix data-state. Gated on\n // motion-reduce per accessibility requirements.\n 'ds:data-[state=open]:animate-in ds:data-[state=open]:fade-in',\n 'ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out',\n 'ds:motion-reduce:animate-none',\n ].join(' ')}\n />\n <RadixDialog.Content\n aria-label={resolvedTitle}\n // Make the overlay non-dismissible by ambient input. The only\n // way out is an explicit action button — preserving the\n // \"locked\" contract. Screen readers + assistive tech still\n // reach the buttons via Tab.\n onEscapeKeyDown={(event) => event.preventDefault()}\n onPointerDownOutside={(event) => event.preventDefault()}\n onInteractOutside={(event) => event.preventDefault()}\n // Radix's default closes the dialog and returns focus to the\n // trigger (per the WAI-ARIA Dialog pattern). Stacked with\n // Radix Tooltip — which opens on focus per the WAI-ARIA\n // Tooltip pattern — that produces a tooltip stuck on the\n // lock icon every time the user unlocks. PrivacyLock's UX\n // contract is \"unlock and get out of the user's way\" (cf.\n // macOS / Windows / 1Password unlock flows: focus returns to\n // the page, not the unlock control), so we opt out of\n // Radix's auto-focus return and let focus fall to the body.\n onCloseAutoFocus={(event) => event.preventDefault()}\n className={[\n 'ds:fixed ds:inset-0 ds:z-[var(--z-modal)]',\n 'ds:flex ds:items-center ds:justify-center',\n 'ds:focus:outline-none',\n 'ds:text-[color:var(--foreground)]',\n 'ds:data-[state=open]:animate-in ds:data-[state=open]:fade-in',\n 'ds:motion-reduce:animate-none',\n ].join(' ')}\n >\n <div className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-lg)] ds:w-[min(22rem,calc(100vw-var(--spacing-xl)))] ds:text-center\">\n <Logo size=\"xl\" decorative />\n <RadixDialog.Title className=\"ds:sr-only\">\n {resolvedTitle}\n </RadixDialog.Title>\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:w-full\">\n <Button\n intent=\"primary\"\n startIcon={<EyeOff aria-hidden />}\n onClick={handleAction(onUnlock)}\n >\n {resolvedUnlockLabel}\n </Button>\n {onAccountPage ? (\n <Button\n intent=\"secondary\"\n startIcon={<User aria-hidden />}\n onClick={handleAction(onAccountPage)}\n >\n {resolvedAccountPageLabel}\n </Button>\n ) : null}\n {onSignOut ? (\n <Button\n intent=\"secondary\"\n startIcon={<LogOut aria-hidden />}\n onClick={handleAction(onSignOut)}\n >\n {resolvedSignOutLabel}\n </Button>\n ) : null}\n </div>\n <RadixDialog.Description className=\"type-body-sm ds:opacity-90\">\n {resolvedDescription}\n </RadixDialog.Description>\n </div>\n </RadixDialog.Content>\n </RadixDialog.Portal>\n </RadixDialog.Root>\n );\n },\n);\nPrivacyLock.displayName = 'PrivacyLock';\n"],"names":["privacyLockAgent","handle","PrivacyLock","forwardRef","open","defaultOpen","onOpenChange","onUnlock","onAccountPage","onSignOut","triggerIcon","triggerAriaLabel","triggerTooltip","title","description","unlockLabel","accountPageLabel","signOutLabel","className","rest","ref","t","useTranslation","uncontrolledOpen","setUncontrolledOpen","useState","isControlled","isOpen","setOpen","useCallback","next","latestOpenRef","useRef","triggerRef","useImperativeHandle","agentHandle","useMemo","useAgentRegistration","handleAction","callback","event","resolvedTriggerAriaLabel","resolvedTriggerTooltip","resolvedTitle","resolvedDescription","resolvedUnlockLabel","resolvedAccountPageLabel","resolvedSignOutLabel","RadixDialog","jsx","IconButton","EyeOff","jsxs","Logo","Button","User","LogOut"],"mappings":"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"}
@@ -4,9 +4,9 @@ import { c as b } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as R } from "react-i18next";
5
5
  import { E as se } from "./empty-state-BLy7tigq.js";
6
6
  import { L as Q } from "./link-DrD_cRUg.js";
7
- import { S as _ } from "./separator-CYU_bGFn.js";
8
- import { i as W } from "./is-safe-url-DkETxeHz.js";
9
- import { u as X } from "./registry-nPAVE19X.js";
7
+ import { S as W } from "./separator-CYU_bGFn.js";
8
+ import { i as _ } from "./is-safe-url-DkETxeHz.js";
9
+ import { u as X } from "./registry-DvAUVLHh.js";
10
10
  import * as C from "@radix-ui/react-popover";
11
11
  import { u as ae } from "./use-controllable-state-BiY4xTzM.js";
12
12
  import { I as te } from "./icon-button-LqoiKcUN.js";
@@ -42,6 +42,7 @@ const oe = [
42
42
  actions: {
43
43
  open: {
44
44
  safety: "read",
45
+ idempotent: !0,
45
46
  descriptionKey: "ui.agent.productHubTray.actions.open",
46
47
  description: "Open the product-updates panel.",
47
48
  invoke: (s) => {
@@ -50,6 +51,7 @@ const oe = [
50
51
  },
51
52
  close: {
52
53
  safety: "read",
54
+ idempotent: !0,
53
55
  descriptionKey: "ui.agent.productHubTray.actions.close",
54
56
  description: "Close the product-updates panel.",
55
57
  invoke: (s) => {
@@ -194,7 +196,7 @@ function Y({
194
196
  className: l,
195
197
  ...u
196
198
  }) {
197
- const { t: p } = R(), m = de(s.imageUrl), x = !!s.url && W(s.url), d = !!s.unseen, f = d ? /* @__PURE__ */ e("span", { className: "ds:sr-only", children: p("productHubTray.unseenLabel", ", new") }) : null;
199
+ const { t: p } = R(), m = de(s.imageUrl), y = !!s.url && _(s.url), d = !!s.unseen, f = d ? /* @__PURE__ */ e("span", { className: "ds:sr-only", children: p("productHubTray.unseenLabel", ", new") }) : null;
198
200
  return /* @__PURE__ */ r(
199
201
  "div",
200
202
  {
@@ -233,7 +235,7 @@ function Y({
233
235
  className: "ds:inline-block ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)] ds:forced-colors:bg-[Highlight]"
234
236
  }
235
237
  ) : null,
236
- x ? (
238
+ y ? (
237
239
  // A real (non-display:contents) anchor so the row is reliably
238
240
  // keyboard-focusable; the ::after stretch keeps the whole row
239
241
  // clickable and carries the focus ring.
@@ -348,7 +350,7 @@ const ge = F(
348
350
  unseenCount: u,
349
351
  onOpenChange: p,
350
352
  onItemActivate: m,
351
- triggerLabel: x,
353
+ triggerLabel: y,
352
354
  maxVisible: d = 10,
353
355
  emptyState: f,
354
356
  defaultOpen: I = !1,
@@ -362,31 +364,31 @@ const ge = F(
362
364
  const { t: n } = R(), [v, g] = ae({
363
365
  defaultValue: I,
364
366
  onChange: p
365
- }), k = v ?? !1, t = u ?? a.filter((h) => h.unseen).length, P = x ?? (t > 0 ? n("productHubTray.triggerLabel", {
367
+ }), k = v ?? !1, t = u ?? a.filter((h) => h.unseen).length, P = y ?? (t > 0 ? n("productHubTray.triggerLabel", {
366
368
  count: t,
367
369
  defaultValue: "What's new, {{count}} unseen updates"
368
370
  }) : n("productHubTray.triggerLabelNone", "What's new")), U = fe(
369
371
  t,
370
372
  n("productHubTray.badgeCountOverflow", "99+")
371
- ), K = a.slice(0, Math.max(0, d)), A = !l && !i && K.length > 0, E = o && W(o) ? o : void 0, q = w(a);
372
- q.current = a;
373
+ ), K = a.slice(0, Math.max(0, d)), A = !l && !i && K.length > 0, q = o && _(o) ? o : void 0, E = w(a);
374
+ E.current = a;
373
375
  const B = w(u);
374
376
  B.current = u;
375
377
  const ee = G(
376
378
  () => ({
377
379
  open: () => g(!0),
378
380
  close: () => g(!1),
379
- getUnseenCount: () => B.current ?? q.current.filter((h) => h.unseen).length
381
+ getUnseenCount: () => B.current ?? E.current.filter((h) => h.unseen).length
380
382
  }),
381
383
  [g]
382
384
  ), D = w(null);
383
385
  J(T, () => D.current, []), X(ie, ee, s);
384
- let y;
385
- return l ? y = /* @__PURE__ */ e(Z, { children: l }) : i ? y = /* @__PURE__ */ r(S, { children: [
386
+ let x;
387
+ return l ? x = /* @__PURE__ */ e(Z, { children: l }) : i ? x = /* @__PURE__ */ r(S, { children: [
386
388
  /* @__PURE__ */ e(j, {}),
387
389
  /* @__PURE__ */ e(j, {}),
388
390
  /* @__PURE__ */ e(j, {})
389
- ] }) : K.length === 0 ? y = f ?? /* @__PURE__ */ e(ve, {}) : y = K.map((h) => /* @__PURE__ */ e(
391
+ ] }) : K.length === 0 ? x = f ?? /* @__PURE__ */ e(ve, {}) : x = K.map((h) => /* @__PURE__ */ e(
390
392
  Y,
391
393
  {
392
394
  item: h,
@@ -435,19 +437,19 @@ const ge = F(
435
437
  className: ce({ size: c }),
436
438
  children: [
437
439
  /* @__PURE__ */ e("div", { className: "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: /* @__PURE__ */ e("h3", { className: "ds:m-0 type-title-card ds:text-[color:var(--foreground)]", children: n("productHubTray.panelTitle", "What's new") }) }),
438
- /* @__PURE__ */ e(_, {}),
440
+ /* @__PURE__ */ e(W, {}),
439
441
  /* @__PURE__ */ e(
440
442
  "div",
441
443
  {
442
444
  role: A ? "list" : void 0,
443
445
  "data-max-visible": d,
444
446
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:overflow-y-auto ds:pt-[var(--spacing-xs)] ds:flex-1 ds:sm:flex-none ds:sm:[max-block-size:var(--product-hub-tray-max-block-size,24rem)]",
445
- children: y
447
+ children: x
446
448
  }
447
449
  ),
448
- E ? /* @__PURE__ */ r(S, { children: [
449
- /* @__PURE__ */ e(_, {}),
450
- /* @__PURE__ */ e("div", { className: "ds:flex ds:justify-center ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: /* @__PURE__ */ e(Q, { href: E, external: !0, children: n("productHubTray.openHub", "Open in Product Hub") }) })
450
+ q ? /* @__PURE__ */ r(S, { children: [
451
+ /* @__PURE__ */ e(W, {}),
452
+ /* @__PURE__ */ e("div", { className: "ds:flex ds:justify-center ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: /* @__PURE__ */ e(Q, { href: q, external: !0, children: n("productHubTray.openHub", "Open in Product Hub") }) })
451
453
  ] }) : null
452
454
  ]
453
455
  }
@@ -460,7 +462,9 @@ const ge = F(
460
462
  ge.displayName = "ProductHubTray";
461
463
  const he = {
462
464
  id: "product-hub-panel",
463
- capabilities: ["select_single"],
465
+ // selectItem activates one release row (fires the host hook) without
466
+ // persisting a stored selection → `pick`, not `select_single`.
467
+ capabilities: ["pick"],
464
468
  state: {
465
469
  items: {
466
470
  type: "Array<{ id: string; unseen: boolean }>",
@@ -479,8 +483,22 @@ const he = {
479
483
  select_item: {
480
484
  safety: "read",
481
485
  argsType: "{ id: string }",
486
+ argsSchema: {
487
+ type: "object",
488
+ properties: {
489
+ id: {
490
+ type: "string",
491
+ description: "Stable release id (the data-update-id of the row)."
492
+ }
493
+ },
494
+ required: ["id"]
495
+ },
496
+ idempotent: !0,
482
497
  descriptionKey: "ui.agent.productHubPanel.actions.selectItem",
483
498
  description: "Activate the release with the given id (fires the host analytics hook).",
499
+ examples: [
500
+ { args: { id: "rel-0680" }, note: "Activate a specific release row." }
501
+ ],
484
502
  invoke: (s, a) => {
485
503
  s.selectItem(a.id);
486
504
  }
@@ -522,7 +540,7 @@ const he = {
522
540
  surface: "elevated"
523
541
  }
524
542
  }
525
- ), xe = F(
543
+ ), ye = F(
526
544
  ({
527
545
  id: s,
528
546
  items: a,
@@ -532,16 +550,16 @@ const he = {
532
550
  title: u,
533
551
  description: p,
534
552
  maxVisible: m = 5,
535
- emptyState: x,
553
+ emptyState: y,
536
554
  onItemActivate: d,
537
555
  locale: f,
538
556
  surface: I = "elevated",
539
557
  className: L,
540
558
  ...O
541
559
  }, M) => {
542
- const { t: c } = R(), N = u ?? c("productHubPanel.title", "What's new"), H = a.slice(0, Math.max(0, m)), T = o && W(o) ? o : void 0;
560
+ const { t: c } = R(), N = u ?? c("productHubPanel.title", "What's new"), H = a.slice(0, Math.max(0, m)), T = o && _(o) ? o : void 0;
543
561
  let n;
544
- l ? n = /* @__PURE__ */ e(Z, { children: l }) : i ? n = /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:p-[var(--spacing-sm)] ds:pt-0", children: [0, 1, 2].map((t) => /* @__PURE__ */ e(j, { density: "panel" }, t)) }) : H.length === 0 ? n = x ?? /* @__PURE__ */ e("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ e(
562
+ l ? n = /* @__PURE__ */ e(Z, { children: l }) : i ? n = /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:p-[var(--spacing-sm)] ds:pt-0", children: [0, 1, 2].map((t) => /* @__PURE__ */ e(j, { density: "panel" }, t)) }) : H.length === 0 ? n = y ?? /* @__PURE__ */ e("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ e(
545
563
  se,
546
564
  {
547
565
  variant: "first-use",
@@ -602,7 +620,7 @@ const he = {
602
620
  ] }),
603
621
  n,
604
622
  T ? /* @__PURE__ */ r(S, { children: [
605
- /* @__PURE__ */ e(_, {}),
623
+ /* @__PURE__ */ e(W, {}),
606
624
  /* @__PURE__ */ e("div", { className: "ds:flex ds:justify-center ds:p-[var(--spacing-sm)]", children: /* @__PURE__ */ e(Q, { href: T, external: !0, children: c("productHubPanel.openHub", "Open in Product Hub") }) })
607
625
  ] }) : null
608
626
  ]
@@ -610,11 +628,11 @@ const he = {
610
628
  );
611
629
  }
612
630
  );
613
- xe.displayName = "ProductHubPanel";
631
+ ye.displayName = "ProductHubPanel";
614
632
  export {
615
- xe as P,
633
+ ye as P,
616
634
  ge as a,
617
635
  ie as b,
618
636
  he as p
619
637
  };
620
- //# sourceMappingURL=product-hub-panel-CAXDFeGP.js.map
638
+ //# sourceMappingURL=product-hub-panel-e6pW220e.js.map