@alfadocs/ui-kit 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 (440) hide show
  1. package/dist/_chunks/{accordion-9lJSMMsZ.js → accordion-DnIa7OHX.js} +69 -47
  2. package/dist/_chunks/address-autocomplete-BEX9PXty.js +496 -0
  3. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  4. package/dist/_chunks/{agenda-card.agent-B_R47-c9.js → agenda-card.agent-mTCrkKSZ.js} +6 -1
  5. package/dist/_chunks/{agenda-tray-T-BumlGZ.js → agenda-tray-CGXRk58j.js} +37 -25
  6. package/dist/_chunks/{ai-consent-banner-Dxtx_WAh.js → ai-consent-banner-Be-h9mRI.js} +5 -5
  7. package/dist/_chunks/{ai-prompt-input-BwEACCPm.js → ai-prompt-input-CuhTo9mh.js} +80 -61
  8. package/dist/_chunks/ai-tools-rail-B5NEghsp.js +511 -0
  9. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  10. package/dist/_chunks/{alia-sidebar-Ckv0yCKi.js → alia-sidebar-B47qRQb5.js} +5 -5
  11. package/dist/_chunks/{anamnesis-card-N8pIKWuS.js → anamnesis-card-DvYCa16e.js} +3 -3
  12. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
  13. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  14. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  15. package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
  16. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
  17. package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
  18. package/dist/_chunks/{audio-recorder-DjXLP4aF.js → audio-recorder-Cpdk5qpQ.js} +60 -57
  19. package/dist/_chunks/{autocomplete-CcCFlVf-.js → autocomplete-DOeGouCL.js} +157 -132
  20. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  21. package/dist/_chunks/bishop-score-DnYWtZa_.js +304 -0
  22. package/dist/_chunks/bmi-calculator-zjeY4E7J.js +434 -0
  23. package/dist/_chunks/{booking-L8-YP8BJ.js → booking-DUBI0oqt.js} +422 -399
  24. package/dist/_chunks/{breadcrumb-OTbaY70e.js → breadcrumb-CchdeG7d.js} +42 -28
  25. package/dist/_chunks/{calculator-dialog-CFk4I91b.js → calculator-dialog-BR5iU0kf.js} +2 -2
  26. package/dist/_chunks/{calendar-oYWOCrnf.js → calendar-CZUjL8SZ.js} +258 -201
  27. package/dist/_chunks/{care-plan-card-BwVUyUBb.js → care-plan-card-C5sTfY9G.js} +13 -9
  28. package/dist/_chunks/{care-plan-entry-card-VzdQHcOL.js → care-plan-entry-card-CXnxGCWA.js} +20 -16
  29. package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
  30. package/dist/_chunks/{carousel.agent-vt21A_el.js → carousel.agent-4v8Emr9E.js} +219 -198
  31. package/dist/_chunks/{chart-Cg3e9EH9.js → chart-CMr3eW62.js} +150 -109
  32. package/dist/_chunks/{chat-container-ogB4OskO.js → chat-container-DWho5hPR.js} +47 -34
  33. package/dist/_chunks/{chat-input-B5zjNEUN.js → chat-input-BcXTetgM.js} +57 -41
  34. package/dist/_chunks/{checkbox-DRcOdmXv.js → checkbox-BuZ1u__2.js} +41 -27
  35. package/dist/_chunks/{checkbox-group-CpUwlHug.js → checkbox-group-PqNmQ-cE.js} +3 -3
  36. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  37. package/dist/_chunks/{collapsible-X3oaLPU3.js → collapsible-BrnRiCC6.js} +26 -23
  38. package/dist/_chunks/{color-picker-FXpItIaF.js → color-picker-C_fZl6sA.js} +124 -112
  39. package/dist/_chunks/{combobox-BC-DFx8G.js → combobox-Clum7gJ1.js} +165 -128
  40. package/dist/_chunks/{command-palette-BiPAAno-.js → command-palette-CJzmc5pC.js} +87 -64
  41. package/dist/_chunks/{contact-profile-card-7BMB85T6.js → contact-profile-card-DDPwRFiP.js} +13 -11
  42. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
  43. package/dist/_chunks/{copy-field-CCq7j6Zc.js → copy-field-Bjw9u2cV.js} +42 -35
  44. package/dist/_chunks/counter-dRlTNC_y.js +55 -0
  45. package/dist/_chunks/{cycle-calculator-BF0ointe.js → cycle-calculator-CCmPwcBl.js} +4 -4
  46. package/dist/_chunks/{date-picker-oGg5BnXL.js → date-picker-Dl9RKxaV.js} +76 -57
  47. package/dist/_chunks/{date-range-picker-C5BWfH_T.js → date-range-picker-CTUeR6Bj.js} +73 -46
  48. package/dist/_chunks/{date-time-picker-Ze1My59T.js → date-time-picker-BhoogS5Q.js} +64 -40
  49. package/dist/_chunks/{dependent-selector-DpzGtr_J.js → dependent-selector-DUV4thxX.js} +45 -31
  50. package/dist/_chunks/{dialog-DMGnSelc.js → dialog-ZNuboNmy.js} +35 -28
  51. package/dist/_chunks/{document-scanner-D2qehl3-.js → document-scanner-C_AxLooF.js} +13 -5
  52. package/dist/_chunks/{dropdown-menu-DwwPovMZ.js → dropdown-menu-qrxjymfw.js} +94 -93
  53. package/dist/_chunks/{due-date-calculator-DU9AEWNy.js → due-date-calculator-Brdj-euS.js} +6 -6
  54. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
  55. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  56. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
  57. package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
  58. package/dist/_chunks/{fetal-weight-BVSzOhuR.js → fetal-weight-DNCkyeVo.js} +3 -3
  59. package/dist/_chunks/field-value-NXYczdpO.js +415 -0
  60. package/dist/_chunks/{file-upload-BosbPDb1.js → file-upload-DwZcAK8D.js} +119 -100
  61. package/dist/_chunks/{fiscal-code-input-DPtqluVb.js → fiscal-code-input-Cf-8O4Fj.js} +76 -63
  62. package/dist/_chunks/{freemium-paywall-CkWjv3o6.js → freemium-paywall-WYlNO7yT.js} +78 -71
  63. package/dist/_chunks/{gestational-age-calculator-DBlFdoiP.js → gestational-age-calculator-CF2ISaYQ.js} +7 -7
  64. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  65. package/dist/_chunks/{hcg-doubling-if4Q8aSX.js → hcg-doubling-C7bmuaU3.js} +4 -4
  66. package/dist/_chunks/{header-settings-CNOqIhoW.js → header-settings-DJqoAl5m.js} +86 -46
  67. package/dist/_chunks/{index.modern-D2LGACWg.js → index.modern-Zta-A4Jm.js} +3 -3
  68. package/dist/_chunks/link-cell-renderer-CTXqtXV-.js +2184 -0
  69. package/dist/_chunks/{list-BOwqwy03.js → list-DgE1xWBM.js} +99 -84
  70. package/dist/_chunks/{locale-picker-C9JmBht3.js → locale-picker-ChYYSX2N.js} +47 -35
  71. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  72. package/dist/_chunks/{map-view-Tb5VfK9Y.js → map-view-BkOoGoX2.js} +160 -115
  73. package/dist/_chunks/{marketplace-app-shell-D4-T9Qzz.js → marketplace-app-shell-Skhfp6vK.js} +6 -6
  74. package/dist/_chunks/{message-card.agent-4IeIgrnJ.js → message-card.agent-ZLhx3Bs5.js} +6 -1
  75. package/dist/_chunks/{message-tray-CVyJajVJ.js → message-tray-DwrBLJlf.js} +90 -48
  76. package/dist/_chunks/{multi-select-BcPylvHR.js → multi-select-BdHHDrRN.js} +196 -153
  77. package/dist/_chunks/{navigation-menu-C6lBYVv9.js → navigation-menu-DRUi6sSj.js} +75 -42
  78. package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
  79. package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
  80. package/dist/_chunks/{notification-card.agent-Rqt3ofk9.js → notification-card.agent-DxGBZb8T.js} +5 -1
  81. package/dist/_chunks/{notification-tray-DlgenTEe.js → notification-tray-AEun6DN2.js} +112 -97
  82. package/dist/_chunks/{number-input-Dj5L3pXK.js → number-input-DxphVG_A.js} +36 -27
  83. package/dist/_chunks/{operator-hero-f_KaRhw5.js → operator-hero-CR0Rqh4-.js} +14 -10
  84. package/dist/_chunks/{otp-input-xQ4Ps5VY.js → otp-input-DzBQ-CpE.js} +52 -33
  85. package/dist/_chunks/{pagination-DQOgnxxw.js → pagination-D58kglCr.js} +181 -162
  86. package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
  87. package/dist/_chunks/{patient-search-DR9XUYRQ.js → patient-search-Be6cLrHR.js} +70 -61
  88. package/dist/_chunks/{patient-shell-BfgufL_q.js → patient-shell-DV3XEtIB.js} +3 -3
  89. package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
  90. package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
  91. package/dist/_chunks/{payment-form-nXocS_MX.js → payment-form-CxqIXqw7.js} +57 -45
  92. package/dist/_chunks/{payment-request-card-CYE5vhZ0.js → payment-request-card-BcZJwu9z.js} +125 -136
  93. package/dist/_chunks/{pdf-viewer-GsfNqeeT.js → pdf-viewer-QfebdLOd.js} +317 -291
  94. package/dist/_chunks/{periodontal-chart-card-Dh3KgvYG.js → periodontal-chart-card-hRRJY1NN.js} +3 -3
  95. package/dist/_chunks/{phone-input-DVXhNlIl.js → phone-input-DjU-XmO_.js} +64 -47
  96. package/dist/_chunks/{popover-DTbfAuR0.js → popover-B2qCDhJC.js} +37 -32
  97. package/dist/_chunks/{practice-results-DND2SAt7.js → practice-results-C6qDfxos.js} +280 -244
  98. package/dist/_chunks/{pregnancy-dating-QY-sqpvj.js → pregnancy-dating-CRVWswD-.js} +8 -8
  99. package/dist/_chunks/{pregnancy-weight-gain-DOJXXNYP.js → pregnancy-weight-gain-BUNpTsH-.js} +4 -4
  100. package/dist/_chunks/{privacy-lock-C7JyMf0y.js → privacy-lock-BzMLQu-j.js} +32 -28
  101. package/dist/_chunks/{product-hub-panel-CAXDFeGP.js → product-hub-panel-e6pW220e.js} +45 -27
  102. package/dist/_chunks/{progress-kzIRcdaq.js → progress-DA413-zn.js} +2 -2
  103. package/dist/_chunks/{public-footer.agent-CfXuW1x6.js → public-footer.agent-D0cFbjWl.js} +151 -146
  104. package/dist/_chunks/{public-header.agent-BOhJgZEU.js → public-header.agent-DqkqA-ca.js} +107 -102
  105. package/dist/_chunks/{qr-code-DNXhi6se.js → qr-code-CPkEs5mG.js} +52 -46
  106. package/dist/_chunks/{radio-group-CLjK-SlK.js → radio-group-BPt7pKZW.js} +5 -5
  107. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
  108. package/dist/_chunks/{recaptcha-widget-BCNHsgqt.js → recaptcha-widget-BC-4To9b.js} +9 -2
  109. package/dist/_chunks/registry-DvAUVLHh.js +51 -0
  110. package/dist/_chunks/{resizable-3vzqDlg6.js → resizable-DVGcfOrk.js} +193 -173
  111. package/dist/_chunks/{reviews-panel-DBktKm7i.js → reviews-panel-Dq7LMDcH.js} +87 -68
  112. package/dist/_chunks/{rich-text-editor-VawKN1FI.js → rich-text-editor-DlCqPixb.js} +833 -728
  113. package/dist/_chunks/{search-bar-SY2BcV2N.js → search-bar-C_T3pBJn.js} +105 -78
  114. package/dist/_chunks/{search-input-DbxrnHkW.js → search-input-DQvGxR74.js} +2 -2
  115. package/dist/_chunks/{search-input.agent-CfZvViOd.js → search-input.agent-DRH54coT.js} +19 -4
  116. package/dist/_chunks/{select-CEtRcon5.js → select-DMLG44F5.js} +72 -56
  117. package/dist/_chunks/{session-countdown-LPnhTHjn.js → session-countdown-X1Ki6i0M.js} +3 -3
  118. package/dist/_chunks/{sheet-taJer-Ha.js → sheet-BxsE7eQm.js} +59 -45
  119. package/dist/_chunks/{sidebar-DaB4ulxH.js → sidebar-DY9jGjgt.js} +254 -248
  120. package/dist/_chunks/{sign-document-CdAiHiCh.js → sign-document-By6hMOra.js} +75 -49
  121. package/dist/_chunks/{signature-capture-COi0Uiqu.js → signature-capture-Ct_4Md4e.js} +138 -104
  122. package/dist/_chunks/{slider-BHWzXdjt.js → slider-DN1CWkKB.js} +85 -65
  123. package/dist/_chunks/{sparkline-DGhCSw8M.js → sparkline-iOXYgvJe.js} +75 -53
  124. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  125. package/dist/_chunks/{stepper-accordion.agent-C4quJ-MD.js → stepper-accordion.agent-cmEguIdx.js} +7 -1
  126. package/dist/_chunks/{stepper-progress-DDjq5nei.js → stepper-progress-Bv0njx4g.js} +30 -24
  127. package/dist/_chunks/{suggestion-chip.agent-6sNWFj7m.js → suggestion-chip.agent-Brn3CiFE.js} +9 -8
  128. package/dist/_chunks/{switch-BJ6HD3Mn.js → switch-OILsBLWo.js} +25 -19
  129. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  130. package/dist/_chunks/{tabs-BIQ0ew1T.js → tabs-BxcOziCo.js} +67 -58
  131. package/dist/_chunks/{task-card.agent-CUPKYd7w.js → task-card.agent-Bt14CzUd.js} +4 -1
  132. package/dist/_chunks/{task-tray-CAncV-QQ.js → task-tray-qOEQflu4.js} +74 -57
  133. package/dist/_chunks/{text-area-BIx0tZ05.js → text-area-Bt3p7Pt0.js} +41 -34
  134. package/dist/_chunks/{text-input-BaClJL8Y.js → text-input-B-OWQ1Je.js} +15 -8
  135. package/dist/_chunks/{theme-toggle-DETmSu_h.js → theme-toggle-XB6o_lgs.js} +38 -26
  136. package/dist/_chunks/{time-picker-B5umYwfv.js → time-picker-BPlJWm8w.js} +41 -31
  137. package/dist/_chunks/{timeline-DQa5Tyz4.js → timeline-CqA4nKTI.js} +33 -25
  138. package/dist/_chunks/{toast.agent-vuLRRn2a.js → toast.agent-57UzyR9U.js} +62 -45
  139. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
  140. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  141. package/dist/_chunks/{transcript-panel-CLHmv83g.js → transcript-panel-3THQX6nJ.js} +47 -33
  142. package/dist/_chunks/unit-converter-YEpD9evj.js +337 -0
  143. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  144. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  145. package/dist/_chunks/{use-password-requirements-DsgduV1x.js → use-password-requirements-BXvS2MBS.js} +131 -117
  146. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  147. package/dist/_chunks/users-MBVtUzwd.js +17 -0
  148. package/dist/_chunks/warning-stack--sTrrBDA.js +268 -0
  149. package/dist/_chunks/{whatsapp-button-DUjlWGKf.js → whatsapp-button-BIy6NaJK.js} +6 -3
  150. package/dist/_chunks/{workflow-map-JAZryZJr.js → workflow-map-Dy8mLCqF.js} +101 -90
  151. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  152. package/dist/agent/index.d.ts +4 -4
  153. package/dist/agent/index.js +37 -0
  154. package/dist/agent/registry.d.ts +33 -0
  155. package/dist/agent/types.d.ts +97 -4
  156. package/dist/agent-catalog.json +8081 -518
  157. package/dist/agent-i18n/en.json +1277 -0
  158. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  159. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  160. package/dist/components/_shared/field-value.d.ts +21 -0
  161. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  162. package/dist/components/_shared/field-visibility.d.ts +36 -0
  163. package/dist/components/_shared/patient-fields.d.ts +119 -0
  164. package/dist/components/accordion/index.js +1 -1
  165. package/dist/components/address-autocomplete/address-autocomplete.agent.d.ts +4 -0
  166. package/dist/components/address-autocomplete/address-autocomplete.d.ts +18 -0
  167. package/dist/components/address-autocomplete/index.d.ts +2 -1
  168. package/dist/components/address-autocomplete/index.js +3 -2
  169. package/dist/components/agenda-card/index.js +2 -2
  170. package/dist/components/agenda-tray/index.js +1 -1
  171. package/dist/components/ai-consent-banner/index.js +1 -1
  172. package/dist/components/ai-prompt-input/index.js +1 -1
  173. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
  174. package/dist/components/ai-tools-rail/index.js +1 -1
  175. package/dist/components/alert/alert.d.ts +5 -0
  176. package/dist/components/alert/index.js +1 -1
  177. package/dist/components/anamnesis-card/index.js +1 -1
  178. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  179. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  180. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  181. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  182. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  183. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  184. package/dist/components/anatomy-scheme/index.js +17 -0
  185. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  186. package/dist/components/annotation-marker/index.d.ts +3 -0
  187. package/dist/components/annotation-marker/index.js +7 -0
  188. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  189. package/dist/components/appointment-card/index.js +6 -5
  190. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  191. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  192. package/dist/components/appointment-timeline/index.d.ts +4 -0
  193. package/dist/components/appointment-timeline/index.js +6 -0
  194. package/dist/components/audio-recorder/index.js +1 -1
  195. package/dist/components/autocomplete/index.js +1 -1
  196. package/dist/components/badge/badge.d.ts +6 -2
  197. package/dist/components/badge/index.js +1 -1
  198. package/dist/components/bishop-score/bishop-score.agent.d.ts +4 -0
  199. package/dist/components/bishop-score/bishop-score.d.ts +17 -1
  200. package/dist/components/bishop-score/index.js +1 -1
  201. package/dist/components/bmi-calculator/bmi-calculator.agent.d.ts +4 -0
  202. package/dist/components/bmi-calculator/bmi-calculator.d.ts +26 -0
  203. package/dist/components/bmi-calculator/index.js +1 -1
  204. package/dist/components/booking/index.js +1 -1
  205. package/dist/components/breadcrumb/index.js +1 -1
  206. package/dist/components/calculator-dialog/index.js +1 -1
  207. package/dist/components/calendar/index.js +1 -1
  208. package/dist/components/care-plan-card/index.js +1 -1
  209. package/dist/components/care-plan-entry-card/index.js +1 -1
  210. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  211. package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
  212. package/dist/components/care-plan-header/index.d.ts +4 -0
  213. package/dist/components/care-plan-header/index.js +6 -0
  214. package/dist/components/carousel/index.js +1 -1
  215. package/dist/components/chart/index.js +1 -1
  216. package/dist/components/chat-container/index.js +1 -1
  217. package/dist/components/chat-input/index.js +1 -1
  218. package/dist/components/checkbox/index.js +1 -1
  219. package/dist/components/checkbox-group/index.js +1 -1
  220. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  221. package/dist/components/clinical-note-card/index.js +1 -1
  222. package/dist/components/collapsible/index.js +1 -1
  223. package/dist/components/color-picker/index.js +1 -1
  224. package/dist/components/combobox/index.js +1 -1
  225. package/dist/components/command-palette/index.js +1 -1
  226. package/dist/components/contact-profile-card/index.js +1 -1
  227. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  228. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  229. package/dist/components/control-room-rail/index.d.ts +5 -0
  230. package/dist/components/control-room-rail/index.js +9 -0
  231. package/dist/components/copy-field/index.js +1 -1
  232. package/dist/components/counter/counter.d.ts +22 -0
  233. package/dist/components/counter/index.d.ts +3 -0
  234. package/dist/components/counter/index.js +5 -0
  235. package/dist/components/cycle-calculator/index.js +1 -1
  236. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  237. package/dist/components/data-table/index.d.ts +1 -1
  238. package/dist/components/data-table/index.js +32 -30
  239. package/dist/components/date-picker/index.js +1 -1
  240. package/dist/components/date-range-picker/index.js +1 -1
  241. package/dist/components/date-time-picker/index.js +1 -1
  242. package/dist/components/dependent-selector/index.js +1 -1
  243. package/dist/components/dialog/index.js +1 -1
  244. package/dist/components/document-scanner/index.js +1 -1
  245. package/dist/components/dropdown-menu/index.js +1 -1
  246. package/dist/components/due-date-calculator/index.js +2 -2
  247. package/dist/components/email-input/index.js +1 -1
  248. package/dist/components/entity-summary/entity-summary.d.ts +43 -0
  249. package/dist/components/entity-summary/index.d.ts +3 -0
  250. package/dist/components/entity-summary/index.js +5 -0
  251. package/dist/components/fetal-weight/index.js +1 -1
  252. package/dist/components/file-upload/index.js +1 -1
  253. package/dist/components/fiscal-code-input/index.js +1 -1
  254. package/dist/components/freemium-paywall/freemium-paywall.d.ts +6 -0
  255. package/dist/components/freemium-paywall/index.js +1 -1
  256. package/dist/components/gestational-age-calculator/index.js +1 -1
  257. package/dist/components/hcg-doubling/index.js +1 -1
  258. package/dist/components/header-settings/index.js +1 -1
  259. package/dist/components/index.d.ts +11 -0
  260. package/dist/components/list/index.js +1 -1
  261. package/dist/components/locale-picker/index.js +1 -1
  262. package/dist/components/map-view/index.js +1 -1
  263. package/dist/components/message-card/index.js +1 -1
  264. package/dist/components/message-tray/index.js +1 -1
  265. package/dist/components/multi-select/index.js +1 -1
  266. package/dist/components/navigation-menu/index.js +1 -1
  267. package/dist/components/notes-panel/index.d.ts +3 -0
  268. package/dist/components/notes-panel/index.js +5 -0
  269. package/dist/components/notes-panel/notes-panel.d.ts +64 -0
  270. package/dist/components/notification-card/index.js +2 -2
  271. package/dist/components/notification-tray/index.js +1 -1
  272. package/dist/components/number-input/index.js +1 -1
  273. package/dist/components/operator-hero/index.js +1 -1
  274. package/dist/components/otp-input/index.js +1 -1
  275. package/dist/components/pagination/index.js +1 -1
  276. package/dist/components/password-input/index.js +1 -1
  277. package/dist/components/patient-details/index.d.ts +5 -0
  278. package/dist/components/patient-details/index.js +6 -0
  279. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  280. package/dist/components/patient-details/patient-details.d.ts +96 -0
  281. package/dist/components/patient-search/index.js +1 -1
  282. package/dist/components/patient-summary-card/index.js +1 -1
  283. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  284. package/dist/components/patient-table/cell-renderers/balance-badge-cell.d.ts +13 -0
  285. package/dist/components/patient-table/cell-renderers/care-plan-status-cell.d.ts +43 -0
  286. package/dist/components/patient-table/cell-renderers/next-appointment-cell.d.ts +24 -0
  287. package/dist/components/patient-table/columns.d.ts +131 -0
  288. package/dist/components/patient-table/index.d.ts +20 -0
  289. package/dist/components/patient-table/index.js +12 -0
  290. package/dist/components/patient-table/patient-table.d.ts +172 -0
  291. package/dist/components/patient-table/types.d.ts +222 -0
  292. package/dist/components/patient-table/use-responsive-columns.d.ts +111 -0
  293. package/dist/components/payment-card/index.js +1 -1
  294. package/dist/components/payment-form/index.js +1 -1
  295. package/dist/components/pdf-viewer/index.js +1 -1
  296. package/dist/components/periodontal-chart-card/index.js +1 -1
  297. package/dist/components/phone-input/index.js +1 -1
  298. package/dist/components/popover/index.js +1 -1
  299. package/dist/components/practice-results/index.js +1 -1
  300. package/dist/components/pregnancy-dating/index.js +1 -1
  301. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  302. package/dist/components/privacy-lock/index.js +1 -1
  303. package/dist/components/product-hub-tray/index.js +1 -1
  304. package/dist/components/progress/index.js +1 -1
  305. package/dist/components/public-footer/index.js +1 -1
  306. package/dist/components/public-header/index.js +1 -1
  307. package/dist/components/qr-code/index.js +1 -1
  308. package/dist/components/radio-group/index.js +1 -1
  309. package/dist/components/radiograph-panel/index.d.ts +4 -0
  310. package/dist/components/radiograph-panel/index.js +7 -0
  311. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  312. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  313. package/dist/components/recaptcha-widget/index.js +1 -1
  314. package/dist/components/resizable/index.js +1 -1
  315. package/dist/components/reviews-panel/index.js +1 -1
  316. package/dist/components/rich-text-editor/index.js +1 -1
  317. package/dist/components/search-bar/index.js +1 -1
  318. package/dist/components/search-input/index.js +2 -2
  319. package/dist/components/select/index.js +1 -1
  320. package/dist/components/session-countdown/index.js +1 -1
  321. package/dist/components/sheet/index.js +1 -1
  322. package/dist/components/sidebar/index.js +2 -2
  323. package/dist/components/sidebar/sidebar.d.ts +7 -0
  324. package/dist/components/sign-document/index.js +1 -1
  325. package/dist/components/signature-capture/index.js +1 -1
  326. package/dist/components/slider/index.js +1 -1
  327. package/dist/components/sparkline/index.js +1 -1
  328. package/dist/components/stepper-accordion/index.js +2 -2
  329. package/dist/components/stepper-progress/index.js +1 -1
  330. package/dist/components/suggestion-chip/index.js +1 -1
  331. package/dist/components/switch/index.js +1 -1
  332. package/dist/components/tab-bar/index.js +1 -1
  333. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  334. package/dist/components/tabs/index.js +1 -1
  335. package/dist/components/task-card/index.js +1 -1
  336. package/dist/components/task-tray/index.js +1 -1
  337. package/dist/components/text-area/index.js +1 -1
  338. package/dist/components/text-input/index.js +1 -1
  339. package/dist/components/theme-toggle/index.js +1 -1
  340. package/dist/components/time-picker/index.js +1 -1
  341. package/dist/components/timeline/index.js +1 -1
  342. package/dist/components/toast/index.js +1 -1
  343. package/dist/components/tooth-scheme/index.d.ts +2 -2
  344. package/dist/components/tooth-scheme/index.js +30 -23
  345. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  346. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  347. package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
  348. package/dist/components/transaction-chip/index.js +1 -1
  349. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  350. package/dist/components/transcript-panel/index.js +1 -1
  351. package/dist/components/unit-converter/index.js +1 -1
  352. package/dist/components/unit-converter/unit-converter.agent.d.ts +4 -0
  353. package/dist/components/unit-converter/unit-converter.d.ts +27 -0
  354. package/dist/components/warning-stack/index.js +1 -1
  355. package/dist/components/warning-stack/warning-stack.d.ts +14 -2
  356. package/dist/components/whatsapp-button/index.d.ts +1 -1
  357. package/dist/components/whatsapp-button/index.js +3 -2
  358. package/dist/components/whatsapp-button/whatsapp-button.d.ts +3 -0
  359. package/dist/components/workflow/index.js +1 -1
  360. package/dist/hooks/index.d.ts +1 -0
  361. package/dist/hooks/index.js +24 -22
  362. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  363. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  364. package/dist/hooks/use-persistent-state.d.ts +7 -1
  365. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  366. package/dist/i18n/locales/ar.d.ts +356 -0
  367. package/dist/i18n/locales/ar.js +370 -3
  368. package/dist/i18n/locales/de.d.ts +356 -0
  369. package/dist/i18n/locales/de.js +370 -3
  370. package/dist/i18n/locales/el.d.ts +356 -0
  371. package/dist/i18n/locales/el.js +370 -3
  372. package/dist/i18n/locales/en.d.ts +367 -0
  373. package/dist/i18n/locales/en.js +381 -3
  374. package/dist/i18n/locales/es.d.ts +356 -0
  375. package/dist/i18n/locales/es.js +370 -3
  376. package/dist/i18n/locales/fr.d.ts +356 -0
  377. package/dist/i18n/locales/fr.js +370 -3
  378. package/dist/i18n/locales/hi.d.ts +356 -0
  379. package/dist/i18n/locales/hi.js +370 -3
  380. package/dist/i18n/locales/it.d.ts +356 -0
  381. package/dist/i18n/locales/it.js +370 -3
  382. package/dist/i18n/locales/ja.d.ts +356 -0
  383. package/dist/i18n/locales/ja.js +370 -3
  384. package/dist/i18n/locales/nl.d.ts +356 -0
  385. package/dist/i18n/locales/nl.js +370 -3
  386. package/dist/i18n/locales/pl.d.ts +356 -0
  387. package/dist/i18n/locales/pl.js +370 -3
  388. package/dist/i18n/locales/pt.d.ts +356 -0
  389. package/dist/i18n/locales/pt.js +370 -3
  390. package/dist/i18n/locales/ro.d.ts +356 -0
  391. package/dist/i18n/locales/ro.js +370 -3
  392. package/dist/i18n/locales/ru.d.ts +356 -0
  393. package/dist/i18n/locales/ru.js +370 -3
  394. package/dist/i18n/locales/sq.d.ts +356 -0
  395. package/dist/i18n/locales/sq.js +370 -3
  396. package/dist/i18n/locales/sv.d.ts +356 -0
  397. package/dist/i18n/locales/sv.js +370 -3
  398. package/dist/i18n/locales/tr.d.ts +356 -0
  399. package/dist/i18n/locales/tr.js +370 -3
  400. package/dist/i18n/locales/zh.d.ts +356 -0
  401. package/dist/i18n/locales/zh.js +370 -3
  402. package/dist/index.js +740 -676
  403. package/dist/locales/ar.json +359 -3
  404. package/dist/locales/de.json +359 -3
  405. package/dist/locales/el.json +359 -3
  406. package/dist/locales/en.json +359 -3
  407. package/dist/locales/es.json +359 -3
  408. package/dist/locales/fr.json +359 -3
  409. package/dist/locales/hi.json +359 -3
  410. package/dist/locales/it.json +359 -3
  411. package/dist/locales/ja.json +359 -3
  412. package/dist/locales/nl.json +359 -3
  413. package/dist/locales/pl.json +359 -3
  414. package/dist/locales/pt.json +359 -3
  415. package/dist/locales/ro.json +359 -3
  416. package/dist/locales/ru.json +359 -3
  417. package/dist/locales/sq.json +359 -3
  418. package/dist/locales/sv.json +359 -3
  419. package/dist/locales/tr.json +359 -3
  420. package/dist/locales/zh.json +359 -3
  421. package/dist/patterns/alia-assistant/index.js +1 -1
  422. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  423. package/dist/patterns/patient-shell/index.js +1 -1
  424. package/dist/tokens.css +3 -2
  425. package/package.json +50 -1
  426. package/dist/_chunks/address-autocomplete-CT-9AOli.js +0 -358
  427. package/dist/_chunks/ai-tools-rail-CInA_1-E.js +0 -356
  428. package/dist/_chunks/appointment-tray-BMl89NPW.js +0 -419
  429. package/dist/_chunks/bishop-score-CjsB9bM-.js +0 -185
  430. package/dist/_chunks/bmi-calculator-n-823_1V.js +0 -258
  431. package/dist/_chunks/clinical-note-card-gtrxv6zn.js +0 -333
  432. package/dist/_chunks/editable-currency-cell-renderer-DHOspPee.js +0 -2409
  433. package/dist/_chunks/email-input-lQivsFrw.js +0 -396
  434. package/dist/_chunks/patient-summary-card-hEmr4eTW.js +0 -443
  435. package/dist/_chunks/registry-nPAVE19X.js +0 -21
  436. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  437. package/dist/_chunks/tooth-scheme-BIx1O2aJ.js +0 -1257
  438. package/dist/_chunks/unit-converter-C1V3ACM9.js +0 -196
  439. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  440. package/dist/_chunks/warning-stack-Cv4fr5zo.js +0 -220
@@ -0,0 +1,172 @@
1
+ /**
2
+ * patient-table — Domain-Specific component
3
+ * ----------------------------------------------------------------------------
4
+ * `PatientTable` is a thin composition over the kit's `data-table` engine
5
+ * (AG Grid Community) specialised for the AlfaDocs patient list. It bakes in:
6
+ *
7
+ * • `buildPatientColumns(t, …)` (one field per column — split identity,
8
+ * grouped hidden columns, dynamic custom fields) merged with a
9
+ * consumer-supplied `columns` override.
10
+ * • the kit data-table built-in renderers (Image / Link / Date / Currency /
11
+ * Status / TagList / User) plus the three patient renderers kept for the
12
+ * domain columns (NextAppointment / BalanceBadge / CarePlanStatus).
13
+ * • a default toolbar — `QuickSearch` + `FilterChips` + `ColumnToggle` +
14
+ * `ExportMenu` + a `BulkAction` per `props.bulkActions` — overridable
15
+ * wholesale via `props.toolbar`.
16
+ * • `useResponsiveColumns` (container-width column-priority tiers) when
17
+ * `props.responsive` (default `true`).
18
+ * • multiple row selection, pagination, archived-row tint, loading / empty
19
+ * overlays.
20
+ * • `useAgentRegistration(dataTableAgent, handle, gridId)` — the SAME agent
21
+ * adapter `data-table` registers, keyed by `gridId`.
22
+ *
23
+ * The `forwardRef` exposes the inner `DataTableHandle<PatientRow>` so consumers
24
+ * (e.g. the `patients` pattern's WarningStack "View" actions) can drive the
25
+ * grid imperatively — `setFilter`, `setSort`, `getSelection`, etc.
26
+ *
27
+ * CONSTRAINTS (CI-blocking — src/docs/23-constraints.mdx, 26-agent-readiness.mdx):
28
+ * • No hardcoded colour / spacing / radius / shadow / font — token-bound `ds:`
29
+ * utilities only. Row tint goes through the token-bound
30
+ * `data-table-row-archived` class on the AG Grid theme bridge, never an
31
+ * inline `cellStyle`.
32
+ * • CSS logical properties only (`ms/me/ps/pe`, `text-start/text-end`).
33
+ * • All user-visible strings via `useTranslation('ui')` → `ui.patientTable.*`.
34
+ * • TypeScript strict — no `any`. `forwardRef` exposes the curated handle.
35
+ * • PHI rule (PRS 26 §6): only `row.id` reaches DOM `data-*`. This component
36
+ * writes no PHI attribute; AG Grid surfaces ids via its native `row-id`.
37
+ */
38
+ import { type ReactNode } from 'react';
39
+ import { type BuildPatientColumnsOptions } from './columns';
40
+ import type { PatientBulkAction, PatientColumnDef, PatientCustomFieldDef, PatientRow, PatientRowAction, PatientTableHandle, PatientView } from './types';
41
+ export interface PatientTableProps {
42
+ /**
43
+ * Row data. `undefined` ⇒ the grid renders its loading overlay (the
44
+ * data-table contract: `rowData === undefined` is the loading sentinel). Pass
45
+ * `[]` for an explicit empty state.
46
+ */
47
+ rowData?: PatientRow[];
48
+ /**
49
+ * Override / extend the baked patient columns. When provided, these column
50
+ * definitions REPLACE the kit defaults entirely (the consumer is expected to
51
+ * compose `buildPatientColumns(t, …)` — re-exported from the barrel — with
52
+ * their own additions). When omitted, the kit's `buildPatientColumns` output
53
+ * is used.
54
+ */
55
+ columns?: PatientColumnDef[];
56
+ /**
57
+ * REQUIRED. Persistence key (column state → `localStorage`) AND the agent
58
+ * instance address (`data-component-id`). Two tables on one page need
59
+ * distinct `gridId`s.
60
+ */
61
+ gridId: string;
62
+ /** Row-height preset. Defaults to the engine default (`'default'`). */
63
+ density?: 'compact' | 'default' | 'expanded';
64
+ /**
65
+ * Collapse the per-row actions column into a single "…" overflow trigger
66
+ * independently of row `density`. When `true` the actions cells render the
67
+ * collapsed menu and the column shrinks to its 88px compact footprint; when
68
+ * `false` they render the inline button group at the full expanded width.
69
+ * When `undefined` (the default) compactness FOLLOWS `density` — `compact`
70
+ * density collapses the actions, every other density keeps them inline — so
71
+ * existing consumers are unaffected. Flipping this at runtime re-reads the
72
+ * actions cells via a stable ref-backed getter (no `columnDefs` rebuild, so
73
+ * column state is preserved) and resizes the actions column to match.
74
+ */
75
+ actionsCompact?: boolean;
76
+ /**
77
+ * Grid height — forwarded to the underlying `DataTable.heightClass` (a Tailwind
78
+ * height class). Pass `"ds:h-full"` to fill a sized parent, or an explicit
79
+ * value like `"ds:h-[75vh]"`. Omit to use the engine default (`ds:h-[500px]`).
80
+ */
81
+ heightClass?: string;
82
+ /**
83
+ * Enable container-width column-priority responsiveness (lower-priority
84
+ * columns hide as the grid narrows). Default `true`. Set `false` to leave
85
+ * column visibility entirely to persistence / `ColumnToggle`.
86
+ */
87
+ responsive?: boolean;
88
+ /**
89
+ * Saved column/filter/sort presets. When non-empty AND no custom `toolbar`
90
+ * is supplied, the default toolbar renders a `Select`-based view switcher in
91
+ * the FilterBar; choosing a view applies its column visibility (via the
92
+ * responsive-hook lock so the choice is honoured like a manual ColumnToggle),
93
+ * `filterModel` (`setFilter`) and `sortModel` (`setSort`). Omitted entirely
94
+ * when empty / undefined or when `toolbar` is supplied (a custom toolbar owns
95
+ * its own view UI).
96
+ */
97
+ views?: PatientView[];
98
+ /**
99
+ * Invoked when a per-row action button is activated, with the resolved action
100
+ * descriptor and the patient row. Only `row.id` ever leaves this boundary into
101
+ * persistence / agent surfaces — never PHI.
102
+ */
103
+ onRowAction?: (action: PatientRowAction, patient: PatientRow) => void;
104
+ /**
105
+ * Toolbar bulk actions (operate on the current selection). Each renders a
106
+ * `DataTable.Toolbar.BulkAction` that surfaces only while rows are selected;
107
+ * its `onSelect` receives the selected row ids (never PHI).
108
+ */
109
+ bulkActions?: PatientBulkAction[];
110
+ /**
111
+ * Force the loading overlay independently of `rowData`. When `true` the grid
112
+ * shows the loading skeleton even if `rowData` is an array (e.g. a background
113
+ * refresh). `rowData === undefined` also triggers loading.
114
+ */
115
+ loading?: boolean;
116
+ /**
117
+ * Replace the default toolbar wholesale. Pass a `<DataTable.Toolbar>…</…>`
118
+ * tree (it has access to the same toolbar context). When omitted the default
119
+ * QuickSearch + FilterChips + ColumnToggle + ExportMenu + BulkActions toolbar
120
+ * is rendered.
121
+ */
122
+ toolbar?: ReactNode;
123
+ /**
124
+ * Omit the `QuickSearch` field from the DEFAULT toolbar. The rest of the
125
+ * default toolbar (view switcher when `views` is supplied, FilterChips,
126
+ * ColumnToggle, ExportMenu, BulkActions) is unaffected. Ignored when a custom
127
+ * `toolbar` is supplied (that toolbar owns its own composition). Default
128
+ * `false` (search shown). Use for surfaces that provide their own search
129
+ * affordance elsewhere on the page.
130
+ */
131
+ hideQuickSearch?: boolean;
132
+ /**
133
+ * Enable the grid's client-side pagination. When `false`, every row loads into
134
+ * a single virtualised, scrollable view and filter / sort act over the WHOLE
135
+ * set (no pager) — the right model for a "load and filter all" list. Default
136
+ * `true`.
137
+ */
138
+ pagination?: boolean;
139
+ /**
140
+ * Page-size dropdown options shown in the pagination panel — forwarded to the
141
+ * underlying `DataTable.paginationPageSizeSelector`. Pass `false` to hide the
142
+ * page-size chooser entirely (pagination navigation is unaffected). Default
143
+ * `[10, 25, 50, 100]` (the engine default).
144
+ */
145
+ paginationPageSizeSelector?: number[] | false;
146
+ /**
147
+ * Mask sensitive contact details (email) in the Contact / Email columns.
148
+ * Forwarded to `buildPatientColumns`' `hideDetails`. Ignored when `columns`
149
+ * is supplied (the consumer owns their columns then). Default `false`.
150
+ */
151
+ hideDetails?: boolean;
152
+ /**
153
+ * Derive the patient-detail href for the Identity cell, e.g.
154
+ * `(row) => \`/patients/${row.id}\``. Forwarded to `buildPatientColumns`.
155
+ * Ignored when `columns` is supplied. When omitted the Identity cell routes
156
+ * its click through `onRowAction` with the `show` action.
157
+ */
158
+ identityHref?: BuildPatientColumnsOptions['identityHref'];
159
+ /**
160
+ * Per-practice custom-field descriptors. Each appends one dynamic `custom:*`
161
+ * column (hidden by default, toggleable via ColumnToggle) after the standard
162
+ * columns. Forwarded to `buildPatientColumns`. Ignored when `columns` is
163
+ * supplied (the consumer owns their columns then).
164
+ */
165
+ customFields?: PatientCustomFieldDef[];
166
+ /** Override the default region aria-label (`ui.patientTable.regionLabel`). */
167
+ 'aria-label'?: string;
168
+ /** Extra class names merged onto the inner grid wrapper. */
169
+ className?: string;
170
+ }
171
+ export declare const PatientTable: import("react").ForwardRefExoticComponent<PatientTableProps & import("react").RefAttributes<PatientTableHandle>>;
172
+ //# sourceMappingURL=patient-table.d.ts.map
@@ -0,0 +1,222 @@
1
+ /**
2
+ * patient-table — domain types
3
+ * ----------------------------------------------------------------------------
4
+ * Type surface for the `patient-table` Domain-Specific component, a thin
5
+ * composition over the kit's `data-table` engine (AG Grid Community).
6
+ *
7
+ * CONVENTIONS (CI-blocking — see src/docs/23-constraints.mdx + 26-agent-readiness.mdx):
8
+ *
9
+ * • MONEY IS INTEGER CENTS. Every monetary field on `PatientRow`
10
+ * (`unpaidAmount`, `billableAmount`) and on the financial thresholds is the
11
+ * smallest currency unit (cents). Format to a display currency only at the
12
+ * render boundary — never store fractional units.
13
+ *
14
+ * • PHI MUST NEVER REACH THE DOM. Only `PatientRow.id` may appear in DOM
15
+ * `data-*` attributes (PRS 26 §6). Name, date of birth, email, phone, fiscal
16
+ * code and every other identifying field stay out of attribute hooks, agent
17
+ * snapshots and selectors. Renderers surface them as text content only.
18
+ *
19
+ * These types are the public contract for `buildPatientColumns(t)`, the patient
20
+ * cell renderers, and the `PatientTable` component (Phase 2). They carry no
21
+ * runtime values — pure type declarations.
22
+ *
23
+ * GROUND-TRUTH NOTE: `ColDef` / `ColGroupDef` are NOT re-exported from the
24
+ * data-table barrel; they are imported here straight from `ag-grid-community`,
25
+ * exactly as `data-table.tsx` does. `DataTableHandle` IS re-exported from the
26
+ * barrel and is imported from there.
27
+ */
28
+ import type { ColDef, ColGroupDef } from 'ag-grid-community';
29
+ import type { DataTableHandle, DataTableSortEntry } from '../data-table';
30
+ /** Tri-state marketing consent: `0` = no, `1` = yes, `2` = not specified. */
31
+ export type PatientMarketingConsent = 0 | 1 | 2;
32
+ /** Biological-sex marker used for the demographic column / gender filter. */
33
+ export type PatientGender = 'm' | 'f' | 'x';
34
+ /**
35
+ * A per-practice custom field descriptor. Drives the dynamic `custom:*` columns
36
+ * appended after the standard ones by `buildPatientColumns`. The `label` is
37
+ * practice-defined display copy — NOT i18n-keyed (it is the header verbatim).
38
+ */
39
+ export interface PatientCustomFieldDef {
40
+ /** Stable descriptor id. */
41
+ id: string;
42
+ /** Key into {@link PatientRow.customFields}. */
43
+ fieldName: string;
44
+ /** Practice-defined header label — rendered verbatim, never i18n-keyed. */
45
+ label: string;
46
+ /** Renderer + filter shape: plain text, a yes/no checkbox, or a chip. */
47
+ type: 'text' | 'checkbox' | 'dropdown';
48
+ /** Closed value set for `dropdown` fields (feeds the SelectFilter options). */
49
+ options?: string[];
50
+ }
51
+ /** Care-plan acceptance state surfaced by `CarePlanStatusCell`. */
52
+ export type PatientCarePlanStatus = 'accepted' | 'estimate' | 'none';
53
+ /** A single phone number plus its SMS-reminder eligibility. */
54
+ export interface PatientPhoneNumber {
55
+ /** Display string, e.g. `"+39 055 123 4567"`. Never a DOM attribute value. */
56
+ number: string;
57
+ /** Whether SMS reminders can be sent to this number. */
58
+ smsEnabled: boolean;
59
+ }
60
+ /**
61
+ * The patient row model rendered by `patient-table`.
62
+ *
63
+ * Mirrors the story-only mock schema in the workflow plan. `id` is the ONLY
64
+ * field permitted in DOM `data-*` hooks (PHI rule); every other field is
65
+ * display/content-only. Monetary amounts (`unpaidAmount`, `billableAmount`)
66
+ * are integer cents.
67
+ */
68
+ export interface PatientRow {
69
+ /** Stable identifier — the ONLY field allowed in DOM data-* (PHI rule). */
70
+ id: string;
71
+ firstName: string;
72
+ lastName: string;
73
+ avatarUrl?: string;
74
+ email?: string;
75
+ /** Whether email contact is enabled — gates the email-reminder action. */
76
+ emailEnabled: boolean;
77
+ /** Whether the stored email passed validation. */
78
+ emailValid?: boolean;
79
+ /** PEC (certified email) address. */
80
+ pecAddress?: string;
81
+ phoneNumbers: PatientPhoneNumber[];
82
+ /** Whether the patient is eligible to receive SMS reminders. */
83
+ smsReminderEligible?: boolean;
84
+ /** Whether the patient is eligible to receive email reminders. */
85
+ emailReminderEligible?: boolean;
86
+ /** ISO-8601 date string. Age is computed at the render boundary. */
87
+ dateOfBirth?: string;
88
+ gender?: PatientGender;
89
+ /** Place (comune) of birth. */
90
+ placeOfBirth?: string;
91
+ /** ISO-3166-1 alpha-2 country of birth. */
92
+ countryOfBirth?: string;
93
+ street?: string;
94
+ postcode?: string;
95
+ city?: string;
96
+ province?: string;
97
+ /** ISO-3166-1 alpha-2 country code (residence). */
98
+ countryCode?: string;
99
+ italianFiscalCode?: string;
100
+ /** Acquisition source (the practice-configured channel). */
101
+ source?: string;
102
+ /** Free-text source override when `source` is `'Other'`. */
103
+ customSource?: string;
104
+ defaultInsurance?: string;
105
+ /** Default discount percentage applied to this patient's plans. */
106
+ defaultDiscount?: number;
107
+ /** Primary clinical diagnosis note. */
108
+ diagnosis?: string;
109
+ /** Patient's occupation. */
110
+ job?: string;
111
+ /** Operator / personal assistant the patient is assigned to. */
112
+ personalAssistant?: string;
113
+ marketingConsent: PatientMarketingConsent;
114
+ /** Year component of the yearly patient numbering (`YYYY`). */
115
+ yearlyNumberingYear?: number;
116
+ /** Sequence component of the yearly patient numbering (`N`). */
117
+ yearlyNumberingNumber?: number;
118
+ /** Whether the patient has a MyDentista portal account. */
119
+ mydentista?: boolean;
120
+ nextAppointment?: string;
121
+ lastAppointment?: string;
122
+ /** Outstanding balance in cents. */
123
+ unpaidAmount: number;
124
+ /** Billable plan value in cents. */
125
+ billableAmount: number;
126
+ carePlanStatus?: PatientCarePlanStatus;
127
+ tags?: string[];
128
+ /** ISO-8601 creation timestamp. */
129
+ createdAt: string;
130
+ isArchived?: boolean;
131
+ /**
132
+ * Per-practice custom-field values, keyed by `PatientCustomFieldDef.fieldName`.
133
+ * Strings for text/dropdown fields; booleans for checkbox fields. Surfaced by
134
+ * the dynamic `custom:*` columns. Never a DOM attribute (PHI rule).
135
+ */
136
+ customFields?: Record<string, string | boolean>;
137
+ }
138
+ /**
139
+ * Stable column ids for the patient grid. Drives `ColumnToggle`, the
140
+ * responsive-priority map, view presets and the agent column address.
141
+ * Keep in sync with `buildPatientColumns(t)`.
142
+ */
143
+ export type PatientColumnId = 'select' | 'avatar' | 'lastName' | 'actions' | 'firstName' | 'fiscalCode' | 'age' | 'gender' | 'dateOfBirth' | 'placeOfBirth' | 'countryOfBirth' | 'phone' | 'email' | 'smsReminders' | 'emailReminders' | 'pec' | 'nextAppointment' | 'lastVisit' | 'unpaidBalance' | 'billableAmount' | 'discount' | 'carePlanStatus' | 'diagnosis' | 'insurance' | 'assignedTo' | 'job' | 'source' | 'marketingConsent' | 'patientNumber' | 'portal' | 'createdAt' | 'city' | 'province' | 'postcode' | 'country' | 'street' | `custom:${string}`;
144
+ /**
145
+ * Responsive priority tier. Lower numbers survive longer as the grid narrows:
146
+ * `P0` always visible, `P3` first to hide. The responsive hook toggles
147
+ * column `hide` by tier; an explicit user ColumnToggle override wins and is
148
+ * what gets persisted.
149
+ */
150
+ export type ResponsiveTier = 'P0' | 'P1' | 'P2' | 'P3';
151
+ /** Closed set of per-row action keys. */
152
+ export type PatientRowActionKey = 'show' | 'edit' | 'sendEmailReminder' | 'sendSmsReminder' | 'reassign' | 'delete';
153
+ /**
154
+ * A per-row action descriptor. `id` is the stable key; the display fields feed
155
+ * the `ActionsCellRenderer` (icon + accessible label + intent). Visibility and
156
+ * disablement are resolved per-row against the `PatientRow` at render time.
157
+ */
158
+ export interface PatientRowAction {
159
+ /** Stable action key — the value passed back to `onRowAction`. */
160
+ id: PatientRowActionKey;
161
+ /** Localised accessible label / tooltip. */
162
+ label: string;
163
+ /** Lucide-style icon node (sized by the renderer). */
164
+ icon?: import('react').ReactNode;
165
+ /** `destructive` swaps the button intent (e.g. delete). */
166
+ variant?: 'default' | 'destructive';
167
+ /** Hide the action for a given row (e.g. SMS reminder with no SMS phone). */
168
+ hidden?: boolean | ((patient: PatientRow) => boolean);
169
+ /** Disable the action for a given row. */
170
+ disabled?: boolean | ((patient: PatientRow) => boolean);
171
+ /** Human-readable reason shown in the tooltip when disabled. */
172
+ disabledReason?: string;
173
+ }
174
+ /** Closed set of bulk-action keys (operate on the current selection). */
175
+ export type PatientBulkActionKey = 'exportCsv' | 'exportPdf' | 'reassign' | 'tag' | 'sendReminder' | 'delete';
176
+ /**
177
+ * A bulk-action descriptor for the toolbar. Invoked with the selected row ids
178
+ * (resolved from `DataTableHandle.getSelection()`); only ids cross this
179
+ * boundary — never PHI.
180
+ */
181
+ export interface PatientBulkAction {
182
+ /** Stable bulk-action key. */
183
+ id: PatientBulkActionKey;
184
+ /** Localised button label. */
185
+ label: string;
186
+ /** Lucide-style icon node. */
187
+ icon?: import('react').ReactNode;
188
+ /** `destructive` swaps the button intent (e.g. bulk delete). */
189
+ variant?: 'default' | 'destructive';
190
+ /** Invoked with the ids of the currently-selected rows. */
191
+ onSelect: (selectedIds: string[]) => void;
192
+ }
193
+ /**
194
+ * A saved view: a named column/filter/sort preset applied to the grid.
195
+ * `columns` is the ordered, visible subset; `filterModel` and `sortModel` are
196
+ * fed straight to `DataTableHandle.setFilter` / `setSort`.
197
+ */
198
+ export interface PatientView {
199
+ /** Stable view id. */
200
+ id: string;
201
+ /** Localised view label shown in the view switcher. */
202
+ label: string;
203
+ /** Ordered list of visible columns for this view. */
204
+ columns: PatientColumnId[];
205
+ /** AG Grid filter model passed to `DataTableHandle.setFilter`. */
206
+ filterModel: Record<string, unknown>;
207
+ /** Sort model passed to `DataTableHandle.setSort`. */
208
+ sortModel: DataTableSortEntry[];
209
+ }
210
+ /**
211
+ * The curated imperative handle exposed by `PatientTable` via `forwardRef`,
212
+ * specialised to `PatientRow`. Re-exported so column/renderer/component files
213
+ * import a single patient-typed handle.
214
+ */
215
+ export type PatientTableHandle = DataTableHandle<PatientRow>;
216
+ /** Column definition typed to `PatientRow` (AG Grid Community). */
217
+ export type PatientColDef = ColDef<PatientRow>;
218
+ /** Column-group (two-row header) definition typed to `PatientRow`. */
219
+ export type PatientColGroupDef = ColGroupDef<PatientRow>;
220
+ /** Mixed leaf / group column-definition array, as `DataTable.columnDefs` expects. */
221
+ export type PatientColumnDef = PatientColDef | PatientColGroupDef;
222
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,111 @@
1
+ /**
2
+ * patient-table — responsive column hook
3
+ * ----------------------------------------------------------------------------
4
+ * `useResponsiveColumns(handleRef, opts)` toggles column visibility by the
5
+ * `responsiveTier` (`P0`–`P3`) baked onto each `ColDef` by `buildPatientColumns`,
6
+ * driven by the *grid container's* width — measured with a `ResizeObserver`, NOT
7
+ * the viewport — so the table responds correctly when embedded in a narrow panel,
8
+ * split pane or sidebar rather than only at browser-window breakpoints.
9
+ *
10
+ * BREAKPOINTS (container inline-size → highest tier kept visible):
11
+ *
12
+ * < 640px → P0 only (pinned avatar / firstName / lastName / actions)
13
+ * < 900px → P0 + P1 (+ phone, nextAppointment, balance)
14
+ * < 1200px → P0 + P1 + P2 (+ email, carePlanStatus)
15
+ * ≥ 1200px → all tiers (P0–P3) (+ fiscalCode, age, gender, source)
16
+ *
17
+ * Columns without a tier (the pinned avatar / firstName / lastName / actions
18
+ * anchors, and every grouped `hide: true` column) are never touched — the
19
+ * anchors stay visible at every width; the grouped columns are owned by
20
+ * ColumnToggle only.
21
+ *
22
+ * RESPONSIVE ↔ PERSISTENCE RECONCILIATION
23
+ * ---------------------------------------
24
+ * `data-table.tsx` persists the full AG Grid column state to
25
+ * `localStorage["data-table-col-state:<gridId>"]` (load on grid-ready, save on
26
+ * unmount). A user's explicit `ColumnToggle` choice lives in that persisted state
27
+ * and MUST win over — and survive — the responsive baseline. Reconciliation:
28
+ *
29
+ * 1. The responsive baseline is exactly that — a *baseline*. We only auto
30
+ * show/hide a column the user has NOT manually toggled this session.
31
+ * 2. We track a `Set<colId>` of user-touched columns. We learn of a manual
32
+ * toggle from the grid's `columnVisible` event: any such event whose
33
+ * `source` is NOT `'api'` is user-driven (ColumnToggle tool panel, column
34
+ * menu, context menu, drag), so we add those colIds to the set. Our own
35
+ * responsive calls go through `setColumnsVisible(..., 'api')`, so they never
36
+ * pollute the set (and we additionally guard with a re-entrancy flag).
37
+ * 3. Once a column is user-touched, the hook leaves it alone forever this
38
+ * session — its visibility is whatever the user chose, which is what
39
+ * `data-table.tsx` then persists on unmount. The persisted choice therefore
40
+ * wins on the next mount too: we seed the user-touched set from the saved
41
+ * column state so a previously hidden/shown column is treated as a manual
42
+ * override and not clobbered by the baseline on re-entry.
43
+ *
44
+ * CONSTRAINTS: no `any` (AG Grid's `ColumnEventType` is read off the typed event,
45
+ * tier read via the typed `getResponsiveTier` helper). No DOM `data-*` attribute
46
+ * is written here (PHI rule is moot — this hook only reads colIds and widths).
47
+ */
48
+ import { type RefObject } from 'react';
49
+ import type { PatientTableHandle, ResponsiveTier } from './types';
50
+ /**
51
+ * Container inline-size breakpoints. Each entry is the *minimum* container width
52
+ * (px) at which the named tier becomes visible. Below the first threshold only
53
+ * `P0` shows; at or above the last, everything shows.
54
+ */
55
+ interface Breakpoint {
56
+ /** Minimum container inline-size (px) for this tier to be shown. */
57
+ minWidth: number;
58
+ /** The tier this breakpoint reveals. */
59
+ tier: ResponsiveTier;
60
+ }
61
+ export interface UseResponsiveColumnsOptions {
62
+ /**
63
+ * The grid container element to observe. The hook measures THIS element's
64
+ * inline-size (not the viewport) so it works embedded. When the ref is unset
65
+ * the hook is inert.
66
+ */
67
+ containerRef: RefObject<HTMLElement | null>;
68
+ /**
69
+ * Disable responsive toggling entirely (the `responsive={false}` escape hatch
70
+ * on `PatientTable`). When `false` the hook unobserves and makes no visibility
71
+ * changes — column visibility is left entirely to persistence / ColumnToggle.
72
+ * Default `true`.
73
+ */
74
+ enabled?: boolean;
75
+ /**
76
+ * Override the container-width breakpoints. Ordered low→high `minWidth`; each
77
+ * reveals its `tier`. Defaults to 640 / 900 / 1200 (P1 / P2 / P3).
78
+ */
79
+ breakpoints?: readonly Breakpoint[];
80
+ }
81
+ /**
82
+ * Imperative surface returned by {@link useResponsiveColumns}. The responsive
83
+ * effect runs internally; `lockColumns` lets a caller (the view switcher) mark
84
+ * columns as user-touched so the responsive baseline stops auto-managing them.
85
+ */
86
+ export interface UseResponsiveColumnsResult {
87
+ /**
88
+ * Mark the given colIds as "user-touched" so the responsive baseline leaves
89
+ * their visibility alone from here on — exactly as if the user had toggled
90
+ * them via `ColumnToggle`. The view switcher calls this when it applies a
91
+ * view's column visibility, so its programmatic (`source: 'api'`) visibility
92
+ * writes are not immediately re-hidden/re-shown by the next responsive
93
+ * reconcile pass. No-op (with the colIds still recorded for a later mount of
94
+ * the effect) when the hook is disabled.
95
+ */
96
+ lockColumns: (colIds: readonly string[]) => void;
97
+ }
98
+ /**
99
+ * Wire responsive, tier-driven column visibility to the patient grid.
100
+ *
101
+ * @param handleRef The `PatientTable` imperative handle ref — the hook reaches
102
+ * the raw AG Grid API via `handleRef.current.getRawApi()`.
103
+ * @param opts Container ref to observe, plus enable flag / breakpoint
104
+ * overrides. See {@link UseResponsiveColumnsOptions}.
105
+ * @returns {@link UseResponsiveColumnsResult} — `lockColumns(colIds)`
106
+ * to mark columns user-touched (see the view-switcher
107
+ * coordination note in patient-table.tsx).
108
+ */
109
+ export declare function useResponsiveColumns(handleRef: RefObject<PatientTableHandle | null>, opts: UseResponsiveColumnsOptions): UseResponsiveColumnsResult;
110
+ export {};
111
+ //# sourceMappingURL=use-responsive-columns.d.ts.map
@@ -1,4 +1,4 @@
1
- import { P as t, a as n, p as r, b as s } from "../../_chunks/payment-request-card-CYE5vhZ0.js";
1
+ import { P as t, a as n, p as r, b as s } from "../../_chunks/payment-request-card-BcZJwu9z.js";
2
2
  export {
3
3
  t as PaymentCard,
4
4
  n as PaymentRequestCard,
@@ -1,4 +1,4 @@
1
- import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-nXocS_MX.js";
1
+ import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-CxqIXqw7.js";
2
2
  export {
3
3
  r as PaymentForm,
4
4
  s as formatPaymentAmount,
@@ -1,4 +1,4 @@
1
- import { P as p, p as a } from "../../_chunks/pdf-viewer-GsfNqeeT.js";
1
+ import { P as p, p as a } from "../../_chunks/pdf-viewer-QfebdLOd.js";
2
2
  export {
3
3
  p as PDFViewer,
4
4
  a as pdfViewerAgent
@@ -1,4 +1,4 @@
1
- import { P as o, a as t, p as d } from "../../_chunks/periodontal-chart-card-Dh3KgvYG.js";
1
+ import { P as o, a as t, p as d } from "../../_chunks/periodontal-chart-card-hRRJY1NN.js";
2
2
  export {
3
3
  o as PERIODONTAL_SITE_ORDER,
4
4
  t as PeriodontalChartCard,
@@ -1,4 +1,4 @@
1
- import { P as n, c as p, p as t, a as e } from "../../_chunks/phone-input-DVXhNlIl.js";
1
+ import { P as n, c as p, p as t, a as e } from "../../_chunks/phone-input-DjU-XmO_.js";
2
2
  export {
3
3
  n as PhoneInput,
4
4
  p as countryTriggerVariants,
@@ -1,4 +1,4 @@
1
- import { P as e, p as r } from "../../_chunks/popover-DTbfAuR0.js";
1
+ import { P as e, p as r } from "../../_chunks/popover-B2qCDhJC.js";
2
2
  export {
3
3
  e as Popover,
4
4
  r as popoverAgent
@@ -1,4 +1,4 @@
1
- import { P as t, p as a } from "../../_chunks/practice-results-DND2SAt7.js";
1
+ import { P as t, p as a } from "../../_chunks/practice-results-C6qDfxos.js";
2
2
  export {
3
3
  t as PracticeResults,
4
4
  a as practiceResultsAgent
@@ -1,4 +1,4 @@
1
- import { P as r } from "../../_chunks/pregnancy-dating-QY-sqpvj.js";
1
+ import { P as r } from "../../_chunks/pregnancy-dating-CRVWswD-.js";
2
2
  export {
3
3
  r as PregnancyDating
4
4
  };
@@ -1,4 +1,4 @@
1
- import { P as s, R as n, T as i, a as r, r as A } from "../../_chunks/pregnancy-weight-gain-DOJXXNYP.js";
1
+ import { P as s, R as n, T as i, a as r, r as A } from "../../_chunks/pregnancy-weight-gain-BUNpTsH-.js";
2
2
  export {
3
3
  s as PregnancyWeightGain,
4
4
  n as RATE_BANDS,
@@ -1,4 +1,4 @@
1
- import { P as o, p as r } from "../../_chunks/privacy-lock-C7JyMf0y.js";
1
+ import { P as o, p as r } from "../../_chunks/privacy-lock-BzMLQu-j.js";
2
2
  export {
3
3
  o as PrivacyLock,
4
4
  r as privacyLockAgent
@@ -1,4 +1,4 @@
1
- import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-CAXDFeGP.js";
1
+ import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-e6pW220e.js";
2
2
  import { i as s } from "../../_chunks/is-safe-url-DkETxeHz.js";
3
3
  export {
4
4
  u as ProductHubPanel,
@@ -1,4 +1,4 @@
1
- import { P as e, p as o } from "../../_chunks/progress-kzIRcdaq.js";
1
+ import { P as e, p as o } from "../../_chunks/progress-DA413-zn.js";
2
2
  export {
3
3
  e as Progress,
4
4
  o as progressAgent
@@ -1,4 +1,4 @@
1
- import { D as s, a as A, P as L, S as e, c as S, p as _ } from "../../_chunks/public-footer.agent-CfXuW1x6.js";
1
+ import { D as s, a as A, P as L, S as e, c as S, p as _ } from "../../_chunks/public-footer.agent-D0cFbjWl.js";
2
2
  export {
3
3
  s as DEFAULT_MARKETING_BASE_URL,
4
4
  A as DEFAULT_SOCIAL_URLS,
@@ -1,4 +1,4 @@
1
- import { P as r, p } from "../../_chunks/public-header.agent-BOhJgZEU.js";
1
+ import { P as r, p } from "../../_chunks/public-header.agent-DqkqA-ca.js";
2
2
  export {
3
3
  r as PublicHeader,
4
4
  p as publicHeaderAgent
@@ -1,4 +1,4 @@
1
- import { Q as a, c as s, q as t, s as o } from "../../_chunks/qr-code-DNXhi6se.js";
1
+ import { Q as a, c as s, q as t, s as o } from "../../_chunks/qr-code-CPkEs5mG.js";
2
2
  export {
3
3
  a as QrCode,
4
4
  s as createQrMatrix,
@@ -1,5 +1,5 @@
1
1
  import { R as a } from "../../_chunks/radio-TWf9Q-mp.js";
2
- import { R as p } from "../../_chunks/radio-group-CLjK-SlK.js";
2
+ import { R as p } from "../../_chunks/radio-group-BPt7pKZW.js";
3
3
  export {
4
4
  a as Radio,
5
5
  p as RadioGroup
@@ -0,0 +1,4 @@
1
+ export { RadiographPanel, RadiographPanelIcon } from './radiograph-panel';
2
+ export type { RadiographPanelProps, RadiographPanelHandle, } from './radiograph-panel';
3
+ export { radiographPanelAgent } from './radiograph-panel.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { R as o, a as e, r as n } from "../../_chunks/radiograph-panel.agent-CAX-C3g3.js";
2
+ export {
3
+ o as RadiographPanel,
4
+ e as RadiographPanelIcon,
5
+ n as radiographPanelAgent
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { RadiographPanelHandle } from './radiograph-panel';
3
+ import type { Radiograph } from '../tooth-scheme';
4
+ /**
5
+ * The Imaging panel for the Control Room rail. It DISPLAYS the selected tooth's
6
+ * radiographs and drives the fullscreen viewer; uploads and deletes are the
7
+ * host's responsibility (the `onAddRadiograph` / `onDeleteRadiograph` props),
8
+ * so they are not exposed here — the consuming pattern/app owns those `write` /
9
+ * `destructive` workflows and their `radiograph.*` API contracts.
10
+ */
11
+ export declare const radiographPanelAgent: AgentAdapter<RadiographPanelHandle>;
12
+ export type { Radiograph };
13
+ //# sourceMappingURL=radiograph-panel.agent.d.ts.map