@alfadocs/ui-kit 1.66.0 → 1.68.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/{address-fields-CJtu7LQU.js → address-fields-BUPRs3n-.js} +3 -3
- package/dist/_chunks/{agenda-card-DR9gDdKp.js → agenda-card-BDuvreCe.js} +2 -2
- package/dist/_chunks/{agenda-tray-DGB1Zup-.js → agenda-tray-CfwylhWf.js} +3 -3
- package/dist/_chunks/ai-credits-exhausted-notice-Bg8NpW2K.js +287 -0
- package/dist/_chunks/ai-credits-exhausted-notice.agent-DgTSTgez.js +43 -0
- package/dist/_chunks/ai-credits-notice-DQ-r3iQU.js +191 -0
- package/dist/_chunks/{ai-permission-notice-DpRmZ9Q3.js → ai-permission-notice-C00i6VhY.js} +2 -2
- package/dist/_chunks/{ai-prompt-input-DSGSe4LH.js → ai-prompt-input-DzgyoKyk.js} +141 -139
- package/dist/_chunks/{alert-DdDpOi-P.js → alert-9kEwDza3.js} +122 -111
- package/dist/_chunks/{alia-sidebar-qe0quZkB.js → alia-sidebar-B06ZSOaF.js} +3 -3
- package/dist/_chunks/{anamnesis-summary-card-CMzBLTiN.js → anamnesis-summary-card-DQ3iE1gD.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-rows-BIfw890v.js → anamnesis-summary-rows-CNK0fIJk.js} +392 -388
- package/dist/_chunks/{appointment-card-CL32sux-.js → appointment-card-5JMWi9_f.js} +2 -2
- package/dist/_chunks/{appointment-peek-B5mcDcXt.js → appointment-peek-D5XCfYKu.js} +2 -2
- package/dist/_chunks/{appointment-timeline-CCqjORFb.js → appointment-timeline-VFP6HoXT.js} +4 -4
- package/dist/_chunks/{appointment-tray-qtpJt8e0.js → appointment-tray-B3PDER3I.js} +3 -3
- package/dist/_chunks/{audio-recorder-DR-u1qbl.js → audio-recorder-4Ll0pwYK.js} +3 -3
- package/dist/_chunks/{auth-form-parts-Cmb41LSQ.js → auth-form-parts-B40zvD-a.js} +2 -2
- package/dist/_chunks/avatar-BPiPL7ND.js +199 -0
- package/dist/_chunks/{balance-badge-cell-DZNthHO1.js → balance-badge-cell-BG3DMly4.js} +4 -4
- package/dist/_chunks/{bishop-score-CaNTrikJ.js → bishop-score-Df8nF1qg.js} +2 -2
- package/dist/_chunks/{booking-DkjatiXc.js → booking-B1pDbERi.js} +377 -335
- package/dist/_chunks/{calendar-BhN-jisv.js → calendar-BvOM8rG3.js} +2 -2
- package/dist/_chunks/{calendar-workspace-Cp8yTZ1g.js → calendar-workspace-CYK1M83j.js} +19 -19
- package/dist/_chunks/{chat-message-fRLZ95O5.js → chat-message-Be-9vIIQ.js} +2 -2
- package/dist/_chunks/{clinical-note-card-BnFTIs6x.js → clinical-note-card-Caidqcwa.js} +2 -2
- package/dist/_chunks/{color-picker-BsggJovx.js → color-picker-AcaWuKah.js} +99 -95
- package/dist/_chunks/{combobox-U5yfO6o0.js → combobox-vF9O-QoG.js} +92 -83
- package/dist/_chunks/{contact-profile-card-C4-OCshj.js → contact-profile-card-CAwwOqHl.js} +40 -40
- package/dist/_chunks/{control-room-rail-DUerqHeo.js → control-room-rail-BB6rCDWI.js} +3 -3
- package/dist/_chunks/{country-select-DF5Bd_mn.js → country-select-CSE2Zm_s.js} +2 -2
- package/dist/_chunks/dashboard-grid-7JzaiKnk.js +1487 -0
- package/dist/_chunks/{data-table-COoCQ4n_.js → data-table-Cty4-Jht.js} +3 -3
- package/dist/_chunks/{dependent-selector-DBr1AhLg.js → dependent-selector-C4kOgO8b.js} +2 -2
- package/dist/_chunks/{document-preview-B1dQm292.js → document-preview-513f3iPn.js} +4 -4
- package/dist/_chunks/{document-scanner-CVPVLK7z.js → document-scanner-Bd3wbzpI.js} +2 -2
- package/dist/_chunks/{editable-description-ChGNdYY8.js → editable-description-DnAFi360.js} +2 -2
- package/dist/_chunks/{entity-summary-BQ9_KA8S.js → entity-summary-C2B8yNmc.js} +4 -4
- package/dist/_chunks/{error-summary-DrUfuKu1.js → error-summary-mGxIyDAY.js} +2 -2
- package/dist/_chunks/{face-scheme-DAD-mXzM.js → face-scheme-CSJdRNad.js} +248 -244
- package/dist/_chunks/{file-manager-RiV7-OEE.js → file-manager-D4cPnRhL.js} +3 -3
- package/dist/_chunks/{forgot-password-form-CgZkEvZy.js → forgot-password-form-Dqi7R-NL.js} +4 -4
- package/dist/_chunks/format-number-DdzqwMs1.js +13 -0
- package/dist/_chunks/{freemium-paywall-DKJHRFpp.js → freemium-paywall-C73C8Rgd.js} +2 -2
- package/dist/_chunks/{gestational-age-calculator-CZYa2D6m.js → gestational-age-calculator-Du53p8MH.js} +2 -2
- package/dist/_chunks/{header-settings-BSH9Gk0J.js → header-settings-DlUbvAUx.js} +37 -36
- package/dist/_chunks/{heatmap-C1TeC7wT.js → heatmap-DbZIQg14.js} +4 -4
- package/dist/_chunks/help-me-write-templates-5WkUfvc_.js +687 -0
- package/dist/_chunks/hourglass-BEAzW1wE.js +26 -0
- package/dist/_chunks/{kit-extensions-DWs1UEXb.js → kit-extensions-CYvLL4ee.js} +3 -3
- package/dist/_chunks/length-token-DwMnGEYT.js +24 -0
- package/dist/_chunks/{link-cell-renderer-CtTsvfPY.js → link-cell-renderer-DtIsQWDO.js} +4 -4
- package/dist/_chunks/{login-dev-card-PnADNcI9.js → login-dev-card-vEL-o5wq.js} +3 -3
- package/dist/_chunks/{map-view-BuVfJMEa.js → map-view-CtohteZD.js} +300 -191
- package/dist/_chunks/{marketplace-app-shell-C-2e4eCD.js → marketplace-app-shell-CcLQ0Dn-.js} +4 -4
- package/dist/_chunks/{message-card-A3mJNqfy.js → message-card-C_ksqIYM.js} +2 -2
- package/dist/_chunks/{message-tray-Ft6vSr71.js → message-tray-DCoQ4GQb.js} +3 -3
- package/dist/_chunks/{multi-select-CMaAQQgb.js → multi-select-BOad3za9.js} +110 -98
- package/dist/_chunks/{muscle-scheme-YoN3rYXV.js → muscle-scheme-C66WlCxG.js} +2 -2
- package/dist/_chunks/{note-timeline-DDqNU46n.js → note-timeline-KzL52MmB.js} +2 -2
- package/dist/_chunks/{notes-panel-uEGIL7mi.js → notes-panel-BXN46XkF.js} +6 -6
- package/dist/_chunks/notice-group-DkYzKyAZ.js +291 -0
- package/dist/_chunks/{notification-tray-BR3seWA7.js → notification-tray-Cp18MW5b.js} +2 -2
- package/dist/_chunks/{operator-hero-3_RG4Dkj.js → operator-hero-6aAIQaFZ.js} +83 -66
- package/dist/_chunks/{optical-prescription-CxfMsbxi.js → optical-prescription-ulXnDbBe.js} +525 -509
- package/dist/_chunks/panel-header-CbtlTe85.js +190 -0
- package/dist/_chunks/{panel-subview-yP4qIbKS.js → panel-subview-BPU7220K.js} +2 -2
- package/dist/_chunks/{patient-details-4P1vA9Ls.js → patient-details-C4Dyo7Ck.js} +4 -4
- package/dist/_chunks/{patient-field-row-CBXhlfGD.js → patient-field-row-DROvUkFu.js} +155 -176
- package/dist/_chunks/{patient-search-DOnDUVsl.js → patient-search-BADdx3M1.js} +2 -2
- package/dist/_chunks/{patient-summary-card-CuDLo8MP.js → patient-summary-card-CAimxbuI.js} +4 -4
- package/dist/_chunks/{payment-automation-upsell-C8MEu0t6.js → payment-automation-upsell-CiwF5UrC.js} +2 -2
- package/dist/_chunks/{payment-form-C3dGY7v4.js → payment-form-PBuh8PIa.js} +2 -2
- package/dist/_chunks/{pdf-viewer-DJ9VN7cu.js → pdf-viewer-gAsNUsA8.js} +2 -2
- package/dist/_chunks/{periodontal-risk-chart-CPy7CNFe.js → periodontal-risk-chart-B7S9OmPC.js} +97 -89
- package/dist/_chunks/practice-profile-hero-qfrsFQI_.js +236 -0
- package/dist/_chunks/{practice-results-8h2Utpt3.js → practice-results-BzThnpnm.js} +328 -298
- package/dist/_chunks/{pregnancy-dating-B8wo4l_r.js → pregnancy-dating-EFcFUJkQ.js} +2 -2
- package/dist/_chunks/{privacy-mask-Ch7743uk.js → privacy-mask-CCz9zuIh.js} +2 -2
- package/dist/_chunks/{product-hub-panel-C_ZosrBt.js → product-hub-panel-YuFbNPlT.js} +2 -2
- package/dist/_chunks/progress-notice-DiHWZ8Ms.js +279 -0
- package/dist/_chunks/{province-select-Bd20Z9Br.js → province-select-CDjs5obD.js} +2 -2
- package/dist/_chunks/{radiograph-panel.agent-8Ewv8-d7.js → radiograph-panel.agent-4UllIoTQ.js} +2 -2
- package/dist/_chunks/{rating-C1Vrmpsi.js → rating-CGYpg5dj.js} +43 -44
- package/dist/_chunks/{registration-form-BQyT_kBX.js → registration-form-1B0PTDal.js} +4 -4
- package/dist/_chunks/{reviews-panel-AvsVgtJu.js → reviews-panel-CosDZyow.js} +29 -7
- package/dist/_chunks/{rich-text-editor-M2gT_E7f.js → rich-text-editor-56dSsyZI.js} +1653 -1743
- package/dist/_chunks/{select-k4gBdS8N.js → select-4S-eYZUf.js} +244 -214
- package/dist/_chunks/{sign-document-CY7xTXbm.js → sign-document-BiOTs1P4.js} +2 -2
- package/dist/_chunks/{signature-request-BMCHy2ZO.js → signature-request-DAmNj_uq.js} +5 -5
- package/dist/_chunks/skeleton-tTWJpvAq.js +415 -0
- package/dist/_chunks/{slot-grid-dj5f6R2w.js → slot-grid-D_gix9mJ.js} +2 -2
- package/dist/_chunks/{tabs-2x3L13jn.js → tabs-BTj-2qMZ.js} +2 -2
- package/dist/_chunks/{task-card-BS7Uqevr.js → task-card-Ci2XbLmq.js} +2 -2
- package/dist/_chunks/{task-editor-CifOznfq.js → task-editor-BomyxGoZ.js} +8 -8
- package/dist/_chunks/{task-tray-eQU4KJcA.js → task-tray-Dnc72nl-.js} +3 -3
- package/dist/_chunks/{tasks-panel-8nLwBw6P.js → tasks-panel-ATz9JDy8.js} +6 -6
- package/dist/_chunks/{theme-toggle-Ctb77x6O.js → theme-toggle-DT_Jn4DC.js} +147 -138
- package/dist/_chunks/{timeline-DEIuHrWz.js → timeline-wUuTDFY_.js} +2 -2
- package/dist/_chunks/{tool-rail-C-03rH2I.js → tool-rail-C-M3eVdY.js} +2 -2
- package/dist/_chunks/{transcript-panel-XudW5l6l.js → transcript-panel-CoHHpcFg.js} +2 -2
- package/dist/_chunks/{treatment-receipt-Cpm8tqQN.js → treatment-receipt-pFqWFyD_.js} +2 -2
- package/dist/_chunks/{unit-converter-BPZ0Ldkb.js → unit-converter-CIoTmCmP.js} +2 -2
- package/dist/_chunks/{use-appointment-details-read-B-FEWbQM.js → use-appointment-details-read-CUGfE0hV.js} +13 -13
- package/dist/_chunks/use-dismissed-CTOWqA0e.js +177 -0
- package/dist/_chunks/voice-control-panel-B8Lrk0C4.js +1148 -0
- package/dist/_chunks/{warning-stack-HYWAytZV.js → warning-stack-BhHUmRiD.js} +2 -2
- package/dist/_chunks/{workflow-map-C2B2qIr1.js → workflow-map-ln4_OG8A.js} +2 -2
- package/dist/agent-catalog.json +221 -6
- package/dist/agent-i18n/en.json +32 -5
- package/dist/components/_shared/format-number.d.ts +20 -0
- package/dist/components/_shared/length-token.d.ts +12 -0
- package/dist/components/_shared/option.d.ts +1 -0
- package/dist/components/address-fields/index.js +1 -1
- package/dist/components/agenda-card/index.js +1 -1
- package/dist/components/agenda-tray/index.js +1 -1
- package/dist/components/ai-credits-notice/ai-credits-exhausted-notice.agent.d.ts +4 -0
- package/dist/components/ai-credits-notice/ai-credits-exhausted-notice.d.ts +96 -0
- package/dist/components/ai-credits-notice/ai-credits-notice.d.ts +30 -4
- package/dist/components/ai-credits-notice/index.d.ts +3 -0
- package/dist/components/ai-credits-notice/index.js +10 -4
- package/dist/components/ai-permission-notice/index.js +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/alert/alert.d.ts +26 -0
- package/dist/components/alert/index.js +1 -1
- package/dist/components/anamnesis-summary-card/index.js +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/appointment-peek/index.js +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/audio-recorder/index.js +1 -1
- package/dist/components/avatar/avatar.d.ts +2 -0
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/bishop-score/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/chat-message/index.js +1 -1
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/combobox/index.js +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/country-select/index.js +1 -1
- package/dist/components/dashboard-grid/dashboard-grid.d.ts +20 -1
- package/dist/components/dashboard-grid/index.js +1 -1
- package/dist/components/data-table/index.js +2 -2
- package/dist/components/dependent-selector/index.js +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/document-scanner/index.js +1 -1
- package/dist/components/editable-description/index.js +1 -1
- package/dist/components/entity-summary/index.js +1 -1
- package/dist/components/error-summary/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/gestational-age-calculator/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/heatmap/index.js +1 -1
- package/dist/components/index.d.ts +4 -2
- package/dist/components/map-view/index.d.ts +1 -1
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/map-view/map-view.d.ts +51 -0
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/muscle-scheme/index.js +1 -1
- package/dist/components/note-timeline/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notice-group/index.d.ts +3 -0
- package/dist/components/notice-group/index.js +6 -0
- package/dist/components/notice-group/notice-group.agent.d.ts +4 -0
- package/dist/components/notice-group/notice-group.d.ts +43 -0
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/optical-prescription/index.js +1 -1
- package/dist/components/optical-prescription/optical-prescription-data.d.ts +8 -8
- package/dist/components/panel-header/index.js +1 -1
- package/dist/components/panel-header/panel-header.d.ts +10 -0
- package/dist/components/panel-subview/index.js +1 -1
- package/dist/components/patient-details/index.js +1 -1
- package/dist/components/patient-search/index.js +1 -1
- package/dist/components/patient-summary-card/index.js +1 -1
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/periodontal-risk-chart/index.js +1 -1
- package/dist/components/practice-profile-hero/index.js +1 -1
- package/dist/components/practice-profile-hero/practice-profile-hero.d.ts +4 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/practice-results/practice-results.d.ts +10 -2
- package/dist/components/pregnancy-dating/index.js +1 -1
- package/dist/components/product-hub-tray/index.js +1 -1
- package/dist/components/progress-notice/index.d.ts +3 -0
- package/dist/components/progress-notice/index.js +6 -0
- package/dist/components/progress-notice/progress-notice.agent.d.ts +4 -0
- package/dist/components/progress-notice/progress-notice.d.ts +81 -0
- package/dist/components/province-select/index.js +1 -1
- package/dist/components/radiograph-panel/index.js +1 -1
- package/dist/components/rating/index.js +1 -1
- package/dist/components/reviews-panel/index.js +1 -1
- package/dist/components/rich-text-editor/index.js +2 -2
- package/dist/components/select/index.js +1 -1
- package/dist/components/select/select.d.ts +6 -0
- package/dist/components/sign-document/index.js +1 -1
- package/dist/components/skeleton/index.d.ts +1 -1
- package/dist/components/skeleton/index.js +1 -1
- package/dist/components/skeleton/skeleton.d.ts +41 -1
- package/dist/components/skeleton-scheme/index.js +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-editor/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/timeline/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/transcript-panel/index.js +1 -1
- package/dist/components/treatment-receipt/index.js +1 -1
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/voice-control-panel/index.d.ts +2 -1
- package/dist/components/voice-control-panel/index.js +1 -1
- package/dist/components/voice-control-panel/voice-control-panel.d.ts +43 -3
- package/dist/components/warning-stack/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +81 -76
- package/dist/hooks/use-dismissed.d.ts +58 -0
- package/dist/i18n/locales/ar.d.ts +49 -12
- package/dist/i18n/locales/ar.js +49 -12
- package/dist/i18n/locales/de.d.ts +49 -12
- package/dist/i18n/locales/de.js +49 -12
- package/dist/i18n/locales/el.d.ts +49 -12
- package/dist/i18n/locales/el.js +49 -12
- package/dist/i18n/locales/en.d.ts +49 -12
- package/dist/i18n/locales/en.js +49 -12
- package/dist/i18n/locales/es.d.ts +49 -12
- package/dist/i18n/locales/es.js +49 -12
- package/dist/i18n/locales/fr.d.ts +49 -12
- package/dist/i18n/locales/fr.js +49 -12
- package/dist/i18n/locales/hi.d.ts +49 -12
- package/dist/i18n/locales/hi.js +49 -12
- package/dist/i18n/locales/it.d.ts +49 -12
- package/dist/i18n/locales/it.js +49 -12
- package/dist/i18n/locales/ja.d.ts +49 -12
- package/dist/i18n/locales/ja.js +49 -12
- package/dist/i18n/locales/nl.d.ts +49 -12
- package/dist/i18n/locales/nl.js +49 -12
- package/dist/i18n/locales/pl.d.ts +49 -12
- package/dist/i18n/locales/pl.js +49 -12
- package/dist/i18n/locales/pt.d.ts +49 -12
- package/dist/i18n/locales/pt.js +49 -12
- package/dist/i18n/locales/ro.d.ts +49 -12
- package/dist/i18n/locales/ro.js +49 -12
- package/dist/i18n/locales/ru.d.ts +49 -12
- package/dist/i18n/locales/ru.js +49 -12
- package/dist/i18n/locales/sq.d.ts +49 -12
- package/dist/i18n/locales/sq.js +49 -12
- package/dist/i18n/locales/sv.d.ts +49 -12
- package/dist/i18n/locales/sv.js +49 -12
- package/dist/i18n/locales/tr.d.ts +49 -12
- package/dist/i18n/locales/tr.js +49 -12
- package/dist/i18n/locales/zh.d.ts +49 -12
- package/dist/i18n/locales/zh.js +49 -12
- package/dist/index.js +1193 -1177
- package/dist/locales/ar.json +49 -12
- package/dist/locales/de.json +49 -12
- package/dist/locales/el.json +49 -12
- package/dist/locales/en.json +49 -12
- package/dist/locales/es.json +49 -12
- package/dist/locales/fr.json +49 -12
- package/dist/locales/hi.json +49 -12
- package/dist/locales/it.json +49 -12
- package/dist/locales/ja.json +49 -12
- package/dist/locales/nl.json +49 -12
- package/dist/locales/pl.json +49 -12
- package/dist/locales/pt.json +49 -12
- package/dist/locales/ro.json +49 -12
- package/dist/locales/ru.json +49 -12
- package/dist/locales/sq.json +49 -12
- package/dist/locales/sv.json +49 -12
- package/dist/locales/tr.json +49 -12
- package/dist/locales/zh.json +49 -12
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/forgot-password-form/index.js +1 -1
- package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +6 -23
- package/dist/patterns/help-me-write-templates/index.js +8 -7
- package/dist/patterns/login-form/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/payment-automation-upsell/index.js +1 -1
- package/dist/patterns/registration-form/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +9 -1
- package/dist/_chunks/ai-credits-notice-pK9BOmEz.js +0 -90
- package/dist/_chunks/ai-credits-notice.agent-C9L7orrP.js +0 -17
- package/dist/_chunks/avatar-WZY3eGE7.js +0 -123
- package/dist/_chunks/dashboard-grid-B2MB7SRS.js +0 -1428
- package/dist/_chunks/help-me-write-templates-DFmqnsAa.js +0 -747
- package/dist/_chunks/panel-header-BJkaUwnl.js +0 -128
- package/dist/_chunks/practice-profile-hero-Dfc0F60y.js +0 -193
- package/dist/_chunks/skeleton-B1KTdJ4N.js +0 -116
- package/dist/_chunks/voice-control-panel-C0BfY23Y.js +0 -1009
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** International Latin eye abbreviations — `od` = right eye, `os` = left eye. */
|
|
2
1
|
export type Eye = 'od' | 'os';
|
|
3
2
|
/** Distance band — `far` (per lontano), `intermediate`, `near` (per vicino). */
|
|
4
3
|
export type DistanceBand = 'far' | 'intermediate' | 'near';
|
|
@@ -73,26 +72,27 @@ export declare const PRISM_MAX = 20;
|
|
|
73
72
|
/**
|
|
74
73
|
* Format a number with an explicit leading sign — `+1.50`, `-2.25`. Zero is
|
|
75
74
|
* rendered unsigned (`0.00`). Used for sphere and cylinder, where optometry
|
|
76
|
-
* convention always shows the sign.
|
|
75
|
+
* convention always shows the sign. `language` (the UI language, default
|
|
76
|
+
* English) picks the decimal separator: `+1,50` in Italian.
|
|
77
77
|
*/
|
|
78
|
-
export declare function formatSigned(value: number, fractionDigits?: number): string;
|
|
78
|
+
export declare function formatSigned(value: number, fractionDigits?: number, language?: string): string;
|
|
79
79
|
/** Sphere power, explicit sign, 2 dp (`+2.00` / `-1.25`). */
|
|
80
|
-
export declare function formatSphere(value: number): string;
|
|
80
|
+
export declare function formatSphere(value: number, language?: string): string;
|
|
81
81
|
/** Cylinder power, explicit sign, 2 dp. */
|
|
82
|
-
export declare function formatCylinder(value: number): string;
|
|
82
|
+
export declare function formatCylinder(value: number, language?: string): string;
|
|
83
83
|
/** Reading addition — always positive, 2 dp (`+2.00`). */
|
|
84
|
-
export declare function formatAdd(value: number): string;
|
|
84
|
+
export declare function formatAdd(value: number, language?: string): string;
|
|
85
85
|
/** Axis, integer degrees with the degree symbol (`90°`). */
|
|
86
86
|
export declare function formatAxis(value: number): string;
|
|
87
87
|
/** Prism, 2 dp (`2.00`). */
|
|
88
|
-
export declare function formatPrism(value: number): string;
|
|
88
|
+
export declare function formatPrism(value: number, language?: string): string;
|
|
89
89
|
/**
|
|
90
90
|
* Format the numeric value of one refraction column for the read-only grid.
|
|
91
91
|
* `base` is a string enum the component resolves through i18n separately, so it
|
|
92
92
|
* never reaches this numeric formatter; any unhandled field falls through the
|
|
93
93
|
* default branch and is coerced with `String(value)`.
|
|
94
94
|
*/
|
|
95
|
-
export declare function formatRefraction(field: keyof RefractionRow, value: number): string;
|
|
95
|
+
export declare function formatRefraction(field: keyof RefractionRow, value: number, language?: string): string;
|
|
96
96
|
/** Power along one principal meridian, for the optical power cross. */
|
|
97
97
|
export interface MeridianPower {
|
|
98
98
|
/** Meridian orientation, degrees, normalised to [0, 180). */
|
|
@@ -42,6 +42,16 @@ export interface PanelHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'tit
|
|
|
42
42
|
* plain-text form worth showing.
|
|
43
43
|
*/
|
|
44
44
|
titleTooltip?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Move the action cluster to its own line, under the title, when the
|
|
47
|
+
* full title and the cluster do not fit side by side. Default `false`:
|
|
48
|
+
* the title clips with an ellipsis instead, which suits a rail panel
|
|
49
|
+
* with a few icon buttons. Set it when the cluster is wide (a rating
|
|
50
|
+
* summary, a text button), where clipping would leave only a letter or
|
|
51
|
+
* two of the title. With it the title never clips: a title wider than
|
|
52
|
+
* the row by itself wraps onto more lines.
|
|
53
|
+
*/
|
|
54
|
+
wrapActions?: boolean;
|
|
45
55
|
}
|
|
46
56
|
export declare const PanelHeader: import("react").ForwardRefExoticComponent<PanelHeaderProps & import("react").RefAttributes<HTMLElement>>;
|
|
47
57
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-
|
|
1
|
+
import { B as s, C as l, N as n, P as t, a as C, T as i, b as o, g as T, u as p } from "../../_chunks/balance-badge-cell-BG3DMly4.js";
|
|
2
2
|
export {
|
|
3
3
|
s as BalanceBadgeCell,
|
|
4
4
|
l as CarePlanStatusCell,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-
|
|
1
|
+
import { P as r, f as s, p as m, a as e, s as n, b as o, c as i } from "../../_chunks/payment-form-PBuh8PIa.js";
|
|
2
2
|
export {
|
|
3
3
|
r as PaymentForm,
|
|
4
4
|
s as formatPaymentAmount,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as o, a as s, c as i, p as t, r as e } from "../../_chunks/periodontal-risk-chart-
|
|
1
|
+
import { P as o, a as s, c as i, p as t, r as e } from "../../_chunks/periodontal-risk-chart-B7S9OmPC.js";
|
|
2
2
|
export {
|
|
3
3
|
o as PERIODONTAL_RISK_FACTORS,
|
|
4
4
|
s as PeriodontalRiskChart,
|
|
@@ -33,7 +33,10 @@ export interface PracticeProfileHeroProps extends Omit<ComponentPropsWithoutRef<
|
|
|
33
33
|
* Optional cover image painted as a full-width strip above the body.
|
|
34
34
|
* The strip renders ONLY when this is set — a practice without a cover
|
|
35
35
|
* image gets no strip (and no empty gradient band). While the image
|
|
36
|
-
* loads, the brand gradient shows
|
|
36
|
+
* loads, the brand gradient shows in the strip. If it fails to load
|
|
37
|
+
* (404, 401, not an image), the strip goes, as if no cover had been
|
|
38
|
+
* passed, and `data-has-cover` reads `"false"`. A different URL tries
|
|
39
|
+
* again.
|
|
37
40
|
*/
|
|
38
41
|
coverImageUrl?: string;
|
|
39
42
|
/** Rating summary — when present, renders a Rating + numeric breakdown line. */
|
|
@@ -155,7 +155,12 @@ export interface PracticeResultsProps extends Omit<ComponentPropsWithoutRef<'div
|
|
|
155
155
|
results: PracticeResult[];
|
|
156
156
|
/** Total count for the "{{count}} risultati" header. May differ from results.length. */
|
|
157
157
|
totalCount?: number;
|
|
158
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* Visible search location. Drives the distance figures and the header
|
|
160
|
+
* label. On the map it is the starting view, and the view when no
|
|
161
|
+
* result has a location: as soon as results with a location are listed,
|
|
162
|
+
* the map fits them all into view instead (capped at zoom 15).
|
|
163
|
+
*/
|
|
159
164
|
searchCentre?: {
|
|
160
165
|
lat: number;
|
|
161
166
|
lng: number;
|
|
@@ -174,7 +179,10 @@ export interface PracticeResultsProps extends Omit<ComponentPropsWithoutRef<'div
|
|
|
174
179
|
* theming (`getGoogleMapsTheme()`), same as before.
|
|
175
180
|
*/
|
|
176
181
|
mapId?: string;
|
|
177
|
-
/**
|
|
182
|
+
/**
|
|
183
|
+
* Map zoom before the results are fitted, and with no results to fit.
|
|
184
|
+
* Default 13.
|
|
185
|
+
*/
|
|
178
186
|
defaultZoom?: number;
|
|
179
187
|
/** Fires when patient pans/zooms (split + map-first only). */
|
|
180
188
|
onBoundsChange?: (bounds: PracticeResultsBounds) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-
|
|
1
|
+
import { P as u, a as o, p as t, b as e } from "../../_chunks/product-hub-panel-YuFbNPlT.js";
|
|
2
2
|
import { i as s } from "../../_chunks/is-safe-url-DkETxeHz.js";
|
|
3
3
|
export {
|
|
4
4
|
u as ProductHubPanel,
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
export interface ProgressNoticeItem {
|
|
3
|
+
/** Stable key. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** What is being prepared, for example a practice's name. Translated. */
|
|
6
|
+
name: string;
|
|
7
|
+
/**
|
|
8
|
+
* One line on where it stands, for example "Money ready, statistics 6
|
|
9
|
+
* of 24 months". Translated.
|
|
10
|
+
*/
|
|
11
|
+
status?: string;
|
|
12
|
+
/** True once this item is ready. */
|
|
13
|
+
ready: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ProgressNoticeHandle {
|
|
16
|
+
/** What the notice shows now: counts and flags, no item names. */
|
|
17
|
+
getState: () => {
|
|
18
|
+
value: number;
|
|
19
|
+
max: number;
|
|
20
|
+
complete: boolean;
|
|
21
|
+
readyCount: number;
|
|
22
|
+
itemCount: number;
|
|
23
|
+
detailsOpen: boolean;
|
|
24
|
+
};
|
|
25
|
+
/** Open or close the details list. False when there is no list. */
|
|
26
|
+
setDetailsOpen: (open: boolean) => boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface ProgressNoticeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'role' | 'children'> {
|
|
29
|
+
/** Heading, for example "Preparing your figures". Translated. */
|
|
30
|
+
title: string;
|
|
31
|
+
/**
|
|
32
|
+
* Heading level of the title. Set it one below the heading that
|
|
33
|
+
* introduces the page or board. Unset, it is Alert's default (h5).
|
|
34
|
+
*/
|
|
35
|
+
headingLevel?: 2 | 3 | 4 | 5 | 6;
|
|
36
|
+
/** Progress so far, in the units of `max`. */
|
|
37
|
+
value: number;
|
|
38
|
+
/** The value at which the import is done. Defaults to 100. */
|
|
39
|
+
max?: number;
|
|
40
|
+
/**
|
|
41
|
+
* One line under the title, for example "2 of 4 practices ready".
|
|
42
|
+
* Translated. Also the progress bar's value text.
|
|
43
|
+
*/
|
|
44
|
+
summary?: string;
|
|
45
|
+
/** One row each in the expandable details list. Omit for no list. */
|
|
46
|
+
items?: ProgressNoticeItem[];
|
|
47
|
+
/** Controlled: whether the details list is open. */
|
|
48
|
+
detailsOpen?: boolean;
|
|
49
|
+
/** Uncontrolled: whether the details list starts open. Defaults to false. */
|
|
50
|
+
defaultDetailsOpen?: boolean;
|
|
51
|
+
/** Fires when the details list opens or closes. */
|
|
52
|
+
onDetailsOpenChange?: (open: boolean) => void;
|
|
53
|
+
/** Controlled visibility. Defaults to shown. */
|
|
54
|
+
open?: boolean;
|
|
55
|
+
/** Fires when the user dismisses the notice (`dismissible`). */
|
|
56
|
+
onOpenChange?: (open: boolean) => void;
|
|
57
|
+
/** Shows the close button. Defaults to true when `dismissKey` is set. */
|
|
58
|
+
dismissible?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Remember a dismissal in this browser, as on Alert: the notice stays
|
|
61
|
+
* hidden for this key, and a new key shows it again. Put the import in
|
|
62
|
+
* the key (for example its id). Never personal or patient data.
|
|
63
|
+
*/
|
|
64
|
+
dismissKey?: string;
|
|
65
|
+
/** How long a `dismissKey` dismissal lasts, in ms (default 30 days). */
|
|
66
|
+
dismissLifetimeMs?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Fires once each time the import becomes complete: every item is
|
|
69
|
+
* ready, or `value` reaches `max`. Also on mount when it already is.
|
|
70
|
+
*/
|
|
71
|
+
onComplete?: () => void;
|
|
72
|
+
/**
|
|
73
|
+
* Announced when the import completes. Translated. Defaults to the
|
|
74
|
+
* kit's "Everything is ready."
|
|
75
|
+
*/
|
|
76
|
+
completeAnnouncement?: string;
|
|
77
|
+
/** Opaque instance id, emitted as `data-component-id` for agents. */
|
|
78
|
+
id?: string;
|
|
79
|
+
}
|
|
80
|
+
export declare const ProgressNotice: import("react").ForwardRefExoticComponent<ProgressNoticeProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
81
|
+
//# sourceMappingURL=progress-notice.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as i, r as o, w as a } from "../../_chunks/rich-text-editor-
|
|
2
|
-
import { k as s } from "../../_chunks/kit-extensions-
|
|
1
|
+
import { R as i, r as o, w as a } from "../../_chunks/rich-text-editor-56dSsyZI.js";
|
|
2
|
+
import { k as s } from "../../_chunks/kit-extensions-CYvLL4ee.js";
|
|
3
3
|
export {
|
|
4
4
|
i as RichTextEditor,
|
|
5
5
|
s as kitEditorExtensions,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as a, a as l, b as S, c, d as s, e as o, f as r, g as p, h as g, i, j as m } from "../../_chunks/select-
|
|
1
|
+
import { S as a, a as l, b as S, c, d as s, e as o, f as r, g as p, h as g, i, j as m } from "../../_chunks/select-4S-eYZUf.js";
|
|
2
2
|
export {
|
|
3
3
|
a as Select,
|
|
4
4
|
l as SelectContent,
|
|
@@ -73,6 +73,9 @@ type SelectItemProps = ComponentPropsWithoutRef<typeof RadixSelect.Item> & Varia
|
|
|
73
73
|
/** Let the label wrap onto a second line; it is clipped after two. In
|
|
74
74
|
* the trigger it stays on one line. */
|
|
75
75
|
wrapLabel?: boolean;
|
|
76
|
+
/** Writing direction of the label (`OptionShape.dir`). Set on the
|
|
77
|
+
* element that clips, so a long label keeps its start in view. */
|
|
78
|
+
labelDir?: OptionShape['dir'];
|
|
76
79
|
};
|
|
77
80
|
declare const SelectItem: import("react").ForwardRefExoticComponent<Omit<RadixSelect.SelectItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
|
|
78
81
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
@@ -111,6 +114,9 @@ declare const SelectItem: import("react").ForwardRefExoticComponent<Omit<RadixSe
|
|
|
111
114
|
/** Let the label wrap onto a second line; it is clipped after two. In
|
|
112
115
|
* the trigger it stays on one line. */
|
|
113
116
|
wrapLabel?: boolean;
|
|
117
|
+
/** Writing direction of the label (`OptionShape.dir`). Set on the
|
|
118
|
+
* element that clips, so a long label keeps its start in view. */
|
|
119
|
+
labelDir?: OptionShape["dir"];
|
|
114
120
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
115
121
|
declare const SelectItemText: import("react").ForwardRefExoticComponent<Omit<RadixSelect.SelectItemTextProps & import("react").RefAttributes<HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
116
122
|
declare const SelectGroup: import("react").ForwardRefExoticComponent<Omit<RadixSelect.SelectGroupProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { Skeleton, CONTENT_ENTER_CLASS } from './skeleton';
|
|
2
|
-
export type { SkeletonProps } from './skeleton';
|
|
2
|
+
export type { SkeletonProps, SkeletonPreset, SkeletonPresetProps, SkeletonBarChartProps, SkeletonTableProps, SkeletonHeatmapProps, SkeletonListProps, } from './skeleton';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -36,6 +36,46 @@ export interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ari
|
|
|
36
36
|
*/
|
|
37
37
|
stagger?: number;
|
|
38
38
|
}
|
|
39
|
-
export
|
|
39
|
+
export type SkeletonPreset = 'figure' | 'line-chart' | 'bar-chart' | 'table' | 'heatmap' | 'list';
|
|
40
|
+
export interface SkeletonPresetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'aria-hidden' | 'style' | 'children' | 'tabIndex'> {
|
|
41
|
+
/**
|
|
42
|
+
* Pulse the shapes. Defaults to true. There is never a pulse under
|
|
43
|
+
* reduced motion, in forced colours, or in the accessible themes,
|
|
44
|
+
* whatever this says.
|
|
45
|
+
*/
|
|
46
|
+
animate?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface SkeletonBarChartProps extends SkeletonPresetProps {
|
|
49
|
+
/** Number of bars, 2 to 12. Defaults to 6. */
|
|
50
|
+
bars?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface SkeletonTableProps extends SkeletonPresetProps {
|
|
53
|
+
/** Body rows under the header, 1 to 20. Defaults to 4. */
|
|
54
|
+
rows?: number;
|
|
55
|
+
/** Columns, 1 to 8. Defaults to 3. */
|
|
56
|
+
columns?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface SkeletonHeatmapProps extends SkeletonPresetProps {
|
|
59
|
+
/** Rows, 1 to 12. Defaults to 5. */
|
|
60
|
+
rows?: number;
|
|
61
|
+
/** Columns, 1 to 12. Defaults to 7, one week. */
|
|
62
|
+
columns?: number;
|
|
63
|
+
}
|
|
64
|
+
export interface SkeletonListProps extends SkeletonPresetProps {
|
|
65
|
+
/** Items, 1 to 10. Defaults to 3. */
|
|
66
|
+
items?: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Placeholder shapes. `<Skeleton>` is one atom (a line, a circle, a
|
|
70
|
+
* block); the members are presets shaped like a whole widget.
|
|
71
|
+
*/
|
|
72
|
+
export declare const Skeleton: import("react").ForwardRefExoticComponent<SkeletonProps & import("react").RefAttributes<HTMLDivElement>> & {
|
|
73
|
+
Figure: import("react").ForwardRefExoticComponent<SkeletonPresetProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
74
|
+
LineChart: import("react").ForwardRefExoticComponent<SkeletonPresetProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
75
|
+
BarChart: import("react").ForwardRefExoticComponent<SkeletonBarChartProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
76
|
+
Table: import("react").ForwardRefExoticComponent<SkeletonTableProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
77
|
+
Heatmap: import("react").ForwardRefExoticComponent<SkeletonHeatmapProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
78
|
+
List: import("react").ForwardRefExoticComponent<SkeletonListProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
79
|
+
};
|
|
40
80
|
export {};
|
|
41
81
|
//# sourceMappingURL=skeleton.d.ts.map
|
|
@@ -5,7 +5,7 @@ import { c as T1 } from "../../_chunks/index-D2ZczOXr.js";
|
|
|
5
5
|
import { useTranslation as N1 } from "react-i18next";
|
|
6
6
|
import { u as E1 } from "../../_chunks/registry-DvAUVLHh.js";
|
|
7
7
|
import { m as R1, A as _1 } from "../../_chunks/annotation-marker-D-M7y4R1.js";
|
|
8
|
-
import { T as A } from "../../_chunks/tabs-
|
|
8
|
+
import { T as A } from "../../_chunks/tabs-BTj-2qMZ.js";
|
|
9
9
|
import { a as V1, Z as C1 } from "../../_chunks/zoom-out-Dnif4kJx.js";
|
|
10
10
|
import { M as F1 } from "../../_chunks/maximize-2-BYd2Kti7.js";
|
|
11
11
|
const I = {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { VoiceControlPanel } from './voice-control-panel';
|
|
2
|
-
export type { VoiceControlPanelProps, VoiceControlPanelHandle, VoiceControlStatus, VoiceControlTone, VoiceControlError, VoiceControlMessage, VoiceControlTranscript, VoiceControlLanguage, VoiceControlCandidate, VoiceControlCommand, VoiceControlToggle, VoiceControlLayout, VoiceControlPosition, } from './voice-control-panel';
|
|
2
|
+
export type { VoiceControlPanelProps, VoiceControlPanelHandle, VoiceControlStatus, VoiceControlTone, VoiceControlError, VoiceControlMessage, VoiceControlTranscript, VoiceControlLanguage, VoiceControlCandidate, VoiceControlCommand, VoiceControlToggle, VoiceControlLayout, VoiceControlPosition, VoiceControlAiCredits, } from './voice-control-panel';
|
|
3
3
|
export type { AiConsentGate } from '../ai-permission-notice';
|
|
4
|
+
export type { AiCreditsInfo, AiCreditsExpiring, AiCreditsNoticeProps, } from '../ai-credits-notice';
|
|
4
5
|
export { voiceControlPanelAgent } from './voice-control-panel.agent';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type AiCreditsInfo, type AiCreditsNoticeProps } from '../ai-credits-notice';
|
|
2
3
|
import { type AiConsentBannerHeadingLevel, type AiConsentGate } from '../ai-permission-notice';
|
|
3
4
|
import { type KbdNamedKey } from '../kbd';
|
|
4
5
|
/** Where the host's voice session is. */
|
|
@@ -45,14 +46,29 @@ export type VoiceControlToggle = 'start' | 'stop';
|
|
|
45
46
|
export type VoiceControlLayout = 'inline' | 'floating';
|
|
46
47
|
/** The viewport corner of the floating pill. Logical: mirrors in RTL. */
|
|
47
48
|
export type VoiceControlPosition = 'bottom-end' | 'bottom-start';
|
|
49
|
+
/**
|
|
50
|
+
* The practice's AI credits, as the platform keeps them (a yearly allowance
|
|
51
|
+
* that expires, then welcome and bought credits that do not), plus whether
|
|
52
|
+
* they have run out. See `AiCreditsInfo` for the allowance, the dates and
|
|
53
|
+
* the next steps the host can offer.
|
|
54
|
+
*/
|
|
55
|
+
export interface VoiceControlAiCredits extends AiCreditsInfo {
|
|
56
|
+
/**
|
|
57
|
+
* Out of AI credits. Every way of starting shows the out-of-credits
|
|
58
|
+
* notice in the panel instead of calling `onToggle`; stopping is never
|
|
59
|
+
* gated. Set while a session runs or is paused, the panel stops it
|
|
60
|
+
* (`onToggle('stop')`, once) and shows the notice on its own.
|
|
61
|
+
*/
|
|
62
|
+
exhausted?: boolean;
|
|
63
|
+
}
|
|
48
64
|
/** Curated imperative handle for agent / external automation. */
|
|
49
65
|
export interface VoiceControlPanelHandle {
|
|
50
66
|
getStatus: () => VoiceControlStatus;
|
|
51
67
|
/** Ask the host to start (`onToggle('start')`) unless already starting
|
|
52
68
|
* or listening, or disabled. Gated by `aiConsent` like a press. */
|
|
53
69
|
start: () => void;
|
|
54
|
-
/** Ask the host to stop
|
|
55
|
-
* when
|
|
70
|
+
/** Ask the host to stop, cancel a start or end a paused session
|
|
71
|
+
* (`onToggle('stop')`); a no-op when idle or stopped. Never gated. */
|
|
56
72
|
stop: () => void;
|
|
57
73
|
getCandidateIds: () => string[];
|
|
58
74
|
pickCandidate: (id: string) => void;
|
|
@@ -66,6 +82,12 @@ export interface VoiceControlPanelHandle {
|
|
|
66
82
|
openPanel: () => void;
|
|
67
83
|
/** Floating layout: close the panel; listening carries on. A no-op inline. */
|
|
68
84
|
closePanel: () => void;
|
|
85
|
+
/** Whether `aiCredits.exhausted` is gating every start. */
|
|
86
|
+
isCreditsExhausted: () => boolean;
|
|
87
|
+
/** Whether the out-of-credits notice is showing. */
|
|
88
|
+
isCreditsNoticeOpen: () => boolean;
|
|
89
|
+
/** Close the out-of-credits notice, back to the controls. */
|
|
90
|
+
closeCreditsNotice: () => void;
|
|
69
91
|
}
|
|
70
92
|
export interface VoiceControlPanelProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'children' | 'onToggle'> {
|
|
71
93
|
/** Where the host's voice session is. Drives the button, dot and status. */
|
|
@@ -154,8 +176,26 @@ export interface VoiceControlPanelProps extends Omit<HTMLAttributes<HTMLDivEleme
|
|
|
154
176
|
* calling `onToggle`; stopping is never gated. Omit for ungated behaviour.
|
|
155
177
|
*/
|
|
156
178
|
aiConsent?: AiConsentGate;
|
|
157
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* Heading level for the `AiConsentBanner` title and the out-of-credits
|
|
181
|
+
* notice title, which show in the same place. Default 5.
|
|
182
|
+
*/
|
|
158
183
|
aiConsentHeadingLevel?: AiConsentBannerHeadingLevel;
|
|
184
|
+
/**
|
|
185
|
+
* The practice's AI credits. With `exhausted`, every way of starting (the
|
|
186
|
+
* Start button, the pill's mic, the shortcut, the agent's
|
|
187
|
+
* `start_listening`) shows the out-of-credits notice instead of calling
|
|
188
|
+
* `onToggle`, after the consent check; stopping is never gated. Running
|
|
189
|
+
* low (80% used, or `runningLow`) and `expiring` show as quiet lines in
|
|
190
|
+
* the panel and never block. Omit for ungated behaviour.
|
|
191
|
+
*/
|
|
192
|
+
aiCredits?: VoiceControlAiCredits;
|
|
193
|
+
/**
|
|
194
|
+
* Floating only: the `AiCreditsNotice` hover card on the pill's mic, as on
|
|
195
|
+
* the RichTextEditor's AI triggers. It never takes the click: the mic
|
|
196
|
+
* still starts, stops or opens a gate exactly as without it.
|
|
197
|
+
*/
|
|
198
|
+
aiCreditsNotice?: AiCreditsNoticeProps;
|
|
159
199
|
}
|
|
160
200
|
type ShortcutModifier = Extract<KbdNamedKey, 'Alt' | 'Control' | 'Shift' | 'Meta'>;
|
|
161
201
|
interface ParsedShortcut {
|