@alfadocs/ui-kit-debug 1.35.0 → 1.36.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 (582) hide show
  1. package/dist/_chunks/{actions-cell-renderer-yy03OgRL.js → actions-cell-renderer-CUn1pqEq.js} +3 -3
  2. package/dist/_chunks/{actions-cell-renderer-yy03OgRL.js.map → actions-cell-renderer-CUn1pqEq.js.map} +1 -1
  3. package/dist/_chunks/{agenda-card-DVz3jwTf.js → agenda-card-DyQtHb9z.js} +2 -2
  4. package/dist/_chunks/{agenda-card-DVz3jwTf.js.map → agenda-card-DyQtHb9z.js.map} +1 -1
  5. package/dist/_chunks/{agenda-tray-1oDWCJdB.js → agenda-tray-DYGCTIWB.js} +3 -3
  6. package/dist/_chunks/{agenda-tray-1oDWCJdB.js.map → agenda-tray-DYGCTIWB.js.map} +1 -1
  7. package/dist/_chunks/{ai-consent-banner-OggpS5hW.js → ai-consent-banner-De4gzSBZ.js} +4 -4
  8. package/dist/_chunks/{ai-consent-banner-OggpS5hW.js.map → ai-consent-banner-De4gzSBZ.js.map} +1 -1
  9. package/dist/_chunks/{ai-prompt-input-Dt7tpCBh.js → ai-prompt-input-DdxlaI7q.js} +2 -2
  10. package/dist/_chunks/{ai-prompt-input-Dt7tpCBh.js.map → ai-prompt-input-DdxlaI7q.js.map} +1 -1
  11. package/dist/_chunks/{alert-CiJT540z.js → alert-CiQ5Pa3Q.js} +2 -2
  12. package/dist/_chunks/{alert-CiJT540z.js.map → alert-CiQ5Pa3Q.js.map} +1 -1
  13. package/dist/_chunks/{alia-sidebar-D18kp3p9.js → alia-sidebar-B6bXlZZk.js} +6 -6
  14. package/dist/_chunks/{alia-sidebar-D18kp3p9.js.map → alia-sidebar-B6bXlZZk.js.map} +1 -1
  15. package/dist/_chunks/{anamnesis-card-NTi4LLzI.js → anamnesis-card-DGwINeNn.js} +3 -3
  16. package/dist/_chunks/{anamnesis-card-NTi4LLzI.js.map → anamnesis-card-DGwINeNn.js.map} +1 -1
  17. package/dist/_chunks/{anamnesis-summary-card-DGVKBQoq.js → anamnesis-summary-card-GYHa7VGp.js} +3 -3
  18. package/dist/_chunks/{anamnesis-summary-card-DGVKBQoq.js.map → anamnesis-summary-card-GYHa7VGp.js.map} +1 -1
  19. package/dist/_chunks/{anamnesis-summary-rows-BYgyp_i2.js → anamnesis-summary-rows-Cxtgo2ok.js} +12 -12
  20. package/dist/_chunks/{anamnesis-summary-rows-BYgyp_i2.js.map → anamnesis-summary-rows-Cxtgo2ok.js.map} +1 -1
  21. package/dist/_chunks/{antenatal-schedule-timeline-sXfIp5lp.js → antenatal-schedule-timeline-CXk_tzWG.js} +2 -2
  22. package/dist/_chunks/{antenatal-schedule-timeline-sXfIp5lp.js.map → antenatal-schedule-timeline-CXk_tzWG.js.map} +1 -1
  23. package/dist/_chunks/{appointment-card-Bh_CIlc6.js → appointment-card-WsDGBBut.js} +120 -126
  24. package/dist/_chunks/appointment-card-WsDGBBut.js.map +1 -0
  25. package/dist/_chunks/{appointment-timeline-De-Wqdkw.js → appointment-timeline-ByfovxqR.js} +5 -5
  26. package/dist/_chunks/{appointment-timeline-De-Wqdkw.js.map → appointment-timeline-ByfovxqR.js.map} +1 -1
  27. package/dist/_chunks/{appointment-tray-4I9wTAi4.js → appointment-tray-D6UyJHej.js} +3 -3
  28. package/dist/_chunks/{appointment-tray-4I9wTAi4.js.map → appointment-tray-D6UyJHej.js.map} +1 -1
  29. package/dist/_chunks/arrow-right-KsIrLdt0.js +15 -0
  30. package/dist/_chunks/arrow-right-KsIrLdt0.js.map +1 -0
  31. package/dist/_chunks/{audio-recorder-11wClczr.js → audio-recorder-BlQBC7N_.js} +3 -3
  32. package/dist/_chunks/{audio-recorder-11wClczr.js.map → audio-recorder-BlQBC7N_.js.map} +1 -1
  33. package/dist/_chunks/{badge-sTusUqZD.js → badge-BudgzTe_.js} +2 -2
  34. package/dist/_chunks/{badge-sTusUqZD.js.map → badge-BudgzTe_.js.map} +1 -1
  35. package/dist/_chunks/{balance-badge-cell-DhBtFRoW.js → balance-badge-cell-B0Z8Dwn8.js} +6 -6
  36. package/dist/_chunks/{balance-badge-cell-DhBtFRoW.js.map → balance-badge-cell-B0Z8Dwn8.js.map} +1 -1
  37. package/dist/_chunks/{bishop-score-CAl7C5hm.js → bishop-score-D5b8tktp.js} +2 -2
  38. package/dist/_chunks/{bishop-score-CAl7C5hm.js.map → bishop-score-D5b8tktp.js.map} +1 -1
  39. package/dist/_chunks/{bmi-calculator-Dwkih9a4.js → bmi-calculator-dOKP-vW4.js} +4 -4
  40. package/dist/_chunks/{bmi-calculator-Dwkih9a4.js.map → bmi-calculator-dOKP-vW4.js.map} +1 -1
  41. package/dist/_chunks/{booking-BqkEtsKx.js → booking-Dp-9qR6F.js} +9 -9
  42. package/dist/_chunks/{booking-BqkEtsKx.js.map → booking-Dp-9qR6F.js.map} +1 -1
  43. package/dist/_chunks/button-group-QmN1VdUW.js +307 -0
  44. package/dist/_chunks/button-group-QmN1VdUW.js.map +1 -0
  45. package/dist/_chunks/{calendar-Dgvl5L4T.js → calendar-7GAUlsNO.js} +3 -3
  46. package/dist/_chunks/{calendar-Dgvl5L4T.js.map → calendar-7GAUlsNO.js.map} +1 -1
  47. package/dist/_chunks/{calendar-event-card-DSh-69HT.js → calendar-event-card-DKUnT9Be.js} +91 -134
  48. package/dist/_chunks/calendar-event-card-DKUnT9Be.js.map +1 -0
  49. package/dist/_chunks/{calendar-workspace-UywR5gUl.js → calendar-workspace-Duv_5B4j.js} +2494 -2415
  50. package/dist/_chunks/calendar-workspace-Duv_5B4j.js.map +1 -0
  51. package/dist/_chunks/{care-plan-card-DHVhBcvs.js → care-plan-card-COFOI-fI.js} +5 -5
  52. package/dist/_chunks/{care-plan-card-DHVhBcvs.js.map → care-plan-card-COFOI-fI.js.map} +1 -1
  53. package/dist/_chunks/{care-plan-entry-card-Dx6IdTcR.js → care-plan-entry-card-BOKn0KW-.js} +6 -6
  54. package/dist/_chunks/{care-plan-entry-card-Dx6IdTcR.js.map → care-plan-entry-card-BOKn0KW-.js.map} +1 -1
  55. package/dist/_chunks/{care-plan-header-UTX5ZD74.js → care-plan-header-CbuOuVBw.js} +4 -4
  56. package/dist/_chunks/{care-plan-header-UTX5ZD74.js.map → care-plan-header-CbuOuVBw.js.map} +1 -1
  57. package/dist/_chunks/{carousel.agent-CLxdHEBP.js → carousel.agent-Dv4a4M8L.js} +2 -2
  58. package/dist/_chunks/{carousel.agent-CLxdHEBP.js.map → carousel.agent-Dv4a4M8L.js.map} +1 -1
  59. package/dist/_chunks/{chart-C6eHTxkO.js → chart-iWl76PXv.js} +3 -3
  60. package/dist/_chunks/{chart-C6eHTxkO.js.map → chart-iWl76PXv.js.map} +1 -1
  61. package/dist/_chunks/{chat-input-BsB5Umpj.js → chat-input-qM5QpUSq.js} +2 -2
  62. package/dist/_chunks/{chat-input-BsB5Umpj.js.map → chat-input-qM5QpUSq.js.map} +1 -1
  63. package/dist/_chunks/{chat-message-C-8UU2av.js → chat-message-RniXtrCH.js} +2 -2
  64. package/dist/_chunks/{chat-message-C-8UU2av.js.map → chat-message-RniXtrCH.js.map} +1 -1
  65. package/dist/_chunks/{checkbox-BuZ1u__2.js → checkbox-CZkipDn7.js} +2 -2
  66. package/dist/_chunks/{checkbox-BuZ1u__2.js.map → checkbox-CZkipDn7.js.map} +1 -1
  67. package/dist/_chunks/{checkbox-group-CfqMv57d.js → checkbox-group-DomUzpkF.js} +2 -2
  68. package/dist/_chunks/{checkbox-group-CfqMv57d.js.map → checkbox-group-DomUzpkF.js.map} +1 -1
  69. package/dist/_chunks/clinical-note-card-DdsGYMmI.js +325 -0
  70. package/dist/_chunks/clinical-note-card-DdsGYMmI.js.map +1 -0
  71. package/dist/_chunks/{code-block-BIkpRLkl.js → code-block-uVjNSI9g.js} +2 -2
  72. package/dist/_chunks/{code-block-BIkpRLkl.js.map → code-block-uVjNSI9g.js.map} +1 -1
  73. package/dist/_chunks/{connection-status-DRZIcMqM.js → connection-status-OEsWjmRk.js} +3 -3
  74. package/dist/_chunks/{connection-status-DRZIcMqM.js.map → connection-status-OEsWjmRk.js.map} +1 -1
  75. package/dist/_chunks/{contact-profile-card-DSI9uumA.js → contact-profile-card--My1H2UD.js} +3 -3
  76. package/dist/_chunks/{contact-profile-card-DSI9uumA.js.map → contact-profile-card--My1H2UD.js.map} +1 -1
  77. package/dist/_chunks/{control-room-rail-5MbhjsxN.js → control-room-rail-Ds45_g4f.js} +4 -4
  78. package/dist/_chunks/{control-room-rail-5MbhjsxN.js.map → control-room-rail-Ds45_g4f.js.map} +1 -1
  79. package/dist/_chunks/{counter-dRlTNC_y.js → counter-WsvRuum1.js} +50 -15
  80. package/dist/_chunks/counter-WsvRuum1.js.map +1 -0
  81. package/dist/_chunks/{cycle-calculator-DVgxBfP0.js → cycle-calculator-BJeaXiZv.js} +3 -3
  82. package/dist/_chunks/{cycle-calculator-DVgxBfP0.js.map → cycle-calculator-BJeaXiZv.js.map} +1 -1
  83. package/dist/_chunks/{dashboard-grid-BFtdHqfn.js → dashboard-grid-B23BFzRl.js} +2 -2
  84. package/dist/_chunks/{dashboard-grid-BFtdHqfn.js.map → dashboard-grid-B23BFzRl.js.map} +1 -1
  85. package/dist/_chunks/{data-table-DC96JJIq.js → data-table-BYGK-gUJ.js} +6 -6
  86. package/dist/_chunks/{data-table-DC96JJIq.js.map → data-table-BYGK-gUJ.js.map} +1 -1
  87. package/dist/_chunks/{data-table-tabs-DVIFkqx_.js → data-table-tabs-BMR0zsVQ.js} +3 -3
  88. package/dist/_chunks/{data-table-tabs-DVIFkqx_.js.map → data-table-tabs-BMR0zsVQ.js.map} +1 -1
  89. package/dist/_chunks/{date-picker-B6NW_PS5.js → date-picker-6tFnKFty.js} +14 -14
  90. package/dist/_chunks/{date-picker-B6NW_PS5.js.map → date-picker-6tFnKFty.js.map} +1 -1
  91. package/dist/_chunks/{dependent-selector-yTKKsuc9.js → dependent-selector-BHDP0nBB.js} +3 -3
  92. package/dist/_chunks/{dependent-selector-yTKKsuc9.js.map → dependent-selector-BHDP0nBB.js.map} +1 -1
  93. package/dist/_chunks/{description-list-CjJqR8WK.js → description-list-C1RXMDZ_.js} +2 -2
  94. package/dist/_chunks/{description-list-CjJqR8WK.js.map → description-list-C1RXMDZ_.js.map} +1 -1
  95. package/dist/_chunks/{document-preview-BrhMHNh8.js → document-preview-DsEyRcNd.js} +4 -4
  96. package/dist/_chunks/{document-preview-BrhMHNh8.js.map → document-preview-DsEyRcNd.js.map} +1 -1
  97. package/dist/_chunks/{document-scanner-C5Vrbu21.js → document-scanner-CbWVtm7u.js} +53 -52
  98. package/dist/_chunks/{document-scanner-C5Vrbu21.js.map → document-scanner-CbWVtm7u.js.map} +1 -1
  99. package/dist/_chunks/{due-date-calculator-CxgK8vzt.js → due-date-calculator-Dhc9Ljkb.js} +6 -6
  100. package/dist/_chunks/{due-date-calculator-CxgK8vzt.js.map → due-date-calculator-Dhc9Ljkb.js.map} +1 -1
  101. package/dist/_chunks/{editable-currency-cell-renderer-B7TVZ5ZJ.js → editable-currency-cell-renderer-D7blbDFY.js} +4 -4
  102. package/dist/_chunks/{editable-currency-cell-renderer-B7TVZ5ZJ.js.map → editable-currency-cell-renderer-D7blbDFY.js.map} +1 -1
  103. package/dist/_chunks/{editor-overlay-DEc5yYwo.js → editor-overlay-8fKAcRsm.js} +2 -2
  104. package/dist/_chunks/{editor-overlay-DEc5yYwo.js.map → editor-overlay-8fKAcRsm.js.map} +1 -1
  105. package/dist/_chunks/{entity-card-9_62gY7l.js → entity-card-I-Gio5wo.js} +36 -32
  106. package/dist/_chunks/entity-card-I-Gio5wo.js.map +1 -0
  107. package/dist/_chunks/{entity-summary-5o768XLU.js → entity-summary-BbW0mIzU.js} +4 -4
  108. package/dist/_chunks/{entity-summary-5o768XLU.js.map → entity-summary-BbW0mIzU.js.map} +1 -1
  109. package/dist/_chunks/{face-scheme-l-CQyLs-.js → face-scheme-uFvhqz6h.js} +4 -4
  110. package/dist/_chunks/{face-scheme-l-CQyLs-.js.map → face-scheme-uFvhqz6h.js.map} +1 -1
  111. package/dist/_chunks/{fetal-weight-Dqy0T1fP.js → fetal-weight-C6SxchOv.js} +2 -2
  112. package/dist/_chunks/{fetal-weight-Dqy0T1fP.js.map → fetal-weight-C6SxchOv.js.map} +1 -1
  113. package/dist/_chunks/{field-array-BjkXZzSr.js → field-array-C9dmRaIM.js} +2 -2
  114. package/dist/_chunks/{field-array-BjkXZzSr.js.map → field-array-C9dmRaIM.js.map} +1 -1
  115. package/dist/_chunks/{file-manager-CI2Qn8qW.js → file-manager-DvkFgj7d.js} +7 -7
  116. package/dist/_chunks/{file-manager-CI2Qn8qW.js.map → file-manager-DvkFgj7d.js.map} +1 -1
  117. package/dist/_chunks/{file-upload-CwxdqkMK.js → file-upload-BDpb08GM.js} +71 -78
  118. package/dist/_chunks/file-upload-BDpb08GM.js.map +1 -0
  119. package/dist/_chunks/{fiscal-code-input-B_nYMSEM.js → fiscal-code-input-CkwIdB1y.js} +2 -2
  120. package/dist/_chunks/{fiscal-code-input-B_nYMSEM.js.map → fiscal-code-input-CkwIdB1y.js.map} +1 -1
  121. package/dist/_chunks/{freemium-paywall-DrXzYfv-.js → freemium-paywall-BqGk_SBU.js} +2 -2
  122. package/dist/_chunks/{freemium-paywall-DrXzYfv-.js.map → freemium-paywall-BqGk_SBU.js.map} +1 -1
  123. package/dist/_chunks/{gestational-age-calculator-CZHVrERT.js → gestational-age-calculator-DDOGaPvg.js} +6 -6
  124. package/dist/_chunks/{gestational-age-calculator-CZHVrERT.js.map → gestational-age-calculator-DDOGaPvg.js.map} +1 -1
  125. package/dist/_chunks/{hcg-doubling-C2fQxfXd.js → hcg-doubling-Bb_n6tEa.js} +2 -2
  126. package/dist/_chunks/{hcg-doubling-C2fQxfXd.js.map → hcg-doubling-Bb_n6tEa.js.map} +1 -1
  127. package/dist/_chunks/{header-DUXRIPyM.js → header-BZ4pZlJV.js} +2 -2
  128. package/dist/_chunks/{header-DUXRIPyM.js.map → header-BZ4pZlJV.js.map} +1 -1
  129. package/dist/_chunks/{header-settings-DvjZNMhD.js → header-settings-B8mLc03Q.js} +4 -4
  130. package/dist/_chunks/{header-settings-DvjZNMhD.js.map → header-settings-B8mLc03Q.js.map} +1 -1
  131. package/dist/_chunks/hover-card-Bcku1GQu.js +511 -0
  132. package/dist/_chunks/hover-card-Bcku1GQu.js.map +1 -0
  133. package/dist/_chunks/{icon-button-DA2CAGHZ.js → icon-button-8xqRnkdG.js} +2 -2
  134. package/dist/_chunks/{icon-button-DA2CAGHZ.js.map → icon-button-8xqRnkdG.js.map} +1 -1
  135. package/dist/_chunks/{icon-button-group-VCCod3Hz.js → icon-button-group-Dj6CRoYR.js} +2 -2
  136. package/dist/_chunks/{icon-button-group-VCCod3Hz.js.map → icon-button-group-Dj6CRoYR.js.map} +1 -1
  137. package/dist/_chunks/{icon-picker-DOa89vn3.js → icon-picker-CTWzlHJr.js} +2 -2
  138. package/dist/_chunks/{icon-picker-DOa89vn3.js.map → icon-picker-CTWzlHJr.js.map} +1 -1
  139. package/dist/_chunks/{info-tip-CADik6WN.js → info-tip-ey_Pon2y.js} +2 -2
  140. package/dist/_chunks/{info-tip-CADik6WN.js.map → info-tip-ey_Pon2y.js.map} +1 -1
  141. package/dist/_chunks/{key-value-pair-BIBdZBLg.js → key-value-pair-DczGb4yz.js} +42 -41
  142. package/dist/_chunks/key-value-pair-DczGb4yz.js.map +1 -0
  143. package/dist/_chunks/{link-cell-renderer-BEpMNtAa.js → link-cell-renderer-BNa8x6oJ.js} +6 -6
  144. package/dist/_chunks/{link-cell-renderer-BEpMNtAa.js.map → link-cell-renderer-BNa8x6oJ.js.map} +1 -1
  145. package/dist/_chunks/loader-circle-BECIU_8N.js +12 -0
  146. package/dist/_chunks/loader-circle-BECIU_8N.js.map +1 -0
  147. package/dist/_chunks/{locale-picker-CwFtqSkt.js → locale-picker-BLeHbFSc.js} +3 -3
  148. package/dist/_chunks/{locale-picker-CwFtqSkt.js.map → locale-picker-BLeHbFSc.js.map} +1 -1
  149. package/dist/_chunks/{marketplace-app-shell-CK_ND8Tr.js → marketplace-app-shell-BwH6Aruw.js} +6 -6
  150. package/dist/_chunks/{marketplace-app-shell-CK_ND8Tr.js.map → marketplace-app-shell-BwH6Aruw.js.map} +1 -1
  151. package/dist/_chunks/{message-card-BUMv16un.js → message-card-Dm5Xshup.js} +2 -2
  152. package/dist/_chunks/{message-card-BUMv16un.js.map → message-card-Dm5Xshup.js.map} +1 -1
  153. package/dist/_chunks/{message-tray-0zsv27xX.js → message-tray-BcLyaO-G.js} +3 -3
  154. package/dist/_chunks/{message-tray-0zsv27xX.js.map → message-tray-BcLyaO-G.js.map} +1 -1
  155. package/dist/_chunks/{multi-select-DYOvx2SJ.js → multi-select-CtPd7g4x.js} +15 -15
  156. package/dist/_chunks/{multi-select-DYOvx2SJ.js.map → multi-select-CtPd7g4x.js.map} +1 -1
  157. package/dist/_chunks/note-attachment-CwDir3kK.js +124 -0
  158. package/dist/_chunks/note-attachment-CwDir3kK.js.map +1 -0
  159. package/dist/_chunks/note-timeline-CXfSV3yX.js +231 -0
  160. package/dist/_chunks/note-timeline-CXfSV3yX.js.map +1 -0
  161. package/dist/_chunks/{notes-panel-BjLt-kiP.js → notes-panel-Co8D3uDd.js} +7 -7
  162. package/dist/_chunks/{notes-panel-BjLt-kiP.js.map → notes-panel-Co8D3uDd.js.map} +1 -1
  163. package/dist/_chunks/{notification-card-CtrzoTUO.js → notification-card-ChcK9Wat.js} +2 -2
  164. package/dist/_chunks/{notification-card-CtrzoTUO.js.map → notification-card-ChcK9Wat.js.map} +1 -1
  165. package/dist/_chunks/{notification-tray-BiRzXHDf.js → notification-tray-CJ8jOe-U.js} +4 -4
  166. package/dist/_chunks/{notification-tray-BiRzXHDf.js.map → notification-tray-CJ8jOe-U.js.map} +1 -1
  167. package/dist/_chunks/{operator-hero-aG_qyn6g.js → operator-hero-XIdwDmN2.js} +3 -3
  168. package/dist/_chunks/{operator-hero-aG_qyn6g.js.map → operator-hero-XIdwDmN2.js.map} +1 -1
  169. package/dist/_chunks/{optical-prescription-DUJOhKz_.js → optical-prescription-cphK41eP.js} +2 -2
  170. package/dist/_chunks/{optical-prescription-DUJOhKz_.js.map → optical-prescription-cphK41eP.js.map} +1 -1
  171. package/dist/_chunks/panel-header-D_mTdhUp.js +128 -0
  172. package/dist/_chunks/panel-header-D_mTdhUp.js.map +1 -0
  173. package/dist/_chunks/patient-details-f7SSXkTJ.js +371 -0
  174. package/dist/_chunks/patient-details-f7SSXkTJ.js.map +1 -0
  175. package/dist/_chunks/patient-field-row-BQZoP4m2.js +787 -0
  176. package/dist/_chunks/patient-field-row-BQZoP4m2.js.map +1 -0
  177. package/dist/_chunks/{patient-search-HeEUB-_X.js → patient-search-D08b6jgj.js} +2 -2
  178. package/dist/_chunks/{patient-search-HeEUB-_X.js.map → patient-search-D08b6jgj.js.map} +1 -1
  179. package/dist/_chunks/patient-summary-card-Bz7KdUin.js +533 -0
  180. package/dist/_chunks/patient-summary-card-Bz7KdUin.js.map +1 -0
  181. package/dist/_chunks/{payment-automation-upsell-DwQW2fRp.js → payment-automation-upsell-BLTdE2em.js} +50 -59
  182. package/dist/_chunks/payment-automation-upsell-BLTdE2em.js.map +1 -0
  183. package/dist/_chunks/{payment-form-Ds1I9KqB.js → payment-form-BHMDqW9C.js} +2 -2
  184. package/dist/_chunks/{payment-form-Ds1I9KqB.js.map → payment-form-BHMDqW9C.js.map} +1 -1
  185. package/dist/_chunks/{payment-request-card-DvEsWEkC.js → payment-request-card-BxcdvxKR.js} +6 -6
  186. package/dist/_chunks/{payment-request-card-DvEsWEkC.js.map → payment-request-card-BxcdvxKR.js.map} +1 -1
  187. package/dist/_chunks/{pdf-viewer-DUIsV9s5.js → pdf-viewer-DUKdn5iq.js} +2 -2
  188. package/dist/_chunks/{pdf-viewer-DUIsV9s5.js.map → pdf-viewer-DUKdn5iq.js.map} +1 -1
  189. package/dist/_chunks/{periodontal-chart-B9fphroR.js → periodontal-chart-BF_e3wZp.js} +2 -2
  190. package/dist/_chunks/{periodontal-chart-B9fphroR.js.map → periodontal-chart-BF_e3wZp.js.map} +1 -1
  191. package/dist/_chunks/{periodontal-chart-card-qEZPXj83.js → periodontal-chart-card-BJEuJuzh.js} +3 -3
  192. package/dist/_chunks/{periodontal-chart-card-qEZPXj83.js.map → periodontal-chart-card-BJEuJuzh.js.map} +1 -1
  193. package/dist/_chunks/{periodontal-diagnosis-lEwA8wqX.js → periodontal-diagnosis-C7pfPOct.js} +5 -5
  194. package/dist/_chunks/{periodontal-diagnosis-lEwA8wqX.js.map → periodontal-diagnosis-C7pfPOct.js.map} +1 -1
  195. package/dist/_chunks/{periodontal-risk-chart-0x7KVZjL.js → periodontal-risk-chart-B2tNFa15.js} +2 -2
  196. package/dist/_chunks/{periodontal-risk-chart-0x7KVZjL.js.map → periodontal-risk-chart-B2tNFa15.js.map} +1 -1
  197. package/dist/_chunks/{permission-matrix-BIJrGEmz.js → permission-matrix-VdAXjjHU.js} +3 -3
  198. package/dist/_chunks/{permission-matrix-BIJrGEmz.js.map → permission-matrix-VdAXjjHU.js.map} +1 -1
  199. package/dist/_chunks/{popover-DP6WCVwm.js → popover-DzR5QYxp.js} +24 -24
  200. package/dist/_chunks/{popover-DP6WCVwm.js.map → popover-DzR5QYxp.js.map} +1 -1
  201. package/dist/_chunks/{practice-profile-hero-DQyDvpJL.js → practice-profile-hero-DxoLlQr5.js} +2 -2
  202. package/dist/_chunks/{practice-profile-hero-DQyDvpJL.js.map → practice-profile-hero-DxoLlQr5.js.map} +1 -1
  203. package/dist/_chunks/{practice-results-kayDEorM.js → practice-results-DOcORTkP.js} +4 -4
  204. package/dist/_chunks/{practice-results-kayDEorM.js.map → practice-results-DOcORTkP.js.map} +1 -1
  205. package/dist/_chunks/{pregnancy-dating-n5j5dAKy.js → pregnancy-dating-nV1_S6w0.js} +6 -6
  206. package/dist/_chunks/{pregnancy-dating-n5j5dAKy.js.map → pregnancy-dating-nV1_S6w0.js.map} +1 -1
  207. package/dist/_chunks/{pregnancy-weight-gain-D5A8vPjj.js → pregnancy-weight-gain-tRecShAD.js} +4 -4
  208. package/dist/_chunks/{pregnancy-weight-gain-D5A8vPjj.js.map → pregnancy-weight-gain-tRecShAD.js.map} +1 -1
  209. package/dist/_chunks/{privacy-lock-CkAUo6Dz.js → privacy-lock-Be39vQUN.js} +2 -2
  210. package/dist/_chunks/{privacy-lock-CkAUo6Dz.js.map → privacy-lock-Be39vQUN.js.map} +1 -1
  211. package/dist/_chunks/{product-hub-panel-BScCotGD.js → product-hub-panel-C0TO69P7.js} +2 -2
  212. package/dist/_chunks/{product-hub-panel-BScCotGD.js.map → product-hub-panel-C0TO69P7.js.map} +1 -1
  213. package/dist/_chunks/{public-header.agent-kth2SdXn.js → public-header.agent-Bl1KFwSE.js} +3 -3
  214. package/dist/_chunks/{public-header.agent-kth2SdXn.js.map → public-header.agent-Bl1KFwSE.js.map} +1 -1
  215. package/dist/_chunks/{radio-DNRe6H_8.js → radio-6fml-pWk.js} +2 -2
  216. package/dist/_chunks/{radio-DNRe6H_8.js.map → radio-6fml-pWk.js.map} +1 -1
  217. package/dist/_chunks/{radio-group-DyVBgnA3.js → radio-group-CIjmyioi.js} +3 -3
  218. package/dist/_chunks/{radio-group-DyVBgnA3.js.map → radio-group-CIjmyioi.js.map} +1 -1
  219. package/dist/_chunks/{radiograph-panel.agent-o4jwEJPC.js → radiograph-panel.agent-k0G7JuoM.js} +6 -6
  220. package/dist/_chunks/{radiograph-panel.agent-o4jwEJPC.js.map → radiograph-panel.agent-k0G7JuoM.js.map} +1 -1
  221. package/dist/_chunks/{reviews-panel-BKHEfqVQ.js → reviews-panel-BaHZb_ai.js} +3 -3
  222. package/dist/_chunks/{reviews-panel-BKHEfqVQ.js.map → reviews-panel-BaHZb_ai.js.map} +1 -1
  223. package/dist/_chunks/{rich-text-editor-CCI-Y3DN.js → rich-text-editor-BTXlorm5.js} +7 -7
  224. package/dist/_chunks/{rich-text-editor-CCI-Y3DN.js.map → rich-text-editor-BTXlorm5.js.map} +1 -1
  225. package/dist/_chunks/{search-bar-CJj6sI9m.js → search-bar-CCmViqaa.js} +46 -46
  226. package/dist/_chunks/{search-bar-CJj6sI9m.js.map → search-bar-CCmViqaa.js.map} +1 -1
  227. package/dist/_chunks/section-card.agent-W18CHEgX.js +74 -0
  228. package/dist/_chunks/section-card.agent-W18CHEgX.js.map +1 -0
  229. package/dist/_chunks/{sheet-BSznOyJs.js → sheet-hm04DGFd.js} +2 -2
  230. package/dist/_chunks/{sheet-BSznOyJs.js.map → sheet-hm04DGFd.js.map} +1 -1
  231. package/dist/_chunks/{sign-document-jF4fZDJ5.js → sign-document-CRQuAn4W.js} +2 -2
  232. package/dist/_chunks/{sign-document-jF4fZDJ5.js.map → sign-document-CRQuAn4W.js.map} +1 -1
  233. package/dist/_chunks/{signature-request-vihDT8On.js → signature-request-Dej2g86d.js} +5 -5
  234. package/dist/_chunks/{signature-request-vihDT8On.js.map → signature-request-Dej2g86d.js.map} +1 -1
  235. package/dist/_chunks/{signature-status-chip-T5fyS-k9.js → signature-status-chip-D4NsrdeI.js} +3 -3
  236. package/dist/_chunks/{signature-status-chip-T5fyS-k9.js.map → signature-status-chip-D4NsrdeI.js.map} +1 -1
  237. package/dist/_chunks/{slot-grid-BuZOKfcd.js → slot-grid-8Ko6thzz.js} +2 -2
  238. package/dist/_chunks/{slot-grid-BuZOKfcd.js.map → slot-grid-8Ko6thzz.js.map} +1 -1
  239. package/dist/_chunks/{streaming-text-CvsjIQ7S.js → streaming-text-DjFqLSt_.js} +2 -2
  240. package/dist/_chunks/{streaming-text-CvsjIQ7S.js.map → streaming-text-DjFqLSt_.js.map} +1 -1
  241. package/dist/_chunks/{tab-bar-DvFJIQfL.js → tab-bar-rDkLiaA6.js} +2 -2
  242. package/dist/_chunks/{tab-bar-DvFJIQfL.js.map → tab-bar-rDkLiaA6.js.map} +1 -1
  243. package/dist/_chunks/{tag-3wgkwwDB.js → tag-Ci3xJPcH.js} +2 -2
  244. package/dist/_chunks/{tag-3wgkwwDB.js.map → tag-Ci3xJPcH.js.map} +1 -1
  245. package/dist/_chunks/{task-tray-COo-RlDv.js → task-tray-wl9eti6J.js} +2 -2
  246. package/dist/_chunks/{task-tray-COo-RlDv.js.map → task-tray-wl9eti6J.js.map} +1 -1
  247. package/dist/_chunks/{tasks-panel-DLKpSNoE.js → tasks-panel-BDNB7hsZ.js} +5 -5
  248. package/dist/_chunks/{tasks-panel-DLKpSNoE.js.map → tasks-panel-BDNB7hsZ.js.map} +1 -1
  249. package/dist/_chunks/{theme-toggle-uEwoKjl3.js → theme-toggle-CMz8YfC1.js} +3 -3
  250. package/dist/_chunks/{theme-toggle-uEwoKjl3.js.map → theme-toggle-CMz8YfC1.js.map} +1 -1
  251. package/dist/_chunks/{timeline-Bs9Erxlo.js → timeline-61AihzYz.js} +47 -47
  252. package/dist/_chunks/timeline-61AihzYz.js.map +1 -0
  253. package/dist/_chunks/{toast-YZz2sBzB.js → toast-8jqtbfAB.js} +2 -2
  254. package/dist/_chunks/{toast-YZz2sBzB.js.map → toast-8jqtbfAB.js.map} +1 -1
  255. package/dist/_chunks/{tool-rail-ONaV-Nzz.js → tool-rail-Bq5eiFMG.js} +3 -3
  256. package/dist/_chunks/{tool-rail-ONaV-Nzz.js.map → tool-rail-Bq5eiFMG.js.map} +1 -1
  257. package/dist/_chunks/{tooltip-DvmfrNvB.js → tooltip-Cp-PLePW.js} +41 -41
  258. package/dist/_chunks/tooltip-Cp-PLePW.js.map +1 -0
  259. package/dist/_chunks/{tooth-scheme-Qe7LO5Di.js → tooth-scheme-BWkYxxjR.js} +3 -3
  260. package/dist/_chunks/{tooth-scheme-Qe7LO5Di.js.map → tooth-scheme-BWkYxxjR.js.map} +1 -1
  261. package/dist/_chunks/{transaction-chip-DJCstquX.js → transaction-chip-Dth1nThY.js} +49 -48
  262. package/dist/_chunks/{transaction-chip-DJCstquX.js.map → transaction-chip-Dth1nThY.js.map} +1 -1
  263. package/dist/_chunks/{transcript-panel-BGkEhvHO.js → transcript-panel-u2HHxZB6.js} +2 -2
  264. package/dist/_chunks/{transcript-panel-BGkEhvHO.js.map → transcript-panel-u2HHxZB6.js.map} +1 -1
  265. package/dist/_chunks/user-x-DYszNtIg.js +45 -0
  266. package/dist/_chunks/user-x-DYszNtIg.js.map +1 -0
  267. package/dist/_chunks/{warning-stack-DQz0Jyir.js → warning-stack-BW5Dwb3z.js} +3 -3
  268. package/dist/_chunks/{warning-stack-DQz0Jyir.js.map → warning-stack-BW5Dwb3z.js.map} +1 -1
  269. package/dist/_chunks/{widget-picker-DvUkBemi.js → widget-picker-B1sj6uyf.js} +2 -2
  270. package/dist/_chunks/{widget-picker-DvUkBemi.js.map → widget-picker-B1sj6uyf.js.map} +1 -1
  271. package/dist/_chunks/{workflow-map-dNzJjBWG.js → workflow-map-D-LEni11.js} +5 -5
  272. package/dist/_chunks/{workflow-map-dNzJjBWG.js.map → workflow-map-D-LEni11.js.map} +1 -1
  273. package/dist/_chunks/workflow-status-xeaJTzD3.js +476 -0
  274. package/dist/_chunks/workflow-status-xeaJTzD3.js.map +1 -0
  275. package/dist/agent-catalog.json +185 -1
  276. package/dist/agent-i18n/en.json +27 -0
  277. package/dist/components/_shared/entity-card/entity-card.d.ts +44 -0
  278. package/dist/components/_shared/entity-card/entity-card.d.ts.map +1 -1
  279. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  280. package/dist/components/_shared/entity-card/index.d.ts.map +1 -1
  281. package/dist/components/_shared/note-attachment.d.ts +41 -0
  282. package/dist/components/_shared/note-attachment.d.ts.map +1 -0
  283. package/dist/components/_shared/note-markdown.d.ts +3 -0
  284. package/dist/components/_shared/note-markdown.d.ts.map +1 -0
  285. package/dist/components/_shared/patient-field-row.d.ts +40 -0
  286. package/dist/components/_shared/patient-field-row.d.ts.map +1 -0
  287. package/dist/components/agenda-card/index.js +1 -1
  288. package/dist/components/agenda-tray/index.js +1 -1
  289. package/dist/components/ai-consent-banner/index.js +1 -1
  290. package/dist/components/ai-prompt-input/index.js +1 -1
  291. package/dist/components/alert/index.js +1 -1
  292. package/dist/components/anamnesis-card/index.js +1 -1
  293. package/dist/components/anamnesis-summary-card/index.js +1 -1
  294. package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
  295. package/dist/components/appointment-card/index.js +2 -2
  296. package/dist/components/appointment-timeline/index.js +1 -1
  297. package/dist/components/audio-recorder/index.js +1 -1
  298. package/dist/components/badge/index.js +1 -1
  299. package/dist/components/bishop-score/index.js +1 -1
  300. package/dist/components/bmi-calculator/index.js +1 -1
  301. package/dist/components/booking/index.js +1 -1
  302. package/dist/components/button/index.js +1 -1
  303. package/dist/components/button-group/button-group.d.ts +20 -0
  304. package/dist/components/button-group/button-group.d.ts.map +1 -1
  305. package/dist/components/button-group/index.js +1 -1
  306. package/dist/components/calendar/index.js +1 -1
  307. package/dist/components/calendar-event-card/index.js +1 -1
  308. package/dist/components/care-plan-card/index.js +1 -1
  309. package/dist/components/care-plan-entry-card/index.js +1 -1
  310. package/dist/components/care-plan-header/index.js +1 -1
  311. package/dist/components/carousel/index.js +1 -1
  312. package/dist/components/chart/index.js +1 -1
  313. package/dist/components/chat-input/index.js +1 -1
  314. package/dist/components/chat-message/index.js +1 -1
  315. package/dist/components/checkbox/index.js +1 -1
  316. package/dist/components/checkbox-group/index.js +1 -1
  317. package/dist/components/clinical-note-card/clinical-note-card.d.ts +2 -34
  318. package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
  319. package/dist/components/clinical-note-card/index.js +1 -1
  320. package/dist/components/connection-status/index.js +1 -1
  321. package/dist/components/contact-profile-card/index.js +1 -1
  322. package/dist/components/control-room-rail/index.js +1 -1
  323. package/dist/components/counter/counter.d.ts +6 -0
  324. package/dist/components/counter/counter.d.ts.map +1 -1
  325. package/dist/components/counter/index.js +1 -1
  326. package/dist/components/cycle-calculator/index.js +1 -1
  327. package/dist/components/dashboard-grid/index.js +1 -1
  328. package/dist/components/data-table/index.js +4 -4
  329. package/dist/components/data-table-tabs/index.js +1 -1
  330. package/dist/components/date-picker/index.js +1 -1
  331. package/dist/components/dependent-selector/index.js +1 -1
  332. package/dist/components/description-list/index.js +1 -1
  333. package/dist/components/document-preview/index.js +1 -1
  334. package/dist/components/document-scanner/index.js +1 -1
  335. package/dist/components/due-date-calculator/index.js +2 -2
  336. package/dist/components/editor-overlay/index.js +1 -1
  337. package/dist/components/entity-summary/index.js +1 -1
  338. package/dist/components/face-scheme/index.js +1 -1
  339. package/dist/components/fetal-weight/index.js +1 -1
  340. package/dist/components/field-array/index.js +1 -1
  341. package/dist/components/file-manager/index.js +1 -1
  342. package/dist/components/file-upload/index.js +1 -1
  343. package/dist/components/fiscal-code-input/index.js +1 -1
  344. package/dist/components/freemium-paywall/index.js +1 -1
  345. package/dist/components/gestational-age-calculator/index.js +1 -1
  346. package/dist/components/hcg-doubling/index.js +1 -1
  347. package/dist/components/header/index.js +1 -1
  348. package/dist/components/header-settings/index.js +1 -1
  349. package/dist/components/hover-card/hover-card.agent.d.ts +4 -0
  350. package/dist/components/hover-card/hover-card.agent.d.ts.map +1 -0
  351. package/dist/components/hover-card/hover-card.d.ts +80 -0
  352. package/dist/components/hover-card/hover-card.d.ts.map +1 -0
  353. package/dist/components/hover-card/index.d.ts +4 -0
  354. package/dist/components/hover-card/index.d.ts.map +1 -0
  355. package/dist/components/hover-card/index.js +6 -0
  356. package/dist/components/hover-card/index.js.map +1 -0
  357. package/dist/components/icon-button/index.js +1 -1
  358. package/dist/components/icon-button-group/index.js +1 -1
  359. package/dist/components/icon-picker/index.js +1 -1
  360. package/dist/components/index.d.ts +4 -0
  361. package/dist/components/index.d.ts.map +1 -1
  362. package/dist/components/info-tip/index.js +1 -1
  363. package/dist/components/key-value-pair/index.js +1 -1
  364. package/dist/components/key-value-pair/key-value-pair.d.ts +8 -1
  365. package/dist/components/key-value-pair/key-value-pair.d.ts.map +1 -1
  366. package/dist/components/locale-picker/index.js +1 -1
  367. package/dist/components/message-card/index.js +1 -1
  368. package/dist/components/message-tray/index.js +1 -1
  369. package/dist/components/multi-select/index.js +1 -1
  370. package/dist/components/note-timeline/index.d.ts +4 -0
  371. package/dist/components/note-timeline/index.d.ts.map +1 -0
  372. package/dist/components/note-timeline/index.js +6 -0
  373. package/dist/components/note-timeline/index.js.map +1 -0
  374. package/dist/components/note-timeline/note-timeline.agent.d.ts +4 -0
  375. package/dist/components/note-timeline/note-timeline.agent.d.ts.map +1 -0
  376. package/dist/components/note-timeline/note-timeline.d.ts +77 -0
  377. package/dist/components/note-timeline/note-timeline.d.ts.map +1 -0
  378. package/dist/components/notes-panel/index.js +1 -1
  379. package/dist/components/notification-card/index.js +1 -1
  380. package/dist/components/notification-tray/index.js +1 -1
  381. package/dist/components/operator-hero/index.js +1 -1
  382. package/dist/components/optical-prescription/index.js +1 -1
  383. package/dist/components/panel-header/index.js +1 -1
  384. package/dist/components/panel-header/panel-header.d.ts +7 -0
  385. package/dist/components/panel-header/panel-header.d.ts.map +1 -1
  386. package/dist/components/patient-details/index.js +1 -1
  387. package/dist/components/patient-details/patient-details.d.ts.map +1 -1
  388. package/dist/components/patient-search/index.js +1 -1
  389. package/dist/components/patient-summary-card/index.js +1 -1
  390. package/dist/components/patient-summary-card/patient-summary-card.d.ts +54 -0
  391. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  392. package/dist/components/patient-table/index.js +1 -1
  393. package/dist/components/payment-card/index.js +1 -1
  394. package/dist/components/payment-form/index.js +1 -1
  395. package/dist/components/pdf-viewer/index.js +1 -1
  396. package/dist/components/periodontal-chart/index.js +1 -1
  397. package/dist/components/periodontal-chart-card/index.js +1 -1
  398. package/dist/components/periodontal-diagnosis/index.js +1 -1
  399. package/dist/components/periodontal-risk-chart/index.js +1 -1
  400. package/dist/components/permission-matrix/index.js +1 -1
  401. package/dist/components/popover/index.js +1 -1
  402. package/dist/components/practice-profile-hero/index.js +1 -1
  403. package/dist/components/practice-results/index.js +1 -1
  404. package/dist/components/pregnancy-dating/index.js +1 -1
  405. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  406. package/dist/components/privacy-lock/index.js +1 -1
  407. package/dist/components/product-hub-tray/index.js +1 -1
  408. package/dist/components/public-header/index.js +1 -1
  409. package/dist/components/radio/index.js +1 -1
  410. package/dist/components/radio-group/index.js +2 -2
  411. package/dist/components/radiograph-panel/index.js +1 -1
  412. package/dist/components/reviews-panel/index.js +1 -1
  413. package/dist/components/rich-text-editor/index.js +1 -1
  414. package/dist/components/search-bar/index.js +1 -1
  415. package/dist/components/section-card/index.d.ts +4 -0
  416. package/dist/components/section-card/index.d.ts.map +1 -0
  417. package/dist/components/section-card/index.js +6 -0
  418. package/dist/components/section-card/index.js.map +1 -0
  419. package/dist/components/section-card/section-card.agent.d.ts +3 -0
  420. package/dist/components/section-card/section-card.agent.d.ts.map +1 -0
  421. package/dist/components/section-card/section-card.d.ts +30 -0
  422. package/dist/components/section-card/section-card.d.ts.map +1 -0
  423. package/dist/components/sheet/index.js +1 -1
  424. package/dist/components/sign-document/index.js +1 -1
  425. package/dist/components/signature-status-chip/index.js +1 -1
  426. package/dist/components/slot-grid/index.js +1 -1
  427. package/dist/components/streaming-text/index.js +1 -1
  428. package/dist/components/tab-bar/index.js +1 -1
  429. package/dist/components/tag/index.js +1 -1
  430. package/dist/components/task-tray/index.js +1 -1
  431. package/dist/components/tasks-panel/index.js +1 -1
  432. package/dist/components/theme-toggle/index.js +1 -1
  433. package/dist/components/timeline/index.js +1 -1
  434. package/dist/components/timeline/timeline.d.ts +1 -1
  435. package/dist/components/timeline/timeline.d.ts.map +1 -1
  436. package/dist/components/toast/index.js +1 -1
  437. package/dist/components/tool-rail/index.js +1 -1
  438. package/dist/components/tooltip/index.js +1 -1
  439. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  440. package/dist/components/tooth-scheme/index.js +1 -1
  441. package/dist/components/transaction-chip/index.js +1 -1
  442. package/dist/components/transaction-chip/transaction-chip.d.ts +11 -0
  443. package/dist/components/transaction-chip/transaction-chip.d.ts.map +1 -1
  444. package/dist/components/transcript-panel/index.js +1 -1
  445. package/dist/components/warning-stack/index.js +1 -1
  446. package/dist/components/widget-picker/index.js +1 -1
  447. package/dist/components/workflow/index.js +1 -1
  448. package/dist/components/workflow-status/index.d.ts +4 -0
  449. package/dist/components/workflow-status/index.d.ts.map +1 -0
  450. package/dist/components/workflow-status/index.js +7 -0
  451. package/dist/components/workflow-status/index.js.map +1 -0
  452. package/dist/components/workflow-status/workflow-status.agent.d.ts +4 -0
  453. package/dist/components/workflow-status/workflow-status.agent.d.ts.map +1 -0
  454. package/dist/components/workflow-status/workflow-status.d.ts +52 -0
  455. package/dist/components/workflow-status/workflow-status.d.ts.map +1 -0
  456. package/dist/host-compat.css +4 -1
  457. package/dist/i18n/locales/ar.d.ts +12 -0
  458. package/dist/i18n/locales/ar.d.ts.map +1 -1
  459. package/dist/i18n/locales/ar.js +12 -0
  460. package/dist/i18n/locales/ar.js.map +1 -1
  461. package/dist/i18n/locales/de.d.ts +12 -0
  462. package/dist/i18n/locales/de.d.ts.map +1 -1
  463. package/dist/i18n/locales/de.js +12 -0
  464. package/dist/i18n/locales/de.js.map +1 -1
  465. package/dist/i18n/locales/el.d.ts +12 -0
  466. package/dist/i18n/locales/el.d.ts.map +1 -1
  467. package/dist/i18n/locales/el.js +12 -0
  468. package/dist/i18n/locales/el.js.map +1 -1
  469. package/dist/i18n/locales/en.d.ts +12 -0
  470. package/dist/i18n/locales/en.d.ts.map +1 -1
  471. package/dist/i18n/locales/en.js +12 -0
  472. package/dist/i18n/locales/en.js.map +1 -1
  473. package/dist/i18n/locales/es.d.ts +12 -0
  474. package/dist/i18n/locales/es.d.ts.map +1 -1
  475. package/dist/i18n/locales/es.js +12 -0
  476. package/dist/i18n/locales/es.js.map +1 -1
  477. package/dist/i18n/locales/fr.d.ts +12 -0
  478. package/dist/i18n/locales/fr.d.ts.map +1 -1
  479. package/dist/i18n/locales/fr.js +12 -0
  480. package/dist/i18n/locales/fr.js.map +1 -1
  481. package/dist/i18n/locales/hi.d.ts +12 -0
  482. package/dist/i18n/locales/hi.d.ts.map +1 -1
  483. package/dist/i18n/locales/hi.js +12 -0
  484. package/dist/i18n/locales/hi.js.map +1 -1
  485. package/dist/i18n/locales/it.d.ts +12 -0
  486. package/dist/i18n/locales/it.d.ts.map +1 -1
  487. package/dist/i18n/locales/it.js +12 -0
  488. package/dist/i18n/locales/it.js.map +1 -1
  489. package/dist/i18n/locales/ja.d.ts +12 -0
  490. package/dist/i18n/locales/ja.d.ts.map +1 -1
  491. package/dist/i18n/locales/ja.js +12 -0
  492. package/dist/i18n/locales/ja.js.map +1 -1
  493. package/dist/i18n/locales/nl.d.ts +12 -0
  494. package/dist/i18n/locales/nl.d.ts.map +1 -1
  495. package/dist/i18n/locales/nl.js +12 -0
  496. package/dist/i18n/locales/nl.js.map +1 -1
  497. package/dist/i18n/locales/pl.d.ts +12 -0
  498. package/dist/i18n/locales/pl.d.ts.map +1 -1
  499. package/dist/i18n/locales/pl.js +12 -0
  500. package/dist/i18n/locales/pl.js.map +1 -1
  501. package/dist/i18n/locales/pt.d.ts +12 -0
  502. package/dist/i18n/locales/pt.d.ts.map +1 -1
  503. package/dist/i18n/locales/pt.js +12 -0
  504. package/dist/i18n/locales/pt.js.map +1 -1
  505. package/dist/i18n/locales/ro.d.ts +12 -0
  506. package/dist/i18n/locales/ro.d.ts.map +1 -1
  507. package/dist/i18n/locales/ro.js +12 -0
  508. package/dist/i18n/locales/ro.js.map +1 -1
  509. package/dist/i18n/locales/ru.d.ts +12 -0
  510. package/dist/i18n/locales/ru.d.ts.map +1 -1
  511. package/dist/i18n/locales/ru.js +12 -0
  512. package/dist/i18n/locales/ru.js.map +1 -1
  513. package/dist/i18n/locales/sq.d.ts +12 -0
  514. package/dist/i18n/locales/sq.d.ts.map +1 -1
  515. package/dist/i18n/locales/sq.js +12 -0
  516. package/dist/i18n/locales/sq.js.map +1 -1
  517. package/dist/i18n/locales/sv.d.ts +12 -0
  518. package/dist/i18n/locales/sv.d.ts.map +1 -1
  519. package/dist/i18n/locales/sv.js +12 -0
  520. package/dist/i18n/locales/sv.js.map +1 -1
  521. package/dist/i18n/locales/tr.d.ts +12 -0
  522. package/dist/i18n/locales/tr.d.ts.map +1 -1
  523. package/dist/i18n/locales/tr.js +12 -0
  524. package/dist/i18n/locales/tr.js.map +1 -1
  525. package/dist/i18n/locales/zh.d.ts +12 -0
  526. package/dist/i18n/locales/zh.d.ts.map +1 -1
  527. package/dist/i18n/locales/zh.js +12 -0
  528. package/dist/i18n/locales/zh.js.map +1 -1
  529. package/dist/index.js +929 -916
  530. package/dist/index.js.map +1 -1
  531. package/dist/locales/ar.json +12 -0
  532. package/dist/locales/de.json +12 -0
  533. package/dist/locales/el.json +12 -0
  534. package/dist/locales/en.json +12 -0
  535. package/dist/locales/es.json +12 -0
  536. package/dist/locales/fr.json +12 -0
  537. package/dist/locales/hi.json +12 -0
  538. package/dist/locales/it.json +12 -0
  539. package/dist/locales/ja.json +12 -0
  540. package/dist/locales/nl.json +12 -0
  541. package/dist/locales/pl.json +12 -0
  542. package/dist/locales/pt.json +12 -0
  543. package/dist/locales/ro.json +12 -0
  544. package/dist/locales/ru.json +12 -0
  545. package/dist/locales/sq.json +12 -0
  546. package/dist/locales/sv.json +12 -0
  547. package/dist/locales/tr.json +12 -0
  548. package/dist/locales/zh.json +12 -0
  549. package/dist/patterns/alia-assistant/index.js +1 -1
  550. package/dist/patterns/anamnesis/index.js +1 -1
  551. package/dist/patterns/calendar/calendar.model.d.ts +2 -0
  552. package/dist/patterns/calendar/calendar.model.d.ts.map +1 -1
  553. package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
  554. package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
  555. package/dist/patterns/calendar/index.js +1 -1
  556. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  557. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  558. package/dist/patterns/signature-request/index.js +1 -1
  559. package/dist/tokens.css +1 -1
  560. package/package.json +17 -1
  561. package/dist/_chunks/appointment-card-Bh_CIlc6.js.map +0 -1
  562. package/dist/_chunks/button-group-CaxRJsNG.js +0 -289
  563. package/dist/_chunks/button-group-CaxRJsNG.js.map +0 -1
  564. package/dist/_chunks/calendar-event-card-DSh-69HT.js.map +0 -1
  565. package/dist/_chunks/calendar-workspace-UywR5gUl.js.map +0 -1
  566. package/dist/_chunks/clinical-note-card-CTRzmqvv.js +0 -438
  567. package/dist/_chunks/clinical-note-card-CTRzmqvv.js.map +0 -1
  568. package/dist/_chunks/counter-dRlTNC_y.js.map +0 -1
  569. package/dist/_chunks/entity-card-9_62gY7l.js.map +0 -1
  570. package/dist/_chunks/field-value-BetdWMA2.js +0 -384
  571. package/dist/_chunks/field-value-BetdWMA2.js.map +0 -1
  572. package/dist/_chunks/file-upload-CwxdqkMK.js.map +0 -1
  573. package/dist/_chunks/key-value-pair-BIBdZBLg.js.map +0 -1
  574. package/dist/_chunks/panel-header-D313n_9-.js +0 -105
  575. package/dist/_chunks/panel-header-D313n_9-.js.map +0 -1
  576. package/dist/_chunks/patient-details-BGiawUHd.js +0 -760
  577. package/dist/_chunks/patient-details-BGiawUHd.js.map +0 -1
  578. package/dist/_chunks/patient-summary-card--CT_gbaQ.js +0 -454
  579. package/dist/_chunks/patient-summary-card--CT_gbaQ.js.map +0 -1
  580. package/dist/_chunks/payment-automation-upsell-DwQW2fRp.js.map +0 -1
  581. package/dist/_chunks/timeline-Bs9Erxlo.js.map +0 -1
  582. package/dist/_chunks/tooltip-DvmfrNvB.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"document-preview-BrhMHNh8.js","sources":["../../node_modules/lucide-react/dist/esm/icons/files.mjs","../../src/components/document-preview/document-preview.agent.ts","../../src/components/document-preview/document-preview.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8\", key: \"14sh0y\" }],\n [\n \"path\",\n {\n d: \"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z\",\n key: \"1970lx\"\n }\n ],\n [\"path\", { d: \"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1\", key: \"l4dndm\" }]\n];\nconst Files = createLucideIcon(\"files\", __iconNode);\n\nexport { __iconNode, Files as default };\n//# sourceMappingURL=files.mjs.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — DocumentPreview. */\n/* */\n/* A passive, read-only viewer, so it declares no interactive */\n/* capabilities. The always-on state slot carries only the structural */\n/* render `kind` (pdf / image / metadata / empty) — never the document */\n/* name. */\n/* */\n/* PHI rule (PRS §26 §7): the document display name can identify a */\n/* patient (e.g. \"Rossi Maria — referto 2026.pdf\"). It renders as text */\n/* (fine) but the only name-returning read is the deliberate get_name */\n/* action with `safety: 'phi'`, so the host gates it behind confirm + */\n/* audit. No name is ever emitted in a data-* hook. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { DocumentPreviewHandle } from './document-preview';\n\nexport const documentPreviewAgent: AgentAdapter<DocumentPreviewHandle> = {\n id: 'document-preview',\n capabilities: [],\n state: {\n kind: {\n type: \"'pdf' | 'image' | 'metadata' | 'empty'\",\n descriptionKey: 'ui.agent.documentPreview.state.kind',\n description:\n 'Which render branch is active: pdf, image, metadata (no inline preview), or empty (no document). Structural — never the document name.',\n read: (handle) => handle.getKind(),\n },\n },\n actions: {\n get_name: {\n // phi (not read): resolves the document display name, which can identify\n // patients. PRS §26 — phi outranks read so the host gates it behind\n // stricter confirm + audit. The always-on kind slot stays name-free.\n safety: 'phi',\n returns: 'string | undefined',\n returnsSchema: { type: ['string', 'null'] },\n idempotent: true,\n descriptionKey: 'ui.agent.documentPreview.actions.getName',\n description:\n 'Read the display name of the previewed document. May identify a patient (PHI).',\n invoke: (handle) => handle.getName(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'document-preview',\n description: 'Marks the DocumentPreview region.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","/* -------------------------------------------------------------------- */\n/* DocumentPreview — a standalone, reusable document viewer. */\n/* */\n/* Decoupled from FileManager: it takes primitive props (name, mimeType, */\n/* src, metadata) rather than a FileManagerItem, so signing, the patient */\n/* portal, and the Control Room rail can all reuse it. The body is an */\n/* elevated Card: a bounded preview viewport (PDF → kit PDFViewer; */\n/* image/* → <img>; otherwise a MIME-icon placeholder) above an always-on */\n/* Details block (badges + every structural field the host supplies), so */\n/* the metadata is never dropped when a real preview renders. No name → */\n/* EmptyState. */\n/* */\n/* Title lives in the canonical PanelHeader (the same header every rail */\n/* panel adopts) so the Control Room rail can inject its pin / close */\n/* controls into it. Pass `documents` (≥ 2) to preview a SELECTION as */\n/* tabs — one tab per document, the active one shown below; a single */\n/* entry (or the single-document props) renders without a tab strip. */\n/* */\n/* The root is a `<section>` (region landmark) so the PanelHeader's */\n/* <header> is scoped and never exposed as a page banner — the same */\n/* shape RadiographPanel uses. It is also a keyboard-focusable scroll */\n/* region (tabIndex 0 + labelled focus ring). */\n/* */\n/* PHI: the visible name renders as text (fine), but the only */\n/* name-returning handle read is surfaced by document-preview.agent.ts */\n/* as a `safety: 'phi'` action — never in always-on state, never in a */\n/* data-* hook. In tabbed mode the handle reflects the ACTIVE tab. */\n/* -------------------------------------------------------------------- */\n\nimport {\n forwardRef,\n Fragment,\n useImperativeHandle,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n File as FileIcon,\n FileImage,\n FileText,\n Files,\n type LucideIcon,\n} from 'lucide-react';\nimport { Badge } from '../badge';\nimport { Card } from '../card';\nimport { EmptyState } from '../empty-state';\nimport { PanelHeader } from '../panel-header';\nimport { PDFViewer } from '../pdf-viewer';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../tabs';\nimport { useAgentRegistration } from '../../agent';\nimport { documentPreviewAgent } from './document-preview.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type DocumentPreviewSignatureStatus = 'none' | 'pending' | 'signed';\n\n/** Which render branch DocumentPreview is showing — structural, never PHI. */\nexport type DocumentPreviewKind = 'pdf' | 'image' | 'metadata' | 'empty';\n\nexport interface DocumentPreviewMetadata {\n /** Size in bytes. */\n size?: number;\n /** Display name of whoever created the document (host-supplied). */\n createdBy?: string;\n /** ISO 8601 timestamp the document was created. */\n createdAt?: string;\n /** ISO 8601 timestamp of the last modification. */\n updatedAt?: string;\n /** ISO 8601 timestamp a signature was requested from the patient. */\n signatureRequestedAt?: string;\n /** ISO 8601 timestamp the document was signed. */\n signedAt?: string;\n /** ISO 8601 timestamp the document was shared with the patient. */\n sharedAt?: string;\n /** Open document-type category (non-identifying), e.g. `'xray'`. */\n documentType?: string;\n /** Signature workflow state. */\n signatureStatus?: DocumentPreviewSignatureStatus;\n /** Clinical-document flag (host-defined semantics). */\n clinical?: boolean;\n /** ISO 8601 expiry (e.g. identification documents). */\n expiresAt?: string;\n}\n\n/**\n * A single previewable document. In multi-document mode each becomes a tab;\n * `id` is the tab value (never a patient name) and `name` is the tab label.\n */\nexport interface DocumentPreviewDocument {\n /** Stable, non-identifying id. Emitted as the tab value — never PHI. */\n id: string;\n /** Display name (PHI). Also the tab label in multi-document mode. */\n name: string;\n /** MIME type — drives the render branch and the fallback icon. */\n mimeType?: string;\n /** Resolved URL / data URI for the PDF or image viewer. */\n src?: string;\n /** Structural metadata rendered by the metadata-card branch. */\n metadata?: DocumentPreviewMetadata;\n}\n\nexport interface DocumentPreviewProps extends VariantProps<\n typeof documentPreviewVariants\n> {\n /** Opaque instance id — emitted as `data-component-id` for the agent registry. */\n id?: string;\n /** Display name. Absent (and no `documents`) → empty state. PHI. */\n name?: string;\n /** MIME type — drives the render branch and the fallback icon. */\n mimeType?: string;\n /** Resolved URL / data URI for the PDF or image viewer. The host owns auth. */\n src?: string;\n /** Structural metadata rendered by the metadata-card branch. */\n metadata?: DocumentPreviewMetadata;\n /**\n * Multiple documents to preview as tabs — e.g. a multi-row selection. Two\n * or more render a tab per document (label = name) with the active one\n * shown below; a single entry renders without a tab strip. When non-empty\n * this takes precedence over the single-document props. Names are PHI.\n */\n documents?: DocumentPreviewDocument[];\n className?: string;\n}\n\nexport interface DocumentPreviewHandle {\n /** Which render branch is active — structural, safe for always-on reads. */\n getKind: () => DocumentPreviewKind;\n /** The active document's display name (PHI). Surfaced by the adapter as a `phi` action. */\n getName: () => string | undefined;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst documentPreviewVariants = cva(\n [\n 'ds:flex ds:h-full ds:min-h-0 ds:min-w-0 ds:flex-col ds:overflow-auto',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring',\n ].join(' '),\n);\n\nconst SIGNATURE_VARIANT: Record<\n Exclude<DocumentPreviewSignatureStatus, 'none'>,\n 'success' | 'warning'\n> = {\n signed: 'success',\n pending: 'warning',\n};\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction resolveKind(\n name: string | undefined,\n mimeType: string | undefined,\n src: string | undefined,\n): DocumentPreviewKind {\n if (!name) return 'empty';\n const mime = mimeType ?? '';\n if (mime === 'application/pdf' && src) return 'pdf';\n if (mime.startsWith('image/') && src) return 'image';\n return 'metadata';\n}\n\n/** Fallback icon for the header / metadata card — a small MIME-family lookup. */\nfunction iconForMime(mimeType: string | undefined): LucideIcon {\n const mime = mimeType ?? '';\n if (mime.startsWith('image/')) return FileImage;\n if (\n mime === 'application/pdf' ||\n mime.startsWith('text/') ||\n mime.includes('word')\n ) {\n return FileText;\n }\n return FileIcon;\n}\n\nconst UNIT_KEYS = [\n 'documentPreview.units.bytes',\n 'documentPreview.units.kilobytes',\n 'documentPreview.units.megabytes',\n 'documentPreview.units.gigabytes',\n] as const;\n\nconst UNIT_FALLBACKS = ['B', 'KB', 'MB', 'GB'] as const;\n\nfunction formatBytes(\n bytes: number,\n locale: string,\n t: (key: string, fallback: string) => string,\n): string {\n let value = bytes;\n let unitIndex = 0;\n while (value >= 1024 && unitIndex < UNIT_FALLBACKS.length - 1) {\n value /= 1024;\n unitIndex++;\n }\n const formatted = new Intl.NumberFormat(locale, {\n maximumFractionDigits: unitIndex === 0 ? 0 : 1,\n }).format(value);\n return `${formatted} ${t(UNIT_KEYS[unitIndex], UNIT_FALLBACKS[unitIndex])}`;\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const DocumentPreview = forwardRef<\n DocumentPreviewHandle,\n DocumentPreviewProps\n>(({ id, name, mimeType, src, metadata, documents, className }, ref) => {\n const { t, i18n } = useTranslation();\n\n // Resolve the document list: an explicit `documents` list wins; otherwise\n // the single-document props form a one-item list; nothing → empty. The\n // synthetic single-doc id is never emitted as a tab value (a lone doc\n // renders without a tab strip), so falling back to the name is PHI-safe.\n const docs = useMemo<DocumentPreviewDocument[]>(() => {\n if (documents && documents.length > 0) return documents;\n if (name) return [{ id: id ?? name, name, mimeType, src, metadata }];\n return [];\n }, [documents, id, name, mimeType, src, metadata]);\n\n const isTabbed = docs.length > 1;\n\n // Active tab (multi mode). When the current id is stale after the selection\n // changes we fall back to the first document — no reconciling effect needed.\n const [activeId, setActiveId] = useState<string | undefined>(undefined);\n const activeDoc = docs.find((doc) => doc.id === activeId) ?? docs[0];\n\n const handle = useMemo<DocumentPreviewHandle>(\n () => ({\n getKind: () =>\n activeDoc\n ? resolveKind(activeDoc.name, activeDoc.mimeType, activeDoc.src)\n : 'empty',\n getName: () => activeDoc?.name,\n }),\n [activeDoc],\n );\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(documentPreviewAgent, handle, id);\n\n /* The per-document body — an elevated Card with a bounded preview viewport\n (pdf / image / placeholder) above an always-on Details block. The title is\n NOT rendered here (the PanelHeader owns it, or the tab label in multi mode). */\n const renderBody = (doc: DocumentPreviewDocument): ReactNode => {\n const kind = resolveKind(doc.name, doc.mimeType, doc.src);\n const meta = doc.metadata;\n const PlaceholderIcon = iconForMime(doc.mimeType);\n\n // Preview viewport — the rendered document, or a MIME-icon placeholder when\n // no source resolves. Bounded to a consistent aspect so the Details below\n // stay reachable in the rail.\n let viewport: ReactNode;\n if (kind === 'pdf' && doc.src) {\n viewport = (\n <PDFViewer\n src={doc.src}\n toolbarVariant=\"minimal\"\n // Name the embedded viewer after the document so it stays distinct\n // from the surrounding \"Document preview\" region (nested landmarks\n // must not share an accessible name). Mirrors visible header text.\n ariaLabel={doc.name}\n className=\"ds:h-full ds:w-full\"\n />\n );\n } else if (kind === 'image' && doc.src) {\n viewport = (\n <img\n src={doc.src}\n alt={t('documentPreview.imageAlt', 'Preview of {{name}}', {\n name: doc.name,\n })}\n className=\"ds:max-h-full ds:max-w-full ds:object-contain\"\n />\n );\n } else {\n viewport = (\n <span className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-sm)] ds:text-muted-foreground\">\n <PlaceholderIcon aria-hidden=\"true\" className=\"ds:size-10\" />\n <span className=\"type-body-sm\">\n {t('documentPreview.noPreview', 'No preview available.')}\n </span>\n </span>\n );\n }\n\n // Badges: type / clinical / signature status.\n const status = meta?.signatureStatus;\n const hasBadges =\n Boolean(meta?.documentType) ||\n Boolean(meta?.clinical) ||\n (status !== undefined && status !== 'none');\n\n // Detail rows — every structural field the host supplies, so nothing is\n // dropped when a real preview renders. Only present fields render a row.\n const fmtDate = (iso: string): string =>\n new Intl.DateTimeFormat(i18n.language, { dateStyle: 'medium' }).format(\n new Date(iso),\n );\n const rows: Array<{ key: string; label: string; value: string }> = [];\n if (meta?.createdBy)\n rows.push({\n key: 'createdBy',\n label: t('documentPreview.fields.createdBy', 'Created by'),\n value: meta.createdBy,\n });\n if (meta?.createdAt)\n rows.push({\n key: 'created',\n label: t('documentPreview.fields.created', 'Created'),\n value: fmtDate(meta.createdAt),\n });\n if (meta?.updatedAt)\n rows.push({\n key: 'modified',\n label: t('documentPreview.fields.modified', 'Modified'),\n value: fmtDate(meta.updatedAt),\n });\n if (meta?.signatureRequestedAt)\n rows.push({\n key: 'signatureRequested',\n label: t(\n 'documentPreview.fields.signatureRequested',\n 'Signature requested',\n ),\n value: fmtDate(meta.signatureRequestedAt),\n });\n if (meta?.signedAt)\n rows.push({\n key: 'signed',\n label: t('documentPreview.fields.signed', 'Signed'),\n value: fmtDate(meta.signedAt),\n });\n if (meta?.sharedAt)\n rows.push({\n key: 'sharedWithPatient',\n label: t(\n 'documentPreview.fields.sharedWithPatient',\n 'Shared with patient',\n ),\n value: fmtDate(meta.sharedAt),\n });\n if (meta?.size !== undefined)\n rows.push({\n key: 'size',\n label: t('documentPreview.fields.size', 'Size'),\n value: formatBytes(meta.size, i18n.language, t),\n });\n if (meta?.expiresAt)\n rows.push({\n key: 'expires',\n label: t('documentPreview.fields.expires', 'Expires'),\n value: fmtDate(meta.expiresAt),\n });\n\n const hasDetails = hasBadges || rows.length > 0;\n\n return (\n <div className=\"ds:p-[var(--spacing-md)]\">\n <Card\n variant=\"elevated\"\n className=\"ds:flex ds:flex-col ds:overflow-hidden\"\n >\n <div className=\"ds:flex ds:aspect-[4/3] ds:min-h-0 ds:items-center ds:justify-center ds:overflow-hidden ds:border-b ds:border-[color:var(--card-border)] ds:bg-muted\">\n {viewport}\n </div>\n {hasDetails && (\n <Card.Body className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <h3 className=\"type-eyebrow ds:m-0 ds:text-muted-foreground\">\n {t('documentPreview.detailsTitle', 'Details')}\n </h3>\n {hasBadges && (\n <span className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]\">\n {meta?.documentType && (\n <Badge variant=\"neutral\" size=\"sm\">\n {meta.documentType}\n </Badge>\n )}\n {meta?.clinical && (\n <Badge variant=\"info\" size=\"sm\">\n {t('documentPreview.clinical', 'Clinical')}\n </Badge>\n )}\n {status && status !== 'none' && (\n <Badge\n variant={SIGNATURE_VARIANT[status]}\n size=\"sm\"\n withDot\n >\n {t(`documentPreview.signature.${status}`, status)}\n </Badge>\n )}\n </span>\n )}\n {rows.length > 0 && (\n <dl className=\"ds:grid ds:grid-cols-[auto_1fr] ds:gap-x-[var(--spacing-md)] ds:gap-y-[var(--spacing-xs)] type-body-sm\">\n {rows.map((row) => (\n <Fragment key={row.key}>\n <dt className=\"ds:text-muted-foreground\">{row.label}</dt>\n <dd className=\"ds:m-0\">{row.value}</dd>\n </Fragment>\n ))}\n </dl>\n )}\n </Card.Body>\n )}\n </Card>\n </div>\n );\n };\n\n // Header: a MIME icon + the document name for a single doc; a Files glyph +\n // a count badge (RadiographPanel's title-plus-badge shape) when tabbed.\n const HeaderMimeIcon = iconForMime(activeDoc?.mimeType);\n const headerIcon = isTabbed ? (\n <Files aria-hidden=\"true\" />\n ) : (\n <HeaderMimeIcon aria-hidden=\"true\" />\n );\n const headerTitle: ReactNode = isTabbed ? (\n <>\n {t('documentPreview.multiTitle', 'Documents')}\n <Badge variant=\"neutral\" size=\"sm\">\n {docs.length}\n </Badge>\n </>\n ) : (\n activeDoc?.name\n );\n\n let content: ReactNode;\n if (docs.length === 0) {\n content = (\n <EmptyState\n variant=\"first-use\"\n size=\"sm\"\n title={t('documentPreview.emptyTitle', 'No document selected')}\n description={t(\n 'documentPreview.emptyDescription',\n 'Select a document to preview it here.',\n )}\n />\n );\n } else if (isTabbed) {\n content = (\n <Tabs\n value={activeDoc?.id ?? ''}\n onValueChange={setActiveId}\n variant=\"underlined\"\n size=\"sm\"\n // Each tab shows its full file name when there's room and shrinks with\n // an ellipsis only when the tabs would otherwise overflow the width\n // (`min-inline-size:0` lets a tab shrink below its content; the label\n // truncates). The full name stays the accessible name and shows in the\n // body, so nothing is lost.\n className=\"ds:min-h-0 ds:flex-1 ds:pt-[var(--spacing-sm)]\"\n >\n <TabsList\n aria-label={t('documentPreview.tabsLabel', 'Selected documents')}\n className=\"ds:gap-[var(--spacing-sm)]\"\n >\n {docs.map((doc) => {\n const TabIcon = iconForMime(doc.mimeType);\n return (\n <TabsTrigger\n key={doc.id}\n value={doc.id}\n // Match the header glyph: same 16px size (never larger) and the\n // accent tint that marks a file across the grid and the rail.\n icon={\n <TabIcon\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:text-[color:var(--accent)]\"\n />\n }\n className=\"ds:[min-inline-size:0]\"\n >\n <span className=\"ds:block ds:truncate ds:[min-inline-size:0]\">\n {doc.name}\n </span>\n </TabsTrigger>\n );\n })}\n </TabsList>\n {docs.map((doc) => (\n <TabsContent\n key={doc.id}\n value={doc.id}\n className=\"ds:min-h-0 ds:flex-1\"\n >\n {renderBody(doc)}\n </TabsContent>\n ))}\n </Tabs>\n );\n } else {\n content = renderBody(activeDoc);\n }\n\n return (\n <section\n data-component=\"document-preview\"\n data-component-id={id}\n // The preview body scrolls (PDF pages, tall images, long metadata), so\n // the region needs a keyboard tab stop (axe scrollable-region-focusable).\n // A labelled <section> is a region landmark, which also scopes the\n // PanelHeader's <header> so it is never exposed as a page banner.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- keyboard-focusable scroll region (see comment above)\n tabIndex={0}\n aria-label={t('documentPreview.regionLabel', 'Document preview')}\n className={documentPreviewVariants({ className })}\n >\n {docs.length > 0 && (\n <PanelHeader sticky icon={headerIcon} title={headerTitle} />\n )}\n {content}\n </section>\n );\n});\n\nDocumentPreview.displayName = 'DocumentPreview';\n"],"names":["__iconNode","Files","createLucideIcon","documentPreviewAgent","handle","documentPreviewVariants","cva","SIGNATURE_VARIANT","resolveKind","name","mimeType","src","mime","iconForMime","FileImage","FileText","FileIcon","UNIT_KEYS","UNIT_FALLBACKS","formatBytes","bytes","locale","t","value","unitIndex","DocumentPreview","forwardRef","id","metadata","documents","className","ref","i18n","useTranslation","docs","useMemo","isTabbed","activeId","setActiveId","useState","activeDoc","doc","useImperativeHandle","useAgentRegistration","renderBody","kind","meta","PlaceholderIcon","viewport","jsx","PDFViewer","jsxs","status","hasBadges","fmtDate","iso","rows","hasDetails","Card","Badge","row","Fragment","HeaderMimeIcon","headerIcon","headerTitle","content","EmptyState","Tabs","TabsList","TabIcon","TabsTrigger","TabsContent","PanelHeader"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"document-preview-DsEyRcNd.js","sources":["../../node_modules/lucide-react/dist/esm/icons/files.mjs","../../src/components/document-preview/document-preview.agent.ts","../../src/components/document-preview/document-preview.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8\", key: \"14sh0y\" }],\n [\n \"path\",\n {\n d: \"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z\",\n key: \"1970lx\"\n }\n ],\n [\"path\", { d: \"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1\", key: \"l4dndm\" }]\n];\nconst Files = createLucideIcon(\"files\", __iconNode);\n\nexport { __iconNode, Files as default };\n//# sourceMappingURL=files.mjs.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — DocumentPreview. */\n/* */\n/* A passive, read-only viewer, so it declares no interactive */\n/* capabilities. The always-on state slot carries only the structural */\n/* render `kind` (pdf / image / metadata / empty) — never the document */\n/* name. */\n/* */\n/* PHI rule (PRS §26 §7): the document display name can identify a */\n/* patient (e.g. \"Rossi Maria — referto 2026.pdf\"). It renders as text */\n/* (fine) but the only name-returning read is the deliberate get_name */\n/* action with `safety: 'phi'`, so the host gates it behind confirm + */\n/* audit. No name is ever emitted in a data-* hook. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { DocumentPreviewHandle } from './document-preview';\n\nexport const documentPreviewAgent: AgentAdapter<DocumentPreviewHandle> = {\n id: 'document-preview',\n capabilities: [],\n state: {\n kind: {\n type: \"'pdf' | 'image' | 'metadata' | 'empty'\",\n descriptionKey: 'ui.agent.documentPreview.state.kind',\n description:\n 'Which render branch is active: pdf, image, metadata (no inline preview), or empty (no document). Structural — never the document name.',\n read: (handle) => handle.getKind(),\n },\n },\n actions: {\n get_name: {\n // phi (not read): resolves the document display name, which can identify\n // patients. PRS §26 — phi outranks read so the host gates it behind\n // stricter confirm + audit. The always-on kind slot stays name-free.\n safety: 'phi',\n returns: 'string | undefined',\n returnsSchema: { type: ['string', 'null'] },\n idempotent: true,\n descriptionKey: 'ui.agent.documentPreview.actions.getName',\n description:\n 'Read the display name of the previewed document. May identify a patient (PHI).',\n invoke: (handle) => handle.getName(),\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'document-preview',\n description: 'Marks the DocumentPreview region.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","/* -------------------------------------------------------------------- */\n/* DocumentPreview — a standalone, reusable document viewer. */\n/* */\n/* Decoupled from FileManager: it takes primitive props (name, mimeType, */\n/* src, metadata) rather than a FileManagerItem, so signing, the patient */\n/* portal, and the Control Room rail can all reuse it. The body is an */\n/* elevated Card: a bounded preview viewport (PDF → kit PDFViewer; */\n/* image/* → <img>; otherwise a MIME-icon placeholder) above an always-on */\n/* Details block (badges + every structural field the host supplies), so */\n/* the metadata is never dropped when a real preview renders. No name → */\n/* EmptyState. */\n/* */\n/* Title lives in the canonical PanelHeader (the same header every rail */\n/* panel adopts) so the Control Room rail can inject its pin / close */\n/* controls into it. Pass `documents` (≥ 2) to preview a SELECTION as */\n/* tabs — one tab per document, the active one shown below; a single */\n/* entry (or the single-document props) renders without a tab strip. */\n/* */\n/* The root is a `<section>` (region landmark) so the PanelHeader's */\n/* <header> is scoped and never exposed as a page banner — the same */\n/* shape RadiographPanel uses. It is also a keyboard-focusable scroll */\n/* region (tabIndex 0 + labelled focus ring). */\n/* */\n/* PHI: the visible name renders as text (fine), but the only */\n/* name-returning handle read is surfaced by document-preview.agent.ts */\n/* as a `safety: 'phi'` action — never in always-on state, never in a */\n/* data-* hook. In tabbed mode the handle reflects the ACTIVE tab. */\n/* -------------------------------------------------------------------- */\n\nimport {\n forwardRef,\n Fragment,\n useImperativeHandle,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n File as FileIcon,\n FileImage,\n FileText,\n Files,\n type LucideIcon,\n} from 'lucide-react';\nimport { Badge } from '../badge';\nimport { Card } from '../card';\nimport { EmptyState } from '../empty-state';\nimport { PanelHeader } from '../panel-header';\nimport { PDFViewer } from '../pdf-viewer';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '../tabs';\nimport { useAgentRegistration } from '../../agent';\nimport { documentPreviewAgent } from './document-preview.agent';\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type DocumentPreviewSignatureStatus = 'none' | 'pending' | 'signed';\n\n/** Which render branch DocumentPreview is showing — structural, never PHI. */\nexport type DocumentPreviewKind = 'pdf' | 'image' | 'metadata' | 'empty';\n\nexport interface DocumentPreviewMetadata {\n /** Size in bytes. */\n size?: number;\n /** Display name of whoever created the document (host-supplied). */\n createdBy?: string;\n /** ISO 8601 timestamp the document was created. */\n createdAt?: string;\n /** ISO 8601 timestamp of the last modification. */\n updatedAt?: string;\n /** ISO 8601 timestamp a signature was requested from the patient. */\n signatureRequestedAt?: string;\n /** ISO 8601 timestamp the document was signed. */\n signedAt?: string;\n /** ISO 8601 timestamp the document was shared with the patient. */\n sharedAt?: string;\n /** Open document-type category (non-identifying), e.g. `'xray'`. */\n documentType?: string;\n /** Signature workflow state. */\n signatureStatus?: DocumentPreviewSignatureStatus;\n /** Clinical-document flag (host-defined semantics). */\n clinical?: boolean;\n /** ISO 8601 expiry (e.g. identification documents). */\n expiresAt?: string;\n}\n\n/**\n * A single previewable document. In multi-document mode each becomes a tab;\n * `id` is the tab value (never a patient name) and `name` is the tab label.\n */\nexport interface DocumentPreviewDocument {\n /** Stable, non-identifying id. Emitted as the tab value — never PHI. */\n id: string;\n /** Display name (PHI). Also the tab label in multi-document mode. */\n name: string;\n /** MIME type — drives the render branch and the fallback icon. */\n mimeType?: string;\n /** Resolved URL / data URI for the PDF or image viewer. */\n src?: string;\n /** Structural metadata rendered by the metadata-card branch. */\n metadata?: DocumentPreviewMetadata;\n}\n\nexport interface DocumentPreviewProps extends VariantProps<\n typeof documentPreviewVariants\n> {\n /** Opaque instance id — emitted as `data-component-id` for the agent registry. */\n id?: string;\n /** Display name. Absent (and no `documents`) → empty state. PHI. */\n name?: string;\n /** MIME type — drives the render branch and the fallback icon. */\n mimeType?: string;\n /** Resolved URL / data URI for the PDF or image viewer. The host owns auth. */\n src?: string;\n /** Structural metadata rendered by the metadata-card branch. */\n metadata?: DocumentPreviewMetadata;\n /**\n * Multiple documents to preview as tabs — e.g. a multi-row selection. Two\n * or more render a tab per document (label = name) with the active one\n * shown below; a single entry renders without a tab strip. When non-empty\n * this takes precedence over the single-document props. Names are PHI.\n */\n documents?: DocumentPreviewDocument[];\n className?: string;\n}\n\nexport interface DocumentPreviewHandle {\n /** Which render branch is active — structural, safe for always-on reads. */\n getKind: () => DocumentPreviewKind;\n /** The active document's display name (PHI). Surfaced by the adapter as a `phi` action. */\n getName: () => string | undefined;\n}\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst documentPreviewVariants = cva(\n [\n 'ds:flex ds:h-full ds:min-h-0 ds:min-w-0 ds:flex-col ds:overflow-auto',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring',\n ].join(' '),\n);\n\nconst SIGNATURE_VARIANT: Record<\n Exclude<DocumentPreviewSignatureStatus, 'none'>,\n 'success' | 'warning'\n> = {\n signed: 'success',\n pending: 'warning',\n};\n\n/* ------------------------------------------------------------------ */\n/* Helpers */\n/* ------------------------------------------------------------------ */\n\nfunction resolveKind(\n name: string | undefined,\n mimeType: string | undefined,\n src: string | undefined,\n): DocumentPreviewKind {\n if (!name) return 'empty';\n const mime = mimeType ?? '';\n if (mime === 'application/pdf' && src) return 'pdf';\n if (mime.startsWith('image/') && src) return 'image';\n return 'metadata';\n}\n\n/** Fallback icon for the header / metadata card — a small MIME-family lookup. */\nfunction iconForMime(mimeType: string | undefined): LucideIcon {\n const mime = mimeType ?? '';\n if (mime.startsWith('image/')) return FileImage;\n if (\n mime === 'application/pdf' ||\n mime.startsWith('text/') ||\n mime.includes('word')\n ) {\n return FileText;\n }\n return FileIcon;\n}\n\nconst UNIT_KEYS = [\n 'documentPreview.units.bytes',\n 'documentPreview.units.kilobytes',\n 'documentPreview.units.megabytes',\n 'documentPreview.units.gigabytes',\n] as const;\n\nconst UNIT_FALLBACKS = ['B', 'KB', 'MB', 'GB'] as const;\n\nfunction formatBytes(\n bytes: number,\n locale: string,\n t: (key: string, fallback: string) => string,\n): string {\n let value = bytes;\n let unitIndex = 0;\n while (value >= 1024 && unitIndex < UNIT_FALLBACKS.length - 1) {\n value /= 1024;\n unitIndex++;\n }\n const formatted = new Intl.NumberFormat(locale, {\n maximumFractionDigits: unitIndex === 0 ? 0 : 1,\n }).format(value);\n return `${formatted} ${t(UNIT_KEYS[unitIndex], UNIT_FALLBACKS[unitIndex])}`;\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nexport const DocumentPreview = forwardRef<\n DocumentPreviewHandle,\n DocumentPreviewProps\n>(({ id, name, mimeType, src, metadata, documents, className }, ref) => {\n const { t, i18n } = useTranslation();\n\n // Resolve the document list: an explicit `documents` list wins; otherwise\n // the single-document props form a one-item list; nothing → empty. The\n // synthetic single-doc id is never emitted as a tab value (a lone doc\n // renders without a tab strip), so falling back to the name is PHI-safe.\n const docs = useMemo<DocumentPreviewDocument[]>(() => {\n if (documents && documents.length > 0) return documents;\n if (name) return [{ id: id ?? name, name, mimeType, src, metadata }];\n return [];\n }, [documents, id, name, mimeType, src, metadata]);\n\n const isTabbed = docs.length > 1;\n\n // Active tab (multi mode). When the current id is stale after the selection\n // changes we fall back to the first document — no reconciling effect needed.\n const [activeId, setActiveId] = useState<string | undefined>(undefined);\n const activeDoc = docs.find((doc) => doc.id === activeId) ?? docs[0];\n\n const handle = useMemo<DocumentPreviewHandle>(\n () => ({\n getKind: () =>\n activeDoc\n ? resolveKind(activeDoc.name, activeDoc.mimeType, activeDoc.src)\n : 'empty',\n getName: () => activeDoc?.name,\n }),\n [activeDoc],\n );\n useImperativeHandle(ref, () => handle, [handle]);\n useAgentRegistration(documentPreviewAgent, handle, id);\n\n /* The per-document body — an elevated Card with a bounded preview viewport\n (pdf / image / placeholder) above an always-on Details block. The title is\n NOT rendered here (the PanelHeader owns it, or the tab label in multi mode). */\n const renderBody = (doc: DocumentPreviewDocument): ReactNode => {\n const kind = resolveKind(doc.name, doc.mimeType, doc.src);\n const meta = doc.metadata;\n const PlaceholderIcon = iconForMime(doc.mimeType);\n\n // Preview viewport — the rendered document, or a MIME-icon placeholder when\n // no source resolves. Bounded to a consistent aspect so the Details below\n // stay reachable in the rail.\n let viewport: ReactNode;\n if (kind === 'pdf' && doc.src) {\n viewport = (\n <PDFViewer\n src={doc.src}\n toolbarVariant=\"minimal\"\n // Name the embedded viewer after the document so it stays distinct\n // from the surrounding \"Document preview\" region (nested landmarks\n // must not share an accessible name). Mirrors visible header text.\n ariaLabel={doc.name}\n className=\"ds:h-full ds:w-full\"\n />\n );\n } else if (kind === 'image' && doc.src) {\n viewport = (\n <img\n src={doc.src}\n alt={t('documentPreview.imageAlt', 'Preview of {{name}}', {\n name: doc.name,\n })}\n className=\"ds:max-h-full ds:max-w-full ds:object-contain\"\n />\n );\n } else {\n viewport = (\n <span className=\"ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-sm)] ds:text-muted-foreground\">\n <PlaceholderIcon aria-hidden=\"true\" className=\"ds:size-10\" />\n <span className=\"type-body-sm\">\n {t('documentPreview.noPreview', 'No preview available.')}\n </span>\n </span>\n );\n }\n\n // Badges: type / clinical / signature status.\n const status = meta?.signatureStatus;\n const hasBadges =\n Boolean(meta?.documentType) ||\n Boolean(meta?.clinical) ||\n (status !== undefined && status !== 'none');\n\n // Detail rows — every structural field the host supplies, so nothing is\n // dropped when a real preview renders. Only present fields render a row.\n const fmtDate = (iso: string): string =>\n new Intl.DateTimeFormat(i18n.language, { dateStyle: 'medium' }).format(\n new Date(iso),\n );\n const rows: Array<{ key: string; label: string; value: string }> = [];\n if (meta?.createdBy)\n rows.push({\n key: 'createdBy',\n label: t('documentPreview.fields.createdBy', 'Created by'),\n value: meta.createdBy,\n });\n if (meta?.createdAt)\n rows.push({\n key: 'created',\n label: t('documentPreview.fields.created', 'Created'),\n value: fmtDate(meta.createdAt),\n });\n if (meta?.updatedAt)\n rows.push({\n key: 'modified',\n label: t('documentPreview.fields.modified', 'Modified'),\n value: fmtDate(meta.updatedAt),\n });\n if (meta?.signatureRequestedAt)\n rows.push({\n key: 'signatureRequested',\n label: t(\n 'documentPreview.fields.signatureRequested',\n 'Signature requested',\n ),\n value: fmtDate(meta.signatureRequestedAt),\n });\n if (meta?.signedAt)\n rows.push({\n key: 'signed',\n label: t('documentPreview.fields.signed', 'Signed'),\n value: fmtDate(meta.signedAt),\n });\n if (meta?.sharedAt)\n rows.push({\n key: 'sharedWithPatient',\n label: t(\n 'documentPreview.fields.sharedWithPatient',\n 'Shared with patient',\n ),\n value: fmtDate(meta.sharedAt),\n });\n if (meta?.size !== undefined)\n rows.push({\n key: 'size',\n label: t('documentPreview.fields.size', 'Size'),\n value: formatBytes(meta.size, i18n.language, t),\n });\n if (meta?.expiresAt)\n rows.push({\n key: 'expires',\n label: t('documentPreview.fields.expires', 'Expires'),\n value: fmtDate(meta.expiresAt),\n });\n\n const hasDetails = hasBadges || rows.length > 0;\n\n return (\n <div className=\"ds:p-[var(--spacing-md)]\">\n <Card\n variant=\"elevated\"\n className=\"ds:flex ds:flex-col ds:overflow-hidden\"\n >\n <div className=\"ds:flex ds:aspect-[4/3] ds:min-h-0 ds:items-center ds:justify-center ds:overflow-hidden ds:border-b ds:border-[color:var(--card-border)] ds:bg-muted\">\n {viewport}\n </div>\n {hasDetails && (\n <Card.Body className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n <h3 className=\"type-eyebrow ds:m-0 ds:text-muted-foreground\">\n {t('documentPreview.detailsTitle', 'Details')}\n </h3>\n {hasBadges && (\n <span className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-sm)]\">\n {meta?.documentType && (\n <Badge variant=\"neutral\" size=\"sm\">\n {meta.documentType}\n </Badge>\n )}\n {meta?.clinical && (\n <Badge variant=\"info\" size=\"sm\">\n {t('documentPreview.clinical', 'Clinical')}\n </Badge>\n )}\n {status && status !== 'none' && (\n <Badge\n variant={SIGNATURE_VARIANT[status]}\n size=\"sm\"\n withDot\n >\n {t(`documentPreview.signature.${status}`, status)}\n </Badge>\n )}\n </span>\n )}\n {rows.length > 0 && (\n <dl className=\"ds:grid ds:grid-cols-[auto_1fr] ds:gap-x-[var(--spacing-md)] ds:gap-y-[var(--spacing-xs)] type-body-sm\">\n {rows.map((row) => (\n <Fragment key={row.key}>\n <dt className=\"ds:text-muted-foreground\">{row.label}</dt>\n <dd className=\"ds:m-0\">{row.value}</dd>\n </Fragment>\n ))}\n </dl>\n )}\n </Card.Body>\n )}\n </Card>\n </div>\n );\n };\n\n // Header: a MIME icon + the document name for a single doc; a Files glyph +\n // a count badge (RadiographPanel's title-plus-badge shape) when tabbed.\n const HeaderMimeIcon = iconForMime(activeDoc?.mimeType);\n const headerIcon = isTabbed ? (\n <Files aria-hidden=\"true\" />\n ) : (\n <HeaderMimeIcon aria-hidden=\"true\" />\n );\n const headerTitle: ReactNode = isTabbed ? (\n <>\n {t('documentPreview.multiTitle', 'Documents')}\n <Badge variant=\"neutral\" size=\"sm\">\n {docs.length}\n </Badge>\n </>\n ) : (\n activeDoc?.name\n );\n\n let content: ReactNode;\n if (docs.length === 0) {\n content = (\n <EmptyState\n variant=\"first-use\"\n size=\"sm\"\n title={t('documentPreview.emptyTitle', 'No document selected')}\n description={t(\n 'documentPreview.emptyDescription',\n 'Select a document to preview it here.',\n )}\n />\n );\n } else if (isTabbed) {\n content = (\n <Tabs\n value={activeDoc?.id ?? ''}\n onValueChange={setActiveId}\n variant=\"underlined\"\n size=\"sm\"\n // Each tab shows its full file name when there's room and shrinks with\n // an ellipsis only when the tabs would otherwise overflow the width\n // (`min-inline-size:0` lets a tab shrink below its content; the label\n // truncates). The full name stays the accessible name and shows in the\n // body, so nothing is lost.\n className=\"ds:min-h-0 ds:flex-1 ds:pt-[var(--spacing-sm)]\"\n >\n <TabsList\n aria-label={t('documentPreview.tabsLabel', 'Selected documents')}\n className=\"ds:gap-[var(--spacing-sm)]\"\n >\n {docs.map((doc) => {\n const TabIcon = iconForMime(doc.mimeType);\n return (\n <TabsTrigger\n key={doc.id}\n value={doc.id}\n // Match the header glyph: same 16px size (never larger) and the\n // accent tint that marks a file across the grid and the rail.\n icon={\n <TabIcon\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:text-[color:var(--accent)]\"\n />\n }\n className=\"ds:[min-inline-size:0]\"\n >\n <span className=\"ds:block ds:truncate ds:[min-inline-size:0]\">\n {doc.name}\n </span>\n </TabsTrigger>\n );\n })}\n </TabsList>\n {docs.map((doc) => (\n <TabsContent\n key={doc.id}\n value={doc.id}\n className=\"ds:min-h-0 ds:flex-1\"\n >\n {renderBody(doc)}\n </TabsContent>\n ))}\n </Tabs>\n );\n } else {\n content = renderBody(activeDoc);\n }\n\n return (\n <section\n data-component=\"document-preview\"\n data-component-id={id}\n // The preview body scrolls (PDF pages, tall images, long metadata), so\n // the region needs a keyboard tab stop (axe scrollable-region-focusable).\n // A labelled <section> is a region landmark, which also scopes the\n // PanelHeader's <header> so it is never exposed as a page banner.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- keyboard-focusable scroll region (see comment above)\n tabIndex={0}\n aria-label={t('documentPreview.regionLabel', 'Document preview')}\n className={documentPreviewVariants({ className })}\n >\n {docs.length > 0 && (\n <PanelHeader sticky icon={headerIcon} title={headerTitle} />\n )}\n {content}\n </section>\n );\n});\n\nDocumentPreview.displayName = 'DocumentPreview';\n"],"names":["__iconNode","Files","createLucideIcon","documentPreviewAgent","handle","documentPreviewVariants","cva","SIGNATURE_VARIANT","resolveKind","name","mimeType","src","mime","iconForMime","FileImage","FileText","FileIcon","UNIT_KEYS","UNIT_FALLBACKS","formatBytes","bytes","locale","t","value","unitIndex","DocumentPreview","forwardRef","id","metadata","documents","className","ref","i18n","useTranslation","docs","useMemo","isTabbed","activeId","setActiveId","useState","activeDoc","doc","useImperativeHandle","useAgentRegistration","renderBody","kind","meta","PlaceholderIcon","viewport","jsx","PDFViewer","jsxs","status","hasBadges","fmtDate","iso","rows","hasDetails","Card","Badge","row","Fragment","HeaderMimeIcon","headerIcon","headerTitle","content","EmptyState","Tabs","TabsList","TabIcon","TabsTrigger","TabsContent","PanelHeader"],"mappings":"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","x_google_ignoreList":[0]}
@@ -3,12 +3,13 @@ import { forwardRef as Fe, useId as Me, useRef as m, useState as W, useEffect as
3
3
  import { c as k } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as Ye } from "react-i18next";
5
5
  import { B as K } from "./button-nJaPh_HC.js";
6
- import { A as ae } from "./alert-CiJT540z.js";
7
- import { L as he, F as Xe } from "./file-upload-CwxdqkMK.js";
6
+ import { A as ae } from "./alert-CiQ5Pa3Q.js";
7
+ import { F as Xe } from "./file-upload-BDpb08GM.js";
8
8
  import { u as Ze } from "./use-controllable-state-BiY4xTzM.js";
9
9
  import { u as $e } from "./registry-DvAUVLHh.js";
10
10
  import { R as Ge } from "./rotate-ccw-BBQnIVTr.js";
11
11
  import { C as Je } from "./check-DrFSN__t.js";
12
+ import { L as he } from "./loader-circle-BECIU_8N.js";
12
13
  import { C as be } from "./camera-VSklPDCv.js";
13
14
  const Qe = {
14
15
  id: "document-scanner",
@@ -18,13 +19,13 @@ const Qe = {
18
19
  type: "boolean",
19
20
  descriptionKey: "documentScanner.agent.state.hasCapture",
20
21
  description: "True when a captured or uploaded image is available.",
21
- read: (t) => t.hasCapture()
22
+ read: (n) => n.hasCapture()
22
23
  },
23
24
  phase: {
24
25
  type: "string",
25
26
  descriptionKey: "documentScanner.agent.state.phase",
26
27
  description: "Lifecycle phase: 'idle' | 'requesting' | 'streaming' | 'captured' | 'error'.",
27
- read: (t) => t.getPhase()
28
+ read: (n) => n.getPhase()
28
29
  }
29
30
  },
30
31
  actions: {
@@ -39,29 +40,29 @@ const Qe = {
39
40
  "not-readable",
40
41
  "insecure-context"
41
42
  ],
42
- invoke: (t) => t.startCamera()
43
+ invoke: (n) => n.startCamera()
43
44
  },
44
45
  capture: {
45
46
  safety: "write",
46
47
  descriptionKey: "documentScanner.agent.actions.capture",
47
48
  description: "Freeze the current viewfinder frame as a captured image.",
48
49
  errors: ["capture-failed"],
49
- invoke: (t) => t.capture()
50
+ invoke: (n) => n.capture()
50
51
  },
51
52
  submit: {
52
53
  safety: "write",
53
54
  descriptionKey: "documentScanner.agent.actions.confirm",
54
55
  description: "Confirm the current capture, emitting it via onConfirm.",
55
- invoke: (t) => {
56
- t.confirm();
56
+ invoke: (n) => {
57
+ n.confirm();
57
58
  }
58
59
  },
59
60
  retake: {
60
61
  safety: "destructive",
61
62
  descriptionKey: "documentScanner.agent.actions.retake",
62
63
  description: "Discard the current capture and return to the capture path.",
63
- invoke: (t) => {
64
- t.retake();
64
+ invoke: (n) => {
65
+ n.retake();
65
66
  }
66
67
  }
67
68
  },
@@ -140,30 +141,30 @@ const Qe = {
140
141
  "ds:flex ds:flex-col ds:items-stretch ds:gap-[var(--spacing-sm)]",
141
142
  "ds:sm:flex-row ds:sm:flex-wrap ds:sm:items-center"
142
143
  ].join(" ")
143
- ), nr = k(
144
+ ), tr = k(
144
145
  ["type-body-sm ds:text-center", "ds:text-[var(--muted-foreground)]"].join(
145
146
  " "
146
147
  )
147
148
  );
148
- function tr(t) {
149
+ function nr(n) {
149
150
  let o = "";
150
- for (let f = 0; f < t.length; f += 1)
151
- o += t[f].toString(16).padStart(2, "0");
151
+ for (let f = 0; f < n.length; f += 1)
152
+ o += n[f].toString(16).padStart(2, "0");
152
153
  return o;
153
154
  }
154
- async function xe(t) {
155
+ async function xe(n) {
155
156
  var f;
156
157
  const o = globalThis;
157
158
  if ((f = o.crypto) != null && f.subtle) {
158
- const C = new Uint8Array(t.byteLength);
159
- C.set(new Uint8Array(t));
159
+ const C = new Uint8Array(n.byteLength);
160
+ C.set(new Uint8Array(n));
160
161
  const U = await o.crypto.subtle.digest("SHA-256", C.buffer);
161
- return tr(new Uint8Array(U));
162
+ return nr(new Uint8Array(U));
162
163
  }
163
164
  return "";
164
165
  }
165
- function ar(t) {
166
- const o = t instanceof Error ? t.name : "";
166
+ function ar(n) {
167
+ const o = n instanceof Error ? n.name : "";
167
168
  return o === "NotAllowedError" || o === "SecurityError" ? "permission-denied" : o === "NotFoundError" || o === "OverconstrainedError" ? "no-camera" : o === "NotReadableError" || o === "AbortError" ? "not-readable" : "capture-failed";
168
169
  }
169
170
  function sr() {
@@ -184,7 +185,7 @@ const ir = {
184
185
  "file-too-large": "documentScanner.error.fileTooLarge"
185
186
  }, or = Fe(
186
187
  ({
187
- id: t,
188
+ id: n,
188
189
  value: o,
189
190
  defaultValue: f = null,
190
191
  onConfirm: C,
@@ -210,7 +211,7 @@ const ir = {
210
211
  const { t: s } = Ye(), ce = `ds-${Me().replace(/[^a-zA-Z0-9-_]/g, "")}-hint`, [y, N] = Ze({
211
212
  value: o,
212
213
  defaultValue: f
213
- }), j = m(f != null || o != null), [n, v] = W(
214
+ }), j = m(f != null || o != null), [t, v] = W(
214
215
  f != null || o != null ? "captured" : "idle"
215
216
  ), [S, q] = W(
216
217
  null
@@ -264,7 +265,7 @@ const ir = {
264
265
  e && e.readyState >= 2 && de(!0);
265
266
  }, []);
266
267
  z(() => {
267
- if (n !== "streaming") return;
268
+ if (t !== "streaming") return;
268
269
  D();
269
270
  const e = window.setInterval(D, 100), r = window.setTimeout(
270
271
  () => window.clearInterval(e),
@@ -273,7 +274,7 @@ const ir = {
273
274
  return () => {
274
275
  window.clearInterval(e), window.clearTimeout(r);
275
276
  };
276
- }, [n, D]);
277
+ }, [t, D]);
277
278
  const J = h(async () => {
278
279
  const e = I.current;
279
280
  if (!e || e.readyState < 2) {
@@ -395,14 +396,14 @@ const ir = {
395
396
  }, [V, N]);
396
397
  z(() => {
397
398
  var e, r, i;
398
- n === "captured" && !j.current ? (e = me.current) == null || e.focus() : n === "error" ? (r = fe.current) == null || r.focus() : n === "idle" && ee.current && (ee.current = !1, (i = pe.current) == null || i.focus());
399
- }, [n]), z(() => {
400
- if (n !== "streaming") return;
399
+ t === "captured" && !j.current ? (e = me.current) == null || e.focus() : t === "error" ? (r = fe.current) == null || r.focus() : t === "idle" && ee.current && (ee.current = !1, (i = pe.current) == null || i.focus());
400
+ }, [t]), z(() => {
401
+ if (t !== "streaming") return;
401
402
  const e = (r) => {
402
403
  r.key === "Escape" && (w(), v("idle"));
403
404
  };
404
405
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
405
- }, [n, w]), z(() => {
406
+ }, [t, w]), z(() => {
406
407
  const e = () => {
407
408
  document.visibilityState === "hidden" && R.current && (w(), v("idle"));
408
409
  };
@@ -412,23 +413,23 @@ const ir = {
412
413
  const e = R.current;
413
414
  e && e.getTracks().forEach((r) => r.stop()), R.current = null;
414
415
  }, []), z(() => {
415
- V && (o != null ? v("captured") : n === "captured" && v("idle"));
416
+ V && (o != null ? v("captured") : t === "captured" && v("idle"));
416
417
  }, [o, V]);
417
- const ne = Te(
418
+ const te = Te(
418
419
  () => ({
419
420
  hasCapture: () => y != null,
420
- getPhase: () => n,
421
+ getPhase: () => t,
421
422
  startCamera: () => F(),
422
423
  capture: () => J(),
423
424
  confirm: () => Q(),
424
425
  retake: () => re()
425
426
  }),
426
- [y, n, F, J, Q, re]
427
+ [y, t, F, J, Q, re]
427
428
  );
428
- We(Re, () => ne, [ne]), $e(Qe, ne, t);
429
+ We(Re, () => te, [te]), $e(Qe, te, n);
429
430
  const Le = Ne ?? s("documentScanner.regionLabel"), _e = s(ir[Z]), ge = Math.round(se / (1024 * 1024)), Be = (() => {
430
431
  if (le) return s("documentScanner.state.uploading");
431
- switch (n) {
432
+ switch (t) {
432
433
  case "idle":
433
434
  return s("documentScanner.state.idle");
434
435
  case "requesting":
@@ -440,7 +441,7 @@ const ir = {
440
441
  case "error":
441
442
  return S ? s(ze[S], { maxSizeMb: ge }) : s("documentScanner.error.captureFailed");
442
443
  }
443
- })(), Ke = !A && S !== "file-invalid-type" && S !== "file-too-large" && S !== "insecure-context", ve = !g && (P === "auto" || P === "upload-only" || n === "error"), te = /* @__PURE__ */ a(
444
+ })(), Ke = !A && S !== "file-invalid-type" && S !== "file-too-large" && S !== "insecure-context", ve = !g && (P === "auto" || P === "upload-only" || t === "error"), ne = /* @__PURE__ */ a(
444
445
  Xe,
445
446
  {
446
447
  variant: "button",
@@ -455,7 +456,7 @@ const ir = {
455
456
  },
456
457
  onReject: De
457
458
  }
458
- ), Pe = n === "idle" || n === "requesting" || n === "streaming" || n === "error";
459
+ ), Pe = t === "idle" || t === "requesting" || t === "streaming" || t === "error";
459
460
  return /* @__PURE__ */ p(
460
461
  "div",
461
462
  {
@@ -464,8 +465,8 @@ const ir = {
464
465
  "aria-disabled": g || void 0,
465
466
  className: [er({ size: Ce }), je].filter(Boolean).join(" "),
466
467
  "data-component": "document-scanner",
467
- "data-component-id": t,
468
- "data-phase": n,
468
+ "data-component-id": n,
469
+ "data-phase": t,
469
470
  children: [
470
471
  /* @__PURE__ */ a(
471
472
  "span",
@@ -478,7 +479,7 @@ const ir = {
478
479
  children: Be
479
480
  }
480
481
  ),
481
- n === "captured" && y ? (
482
+ t === "captured" && y ? (
482
483
  /* ---- Captured preview ---- */
483
484
  /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
484
485
  /* @__PURE__ */ p("div", { className: ye({ frame: Z }), children: [
@@ -523,12 +524,12 @@ const ir = {
523
524
  ] })
524
525
  ) : null,
525
526
  Pe ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
526
- !A && n !== "error" ? /* @__PURE__ */ p(
527
+ !A && t !== "error" ? /* @__PURE__ */ p(
527
528
  "div",
528
529
  {
529
530
  ref: Ue,
530
531
  className: ye({ frame: Z }),
531
- "aria-busy": n === "requesting" || void 0,
532
+ "aria-busy": t === "requesting" || void 0,
532
533
  children: [
533
534
  /* @__PURE__ */ a(
534
535
  "video",
@@ -544,7 +545,7 @@ const ir = {
544
545
  "data-testid": "document-scanner-video"
545
546
  }
546
547
  ),
547
- n === "requesting" ? /* @__PURE__ */ a("div", { className: "ds:absolute ds:inset-0 ds:flex ds:items-center ds:justify-center ds:bg-[color-mix(in_srgb,var(--foreground)_20%,transparent)]", children: /* @__PURE__ */ a(
548
+ t === "requesting" ? /* @__PURE__ */ a("div", { className: "ds:absolute ds:inset-0 ds:flex ds:items-center ds:justify-center ds:bg-[color-mix(in_srgb,var(--foreground)_20%,transparent)]", children: /* @__PURE__ */ a(
548
549
  he,
549
550
  {
550
551
  "aria-hidden": "true",
@@ -600,8 +601,8 @@ const ir = {
600
601
  ]
601
602
  }
602
603
  ) : null,
603
- n === "streaming" ? /* @__PURE__ */ a("p", { id: ce, className: nr(), children: _e }) : null,
604
- n === "error" && S ? /* @__PURE__ */ p(ae, { variant: "error", live: "assertive", children: [
604
+ t === "streaming" ? /* @__PURE__ */ a("p", { id: ce, className: tr(), children: _e }) : null,
605
+ t === "error" && S ? /* @__PURE__ */ p(ae, { variant: "error", live: "assertive", children: [
605
606
  /* @__PURE__ */ a(ae.Description, { children: s(ze[S], { maxSizeMb: ge }) }),
606
607
  /* @__PURE__ */ p(ae.Action, { children: [
607
608
  Ke ? /* @__PURE__ */ a(
@@ -617,11 +618,11 @@ const ir = {
617
618
  children: s("documentScanner.retry")
618
619
  }
619
620
  ) : null,
620
- ve ? te : null
621
+ ve ? ne : null
621
622
  ] })
622
623
  ] }) : null,
623
- n !== "error" ? /* @__PURE__ */ p("div", { className: Se(), children: [
624
- n === "streaming" ? /* @__PURE__ */ a(
624
+ t !== "error" ? /* @__PURE__ */ p("div", { className: Se(), children: [
625
+ t === "streaming" ? /* @__PURE__ */ a(
625
626
  K,
626
627
  {
627
628
  ref: Ie,
@@ -637,14 +638,14 @@ const ir = {
637
638
  children: s("documentScanner.capture")
638
639
  }
639
640
  ) : null,
640
- (n === "idle" || n === "requesting") && !A ? /* @__PURE__ */ a(
641
+ (t === "idle" || t === "requesting") && !A ? /* @__PURE__ */ a(
641
642
  K,
642
643
  {
643
644
  ref: pe,
644
645
  intent: "primary",
645
646
  size: "md",
646
647
  className: "ds:[min-block-size:var(--min-target-size)] ds:[min-inline-size:var(--min-target-size)]",
647
- loading: n === "requesting",
648
+ loading: t === "requesting",
648
649
  startIcon: /* @__PURE__ */ a(be, { "aria-hidden": "true" }),
649
650
  onClick: () => {
650
651
  F();
@@ -662,8 +663,8 @@ const ir = {
662
663
  }
663
664
  ),
664
665
  s("documentScanner.state.uploading")
665
- ] }) : ve && n !== "streaming" ? te : null,
666
- n === "streaming" && P !== "camera-only" ? te : null
666
+ ] }) : ve && t !== "streaming" ? ne : null,
667
+ t === "streaming" && P !== "camera-only" ? ne : null
667
668
  ] }) : null
668
669
  ] }) : null
669
670
  ]
@@ -676,4 +677,4 @@ export {
676
677
  or as D,
677
678
  Qe as d
678
679
  };
679
- //# sourceMappingURL=document-scanner-C5Vrbu21.js.map
680
+ //# sourceMappingURL=document-scanner-CbWVtm7u.js.map