@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfadocs/ui-kit-debug",
3
- "version": "1.35.0",
3
+ "version": "1.36.0",
4
4
  "type": "module",
5
5
  "description": "AlfaDocs shared design system — tokens, components, patterns, and translations for platform, booking, and alfascribe. (debug build — identical runtime to @alfadocs/ui-kit, ships source maps for symbolication).",
6
6
  "license": "BUSL-1.1",
@@ -377,6 +377,10 @@
377
377
  "types": "./dist/components/header-settings/index.d.ts",
378
378
  "import": "./dist/components/header-settings/index.js"
379
379
  },
380
+ "./hover-card": {
381
+ "types": "./dist/components/hover-card/index.d.ts",
382
+ "import": "./dist/components/hover-card/index.js"
383
+ },
380
384
  "./icon-button-group": {
381
385
  "types": "./dist/components/icon-button-group/index.d.ts",
382
386
  "import": "./dist/components/icon-button-group/index.js"
@@ -457,6 +461,10 @@
457
461
  "types": "./dist/components/notification-tray/index.d.ts",
458
462
  "import": "./dist/components/notification-tray/index.js"
459
463
  },
464
+ "./note-timeline": {
465
+ "types": "./dist/components/note-timeline/index.d.ts",
466
+ "import": "./dist/components/note-timeline/index.js"
467
+ },
460
468
  "./notes-panel": {
461
469
  "types": "./dist/components/notes-panel/index.d.ts",
462
470
  "import": "./dist/components/notes-panel/index.js"
@@ -597,6 +605,10 @@
597
605
  "types": "./dist/components/search-input/index.d.ts",
598
606
  "import": "./dist/components/search-input/index.js"
599
607
  },
608
+ "./section-card": {
609
+ "types": "./dist/components/section-card/index.d.ts",
610
+ "import": "./dist/components/section-card/index.js"
611
+ },
600
612
  "./select": {
601
613
  "types": "./dist/components/select/index.d.ts",
602
614
  "import": "./dist/components/select/index.js"
@@ -781,6 +793,10 @@
781
793
  "types": "./dist/components/whatsapp-button/index.d.ts",
782
794
  "import": "./dist/components/whatsapp-button/index.js"
783
795
  },
796
+ "./workflow-status": {
797
+ "types": "./dist/components/workflow-status/index.d.ts",
798
+ "import": "./dist/components/workflow-status/index.js"
799
+ },
784
800
  "./workflow": {
785
801
  "types": "./dist/components/workflow/index.d.ts",
786
802
  "import": "./dist/components/workflow/index.js"
@@ -1 +0,0 @@
1
- {"version":3,"file":"appointment-card-Bh_CIlc6.js","sources":["../../node_modules/lucide-react/dist/esm/icons/clipboard-plus.mjs","../../node_modules/lucide-react/dist/esm/icons/file-pen-line.mjs","../../node_modules/lucide-react/dist/esm/icons/message-square-text.mjs","../../node_modules/lucide-react/dist/esm/icons/user-x.mjs","../../src/components/appointment-card/appointment-card.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 [\"rect\", { width: \"8\", height: \"4\", x: \"8\", y: \"2\", rx: \"1\", ry: \"1\", key: \"tgr4d6\" }],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\"path\", { d: \"M9 14h6\", key: \"159ibu\" }],\n [\"path\", { d: \"M12 17v-6\", key: \"1y8rbf\" }]\n];\nconst ClipboardPlus = createLucideIcon(\"clipboard-plus\", __iconNode);\n\nexport { __iconNode, ClipboardPlus as default };\n//# sourceMappingURL=clipboard-plus.mjs.map\n","/**\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 [\n \"path\",\n {\n d: \"M14.364 13.634a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506l4.013-4.009a1 1 0 0 0-3.004-3.004z\",\n key: \"ukzhwg\"\n }\n ],\n [\"path\", { d: \"M14.487 7.858A1 1 0 0 1 14 7V2\", key: \"1klhew\" }],\n [\n \"path\",\n {\n d: \"M20 19.645V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l2.516 2.516\",\n key: \"rxaxab\"\n }\n ],\n [\"path\", { d: \"M8 18h1\", key: \"13wk12\" }]\n];\nconst FilePenLine = createLucideIcon(\"file-pen-line\", __iconNode);\n\nexport { __iconNode, FilePenLine as default };\n//# sourceMappingURL=file-pen-line.mjs.map\n","/**\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 [\n \"path\",\n {\n d: \"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z\",\n key: \"18887p\"\n }\n ],\n [\"path\", { d: \"M7 11h10\", key: \"1twpyw\" }],\n [\"path\", { d: \"M7 15h6\", key: \"d9of3u\" }],\n [\"path\", { d: \"M7 7h8\", key: \"af5zfr\" }]\n];\nconst MessageSquareText = createLucideIcon(\"message-square-text\", __iconNode);\n\nexport { __iconNode, MessageSquareText as default };\n//# sourceMappingURL=message-square-text.mjs.map\n","/**\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: \"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\", key: \"1yyitq\" }],\n [\"circle\", { cx: \"9\", cy: \"7\", r: \"4\", key: \"nufk8\" }],\n [\"line\", { x1: \"17\", x2: \"22\", y1: \"8\", y2: \"13\", key: \"3nzzx3\" }],\n [\"line\", { x1: \"22\", x2: \"17\", y1: \"8\", y2: \"13\", key: \"1swrse\" }]\n];\nconst UserX = createLucideIcon(\"user-x\", __iconNode);\n\nexport { __iconNode, UserX as default };\n//# sourceMappingURL=user-x.mjs.map\n","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport {\n Armchair,\n ChevronRight,\n ClipboardPlus,\n FileSignature,\n Globe,\n MapPin,\n MessageSquareText,\n Repeat,\n Star,\n UserX,\n Video,\n} from 'lucide-react';\nimport { Avatar } from '../avatar/avatar';\nimport { Badge } from '../badge/badge';\nimport { Tag } from '../tag/tag';\nimport { Timestamp } from '../timestamp/timestamp';\nimport { TransactionChip } from '../transaction-chip/transaction-chip';\nimport {\n appointmentStateBadge,\n colorIdToToken,\n colorIdToAvatarToken,\n isSafeEntityUrl,\n} from '../_shared/entity-card';\nimport type { AppointmentState } from '../_shared/entity-card';\n\n/*\n * Closed colour-dot class map. `colorIdToToken` resolves the operator's\n * numeric colour id to one of a fixed set of palette tokens; the operator\n * dot needs a *static* Tailwind class for each so the compiler can emit it\n * (dynamic `ds:bg-[…]` strings are not seen by the JIT). The keys mirror the\n * exact token strings the shared helper returns.\n */\nconst OPERATOR_DOT_CLASS: Record<string, string> = {\n 'var(--color-violet-500)': 'ds:bg-[var(--color-violet-500)]',\n 'var(--color-purple-500)': 'ds:bg-[var(--color-purple-500)]',\n 'var(--color-magenta-500)': 'ds:bg-[var(--color-magenta-500)]',\n 'var(--color-blue-500)': 'ds:bg-[var(--color-blue-500)]',\n 'var(--color-green-500)': 'ds:bg-[var(--color-green-500)]',\n 'var(--color-red-500)': 'ds:bg-[var(--color-red-500)]',\n 'var(--color-yellow-500)': 'ds:bg-[var(--color-yellow-500)]',\n 'var(--color-indigo-500)': 'ds:bg-[var(--color-indigo-500)]',\n 'var(--color-orange-500)': 'ds:bg-[var(--color-orange-500)]',\n 'var(--color-fuchsia-500)': 'ds:bg-[var(--color-fuchsia-500)]',\n 'var(--color-grey-700)': 'ds:bg-[var(--color-grey-700)]',\n};\n\nfunction operatorDotClass(colorId: number | string | undefined): string {\n return (\n OPERATOR_DOT_CLASS[colorIdToToken(colorId)] ??\n 'ds:bg-[var(--color-grey-700)]'\n );\n}\n\n/** Age in whole years from a DOB string, or undefined if unparseable. */\nfunction ageFromDob(dobIso: string | undefined): number | undefined {\n if (!dobIso) return undefined;\n const dob = new Date(dobIso);\n if (Number.isNaN(dob.getTime())) return undefined;\n const now = new Date();\n let age = now.getFullYear() - dob.getFullYear();\n const monthDiff = now.getMonth() - dob.getMonth();\n if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) {\n age--;\n }\n return age < 0 || age > 130 ? undefined : age;\n}\n\n/* -------------------------------------------------------------------- */\n/* AppointmentCard */\n/* */\n/* Single-row appointment surface — sibling of AgendaCard, but richer: */\n/* leading timestamp, operator + patient avatars with the operator */\n/* colour dot, a lifecycle-state Badge (announced by label, never colour */\n/* alone), treatment / tooth Tags, and an optional advance-deposit */\n/* TransactionChip. State→Badge-variant + colour-id→token + URL-safety */\n/* come from the shared `_shared/entity-card` helpers. */\n/* */\n/* All visible text flows through useTranslation('ui') against the */\n/* `appointmentCard.*` namespace (plus shared `financial.*` for money). */\n/* -------------------------------------------------------------------- */\n\n// Back-compat / one-stop import — the URL guard lives in the shared helper.\nexport { isSafeEntityUrl as isSafeAppointmentUrl } from '../_shared/is-safe-url';\n\n/* -------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------- */\n\n/** Appointment delivery channel. */\nexport type AppointmentType = 'inPractice' | 'telehealth';\n\n/** First-visit tri-state flag. */\nexport type AppointmentFirstVisit = 'yes' | 'no' | 'unknown';\n\n/** Operator (clinician) summary — name + optional palette colour id. */\nexport interface AppointmentOperator {\n /** Operator display name — drives the avatar initials + accessible name. */\n name: string;\n /** Numeric palette colour id, resolved to a kit token for the colour dot. */\n colorId?: number | string;\n}\n\n/** Patient summary — identity + optional age driver. */\nexport interface AppointmentPatient {\n /** Patient display name. */\n name: string;\n /** Optional avatar image URL. */\n avatarUrl?: string;\n /** ISO-8601 date of birth — when present, the card renders the age as a\n * suffix on the name (e.g. \"Carol Danvers · 45\"). */\n dobIso?: string;\n}\n\n/** One treatment line within the appointment. */\nexport interface AppointmentTreatment {\n /** Localised care / treatment name. */\n careName: string;\n /** Optional tooth elements (e.g. FDI ids) the treatment targets. */\n elements?: string[];\n}\n\n/** Booking-reason metadata captured at online-booking time. */\nexport interface AppointmentBookingReason {\n /** Localised booking-reason description. */\n description: string;\n /** Expected duration in minutes. */\n durationMin?: number;\n /** Advance / deposit amount in cents (non-negative). */\n advanceAmountCents?: number;\n /** Localised specialty label. */\n specialty?: string;\n}\n\n/** Money summary for the appointment. */\nexport interface AppointmentMoney {\n /** Total billable amount in cents. When present, rendered as a\n * TransactionChip. */\n billableAmountCents?: number;\n /** Outstanding unpaid amount in cents. When > 0, rendered as a warning\n * TransactionChip so the front desk can flag it at a glance. */\n unpaidAmountCents?: number;\n}\n\n/** Signing status for documents attached to the appointment. */\nexport interface AppointmentSigning {\n /** How many documents require a signature. */\n required: number;\n /** How many have been completed so far. */\n toComplete: number;\n}\n\n/** Boolean appointment flags surfaced as chips / indicators. */\nexport interface AppointmentFlags {\n bookedOnline?: boolean;\n noPatientAssigned?: boolean;\n highlightedAnamnesis?: boolean;\n billable?: boolean;\n}\n\nexport interface AppointmentItem {\n /** Stable appointment identifier. */\n id: string;\n /** ISO-8601 start instant. */\n startIso: string;\n /** Duration in minutes. */\n durationMin: number;\n /** Lifecycle state — drives the Badge variant + label. */\n state: AppointmentState;\n /** Delivery channel — drives the leading type glyph. */\n type: AppointmentType;\n /** First-visit flag. */\n firstVisit?: AppointmentFirstVisit;\n /** Assigned operator. */\n operator?: AppointmentOperator;\n /** Chair / room label — surfaced as a chip. */\n chair?: string;\n /**\n * The care plan this appointment belongs to, when any — surfaced as a chip\n * (`Care plan {number}`). `url` is the deep link the consumer may use for\n * navigation; the chip itself is non-interactive so it never nests an anchor\n * inside the row's own stretched link.\n */\n carePlan?: { number: string; url?: string };\n /** Patient identity. */\n patient?: AppointmentPatient;\n /** Treatment lines. */\n treatments?: AppointmentTreatment[];\n /** Online booking-reason metadata. */\n bookingReason?: AppointmentBookingReason;\n /** Boolean flags. */\n flags?: AppointmentFlags;\n /** Money summary — billable + unpaid amounts. */\n money?: AppointmentMoney;\n /** Whether this appointment is part of a recurring series. */\n recurring?: boolean;\n /** Signing status for attached documents. */\n signing?: AppointmentSigning;\n /** A note left by the patient at booking time. When present, a small\n * message icon signals it. */\n bookingNote?: string;\n /** Optional deep link — when present (and safe) the row renders as an anchor. */\n url?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* CVA — row */\n/* -------------------------------------------------------------------- */\n\nconst appointmentCardVariants = cva(\n [\n 'ds:relative ds:flex ds:items-start ds:gap-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:text-start ds:group',\n 'ds:bg-[var(--card)] ds:text-[color:var(--card-foreground)]',\n 'ds:transition-[colors,border-color,box-shadow] ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n 'ds:forced-colors:border ds:forced-colors:border-[CanvasText]',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:p-[var(--spacing-sm)]',\n md: 'ds:p-[var(--spacing-md)]',\n },\n interactive: {\n true: 'ds:hover:bg-[color:var(--muted)]/40 ds:cursor-pointer',\n false: '',\n },\n surface: {\n // `flat` (default) is the chrome-less row used inside a bordered\n // AppointmentTray. `elevated` gives each row its own card chrome\n // (border + shadow) for use directly on a rail, e.g. AppointmentTimeline.\n // Uses `--shadow-sm` (a row lift), not `--shadow-card`/`--shadow-lg`:\n // the rail's `overflow-y:auto` scroll region clips `overflow-x` at a\n // narrow gutter, so a wide 30px-blur shadow gets a hard-edged clip.\n flat: '',\n elevated:\n 'ds:border ds:border-[color:var(--card-border)] ds:[.theme-accessible_&]:border-2 ds:shadow-[var(--shadow-sm)]',\n },\n selected: {\n // The row the host has marked as the active/selected appointment —\n // matches the `current` note's info-tinted accent: a solid\n // inline-start bar plus a soft info wash, so the eye keeps its\n // place in the list after a click.\n true: 'ds:border-s-2 ds:border-s-[color:var(--info)] ds:bg-[color:var(--info)]/10',\n false: '',\n },\n },\n defaultVariants: {\n size: 'sm',\n interactive: false,\n surface: 'flat',\n selected: false,\n },\n },\n);\n\nconst stretchedLinkClass = [\n // Interactive elements need a box to remain keyboard-focusable in browsers.\n 'ds:inline-flex ds:min-w-0',\n 'ds:focus-visible:outline-none',\n \"ds:after:content-[''] ds:after:absolute ds:after:inset-0 ds:after:rounded-[var(--radius-md)]\",\n 'ds:after:pointer-events-auto',\n 'ds:focus-visible:after:outline-[length:var(--focus-ring-width)]',\n 'ds:focus-visible:after:outline-solid',\n 'ds:focus-visible:after:outline-[color:var(--ring)]',\n 'ds:focus-visible:after:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:after:outline-[CanvasText]',\n].join(' ');\n\nconst TYPE_ICON: Record<AppointmentType, typeof MapPin> = {\n inPractice: MapPin,\n telehealth: Video,\n};\n\n/* -------------------------------------------------------------------- */\n/* Props */\n/* -------------------------------------------------------------------- */\n\nexport interface AppointmentCardProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'title'>,\n VariantProps<typeof appointmentCardVariants> {\n /** The appointment to render. */\n item: AppointmentItem;\n /** Visual density. */\n size?: 'sm' | 'md';\n /**\n * `'flat'` (default) — chrome-less row for use inside a bordered\n * `AppointmentTray`. `'elevated'` — each row carries its own card chrome\n * (border + shadow), for placing rows directly on a rail (AppointmentTimeline).\n */\n surface?: 'flat' | 'elevated';\n /** BCP-47 locale override for the timestamp + currency. */\n locale?: string;\n /** ISO-4217 currency code for the advance-deposit chip. Defaults to `EUR`. */\n currency?: string;\n /**\n * Show the patient identity (avatar + name as the row title). Default `true`.\n * Set `false` in single-patient surfaces (e.g. a patient's own\n * `AppointmentTimeline`) where repeating the name is redundant — the row then\n * leads with the operator as its title, falling back to a generic label.\n */\n showPatient?: boolean;\n /** Fires when the row is activated. */\n onActivate?: (item: AppointmentItem) => void;\n /**\n * Mark this row as the active/selected appointment — an info-tinted\n * inline-start bar plus a soft wash, so the eye keeps its place in the\n * list after a click. Renders `aria-current=\"true\"` for assistive tech.\n */\n selected?: boolean;\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const AppointmentCard = forwardRef<HTMLDivElement, AppointmentCardProps>(\n (\n {\n item,\n size = 'sm',\n surface = 'flat',\n locale,\n currency = 'EUR',\n showPatient = true,\n onActivate,\n selected = false,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const interactive = !!onActivate;\n const hasSafeUrl = !!item.url && isSafeEntityUrl(item.url);\n\n const patientName = item.patient?.name ?? t('appointmentCard.noPatient');\n const operatorName = item.operator?.name;\n const stateLabel = t(`appointmentCard.state.${item.state}`);\n const patientAge = ageFromDob(item.patient?.dobIso);\n const noPatient = item.flags?.noPatientAssigned || !item.patient;\n\n const avatarSize = size === 'md' ? 'md' : 'sm';\n const TypeIcon = TYPE_ICON[item.type];\n\n // In single-patient context the patient name is redundant, so the row leads\n // with the operator (the \"who am I seeing\") and falls back to a generic\n // label when no operator is set.\n const title = showPatient\n ? patientName\n : (operatorName ?? t('appointmentCard.appointment'));\n\n const ariaLabel = showPatient\n ? t('appointmentCard.itemLabel', {\n patient: patientName,\n state: stateLabel,\n })\n : t('appointmentCard.itemLabelGeneric', { title, state: stateLabel });\n\n const titleNode = (\n <span className=\"ds:min-w-0 ds:truncate type-title-item ds:text-[color:var(--foreground)]\">\n {title}\n {showPatient && patientAge !== undefined ? (\n <span className=\"ds:ms-[var(--spacing-2xs)] ds:font-normal ds:text-[color:var(--muted-foreground)]\">\n · {patientAge}\n </span>\n ) : null}\n </span>\n );\n\n let activator: ReactNode;\n if (interactive && hasSafeUrl) {\n activator = (\n <a\n href={item.url}\n aria-label={ariaLabel}\n className={stretchedLinkClass}\n onClick={(e) => {\n if (e.defaultPrevented || e.metaKey || e.ctrlKey || e.shiftKey)\n return;\n onActivate?.(item);\n }}\n >\n {titleNode}\n </a>\n );\n } else if (interactive) {\n activator = (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={\n stretchedLinkClass +\n ' ds:bg-transparent ds:border-0 ds:p-0 ds:text-start'\n }\n onClick={() => onActivate?.(item)}\n >\n {titleNode}\n </button>\n );\n } else {\n activator = titleNode;\n }\n\n // Treatment / tooth-element Tags. Each treatment becomes one Tag; the\n // tooth elements (when present) are appended to the visible label.\n const treatmentTags = (item.treatments ?? []).map((tx, index) => {\n const label =\n tx.elements && tx.elements.length > 0\n ? t('appointmentCard.treatmentWithElements', {\n care: tx.careName,\n elements: tx.elements.join(', '),\n })\n : tx.careName;\n return (\n <Tag\n key={`${tx.careName}-${index}`}\n label={label}\n variant=\"neutral\"\n fill=\"outline\"\n size=\"sm\"\n maxInlineSize=\"12rem\"\n />\n );\n });\n\n const advanceCents = item.bookingReason?.advanceAmountCents;\n const hasAdvance = typeof advanceCents === 'number' && advanceCents > 0;\n const unpaidCents = item.money?.unpaidAmountCents;\n const hasUnpaid = typeof unpaidCents === 'number' && unpaidCents > 0;\n\n return (\n <div\n ref={ref}\n /* `listitem` by default — the card is normally a list child. A\n consumer composing a richer row (card plus its own action row)\n owns the semantics instead and passes `role=\"presentation\"`,\n so the two do not nest. `rest` is spread after this. */\n role=\"listitem\"\n data-component=\"appointment-card\"\n data-component-id={item.id}\n data-state={item.state}\n data-type={item.type}\n aria-current={selected ? 'true' : undefined}\n className={appointmentCardVariants({\n size,\n interactive,\n surface,\n selected,\n className,\n })}\n {...rest}\n >\n {/* Leading rail: type glyph + start time + duration */}\n {/* min-w, not a fixed w: a 12-hour time (\"10:30 AM\") plus the type\n glyph is wider than 4rem, and must never wrap AM/PM onto a\n second line. */}\n <span className=\"ds:flex ds:min-w-20 ds:shrink-0 ds:flex-col ds:items-start ds:gap-[var(--spacing-2xs)]\">\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] ds:whitespace-nowrap ds:text-[color:var(--muted-foreground)]\">\n <TypeIcon aria-hidden=\"true\" className=\"ds:size-3.5 ds:shrink-0\" />\n <span className=\"ds:sr-only\">\n {t(`appointmentCard.type.${item.type}`)}\n </span>\n <Timestamp\n value={item.startIso}\n format=\"absolute\"\n shape=\"bare\"\n locale={locale}\n absoluteFormat={{ hour: 'numeric', minute: '2-digit' }}\n className=\"type-body-sm ds:font-medium ds:text-[color:var(--foreground)] ds:tabular-nums\"\n />\n </span>\n <span className=\"type-eyebrow ds:text-[color:var(--muted-foreground)]\">\n {t('appointmentCard.duration', { count: item.durationMin })}\n </span>\n </span>\n\n {/* Operator avatar with colour dot */}\n {operatorName ? (\n <span className=\"ds:relative ds:shrink-0\">\n <Avatar\n name={operatorName}\n color={colorIdToAvatarToken(item.operator?.colorId)}\n size={avatarSize}\n aria-hidden=\"true\"\n role=\"presentation\"\n aria-label={undefined}\n />\n <span\n aria-hidden=\"true\"\n className={\n 'ds:absolute ds:bottom-0 ds:end-0 ds:size-2.5 ds:rounded-[var(--radius-full)] ds:border ds:border-[color:var(--card)] ' +\n operatorDotClass(item.operator?.colorId)\n }\n />\n </span>\n ) : null}\n\n {/* Main content column */}\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]\">\n <div className=\"ds:flex ds:items-start ds:gap-[var(--spacing-sm)]\">\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {showPatient && item.patient?.avatarUrl ? (\n <Avatar\n name={patientName}\n src={item.patient.avatarUrl}\n size={avatarSize}\n className=\"ds:shrink-0\"\n aria-hidden=\"true\"\n role=\"presentation\"\n aria-label={undefined}\n />\n ) : null}\n {showPatient && noPatient ? (\n <span\n className={`ds:shrink-0 ds:inline-flex ds:items-center ds:justify-center ds:rounded-[var(--radius-full)] ds:bg-[color:var(--muted)] ds:text-[color:var(--muted-foreground)] ${\n avatarSize === 'md' ? 'ds:size-10' : 'ds:size-8'\n }`}\n >\n <UserX aria-hidden=\"true\" className=\"ds:size-4\" />\n </span>\n ) : null}\n {activator}\n </div>\n <Badge\n variant={appointmentStateBadge(item.state)}\n size=\"sm\"\n withDot\n className=\"ds:shrink-0\"\n >\n {stateLabel}\n </Badge>\n </div>\n\n {/* Meta line: operator name · specialty · first visit · booking note\n (chair moved to a chip below). When the patient is hidden the\n operator is promoted to the title, so it drops out of the meta. */}\n {(showPatient && operatorName) ||\n item.bookingReason?.specialty ||\n item.firstVisit === 'yes' ||\n item.firstVisit === 'unknown' ||\n item.bookingNote ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-2xs)] type-eyebrow ds:text-[color:var(--muted-foreground)]\">\n {showPatient && operatorName ? <span>{operatorName}</span> : null}\n {item.bookingReason?.specialty ? (\n <span>{item.bookingReason.specialty}</span>\n ) : null}\n {item.firstVisit === 'yes' ? (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]\">\n <Star aria-hidden=\"true\" className=\"ds:size-3 ds:shrink-0\" />\n {t('appointmentCard.firstVisit')}\n </span>\n ) : null}\n {item.firstVisit === 'unknown' ? (\n <span className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]\">\n <Star aria-hidden=\"true\" className=\"ds:size-3 ds:shrink-0\" />\n {t('appointmentCard.firstVisitUnknown')}\n </span>\n ) : null}\n {item.bookingNote ? (\n <span\n className=\"ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]\"\n title={t('appointmentCard.hasBookingNote')}\n >\n <MessageSquareText\n aria-hidden=\"true\"\n className=\"ds:size-3 ds:shrink-0\"\n />\n {t('appointmentCard.hasBookingNote')}\n </span>\n ) : null}\n </div>\n ) : null}\n\n {/* Booking reason */}\n {item.bookingReason?.description ? (\n <span className=\"type-body-sm ds:text-[color:var(--foreground)] ds:truncate\">\n {item.bookingReason.description}\n </span>\n ) : null}\n\n {/* Treatment / tooth Tags */}\n {treatmentTags.length > 0 ? (\n <div className=\"ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]\">\n {treatmentTags}\n </div>\n ) : null}\n\n {/* Chips: care plan · chair · flags · recurring · signing ·\n advance-deposit · unpaid balance · billable */}\n {item.carePlan ||\n item.chair ||\n item.flags?.bookedOnline ||\n item.flags?.highlightedAnamnesis ||\n item.flags?.billable ||\n item.recurring ||\n item.signing ||\n hasAdvance ||\n hasUnpaid ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\">\n {item.carePlan ? (\n <Badge\n variant=\"accentSoft\"\n size=\"sm\"\n leading={<ClipboardPlus />}\n >\n {t('appointmentCard.carePlan', {\n number: item.carePlan.number,\n })}\n </Badge>\n ) : null}\n {item.chair ? (\n <Badge variant=\"neutral\" size=\"sm\" leading={<Armchair />}>\n {t('appointmentCard.chair', { chair: item.chair })}\n </Badge>\n ) : null}\n {item.flags?.bookedOnline ? (\n <Badge variant=\"info\" size=\"sm\" leading={<Globe />}>\n {t('appointmentCard.flag.bookedOnline')}\n </Badge>\n ) : null}\n {item.flags?.highlightedAnamnesis ? (\n <Badge variant=\"warning\" size=\"sm\" withDot>\n {t('appointmentCard.flag.highlightedAnamnesis')}\n </Badge>\n ) : null}\n {item.recurring ? (\n <Badge variant=\"neutral\" size=\"sm\" leading={<Repeat />}>\n {t('appointmentCard.recurring')}\n </Badge>\n ) : null}\n {item.signing ? (\n <Badge\n variant={\n item.signing.toComplete >= item.signing.required\n ? 'success'\n : 'warning'\n }\n size=\"sm\"\n leading={<FileSignature />}\n >\n {t('appointmentCard.signing', {\n complete: item.signing.toComplete,\n required: item.signing.required,\n })}\n </Badge>\n ) : null}\n {item.flags?.billable ? (\n <Badge variant=\"success\" size=\"sm\" withDot>\n {t('appointmentCard.flag.billable')}\n </Badge>\n ) : null}\n {hasAdvance ? (\n <TransactionChip\n state=\"to-invoice\"\n amount={(advanceCents as number) / 100}\n currency={currency}\n locale={locale}\n size=\"sm\"\n showLabel\n />\n ) : null}\n {hasUnpaid ? (\n <TransactionChip\n state=\"debt\"\n amount={unpaidCents / 100}\n currency={currency}\n locale={locale}\n size=\"sm\"\n showLabel\n />\n ) : null}\n </div>\n ) : null}\n </div>\n\n {interactive ? (\n <ChevronRight\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:shrink-0 ds:self-center ds:text-[color:var(--muted-foreground)] ds:opacity-0 ds:transition-opacity ds:motion-reduce:transition-none ds:group-hover:opacity-100 ds:group-focus-within:opacity-100 ds:rtl:rotate-180\"\n />\n ) : null}\n </div>\n );\n },\n);\n\nAppointmentCard.displayName = 'AppointmentCard';\n"],"names":["__iconNode","ClipboardPlus","createLucideIcon","FilePenLine","MessageSquareText","UserX","OPERATOR_DOT_CLASS","operatorDotClass","colorId","colorIdToToken","ageFromDob","dobIso","dob","now","age","monthDiff","appointmentCardVariants","cva","stretchedLinkClass","TYPE_ICON","MapPin","Video","AppointmentCard","forwardRef","item","size","surface","locale","currency","showPatient","onActivate","selected","className","rest","ref","t","useTranslation","interactive","hasSafeUrl","isSafeEntityUrl","patientName","_a","operatorName","_b","stateLabel","patientAge","_c","noPatient","_d","avatarSize","TypeIcon","title","ariaLabel","titleNode","jsxs","activator","jsx","e","treatmentTags","tx","index","label","Tag","advanceCents","_e","hasAdvance","unpaidCents","_f","hasUnpaid","Timestamp","Avatar","colorIdToAvatarToken","_g","_h","_i","Badge","appointmentStateBadge","_j","_k","Star","_l","_m","_n","_o","Armchair","_p","Globe","_q","Repeat","FileSignature","_r","TransactionChip","ChevronRight"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -1,289 +0,0 @@
1
- import { jsx as s, jsxs as j } from "react/jsx-runtime";
2
- import { forwardRef as ce, useRef as R, useState as X, useCallback as fe, Children as z, isValidElement as Y, useEffect as pe, cloneElement as B } from "react";
3
- import { c as me } from "./index-D2ZczOXr.js";
4
- import { useTranslation as be } from "react-i18next";
5
- import { I as Z } from "./icon-button-DA2CAGHZ.js";
6
- import { D as x } from "./dropdown-menu-DU-Hrf33.js";
7
- import { u as ge } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
8
- import { u as we } from "./use-priority-overflow-c9SjxZkZ.js";
9
- import { E } from "./ellipsis-dRo9ouSU.js";
10
- const ee = me(
11
- "ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10",
12
- {
13
- variants: {
14
- orientation: {
15
- horizontal: [
16
- "ds:flex-row",
17
- "ds:[&>*:not(:first-child)]:rounded-s-none",
18
- "ds:[&>*:not(:last-child)]:rounded-e-none",
19
- "ds:[&>*:not(:first-child)]:-ms-px"
20
- ].join(" "),
21
- vertical: [
22
- "ds:flex-col",
23
- "ds:[&>*:not(:first-child)]:rounded-t-none",
24
- "ds:[&>*:not(:last-child)]:rounded-b-none",
25
- "ds:[&>*:not(:first-child)]:-mt-px"
26
- ].join(" ")
27
- },
28
- separator: {
29
- true: "",
30
- false: ""
31
- }
32
- },
33
- compoundVariants: [
34
- {
35
- orientation: "horizontal",
36
- separator: !0,
37
- class: "ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border"
38
- },
39
- {
40
- orientation: "vertical",
41
- separator: !0,
42
- class: "ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border"
43
- }
44
- ],
45
- defaultVariants: {
46
- orientation: "horizontal",
47
- separator: !1
48
- }
49
- }
50
- ), D = "ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none", ve = ce(
51
- ({
52
- className: F,
53
- orientation: f = "horizontal",
54
- separator: G = !1,
55
- toolbar: b = !1,
56
- intent: g = "outline",
57
- label: re,
58
- overflow: te = "none",
59
- collapseToIcons: I = !1,
60
- children: k,
61
- ...K
62
- }, w) => {
63
- const { t: $ } = be(), V = re ?? $("buttonGroup.label", "Button group"), M = $("buttonGroup.more", "More options"), u = te === "menu" && f !== "vertical", d = b, p = R([]), [c, v] = X(0), T = R(null), [C, oe] = X(!1);
64
- ge(() => {
65
- if (typeof window > "u") return;
66
- const e = T.current;
67
- e && oe(window.getComputedStyle(e).direction === "rtl");
68
- }, []);
69
- const O = fe(
70
- (e) => {
71
- var Q;
72
- if (!d) return;
73
- const r = p.current.filter(Boolean).length;
74
- if (r === 0) return;
75
- const o = f === "vertical" ? "ArrowDown" : C ? "ArrowLeft" : "ArrowRight", t = f === "vertical" ? "ArrowUp" : C ? "ArrowRight" : "ArrowLeft";
76
- let n = null;
77
- if (e.key === o ? n = (c + 1) % r : e.key === t ? n = (c - 1 + r) % r : e.key === "Home" ? n = 0 : e.key === "End" && (n = r - 1), n === null) return;
78
- const a = r;
79
- let i = 0, l = n;
80
- for (; i < a; ) {
81
- const S = p.current[l];
82
- if (S && S.getAttribute("aria-disabled") !== "true" && !S.disabled)
83
- break;
84
- l = e.key === t || e.key === "End" ? (l - 1 + r) % r : (l + 1) % r, i += 1;
85
- }
86
- e.preventDefault(), v(l), (Q = p.current[l]) == null || Q.focus();
87
- },
88
- [d, f, C, c]
89
- ), m = u ? z.toArray(k).filter(Y) : [], P = (e) => {
90
- if (typeof e.props.children == "string") return e.props.children;
91
- const r = e.props["aria-label"];
92
- return typeof r == "string" ? r : null;
93
- };
94
- R(!1);
95
- const ne = m.map((e) => {
96
- const r = e.props["data-overflow-pin"] !== void 0, o = P(e) !== null;
97
- return r || !o;
98
- }), {
99
- containerRef: se,
100
- fullRowRef: ie,
101
- iconRowRef: ae,
102
- triggerProbeRef: le,
103
- stage: ue,
104
- visible: L,
105
- overflowing: h
106
- } = we({
107
- enabled: u,
108
- count: m.length,
109
- twoStage: I,
110
- pinned: ne
111
- }), U = R(null), y = u ? L.filter(Boolean).length : z.count(k);
112
- pe(() => {
113
- var r;
114
- if (!d || !u) return;
115
- const e = y + (h ? 1 : 0);
116
- e > 0 && c >= e && (v(e - 1), document.activeElement === document.body && ((r = U.current) == null || r.focus()));
117
- }, [
118
- d,
119
- u,
120
- y,
121
- h,
122
- c
123
- ]);
124
- const _ = (e, r) => (o) => {
125
- p.current[r] = o;
126
- const t = e.ref;
127
- typeof t == "function" ? t(o) : t != null && typeof t == "object" && (t.current = o);
128
- }, de = u ? null : z.map(k, (e, r) => {
129
- if (!Y(e)) return e;
130
- const o = e, t = {
131
- intent: o.props.intent ?? g
132
- };
133
- return d && (t.tabIndex = r === c ? 0 : -1, t.onFocus = (n) => {
134
- var a, i;
135
- v(r), (i = (a = o.props).onFocus) == null || i.call(a, n);
136
- }, t.ref = _(o, r)), B(
137
- o,
138
- t
139
- );
140
- });
141
- let H = null, W = null;
142
- if (u) {
143
- p.current.length = y + (h ? 1 : 0);
144
- let e = -1;
145
- H = m.map((r, o) => {
146
- if (!L[o]) return null;
147
- e += 1;
148
- const t = e, n = {
149
- intent: r.props.intent ?? g
150
- };
151
- return I && ue === "icons" && r.props.children && (r.props.startIcon || r.props.endIcon) && (n.hideLabel = !0), d && (n.tabIndex = t === c ? 0 : -1, n.onFocus = (a) => {
152
- var i, l;
153
- v(t), (l = (i = r.props).onFocus) == null || l.call(i, a);
154
- }, n.ref = _(r, t)), B(r, n);
155
- }), W = m.map((r, o) => {
156
- if (L[o]) return null;
157
- const t = P(r);
158
- return t === null ? null : /* @__PURE__ */ s(
159
- x.Item,
160
- {
161
- startIcon: r.props.startIcon,
162
- disabled: r.props.disabled === !0 || r.props.loading === !0,
163
- onSelect: (n) => {
164
- var a, i;
165
- (i = (a = r.props).onClick) == null || i.call(
166
- a,
167
- n
168
- );
169
- },
170
- children: t
171
- },
172
- r.key ?? o
173
- );
174
- });
175
- }
176
- const q = (e) => {
177
- T.current = e, typeof w == "function" ? w(e) : w && typeof w == "object" && (w.current = e);
178
- };
179
- if (!u)
180
- return /* @__PURE__ */ s(
181
- "div",
182
- {
183
- ref: q,
184
- role: b ? "toolbar" : "group",
185
- "aria-label": V,
186
- "aria-orientation": b ? f ?? "horizontal" : void 0,
187
- "data-component": "button-group",
188
- onKeyDown: O,
189
- className: ee({ orientation: f, separator: G, className: F }),
190
- ...K,
191
- children: de
192
- }
193
- );
194
- const A = ee({ orientation: f, separator: G }), N = y, J = (e, r, o) => B(e, {
195
- key: e.key ?? r,
196
- intent: e.props.intent ?? g,
197
- tabIndex: -1,
198
- // Same rule as the live strip: icon-only children never hideLabel.
199
- ...o && e.props.children && (e.props.startIcon || e.props.endIcon) ? { hideLabel: !0 } : null,
200
- ref: null
201
- });
202
- return /* @__PURE__ */ s(
203
- "div",
204
- {
205
- ref: q,
206
- "data-component": "button-group",
207
- className: [
208
- "ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip",
209
- F ?? ""
210
- ].join(" ").trim(),
211
- ...K,
212
- children: /* @__PURE__ */ j("div", { ref: se, className: "ds:block ds:w-full ds:min-w-0", children: [
213
- /* @__PURE__ */ s(
214
- "div",
215
- {
216
- ref: ie,
217
- "aria-hidden": "true",
218
- inert: !0,
219
- className: `${D} ${A}`,
220
- children: m.map((e, r) => J(e, r, !1))
221
- }
222
- ),
223
- I ? /* @__PURE__ */ s(
224
- "div",
225
- {
226
- ref: ae,
227
- "aria-hidden": "true",
228
- inert: !0,
229
- className: `${D} ${A}`,
230
- children: m.map((e, r) => J(e, r, !0))
231
- }
232
- ) : null,
233
- /* @__PURE__ */ s(
234
- "span",
235
- {
236
- ref: le,
237
- "aria-hidden": "true",
238
- inert: !0,
239
- className: D,
240
- children: /* @__PURE__ */ s(
241
- Z,
242
- {
243
- icon: /* @__PURE__ */ s(E, {}),
244
- intent: g,
245
- "aria-label": M,
246
- tabIndex: -1
247
- }
248
- )
249
- }
250
- ),
251
- /* @__PURE__ */ j(
252
- "div",
253
- {
254
- role: b ? "toolbar" : "group",
255
- "aria-label": V,
256
- "aria-orientation": b ? "horizontal" : void 0,
257
- onKeyDown: O,
258
- className: `${A} ds:max-w-full`,
259
- children: [
260
- H,
261
- h ? /* @__PURE__ */ j(x.Root, { children: [
262
- /* @__PURE__ */ s(x.Trigger, { asChild: !0, children: /* @__PURE__ */ s(
263
- Z,
264
- {
265
- icon: /* @__PURE__ */ s(E, {}),
266
- intent: g,
267
- "aria-label": M,
268
- ref: (e) => {
269
- U.current = e, p.current[N] = e;
270
- },
271
- tabIndex: d ? c === N ? 0 : -1 : void 0,
272
- onFocus: d ? () => v(N) : void 0
273
- }
274
- ) }),
275
- /* @__PURE__ */ s(x.Content, { align: "end", children: W })
276
- ] }) : null
277
- ]
278
- }
279
- )
280
- ] })
281
- }
282
- );
283
- }
284
- );
285
- ve.displayName = "ButtonGroup";
286
- export {
287
- ve as B
288
- };
289
- //# sourceMappingURL=button-group-CaxRJsNG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-group-CaxRJsNG.js","sources":["../../src/components/button-group/button-group.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Ellipsis } from 'lucide-react';\nimport type { ButtonProps } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { DropdownMenu } from '../dropdown-menu';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { usePriorityOverflow } from '../../hooks/use-priority-overflow';\n\ntype ButtonIntent = NonNullable<ButtonProps['intent']>;\n\nconst buttonGroupVariants = cva(\n 'ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10',\n {\n variants: {\n orientation: {\n horizontal: [\n 'ds:flex-row',\n 'ds:[&>*:not(:first-child)]:rounded-s-none',\n 'ds:[&>*:not(:last-child)]:rounded-e-none',\n 'ds:[&>*:not(:first-child)]:-ms-px',\n ].join(' '),\n vertical: [\n 'ds:flex-col',\n 'ds:[&>*:not(:first-child)]:rounded-t-none',\n 'ds:[&>*:not(:last-child)]:rounded-b-none',\n 'ds:[&>*:not(:first-child)]:-mt-px',\n ].join(' '),\n },\n separator: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n separator: true,\n class:\n 'ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border',\n },\n {\n orientation: 'vertical',\n separator: true,\n class:\n 'ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border',\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n separator: false,\n },\n },\n);\n\n// Hidden measurement rows: laid out (so widths are real) but invisible,\n// non-interactive and out of the a11y tree. Never display:none.\nconst MEASURE_ROW_CLASSES =\n 'ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none';\n\ntype GroupChildProps = {\n intent?: ButtonIntent;\n tabIndex?: number;\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n ref?: React.Ref<HTMLButtonElement>;\n children?: ReactNode;\n disabled?: boolean;\n loading?: boolean;\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n hideLabel?: boolean;\n 'aria-label'?: string;\n 'data-overflow-pin'?: boolean | 'true' | '';\n};\n\nexport interface ButtonGroupProps\n extends\n HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof buttonGroupVariants> {\n /**\n * Accessible label for the group. Falls back to the translated\n * `ui.buttonGroup.label` string when not provided.\n */\n label?: string;\n /**\n * When the children are interactive toolbar-style controls (e.g. toggles),\n * set this to render `role=\"toolbar\"` instead of `role=\"group\"`.\n */\n toolbar?: boolean;\n /**\n * Intent applied to every Button / IconButton child that does not set\n * its own `intent`. Defaults to `outline` — grouped buttons are peers,\n * not three solid-primary CTAs.\n */\n intent?: ButtonIntent;\n /**\n * `'menu'` keeps the strip on one line whatever the container width:\n * once the buttons stop fitting (after the optional `collapseToIcons`\n * stage) trailing ones move into a dropdown behind an ellipsis trigger.\n * The group then fills its container's inline size, so give it a bounded\n * parent. Horizontal only. Children needing to stay in the strip set\n * `data-overflow-pin`; children without a string label or `aria-label`\n * cannot be mirrored into the menu and are pinned automatically.\n */\n overflow?: 'none' | 'menu';\n /**\n * With `overflow=\"menu\"`: before spilling into the menu, hide every\n * child's label (`hideLabel`) and keep only its `startIcon` — buttons\n * without an icon shrink to their padding, so give each child one.\n */\n collapseToIcons?: boolean;\n}\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n className,\n orientation = 'horizontal',\n separator = false,\n toolbar = false,\n intent = 'outline',\n label,\n overflow = 'none',\n collapseToIcons = false,\n children,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const accessibleLabel = label ?? t('buttonGroup.label', 'Button group');\n const moreLabel = t('buttonGroup.more', 'More options');\n\n if (\n import.meta.env.DEV &&\n overflow === 'menu' &&\n orientation === 'vertical'\n ) {\n console.warn(\n 'ButtonGroup: overflow=\"menu\" is horizontal-only; falling back to overflow=\"none\".',\n );\n }\n const overflowEnabled = overflow === 'menu' && orientation !== 'vertical';\n\n // Roving tabindex — required by the WAI-ARIA toolbar pattern.\n // When `toolbar` is true, one child owns `tabIndex=0` and the rest are\n // `-1`. Arrow keys / Home / End move focus between children, respecting\n // orientation and RTL. Plain `group` mode keeps every child natively\n // tabbable.\n const rovingTabindex = toolbar;\n const buttonsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [focusIndex, setFocusIndex] = useState(0);\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [isRTL, setIsRTL] = useState(false);\n useIsomorphicLayoutEffect(() => {\n if (typeof window === 'undefined') return;\n const node = rootRef.current;\n if (!node) return;\n setIsRTL(window.getComputedStyle(node).direction === 'rtl');\n }, []);\n\n const handleRootKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (!rovingTabindex) return;\n const count = buttonsRef.current.filter(Boolean).length;\n if (count === 0) return;\n\n const forwardKey =\n orientation === 'vertical'\n ? 'ArrowDown'\n : isRTL\n ? 'ArrowLeft'\n : 'ArrowRight';\n const backwardKey =\n orientation === 'vertical'\n ? 'ArrowUp'\n : isRTL\n ? 'ArrowRight'\n : 'ArrowLeft';\n\n let next: number | null = null;\n if (event.key === forwardKey) next = (focusIndex + 1) % count;\n else if (event.key === backwardKey)\n next = (focusIndex - 1 + count) % count;\n else if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = count - 1;\n if (next === null) return;\n\n // Skip over disabled children.\n const maxAttempts = count;\n let attempts = 0;\n let candidate = next;\n while (attempts < maxAttempts) {\n const el = buttonsRef.current[candidate];\n if (\n el &&\n el.getAttribute('aria-disabled') !== 'true' &&\n !el.disabled\n ) {\n break;\n }\n candidate =\n event.key === backwardKey || event.key === 'End'\n ? (candidate - 1 + count) % count\n : (candidate + 1) % count;\n attempts += 1;\n }\n event.preventDefault();\n setFocusIndex(candidate);\n buttonsRef.current[candidate]?.focus();\n },\n [rovingTabindex, orientation, isRTL, focusIndex],\n );\n\n /* ---- Overflow bookkeeping (menu mode only) --------------------- */\n const childElements = overflowEnabled\n ? (Children.toArray(children).filter(isValidElement) as Array<\n ReactElement<GroupChildProps>\n >)\n : [];\n\n const mirrorLabel = (child: ReactElement<GroupChildProps>) => {\n if (typeof child.props.children === 'string') return child.props.children;\n const aria = child.props['aria-label'];\n return typeof aria === 'string' ? aria : null;\n };\n const warnedRef = useRef(false);\n const pinnedFlags = childElements.map((child) => {\n const explicit = child.props['data-overflow-pin'] !== undefined;\n const mirrorable = mirrorLabel(child) !== null;\n if (\n import.meta.env.DEV &&\n !explicit &&\n !mirrorable &&\n !warnedRef.current\n ) {\n warnedRef.current = true;\n console.warn(\n 'ButtonGroup: a child without a string label or aria-label cannot move into the overflow menu — it stays pinned in the strip.',\n );\n }\n return explicit || !mirrorable;\n });\n\n const {\n containerRef,\n fullRowRef,\n iconRowRef,\n triggerProbeRef,\n stage,\n visible,\n overflowing,\n } = usePriorityOverflow({\n enabled: overflowEnabled,\n count: childElements.length,\n twoStage: collapseToIcons,\n pinned: pinnedFlags,\n });\n\n const triggerNodeRef = useRef<HTMLButtonElement | null>(null);\n const visibleCount = overflowEnabled\n ? visible.filter(Boolean).length\n : Children.count(children);\n\n // Clamp the roving focus when items move into the menu; hand real focus\n // to the trigger only when the focused node was the one that left.\n useEffect(() => {\n if (!rovingTabindex || !overflowEnabled) return;\n const total = visibleCount + (overflowing ? 1 : 0);\n if (total > 0 && focusIndex >= total) {\n setFocusIndex(total - 1);\n if (document.activeElement === document.body) {\n triggerNodeRef.current?.focus();\n }\n }\n }, [\n rovingTabindex,\n overflowEnabled,\n visibleCount,\n overflowing,\n focusIndex,\n ]);\n\n const mergeChildRef = (\n childEl: ReactElement<GroupChildProps>,\n index: number,\n ) => {\n return (node: HTMLButtonElement | null) => {\n buttonsRef.current[index] = node;\n const originalRef = (\n childEl as unknown as { ref?: React.Ref<HTMLButtonElement> }\n ).ref;\n if (typeof originalRef === 'function') originalRef(node);\n else if (\n originalRef !== null &&\n originalRef !== undefined &&\n typeof originalRef === 'object'\n ) {\n (\n originalRef as React.MutableRefObject<HTMLButtonElement | null>\n ).current = node;\n }\n };\n };\n\n /* ---- Legacy path: overflow=\"none\" keeps today's exact DOM ------ */\n const enhanced = overflowEnabled\n ? null\n : Children.map(children, (child, index) => {\n if (!isValidElement(child)) return child;\n const childEl = child as ReactElement<GroupChildProps>;\n\n // Roving-tabindex wiring (ref / tabIndex / onFocus) is only needed in\n // `toolbar` mode. In plain `group` mode inject ONLY `intent`, so the group\n // composes with members that don't forward a ref — e.g. each wrapped in a\n // `DropdownMenu.Root` for a split-button strip — without React's \"function\n // components cannot be given refs\" warning. The joined styling is DOM-level\n // (`[&>*]`), so it still applies to the rendered buttons either way.\n const overrides: Record<string, unknown> = {\n intent: childEl.props.intent ?? intent,\n };\n if (rovingTabindex) {\n overrides.tabIndex = index === focusIndex ? 0 : -1;\n overrides.onFocus = (ev: React.FocusEvent<HTMLButtonElement>) => {\n setFocusIndex(index);\n childEl.props.onFocus?.(ev);\n };\n overrides.ref = mergeChildRef(childEl, index);\n }\n\n return cloneElement(\n childEl,\n overrides as Partial<typeof childEl.props>,\n );\n });\n\n /* ---- Menu path: strip of visible children + ellipsis trigger --- */\n let stripChildren: ReactNode = null;\n let menuItems: ReactNode = null;\n if (overflowEnabled) {\n buttonsRef.current.length = visibleCount + (overflowing ? 1 : 0);\n let stripIndex = -1;\n stripChildren = childElements.map((childEl, i) => {\n if (!visible[i]) return null;\n stripIndex += 1;\n const index = stripIndex;\n const overrides: Record<string, unknown> = {\n intent: childEl.props.intent ?? intent,\n };\n // Only children with an icon AND a text label collapse; icon-only\n // children (their children ARE the icon) would go blank.\n if (\n collapseToIcons &&\n stage === 'icons' &&\n childEl.props.children &&\n (childEl.props.startIcon || childEl.props.endIcon)\n )\n overrides.hideLabel = true;\n if (rovingTabindex) {\n overrides.tabIndex = index === focusIndex ? 0 : -1;\n overrides.onFocus = (ev: React.FocusEvent<HTMLButtonElement>) => {\n setFocusIndex(index);\n childEl.props.onFocus?.(ev);\n };\n overrides.ref = mergeChildRef(childEl, index);\n }\n return cloneElement(childEl, overrides as Partial<GroupChildProps>);\n });\n\n menuItems = childElements.map((childEl, i) => {\n if (visible[i]) return null;\n const itemLabel = mirrorLabel(childEl);\n if (itemLabel === null) return null;\n return (\n <DropdownMenu.Item\n key={childEl.key ?? i}\n startIcon={childEl.props.startIcon}\n disabled={\n childEl.props.disabled === true || childEl.props.loading === true\n }\n onSelect={(event) => {\n childEl.props.onClick?.(\n event as unknown as React.MouseEvent<HTMLButtonElement>,\n );\n }}\n >\n {itemLabel}\n </DropdownMenu.Item>\n );\n });\n }\n\n const mergedRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref && typeof ref === 'object') {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n };\n\n if (!overflowEnabled) {\n return (\n <div\n ref={mergedRootRef}\n role={toolbar ? 'toolbar' : 'group'}\n aria-label={accessibleLabel}\n aria-orientation={toolbar ? (orientation ?? 'horizontal') : undefined}\n data-component=\"button-group\"\n onKeyDown={handleRootKeyDown}\n className={buttonGroupVariants({ orientation, separator, className })}\n {...props}\n >\n {enhanced}\n </div>\n );\n }\n\n const stripClasses = buttonGroupVariants({ orientation, separator });\n const triggerIndex = visibleCount;\n const measureClone = (\n childEl: ReactElement<GroupChildProps>,\n i: number,\n icons: boolean,\n ) =>\n cloneElement(childEl, {\n key: childEl.key ?? i,\n intent: childEl.props.intent ?? intent,\n tabIndex: -1,\n // Same rule as the live strip: icon-only children never hideLabel.\n ...(icons &&\n childEl.props.children &&\n (childEl.props.startIcon || childEl.props.endIcon)\n ? { hideLabel: true }\n : null),\n ref: null,\n } as Partial<GroupChildProps>);\n\n return (\n <div\n ref={mergedRootRef}\n data-component=\"button-group\"\n className={[\n 'ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip',\n className ?? '',\n ]\n .join(' ')\n .trim()}\n {...props}\n >\n <div ref={containerRef} className=\"ds:block ds:w-full ds:min-w-0\">\n {/* Measurement rows: every item at natural width, both stages. */}\n <div\n ref={fullRowRef}\n aria-hidden=\"true\"\n inert\n className={`${MEASURE_ROW_CLASSES} ${stripClasses}`}\n >\n {childElements.map((c, i) => measureClone(c, i, false))}\n </div>\n {collapseToIcons ? (\n <div\n ref={iconRowRef}\n aria-hidden=\"true\"\n inert\n className={`${MEASURE_ROW_CLASSES} ${stripClasses}`}\n >\n {childElements.map((c, i) => measureClone(c, i, true))}\n </div>\n ) : null}\n <span\n ref={triggerProbeRef}\n aria-hidden=\"true\"\n inert\n className={MEASURE_ROW_CLASSES}\n >\n <IconButton\n icon={<Ellipsis />}\n intent={intent}\n aria-label={moreLabel}\n tabIndex={-1}\n />\n </span>\n\n <div\n role={toolbar ? 'toolbar' : 'group'}\n aria-label={accessibleLabel}\n aria-orientation={toolbar ? 'horizontal' : undefined}\n onKeyDown={handleRootKeyDown}\n className={`${stripClasses} ds:max-w-full`}\n >\n {stripChildren}\n {overflowing ? (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n icon={<Ellipsis />}\n intent={intent}\n aria-label={moreLabel}\n ref={(node: HTMLButtonElement | null) => {\n triggerNodeRef.current = node;\n buttonsRef.current[triggerIndex] = node;\n }}\n tabIndex={\n rovingTabindex\n ? focusIndex === triggerIndex\n ? 0\n : -1\n : undefined\n }\n onFocus={\n rovingTabindex\n ? () => setFocusIndex(triggerIndex)\n : undefined\n }\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n {menuItems}\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n ) : null}\n </div>\n </div>\n </div>\n );\n },\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n"],"names":["buttonGroupVariants","cva","MEASURE_ROW_CLASSES","ButtonGroup","forwardRef","className","orientation","separator","toolbar","intent","label","overflow","collapseToIcons","children","props","ref","t","useTranslation","accessibleLabel","moreLabel","overflowEnabled","rovingTabindex","buttonsRef","useRef","focusIndex","setFocusIndex","useState","rootRef","isRTL","setIsRTL","useIsomorphicLayoutEffect","node","handleRootKeyDown","useCallback","event","count","forwardKey","backwardKey","next","maxAttempts","attempts","candidate","el","_a","childElements","Children","isValidElement","mirrorLabel","child","aria","pinnedFlags","explicit","mirrorable","containerRef","fullRowRef","iconRowRef","triggerProbeRef","stage","visible","overflowing","usePriorityOverflow","triggerNodeRef","visibleCount","useEffect","total","mergeChildRef","childEl","index","originalRef","enhanced","overrides","ev","_b","cloneElement","stripChildren","menuItems","stripIndex","i","itemLabel","jsx","DropdownMenu","mergedRootRef","stripClasses","triggerIndex","measureClone","icons","c","IconButton","Ellipsis","jsxs"],"mappings":"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"}