@alfadocs/ui-kit 1.30.0 → 1.32.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-CZ0pEdEI.js → address-fields-jFfjxOQR.js} +3 -3
- package/dist/_chunks/{agenda-card-pdN49pMu.js → agenda-card-DVz3jwTf.js} +2 -2
- package/dist/_chunks/{agenda-tray-BweO8pDo.js → agenda-tray-1oDWCJdB.js} +2 -2
- package/dist/_chunks/{ai-prompt-input-CrHr-5H8.js → ai-prompt-input-Dt7tpCBh.js} +2 -2
- package/dist/_chunks/{alia-sidebar-BWcWZivN.js → alia-sidebar-D18kp3p9.js} +3 -3
- package/dist/_chunks/{anamnesis-summary-rows-DMO3MWSt.js → anamnesis-summary-rows-BYgyp_i2.js} +6 -6
- package/dist/_chunks/{appointment-card-Dzr3GeVz.js → appointment-card-D-oj_ugh.js} +9 -7
- package/dist/_chunks/{appointment-timeline-DhHwmHo1.js → appointment-timeline-CymGHyIP.js} +2 -2
- package/dist/_chunks/{appointment-tray-4FUu_5NX.js → appointment-tray-DCk8gHod.js} +2 -2
- package/dist/_chunks/{audio-recorder-DXG6LTtO.js → audio-recorder-11wClczr.js} +2 -2
- package/dist/_chunks/{avatar-BNQNhoyL.js → avatar-CkDeQOSI.js} +37 -37
- package/dist/_chunks/{balance-badge-cell-CX6b0ML4.js → balance-badge-cell-DhBtFRoW.js} +4 -4
- package/dist/_chunks/{bishop-score-CJUVBfAu.js → bishop-score-CAl7C5hm.js} +2 -2
- package/dist/_chunks/{bmi-calculator-CcH6upht.js → bmi-calculator-Dwkih9a4.js} +3 -3
- package/dist/_chunks/{booking-AabCk7CI.js → booking-l6UGNiE1.js} +3 -3
- package/dist/_chunks/{calculator-dialog-12d3Sxaz.js → calculator-dialog-C0ixc3SU.js} +2 -2
- package/dist/_chunks/{calendar-CI9MINcR.js → calendar-Dgvl5L4T.js} +494 -438
- package/dist/_chunks/{calendar-event-card-66CEEWU6.js → calendar-event-card-DSh-69HT.js} +130 -122
- package/dist/_chunks/calendar-workspace-BX-zDyVR.js +9392 -0
- package/dist/_chunks/{care-plan-card-CQVboTn1.js → care-plan-card-CZW476Kg.js} +2 -2
- package/dist/_chunks/{care-plan-entry-card-jxHkzez5.js → care-plan-entry-card-BMUYagEw.js} +2 -2
- package/dist/_chunks/{chat-message-DBQu10rs.js → chat-message-C-8UU2av.js} +2 -2
- package/dist/_chunks/{clinical-note-card-BBgFd2nB.js → clinical-note-card-D2WTV2CO.js} +185 -188
- package/dist/_chunks/{color-picker-CU303VjY.js → color-picker-Bl5f0iK1.js} +28 -25
- package/dist/_chunks/{combobox-D7_NLE2Z.js → combobox-DnSdYssy.js} +216 -215
- package/dist/_chunks/{country-select-DzbPFktV.js → country-select-CfDNFG5c.js} +2 -2
- package/dist/_chunks/{data-table-DB5BiVQ0.js → data-table-DC96JJIq.js} +2 -2
- package/dist/_chunks/{dependent-selector-cJlJFAKD.js → dependent-selector-yTKKsuc9.js} +2 -2
- package/dist/_chunks/{dialog-UbKJCi1X.js → dialog-BJiLqhx6.js} +54 -46
- package/dist/_chunks/{document-preview-CDb-n_W7.js → document-preview-BrhMHNh8.js} +2 -2
- package/dist/_chunks/{due-date-calculator-BtgWeFqp.js → due-date-calculator-CxgK8vzt.js} +3 -3
- package/dist/_chunks/{entity-summary-B_vO5Ur4.js → entity-summary-5o768XLU.js} +2 -2
- package/dist/_chunks/{face-scheme-DA2vjqaM.js → face-scheme-l-CQyLs-.js} +2 -2
- package/dist/_chunks/{file-manager-Cd8V9IcZ.js → file-manager-CI2Qn8qW.js} +3 -3
- package/dist/_chunks/{gestational-age-calculator-KdMg9z9H.js → gestational-age-calculator-CZHVrERT.js} +4 -4
- package/dist/_chunks/{link-cell-renderer-tWEOv3Sc.js → link-cell-renderer-BEpMNtAa.js} +3 -3
- package/dist/_chunks/{marketplace-app-shell-C4AjQmvz.js → marketplace-app-shell-CK_ND8Tr.js} +2 -2
- package/dist/_chunks/{message-card-D8GB4FdF.js → message-card-BUMv16un.js} +2 -2
- package/dist/_chunks/{message-tray-CGIRQjx5.js → message-tray-0zsv27xX.js} +2 -2
- package/dist/_chunks/{muscle-scheme-BSJsI4-I.js → muscle-scheme-UVz_x4iE.js} +2 -2
- package/dist/_chunks/notes-panel-C4G-mhZ9.js +380 -0
- package/dist/_chunks/{operator-hero-BnFv-Uef.js → operator-hero-D7-iiFQ9.js} +2 -2
- package/dist/_chunks/{optical-prescription-BvwuqTpl.js → optical-prescription-DUJOhKz_.js} +2 -2
- package/dist/_chunks/{patient-details-DYAmq76G.js → patient-details-BGiawUHd.js} +5 -5
- package/dist/_chunks/{patient-summary-card-C9WBwct-.js → patient-summary-card--CT_gbaQ.js} +2 -2
- package/dist/_chunks/{periodontal-diagnosis-HrFsVi-C.js → periodontal-diagnosis-lEwA8wqX.js} +3 -3
- package/dist/_chunks/{practice-profile-hero-YQ7h2K4o.js → practice-profile-hero-DQyDvpJL.js} +2 -2
- package/dist/_chunks/{practice-results-CxIsU2YO.js → practice-results-DjEzPgAK.js} +2 -2
- package/dist/_chunks/{pregnancy-dating-m-c05DOI.js → pregnancy-dating-n5j5dAKy.js} +4 -4
- package/dist/_chunks/{pregnancy-weight-gain-CJwbs9W-.js → pregnancy-weight-gain-D5A8vPjj.js} +3 -3
- package/dist/_chunks/{province-select-BBc7s7vR.js → province-select-BaUnkg4S.js} +2 -2
- package/dist/_chunks/qr-code-DOJs4suh.js +750 -0
- package/dist/_chunks/radio-DNRe6H_8.js +193 -0
- package/dist/_chunks/radio-group-DyVBgnA3.js +297 -0
- package/dist/_chunks/{radiograph-panel.agent-ByM9M3qm.js → radiograph-panel.agent-o4jwEJPC.js} +2 -2
- package/dist/_chunks/{rich-text-editor-lSCiE0Zz.js → rich-text-editor-CQ7yZdG3.js} +3 -3
- package/dist/_chunks/select-CLSUnKjF.js +520 -0
- package/dist/_chunks/signature-request-vihDT8On.js +2232 -0
- package/dist/_chunks/{tabs-DqKtTIjZ.js → tabs-BnRaLT0y.js} +2 -2
- package/dist/_chunks/{tasks-panel-DPCNaRko.js → tasks-panel-DQuaVvl5.js} +2 -2
- package/dist/_chunks/{timeline-r-8IUoBS.js → timeline-Bs9Erxlo.js} +38 -36
- package/dist/_chunks/{tooth-scheme-C9jssOmy.js → tooth-scheme-Qe7LO5Di.js} +2 -2
- package/dist/_chunks/{unit-converter-C6jMjqL9.js → unit-converter-BTgU50gk.js} +2 -2
- package/dist/_chunks/{widget-picker-em4xGgv0.js → widget-picker-DvUkBemi.js} +2 -2
- package/dist/agent-catalog.json +366 -29
- package/dist/agent-i18n/en.json +27 -15
- package/dist/components/_shared/get-error-message.d.ts +3 -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-prompt-input/index.js +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/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/bmi-calculator/index.js +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/calculator-dialog/index.js +1 -1
- package/dist/components/calendar/calendar.d.ts +26 -2
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/calendar-event-card/calendar-event-card.d.ts +9 -0
- package/dist/components/calendar-event-card/index.js +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/chat-message/index.js +1 -1
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +16 -1
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/color-picker/index.js +1 -1
- package/dist/components/combobox/combobox.d.ts +5 -0
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/country-select/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/dialog/dialog.d.ts +9 -0
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/document-preview/index.js +1 -1
- package/dist/components/due-date-calculator/index.js +1 -1
- package/dist/components/entity-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/gestational-age-calculator/index.js +1 -1
- package/dist/components/message-card/index.js +1 -1
- package/dist/components/message-tray/index.js +1 -1
- package/dist/components/muscle-scheme/index.js +1 -1
- package/dist/components/notes-panel/index.d.ts +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +24 -5
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/optical-prescription/index.js +1 -1
- package/dist/components/patient-details/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/periodontal-diagnosis/index.js +1 -1
- package/dist/components/practice-profile-hero/index.js +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/province-select/index.js +1 -1
- package/dist/components/qr-code/index.js +1 -1
- package/dist/components/qr-code/qr-encode.d.ts +14 -16
- package/dist/components/radio/index.js +1 -1
- package/dist/components/radio-group/index.js +2 -2
- package/dist/components/radio-group/radio-group-context.d.ts +4 -1
- package/dist/components/radio-group/radio-group.d.ts +13 -1
- package/dist/components/radio-group/radio.d.ts +24 -1
- package/dist/components/radiograph-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 +33 -0
- package/dist/components/skeleton-scheme/index.js +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/timeline/index.js +1 -1
- package/dist/components/timeline/timeline.d.ts +2 -0
- package/dist/components/tooth-scheme/index.js +1 -1
- package/dist/components/unit-converter/index.js +1 -1
- package/dist/components/widget-picker/index.js +1 -1
- package/dist/host-compat.css +7 -1
- package/dist/i18n/locales/ar.d.ts +118 -0
- package/dist/i18n/locales/ar.js +123 -5
- package/dist/i18n/locales/de.d.ts +128 -10
- package/dist/i18n/locales/de.js +135 -15
- package/dist/i18n/locales/el.d.ts +118 -0
- package/dist/i18n/locales/el.js +123 -5
- package/dist/i18n/locales/en.d.ts +118 -0
- package/dist/i18n/locales/en.js +123 -5
- package/dist/i18n/locales/es.d.ts +118 -0
- package/dist/i18n/locales/es.js +123 -5
- package/dist/i18n/locales/fr.d.ts +118 -0
- package/dist/i18n/locales/fr.js +122 -4
- package/dist/i18n/locales/hi.d.ts +118 -0
- package/dist/i18n/locales/hi.js +123 -5
- package/dist/i18n/locales/it.d.ts +128 -10
- package/dist/i18n/locales/it.js +133 -15
- package/dist/i18n/locales/ja.d.ts +118 -0
- package/dist/i18n/locales/ja.js +123 -5
- package/dist/i18n/locales/nl.d.ts +118 -0
- package/dist/i18n/locales/nl.js +123 -5
- package/dist/i18n/locales/pl.d.ts +118 -0
- package/dist/i18n/locales/pl.js +123 -5
- package/dist/i18n/locales/pt.d.ts +118 -0
- package/dist/i18n/locales/pt.js +123 -5
- package/dist/i18n/locales/ro.d.ts +118 -0
- package/dist/i18n/locales/ro.js +122 -4
- package/dist/i18n/locales/ru.d.ts +118 -0
- package/dist/i18n/locales/ru.js +123 -5
- package/dist/i18n/locales/sq.d.ts +118 -0
- package/dist/i18n/locales/sq.js +123 -5
- package/dist/i18n/locales/sv.d.ts +118 -0
- package/dist/i18n/locales/sv.js +123 -5
- package/dist/i18n/locales/tr.d.ts +118 -0
- package/dist/i18n/locales/tr.js +123 -5
- package/dist/i18n/locales/zh.d.ts +118 -0
- package/dist/i18n/locales/zh.js +123 -5
- package/dist/index.js +131 -130
- package/dist/locales/ar.json +123 -5
- package/dist/locales/de.json +133 -15
- package/dist/locales/el.json +123 -5
- package/dist/locales/en.json +123 -5
- package/dist/locales/es.json +123 -5
- package/dist/locales/fr.json +122 -4
- package/dist/locales/hi.json +123 -5
- package/dist/locales/it.json +133 -15
- package/dist/locales/ja.json +123 -5
- package/dist/locales/nl.json +123 -5
- package/dist/locales/pl.json +123 -5
- package/dist/locales/pt.json +123 -5
- package/dist/locales/ro.json +122 -4
- package/dist/locales/ru.json +123 -5
- package/dist/locales/sq.json +123 -5
- package/dist/locales/sv.json +123 -5
- package/dist/locales/tr.json +123 -5
- package/dist/locales/zh.json +123 -5
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/calendar-appointment-details.d.ts +145 -0
- package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts +32 -0
- package/dist/patterns/calendar/calendar-editor-hydration.d.ts +59 -0
- package/dist/patterns/calendar/calendar-notes-tool.d.ts +14 -0
- package/dist/patterns/calendar/calendar-patient-picker.d.ts +11 -0
- package/dist/patterns/calendar/calendar-series-scope-chooser.d.ts +18 -0
- package/dist/patterns/calendar/calendar-workspace.d.ts +26 -1
- package/dist/patterns/calendar/calendar-workspace.model.d.ts +8 -5
- package/dist/patterns/calendar/calendar.data.d.ts +66 -1
- package/dist/patterns/calendar/calendar.host.d.ts +2 -0
- package/dist/patterns/calendar/calendar.journey.d.ts +42 -7
- package/dist/patterns/calendar/calendar.model.d.ts +54 -5
- package/dist/patterns/calendar/calendar.sheets.d.ts +68 -15
- package/dist/patterns/calendar/calendar.surface.d.ts +12 -2
- package/dist/patterns/calendar/calendar.types.d.ts +29 -1
- package/dist/patterns/calendar/index.d.ts +9 -6
- package/dist/patterns/calendar/index.js +15 -14
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/signature-request/channel-meta.d.ts +27 -0
- package/dist/patterns/signature-request/index.d.ts +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/patterns/signature-request/load-status.d.ts +13 -0
- package/dist/patterns/signature-request/person-grid.d.ts +32 -0
- package/dist/patterns/signature-request/required-documents.d.ts +127 -0
- package/dist/patterns/signature-request/signature-history.d.ts +57 -0
- package/dist/patterns/signature-request/signature-outcome.d.ts +29 -0
- package/dist/patterns/signature-request/signature-request.d.ts +390 -26
- package/dist/tokens.css +10 -2
- package/package.json +3 -1
- package/dist/_chunks/calendar-workspace-a84AHQwj.js +0 -7506
- package/dist/_chunks/notes-panel-CTNpsByN.js +0 -353
- package/dist/_chunks/qr-code-CPkEs5mG.js +0 -574
- package/dist/_chunks/radio-TWf9Q-mp.js +0 -108
- package/dist/_chunks/radio-group-rXDJADzW.js +0 -175
- package/dist/_chunks/select-Bi8zril7.js +0 -471
- package/dist/_chunks/signature-request-C-IsbkPf.js +0 -417
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type CalendarPreferenceAdapter } from './calendar.preferences';
|
|
2
2
|
import { type CalendarRow, type RailFocus, type EditorPrefill, type HistoryInput, type AvailabilityContext, type CalendarFreeSlot } from './calendar.model';
|
|
3
3
|
import { type WorkspaceDisplaySettings, type CreateModeRequest, type PlacementRequest, type SaveNotice, type CalendarWorkspaceToolId } from './calendar-workspace.model';
|
|
4
|
-
|
|
4
|
+
import type { CalendarOccurrenceMove } from './calendar.journey';
|
|
5
|
+
export declare function CalendarSurface({ rows, setRows, onFocus, locale, onComposeNew, onOpenWaitingList, onAddWaitingEntry, onOpenOnlineBookings, onlineBookingsCount, waitingBadgeCount, onVisibleRangeChange, selectedEventId, gotoRequest, onBookSlot, onBookSlotFromFinder, display, setDisplay, onHistory, readOnly, reviewOnlyEventIds, detailsOnEveryClick, placement, onPlacementEnd, createMode, onCreateModeEnd, focusScroll, saveNotice, privacy, onPrivacyChange, availability, availabilityContext, availableTools, schedulerLicenseKey, id, preferences, onMoveOccurrence, }: {
|
|
5
6
|
rows: CalendarRow[];
|
|
6
7
|
setRows: React.Dispatch<React.SetStateAction<CalendarRow[]>>;
|
|
7
8
|
onFocus: (focus: RailFocus) => void;
|
|
@@ -11,11 +12,16 @@ export declare function CalendarSurface({ rows, setRows, onFocus, locale, onComp
|
|
|
11
12
|
privacy: boolean;
|
|
12
13
|
onPrivacyChange: (next: boolean) => void;
|
|
13
14
|
/** The finder's live projection: free ranges glow, booked cards dim,
|
|
14
|
-
* and a
|
|
15
|
+
* and a band opens its original choices. Null when no search is shown. */
|
|
15
16
|
availability: CalendarFreeSlot[] | null;
|
|
16
17
|
availabilityContext: AvailabilityContext | null;
|
|
17
18
|
/** No edit permission: no drag, no slot-click create. */
|
|
18
19
|
readOnly?: boolean;
|
|
20
|
+
/** Host queue rows whose canonical editor data is not available yet. */
|
|
21
|
+
reviewOnlyEventIds?: ReadonlySet<string>;
|
|
22
|
+
/** The host reads its own details: every row click focuses, including
|
|
23
|
+
* patient-less and pending rows. Off, a pending chip stays inert. */
|
|
24
|
+
detailsOnEveryClick?: boolean;
|
|
19
25
|
/** A Move… / Copy… armed from the details panel — the grid shows the
|
|
20
26
|
* mode banner and the next empty-slot click places the appointment. */
|
|
21
27
|
placement?: PlacementRequest | null;
|
|
@@ -57,6 +63,7 @@ export declare function CalendarSurface({ rows, setRows, onFocus, locale, onComp
|
|
|
57
63
|
} | null;
|
|
58
64
|
/** Seed the editor prefilled (an empty-slot click, a booking to process). */
|
|
59
65
|
onBookSlot: (prefill: EditorPrefill) => void;
|
|
66
|
+
onBookSlotFromFinder: (prefill: EditorPrefill) => void;
|
|
60
67
|
/** The cog's settings — owned by the journey (the editor reads them). */
|
|
61
68
|
display: WorkspaceDisplaySettings;
|
|
62
69
|
setDisplay: React.Dispatch<React.SetStateAction<WorkspaceDisplaySettings>>;
|
|
@@ -81,5 +88,8 @@ export declare function CalendarSurface({ rows, setRows, onFocus, locale, onComp
|
|
|
81
88
|
/** Where the toolbar's remembered choices live — the host's per-user
|
|
82
89
|
* store. Defaults to the session-scoped in-memory adapter. */
|
|
83
90
|
preferences?: CalendarPreferenceAdapter;
|
|
91
|
+
/** The host's series move (S-C8). With it, a recurring parent's move
|
|
92
|
+
* always confirms, asks the scope and hides the notify boxes. */
|
|
93
|
+
onMoveOccurrence?: (move: CalendarOccurrenceMove) => Promise<void>;
|
|
84
94
|
}): import("react/jsx-runtime").JSX.Element;
|
|
85
95
|
//# sourceMappingURL=calendar.surface.d.ts.map
|
|
@@ -372,7 +372,7 @@ export interface CalendarWaitingEntry {
|
|
|
372
372
|
/** Story-only: the patient's number can receive WhatsApp messages. */
|
|
373
373
|
whatsappCapable?: boolean;
|
|
374
374
|
}
|
|
375
|
-
export type CalendarHistoryKind = 'created' | 'moved' | 'resized' | 'status' | 'edited' | 'deleted';
|
|
375
|
+
export type CalendarHistoryKind = 'created' | 'moved' | 'resized' | 'status' | 'edited' | 'deleted' | 'confirmedByPatient';
|
|
376
376
|
/** Form fields an edit can touch (the platform's audit vocabulary). */
|
|
377
377
|
export type CalendarHistoryField = 'patient' | 'type' | 'care' | 'operator' | 'chair' | 'colour' | 'time' | 'duration';
|
|
378
378
|
/** One ledger line — who did what to the appointment, and when. */
|
|
@@ -399,6 +399,10 @@ export type CalendarHistoryEntry = {
|
|
|
399
399
|
fields: CalendarHistoryField[];
|
|
400
400
|
} | {
|
|
401
401
|
kind: 'deleted';
|
|
402
|
+
}
|
|
403
|
+
/** The patient confirmed by link; the host sends `actor: ''`. */
|
|
404
|
+
| {
|
|
405
|
+
kind: 'confirmedByPatient';
|
|
402
406
|
});
|
|
403
407
|
/** Every labelled phone number — the single `phone` is the mobile when a
|
|
404
408
|
* patient carries no explicit list (platform prints each label: number).
|
|
@@ -492,4 +496,28 @@ export interface CalendarBranch {
|
|
|
492
496
|
/** Display name — the host localises it. */
|
|
493
497
|
name: string;
|
|
494
498
|
}
|
|
499
|
+
/**
|
|
500
|
+
* One free-slot question for a host that answers SERVER-side
|
|
501
|
+
* (`CalendarData.searchFreeSlots`). The scope is already narrowed to what
|
|
502
|
+
* the chosen care makes eligible, so the host asks its own finder for
|
|
503
|
+
* exactly this and nothing wider. `from` / `to` are local wall-clock
|
|
504
|
+
* instants. The STEP is the host's — the kit names none, so the server
|
|
505
|
+
* answers on whatever grid the practice's calendar interval implies.
|
|
506
|
+
*/
|
|
507
|
+
export interface FreeSlotQuery {
|
|
508
|
+
/** Search from here — clamped to midnight of the host's `nowIso` day. */
|
|
509
|
+
from: Date;
|
|
510
|
+
/** Last date to look at (inclusive). */
|
|
511
|
+
to: Date;
|
|
512
|
+
/** The appointment length the answer must fit. */
|
|
513
|
+
durationMin: number;
|
|
514
|
+
/** Operator ids in scope — never empty. */
|
|
515
|
+
operatorIds: readonly string[];
|
|
516
|
+
/** Chair ids in scope — never empty. */
|
|
517
|
+
chairIds: readonly string[];
|
|
518
|
+
/** The care the search was scoped to, when one was chosen. */
|
|
519
|
+
careId?: string;
|
|
520
|
+
/** The host's own medical-device strings, round-tripped untouched. */
|
|
521
|
+
medicalDeviceIds?: readonly string[];
|
|
522
|
+
}
|
|
495
523
|
//# sourceMappingURL=calendar.types.d.ts.map
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
export { CalendarWorkspace, initialWorkspaceDisplay, WORKSPACE_TOOL, type CalendarWorkspaceProps, type CalendarWorkspaceToolId, } from './calendar-workspace';
|
|
2
|
-
export { CalendarDataProvider, useCalendarData, type CalendarData, } from './calendar.data';
|
|
3
|
-
export type { CalendarJourney } from './calendar.journey';
|
|
1
|
+
export { CalendarWorkspace, initialWorkspaceDisplay, WORKSPACE_TOOL, type CalendarWorkspaceProps, type CalendarOnlineBookings, type CalendarWorkspaceToolId, } from './calendar-workspace';
|
|
2
|
+
export { CalendarDataProvider, useCalendarData, type CalendarData, type DayLoadState, } from './calendar.data';
|
|
3
|
+
export type { CalendarJourney, CalendarOccurrenceMove, PatientNotesLoad, } from './calendar.journey';
|
|
4
|
+
export type { CalendarAppointmentEditorSnapshot, CalendarAppointmentEditorLoader, CalendarEditorSeries, } from './calendar-editor-hydration';
|
|
5
|
+
export type { CalendarAppointmentDetails, CalendarDocumentKind, CalendarAppointmentDetailsLoader, CalendarAppointmentDetailsSnapshot, } from './calendar-appointment-details';
|
|
6
|
+
export { CalendarSeriesScopeChooser, type CalendarSeriesScopeChooserProps, } from './calendar-series-scope-chooser';
|
|
4
7
|
export { SheetHostProvider, useSheetHost, type SheetHostContext, type SheetId, } from './calendar.host';
|
|
5
8
|
export { CALENDAR_PREFERENCE_KEYS, memoryPreferenceAdapter, resetCalendarPreferences, usePersistedPreference, type CalendarPreferenceAdapter, } from './calendar.preferences';
|
|
6
|
-
export { DEFAULT_DISPLAY, VIEW_OPTIONS, type AvailabilityContext, type BacklogFilter, type BacklogItem, type BacklogType, type CalendarFreeSlot, type CalendarRow, type CalendarSeries, type DisplaySettings, type DraftSlot, type EditorDraft, type EditorPrefill, type EditorRecurrence, type FindSlotsSeed, type HistoryInput, type PendingMove, type RailFocus, type RecurrenceFrequency, type SlotPatch, type ViewOption, type ViewOptionId, type WaitingEntryDraft, } from './calendar.model';
|
|
9
|
+
export { DEFAULT_DISPLAY, VIEW_OPTIONS, type AvailabilityContext, type BacklogFilter, type BacklogItem, type BacklogType, type CalendarFreeSlot, type CalendarEditorCapabilities, type CalendarRow, type CalendarSeries, type DisplaySettings, type DraftSlot, type EditorDraft, type EditorPrefill, type EditorRecurrence, type FindSlotsSeed, type HistoryInput, type PendingMove, type RailFocus, type RecurrenceFrequency, type SlotPatch, type ViewOption, type ViewOptionId, type WaitingEntryDraft, } from './calendar.model';
|
|
7
10
|
export { DEFAULT_WORKSPACE_DISPLAY, WORKSPACE_VIEWS, type ChairNameDisplay, type DeleteOptions, type EditorDraftExtras, type OperatorNameDisplay, type RecurringScope, type RequiredDocsSignMode, type WorkspaceDisplaySettings, type WorkspaceViewId, } from './calendar-workspace.model';
|
|
8
|
-
export type { AssociationColorSources, CalendarAnamnesisAnswer, CalendarAppointmentMeta, CalendarBaseEvent, CalendarBookingContact, CalendarBranch, CalendarBusinessHours, CalendarCare, CalendarCareEntry, CalendarCareLink, CalendarCarePlan, CalendarCarePlanEntry, CalendarClosure, CalendarDayHours, CalendarHistoryEntry, CalendarHistoryField, CalendarHistoryKind, CalendarHoliday, CalendarOperatorFilterGroup, CalendarOperatorGroup, CalendarPatient, CalendarPhoneLabel, CalendarPhoneNumber, CalendarPractice, CalendarPracticeFeatures, CalendarPriceList, CalendarSignChannel, CalendarSignDocument, CalendarTaskDetail, CalendarWaitingEntry, CalendarWeeklyHours, CareDescriptionMode, ColorAssociation, } from './calendar.types';
|
|
11
|
+
export type { AssociationColorSources, CalendarAnamnesisAnswer, CalendarAppointmentMeta, CalendarBaseEvent, CalendarBookingContact, CalendarBranch, CalendarBusinessHours, CalendarCare, CalendarCareEntry, CalendarCareLink, CalendarCarePlan, CalendarCarePlanEntry, CalendarClosure, CalendarDayHours, CalendarHistoryEntry, CalendarHistoryField, CalendarHistoryKind, CalendarHoliday, CalendarOperatorFilterGroup, CalendarOperatorGroup, CalendarPatient, CalendarPhoneLabel, CalendarPhoneNumber, CalendarPractice, CalendarPracticeFeatures, CalendarPriceList, CalendarSignChannel, CalendarSignDocument, CalendarTaskDetail, CalendarWaitingEntry, CalendarWeeklyHours, CareDescriptionMode, ColorAssociation, FreeSlotQuery, } from './calendar.types';
|
|
9
12
|
export type { CalendarEvent, CalendarEventStatus, CalendarResource, } from '../../components/calendar';
|
|
10
13
|
export type { AppointmentItem } from '../../components/appointment-card';
|
|
11
|
-
export type { NotesPanelNote, NotesPanelProps, NotesPanelSubmission, } from '../../components/notes-panel';
|
|
14
|
+
export type { NotesPanelNote, NotesPanelNoteActions, NotesPanelProps, NotesPanelSubmission, } from '../../components/notes-panel';
|
|
12
15
|
export type { TasksPanelItem } from '../../components/tasks-panel';
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { C as s, a as r, b as E,
|
|
1
|
+
import { C as s, a as r, b as E, c as P, D as S, d as o, S as C, V as t, W as d, e as A, i, m as n, r as D, u as W, f as _, g as c } from "../../_chunks/calendar-workspace-BX-zDyVR.js";
|
|
2
2
|
export {
|
|
3
3
|
s as CALENDAR_PREFERENCE_KEYS,
|
|
4
4
|
r as CalendarDataProvider,
|
|
5
|
-
E as
|
|
6
|
-
P as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
d as
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
W as
|
|
17
|
-
_ as
|
|
5
|
+
E as CalendarSeriesScopeChooser,
|
|
6
|
+
P as CalendarWorkspace,
|
|
7
|
+
S as DEFAULT_DISPLAY,
|
|
8
|
+
o as DEFAULT_WORKSPACE_DISPLAY,
|
|
9
|
+
C as SheetHostProvider,
|
|
10
|
+
t as VIEW_OPTIONS,
|
|
11
|
+
d as WORKSPACE_TOOL,
|
|
12
|
+
A as WORKSPACE_VIEWS,
|
|
13
|
+
i as initialWorkspaceDisplay,
|
|
14
|
+
n as memoryPreferenceAdapter,
|
|
15
|
+
D as resetCalendarPreferences,
|
|
16
|
+
W as useCalendarData,
|
|
17
|
+
_ as usePersistedPreference,
|
|
18
|
+
c as useSheetHost
|
|
18
19
|
};
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Channel labels and icons shared by the request form and the signatures
|
|
3
|
+
* list, so a channel reads the same in both views.
|
|
4
|
+
*/
|
|
5
|
+
import type { ReactNode } from 'react';
|
|
6
|
+
/**
|
|
7
|
+
* Delivery channel for one signer's signature request. `'qr'` means the
|
|
8
|
+
* signer scans a QR code that the dialog shows in its QR step after the
|
|
9
|
+
* request (see `qrCodes`). Every patient-side signer is offered `'qr'`
|
|
10
|
+
* unless their `availableChannels` leaves it out; the operator never is.
|
|
11
|
+
*/
|
|
12
|
+
export type SignatureChannel = 'sms' | 'email' | 'whatsapp' | 'on-device' | 'qr';
|
|
13
|
+
/**
|
|
14
|
+
* Delivery channel for an operator's counter-sign request. The default is
|
|
15
|
+
* system defined: the operator's own `defaultChannel` arrives preselected.
|
|
16
|
+
*/
|
|
17
|
+
export type OperatorChannel = 'sms' | 'email' | 'on-device';
|
|
18
|
+
/** Operator channel display order. */
|
|
19
|
+
export declare const OPERATOR_CHANNELS: readonly OperatorChannel[];
|
|
20
|
+
export type ChannelMeta = Record<SignatureChannel, {
|
|
21
|
+
/** The label: the list's text and the channel dropdown's option. */
|
|
22
|
+
label: string;
|
|
23
|
+
icon: ReactNode;
|
|
24
|
+
}>;
|
|
25
|
+
/** Translated labels and decorative icon for every channel. */
|
|
26
|
+
export declare function useChannelMeta(): ChannelMeta;
|
|
27
|
+
//# sourceMappingURL=channel-meta.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { SignatureRequestModal } from './signature-request';
|
|
2
|
-
export type { SignatureRequestModalProps, SignatureRequestSubmission, SignerRequest, SignerOption, SignatureChannel, OperatorChannel, } from './signature-request';
|
|
2
|
+
export type { SignatureRequestModalProps, SignatureRequestSubmission, SignatureQrCode, SignerRequest, SignerOption, OperatorOption, SignatureChannel, OperatorChannel, SignatureChannelDraft, SignatureChannelResolution, SignatureRecord, SignatureLegalLevel, SignatureDownloadVersion, SignatureShareTarget, RequiredSignatureItem, RequiredSignatureItemKind, SignatureRequestOutcome, } from './signature-request';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface LoadStatusProps {
|
|
2
|
+
loading: boolean;
|
|
3
|
+
loadingText: string;
|
|
4
|
+
/** Said once when loading ends. Nothing is said if it never loaded. */
|
|
5
|
+
loadedText: string;
|
|
6
|
+
/**
|
|
7
|
+
* Another message for the same region, e.g. that a row was deleted. It
|
|
8
|
+
* wins while set and not loading; `''` empties the region.
|
|
9
|
+
*/
|
|
10
|
+
message?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function LoadStatus({ loading, loadingText, loadedText, message: override, }: LoadStatusProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=load-status.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ChannelMeta } from './channel-meta';
|
|
2
|
+
export declare const PERSON_GRID = "ds:grid ds:grid-cols-[var(--spacing-xl)_minmax(0,1fr)_var(--min-target-size)] ds:@[512px]/person:grid-cols-[var(--spacing-xl)_minmax(0,1fr)_max-content_var(--min-target-size)] ds:items-center ds:gap-x-[var(--spacing-sm)] ds:gap-y-[var(--spacing-sm)]";
|
|
3
|
+
export declare const PERSON_AVATAR = "ds:col-start-1 ds:row-start-1 ds:flex ds:items-center ds:justify-center";
|
|
4
|
+
/** The name select, in a row that also has a channel select. */
|
|
5
|
+
export declare const PERSON_NAME = "ds:col-start-2 ds:row-start-1 ds:min-w-0";
|
|
6
|
+
/** The name select, in a row with no channel: it takes the channel's width. */
|
|
7
|
+
export declare const PERSON_NAME_FULL = "ds:col-[2/-2] ds:row-start-1 ds:min-w-0";
|
|
8
|
+
/**
|
|
9
|
+
* The channel select: beside the name when wide, under it when narrow.
|
|
10
|
+
* `-3/-2` is the name column in the 3-column grid and the channel column in
|
|
11
|
+
* the 4-column one.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PERSON_CHANNEL = "ds:col-[-3/-2] ds:row-start-2 ds:min-w-0 ds:@[512px]/person:row-start-1";
|
|
14
|
+
export declare const PERSON_ACTION = "ds:col-[-2/-1] ds:row-start-1 ds:flex ds:items-center ds:justify-center";
|
|
15
|
+
/** Rows under a person (OTP switch, notes, errors): name to channel edge. */
|
|
16
|
+
export declare const PERSON_UNDER = "ds:col-[2/-2] ds:min-w-0 ds:text-start";
|
|
17
|
+
/** A section header row: eyebrow at the avatar edge, action at the selects' end edge. */
|
|
18
|
+
export declare const PERSON_HEADER = "ds:col-[1/-2] ds:row-start-1 ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]";
|
|
19
|
+
/** Space between two person blocks: larger than the gap inside one. */
|
|
20
|
+
export declare const PERSON_LIST = "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]";
|
|
21
|
+
/** Put on each section that holds person grids: the container above. */
|
|
22
|
+
export declare const PERSON_SECTION = "ds:@container/person";
|
|
23
|
+
/**
|
|
24
|
+
* Sizes the channel column to the longest channel label, in every row and
|
|
25
|
+
* whatever is selected, so all channel selects share one width. A hidden,
|
|
26
|
+
* zero-height copy of the select trigger per label; the column's
|
|
27
|
+
* `max-content` width comes from the widest.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ChannelColumnSizer({ meta }: {
|
|
30
|
+
meta: ChannelMeta;
|
|
31
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=person-grid.d.ts.map
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { type SelectOption } from '../../components/select';
|
|
2
|
+
import { type OperatorChannel, type SignatureChannel } from './channel-meta';
|
|
3
|
+
/** Select value for "Assign later" in every operator picker. */
|
|
4
|
+
export declare const ASSIGN_LATER = "__assign-later__";
|
|
5
|
+
/** What a required item is. Anamnesis interviews never carry a second signee. */
|
|
6
|
+
export type RequiredSignatureItemKind = 'document' | 'anamnesis';
|
|
7
|
+
/** One outstanding document or anamnesis interview in the batch. */
|
|
8
|
+
export interface RequiredSignatureItem {
|
|
9
|
+
/** Host id, the key of `operatorAssignments` in the submission. */
|
|
10
|
+
id: string;
|
|
11
|
+
kind: RequiredSignatureItemKind;
|
|
12
|
+
/** Display name, e.g. the document template name. */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Whether an operator must sign this item. Shows its operator picker. */
|
|
15
|
+
requiresOperator: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Whether this document has a field for the second signee. The second
|
|
18
|
+
* signee is offered only when every listed item can carry it. Ignored for
|
|
19
|
+
* `kind: 'anamnesis'`, which never can. Default `false`.
|
|
20
|
+
*/
|
|
21
|
+
canCarrySecondary?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Preselected operator for this item; `null` preselects "Assign later".
|
|
24
|
+
* Omit to use the modal's `initialOperatorId`.
|
|
25
|
+
*/
|
|
26
|
+
initialOperatorId?: string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Whether the item is already signed (platform `signed` on a document,
|
|
29
|
+
* `isSigned` on an interview). Signed items are left out. Default `false`.
|
|
30
|
+
* There is no per-party standing: platform's documents API has none.
|
|
31
|
+
*/
|
|
32
|
+
signed?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** The items that still need a signature: those not signed. */
|
|
35
|
+
export declare function itemsStillToSign(items: readonly RequiredSignatureItem[]): RequiredSignatureItem[];
|
|
36
|
+
/**
|
|
37
|
+
* The second signee signs the whole batch in one round, so it is offered
|
|
38
|
+
* only when every item can carry that signature. `[].every()` is true, so an
|
|
39
|
+
* empty batch cannot.
|
|
40
|
+
*/
|
|
41
|
+
export declare function batchCanCarrySecondary(items: readonly RequiredSignatureItem[]): boolean;
|
|
42
|
+
/** Whether an item gets an operator picker: an operator must sign it. */
|
|
43
|
+
export declare function needsOperatorPick(item: RequiredSignatureItem): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* One option in an operator picker. "Assign later" comes first, as on
|
|
46
|
+
* platform (OperatorSignee.js). A `disabled` operator shows greyed out with
|
|
47
|
+
* its `description` (the host's reason); a `deleted` one is hidden unless it
|
|
48
|
+
* is the picker's current value.
|
|
49
|
+
*/
|
|
50
|
+
export interface OperatorPickerOption {
|
|
51
|
+
value: string;
|
|
52
|
+
label: string;
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
description?: string;
|
|
55
|
+
deleted?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/** The options one picker lists, given its current value. */
|
|
58
|
+
export declare function operatorPickerOptions(options: readonly OperatorPickerOption[], selected: string | undefined): SelectOption[];
|
|
59
|
+
/** Whether a user could pick this value: listed, not greyed out or deleted. */
|
|
60
|
+
export declare function isPickableOperator(options: readonly OperatorPickerOption[], value: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The greyed-out operators and their reasons, for the picker trigger: a
|
|
63
|
+
* disabled option cannot take focus, so its own description is never heard.
|
|
64
|
+
* `undefined` when none is greyed out.
|
|
65
|
+
*/
|
|
66
|
+
export declare function operatorReasonsHint(options: readonly OperatorPickerOption[], locale: string): string | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Why the second signee is withheld from a batch, first reason first; `null`
|
|
69
|
+
* when it is offered. Mirrors platform (secondarySigneeAvailability.ts and
|
|
70
|
+
* SecondarySignee.tsx): every item can carry it, the batch is signed on this
|
|
71
|
+
* device, and the main signer is a registered signee, not the patient.
|
|
72
|
+
*/
|
|
73
|
+
export type SecondSigneeBlock = 'anamnesis' | 'documents' | 'patient' | 'channel';
|
|
74
|
+
export declare function secondSigneeBlock({ items, channel, primaryIsPatient, }: {
|
|
75
|
+
items: readonly RequiredSignatureItem[];
|
|
76
|
+
channel: SignatureChannel;
|
|
77
|
+
primaryIsPatient: boolean;
|
|
78
|
+
}): SecondSigneeBlock | null;
|
|
79
|
+
/** What is wrong with the chosen second signee (platform secondarySigneeValidation.ts). */
|
|
80
|
+
export type SecondSigneeIssue = 'sameAsPrimary' | 'unknownSignee' | 'missingPhone' | 'missingEmail';
|
|
81
|
+
/** The parts of a `SignerOption` the second signee checks read. */
|
|
82
|
+
export interface SecondSigneeCandidate {
|
|
83
|
+
value: string;
|
|
84
|
+
isPatient?: boolean;
|
|
85
|
+
availableChannels?: readonly SignatureChannel[];
|
|
86
|
+
unavailableChannels?: ReadonlyArray<{
|
|
87
|
+
channel: SignatureChannel;
|
|
88
|
+
}>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The first issue with a second signee, or `null`. Phone and e-mail are read
|
|
92
|
+
* from channel availability, so no contact data reaches the kit: a person who
|
|
93
|
+
* cannot receive SMS or WhatsApp has no phone, one who cannot receive e-mail
|
|
94
|
+
* has no e-mail. The patient is never a signee, so picking them is unknown.
|
|
95
|
+
*/
|
|
96
|
+
export declare function secondSigneeIssue({ primaryId, secondId, channel, options, }: {
|
|
97
|
+
primaryId: string | undefined;
|
|
98
|
+
secondId: string;
|
|
99
|
+
channel: SignatureChannel;
|
|
100
|
+
options: readonly SecondSigneeCandidate[];
|
|
101
|
+
}): SecondSigneeIssue | null;
|
|
102
|
+
export interface RequiredDocumentsProps {
|
|
103
|
+
/** The items to list, already narrowed to those still to sign. */
|
|
104
|
+
items: readonly RequiredSignatureItem[];
|
|
105
|
+
loading?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Operator options, "Assign later" first when allowed. Deleted operators
|
|
108
|
+
* show only in a picker whose value they are.
|
|
109
|
+
*/
|
|
110
|
+
operatorOptions: readonly OperatorPickerOption[];
|
|
111
|
+
/** The picker value per item id, for items that require an operator. */
|
|
112
|
+
assignments: Readonly<Record<string, string>>;
|
|
113
|
+
onAssign: (itemId: string, operatorValue: string) => void;
|
|
114
|
+
/** Shows "Assign all to me" when passed. */
|
|
115
|
+
onAssignAllToMe?: () => void;
|
|
116
|
+
busy?: boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Adds each picked operator's channel beside their picker, in place of
|
|
119
|
+
* the note that their settings decide. Default `false`.
|
|
120
|
+
*/
|
|
121
|
+
showOperatorChannels?: boolean;
|
|
122
|
+
/** The channel per item id, for items with an assigned operator. */
|
|
123
|
+
operatorChannels?: Readonly<Record<string, OperatorChannel>>;
|
|
124
|
+
onOperatorChannel?: (itemId: string, channel: OperatorChannel) => void;
|
|
125
|
+
}
|
|
126
|
+
export declare function RequiredDocuments({ items, loading, operatorOptions, assignments, onAssign, onAssignAllToMe, busy, showOperatorChannels, operatorChannels, onOperatorChannel, }: RequiredDocumentsProps): import("react/jsx-runtime").JSX.Element;
|
|
127
|
+
//# sourceMappingURL=required-documents.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type SignatureParty, type SignatureSignerNames } from '../../components/signature-status-chip';
|
|
2
|
+
import { type SignatureChannel } from './channel-meta';
|
|
3
|
+
/** Legal weight of a signature. Advanced needs an OTP-verified signer. */
|
|
4
|
+
export type SignatureLegalLevel = 'simple' | 'advanced';
|
|
5
|
+
/** Which file a download asks for. */
|
|
6
|
+
export type SignatureDownloadVersion = 'full' | 'anonymised';
|
|
7
|
+
/** How a signed document is shared. */
|
|
8
|
+
export type SignatureShareTarget = 'link' | 'email' | 'whatsapp';
|
|
9
|
+
/** One past signature request on the document. */
|
|
10
|
+
export interface SignatureRecord {
|
|
11
|
+
/** Host id, handed back to every row callback. */
|
|
12
|
+
id: string;
|
|
13
|
+
/**
|
|
14
|
+
* When the request was made: a `Date` or an ISO 8601 string, shown as
|
|
15
|
+
* weekday, date and time in the active locale and the browser's time zone
|
|
16
|
+
* (Italian: "Mar. il 25/08/2026 ore 12:45"). An unparseable string is
|
|
17
|
+
* shown as it is.
|
|
18
|
+
*/
|
|
19
|
+
createdAt: Date | string;
|
|
20
|
+
/** How the request reached the signer. */
|
|
21
|
+
channel: SignatureChannel;
|
|
22
|
+
/** Omit to show no legal level on this row. */
|
|
23
|
+
legalLevel?: SignatureLegalLevel;
|
|
24
|
+
/** The operator's standing, as on SignatureStatusChip. */
|
|
25
|
+
operator: SignatureParty;
|
|
26
|
+
/** The patient's standing, as on SignatureStatusChip. */
|
|
27
|
+
patient: SignatureParty;
|
|
28
|
+
/** The second signee's standing. Defaults to `notRequired`. */
|
|
29
|
+
secondary?: SignatureParty;
|
|
30
|
+
/**
|
|
31
|
+
* Signer names for the chip's tooltip, including who signed on a
|
|
32
|
+
* party's behalf (a parent for a minor). Same shape as the chip's `names`.
|
|
33
|
+
*/
|
|
34
|
+
names?: SignatureSignerNames;
|
|
35
|
+
/** Offer the anonymised file beside the full one on download. */
|
|
36
|
+
hasAnonymisedVersion?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Where this document can be shared, e.g. no `'whatsapp'` for a patient
|
|
39
|
+
* with no mobile number. Wins over the list's `shareTargets`. The menu
|
|
40
|
+
* keeps its own order (link, e-mail, WhatsApp); an empty list hides Share
|
|
41
|
+
* on this row.
|
|
42
|
+
*/
|
|
43
|
+
shareTargets?: readonly SignatureShareTarget[];
|
|
44
|
+
}
|
|
45
|
+
export interface SignatureHistoryProps {
|
|
46
|
+
signatures?: readonly SignatureRecord[];
|
|
47
|
+
loading?: boolean;
|
|
48
|
+
showLegalLevel?: boolean;
|
|
49
|
+
onView?: (id: string) => void;
|
|
50
|
+
onDownload?: (id: string, version: SignatureDownloadVersion) => void;
|
|
51
|
+
onShare?: (id: string, via: SignatureShareTarget) => void;
|
|
52
|
+
/** Share targets for rows without their own. Default: all three. */
|
|
53
|
+
shareTargets?: readonly SignatureShareTarget[];
|
|
54
|
+
onDelete?: (id: string) => void;
|
|
55
|
+
}
|
|
56
|
+
export declare function SignatureHistory({ signatures, loading, showLegalLevel, onView, onDownload, onShare, shareTargets, onDelete, }: SignatureHistoryProps): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
//# sourceMappingURL=signature-history.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outcome states of SignatureRequestModal: a final screen in the same dialog
|
|
3
|
+
* once there is nothing left to fill in. The modal puts the title and the
|
|
4
|
+
* description in its header and its own actions in the footer; this file
|
|
5
|
+
* holds the copy and the decorative body.
|
|
6
|
+
*/
|
|
7
|
+
import type { TFunction } from 'i18next';
|
|
8
|
+
/**
|
|
9
|
+
* - `linkSent`: the request went out by link (SMS, e-mail, WhatsApp).
|
|
10
|
+
* - `allSigned`: nothing is left to sign.
|
|
11
|
+
* - `creditsExhausted`: the practice has no electronic signature documents
|
|
12
|
+
* left, so the request cannot be sent.
|
|
13
|
+
*/
|
|
14
|
+
export type SignatureRequestOutcome = 'linkSent' | 'allSigned' | 'creditsExhausted';
|
|
15
|
+
/**
|
|
16
|
+
* Title and description for an outcome, in the active locale. `required`
|
|
17
|
+
* (required documents mode) uses platform's batch copy for `linkSent`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function outcomeCopy(outcome: SignatureRequestOutcome, t: TFunction, { required }?: {
|
|
20
|
+
required?: boolean;
|
|
21
|
+
}): {
|
|
22
|
+
title: string;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
/** The outcome's body: a decorative status icon. The header carries the words. */
|
|
26
|
+
export declare function SignatureOutcome({ outcome, }: {
|
|
27
|
+
outcome: SignatureRequestOutcome;
|
|
28
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=signature-outcome.d.ts.map
|