@alfadocs/ui-kit-debug 0.72.2 → 0.75.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.
- package/dist/_chunks/actions-cell-renderer-DLrcSTK_.js +1546 -0
- package/dist/_chunks/actions-cell-renderer-DLrcSTK_.js.map +1 -0
- package/dist/_chunks/{agenda-tray-loL2A3Cx.js → agenda-tray-CVf-jfWU.js} +3 -3
- package/dist/_chunks/{agenda-tray-loL2A3Cx.js.map → agenda-tray-CVf-jfWU.js.map} +1 -1
- package/dist/_chunks/{ai-consent-banner-Bke9m8VS.js → ai-consent-banner-DUhr1yNj.js} +2 -2
- package/dist/_chunks/{ai-consent-banner-Bke9m8VS.js.map → ai-consent-banner-DUhr1yNj.js.map} +1 -1
- package/dist/_chunks/{ai-prompt-input-TVI95hJD.js → ai-prompt-input-DziJCGLe.js} +3 -3
- package/dist/_chunks/{ai-prompt-input-TVI95hJD.js.map → ai-prompt-input-DziJCGLe.js.map} +1 -1
- package/dist/_chunks/{alia-sidebar-BV5lBSFR.js → alia-sidebar-w6B0TEx7.js} +8 -8
- package/dist/_chunks/{alia-sidebar-BV5lBSFR.js.map → alia-sidebar-w6B0TEx7.js.map} +1 -1
- package/dist/_chunks/{anamnesis-card-CWO4Ui9c.js → anamnesis-card-CJ5MNbkc.js} +2 -2
- package/dist/_chunks/{anamnesis-card-CWO4Ui9c.js.map → anamnesis-card-CJ5MNbkc.js.map} +1 -1
- package/dist/_chunks/{antenatal-schedule-timeline-CY-VsLok.js → antenatal-schedule-timeline-BzJZqS-8.js} +3 -3
- package/dist/_chunks/{antenatal-schedule-timeline-CY-VsLok.js.map → antenatal-schedule-timeline-BzJZqS-8.js.map} +1 -1
- package/dist/_chunks/{appointment-card-Cy4FOkGP.js → appointment-card-DgKI5QKD.js} +2 -2
- package/dist/_chunks/{appointment-card-Cy4FOkGP.js.map → appointment-card-DgKI5QKD.js.map} +1 -1
- package/dist/_chunks/{appointment-timeline-BWAPPk8F.js → appointment-timeline-DQTG0btW.js} +6 -6
- package/dist/_chunks/{appointment-timeline-BWAPPk8F.js.map → appointment-timeline-DQTG0btW.js.map} +1 -1
- package/dist/_chunks/{appointment-tray-D3mk04TT.js → appointment-tray-ezyCZN8v.js} +4 -4
- package/dist/_chunks/{appointment-tray-D3mk04TT.js.map → appointment-tray-ezyCZN8v.js.map} +1 -1
- package/dist/_chunks/{ar-BOqyIfoY.js → ar-B1GhtlBP.js} +2 -2
- package/dist/_chunks/{ar-BOqyIfoY.js.map → ar-B1GhtlBP.js.map} +1 -1
- package/dist/_chunks/{columns-2-8lq4-b8e.js → arrow-up-right-C2v_MKsK.js} +5 -5
- package/dist/_chunks/arrow-up-right-C2v_MKsK.js.map +1 -0
- package/dist/_chunks/{audio-recorder-BbjG55dP.js → audio-recorder-Cc3KuL9y.js} +4 -4
- package/dist/_chunks/{audio-recorder-BbjG55dP.js.map → audio-recorder-Cc3KuL9y.js.map} +1 -1
- package/dist/_chunks/{benefit-card-Xnxj4Gmo.js → benefit-card-DB1Kdrmc.js} +4 -2
- package/dist/_chunks/benefit-card-DB1Kdrmc.js.map +1 -0
- package/dist/_chunks/{bishop-score-C6eoak_j.js → bishop-score-DDW5-gb9.js} +3 -3
- package/dist/_chunks/{bishop-score-C6eoak_j.js.map → bishop-score-DDW5-gb9.js.map} +1 -1
- package/dist/_chunks/{bmi-calculator-BmQfoEGP.js → bmi-calculator-Bk2GAju7.js} +2 -2
- package/dist/_chunks/{bmi-calculator-BmQfoEGP.js.map → bmi-calculator-Bk2GAju7.js.map} +1 -1
- package/dist/_chunks/{booking-B62CMY5k.js → booking-B1Qkcl3c.js} +9 -9
- package/dist/_chunks/{booking-B62CMY5k.js.map → booking-B1Qkcl3c.js.map} +1 -1
- package/dist/_chunks/{button-DD_0Xdmr.js → button-CPGiR_bH.js} +56 -35
- package/dist/_chunks/button-CPGiR_bH.js.map +1 -0
- package/dist/_chunks/button-group-DzV5wgnx.js +289 -0
- package/dist/_chunks/button-group-DzV5wgnx.js.map +1 -0
- package/dist/_chunks/camera-VSklPDCv.js +21 -0
- package/dist/_chunks/camera-VSklPDCv.js.map +1 -0
- package/dist/_chunks/{care-plan-card-DhXbfGzE.js → care-plan-card-BrwhyIJI.js} +3 -3
- package/dist/_chunks/{care-plan-card-DhXbfGzE.js.map → care-plan-card-BrwhyIJI.js.map} +1 -1
- package/dist/_chunks/{care-plan-entry-card-D3YGD6rj.js → care-plan-entry-card-DWEdCQM3.js} +3 -3
- package/dist/_chunks/{care-plan-entry-card-D3YGD6rj.js.map → care-plan-entry-card-DWEdCQM3.js.map} +1 -1
- package/dist/_chunks/{care-plan-header-DtQxyfOb.js → care-plan-header-BXvRpGG8.js} +2 -2
- package/dist/_chunks/{care-plan-header-DtQxyfOb.js.map → care-plan-header-BXvRpGG8.js.map} +1 -1
- package/dist/_chunks/{carousel.agent-j7hWxJWr.js → carousel.agent-CtAAdsAd.js} +2 -2
- package/dist/_chunks/{carousel.agent-j7hWxJWr.js.map → carousel.agent-CtAAdsAd.js.map} +1 -1
- package/dist/_chunks/{chat-container-BVCoN06N.js → chat-container-HlFnoEIl.js} +4 -2
- package/dist/_chunks/{chat-container-BVCoN06N.js.map → chat-container-HlFnoEIl.js.map} +1 -1
- package/dist/_chunks/{chat-input-Btq_uuMZ.js → chat-input-BTCDqUDX.js} +2 -2
- package/dist/_chunks/{chat-input-Btq_uuMZ.js.map → chat-input-BTCDqUDX.js.map} +1 -1
- package/dist/_chunks/{chat-message-DXjjM8z9.js → chat-message-CdjWqZjo.js} +3 -3
- package/dist/_chunks/{chat-message-DXjjM8z9.js.map → chat-message-CdjWqZjo.js.map} +1 -1
- package/dist/_chunks/{code-block-Cwi7e3HM.js → code-block-BwanBjRh.js} +2 -2
- package/dist/_chunks/{code-block-Cwi7e3HM.js.map → code-block-BwanBjRh.js.map} +1 -1
- package/dist/_chunks/{connection-status-0HajXMXM.js → connection-status-oEUyrvev.js} +3 -3
- package/dist/_chunks/{connection-status-0HajXMXM.js.map → connection-status-oEUyrvev.js.map} +1 -1
- package/dist/_chunks/{contact-profile-card-IggiUVpN.js → contact-profile-card-veMV3W4J.js} +2 -2
- package/dist/_chunks/{contact-profile-card-IggiUVpN.js.map → contact-profile-card-veMV3W4J.js.map} +1 -1
- package/dist/_chunks/{control-room-rail-DaGcsdZ6.js → control-room-rail-CdfrZ6Vr.js} +3 -3
- package/dist/_chunks/{control-room-rail-DaGcsdZ6.js.map → control-room-rail-CdfrZ6Vr.js.map} +1 -1
- package/dist/_chunks/{copy-field-PAp0-Wr5.js → copy-field-DBc9QquW.js} +2 -2
- package/dist/_chunks/{copy-field-PAp0-Wr5.js.map → copy-field-DBc9QquW.js.map} +1 -1
- package/dist/_chunks/{cycle-calculator-BNILyVas.js → cycle-calculator-OQp8Ik5U.js} +4 -4
- package/dist/_chunks/{cycle-calculator-BNILyVas.js.map → cycle-calculator-OQp8Ik5U.js.map} +1 -1
- package/dist/_chunks/data-table-tabs-BEUXiRlu.js +710 -0
- package/dist/_chunks/data-table-tabs-BEUXiRlu.js.map +1 -0
- package/dist/_chunks/{date-picker-CVkD_lOi.js → date-picker-DzQS8mvt.js} +2 -2
- package/dist/_chunks/{date-picker-CVkD_lOi.js.map → date-picker-DzQS8mvt.js.map} +1 -1
- package/dist/_chunks/{date-picker-variants-DLg-ZrIo.js → date-picker-variants-CYQAm1Gk.js} +116 -115
- package/dist/_chunks/{date-picker-variants-DLg-ZrIo.js.map → date-picker-variants-CYQAm1Gk.js.map} +1 -1
- package/dist/_chunks/{date-range-picker-Dw12DgV8.js → date-range-picker-Cbz1SKhm.js} +3 -3
- package/dist/_chunks/{date-range-picker-Dw12DgV8.js.map → date-range-picker-Cbz1SKhm.js.map} +1 -1
- package/dist/_chunks/{date-time-picker-Cd_OJtOy.js → date-time-picker-B5IpU-nd.js} +2 -2
- package/dist/_chunks/{date-time-picker-Cd_OJtOy.js.map → date-time-picker-B5IpU-nd.js.map} +1 -1
- package/dist/_chunks/{de-DFLsUxeV.js → de-DETDHQ0o.js} +2 -2
- package/dist/_chunks/{de-DFLsUxeV.js.map → de-DETDHQ0o.js.map} +1 -1
- package/dist/_chunks/{description-list-CmBVxIF5.js → description-list-ClNLdRMy.js} +2 -2
- package/dist/_chunks/{description-list-CmBVxIF5.js.map → description-list-ClNLdRMy.js.map} +1 -1
- package/dist/_chunks/document-preview-CGSM_au9.js +181 -0
- package/dist/_chunks/document-preview-CGSM_au9.js.map +1 -0
- package/dist/_chunks/{document-scanner-B23j4w7X.js → document-scanner-B6h1Ir56.js} +198 -230
- package/dist/_chunks/document-scanner-B6h1Ir56.js.map +1 -0
- package/dist/_chunks/{due-date-calculator-CmdAl_JO.js → due-date-calculator-DASNRgnH.js} +4 -4
- package/dist/_chunks/{due-date-calculator-CmdAl_JO.js.map → due-date-calculator-DASNRgnH.js.map} +1 -1
- package/dist/_chunks/{editable-currency-cell-renderer-z9fJFw6Z.js → editable-currency-cell-renderer-GwfA9tTR.js} +3 -3
- package/dist/_chunks/{editable-currency-cell-renderer-z9fJFw6Z.js.map → editable-currency-cell-renderer-GwfA9tTR.js.map} +1 -1
- package/dist/_chunks/{editor-overlay-BIOzr8v7.js → editor-overlay-DE3esyio.js} +2 -2
- package/dist/_chunks/{editor-overlay-BIOzr8v7.js.map → editor-overlay-DE3esyio.js.map} +1 -1
- package/dist/_chunks/{el-OVjBKytp.js → el-HV3jOI0z.js} +2 -2
- package/dist/_chunks/{el-OVjBKytp.js.map → el-HV3jOI0z.js.map} +1 -1
- package/dist/_chunks/{empty-state-BLy7tigq.js → empty-state-CrLsi0XI.js} +2 -2
- package/dist/_chunks/{empty-state-BLy7tigq.js.map → empty-state-CrLsi0XI.js.map} +1 -1
- package/dist/_chunks/{entity-summary-DpGziDv5.js → entity-summary--vP698Jn.js} +3 -3
- package/dist/_chunks/{entity-summary-DpGziDv5.js.map → entity-summary--vP698Jn.js.map} +1 -1
- package/dist/_chunks/eraser-CHOGQfVv.js +21 -0
- package/dist/_chunks/eraser-CHOGQfVv.js.map +1 -0
- package/dist/_chunks/{es-DKDNrHXG.js → es-Dpo7Olwo.js} +2 -2
- package/dist/_chunks/{es-DKDNrHXG.js.map → es-Dpo7Olwo.js.map} +1 -1
- package/dist/_chunks/face-scheme-C0rk21gg.js +3146 -0
- package/dist/_chunks/face-scheme-C0rk21gg.js.map +1 -0
- package/dist/_chunks/{fetal-weight-CVAH8sJ3.js → fetal-weight-1F9N4IMx.js} +2 -2
- package/dist/_chunks/{fetal-weight-CVAH8sJ3.js.map → fetal-weight-1F9N4IMx.js.map} +1 -1
- package/dist/_chunks/{field-array-CDzc3hTM.js → field-array-DH3Mb1i8.js} +3 -3
- package/dist/_chunks/{field-array-CDzc3hTM.js.map → field-array-DH3Mb1i8.js.map} +1 -1
- package/dist/_chunks/{field-value-Dj3i52H2.js → field-value-DHG6gEKS.js} +5 -5
- package/dist/_chunks/{field-value-Dj3i52H2.js.map → field-value-DHG6gEKS.js.map} +1 -1
- package/dist/_chunks/file-Cwe9VC1A.js +40 -0
- package/dist/_chunks/file-Cwe9VC1A.js.map +1 -0
- package/dist/_chunks/file-manager-UF8dkQF1.js +1776 -0
- package/dist/_chunks/file-manager-UF8dkQF1.js.map +1 -0
- package/dist/_chunks/{file-upload-Kw1rdvFw.js → file-upload-DENvuhfs.js} +101 -139
- package/dist/_chunks/file-upload-DENvuhfs.js.map +1 -0
- package/dist/_chunks/{finished-terminal-Di4gtZ50.js → finished-terminal-C0_mefrf.js} +11 -11
- package/dist/_chunks/finished-terminal-C0_mefrf.js.map +1 -0
- package/dist/_chunks/{fiscal-code-input-DKNXFXs3.js → fiscal-code-input-DWA6C8x8.js} +2 -2
- package/dist/_chunks/{fiscal-code-input-DKNXFXs3.js.map → fiscal-code-input-DWA6C8x8.js.map} +1 -1
- package/dist/_chunks/{fr-BfMvQh-v.js → fr-CgD4Jvtq.js} +2 -2
- package/dist/_chunks/{fr-BfMvQh-v.js.map → fr-CgD4Jvtq.js.map} +1 -1
- package/dist/_chunks/{freemium-paywall-DFoeedwh.js → freemium-paywall-CmV642PA.js} +7 -3
- package/dist/_chunks/freemium-paywall-CmV642PA.js.map +1 -0
- package/dist/_chunks/{gestational-age-calculator-BwCBPAGX.js → gestational-age-calculator-BpYw-WF-.js} +7 -7
- package/dist/_chunks/{gestational-age-calculator-BwCBPAGX.js.map → gestational-age-calculator-BpYw-WF-.js.map} +1 -1
- package/dist/_chunks/{hcg-doubling-CSsWxEJc.js → hcg-doubling-Dqj-EqMT.js} +3 -3
- package/dist/_chunks/{hcg-doubling-CSsWxEJc.js.map → hcg-doubling-Dqj-EqMT.js.map} +1 -1
- package/dist/_chunks/{header-DaXWDw0M.js → header-CjwasYnn.js} +88 -79
- package/dist/_chunks/header-CjwasYnn.js.map +1 -0
- package/dist/_chunks/{header-settings-B0G_u-wV.js → header-settings-4cwQzeFc.js} +4 -4
- package/dist/_chunks/{header-settings-B0G_u-wV.js.map → header-settings-4cwQzeFc.js.map} +1 -1
- package/dist/_chunks/{hi-C0GEMwlD.js → hi-Bf8CAP6b.js} +2 -2
- package/dist/_chunks/{hi-C0GEMwlD.js.map → hi-Bf8CAP6b.js.map} +1 -1
- package/dist/_chunks/highlighter-DSkckT2Q.js +15 -0
- package/dist/_chunks/highlighter-DSkckT2Q.js.map +1 -0
- package/dist/_chunks/{icon-button-LqoiKcUN.js → icon-button-C_kbcd7I.js} +2 -2
- package/dist/_chunks/{icon-button-LqoiKcUN.js.map → icon-button-C_kbcd7I.js.map} +1 -1
- package/dist/_chunks/icon-button-group-C_lqXTAj.js +391 -0
- package/dist/_chunks/icon-button-group-C_lqXTAj.js.map +1 -0
- package/dist/_chunks/{icon-picker-Di6uYDG-.js → icon-picker-CM9ubkew.js} +3 -3
- package/dist/_chunks/{icon-picker-Di6uYDG-.js.map → icon-picker-CM9ubkew.js.map} +1 -1
- package/dist/_chunks/{image-cropper-CdmWFrMC.js → image-cropper-DKe4AORY.js} +2 -2
- package/dist/_chunks/{image-cropper-CdmWFrMC.js.map → image-cropper-DKe4AORY.js.map} +1 -1
- package/dist/_chunks/{insert-result-C7xSDb8q.js → insert-result-D074GtHX.js} +58 -68
- package/dist/_chunks/insert-result-D074GtHX.js.map +1 -0
- package/dist/_chunks/{isSameWeek-HddDAyJG.js → isSameWeek-BYl5poz_.js} +2 -2
- package/dist/_chunks/{isSameWeek-HddDAyJG.js.map → isSameWeek-BYl5poz_.js.map} +1 -1
- package/dist/_chunks/{it-5f4hiT2e.js → it-mt1V2DFS.js} +3 -3
- package/dist/_chunks/{it-5f4hiT2e.js.map → it-mt1V2DFS.js.map} +1 -1
- package/dist/_chunks/{ja-U0_2inl_.js → ja-CbOHn2TO.js} +2 -2
- package/dist/_chunks/{ja-U0_2inl_.js.map → ja-CbOHn2TO.js.map} +1 -1
- package/dist/_chunks/{key-value-pair-Byyyc_9J.js → key-value-pair-LHKfDT_9.js} +2 -2
- package/dist/_chunks/{key-value-pair-Byyyc_9J.js.map → key-value-pair-LHKfDT_9.js.map} +1 -1
- package/dist/_chunks/link-cell-renderer-BQGUs45d.js +711 -0
- package/dist/_chunks/link-cell-renderer-BQGUs45d.js.map +1 -0
- package/dist/_chunks/{locale-picker-DzF7Q5Y8.js → locale-picker-GNF3lo8K.js} +3 -3
- package/dist/_chunks/{locale-picker-DzF7Q5Y8.js.map → locale-picker-GNF3lo8K.js.map} +1 -1
- package/dist/_chunks/{map-view-ByPvWG_9.js → map-view-CsaHfoo6.js} +2 -2
- package/dist/_chunks/{map-view-ByPvWG_9.js.map → map-view-CsaHfoo6.js.map} +1 -1
- package/dist/_chunks/{marketplace-app-shell-BCYiOvKZ.js → marketplace-app-shell-D_1tF4La.js} +6 -6
- package/dist/_chunks/marketplace-app-shell-D_1tF4La.js.map +1 -0
- package/dist/_chunks/{message-card-BZnnffyB.js → message-card-ievotOFa.js} +3 -3
- package/dist/_chunks/{message-card-BZnnffyB.js.map → message-card-ievotOFa.js.map} +1 -1
- package/dist/_chunks/{message-tray-cUHOCdU0.js → message-tray-BFlu8clI.js} +4 -4
- package/dist/_chunks/{message-tray-cUHOCdU0.js.map → message-tray-BFlu8clI.js.map} +1 -1
- package/dist/_chunks/{muscle-scheme-B9MIkuj0.js → muscle-scheme-CFBE2dme.js} +6 -14
- package/dist/_chunks/{muscle-scheme-B9MIkuj0.js.map → muscle-scheme-CFBE2dme.js.map} +1 -1
- package/dist/_chunks/{nl-CDVnnx1U.js → nl-C6Y0QXnm.js} +2 -2
- package/dist/_chunks/{nl-CDVnnx1U.js.map → nl-C6Y0QXnm.js.map} +1 -1
- package/dist/_chunks/{notes-panel-CMyjUXD4.js → notes-panel-Cvdp818a.js} +3 -3
- package/dist/_chunks/{notes-panel-CMyjUXD4.js.map → notes-panel-Cvdp818a.js.map} +1 -1
- package/dist/_chunks/{notification-card-BHJ07FkH.js → notification-card-D29_sVA1.js} +3 -3
- package/dist/_chunks/{notification-card-BHJ07FkH.js.map → notification-card-D29_sVA1.js.map} +1 -1
- package/dist/_chunks/{notification-tray-Dzm1c3Wy.js → notification-tray-CzIzz3bX.js} +4 -4
- package/dist/_chunks/{notification-tray-Dzm1c3Wy.js.map → notification-tray-CzIzz3bX.js.map} +1 -1
- package/dist/_chunks/optical-prescription-BEjYQjiO.js +1260 -0
- package/dist/_chunks/optical-prescription-BEjYQjiO.js.map +1 -0
- package/dist/_chunks/{patient-details-pU_E5xM2.js → patient-details-DP4wKyq4.js} +7 -7
- package/dist/_chunks/{patient-details-pU_E5xM2.js.map → patient-details-DP4wKyq4.js.map} +1 -1
- package/dist/_chunks/{patient-search-X9SUZGpy.js → patient-search-BaUJ_Y-N.js} +47 -45
- package/dist/_chunks/patient-search-BaUJ_Y-N.js.map +1 -0
- package/dist/_chunks/{patient-summary-card--t3BjTdU.js → patient-summary-card-D6kgdTNn.js} +4 -4
- package/dist/_chunks/{patient-summary-card--t3BjTdU.js.map → patient-summary-card-D6kgdTNn.js.map} +1 -1
- package/dist/_chunks/{patient-table-BgWgNIMf.js → patient-table-DweKjiXg.js} +122 -118
- package/dist/_chunks/patient-table-DweKjiXg.js.map +1 -0
- package/dist/_chunks/{payment-request-card-2ts7ITxd.js → payment-request-card-C0fqlKqO.js} +25 -24
- package/dist/_chunks/{payment-request-card-2ts7ITxd.js.map → payment-request-card-C0fqlKqO.js.map} +1 -1
- package/dist/_chunks/pen-line-D0De5zdl.js +21 -0
- package/dist/_chunks/pen-line-D0De5zdl.js.map +1 -0
- package/dist/_chunks/periodontal-chart-D8hOFmde.js +1173 -0
- package/dist/_chunks/periodontal-chart-D8hOFmde.js.map +1 -0
- package/dist/_chunks/{periodontal-chart-card-6c6Lt4ws.js → periodontal-chart-card-WVjJAheq.js} +2 -2
- package/dist/_chunks/{periodontal-chart-card-6c6Lt4ws.js.map → periodontal-chart-card-WVjJAheq.js.map} +1 -1
- package/dist/_chunks/periodontal-diagnosis-cco40xTa.js +345 -0
- package/dist/_chunks/periodontal-diagnosis-cco40xTa.js.map +1 -0
- package/dist/_chunks/periodontal-risk-chart-bUGkMwDg.js +334 -0
- package/dist/_chunks/periodontal-risk-chart-bUGkMwDg.js.map +1 -0
- package/dist/_chunks/{pl-BWNumNrg.js → pl-BdazJAOp.js} +3 -3
- package/dist/_chunks/{pl-BWNumNrg.js.map → pl-BdazJAOp.js.map} +1 -1
- package/dist/_chunks/{popover-uJ6BvEU3.js → popover-Cc0a69sw.js} +32 -29
- package/dist/_chunks/{popover-uJ6BvEU3.js.map → popover-Cc0a69sw.js.map} +1 -1
- package/dist/_chunks/{practice-results-CSEHTH2V.js → practice-results-BCr7jMt1.js} +5 -5
- package/dist/_chunks/{practice-results-CSEHTH2V.js.map → practice-results-BCr7jMt1.js.map} +1 -1
- package/dist/_chunks/{pregnancy-dating-CxVAA6_4.js → pregnancy-dating-msMl_6wz.js} +7 -7
- package/dist/_chunks/{pregnancy-dating-CxVAA6_4.js.map → pregnancy-dating-msMl_6wz.js.map} +1 -1
- package/dist/_chunks/{pregnancy-weight-gain-C7zyrwow.js → pregnancy-weight-gain-B-CkVYnU.js} +2 -2
- package/dist/_chunks/{pregnancy-weight-gain-C7zyrwow.js.map → pregnancy-weight-gain-B-CkVYnU.js.map} +1 -1
- package/dist/_chunks/{privacy-lock-DrRmK8C7.js → privacy-lock-YYBiI_bY.js} +3 -3
- package/dist/_chunks/{privacy-lock-DrRmK8C7.js.map → privacy-lock-YYBiI_bY.js.map} +1 -1
- package/dist/_chunks/{product-hub-panel-CaZqttvm.js → product-hub-panel-CTld1r5V.js} +3 -3
- package/dist/_chunks/{product-hub-panel-CaZqttvm.js.map → product-hub-panel-CTld1r5V.js.map} +1 -1
- package/dist/_chunks/{pt-zqdQuryr.js → pt-B3UKvhHp.js} +2 -2
- package/dist/_chunks/{pt-zqdQuryr.js.map → pt-B3UKvhHp.js.map} +1 -1
- package/dist/_chunks/{public-header.agent-C-opZaOw.js → public-header.agent-rX_VA6hd.js} +107 -103
- package/dist/_chunks/public-header.agent-rX_VA6hd.js.map +1 -0
- package/dist/_chunks/{radiograph-panel.agent-D1x33moc.js → radiograph-panel.agent-CxF9pVxd.js} +40 -57
- package/dist/_chunks/radiograph-panel.agent-CxF9pVxd.js.map +1 -0
- package/dist/_chunks/{reviews-panel-liUj6OPX.js → reviews-panel-DmOjvmyH.js} +4 -4
- package/dist/_chunks/{reviews-panel-liUj6OPX.js.map → reviews-panel-DmOjvmyH.js.map} +1 -1
- package/dist/_chunks/{rich-text-editor-DUgznqOf.js → rich-text-editor-CCWjNkbx.js} +26 -26
- package/dist/_chunks/rich-text-editor-CCWjNkbx.js.map +1 -0
- package/dist/_chunks/{ro-CornQr64.js → ro-DVTEQpPK.js} +2 -2
- package/dist/_chunks/{ro-CornQr64.js.map → ro-DVTEQpPK.js.map} +1 -1
- package/dist/_chunks/{ru-CKAXNYVD.js → ru-C-Mp40SC.js} +3 -3
- package/dist/_chunks/{ru-CKAXNYVD.js.map → ru-C-Mp40SC.js.map} +1 -1
- package/dist/_chunks/{select-BmCbJMJS.js → select-BW5ecXlX.js} +13 -13
- package/dist/_chunks/{select-BmCbJMJS.js.map → select-BW5ecXlX.js.map} +1 -1
- package/dist/_chunks/{session-countdown-qr8EO5QY.js → session-countdown-C8AsE072.js} +2 -2
- package/dist/_chunks/{session-countdown-qr8EO5QY.js.map → session-countdown-C8AsE072.js.map} +1 -1
- package/dist/_chunks/{sheet-B_X54aZo.js → sheet-D5K0LB3q.js} +2 -2
- package/dist/_chunks/{sheet-B_X54aZo.js.map → sheet-D5K0LB3q.js.map} +1 -1
- package/dist/_chunks/{sidebar-B0OBmJrC.js → sidebar-C0PbwJBc.js} +375 -335
- package/dist/_chunks/sidebar-C0PbwJBc.js.map +1 -0
- package/dist/_chunks/{sign-document-nK03S73h.js → sign-document-Bfk0WpWV.js} +2 -2
- package/dist/_chunks/{sign-document-nK03S73h.js.map → sign-document-Bfk0WpWV.js.map} +1 -1
- package/dist/_chunks/{sign-in-with-alfadocs-button-LppxjlFt.js → sign-in-with-alfadocs-button-UlYefZpI.js} +2 -2
- package/dist/_chunks/{sign-in-with-alfadocs-button-LppxjlFt.js.map → sign-in-with-alfadocs-button-UlYefZpI.js.map} +1 -1
- package/dist/_chunks/{signature-capture-Ct_4Md4e.js → signature-capture-DN52VNKL.js} +206 -189
- package/dist/_chunks/signature-capture-DN52VNKL.js.map +1 -0
- package/dist/_chunks/{signature-field-jgwYgUhO.js → signature-field-0rFODJlW.js} +47 -41
- package/dist/_chunks/signature-field-0rFODJlW.js.map +1 -0
- package/dist/_chunks/signature-request-C-mskXwi.js +318 -0
- package/dist/_chunks/signature-request-C-mskXwi.js.map +1 -0
- package/dist/_chunks/{slot-grid-FsqumOaS.js → slot-grid-CQSULZjd.js} +4 -4
- package/dist/_chunks/{slot-grid-FsqumOaS.js.map → slot-grid-CQSULZjd.js.map} +1 -1
- package/dist/_chunks/{sq-CIIvqXZv.js → sq-DierVlw-.js} +2 -2
- package/dist/_chunks/{sq-CIIvqXZv.js.map → sq-DierVlw-.js.map} +1 -1
- package/dist/_chunks/{streaming-text-Cedc05ya.js → streaming-text-C5bYz7LL.js} +2 -2
- package/dist/_chunks/{streaming-text-Cedc05ya.js.map → streaming-text-C5bYz7LL.js.map} +1 -1
- package/dist/_chunks/subDays-DIKRViZm.js +8 -0
- package/dist/_chunks/{subDays-DGSOp9d9.js.map → subDays-DIKRViZm.js.map} +1 -1
- package/dist/_chunks/{sv-Kpk1pzjz.js → sv-gQWo_19z.js} +2 -2
- package/dist/_chunks/{sv-Kpk1pzjz.js.map → sv-gQWo_19z.js.map} +1 -1
- package/dist/_chunks/{tabs-DVQ941Sj.js → tabs-CVTukWRD.js} +2 -2
- package/dist/_chunks/{tabs-DVQ941Sj.js.map → tabs-CVTukWRD.js.map} +1 -1
- package/dist/_chunks/{task-tray-DP5A3Qnc.js → task-tray-Br3vc0O1.js} +3 -3
- package/dist/_chunks/{task-tray-DP5A3Qnc.js.map → task-tray-Br3vc0O1.js.map} +1 -1
- package/dist/_chunks/{tasks-panel-BuxaYtEF.js → tasks-panel-CjGAhIN8.js} +6 -6
- package/dist/_chunks/{tasks-panel-BuxaYtEF.js.map → tasks-panel-CjGAhIN8.js.map} +1 -1
- package/dist/_chunks/{theme-toggle-dtdy5EaL.js → theme-toggle-BJCz_UOi.js} +3 -3
- package/dist/_chunks/{theme-toggle-dtdy5EaL.js.map → theme-toggle-BJCz_UOi.js.map} +1 -1
- package/dist/_chunks/{toast.agent-BSxl057x.js → toast.agent-uV8CeAy6.js} +2 -2
- package/dist/_chunks/{toast.agent-BSxl057x.js.map → toast.agent-uV8CeAy6.js.map} +1 -1
- package/dist/_chunks/{token-insert-menu-Pok4nExI.js → token-insert-menu-BYv6yoZI.js} +2 -2
- package/dist/_chunks/{token-insert-menu-Pok4nExI.js.map → token-insert-menu-BYv6yoZI.js.map} +1 -1
- package/dist/_chunks/{tool-rail-BZx0-yIr.js → tool-rail-AaTqxkIM.js} +2 -2
- package/dist/_chunks/{tool-rail-BZx0-yIr.js.map → tool-rail-AaTqxkIM.js.map} +1 -1
- package/dist/_chunks/tooth-data-BwuoKFf4.js +660 -0
- package/dist/_chunks/tooth-data-BwuoKFf4.js.map +1 -0
- package/dist/_chunks/tooth-scheme-BzJ6rcte.js +1483 -0
- package/dist/_chunks/tooth-scheme-BzJ6rcte.js.map +1 -0
- package/dist/_chunks/{tr-DHaeLFxG.js → tr-Btm6M3Km.js} +2 -2
- package/dist/_chunks/{tr-DHaeLFxG.js.map → tr-Btm6M3Km.js.map} +1 -1
- package/dist/_chunks/{transaction-chip-B6iWoVmU.js → transaction-chip-DJCstquX.js} +41 -51
- package/dist/_chunks/transaction-chip-DJCstquX.js.map +1 -0
- package/dist/_chunks/type-ggmfVs23.js +16 -0
- package/dist/_chunks/type-ggmfVs23.js.map +1 -0
- package/dist/_chunks/{unit-converter-fEqluT8b.js → unit-converter-CSLWFDQh.js} +3 -3
- package/dist/_chunks/{unit-converter-fEqluT8b.js.map → unit-converter-CSLWFDQh.js.map} +1 -1
- package/dist/_chunks/upload-BfT2hzMg.js +16 -0
- package/dist/_chunks/upload-BfT2hzMg.js.map +1 -0
- package/dist/_chunks/use-priority-overflow-c9SjxZkZ.js +101 -0
- package/dist/_chunks/use-priority-overflow-c9SjxZkZ.js.map +1 -0
- package/dist/_chunks/use-visual-viewport-pin-ChurOsHM.js +31 -0
- package/dist/_chunks/use-visual-viewport-pin-ChurOsHM.js.map +1 -0
- package/dist/_chunks/{warning-stack-BaMI7-n7.js → warning-stack-BlG_Ujy3.js} +3 -3
- package/dist/_chunks/{warning-stack-BaMI7-n7.js.map → warning-stack-BlG_Ujy3.js.map} +1 -1
- package/dist/_chunks/{workflow-map-qWsgCldq.js → workflow-map-C643Q43h.js} +5 -5
- package/dist/_chunks/{workflow-map-qWsgCldq.js.map → workflow-map-C643Q43h.js.map} +1 -1
- package/dist/_chunks/{zh-CN-BncsTBwM.js → zh-CN-DkVN4vsB.js} +3 -3
- package/dist/_chunks/{zh-CN-BncsTBwM.js.map → zh-CN-DkVN4vsB.js.map} +1 -1
- package/dist/agent-catalog.json +4081 -3201
- package/dist/agent-i18n/en.json +121 -69
- package/dist/brand/product-lockup/product-lockup.d.ts +1 -1
- package/dist/components/_shared/calendar-class-names.d.ts.map +1 -1
- package/dist/components/_shared/entity-card/entity-card.d.ts +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-consent-banner/index.js +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/anamnesis-card/anamnesis-card.d.ts +1 -1
- package/dist/components/anamnesis-card/index.js +1 -1
- package/dist/components/appointment-card/appointment-card.d.ts +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/benefit-card/benefit-card.d.ts.map +1 -1
- package/dist/components/benefit-card/index.js +1 -1
- package/dist/components/bishop-score/index.js +1 -1
- package/dist/components/bmi-calculator/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/button/button.d.ts +8 -1
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/index.js +2 -2
- package/dist/components/button-group/button-group.d.ts +16 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -1
- package/dist/components/button-group/index.js +1 -1
- package/dist/components/card/card.d.ts +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/carousel/index.js +1 -1
- package/dist/components/chat-container/chat-container.d.ts.map +1 -1
- package/dist/components/chat-container/index.js +1 -1
- package/dist/components/chat-input/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +1 -1
- package/dist/components/connection-status/index.js +1 -1
- package/dist/components/contact-profile-card/contact-profile-card.d.ts +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/copy-field/index.js +1 -1
- package/dist/components/counter/counter.d.ts +1 -1
- package/dist/components/cycle-calculator/index.js +1 -1
- package/dist/components/data-table/data-table.d.ts +2 -8
- package/dist/components/data-table/data-table.d.ts.map +1 -1
- package/dist/components/data-table/filters/number-filter.d.ts.map +1 -1
- package/dist/components/data-table/index.js +35 -34
- package/dist/components/data-table/index.js.map +1 -1
- package/dist/components/data-table/toolbar.d.ts +5 -11
- package/dist/components/data-table/toolbar.d.ts.map +1 -1
- package/dist/components/data-table-tabs/data-table-tabs.agent.d.ts +4 -0
- package/dist/components/data-table-tabs/data-table-tabs.agent.d.ts.map +1 -0
- package/dist/components/data-table-tabs/data-table-tabs.d.ts +93 -0
- package/dist/components/data-table-tabs/data-table-tabs.d.ts.map +1 -0
- package/dist/components/data-table-tabs/index.d.ts +5 -0
- package/dist/components/data-table-tabs/index.d.ts.map +1 -0
- package/dist/components/data-table-tabs/index.js +8 -0
- package/dist/components/data-table-tabs/use-data-table-filter-tabs.d.ts +63 -0
- package/dist/components/data-table-tabs/use-data-table-filter-tabs.d.ts.map +1 -0
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/date-range-picker/index.js +1 -1
- package/dist/components/date-time-picker/index.js +1 -1
- package/dist/components/description-list/index.js +1 -1
- package/dist/components/document-preview/document-preview.agent.d.ts +4 -0
- package/dist/components/document-preview/document-preview.agent.d.ts.map +1 -0
- package/dist/components/document-preview/document-preview.d.ts +41 -0
- package/dist/components/document-preview/document-preview.d.ts.map +1 -0
- package/dist/components/document-preview/index.d.ts +4 -0
- package/dist/components/document-preview/index.d.ts.map +1 -0
- package/dist/components/document-preview/index.js +6 -0
- package/dist/components/document-preview/index.js.map +1 -0
- package/dist/components/document-scanner/document-scanner.d.ts.map +1 -1
- package/dist/components/document-scanner/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +2 -2
- package/dist/components/editor-overlay/index.js +1 -1
- package/dist/components/empty-state/index.js +1 -1
- package/dist/components/entity-summary/index.js +1 -1
- package/dist/components/face-scheme/face-scheme-data.d.ts +167 -0
- package/dist/components/face-scheme/face-scheme-data.d.ts.map +1 -1
- package/dist/components/face-scheme/face-scheme.agent.d.ts.map +1 -1
- package/dist/components/face-scheme/face-scheme.d.ts +112 -2
- package/dist/components/face-scheme/face-scheme.d.ts.map +1 -1
- package/dist/components/face-scheme/index.d.ts +2 -2
- package/dist/components/face-scheme/index.d.ts.map +1 -1
- package/dist/components/face-scheme/index.js +25 -14
- package/dist/components/fetal-weight/index.js +1 -1
- package/dist/components/field-array/index.js +1 -1
- package/dist/components/file-manager/dialogs.d.ts +48 -0
- package/dist/components/file-manager/dialogs.d.ts.map +1 -0
- package/dist/components/file-manager/file-manager.agent.d.ts +4 -0
- package/dist/components/file-manager/file-manager.agent.d.ts.map +1 -0
- package/dist/components/file-manager/file-manager.d.ts +82 -0
- package/dist/components/file-manager/file-manager.d.ts.map +1 -0
- package/dist/components/file-manager/folder-tree.d.ts +12 -0
- package/dist/components/file-manager/folder-tree.d.ts.map +1 -0
- package/dist/components/file-manager/index.d.ts +5 -0
- package/dist/components/file-manager/index.d.ts.map +1 -0
- package/dist/components/file-manager/index.js +6 -0
- package/dist/components/file-manager/index.js.map +1 -0
- package/dist/components/file-manager/list-view.d.ts +49 -0
- package/dist/components/file-manager/list-view.d.ts.map +1 -0
- package/dist/components/file-manager/toolbar.d.ts +15 -0
- package/dist/components/file-manager/toolbar.d.ts.map +1 -0
- package/dist/components/file-manager/types.d.ts +167 -0
- package/dist/components/file-manager/types.d.ts.map +1 -0
- package/dist/components/file-manager/utils.d.ts +34 -0
- package/dist/components/file-manager/utils.d.ts.map +1 -0
- package/dist/components/file-upload/file-upload.d.ts +1 -0
- package/dist/components/file-upload/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload/index.d.ts +1 -1
- package/dist/components/file-upload/index.d.ts.map +1 -1
- package/dist/components/file-upload/index.js +4 -3
- package/dist/components/finished-terminal/finished-terminal.d.ts.map +1 -1
- package/dist/components/finished-terminal/index.js +1 -1
- package/dist/components/fiscal-code-input/index.js +1 -1
- package/dist/components/flag/flag.d.ts +1 -1
- package/dist/components/freemium-paywall/freemium-paywall.d.ts.map +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/hcg-doubling/index.js +1 -1
- package/dist/components/header/header.d.ts.map +1 -1
- package/dist/components/header/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/icon-button/index.js +1 -1
- package/dist/components/icon-button-group/icon-button-group.d.ts +6 -0
- package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
- package/dist/components/icon-button-group/index.js +1 -1
- package/dist/components/icon-picker/index.js +1 -1
- package/dist/components/image-cropper/index.js +1 -1
- package/dist/components/index.d.ts +7 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/link/link.d.ts +1 -1
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/matrix-rain/matrix-rain.d.ts +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-card/message-card.d.ts +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/muscle-scheme/index.js +1 -1
- package/dist/components/muscle-scheme/muscle-scheme.d.ts.map +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notification-card/index.js +1 -1
- package/dist/components/notification-card/notification-card.d.ts +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/operator-hero/operator-hero.d.ts +1 -1
- package/dist/components/optical-prescription/index.d.ts +4 -2
- package/dist/components/optical-prescription/index.d.ts.map +1 -1
- package/dist/components/optical-prescription/index.js +29 -26
- package/dist/components/optical-prescription/optical-prescription-charts.d.ts +78 -0
- package/dist/components/optical-prescription/optical-prescription-charts.d.ts.map +1 -0
- package/dist/components/optical-prescription/optical-prescription-data.d.ts +29 -0
- package/dist/components/optical-prescription/optical-prescription-data.d.ts.map +1 -1
- package/dist/components/optical-prescription/optical-prescription.agent.d.ts.map +1 -1
- package/dist/components/optical-prescription/optical-prescription.d.ts +9 -0
- package/dist/components/optical-prescription/optical-prescription.d.ts.map +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-search/patient-search.d.ts.map +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-summary-card/patient-summary-card.d.ts +1 -1
- package/dist/components/patient-table/columns.d.ts.map +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/payment-card/payment-card.d.ts +1 -1
- package/dist/components/payment-card/payment-request-card.d.ts +1 -1
- package/dist/components/periodontal-chart/index.d.ts +6 -0
- package/dist/components/periodontal-chart/index.d.ts.map +1 -0
- package/dist/components/periodontal-chart/index.js +22 -0
- package/dist/components/periodontal-chart/index.js.map +1 -0
- package/dist/components/periodontal-chart/periodontal-chart-data.d.ts +119 -0
- package/dist/components/periodontal-chart/periodontal-chart-data.d.ts.map +1 -0
- package/dist/components/periodontal-chart/periodontal-chart.agent.d.ts +4 -0
- package/dist/components/periodontal-chart/periodontal-chart.agent.d.ts.map +1 -0
- package/dist/components/periodontal-chart/periodontal-chart.d.ts +69 -0
- package/dist/components/periodontal-chart/periodontal-chart.d.ts.map +1 -0
- package/dist/components/periodontal-chart-card/index.js +1 -1
- package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +1 -1
- package/dist/components/periodontal-diagnosis/index.d.ts +6 -0
- package/dist/components/periodontal-diagnosis/index.d.ts.map +1 -0
- package/dist/components/periodontal-diagnosis/index.js +13 -0
- package/dist/components/periodontal-diagnosis/index.js.map +1 -0
- package/dist/components/periodontal-diagnosis/periodontal-diagnosis-data.d.ts +30 -0
- package/dist/components/periodontal-diagnosis/periodontal-diagnosis-data.d.ts.map +1 -0
- package/dist/components/periodontal-diagnosis/periodontal-diagnosis.agent.d.ts +4 -0
- package/dist/components/periodontal-diagnosis/periodontal-diagnosis.agent.d.ts.map +1 -0
- package/dist/components/periodontal-diagnosis/periodontal-diagnosis.d.ts +44 -0
- package/dist/components/periodontal-diagnosis/periodontal-diagnosis.d.ts.map +1 -0
- package/dist/components/periodontal-risk-chart/index.d.ts +6 -0
- package/dist/components/periodontal-risk-chart/index.d.ts.map +1 -0
- package/dist/components/periodontal-risk-chart/index.js +9 -0
- package/dist/components/periodontal-risk-chart/index.js.map +1 -0
- package/dist/components/periodontal-risk-chart/periodontal-risk-chart.agent.d.ts +4 -0
- package/dist/components/periodontal-risk-chart/periodontal-risk-chart.agent.d.ts.map +1 -0
- package/dist/components/periodontal-risk-chart/periodontal-risk-chart.d.ts +28 -0
- package/dist/components/periodontal-risk-chart/periodontal-risk-chart.d.ts.map +1 -0
- package/dist/components/periodontal-risk-chart/periodontal-risk-data.d.ts +47 -0
- package/dist/components/periodontal-risk-chart/periodontal-risk-data.d.ts.map +1 -0
- package/dist/components/popover/index.js +1 -1
- package/dist/components/popover/popover.d.ts +1 -0
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/pregnancy-weight-gain/index.js +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/product-hub-tray/index.js +1 -1
- package/dist/components/product-hub-tray/product-hub-panel.d.ts +1 -1
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/public-header/public-header.d.ts +1 -1
- package/dist/components/public-header/public-header.d.ts.map +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/radiograph-panel/radiograph-panel.d.ts +2 -2
- package/dist/components/radiograph-panel/radiograph-panel.d.ts.map +1 -1
- package/dist/components/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/session-countdown/index.js +1 -1
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/sidebar/sidebar.d.ts +9 -0
- package/dist/components/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/sign-document/index.js +1 -1
- package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
- package/dist/components/signature-capture/index.js +1 -1
- package/dist/components/signature-capture/signature-capture.d.ts.map +1 -1
- package/dist/components/signature-field/index.js +1 -1
- package/dist/components/signature-field/signature-field.d.ts +7 -0
- package/dist/components/signature-field/signature-field.d.ts.map +1 -1
- package/dist/components/skeleton-scheme/index.js +1186 -0
- package/dist/components/skeleton-scheme/index.js.map +1 -0
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/stat/stat.d.ts +1 -1
- package/dist/components/streaming-text/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/token-insert-menu/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/tooth-scheme/index.js +29 -28
- package/dist/components/tooth-scheme/index.js.map +1 -1
- package/dist/components/transaction-chip/index.js +1 -1
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +40 -35
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-priority-overflow.d.ts +63 -0
- package/dist/hooks/use-priority-overflow.d.ts.map +1 -0
- package/dist/hooks/use-visual-viewport-pin.d.ts +32 -0
- package/dist/hooks/use-visual-viewport-pin.d.ts.map +1 -0
- package/dist/i18n/locales/ar.d.ts +490 -9
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +493 -12
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +490 -9
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +493 -12
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +490 -9
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +493 -12
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +490 -9
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +493 -12
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +490 -9
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +493 -12
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +490 -9
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +493 -12
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +490 -9
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +493 -12
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +490 -9
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +493 -12
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +490 -9
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +493 -12
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +490 -9
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +493 -12
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +490 -9
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +493 -12
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +490 -9
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +493 -12
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +490 -9
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +493 -12
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +490 -9
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +493 -12
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +490 -9
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +493 -12
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +490 -9
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +493 -12
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +490 -9
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +493 -12
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +490 -9
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +493 -12
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +872 -809
- package/dist/index.js.map +1 -1
- package/dist/locales/ar.json +493 -12
- package/dist/locales/de.json +493 -12
- package/dist/locales/el.json +493 -12
- package/dist/locales/en.json +493 -12
- package/dist/locales/es.json +493 -12
- package/dist/locales/fr.json +493 -12
- package/dist/locales/hi.json +493 -12
- package/dist/locales/it.json +493 -12
- package/dist/locales/ja.json +493 -12
- package/dist/locales/nl.json +493 -12
- package/dist/locales/pl.json +493 -12
- package/dist/locales/pt.json +493 -12
- package/dist/locales/ro.json +493 -12
- package/dist/locales/ru.json +493 -12
- package/dist/locales/sq.json +493 -12
- package/dist/locales/sv.json +493 -12
- package/dist/locales/tr.json +493 -12
- package/dist/locales/zh.json +493 -12
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +1 -1
- package/dist/patterns/signature-request/index.d.ts +3 -0
- package/dist/patterns/signature-request/index.d.ts.map +1 -0
- package/dist/patterns/signature-request/index.js +5 -0
- package/dist/patterns/signature-request/index.js.map +1 -0
- package/dist/patterns/signature-request/signature-request.d.ts +81 -0
- package/dist/patterns/signature-request/signature-request.d.ts.map +1 -0
- package/dist/tokens.css +2 -2
- package/package.json +32 -4
- package/dist/_chunks/benefit-card-Xnxj4Gmo.js.map +0 -1
- package/dist/_chunks/button-DD_0Xdmr.js.map +0 -1
- package/dist/_chunks/button-group-CvEnVzY7.js +0 -119
- package/dist/_chunks/button-group-CvEnVzY7.js.map +0 -1
- package/dist/_chunks/columns-2-8lq4-b8e.js.map +0 -1
- package/dist/_chunks/document-scanner-B23j4w7X.js.map +0 -1
- package/dist/_chunks/face-scheme-BT9_KdL0.js +0 -1450
- package/dist/_chunks/face-scheme-BT9_KdL0.js.map +0 -1
- package/dist/_chunks/file-upload-Kw1rdvFw.js.map +0 -1
- package/dist/_chunks/finished-terminal-Di4gtZ50.js.map +0 -1
- package/dist/_chunks/freemium-paywall-DFoeedwh.js.map +0 -1
- package/dist/_chunks/header-DaXWDw0M.js.map +0 -1
- package/dist/_chunks/icon-button-group-C48khLE0.js +0 -206
- package/dist/_chunks/icon-button-group-C48khLE0.js.map +0 -1
- package/dist/_chunks/insert-result-C7xSDb8q.js.map +0 -1
- package/dist/_chunks/link-cell-renderer-BCppbMec.js +0 -2185
- package/dist/_chunks/link-cell-renderer-BCppbMec.js.map +0 -1
- package/dist/_chunks/marketplace-app-shell-BCYiOvKZ.js.map +0 -1
- package/dist/_chunks/optical-prescription-Bmlbuopi.js +0 -653
- package/dist/_chunks/optical-prescription-Bmlbuopi.js.map +0 -1
- package/dist/_chunks/patient-search-X9SUZGpy.js.map +0 -1
- package/dist/_chunks/patient-shell-oiIRqEAl.js +0 -162
- package/dist/_chunks/patient-shell-oiIRqEAl.js.map +0 -1
- package/dist/_chunks/patient-table-BgWgNIMf.js.map +0 -1
- package/dist/_chunks/public-header.agent-C-opZaOw.js.map +0 -1
- package/dist/_chunks/radiograph-panel.agent-D1x33moc.js.map +0 -1
- package/dist/_chunks/rich-text-editor-DUgznqOf.js.map +0 -1
- package/dist/_chunks/sidebar-B0OBmJrC.js.map +0 -1
- package/dist/_chunks/signature-capture-Ct_4Md4e.js.map +0 -1
- package/dist/_chunks/signature-field-jgwYgUhO.js.map +0 -1
- package/dist/_chunks/subDays-DGSOp9d9.js +0 -8
- package/dist/_chunks/tooth-scheme-D_rso4uu.js +0 -2133
- package/dist/_chunks/tooth-scheme-D_rso4uu.js.map +0 -1
- package/dist/_chunks/transaction-chip-B6iWoVmU.js.map +0 -1
- package/dist/patterns/patient-shell/index.d.ts +0 -12
- package/dist/patterns/patient-shell/index.d.ts.map +0 -1
- package/dist/patterns/patient-shell/index.js +0 -5
- package/dist/patterns/patient-shell/patient-shell.d.ts +0 -62
- package/dist/patterns/patient-shell/patient-shell.d.ts.map +0 -1
- /package/dist/{patterns/patient-shell → components/data-table-tabs}/index.js.map +0 -0
|
@@ -1,1450 +0,0 @@
|
|
|
1
|
-
import { jsxs as T, jsx as g } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as At, useId as Tt, useRef as _, useState as X, useCallback as k, useMemo as nt, useEffect as Ie, useImperativeHandle as _t } from "react";
|
|
3
|
-
import * as ae from "@radix-ui/react-tooltip";
|
|
4
|
-
import { c as It } from "./index-D2ZczOXr.js";
|
|
5
|
-
import { useTranslation as Zt } from "react-i18next";
|
|
6
|
-
import { u as Ot } from "./registry-DvAUVLHh.js";
|
|
7
|
-
import { m as jt, A as $t } from "./annotation-marker-qt5R9WZX.js";
|
|
8
|
-
import { B as ie } from "./button-DD_0Xdmr.js";
|
|
9
|
-
import { S as zt } from "./slider-DN1CWkKB.js";
|
|
10
|
-
import { R as Dt } from "./radio-TWf9Q-mp.js";
|
|
11
|
-
import { R as Pt } from "./radio-group-CI-6SmSw.js";
|
|
12
|
-
const se = {
|
|
13
|
-
type: "string",
|
|
14
|
-
description: "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
|
|
15
|
-
}, Ut = {
|
|
16
|
-
type: "string",
|
|
17
|
-
enum: ["front", "profile-left", "profile-right"],
|
|
18
|
-
description: "Active view id: 'front', 'profile-left', or 'profile-right'."
|
|
19
|
-
}, ve = {
|
|
20
|
-
enum: ["observation", "treatment", "concern", "note"]
|
|
21
|
-
}, Bt = {
|
|
22
|
-
id: "face-scheme",
|
|
23
|
-
// pick — focus a zone (transient); set_value / edit_inline — record / clear
|
|
24
|
-
// findings on a zone; view_change — switch the active view (front / left /
|
|
25
|
-
// right profile), since each view renders a different zone set. Registration
|
|
26
|
-
// (the photo fit) is exposed only as the auto-align action.
|
|
27
|
-
capabilities: ["pick", "set_value", "edit_inline", "view_change"],
|
|
28
|
-
state: {
|
|
29
|
-
activeView: {
|
|
30
|
-
// Which view is mounted — it determines which zones are in the DOM, so an
|
|
31
|
-
// agent must read this before focus_zone on a profile-only zone.
|
|
32
|
-
type: "string",
|
|
33
|
-
descriptionKey: "ui.agent.faceScheme.state.activeView",
|
|
34
|
-
description: "Id of the currently displayed view (front / profile-left / profile-right).",
|
|
35
|
-
read: (t) => t.getView()
|
|
36
|
-
},
|
|
37
|
-
chart: {
|
|
38
|
-
// A9: identifiers + finding ENUMS only — never the free-text finding
|
|
39
|
-
// `note` (PHI) and never the patient-photo `src`. Notes are written but
|
|
40
|
-
// never read back through the snapshot.
|
|
41
|
-
type: "Record<string, string[]>",
|
|
42
|
-
descriptionKey: "ui.agent.faceScheme.state.chart",
|
|
43
|
-
description: "Current face chart — the finding types recorded on each zone, keyed by zone id. Free-text notes and the patient photo are not exposed here.",
|
|
44
|
-
read: (t) => Object.fromEntries(
|
|
45
|
-
Object.entries(t.getChart()).map(([n, c]) => [
|
|
46
|
-
n,
|
|
47
|
-
c.map((o) => o.type)
|
|
48
|
-
])
|
|
49
|
-
)
|
|
50
|
-
},
|
|
51
|
-
markedZones: {
|
|
52
|
-
type: "string[]",
|
|
53
|
-
descriptionKey: "ui.agent.faceScheme.state.markedZones",
|
|
54
|
-
description: "Zone ids carrying at least one finding.",
|
|
55
|
-
read: (t) => Object.keys(t.getChart())
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
actions: {
|
|
59
|
-
focus_zone: {
|
|
60
|
-
safety: "read",
|
|
61
|
-
argsType: "{ id: string }",
|
|
62
|
-
argsSchema: {
|
|
63
|
-
type: "object",
|
|
64
|
-
properties: { id: se },
|
|
65
|
-
required: ["id"]
|
|
66
|
-
},
|
|
67
|
-
idempotent: !0,
|
|
68
|
-
descriptionKey: "ui.agent.faceScheme.actions.focusZone",
|
|
69
|
-
description: "Move focus to a specific face zone by id.",
|
|
70
|
-
invoke: (t, n) => {
|
|
71
|
-
t.focusZone(n.id);
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
get_zone: {
|
|
75
|
-
safety: "read",
|
|
76
|
-
argsType: "{ id: string }",
|
|
77
|
-
argsSchema: {
|
|
78
|
-
type: "object",
|
|
79
|
-
properties: { id: se },
|
|
80
|
-
required: ["id"]
|
|
81
|
-
},
|
|
82
|
-
returns: "string[]",
|
|
83
|
-
returnsSchema: { type: "array", items: ve },
|
|
84
|
-
idempotent: !0,
|
|
85
|
-
descriptionKey: "ui.agent.faceScheme.actions.getZone",
|
|
86
|
-
description: "Read the finding types recorded on one zone (notes are not returned).",
|
|
87
|
-
invoke: (t, n) => t.getZone(n.id).map((c) => c.type)
|
|
88
|
-
},
|
|
89
|
-
zones_with: {
|
|
90
|
-
safety: "read",
|
|
91
|
-
argsType: "{ finding: FaceFindingType }",
|
|
92
|
-
argsSchema: {
|
|
93
|
-
type: "object",
|
|
94
|
-
properties: { finding: ve },
|
|
95
|
-
required: ["finding"]
|
|
96
|
-
},
|
|
97
|
-
returns: "string[]",
|
|
98
|
-
returnsSchema: { type: "array", items: se },
|
|
99
|
-
idempotent: !0,
|
|
100
|
-
descriptionKey: "ui.agent.faceScheme.actions.zonesWith",
|
|
101
|
-
description: "List the zone ids carrying a given finding type.",
|
|
102
|
-
invoke: (t, n) => t.zonesWith(n.finding)
|
|
103
|
-
},
|
|
104
|
-
set_finding: {
|
|
105
|
-
safety: "write",
|
|
106
|
-
argsType: "{ id: string; finding: FaceFindingType; note?: string }",
|
|
107
|
-
argsSchema: {
|
|
108
|
-
type: "object",
|
|
109
|
-
properties: {
|
|
110
|
-
id: se,
|
|
111
|
-
finding: ve,
|
|
112
|
-
note: { type: "string" }
|
|
113
|
-
},
|
|
114
|
-
required: ["id", "finding"]
|
|
115
|
-
},
|
|
116
|
-
idempotent: !0,
|
|
117
|
-
descriptionKey: "ui.agent.faceScheme.actions.setFinding",
|
|
118
|
-
description: "Record a finding on a zone, with an optional free-text note.",
|
|
119
|
-
invoke: (t, n) => {
|
|
120
|
-
t.setFinding(n.id, n.finding, n.note);
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
remove_finding: {
|
|
124
|
-
safety: "write",
|
|
125
|
-
argsType: "{ id: string; finding: FaceFindingType }",
|
|
126
|
-
argsSchema: {
|
|
127
|
-
type: "object",
|
|
128
|
-
properties: { id: se, finding: ve },
|
|
129
|
-
required: ["id", "finding"]
|
|
130
|
-
},
|
|
131
|
-
idempotent: !0,
|
|
132
|
-
descriptionKey: "ui.agent.faceScheme.actions.removeFinding",
|
|
133
|
-
description: "Remove a single finding from a zone.",
|
|
134
|
-
invoke: (t, n) => {
|
|
135
|
-
t.removeFinding(n.id, n.finding);
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
clear_zone: {
|
|
139
|
-
safety: "destructive",
|
|
140
|
-
argsType: "{ id: string }",
|
|
141
|
-
argsSchema: {
|
|
142
|
-
type: "object",
|
|
143
|
-
properties: { id: se },
|
|
144
|
-
required: ["id"]
|
|
145
|
-
},
|
|
146
|
-
idempotent: !0,
|
|
147
|
-
descriptionKey: "ui.agent.faceScheme.actions.clearZone",
|
|
148
|
-
description: "Clear every finding from a zone.",
|
|
149
|
-
invoke: (t, n) => {
|
|
150
|
-
t.clearZone(n.id);
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
auto_align: {
|
|
154
|
-
safety: "write",
|
|
155
|
-
argsType: "{}",
|
|
156
|
-
argsSchema: { type: "object", properties: {} },
|
|
157
|
-
idempotent: !0,
|
|
158
|
-
descriptionKey: "ui.agent.faceScheme.actions.autoAlign",
|
|
159
|
-
description: "Run the on-device detector to align the zone overlay to the patient photo (works on the active view — front or profile). No-op if detection is disabled or no face is found.",
|
|
160
|
-
invoke: (t) => {
|
|
161
|
-
t.detect();
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
set_view: {
|
|
165
|
-
safety: "write",
|
|
166
|
-
argsType: "{ view: FaceViewId }",
|
|
167
|
-
argsSchema: {
|
|
168
|
-
type: "object",
|
|
169
|
-
properties: { view: Ut },
|
|
170
|
-
required: ["view"]
|
|
171
|
-
},
|
|
172
|
-
idempotent: !0,
|
|
173
|
-
descriptionKey: "ui.agent.faceScheme.actions.setView",
|
|
174
|
-
description: "Switch the active view ('front' / 'profile-left' / 'profile-right'). Each view renders a different zone set, so switch before focusing a zone that belongs to another view.",
|
|
175
|
-
invoke: (t, n) => {
|
|
176
|
-
t.setView(n.view);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
domHooks: {
|
|
181
|
-
root: { attr: "data-component", value: "face-scheme" },
|
|
182
|
-
instanceId: {
|
|
183
|
-
attr: "data-component-id",
|
|
184
|
-
sourceProp: "id",
|
|
185
|
-
description: "Sourced from the id prop."
|
|
186
|
-
},
|
|
187
|
-
item: {
|
|
188
|
-
attr: "data-zone",
|
|
189
|
-
description: "Each clickable zone `<g>` carries its zone id as `data-zone` (plus `data-side` for the anatomical side). The root `<div>` carries the active view id as `data-view` — only the zones for the active view are in the DOM."
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}, Wt = "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.18/vision_bundle.mjs", Vt = "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.18/wasm", Yt = "https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task", Ht = {
|
|
193
|
-
"right-eye": [33, 133],
|
|
194
|
-
// subject's right eye, outer + inner corners
|
|
195
|
-
"left-eye": [263, 362],
|
|
196
|
-
// subject's left eye, outer + inner corners
|
|
197
|
-
"nose-tip": [1],
|
|
198
|
-
chin: [152],
|
|
199
|
-
// Midline cephalometric points — the profile views fit on these (the detector
|
|
200
|
-
// tracks them on a side profile even though the contralateral side is
|
|
201
|
-
// occluded). The front view ignores ids it has no landmark for.
|
|
202
|
-
nasion: [168],
|
|
203
|
-
// bridge of the nose, between the brows
|
|
204
|
-
subnasale: [2]
|
|
205
|
-
// base of the nose / top of the philtrum
|
|
206
|
-
}, Ze = /* @__PURE__ */ new Map();
|
|
207
|
-
function Xt(t, n, c, o) {
|
|
208
|
-
const d = `${t}|${n}|${c}`, s = Ze.get(d);
|
|
209
|
-
if (s) return s;
|
|
210
|
-
o == null || o("loading");
|
|
211
|
-
const u = (async () => {
|
|
212
|
-
const l = await import(
|
|
213
|
-
/* @vite-ignore */
|
|
214
|
-
t
|
|
215
|
-
), f = await l.FilesetResolver.forVisionTasks(n);
|
|
216
|
-
return l.FaceLandmarker.createFromOptions(f, {
|
|
217
|
-
baseOptions: { modelAssetPath: c, delegate: "GPU" },
|
|
218
|
-
runningMode: "IMAGE",
|
|
219
|
-
numFaces: 1
|
|
220
|
-
});
|
|
221
|
-
})();
|
|
222
|
-
return Ze.set(d, u), u.catch(() => Ze.delete(d)), u;
|
|
223
|
-
}
|
|
224
|
-
function qt(t) {
|
|
225
|
-
const n = new Image();
|
|
226
|
-
return n.crossOrigin = "anonymous", n.src = t, n.decode().then(() => n);
|
|
227
|
-
}
|
|
228
|
-
async function Gt(t, n) {
|
|
229
|
-
if (typeof window > "u" || typeof Image > "u")
|
|
230
|
-
throw new Error("detectFaceLandmarks runs in the browser only.");
|
|
231
|
-
const {
|
|
232
|
-
viewWidth: c,
|
|
233
|
-
viewHeight: o,
|
|
234
|
-
visionModuleUrl: d = Wt,
|
|
235
|
-
wasmBaseUrl: s = Vt,
|
|
236
|
-
modelAssetPath: u = Yt,
|
|
237
|
-
onStage: l
|
|
238
|
-
} = n, [f, m] = await Promise.all([
|
|
239
|
-
qt(t),
|
|
240
|
-
Xt(d, s, u, l)
|
|
241
|
-
]);
|
|
242
|
-
l == null || l("detecting");
|
|
243
|
-
const x = m.detect(f).faceLandmarks[0];
|
|
244
|
-
if (!x || x.length === 0) return null;
|
|
245
|
-
const y = f.naturalWidth || f.width, C = f.naturalHeight || f.height, p = Math.max(c / y, o / C), N = (c - y * p) / 2, z = (o - C * p) / 2, K = (E) => ({
|
|
246
|
-
x: N + E.x * y * p,
|
|
247
|
-
y: z + E.y * C * p
|
|
248
|
-
}), R = [];
|
|
249
|
-
for (const [E, I] of Object.entries(Ht)) {
|
|
250
|
-
let Z = 0, V = 0, D = 0;
|
|
251
|
-
for (const q of I) {
|
|
252
|
-
const Y = x[q];
|
|
253
|
-
if (!Y) continue;
|
|
254
|
-
const h = K(Y);
|
|
255
|
-
Z += h.x, V += h.y, D++;
|
|
256
|
-
}
|
|
257
|
-
D > 0 && R.push({ id: E, photo: { x: Z / D, y: V / D } });
|
|
258
|
-
}
|
|
259
|
-
return R.length >= 3 ? R : null;
|
|
260
|
-
}
|
|
261
|
-
const Jt = "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.19.2/dist/ort.min.mjs", Qt = "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.19.2/dist/", L = 640, en = [8, 16, 32], tn = [
|
|
262
|
-
"right-eye",
|
|
263
|
-
"left-eye",
|
|
264
|
-
"nose-tip",
|
|
265
|
-
"mouth-right",
|
|
266
|
-
"mouth-left"
|
|
267
|
-
], Oe = /* @__PURE__ */ new Map();
|
|
268
|
-
async function nn(t, n, c, o) {
|
|
269
|
-
const d = `${t}|${n}|${c}`, s = Oe.get(d);
|
|
270
|
-
if (s) return s;
|
|
271
|
-
o == null || o("loading");
|
|
272
|
-
const u = (async () => {
|
|
273
|
-
const l = await import(
|
|
274
|
-
/* @vite-ignore */
|
|
275
|
-
t
|
|
276
|
-
);
|
|
277
|
-
l.env.wasm.wasmPaths = n, l.env.wasm.numThreads = 1, l.env.logLevel = "error";
|
|
278
|
-
const f = new Uint8Array(await (await fetch(c)).arrayBuffer()), m = await l.InferenceSession.create(f, {
|
|
279
|
-
executionProviders: ["wasm"]
|
|
280
|
-
});
|
|
281
|
-
return { ort: l, session: m };
|
|
282
|
-
})();
|
|
283
|
-
return Oe.set(d, u), u.catch(() => Oe.delete(d)), u;
|
|
284
|
-
}
|
|
285
|
-
function rn(t) {
|
|
286
|
-
const n = new Image();
|
|
287
|
-
return n.crossOrigin = "anonymous", n.src = t, n.decode().then(() => n);
|
|
288
|
-
}
|
|
289
|
-
async function an() {
|
|
290
|
-
return (await import("./face_detection_yunet_2023mar-BnsRs4bD.js")).default;
|
|
291
|
-
}
|
|
292
|
-
function sn(t, n) {
|
|
293
|
-
const c = n.naturalWidth || n.width, o = n.naturalHeight || n.height, d = Math.min(L / c, L / o), s = Math.round(c * d), u = Math.round(o * d), l = Math.floor((L - s) / 2), f = Math.floor((L - u) / 2), m = document.createElement("canvas");
|
|
294
|
-
m.width = L, m.height = L;
|
|
295
|
-
const w = m.getContext("2d");
|
|
296
|
-
if (!w) throw new Error("2D canvas context unavailable.");
|
|
297
|
-
w.fillRect(0, 0, L, L), w.drawImage(n, l, f, s, u);
|
|
298
|
-
const { data: x } = w.getImageData(0, 0, L, L), y = L * L, C = new Float32Array(3 * y);
|
|
299
|
-
for (let p = 0; p < y; p++)
|
|
300
|
-
C[p] = x[p * 4 + 2], C[y + p] = x[p * 4 + 1], C[2 * y + p] = x[p * 4];
|
|
301
|
-
return {
|
|
302
|
-
tensor: new t("float32", C, [1, 3, L, L]),
|
|
303
|
-
scale: d,
|
|
304
|
-
padX: l,
|
|
305
|
-
padY: f
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
const rt = (t) => 1 / (1 + Math.exp(-t));
|
|
309
|
-
function cn(t, n) {
|
|
310
|
-
let c = !1;
|
|
311
|
-
const o = t.cls_8.data;
|
|
312
|
-
for (let s = 0; s < Math.min(o.length, 256); s++)
|
|
313
|
-
if (o[s] < 0 || o[s] > 1) {
|
|
314
|
-
c = !0;
|
|
315
|
-
break;
|
|
316
|
-
}
|
|
317
|
-
let d = null;
|
|
318
|
-
for (const s of en) {
|
|
319
|
-
const u = t[`cls_${s}`].data, l = t[`obj_${s}`].data, f = t[`kps_${s}`].data, m = L / s, w = L / s, x = m * w;
|
|
320
|
-
for (let y = 0; y < x; y++) {
|
|
321
|
-
let C = u[y], p = l[y];
|
|
322
|
-
c && (C = rt(C), p = rt(p)), C = Math.min(Math.max(C, 0), 1), p = Math.min(Math.max(p, 0), 1);
|
|
323
|
-
const N = Math.sqrt(C * p);
|
|
324
|
-
if (N < n || d && N <= d.score) continue;
|
|
325
|
-
const z = y % m, K = Math.floor(y / m), R = [];
|
|
326
|
-
for (let E = 0; E < 5; E++)
|
|
327
|
-
R.push([
|
|
328
|
-
(z + f[y * 10 + 2 * E]) * s,
|
|
329
|
-
(K + f[y * 10 + 2 * E + 1]) * s
|
|
330
|
-
]);
|
|
331
|
-
d = { score: N, keypoints: R };
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
return d;
|
|
335
|
-
}
|
|
336
|
-
async function on(t, n) {
|
|
337
|
-
if (typeof window > "u" || typeof Image > "u")
|
|
338
|
-
throw new Error("detectFaceYuNet runs in the browser only.");
|
|
339
|
-
const {
|
|
340
|
-
viewWidth: c,
|
|
341
|
-
viewHeight: o,
|
|
342
|
-
ortModuleUrl: d = Jt,
|
|
343
|
-
ortWasmBaseUrl: s = Qt,
|
|
344
|
-
modelUrl: u = await an(),
|
|
345
|
-
scoreThreshold: l = 0.6,
|
|
346
|
-
onStage: f
|
|
347
|
-
} = n, [m, { ort: w, session: x }] = await Promise.all([
|
|
348
|
-
rn(t),
|
|
349
|
-
nn(d, s, u, f)
|
|
350
|
-
]);
|
|
351
|
-
f == null || f("detecting");
|
|
352
|
-
const { tensor: y, scale: C, padX: p, padY: N } = sn(w.Tensor, m), z = await x.run({ [x.inputNames[0]]: y }), K = cn(z, l);
|
|
353
|
-
if (!K) return null;
|
|
354
|
-
const R = m.naturalWidth || m.width, E = m.naturalHeight || m.height, I = Math.max(c / R, o / E), Z = (c - R * I) / 2, V = (o - E * I) / 2;
|
|
355
|
-
return K.keypoints.map(([D, q], Y) => {
|
|
356
|
-
const h = (D - p) / C, ce = (q - N) / C;
|
|
357
|
-
return {
|
|
358
|
-
id: tn[Y],
|
|
359
|
-
photo: {
|
|
360
|
-
x: Z + h * I,
|
|
361
|
-
y: V + ce * I
|
|
362
|
-
}
|
|
363
|
-
};
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
const je = "0 0 808 944", $e = { x: 404, y: 472 }, ut = {
|
|
367
|
-
id: "faceContour",
|
|
368
|
-
labelKey: "faceContour",
|
|
369
|
-
d: "M688.38,439.4c-9.78,0-15.37,4.04-17.86,6.47,1.31-10.99,2.5-20.62,3.49-28.2,7.55-57.89,5.03-94.39,5.03-94.39-15.15-165.92-111.73-221.46-186.21-239.39h0s-.1-.02-.1-.02c-6.18-1.49-12.21-2.72-18.02-3.73l-.96-.2c-46.02-9.51-93.5-9.51-139.52,0l-.95.2c-5.82,1.01-11.85,2.24-18.04,3.73l-.08.02h0c-74.48,17.94-171.06,73.48-186.21,239.39,0,0-2.52,36.5,5.03,94.39,1,7.68,2.2,17.45,3.53,28.61-2.25-2.35-7.91-6.88-18.26-6.88-13.97,0-29.06,16.21-20.12,63.71,8.94,47.5,17.3,80.48,18.43,97.24,1.11,16.47,24.08,47.91,41.43,38.23.9,8.33,1.42,13.17,1.42,13.17,0,0,8.81,59.15,56.63,104.46,12.62,11.95,25.84,23.46,38.49,33.94,7.14-4.56,24-16.96,29.06-35.21.9-3.24,1.73-6.33,2.52-9.29,2.46-9.17,4.59-17.1,7.4-24.46,3.44-9.01,7.62-16.28,13.25-23.04-47.54-46.57-49.82-89.3-48.75-104.93-21.75-2.47-38.06-19.4-47.37-49.37-7.27-23.39-7.77-46.39-7.79-47.36-.02-1.34.43-2.57,1.21-3.54-.47-2.21-.65-3.58-.67-3.77-.28-2.23.97-4.38,3.05-5.24.34-.14.69-.23,1.04-.29.47-3.26,2.23-10.86,8.8-18.21,10.82-12.11,28.95-17.92,53.93-17.22,41.5,1.13,55.11,17.49,59.58,28.15,1.45.85,2.49,2.34,2.68,4.14,0,.05.02.21.05.45.22.48.36,1,.42,1.56.04.41.34,3.71.16,8.68.17,6.11.1,14.39-.75,23.68-.27,2.9-.6,5.73-.98,8.49,4.1-9.94,7.68-20.29,11.15-30.32l.31-.89-10.84-54.18c-2.15-3.39-8.76-12.5-21.75-19.51-21.63-11.68-51.16-12.3-85.4-1.8-2.58.79-5.32-.61-6.19-3.16l-53.03-154.45c-.88-1.09-1.31-2.52-1.05-4.01.26-1.43,6.68-35.35,39.46-69.52,19.15-19.96,43.37-35.84,72.01-47.21,35.3-14.02,77.45-21.18,125.28-21.27h0s.98,0,.98,0c47.83.1,89.98,7.25,125.28,21.27,28.63,11.37,52.86,27.26,72.01,47.21,30.62,31.92,38.24,63.61,39.32,68.82.29.8.42,1.35.47,1.59.17.87.11,1.77-.17,2.61l-53.21,154.96c-.88,2.55-3.62,3.95-6.19,3.16-34.24-10.5-63.77-9.88-85.4,1.8-11.42,6.17-17.92,13.96-20.78,18.06l-11.25,56.25.04.11c2.95,8.52,5.98,17.28,9.34,25.81-.14-1.26-.28-2.53-.4-3.82-.53-5.79-.75-11.19-.81-15.92-1.11-9.09-.51-15.85-.45-16.44.11-1.1.59-2.08,1.3-2.85.19-.72.52-1.37.96-1.94,3.86-10.54,16.77-28.3,60.04-29.48,24.93-.69,43.04,5.1,53.85,17.2,6.53,7.3,8.3,14.85,8.78,18.13.53.04,1.05.16,1.56.37,2.08.86,3.32,3.01,3.05,5.24-.02.14-.12.93-.37,2.25,1.7.96,2.84,2.8,2.8,4.89-.02.97-.52,23.97-7.79,47.36-8.99,28.91-24.49,45.69-45.11,49.05,1.16,15.29-.68,58.78-49.42,106.1,5.35,6.56,9.36,13.63,12.68,22.33,2.81,7.36,4.94,15.28,7.4,24.45.79,2.96,1.62,6.05,2.52,9.29,5.07,18.28,21.97,30.69,29.09,35.23,12.65-10.48,25.88-21.99,38.5-33.95,47.82-45.31,56.63-104.46,56.63-104.46,0,0,.51-4.77,1.4-13,17.31,9.1,39.99-22.04,41.09-38.41,1.13-16.77,9.49-49.74,18.43-97.24,8.94-47.5-6.15-63.71-20.12-63.71Z"
|
|
370
|
-
}, dn = [
|
|
371
|
-
{
|
|
372
|
-
id: "lateralNeckRight",
|
|
373
|
-
labelKey: "lateralNeckRight",
|
|
374
|
-
d: "M234.37,783.6s32.84,133.08,163.93,137.04v-48.41s-103.52,3.15-163.93-88.63Z",
|
|
375
|
-
cx: 316,
|
|
376
|
-
cy: 852,
|
|
377
|
-
side: "right"
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
id: "lateralNeckLeft",
|
|
381
|
-
labelKey: "lateralNeckLeft",
|
|
382
|
-
d: "M572.98,783.6s-32.84,133.08-163.93,137.04v-48.41s103.52,3.15,163.93-88.63Z",
|
|
383
|
-
cx: 491,
|
|
384
|
-
cy: 852,
|
|
385
|
-
side: "left"
|
|
386
|
-
},
|
|
387
|
-
{
|
|
388
|
-
id: "forehead",
|
|
389
|
-
labelKey: "forehead",
|
|
390
|
-
d: "M404,206.87s-.1,0-.14,0h-1.06s-.09,0-.14,0c-193.61.2-222.63,42.82-226.18,50.14l51.08,148.75c44.34-12.51,72.83-4.7,89.09,4.28,11.9,6.57,19.12,14.63,22.86,19.75,9.12-6.42,21.26-11.05,36.17-13.79,13.2-2.43,24.31-2.56,27.4-2.54.05,0,.1,0,.16,0h.04s.07,0,.11,0h.04c.2,0,.4,0,.64,0,3.65,0,14.33.22,26.92,2.54,14.91,2.74,27.05,7.37,36.17,13.79,3.74-5.12,10.96-13.18,22.86-19.75,16.26-8.98,44.75-16.79,89.09-4.28l51.08-148.75c-3.54-7.32-32.57-49.94-226.18-50.14Z",
|
|
391
|
-
cx: 403,
|
|
392
|
-
cy: 318,
|
|
393
|
-
side: "midline"
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
id: "glabella",
|
|
397
|
-
labelKey: "glabella",
|
|
398
|
-
d: "M403.28,472.75s.03,0,.04,0c.11,0,.22,0,.34,0,.11,0,.22,0,.34,0,.02,0,.03,0,.04,0,28.06.09,43.26,5.62,51.09,10.26l8.65-43.23c-19.58-15.79-54.78-16.31-59.89-16.33-.13,0-.27,0-.4,0h-.16s-.16,0-.16,0c-.13,0-.27,0-.4,0-5.09-.02-39.63.51-59.32,15.85l8.74,43.71c7.83-4.64,23.03-10.17,51.09-10.26Z",
|
|
399
|
-
cx: 404,
|
|
400
|
-
cy: 453,
|
|
401
|
-
side: "midline"
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
id: "nasalBase",
|
|
405
|
-
labelKey: "nasalBase",
|
|
406
|
-
d: "M403.9,608.63c-.19.02-.38.06-.58.06-34.25,0-47.76,9.72-52.65,15.19-.02.21-.05.42-.1.62,10.07,8.84,28.11,13.48,52.75,13.48.15,0,.29.03.43.04.15-.01.29-.04.43-.04,24.98,0,43.18-4.76,53.17-13.83-4.69-5.41-18.09-15.46-52.89-15.46-.2,0-.38-.04-.58-.06Z",
|
|
407
|
-
cx: 404,
|
|
408
|
-
cy: 623,
|
|
409
|
-
side: "midline"
|
|
410
|
-
},
|
|
411
|
-
{
|
|
412
|
-
id: "nasolabialFold",
|
|
413
|
-
labelKey: "nasolabialFold",
|
|
414
|
-
d: "M347.77,580.98c-2.28,3.78-4.09,6.76-5.04,9.96-1.38,4.58-3.68,15.46,1.36,25.35,7.25-7.51,23.63-17.61,59.24-17.61.2,0,.38.04.58.06.19-.02.38-.06.58-.06,35.31,0,51.71,9.93,59.05,17.42,4.92-9.84,2.63-20.61,1.27-25.17-.96-3.19-2.76-6.18-5.04-9.96-5.23-8.65-12.39-20.5-14.97-45.03-2.34-22.26,2.15-36.18,6.11-43.75-5.65-3.61-19.1-9.4-47.23-9.45-27.9.05-41.36,5.75-47.09,9.36,3.98,7.55,8.51,21.49,6.16,43.84-2.58,24.53-9.74,36.38-14.97,45.03Z",
|
|
415
|
-
cx: 404,
|
|
416
|
-
cy: 550,
|
|
417
|
-
side: "midline"
|
|
418
|
-
},
|
|
419
|
-
{
|
|
420
|
-
id: "medialCheekboneRight",
|
|
421
|
-
labelKey: "medialCheekboneRight",
|
|
422
|
-
d: "M310.99,528.29c6.75-7.41,10.08-16.87,11.7-25.19-.55.67-1.13,1.34-1.73,2.02-11.93,13.41-27.69,20.63-45.58,20.88-24.57.33-43.87-10.86-55.92-20.57,6.83,15.71,22.29,36.28,56.41,36.28,15.2,0,27.02-4.51,35.12-13.42Z",
|
|
423
|
-
cx: 271,
|
|
424
|
-
cy: 522,
|
|
425
|
-
side: "right"
|
|
426
|
-
},
|
|
427
|
-
{
|
|
428
|
-
id: "medialCheekboneLeft",
|
|
429
|
-
labelKey: "medialCheekboneLeft",
|
|
430
|
-
d: "M529.65,526c-17.89-.25-33.66-7.47-45.58-20.88-.48-.54-.94-1.08-1.39-1.62.02.49.04.99.06,1.49,1.74,7.84,5.06,16.45,11.3,23.3,8.11,8.9,19.92,13.42,35.12,13.42,34.11,0,49.57-20.57,56.41-36.28-12.05,9.71-31.35,20.9-55.92,20.57Z",
|
|
431
|
-
cx: 534,
|
|
432
|
-
cy: 523,
|
|
433
|
-
side: "left"
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
id: "lateralCheekLeft",
|
|
437
|
-
labelKey: "lateralCheekLeft",
|
|
438
|
-
d: "M540.15,593.37c-18.18-.45-32.31-6.73-43.63-16.5-1.18-.24-2.29-.88-3.12-1.88-1.11-1.34-2.16-2.75-3.18-4.2-15.93-17.11-25.66-41.5-33.74-64.38-1.86,6.64-3.07,15.9-1.75,28.49,2.35,22.31,8.58,32.62,13.58,40.91,2.44,4.04,4.74,7.85,6.06,12.26,1.9,6.35,5.16,22.19-4,36.16,7.6,9.08,23.47,31.53,26.94,63.94,25.78-26.28,36.07-50.77,40.13-67.19,3.11-12.6,3.1-22.36,2.72-27.61Z",
|
|
439
|
-
cx: 497,
|
|
440
|
-
cy: 597,
|
|
441
|
-
side: "left"
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
id: "lateralCheekRight",
|
|
445
|
-
labelKey: "lateralCheekRight",
|
|
446
|
-
d: "M350.8,505.59c-14.12,40.11-33.1,85.3-81.73,87.86-.37,5.26-.37,15,2.72,27.53,4.02,16.29,14.18,40.52,39.5,66.55,3.52-31.28,18.56-53.18,26.31-62.61-9.73-14.13-6.4-30.4-4.46-36.85,1.32-4.41,3.62-8.22,6.06-12.26,5-8.29,11.23-18.6,13.58-40.91,1.38-13.12,0-22.63-1.99-29.32Z",
|
|
447
|
-
cx: 311,
|
|
448
|
-
cy: 597,
|
|
449
|
-
side: "right"
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
id: "zygomaticArchRight",
|
|
453
|
-
labelKey: "zygomaticArchRight",
|
|
454
|
-
d: "M319.21,534.06c-.26.3-.51.61-.78.91-10.08,11.1-24.4,16.73-42.56,16.73-30.94,0-48.47-15.12-58-28.84,4.69,25.35,16.61,59.69,46.82,59.69,16.21,0,28.81-5.46,38.96-14.31.06-.09.11-.18.18-.26,7.83-9.48,12.57-21.69,15.39-33.93Z",
|
|
455
|
-
cx: 269,
|
|
456
|
-
cy: 553,
|
|
457
|
-
side: "right"
|
|
458
|
-
},
|
|
459
|
-
{
|
|
460
|
-
id: "zygomaticArchLeft",
|
|
461
|
-
labelKey: "zygomaticArchLeft",
|
|
462
|
-
d: "M542.24,582.4c31.74,0,43.29-37.91,47.48-63.47-.28.46-.57.93-.86,1.4-9.09,14.32-26.82,31.38-59.69,31.38-18.08,0-32.36-5.59-42.43-16.6,2.41,10.07,6.15,20.06,11.85,28.48,10.9,11.46,24.85,18.81,43.65,18.81Z",
|
|
463
|
-
cx: 538,
|
|
464
|
-
cy: 551,
|
|
465
|
-
side: "left"
|
|
466
|
-
},
|
|
467
|
-
{
|
|
468
|
-
id: "upperForehead",
|
|
469
|
-
labelKey: "upperForehead",
|
|
470
|
-
d: "M524.46,147.46c-34.16-13.49-75.08-20.35-121.64-20.4-46.56.05-87.49,6.91-121.64,20.4-27.26,10.76-50.3,25.76-68.48,44.56-15.39,15.91-24.67,31.94-30.13,44.09,4.92-3.6,11.3-7.4,19.61-11.17,40.86-18.52,108.25-27.96,200.32-28.07.05,0,.11,0,.16,0h.68s.68,0,.68,0c.05,0,.11,0,.16,0,92.07.1,159.46,9.55,200.32,28.07,7.48,3.39,13.39,6.81,18.08,10.08-5.52-12-14.69-27.55-29.63-43-18.18-18.8-41.22-33.79-68.48-44.56Z",
|
|
471
|
-
cx: 403,
|
|
472
|
-
cy: 182,
|
|
473
|
-
side: "midline"
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
id: "marionetteLines",
|
|
477
|
-
labelKey: "marionetteLines",
|
|
478
|
-
d: "M344.66,676.82c23.78-8.45,44.18-6.91,59.31,4.4,15.13-11.32,35.54-12.87,59.33-4.41,9.61,3.41,17.99,7.81,23.93,11.32-3.32-27.6-16.56-47.44-23.55-56.2-11.99,10.66-31.94,16.05-59.49,16.05-.15,0-.29-.03-.43-.04-.15.01-.29.04-.43.04-27.09,0-46.83-5.21-58.88-15.52-7.05,8.98-19.76,28.44-23.08,55.31,5.9-3.44,14.03-7.65,23.29-10.94Z",
|
|
479
|
-
cx: 404,
|
|
480
|
-
cy: 660,
|
|
481
|
-
side: "midline"
|
|
482
|
-
},
|
|
483
|
-
{
|
|
484
|
-
id: "lowerLip",
|
|
485
|
-
labelKey: "lowerLip",
|
|
486
|
-
d: "M487.84,709.63c-4.92,5.03-11.64,11.3-19.65,17.27-17.67,13.18-35.13,19.92-51.28,19.92-4.52,0-8.94-.53-13.23-1.6-4.29,1.06-8.71,1.6-13.23,1.6-16.15,0-33.61-6.74-51.28-19.92-7.36-5.49-13.63-11.23-18.42-16.03,1.76,38.11,15.57,71.15,82.56,71.15.33,0,.64.04.95.1.31-.06.62-.1.95-.1,67.72,0,81.09-33.76,82.62-72.39Z",
|
|
487
|
-
cx: 404,
|
|
488
|
-
cy: 746,
|
|
489
|
-
side: "midline"
|
|
490
|
-
},
|
|
491
|
-
{
|
|
492
|
-
id: "lipCommissures",
|
|
493
|
-
labelKey: "lipCommissures",
|
|
494
|
-
d: "M407.45,691.27c-.9.8-2.02,1.19-3.13,1.23-1.34.13-2.72-.26-3.8-1.22-22.23-19.67-55.63-5.3-72.53,4.24,11.5,1.38,25.87,2.57,31.61,1.13,6.72-1.68,12.32.35,18.25,2.5,6.08,2.2,13.64,4.94,25.48,4.98,11.85-.04,19.41-2.78,25.48-4.98,5.93-2.15,11.53-4.18,18.25-2.5,5.93,1.48,21.03.17,32.69-1.26-16.96-9.54-50.17-23.72-72.31-4.13Z",
|
|
495
|
-
cx: 404,
|
|
496
|
-
cy: 688,
|
|
497
|
-
side: "midline"
|
|
498
|
-
},
|
|
499
|
-
{
|
|
500
|
-
id: "upperLip",
|
|
501
|
-
labelKey: "upperLip",
|
|
502
|
-
d: "M444.65,706.36c-3.59-.9-6.73.14-12.42,2.2-6.4,2.32-15.13,5.47-28.52,5.57-.03,0-.06,0-.09,0-.09,0-.18,0-.28,0-.09,0-.18,0-.28,0-.03,0-.06,0-.09,0-13.39-.1-22.12-3.25-28.52-5.57-5.69-2.06-8.83-3.1-12.42-2.2-6.87,1.72-20.85.72-32.07-.53,15.47,14.96,44.16,37.13,72.34,29.42.46-.13.93-.16,1.39-.15.46,0,.93.03,1.4.15,28.22,7.72,56.98-14.55,72.43-29.5-11.35,1.29-25.82,2.37-32.86.61Z",
|
|
503
|
-
cx: 404,
|
|
504
|
-
cy: 724,
|
|
505
|
-
side: "midline"
|
|
506
|
-
},
|
|
507
|
-
{
|
|
508
|
-
id: "submental",
|
|
509
|
-
labelKey: "submental",
|
|
510
|
-
d: "M402.47,796.81c-31.67.12-55.93,8.97-72.11,26.31-5.47,5.87-9.06,11.79-11.35,16.53.85.63,1.68,1.27,2.5,1.95,4.99,4.16,26.68,19.07,81.31,19.07s76.32-14.91,81.31-19.07c.65-.54,1.31-1.06,1.98-1.57-2.28-4.8-5.91-10.88-11.53-16.91-16.17-17.35-40.44-26.19-72.11-26.31Z",
|
|
511
|
-
cx: 403,
|
|
512
|
-
cy: 829,
|
|
513
|
-
side: "midline"
|
|
514
|
-
},
|
|
515
|
-
{
|
|
516
|
-
id: "mandibularAngleLeft",
|
|
517
|
-
labelKey: "mandibularAngleLeft",
|
|
518
|
-
d: "M514.03,757.42c-.91-3.27-1.74-6.39-2.54-9.37-2.39-8.91-4.46-16.6-7.08-23.48-1.84-4.83-3.93-9.07-6.37-12.99-1.26,23.6-6.85,40.74-17.31,53.43-10.17,12.33-24.87,20.32-44.53,24.16,17.13,3.95,34.7,11.85,48.39,26.79,5.59,6.1,9.46,12.22,12.09,17.4,10.43-7.53,28.1-20.6,47.98-36.72-9.19-6.29-25.19-19.64-30.61-39.21Z",
|
|
519
|
-
cx: 490,
|
|
520
|
-
cy: 772,
|
|
521
|
-
side: "left"
|
|
522
|
-
},
|
|
523
|
-
{
|
|
524
|
-
id: "mandibularAngleRight",
|
|
525
|
-
labelKey: "mandibularAngleRight",
|
|
526
|
-
d: "M372.3,789.03c-19.33-3.89-33.81-11.84-43.86-24.02-10.59-12.83-16.18-30.24-17.35-54.26-2.69,4.15-4.95,8.66-6.92,13.84-2.63,6.88-4.69,14.57-7.08,23.48-.8,2.98-1.64,6.1-2.54,9.37-5.42,19.55-21.39,32.89-30.58,39.19,19.56,15.86,36.98,28.78,47.47,36.36,2.63-5.1,6.44-11.07,11.9-17.03,13.85-15.11,31.67-23.02,48.98-26.92Z",
|
|
527
|
-
cx: 318,
|
|
528
|
-
cy: 772,
|
|
529
|
-
side: "right"
|
|
530
|
-
},
|
|
531
|
-
{
|
|
532
|
-
id: "eyelidRight",
|
|
533
|
-
labelKey: "eyelidRight",
|
|
534
|
-
d: "M270.93,458.23c-50.38-1.36-52.57,26.33-52.64,27.51-.08,1.39-.72,2.61-1.69,3.46,7.87,8.21,29.3,27.23,58.63,26.79,29.72-.41,43.34-22.6,47.54-31.28-.03-.39-.05-.75-.07-1.07-1.34-6.07-8.94-24.24-51.76-25.41Z",
|
|
535
|
-
cx: 270,
|
|
536
|
-
cy: 487,
|
|
537
|
-
side: "right"
|
|
538
|
-
},
|
|
539
|
-
{
|
|
540
|
-
id: "eyelidLeft",
|
|
541
|
-
labelKey: "eyelidLeft",
|
|
542
|
-
d: "M586.21,485.71c-.08-1.27-2.3-28.82-52.55-27.45-36.35.99-47.27,14.25-50.55,21.95.08.48.1.98.05,1.49-.01.11-.16,1.63-.31,4.22,4.82,9.37,18.52,29.69,46.94,30.08,29.04.43,50.34-18.21,58.4-26.55-1.13-.87-1.91-2.2-1.98-3.73Z",
|
|
543
|
-
cx: 536,
|
|
544
|
-
cy: 487,
|
|
545
|
-
side: "left"
|
|
546
|
-
}
|
|
547
|
-
], ln = [
|
|
548
|
-
{ id: "right-eye", labelKey: "rightEye", x: 268, y: 487 },
|
|
549
|
-
{ id: "left-eye", labelKey: "leftEye", x: 535, y: 487 },
|
|
550
|
-
{ id: "nose-tip", labelKey: "noseTip", x: 403, y: 620 },
|
|
551
|
-
{ id: "chin", labelKey: "chin", x: 404, y: 858 }
|
|
552
|
-
], mt = [
|
|
553
|
-
{
|
|
554
|
-
id: "cheekbone",
|
|
555
|
-
labelKey: "cheekbone",
|
|
556
|
-
d: "M587.86 415.87C586.01 408.8 583.79 409.02 576.91 410.15C573.08 410.38 567.86 410.32 561.24 408.36C547.07 403.39 488.66 358.5 465.97 345.98C436.12 334.42 407.31 328.09 390.38 326.48C395.19 331.07 399.27 338.58 388.69 345.72C397.48 346.49 408.73 348.34 421.39 351.61C467.3 374.36 523.12 420.78 541.55 435.68C550.62 443.21 555.39 449.39 559.11 454.28C564.66 461.73 567.89 466.16 579.26 467.46C583.31 467.67 586.22 465.29 588.19 460.34C591.18 452.28 592.1 431.43 587.86 415.88Z",
|
|
557
|
-
cx: 490,
|
|
558
|
-
cy: 397
|
|
559
|
-
},
|
|
560
|
-
{
|
|
561
|
-
id: "profileContour",
|
|
562
|
-
labelKey: "profileContour",
|
|
563
|
-
d: "M657.04 427.15C645.32 417.42 612.92 377.67 608.47 342.76C610.05 315.91 614.77 299.37 606.91 241.79C600.19 175.54 556.62 116.74 420.63 130.08C253.44 160.79 152.79 273.93 132.98 380.57C116.36 516.03 182.43 589.12 182.43 589.12L226.57 641.41C234.86 650.15 249.78 644.43 261.09 627.35L321.54 525.13C328.57 512.58 325.7 495.54 318.17 493.61C294.63 488.83 257.86 468.83 262.84 409.94C267.69 380.06 284 357.04 302.38 340.78C330.2 319.79 367.62 311.97 382.74 320.74C382.87 320.84 382.94 320.94 382.99 321.04C388.82 321.28 405.44 322.73 426.75 326.43C424.09 323.46 422.53 319.98 422.13 315.98C421.41 309.9 423.49 304.51 423.88 303.54C426.23 284.75 477.87 242.7 506.61 211.31L506.84 210.99C508.32 208.89 511.62 207.65 515.45 207.77C519.23 207.92 522.88 209.42 524.98 211.72L567.11 326.31C568.13 330.65 567.2 335.05 564.76 336.69C563.35 337.54 561.24 339.5 558.91 342.14C559.06 342.41 559.15 342.57 559.15 342.57L573.97 372.38C575.71 369.67 578.22 365.84 581.33 362.37C585.49 356.14 590.79 348.98 597.61 352.24C598.15 352.43 598.76 354.7 598.84 357.08C598.91 358.84 598.59 359.88 598.14 359.69C597.37 359.38 596.65 359.2 595.96 359.12C597.33 369.53 600.96 398.18 595.38 398C588.92 397.38 587.72 374.56 588.46 362.31C586.69 363.79 584.85 365.85 582.96 368.5C580.04 371.85 577.73 375.59 576.26 377.97L577.27 380.55C577.56 381.29 577.66 382.22 577.55 383.11C577.43 384 577.11 384.76 576.66 385.24L553.04 396.96C558.13 400.5 560.86 401.88 562.35 402.34C568.32 404.04 572.97 404.02 576.7 403.74C583.09 402.53 587.8 400.9 590.94 412.75C594.16 424.28 596.78 449.29 591.87 464.27C589.18 471.56 584.78 475.46 579.05 475.22C575.99 474.97 573.36 474.4 571.04 473.57C567.75 472.35 565.15 470.69 562.9 468.71C562.88 472.1 562.76 476.4 562.38 481.46C567.8 483.15 578.56 487.63 584.78 500.94C588.58 509.77 589.68 521.45 587.53 535.74C590.03 539.27 597.49 548.85 608.32 547.11C615.16 544.28 621.37 543.88 625.6 545.18C627.13 536.84 628.35 525.82 627.96 516.71C626.08 501.81 623.74 494.92 625.48 485.82C627.82 477.03 640.49 466.24 651.72 451.57C662.37 438.81 663.39 438.52 657.07 427.15Z",
|
|
564
|
-
cx: 390,
|
|
565
|
-
cy: 383
|
|
566
|
-
},
|
|
567
|
-
{
|
|
568
|
-
id: "temple",
|
|
569
|
-
labelKey: "temple",
|
|
570
|
-
d: "M551.29 339.27C551.73 338.72 552.17 338.34 552.62 338.11C556.19 334.28 559.65 331.21 562.14 329.85C562.68 329.54 562.9 328.65 562.67 327.75L518.07 213.95C517.55 213.37 516.78 213.26 516.36 213.24C515.95 213.22 515.19 213.27 514.81 213.81L514.57 214.13C507.63 223.01 490.31 241.35 473.08 259.55C456.86 274.15 435.38 293.06 434.06 303.22L434.04 303.36L433.97 303.51C433.88 303.72 424.42 324.26 448.09 332.54C448.37 332.66 448.62 332.79 448.84 332.93C456.22 335.74 463.82 338.97 471.46 342.54C502.66 360.75 523.25 375.04 536.66 384.85C535.73 382.31 534.95 379.47 534.57 376.45C533.66 370.15 534.7 364.78 536.86 360.11C539.61 349.89 545.41 345.33 549.41 341.41C549.46 341.36 549.51 341.3 549.56 341.25C550.19 340.57 550.77 339.92 551.29 339.26Z",
|
|
571
|
-
cx: 494,
|
|
572
|
-
cy: 299
|
|
573
|
-
},
|
|
574
|
-
{
|
|
575
|
-
id: "preauricularArea",
|
|
576
|
-
labelKey: "preauricularArea",
|
|
577
|
-
d: "M399.04 423.47C400.19 426.46 399.28 429.83 397.03 431.07L421.24 493.26C429.33 496.6 440.56 504.27 451.47 519.28C455.98 526.45 460.47 535.45 464.49 546.37C473.34 527.06 479.06 492.31 479.5 447.01C480.52 417.95 479.02 394.87 478.75 390.28C457.75 375.55 435.02 362.96 415.32 355.59C403.76 352.86 393.4 351.38 385.05 350.82C383.53 355.04 382.54 362.85 384.93 378.19C389.1 396.84 398.92 423.16 399.04 423.46Z",
|
|
578
|
-
cx: 432,
|
|
579
|
-
cy: 449
|
|
580
|
-
},
|
|
581
|
-
{
|
|
582
|
-
id: "mandibularBody",
|
|
583
|
-
labelKey: "mandibularBody",
|
|
584
|
-
d: "M448.9 529.33C441.36 518.39 433.39 511.79 426.69 508.14L444.05 565.22L444.11 565.55C444.61 568.53 446.18 612.75 465.58 621.58C467.31 622.11 469.2 622.59 471.21 623.04C472.27 587.41 463.32 555.13 448.9 529.33Z",
|
|
585
|
-
cx: 449,
|
|
586
|
-
cy: 566
|
|
587
|
-
},
|
|
588
|
-
{
|
|
589
|
-
id: "submentalProfile",
|
|
590
|
-
labelKey: "submentalProfile",
|
|
591
|
-
d: "M499.51 624.48C500.22 624.28 501.01 624.05 501.85 623.78C506.95 622.1 508.34 617.25 499.33 608.72C499.3 608.71 499.28 608.69 499.25 608.67C498.87 608.43 498.48 608.2 498.08 607.95C489.61 603.09 481.6 597.71 477.16 594.66C477.83 603.57 477.42 613.28 475.61 623.94C494.7 628.41 483.66 636.08 483.66 636.08C483.66 636.08 476.69 649.28 527.7 627.3C518.99 627.63 510.52 627.34 503.56 626.55C496.4 626.16 495.89 625.71 499.5 624.48Z",
|
|
592
|
-
cx: 502,
|
|
593
|
-
cy: 622
|
|
594
|
-
},
|
|
595
|
-
{
|
|
596
|
-
id: "masseter",
|
|
597
|
-
labelKey: "masseter",
|
|
598
|
-
d: "M554.71 459.19C550.92 454.22 546.49 448.51 537.91 441.39C528.42 433.63 510.52 417.13 488.4 397.93C489.3 421.03 491.75 514.66 467.63 555.34C470.6 563.87 473.34 573.19 475.46 583.39C476.18 582.97 476.93 582.94 477.54 583.4C477.77 583.56 487.55 590.84 499.76 598.04C530.58 563.84 546.09 529.73 552.28 505.65C557.13 483.51 556.81 466.48 556.58 461.68C555.96 460.87 555.34 460.04 554.7 459.2Z",
|
|
599
|
-
cx: 512,
|
|
600
|
-
cy: 498
|
|
601
|
-
},
|
|
602
|
-
{
|
|
603
|
-
id: "cheek",
|
|
604
|
-
labelKey: "cheek",
|
|
605
|
-
d: "M503.7 600.29L503.69 600.76C506.68 599.48 519.15 594.49 532.76 586.74C551.63 579.2 568.84 567.08 579.23 546.08C584.39 529.37 584.46 515.84 580.48 506.25C575.46 495.21 566.3 491.13 561.55 489.57C560.86 495.06 559.83 501.15 558.34 507.68C551.78 532.36 535.25 566.52 503.69 600.3Z",
|
|
606
|
-
cx: 544,
|
|
607
|
-
cy: 545
|
|
608
|
-
},
|
|
609
|
-
{
|
|
610
|
-
id: "chin",
|
|
611
|
-
labelKey: "chin",
|
|
612
|
-
d: "M622.37 557.72C618.53 556.38 613.08 555.94 606.76 557.59C595.83 558.3 588.65 550.46 584.99 545.44C584.69 546.34 584.38 547.24 584.03 548.15C571.22 572.11 550.01 585.32 530.6 593C522.53 597.65 514.89 601.46 509.24 604.26C515.21 610.11 514.33 615.81 510.02 618.18C502.34 623.58 523.79 624.61 543.95 623.09C547.34 622.17 550.83 621.19 554.45 620.12L594.99 602.7L595.21 602.54C596.13 601.8 602.57 595.37 608.29 593.49C613.07 590.42 621.01 568.35 622.15 559.26C622.19 558.76 622.27 558.26 622.36 557.75Z",
|
|
613
|
-
cx: 562,
|
|
614
|
-
cy: 585
|
|
615
|
-
},
|
|
616
|
-
{
|
|
617
|
-
id: "browTail",
|
|
618
|
-
labelKey: "browTail",
|
|
619
|
-
d: "M555.64 346.57C555.64 346.57 530.25 360.36 547.29 391.38L572.95 381.28L555.64 346.57Z",
|
|
620
|
-
cx: 552,
|
|
621
|
-
cy: 369
|
|
622
|
-
}
|
|
623
|
-
], at = mt.find((t) => t.id === "profileContour") ?? ut, it = mt.filter(
|
|
624
|
-
(t) => t.id !== "profileContour"
|
|
625
|
-
).map((t) => ({
|
|
626
|
-
id: t.id,
|
|
627
|
-
labelKey: t.labelKey,
|
|
628
|
-
d: t.d,
|
|
629
|
-
cx: t.cx ?? 0,
|
|
630
|
-
cy: t.cy ?? 0,
|
|
631
|
-
side: t.side ?? "midline"
|
|
632
|
-
})), st = [
|
|
633
|
-
{ id: "eye", labelKey: "eye", x: 561, y: 374 },
|
|
634
|
-
{ id: "nose-tip", labelKey: "noseTip", x: 668, y: 432 },
|
|
635
|
-
{ id: "mouth", labelKey: "mouth", x: 592, y: 532 }
|
|
636
|
-
], ct = {
|
|
637
|
-
front: {
|
|
638
|
-
id: "front",
|
|
639
|
-
labelKey: "front",
|
|
640
|
-
viewBox: je,
|
|
641
|
-
pivot: $e,
|
|
642
|
-
contour: ut,
|
|
643
|
-
// The generator guarantees every clickable zone carries cx/cy/side.
|
|
644
|
-
zones: dn,
|
|
645
|
-
landmarks: ln
|
|
646
|
-
},
|
|
647
|
-
// The reshaped profile zones face +x; the right profile is the same mesh
|
|
648
|
-
// mirrored. Both fit on the eye/nose-tip/mouth anchors — auto-detect and manual
|
|
649
|
-
// drag/sliders all work; the right profile mirrors the fit at render time.
|
|
650
|
-
"profile-left": {
|
|
651
|
-
id: "profile-left",
|
|
652
|
-
labelKey: "profileLeft",
|
|
653
|
-
viewBox: je,
|
|
654
|
-
pivot: $e,
|
|
655
|
-
contour: at,
|
|
656
|
-
zones: it,
|
|
657
|
-
landmarks: st
|
|
658
|
-
},
|
|
659
|
-
"profile-right": {
|
|
660
|
-
id: "profile-right",
|
|
661
|
-
labelKey: "profileRight",
|
|
662
|
-
viewBox: je,
|
|
663
|
-
pivot: $e,
|
|
664
|
-
contour: at,
|
|
665
|
-
zones: it,
|
|
666
|
-
landmarks: st,
|
|
667
|
-
mirror: !0
|
|
668
|
-
}
|
|
669
|
-
}, ot = [
|
|
670
|
-
"front",
|
|
671
|
-
"profile-left",
|
|
672
|
-
"profile-right"
|
|
673
|
-
], fn = [
|
|
674
|
-
"observation",
|
|
675
|
-
"treatment",
|
|
676
|
-
"concern",
|
|
677
|
-
"note"
|
|
678
|
-
], dt = {
|
|
679
|
-
observation: { shape: "circle", tone: "info" },
|
|
680
|
-
treatment: { shape: "square", tone: "success" },
|
|
681
|
-
concern: { shape: "triangle", tone: "warning" },
|
|
682
|
-
note: { shape: "diamond", tone: "neutral" }
|
|
683
|
-
}, fe = [1, 0, 0, 1, 0, 0];
|
|
684
|
-
function lt(t) {
|
|
685
|
-
return `matrix(${t[0]} ${t[1]} ${t[2]} ${t[3]} ${t[4]} ${t[5]})`;
|
|
686
|
-
}
|
|
687
|
-
function ze(t, n) {
|
|
688
|
-
return {
|
|
689
|
-
x: t[0] * n.x + t[2] * n.y + t[4],
|
|
690
|
-
y: t[1] * n.x + t[3] * n.y + t[5]
|
|
691
|
-
};
|
|
692
|
-
}
|
|
693
|
-
const xe = Math.PI / 180;
|
|
694
|
-
function un(t, n) {
|
|
695
|
-
const c = t.rotation * xe, o = Math.cos(c), d = Math.sin(c), s = Math.tan(t.shear * xe), u = t.scaleX * o, l = t.scaleX * d, f = t.scaleY * (s * o - d), m = t.scaleY * (s * d + o), w = t.translateX + n.x - (u * n.x + f * n.y), x = t.translateY + n.y - (l * n.x + m * n.y);
|
|
696
|
-
return [u, l, f, m, w, x];
|
|
697
|
-
}
|
|
698
|
-
function mn(t, n) {
|
|
699
|
-
const [c, o, d, s, u, l] = t, f = Math.hypot(c, o), m = Math.atan2(o, c) / xe, w = c * s - o * d, x = f === 0 ? 0 : w / f, y = Math.atan2(c * d + o * s, w) / xe, C = u - n.x + (c * n.x + d * n.y), p = l - n.y + (o * n.x + s * n.y);
|
|
700
|
-
return { scaleX: f, scaleY: x, rotation: m, shear: y, translateX: C, translateY: p };
|
|
701
|
-
}
|
|
702
|
-
function ft(t, n) {
|
|
703
|
-
const c = Math.min(t.length, n.length);
|
|
704
|
-
if (c < 3) return fe;
|
|
705
|
-
let o = 0, d = 0, s = 0, u = 0, l = 0, f = 0, m = 0, w = 0, x = 0, y = 0, C = 0;
|
|
706
|
-
for (let j = 0; j < c; j++) {
|
|
707
|
-
const M = t[j], F = n[j];
|
|
708
|
-
!M || !F || (o += M.x * M.x, d += M.x * M.y, s += M.x, u += M.y * M.y, l += M.y, f += F.x * M.x, m += F.x * M.y, w += F.x, x += F.y * M.x, y += F.y * M.y, C += F.y);
|
|
709
|
-
}
|
|
710
|
-
const p = o * (u * c - l * l) - d * (d * c - l * s) + s * (d * l - u * s);
|
|
711
|
-
if (Math.abs(p) < 1e-9) return fe;
|
|
712
|
-
const N = u * c - l * l, z = s * l - d * c, K = d * l - s * u, R = o * c - s * s, E = s * d - o * l, I = o * u - d * d, Z = (j, M, F) => [
|
|
713
|
-
(N * j + z * M + K * F) / p,
|
|
714
|
-
(z * j + R * M + E * F) / p,
|
|
715
|
-
(K * j + E * M + I * F) / p
|
|
716
|
-
], [V, D, q] = Z(f, m, w), [Y, h, ce] = Z(x, y, C);
|
|
717
|
-
return [V, Y, D, h, q, ce];
|
|
718
|
-
}
|
|
719
|
-
function hn(t) {
|
|
720
|
-
const n = (f) => {
|
|
721
|
-
var m;
|
|
722
|
-
return (m = t.find((w) => w.id === f)) == null ? void 0 : m.photo;
|
|
723
|
-
}, c = n("nose-tip"), o = n("right-eye"), d = n("left-eye"), s = n("mouth-right"), u = n("mouth-left");
|
|
724
|
-
if (!c || !o || !d || !s || !u) return null;
|
|
725
|
-
const l = (f, m) => Math.abs(f.x - c.x) >= Math.abs(m.x - c.x) ? f : m;
|
|
726
|
-
return [
|
|
727
|
-
{ id: "eye", photo: l(o, d) },
|
|
728
|
-
{ id: "nose-tip", photo: c },
|
|
729
|
-
{ id: "mouth", photo: l(s, u) }
|
|
730
|
-
];
|
|
731
|
-
}
|
|
732
|
-
function pn() {
|
|
733
|
-
return typeof navigator < "u" && typeof navigator.mediaDevices < "u" && typeof navigator.mediaDevices.getUserMedia == "function";
|
|
734
|
-
}
|
|
735
|
-
function gn(t) {
|
|
736
|
-
const n = t instanceof Error ? t.name : "";
|
|
737
|
-
return n === "NotAllowedError" || n === "SecurityError" ? "permission-denied" : n === "NotFoundError" || n === "OverconstrainedError" ? "no-camera" : n === "NotReadableError" || n === "AbortError" ? "not-readable" : "capture-failed";
|
|
738
|
-
}
|
|
739
|
-
const yn = {
|
|
740
|
-
"permission-denied": "faceScheme.capture.error.permissionDenied",
|
|
741
|
-
"no-camera": "faceScheme.capture.error.noCamera",
|
|
742
|
-
"not-readable": "faceScheme.capture.error.notReadable",
|
|
743
|
-
"insecure-context": "faceScheme.capture.error.insecureContext",
|
|
744
|
-
"capture-failed": "faceScheme.capture.error.captureFailed"
|
|
745
|
-
}, vn = {
|
|
746
|
-
neutral: "ds:[fill:var(--muted-foreground)]",
|
|
747
|
-
info: "ds:[fill:var(--info)]",
|
|
748
|
-
success: "ds:[fill:var(--success)]",
|
|
749
|
-
warning: "ds:[fill:var(--warning)]",
|
|
750
|
-
error: "ds:[fill:var(--destructive)]",
|
|
751
|
-
accent: "ds:[fill:var(--accent)]"
|
|
752
|
-
}, xn = It(
|
|
753
|
-
[
|
|
754
|
-
"ds:[vector-effect:non-scaling-stroke]",
|
|
755
|
-
"ds:transition-[fill-opacity] ds:[transition-duration:var(--animation-duration)]",
|
|
756
|
-
"ds:[fill:transparent] ds:[stroke:var(--accent)] ds:[stroke-width:1]"
|
|
757
|
-
].join(" "),
|
|
758
|
-
{
|
|
759
|
-
variants: {
|
|
760
|
-
interactive: { true: "ds:cursor-pointer", false: "" },
|
|
761
|
-
marked: { true: "", false: "" }
|
|
762
|
-
},
|
|
763
|
-
compoundVariants: [
|
|
764
|
-
{
|
|
765
|
-
marked: !1,
|
|
766
|
-
interactive: !0,
|
|
767
|
-
class: "ds:hover:[fill:var(--accent)] ds:hover:[fill-opacity:0.14]"
|
|
768
|
-
},
|
|
769
|
-
{
|
|
770
|
-
marked: !0,
|
|
771
|
-
class: "ds:[fill:var(--accent)] ds:[fill-opacity:0.18]"
|
|
772
|
-
}
|
|
773
|
-
],
|
|
774
|
-
defaultVariants: { interactive: !1, marked: !1 }
|
|
775
|
-
}
|
|
776
|
-
), Cn = {
|
|
777
|
-
scaleX: { min: 0.3, max: 1.8, step: 0.01 },
|
|
778
|
-
scaleY: { min: 0.3, max: 1.8, step: 0.01 },
|
|
779
|
-
rotation: { min: -20, max: 20, step: 0.5 },
|
|
780
|
-
shear: { min: -20, max: 20, step: 0.5 },
|
|
781
|
-
translateX: { min: -240, max: 240, step: 1 },
|
|
782
|
-
translateY: { min: -240, max: 240, step: 1 }
|
|
783
|
-
}, bn = [
|
|
784
|
-
"scaleX",
|
|
785
|
-
"scaleY",
|
|
786
|
-
"rotation",
|
|
787
|
-
"shear",
|
|
788
|
-
"translateX",
|
|
789
|
-
"translateY"
|
|
790
|
-
], wn = At(
|
|
791
|
-
({
|
|
792
|
-
id: t,
|
|
793
|
-
patientPhoto: n,
|
|
794
|
-
viewPhotos: c,
|
|
795
|
-
view: o,
|
|
796
|
-
defaultView: d = "front",
|
|
797
|
-
onViewChange: s,
|
|
798
|
-
showViewSwitcher: u = !0,
|
|
799
|
-
mode: l = "interactive",
|
|
800
|
-
value: f,
|
|
801
|
-
defaultValue: m,
|
|
802
|
-
onChange: w,
|
|
803
|
-
onSelectZone: x,
|
|
804
|
-
activeFinding: y,
|
|
805
|
-
registration: C,
|
|
806
|
-
defaultRegistration: p,
|
|
807
|
-
onRegistrationChange: N,
|
|
808
|
-
registrationMode: z = "off",
|
|
809
|
-
autoDetect: K,
|
|
810
|
-
onDetectStatus: R,
|
|
811
|
-
allowCapture: E = !1,
|
|
812
|
-
captureFacingMode: I = "user",
|
|
813
|
-
onCapture: Z,
|
|
814
|
-
legend: V = !1,
|
|
815
|
-
ariaLabel: D,
|
|
816
|
-
className: q
|
|
817
|
-
}, Y) => {
|
|
818
|
-
const { t: h } = Zt(), ce = Tt(), j = t ?? ce, M = _(null), F = _(null), ue = _(null), oe = _(null), De = _(null), Pe = _(null), Ce = _(!1), be = o !== void 0, [ht, pt] = X(
|
|
819
|
-
o ?? d
|
|
820
|
-
), A = be ? o : ht, Ue = _(A);
|
|
821
|
-
Ue.current = A;
|
|
822
|
-
const we = k(
|
|
823
|
-
(e) => {
|
|
824
|
-
be || pt(e), s == null || s(e);
|
|
825
|
-
},
|
|
826
|
-
[be, s]
|
|
827
|
-
), b = ct[A], [, , B, Q] = b.viewBox.split(" ").map(Number), G = l === "interactive", Be = G && z === "adjust", ke = f !== void 0, [gt, yt] = X(m ?? {}), Me = ke ? f : gt, O = _(Me);
|
|
828
|
-
O.current = Me;
|
|
829
|
-
const ee = k(
|
|
830
|
-
(e) => {
|
|
831
|
-
ke || yt(e), w == null || w(e);
|
|
832
|
-
},
|
|
833
|
-
[ke, w]
|
|
834
|
-
), me = k(
|
|
835
|
-
(e, r, a) => {
|
|
836
|
-
const i = O.current[e] ?? [];
|
|
837
|
-
i.some((v) => v.type === r) || ee({
|
|
838
|
-
...O.current,
|
|
839
|
-
[e]: [...i, { type: r, note: a }]
|
|
840
|
-
});
|
|
841
|
-
},
|
|
842
|
-
[ee]
|
|
843
|
-
), he = k(
|
|
844
|
-
(e, r) => {
|
|
845
|
-
const i = (O.current[e] ?? []).filter((S) => S.type !== r), v = { ...O.current };
|
|
846
|
-
i.length > 0 ? v[e] = i : delete v[e], ee(v);
|
|
847
|
-
},
|
|
848
|
-
[ee]
|
|
849
|
-
), We = k(
|
|
850
|
-
(e, r) => {
|
|
851
|
-
(O.current[e] ?? []).some(
|
|
852
|
-
(i) => i.type === r
|
|
853
|
-
) ? he(e, r) : me(e, r);
|
|
854
|
-
},
|
|
855
|
-
[me, he]
|
|
856
|
-
), Se = C !== void 0, [vt, xt] = X(
|
|
857
|
-
p ?? {}
|
|
858
|
-
), Ee = Se ? C : vt, P = Ee[A] ?? fe, Ve = _(P);
|
|
859
|
-
Ve.current = P;
|
|
860
|
-
const Ye = _(Ee);
|
|
861
|
-
Ye.current = Ee;
|
|
862
|
-
const U = k(
|
|
863
|
-
(e) => {
|
|
864
|
-
const r = { ...Ye.current, [A]: e };
|
|
865
|
-
Se || xt(r), N == null || N(r);
|
|
866
|
-
},
|
|
867
|
-
[Se, N, A]
|
|
868
|
-
), Re = nt(
|
|
869
|
-
() => mn(P, b.pivot),
|
|
870
|
-
[P, b.pivot]
|
|
871
|
-
), H = k(
|
|
872
|
-
(e) => b.mirror ? { x: B - e.x, y: e.y } : e,
|
|
873
|
-
[b.mirror, B]
|
|
874
|
-
), [Le, He] = X(
|
|
875
|
-
() => b.landmarks.map((e) => H(ze(P, e)))
|
|
876
|
-
), pe = _(null);
|
|
877
|
-
Ie(() => {
|
|
878
|
-
pe.current === null && He(
|
|
879
|
-
b.landmarks.map((e) => H(ze(P, e)))
|
|
880
|
-
);
|
|
881
|
-
}, [P, b.landmarks, H]);
|
|
882
|
-
const ge = k(
|
|
883
|
-
(e) => {
|
|
884
|
-
const r = [], a = [];
|
|
885
|
-
for (const i of e) {
|
|
886
|
-
const v = b.landmarks.find((S) => S.id === i.id);
|
|
887
|
-
v && (r.push({ x: v.x, y: v.y }), a.push(H(i.photo)));
|
|
888
|
-
}
|
|
889
|
-
r.length >= 3 && U(ft(r, a));
|
|
890
|
-
},
|
|
891
|
-
[U, b.landmarks, H]
|
|
892
|
-
), Xe = k(
|
|
893
|
-
(e, r) => {
|
|
894
|
-
const a = F.current;
|
|
895
|
-
if (!a) return { x: 0, y: 0 };
|
|
896
|
-
const i = a.createSVGPoint();
|
|
897
|
-
i.x = e, i.y = r;
|
|
898
|
-
const v = a.getScreenCTM();
|
|
899
|
-
if (!v) return { x: 0, y: 0 };
|
|
900
|
-
const S = i.matrixTransform(v.inverse());
|
|
901
|
-
return { x: S.x, y: S.y };
|
|
902
|
-
},
|
|
903
|
-
[]
|
|
904
|
-
), Ct = k(
|
|
905
|
-
(e) => (r) => {
|
|
906
|
-
pe.current = e, r.currentTarget.setPointerCapture(r.pointerId);
|
|
907
|
-
},
|
|
908
|
-
[]
|
|
909
|
-
), bt = k(
|
|
910
|
-
(e) => {
|
|
911
|
-
const r = pe.current;
|
|
912
|
-
if (r === null) return;
|
|
913
|
-
const a = Xe(e.clientX, e.clientY), i = Le.map((S, _e) => _e === r ? a : S);
|
|
914
|
-
He(i);
|
|
915
|
-
const v = b.landmarks.map((S) => ({ x: S.x, y: S.y }));
|
|
916
|
-
U(ft(v, i.map(H)));
|
|
917
|
-
},
|
|
918
|
-
[Le, Xe, b.landmarks, U, H]
|
|
919
|
-
), wt = k(() => {
|
|
920
|
-
pe.current = null;
|
|
921
|
-
}, []), [Ke, W] = X("idle"), [qe, te] = X(
|
|
922
|
-
null
|
|
923
|
-
), [kt, Mt] = X({}), J = (c == null ? void 0 : c[A]) ?? (A === "front" ? n : void 0), $ = kt[A] ?? (J == null ? void 0 : J.src), ne = k(() => {
|
|
924
|
-
var r;
|
|
925
|
-
(r = oe.current) == null || r.getTracks().forEach((a) => a.stop()), oe.current = null;
|
|
926
|
-
const e = ue.current;
|
|
927
|
-
e && (e.srcObject = null);
|
|
928
|
-
}, []), Ne = k(() => {
|
|
929
|
-
ne(), W("idle");
|
|
930
|
-
}, [ne]), Fe = k(async () => {
|
|
931
|
-
var e;
|
|
932
|
-
if (E) {
|
|
933
|
-
if (!pn()) {
|
|
934
|
-
te("insecure-context"), W("error");
|
|
935
|
-
return;
|
|
936
|
-
}
|
|
937
|
-
te(null), W("requesting");
|
|
938
|
-
try {
|
|
939
|
-
const r = await navigator.mediaDevices.getUserMedia({
|
|
940
|
-
video: { facingMode: I },
|
|
941
|
-
audio: !1
|
|
942
|
-
});
|
|
943
|
-
if (Ce.current) {
|
|
944
|
-
r.getTracks().forEach((i) => i.stop());
|
|
945
|
-
return;
|
|
946
|
-
}
|
|
947
|
-
oe.current = r;
|
|
948
|
-
const a = ue.current;
|
|
949
|
-
if (a) {
|
|
950
|
-
try {
|
|
951
|
-
a.srcObject = r;
|
|
952
|
-
} catch {
|
|
953
|
-
}
|
|
954
|
-
const i = (e = a.play) == null ? void 0 : e.call(a);
|
|
955
|
-
i && typeof i.catch == "function" && i.catch(() => {
|
|
956
|
-
});
|
|
957
|
-
}
|
|
958
|
-
W("streaming");
|
|
959
|
-
} catch (r) {
|
|
960
|
-
ne(), te(gn(r)), W("error");
|
|
961
|
-
}
|
|
962
|
-
}
|
|
963
|
-
}, [E, I, ne]), de = k(
|
|
964
|
-
(e, r, a) => {
|
|
965
|
-
Mt((i) => ({ ...i, [A]: e })), Z == null || Z({ src: e, width: r, height: a, view: A });
|
|
966
|
-
},
|
|
967
|
-
[Z, A]
|
|
968
|
-
), St = k(() => {
|
|
969
|
-
const e = ue.current, r = (e == null ? void 0 : e.videoWidth) || (e == null ? void 0 : e.clientWidth) || 0, a = (e == null ? void 0 : e.videoHeight) || (e == null ? void 0 : e.clientHeight) || 0;
|
|
970
|
-
if (!e || e.readyState < 2 || r === 0 || a === 0) {
|
|
971
|
-
te("capture-failed"), W("error");
|
|
972
|
-
return;
|
|
973
|
-
}
|
|
974
|
-
const i = document.createElement("canvas");
|
|
975
|
-
i.width = r, i.height = a;
|
|
976
|
-
const v = i.getContext("2d");
|
|
977
|
-
if (!v) {
|
|
978
|
-
te("capture-failed"), W("error");
|
|
979
|
-
return;
|
|
980
|
-
}
|
|
981
|
-
try {
|
|
982
|
-
v.drawImage(e, 0, 0, r, a);
|
|
983
|
-
} catch {
|
|
984
|
-
te("capture-failed"), W("error");
|
|
985
|
-
return;
|
|
986
|
-
}
|
|
987
|
-
ne(), de(i.toDataURL("image/jpeg", 0.92), r, a), W("idle");
|
|
988
|
-
}, [ne, de]), Et = k(
|
|
989
|
-
(e) => {
|
|
990
|
-
var i;
|
|
991
|
-
const r = (i = e.target.files) == null ? void 0 : i[0];
|
|
992
|
-
if (e.target.value = "", !r) return;
|
|
993
|
-
const a = new FileReader();
|
|
994
|
-
a.onload = () => {
|
|
995
|
-
const v = typeof a.result == "string" ? a.result : "";
|
|
996
|
-
if (!v) return;
|
|
997
|
-
const S = new Image();
|
|
998
|
-
S.onload = () => de(v, S.naturalWidth, S.naturalHeight), S.onerror = () => de(v, B, Q), S.src = v;
|
|
999
|
-
}, a.readAsDataURL(r);
|
|
1000
|
-
},
|
|
1001
|
-
[de, B, Q]
|
|
1002
|
-
);
|
|
1003
|
-
Ie(() => (Ce.current = !1, () => {
|
|
1004
|
-
var e;
|
|
1005
|
-
Ce.current = !0, (e = oe.current) == null || e.getTracks().forEach((r) => r.stop()), oe.current = null;
|
|
1006
|
-
}), []);
|
|
1007
|
-
const le = Ke === "streaming", Ge = _(!1);
|
|
1008
|
-
Ie(() => {
|
|
1009
|
-
var e;
|
|
1010
|
-
Ge.current && !le && ((e = Pe.current) == null || e.focus()), Ge.current = le;
|
|
1011
|
-
}, [le]);
|
|
1012
|
-
const [ye, Rt] = X("idle"), re = k(
|
|
1013
|
-
(e) => {
|
|
1014
|
-
Rt(e), R == null || R(e);
|
|
1015
|
-
},
|
|
1016
|
-
[R]
|
|
1017
|
-
), Ae = k(async () => {
|
|
1018
|
-
if (!K || !$ || b.landmarks.length === 0)
|
|
1019
|
-
return !1;
|
|
1020
|
-
const e = typeof K == "object" ? K : {}, r = (a) => re(a === "detecting" ? "detecting" : "loading");
|
|
1021
|
-
try {
|
|
1022
|
-
re("loading");
|
|
1023
|
-
let a;
|
|
1024
|
-
if (b.id === "front")
|
|
1025
|
-
a = await Gt($, {
|
|
1026
|
-
viewWidth: B,
|
|
1027
|
-
viewHeight: Q,
|
|
1028
|
-
onStage: r,
|
|
1029
|
-
wasmBaseUrl: e.wasmBaseUrl,
|
|
1030
|
-
modelAssetPath: e.modelAssetPath
|
|
1031
|
-
});
|
|
1032
|
-
else {
|
|
1033
|
-
const i = await on($, {
|
|
1034
|
-
viewWidth: B,
|
|
1035
|
-
viewHeight: Q,
|
|
1036
|
-
onStage: r,
|
|
1037
|
-
ortModuleUrl: e.ortModuleUrl,
|
|
1038
|
-
ortWasmBaseUrl: e.ortWasmBaseUrl,
|
|
1039
|
-
modelUrl: e.yunetModelUrl
|
|
1040
|
-
});
|
|
1041
|
-
a = i && hn(i);
|
|
1042
|
-
}
|
|
1043
|
-
return !a || a.length < 3 ? (re("no-face"), !1) : (ge(a), re("done"), !0);
|
|
1044
|
-
} catch {
|
|
1045
|
-
return re("error"), !1;
|
|
1046
|
-
}
|
|
1047
|
-
}, [
|
|
1048
|
-
K,
|
|
1049
|
-
$,
|
|
1050
|
-
b.id,
|
|
1051
|
-
b.landmarks,
|
|
1052
|
-
B,
|
|
1053
|
-
Q,
|
|
1054
|
-
re,
|
|
1055
|
-
ge
|
|
1056
|
-
]), Je = k((e) => {
|
|
1057
|
-
var r, a;
|
|
1058
|
-
(a = (r = M.current) == null ? void 0 : r.querySelector(`[data-zone="${e}"]`)) == null || a.focus();
|
|
1059
|
-
}, []), Te = nt(
|
|
1060
|
-
() => ({
|
|
1061
|
-
focusZone: Je,
|
|
1062
|
-
getChart: () => O.current,
|
|
1063
|
-
getZone: (e) => O.current[e] ?? [],
|
|
1064
|
-
zonesWith: (e) => Object.entries(O.current).filter(([, r]) => r.some((a) => a.type === e)).map(([r]) => r),
|
|
1065
|
-
setFinding: me,
|
|
1066
|
-
removeFinding: he,
|
|
1067
|
-
clearZone: (e) => {
|
|
1068
|
-
if (!O.current[e]) return;
|
|
1069
|
-
const r = { ...O.current };
|
|
1070
|
-
delete r[e], ee(r);
|
|
1071
|
-
},
|
|
1072
|
-
getRegistration: () => Ve.current,
|
|
1073
|
-
setRegistration: (e) => U(e),
|
|
1074
|
-
resetRegistration: () => U(fe),
|
|
1075
|
-
fitToLandmarks: ge,
|
|
1076
|
-
detect: Ae,
|
|
1077
|
-
startCapture: () => void Fe(),
|
|
1078
|
-
cancelCapture: Ne,
|
|
1079
|
-
getView: () => Ue.current,
|
|
1080
|
-
setView: we
|
|
1081
|
-
}),
|
|
1082
|
-
[
|
|
1083
|
-
Je,
|
|
1084
|
-
me,
|
|
1085
|
-
he,
|
|
1086
|
-
ee,
|
|
1087
|
-
U,
|
|
1088
|
-
ge,
|
|
1089
|
-
Ae,
|
|
1090
|
-
Fe,
|
|
1091
|
-
Ne,
|
|
1092
|
-
we
|
|
1093
|
-
]
|
|
1094
|
-
);
|
|
1095
|
-
_t(Y, () => Te, [Te]), Ot(Bt, Te, j);
|
|
1096
|
-
const Qe = k(
|
|
1097
|
-
(e) => {
|
|
1098
|
-
const r = h(`faceScheme.zone.${e.labelKey}`), a = O.current[e.id] ?? [];
|
|
1099
|
-
if (a.length === 0) return r;
|
|
1100
|
-
const i = a.map((v) => h(`faceScheme.finding.${v.type}`)).join(", ");
|
|
1101
|
-
return h("faceScheme.zoneWithFindings", {
|
|
1102
|
-
zone: r,
|
|
1103
|
-
findings: i
|
|
1104
|
-
});
|
|
1105
|
-
},
|
|
1106
|
-
[h]
|
|
1107
|
-
), et = k(
|
|
1108
|
-
(e) => {
|
|
1109
|
-
x == null || x(e.id), G && y && We(e.id, y);
|
|
1110
|
-
},
|
|
1111
|
-
[G, y, We, x]
|
|
1112
|
-
), Lt = J != null && J.altKey ? h(J.altKey) : h("faceScheme.photo.defaultAlt"), Kt = b.mirror ? `translate(${B} 0) scale(-1 1) ${lt(P)}` : lt(P), Nt = k(
|
|
1113
|
-
(e, r) => {
|
|
1114
|
-
U(un({ ...Re, [e]: r }, b.pivot));
|
|
1115
|
-
},
|
|
1116
|
-
[U, Re, b.pivot]
|
|
1117
|
-
), tt = !!K && !!$ && b.landmarks.length > 0, Ft = E;
|
|
1118
|
-
return /* @__PURE__ */ T(
|
|
1119
|
-
"div",
|
|
1120
|
-
{
|
|
1121
|
-
ref: M,
|
|
1122
|
-
"data-component": "face-scheme",
|
|
1123
|
-
"data-component-id": j,
|
|
1124
|
-
"data-view": A,
|
|
1125
|
-
className: ["ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", q].filter(Boolean).join(" "),
|
|
1126
|
-
role: "group",
|
|
1127
|
-
"aria-label": D ?? h("faceScheme.ariaLabel"),
|
|
1128
|
-
children: [
|
|
1129
|
-
u && ot.length > 1 && /* @__PURE__ */ g(
|
|
1130
|
-
Pt,
|
|
1131
|
-
{
|
|
1132
|
-
label: h("faceScheme.viewSwitcherLabel"),
|
|
1133
|
-
variant: "horizontal",
|
|
1134
|
-
value: A,
|
|
1135
|
-
onValueChange: (e) => we(e),
|
|
1136
|
-
children: ot.map((e) => /* @__PURE__ */ g(
|
|
1137
|
-
Dt,
|
|
1138
|
-
{
|
|
1139
|
-
value: e,
|
|
1140
|
-
label: h(`faceScheme.view.${ct[e].labelKey}`)
|
|
1141
|
-
},
|
|
1142
|
-
e
|
|
1143
|
-
))
|
|
1144
|
-
}
|
|
1145
|
-
),
|
|
1146
|
-
le && /* @__PURE__ */ T(
|
|
1147
|
-
"div",
|
|
1148
|
-
{
|
|
1149
|
-
"data-testid": "face-scheme-viewfinder",
|
|
1150
|
-
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]",
|
|
1151
|
-
children: [
|
|
1152
|
-
/* @__PURE__ */ g(
|
|
1153
|
-
"video",
|
|
1154
|
-
{
|
|
1155
|
-
ref: ue,
|
|
1156
|
-
autoPlay: !0,
|
|
1157
|
-
playsInline: !0,
|
|
1158
|
-
muted: !0,
|
|
1159
|
-
"aria-label": h("faceScheme.capture.viewfinder"),
|
|
1160
|
-
className: "ds:mx-auto ds:block ds:w-full ds:max-w-[28rem] ds:[border-radius:var(--radius-md)] ds:[transform:scaleX(-1)]"
|
|
1161
|
-
}
|
|
1162
|
-
),
|
|
1163
|
-
/* @__PURE__ */ T("div", { className: "ds:flex ds:flex-wrap ds:justify-center ds:gap-[var(--spacing-xs)]", children: [
|
|
1164
|
-
/* @__PURE__ */ g(ie, { size: "sm", intent: "primary", onClick: () => St(), children: h("faceScheme.capture.capture") }),
|
|
1165
|
-
/* @__PURE__ */ g(ie, { size: "sm", intent: "outline", onClick: Ne, children: h("faceScheme.capture.cancel") })
|
|
1166
|
-
] })
|
|
1167
|
-
]
|
|
1168
|
-
}
|
|
1169
|
-
),
|
|
1170
|
-
!le && /* @__PURE__ */ g(ae.Provider, { delayDuration: 200, children: /* @__PURE__ */ T(
|
|
1171
|
-
"svg",
|
|
1172
|
-
{
|
|
1173
|
-
ref: F,
|
|
1174
|
-
"data-testid": "face-scheme-svg",
|
|
1175
|
-
viewBox: b.viewBox,
|
|
1176
|
-
role: "group",
|
|
1177
|
-
"aria-label": h(`faceScheme.view.${b.labelKey}`),
|
|
1178
|
-
className: "ds:mx-auto ds:block ds:h-auto ds:w-full ds:max-w-[28rem] ds:touch-none ds:[border-radius:var(--radius-md)]",
|
|
1179
|
-
children: [
|
|
1180
|
-
$ && /* @__PURE__ */ g(
|
|
1181
|
-
"image",
|
|
1182
|
-
{
|
|
1183
|
-
href: $,
|
|
1184
|
-
x: 0,
|
|
1185
|
-
y: 0,
|
|
1186
|
-
width: B,
|
|
1187
|
-
height: Q,
|
|
1188
|
-
preserveAspectRatio: "xMidYMid slice",
|
|
1189
|
-
role: "img",
|
|
1190
|
-
"aria-label": Lt
|
|
1191
|
-
}
|
|
1192
|
-
),
|
|
1193
|
-
/* @__PURE__ */ T("g", { transform: Kt, children: [
|
|
1194
|
-
!$ && /* @__PURE__ */ g(
|
|
1195
|
-
"path",
|
|
1196
|
-
{
|
|
1197
|
-
d: b.contour.d,
|
|
1198
|
-
"aria-hidden": "true",
|
|
1199
|
-
className: "ds:[fill:none] ds:[stroke:var(--accent)] ds:[stroke-opacity:0.4] ds:[stroke-width:1] ds:[vector-effect:non-scaling-stroke] ds:[stroke-dasharray:4_5]"
|
|
1200
|
-
}
|
|
1201
|
-
),
|
|
1202
|
-
b.zones.map((e) => {
|
|
1203
|
-
const r = Me[e.id] ?? [], a = r.length > 0;
|
|
1204
|
-
return /* @__PURE__ */ T(ae.Root, { children: [
|
|
1205
|
-
/* @__PURE__ */ g(ae.Trigger, { asChild: !0, children: /* @__PURE__ */ T(
|
|
1206
|
-
"g",
|
|
1207
|
-
{
|
|
1208
|
-
"data-zone": e.id,
|
|
1209
|
-
"data-side": e.side,
|
|
1210
|
-
role: G || x ? "button" : "img",
|
|
1211
|
-
"aria-label": Qe(e),
|
|
1212
|
-
"aria-pressed": G && y ? a : void 0,
|
|
1213
|
-
className: "ds:outline-none ds:[&:focus-visible>*:first-child]:[stroke:var(--ring)] ds:[&:focus-visible>*:first-child]:[stroke-width:var(--focus-ring-width)] ds:forced-colors:[&:focus-visible>*:first-child]:[stroke:CanvasText]",
|
|
1214
|
-
tabIndex: G || x ? 0 : -1,
|
|
1215
|
-
onClick: () => et(e),
|
|
1216
|
-
onKeyDown: (i) => {
|
|
1217
|
-
(i.key === "Enter" || i.key === " ") && (i.preventDefault(), et(e));
|
|
1218
|
-
},
|
|
1219
|
-
children: [
|
|
1220
|
-
/* @__PURE__ */ g(
|
|
1221
|
-
"path",
|
|
1222
|
-
{
|
|
1223
|
-
d: e.d,
|
|
1224
|
-
className: xn({ interactive: G, marked: a })
|
|
1225
|
-
}
|
|
1226
|
-
),
|
|
1227
|
-
r.map((i, v) => {
|
|
1228
|
-
const S = dt[i.type], _e = (v - (r.length - 1) / 2) * 26;
|
|
1229
|
-
return /* @__PURE__ */ g(
|
|
1230
|
-
"path",
|
|
1231
|
-
{
|
|
1232
|
-
d: jt(
|
|
1233
|
-
S.shape,
|
|
1234
|
-
e.cx + _e,
|
|
1235
|
-
e.cy,
|
|
1236
|
-
11
|
|
1237
|
-
),
|
|
1238
|
-
"aria-hidden": "true",
|
|
1239
|
-
className: vn[S.tone]
|
|
1240
|
-
},
|
|
1241
|
-
i.type
|
|
1242
|
-
);
|
|
1243
|
-
})
|
|
1244
|
-
]
|
|
1245
|
-
}
|
|
1246
|
-
) }),
|
|
1247
|
-
/* @__PURE__ */ g(ae.Portal, { children: /* @__PURE__ */ T(
|
|
1248
|
-
ae.Content,
|
|
1249
|
-
{
|
|
1250
|
-
sideOffset: 4,
|
|
1251
|
-
className: "ds:z-50 ds:rounded-[var(--radius-sm)] ds:bg-[var(--popover)] ds:px-2 ds:py-1 ds:text-[length:var(--font-size-xs)] ds:text-[var(--popover-foreground)] ds:shadow-[var(--shadow-md)]",
|
|
1252
|
-
children: [
|
|
1253
|
-
Qe(e),
|
|
1254
|
-
/* @__PURE__ */ g(ae.Arrow, { className: "ds:[fill:var(--popover)]" })
|
|
1255
|
-
]
|
|
1256
|
-
}
|
|
1257
|
-
) })
|
|
1258
|
-
] }, e.id);
|
|
1259
|
-
})
|
|
1260
|
-
] }),
|
|
1261
|
-
Be && $ && /* @__PURE__ */ g("g", { "aria-hidden": "true", "data-testid": "face-scheme-handles", children: b.landmarks.map((e, r) => {
|
|
1262
|
-
const a = Le[r] ?? H(ze(P, e));
|
|
1263
|
-
return /* @__PURE__ */ T("g", { children: [
|
|
1264
|
-
/* @__PURE__ */ g(
|
|
1265
|
-
"circle",
|
|
1266
|
-
{
|
|
1267
|
-
cx: a.x,
|
|
1268
|
-
cy: a.y,
|
|
1269
|
-
r: 13,
|
|
1270
|
-
"data-handle": e.id,
|
|
1271
|
-
onPointerDown: Ct(r),
|
|
1272
|
-
onPointerMove: bt,
|
|
1273
|
-
onPointerUp: wt,
|
|
1274
|
-
className: "ds:[fill:var(--background)] ds:[fill-opacity:0.9] ds:[stroke:var(--accent)] ds:[stroke-width:2.5] ds:[vector-effect:non-scaling-stroke] ds:cursor-grab ds:touch-none"
|
|
1275
|
-
}
|
|
1276
|
-
),
|
|
1277
|
-
/* @__PURE__ */ g(
|
|
1278
|
-
"path",
|
|
1279
|
-
{
|
|
1280
|
-
d: `M ${a.x - 5} ${a.y} H ${a.x + 5} M ${a.x} ${a.y - 5} V ${a.y + 5}`,
|
|
1281
|
-
className: "ds:[stroke:var(--accent)] ds:[stroke-width:2] ds:[vector-effect:non-scaling-stroke]",
|
|
1282
|
-
pointerEvents: "none"
|
|
1283
|
-
}
|
|
1284
|
-
)
|
|
1285
|
-
] }, e.id);
|
|
1286
|
-
}) })
|
|
1287
|
-
]
|
|
1288
|
-
}
|
|
1289
|
-
) }),
|
|
1290
|
-
Ft && /* @__PURE__ */ T("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
|
|
1291
|
-
/* @__PURE__ */ T("div", { className: "ds:flex ds:flex-wrap ds:justify-center ds:gap-[var(--spacing-xs)]", children: [
|
|
1292
|
-
/* @__PURE__ */ g(
|
|
1293
|
-
ie,
|
|
1294
|
-
{
|
|
1295
|
-
ref: Pe,
|
|
1296
|
-
size: "sm",
|
|
1297
|
-
intent: $ ? "outline" : "primary",
|
|
1298
|
-
onClick: () => void Fe(),
|
|
1299
|
-
disabled: Ke === "requesting",
|
|
1300
|
-
children: h(
|
|
1301
|
-
$ ? "faceScheme.capture.retake" : "faceScheme.capture.take"
|
|
1302
|
-
)
|
|
1303
|
-
}
|
|
1304
|
-
),
|
|
1305
|
-
/* @__PURE__ */ g(
|
|
1306
|
-
ie,
|
|
1307
|
-
{
|
|
1308
|
-
size: "sm",
|
|
1309
|
-
intent: "outline",
|
|
1310
|
-
onClick: () => {
|
|
1311
|
-
var e;
|
|
1312
|
-
return (e = De.current) == null ? void 0 : e.click();
|
|
1313
|
-
},
|
|
1314
|
-
children: h("faceScheme.capture.upload")
|
|
1315
|
-
}
|
|
1316
|
-
),
|
|
1317
|
-
/* @__PURE__ */ g(
|
|
1318
|
-
"input",
|
|
1319
|
-
{
|
|
1320
|
-
ref: De,
|
|
1321
|
-
type: "file",
|
|
1322
|
-
accept: "image/*",
|
|
1323
|
-
capture: I,
|
|
1324
|
-
onChange: Et,
|
|
1325
|
-
className: "ds:sr-only",
|
|
1326
|
-
"aria-hidden": "true",
|
|
1327
|
-
tabIndex: -1,
|
|
1328
|
-
"data-testid": "face-scheme-file-input"
|
|
1329
|
-
}
|
|
1330
|
-
)
|
|
1331
|
-
] }),
|
|
1332
|
-
/* @__PURE__ */ g(
|
|
1333
|
-
"span",
|
|
1334
|
-
{
|
|
1335
|
-
role: "status",
|
|
1336
|
-
"aria-live": "polite",
|
|
1337
|
-
className: "ds:text-center ds:text-[length:var(--font-size-xs)] ds:text-[var(--destructive)] ds:empty:hidden",
|
|
1338
|
-
children: Ke === "error" && qe ? h(yn[qe]) : ""
|
|
1339
|
-
}
|
|
1340
|
-
)
|
|
1341
|
-
] }),
|
|
1342
|
-
Be && /* @__PURE__ */ T(
|
|
1343
|
-
"div",
|
|
1344
|
-
{
|
|
1345
|
-
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]",
|
|
1346
|
-
"data-testid": "face-scheme-registration",
|
|
1347
|
-
children: [
|
|
1348
|
-
/* @__PURE__ */ g("p", { className: "ds:m-0 ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]", children: h("faceScheme.registration.hint") }),
|
|
1349
|
-
/* @__PURE__ */ g("div", { className: "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-xs)] ds:sm:grid-cols-2", children: bn.map((e) => {
|
|
1350
|
-
const r = Cn[e], a = e === "scaleX" || e === "scaleY";
|
|
1351
|
-
return /* @__PURE__ */ T(
|
|
1352
|
-
"div",
|
|
1353
|
-
{
|
|
1354
|
-
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:text-[length:var(--font-size-xs)] ds:text-[var(--foreground)]",
|
|
1355
|
-
children: [
|
|
1356
|
-
/* @__PURE__ */ g("span", { children: h(`faceScheme.registration.${e}`) }),
|
|
1357
|
-
/* @__PURE__ */ g(
|
|
1358
|
-
zt,
|
|
1359
|
-
{
|
|
1360
|
-
"aria-label": h(`faceScheme.registration.${e}`),
|
|
1361
|
-
value: [Re[e]],
|
|
1362
|
-
min: r.min,
|
|
1363
|
-
max: r.max,
|
|
1364
|
-
step: r.step,
|
|
1365
|
-
formatValue: (i) => a ? `${Math.round(i * 100)}%` : e === "rotation" || e === "shear" ? `${i.toFixed(1)}°` : `${Math.round(i)}`,
|
|
1366
|
-
onValueChange: (i) => {
|
|
1367
|
-
const v = i[0];
|
|
1368
|
-
typeof v == "number" && Nt(e, v);
|
|
1369
|
-
}
|
|
1370
|
-
}
|
|
1371
|
-
)
|
|
1372
|
-
]
|
|
1373
|
-
},
|
|
1374
|
-
e
|
|
1375
|
-
);
|
|
1376
|
-
}) }),
|
|
1377
|
-
/* @__PURE__ */ T("div", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-xs)]", children: [
|
|
1378
|
-
tt && /* @__PURE__ */ g(
|
|
1379
|
-
ie,
|
|
1380
|
-
{
|
|
1381
|
-
size: "sm",
|
|
1382
|
-
intent: "primary",
|
|
1383
|
-
onClick: () => void Ae(),
|
|
1384
|
-
disabled: ye === "loading" || ye === "detecting",
|
|
1385
|
-
children: h("faceScheme.registration.autoDetect")
|
|
1386
|
-
}
|
|
1387
|
-
),
|
|
1388
|
-
/* @__PURE__ */ g(
|
|
1389
|
-
ie,
|
|
1390
|
-
{
|
|
1391
|
-
size: "sm",
|
|
1392
|
-
intent: "outline",
|
|
1393
|
-
onClick: () => U(fe),
|
|
1394
|
-
children: h("faceScheme.registration.reset")
|
|
1395
|
-
}
|
|
1396
|
-
),
|
|
1397
|
-
tt && /* @__PURE__ */ g(
|
|
1398
|
-
"span",
|
|
1399
|
-
{
|
|
1400
|
-
role: "status",
|
|
1401
|
-
"aria-live": "polite",
|
|
1402
|
-
className: "ds:self-center ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]",
|
|
1403
|
-
children: ye === "idle" ? "" : h(`faceScheme.detect.${ye}`)
|
|
1404
|
-
}
|
|
1405
|
-
)
|
|
1406
|
-
] })
|
|
1407
|
-
]
|
|
1408
|
-
}
|
|
1409
|
-
),
|
|
1410
|
-
V && /* @__PURE__ */ g(
|
|
1411
|
-
"ul",
|
|
1412
|
-
{
|
|
1413
|
-
"aria-label": h("faceScheme.legendLabel"),
|
|
1414
|
-
className: "ds:flex ds:flex-wrap ds:gap-x-4 ds:gap-y-1 ds:p-0 ds:text-[length:var(--font-size-xs)] ds:text-[var(--muted-foreground)]",
|
|
1415
|
-
children: fn.map((e) => {
|
|
1416
|
-
const r = dt[e];
|
|
1417
|
-
return /* @__PURE__ */ g("li", { className: "ds:flex ds:list-none ds:items-center", children: /* @__PURE__ */ g(
|
|
1418
|
-
$t,
|
|
1419
|
-
{
|
|
1420
|
-
shape: r.shape,
|
|
1421
|
-
tone: r.tone,
|
|
1422
|
-
size: "sm",
|
|
1423
|
-
label: h(`faceScheme.finding.${e}`)
|
|
1424
|
-
}
|
|
1425
|
-
) }, e);
|
|
1426
|
-
})
|
|
1427
|
-
}
|
|
1428
|
-
)
|
|
1429
|
-
]
|
|
1430
|
-
}
|
|
1431
|
-
);
|
|
1432
|
-
}
|
|
1433
|
-
);
|
|
1434
|
-
wn.displayName = "FaceScheme";
|
|
1435
|
-
export {
|
|
1436
|
-
dt as F,
|
|
1437
|
-
fe as I,
|
|
1438
|
-
fn as a,
|
|
1439
|
-
ct as b,
|
|
1440
|
-
ot as c,
|
|
1441
|
-
wn as d,
|
|
1442
|
-
lt as e,
|
|
1443
|
-
ze as f,
|
|
1444
|
-
un as g,
|
|
1445
|
-
mn as h,
|
|
1446
|
-
Gt as i,
|
|
1447
|
-
Bt as j,
|
|
1448
|
-
ft as s
|
|
1449
|
-
};
|
|
1450
|
-
//# sourceMappingURL=face-scheme-BT9_KdL0.js.map
|