@alfadocs/ui-kit 0.25.1 → 0.30.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/{agenda-card-BmpaUG1h.js → agenda-card-CznB7K8e.js} +2 -2
- package/dist/_chunks/{agenda-tray-DiInnVqk.js → agenda-tray-C_bha7oK.js} +4 -4
- package/dist/_chunks/{ai-prompt-input-B5MdixzR.js → ai-prompt-input-Bka3jX3i.js} +2 -2
- package/dist/_chunks/{alia-sidebar-CUi2UCbY.js → alia-sidebar-CnvXq95r.js} +92 -109
- package/dist/_chunks/{audio-recorder-D4xM3H5i.js → audio-recorder-OB6IV9B1.js} +2 -2
- package/dist/_chunks/{autocomplete-C7xq06bP.js → autocomplete-CUh0f7Dj.js} +2 -2
- package/dist/_chunks/{avatar-BpFohgWG.js → avatar-D_H4emLo.js} +7 -7
- package/dist/_chunks/{benefit-card-DXmrAyfn.js → benefit-card-CjYM8vNr.js} +29 -29
- package/dist/_chunks/booking-BYuc_8HV.js +2250 -0
- package/dist/_chunks/{calendar-zy0tUUVG.js → calendar-WWNx448i.js} +114 -142
- package/dist/_chunks/{card-C353dU-H.js → card-DKTMLVrw.js} +11 -11
- package/dist/_chunks/{carousel.agent-DnPiqijR.js → carousel.agent-C9swH-Uf.js} +2 -2
- package/dist/_chunks/{chat-input-B3XmFGDw.js → chat-input-BfDcz1Yi.js} +2 -2
- package/dist/_chunks/{chat-message-W3k8rLOA.js → chat-message-fg221-yx.js} +2 -2
- package/dist/_chunks/{command-palette-DkL-aW4O.js → command-palette-11BieSNq.js} +2 -2
- package/dist/_chunks/{contact-card-CjG7c-1q.js → contact-card-DYbp--s-.js} +3 -3
- package/dist/_chunks/{date-picker-BIoSLRly.js → date-picker-D0Ry1dMz.js} +26 -27
- package/dist/_chunks/{date-range-picker-9gANFNG9.js → date-range-picker-DYgHzMOo.js} +19 -20
- package/dist/_chunks/{date-time-picker-DG7BiGdb.js → date-time-picker-CGmGtcyc.js} +10 -11
- package/dist/_chunks/{description-list-Bsga4IW8.js → description-list-yl3y3QKg.js} +34 -24
- package/dist/_chunks/{dialog-DUomPCRS.js → dialog-BBXqpZIt.js} +2 -2
- package/dist/_chunks/{editable-currency-cell-renderer-DJB5MxAI.js → editable-currency-cell-renderer-DSReCae7.js} +7 -7
- package/dist/_chunks/{empty-state-3CLJIXSj.js → empty-state-BLy7tigq.js} +13 -33
- package/dist/_chunks/eye-LHlSU38h.js +21 -0
- package/dist/_chunks/{freemium-paywall-CM6V1zNf.js → freemium-paywall-B9c8Ylww.js} +11 -11
- package/dist/_chunks/{header-DqmKROIY.js → header-CkMb1TZS.js} +24 -24
- package/dist/_chunks/heart-pulse-CvuyFKHB.js +21 -0
- package/dist/_chunks/icon-button-BRHSSFmZ.js +70 -0
- package/dist/_chunks/{isSameDay-ecuM8PBB.js → isSameDay-DHG8Xade.js} +4 -4
- package/dist/_chunks/{key-value-pair-DBuOCtIc.js → key-value-pair-CqeKiP__.js} +2 -2
- package/dist/_chunks/{link-DmM5IevO.js → link-DrD_cRUg.js} +50 -45
- package/dist/_chunks/{locale-picker-BxEUUPW7.js → locale-picker-BHxbTNmR.js} +297 -208
- package/dist/_chunks/{map-view-CcwycFQX.js → map-view-DyB8tr6c.js} +9 -9
- package/dist/_chunks/{matrix-rain-CRPMXcVx.js → matrix-rain-sDOUUwZp.js} +35 -35
- package/dist/_chunks/{message-card-i61k1TGc.js → message-card-DjRtA8GG.js} +3 -3
- package/dist/_chunks/{message-tray-DrV7G-wR.js → message-tray-DfsAMncP.js} +3 -3
- package/dist/_chunks/monitor-D-SFdbrU.js +16 -0
- package/dist/_chunks/{notification-card-ejOw5g6g.js → notification-card-B_847w5g.js} +3 -3
- package/dist/_chunks/{notification-tray-D_69dXFY.js → notification-tray-6f7smmT1.js} +22 -19
- package/dist/_chunks/parseISO-Dk4xa7q6.js +120 -0
- package/dist/_chunks/patient-search-BhlxYAI3.js +1102 -0
- package/dist/_chunks/patient-shell-CAXYzbRw.js +173 -0
- package/dist/_chunks/{payment-form-F7uh0Rqr.js → payment-form-Ds3rxvad.js} +2 -2
- package/dist/_chunks/{pdf-viewer-CuYaVR1I.js → pdf-viewer-CIuaocnq.js} +2 -2
- package/dist/_chunks/{popover--derJ_wq.js → popover-D0slaBB9.js} +17 -13
- package/dist/_chunks/{privacy-lock-BKsI6ReN.js → privacy-lock-BI4vi9Ud.js} +2 -2
- package/dist/_chunks/public-footer.agent-CA29gxHJ.js +516 -0
- package/dist/_chunks/{public-header.agent-BQ3r6Hgq.js → public-header.agent-5U3S9QiC.js} +49 -41
- package/dist/_chunks/react-day-picker-D3yzgvDB.js +3127 -0
- package/dist/_chunks/{recaptcha-widget-Kp1XntuE.js → recaptcha-widget-BtBNb6tB.js} +2 -2
- package/dist/_chunks/reviews-panel-CFttsfuC.js +513 -0
- package/dist/_chunks/{search-bar-DORSAzNt.js → search-bar-BRMW1-WG.js} +2 -2
- package/dist/_chunks/{search-input-BtEJAJHa.js → search-input-CIA6pPfn.js} +2 -2
- package/dist/_chunks/{sheet-BT0izeoI.js → sheet-D8M8hf8B.js} +2 -2
- package/dist/_chunks/{sign-in-with-alfadocs-button-4zZC-I6y.js → sign-in-with-alfadocs-button-BI0fVonM.js} +2 -2
- package/dist/_chunks/slot-grid-B2zprPcv.js +387 -0
- package/dist/_chunks/sparkles-CuYXqQLg.js +23 -0
- package/dist/_chunks/{spinner-DirtWZNG.js → spinner-CCByyvcb.js} +2 -2
- package/dist/_chunks/stepper-accordion-BfS6lUB9.js +257 -0
- package/dist/_chunks/stepper-accordion.agent-C4quJ-MD.js +71 -0
- package/dist/_chunks/stethoscope-DT5qCW8Y.js +18 -0
- package/dist/_chunks/{sun-Eweh5fvi.js → sun-BuXE0xUS.js} +3 -15
- package/dist/_chunks/{task-tray-B3A2fRGR.js → task-tray-Bcmrrs8m.js} +3 -3
- package/dist/_chunks/{theme-toggle-FrotC2VI.js → theme-toggle-nPzb378f.js} +37 -36
- package/dist/_chunks/{timeline-jmd7lfDf.js → timeline-CR7HjZCK.js} +3 -3
- package/dist/_chunks/{toast.agent-32WNQ-_x.js → toast.agent-CTF6nIj5.js} +2 -2
- package/dist/_chunks/{transcript-panel-DUrjx5sa.js → transcript-panel-QUQ9XJmf.js} +2 -2
- package/dist/_chunks/{use-password-requirements-C9vKBSVn.js → use-password-requirements-E0sSfx5X.js} +38 -53
- package/dist/_chunks/use-theme-C2dHKUAN.js +145 -0
- package/dist/_chunks/{workflow-map-BR6txfFX.js → workflow-map-BKsKdYvZ.js} +5 -5
- package/dist/agent-catalog.json +151 -51
- 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/audio-recorder/index.js +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/benefit-card/index.js +1 -1
- package/dist/components/booking/booking-types.d.ts +145 -0
- package/dist/components/booking/booking.agent.d.ts +4 -0
- package/dist/components/booking/booking.d.ts +6 -0
- package/dist/components/booking/cascade.d.ts +96 -0
- package/dist/components/booking/details-form.d.ts +32 -0
- package/dist/components/booking/index.d.ts +5 -0
- package/dist/components/booking/index.js +8 -0
- package/dist/components/button/index.js +1 -1
- package/dist/components/calendar/index.js +1 -1
- package/dist/components/card/index.js +1 -1
- package/dist/components/carousel/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/checkbox/checkbox.d.ts +6 -2
- package/dist/components/command-palette/index.js +1 -1
- package/dist/components/contact-card/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- 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/dialog/index.js +1 -1
- package/dist/components/empty-state/index.js +1 -1
- package/dist/components/freemium-paywall/index.js +1 -1
- package/dist/components/header/index.js +1 -1
- package/dist/components/header-settings/index.js +16 -15
- package/dist/components/icon-button/index.js +1 -1
- package/dist/components/index.d.ts +4 -1
- package/dist/components/key-value-pair/index.js +1 -1
- package/dist/components/link/index.js +1 -1
- package/dist/components/link/link.d.ts +7 -0
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/matrix-rain/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/notification-card/index.js +1 -1
- package/dist/components/notification-tray/index.js +1 -1
- package/dist/components/password-input/index.js +1 -1
- package/dist/components/patient-search/index.d.ts +4 -0
- package/dist/components/patient-search/index.js +6 -0
- package/dist/components/patient-search/patient-search.agent.d.ts +4 -0
- package/dist/components/patient-search/patient-search.d.ts +103 -0
- package/dist/components/payment-form/index.js +1 -1
- package/dist/components/pdf-viewer/index.js +1 -1
- package/dist/components/popover/index.js +1 -1
- package/dist/components/privacy-lock/index.js +1 -1
- package/dist/components/public-footer/index.d.ts +6 -0
- package/dist/components/public-footer/index.js +10 -0
- package/dist/components/public-footer/legal-urls.d.ts +18 -0
- package/dist/components/public-footer/public-footer.agent.d.ts +4 -0
- package/dist/components/public-footer/public-footer.d.ts +51 -0
- package/dist/components/public-footer/socials.d.ts +9 -0
- package/dist/components/public-header/index.js +1 -1
- package/dist/components/recaptcha-widget/index.js +1 -1
- package/dist/components/reviews-panel/index.d.ts +4 -0
- package/dist/components/reviews-panel/index.js +6 -0
- package/dist/components/reviews-panel/reviews-panel.agent.d.ts +4 -0
- package/dist/components/reviews-panel/reviews-panel.d.ts +76 -0
- package/dist/components/search-bar/index.js +1 -1
- package/dist/components/search-input/index.js +1 -1
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
- package/dist/components/slot-grid/index.js +1 -1
- package/dist/components/spinner/index.js +1 -1
- package/dist/components/stepper-accordion/index.js +4 -3
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/timeline/index.js +1 -1
- package/dist/components/toast/index.js +1 -1
- package/dist/components/transcript-panel/index.js +1 -1
- package/dist/components/workflow/index.js +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/i18n/config.js +4923 -49
- package/dist/i18n/locales/ar.d.ts +272 -0
- package/dist/i18n/locales/de.d.ts +272 -0
- package/dist/i18n/locales/el.d.ts +272 -0
- package/dist/i18n/locales/es.d.ts +272 -0
- package/dist/i18n/locales/fr.d.ts +272 -0
- package/dist/i18n/locales/hi.d.ts +272 -0
- package/dist/i18n/locales/ja.d.ts +272 -0
- package/dist/i18n/locales/nl.d.ts +272 -0
- package/dist/i18n/locales/pl.d.ts +272 -0
- package/dist/i18n/locales/pt.d.ts +272 -0
- package/dist/i18n/locales/ro.d.ts +272 -0
- package/dist/i18n/locales/ru.d.ts +272 -0
- package/dist/i18n/locales/sq.d.ts +272 -0
- package/dist/i18n/locales/sv.d.ts +272 -0
- package/dist/i18n/locales/tr.d.ts +272 -0
- package/dist/i18n/locales/zh.d.ts +272 -0
- package/dist/i18n/resources.d.ts +544 -0
- package/dist/index.js +364 -348
- package/dist/locales/ar.json +273 -1
- package/dist/locales/de.json +273 -1
- package/dist/locales/el.json +273 -1
- package/dist/locales/en.json +273 -1
- package/dist/locales/es.json +273 -1
- package/dist/locales/fr.json +273 -1
- package/dist/locales/hi.json +273 -1
- package/dist/locales/it.json +273 -1
- package/dist/locales/ja.json +273 -1
- package/dist/locales/nl.json +273 -1
- package/dist/locales/pl.json +273 -1
- package/dist/locales/pt.json +273 -1
- package/dist/locales/ro.json +273 -1
- package/dist/locales/ru.json +273 -1
- package/dist/locales/sq.json +273 -1
- package/dist/locales/sv.json +273 -1
- package/dist/locales/tr.json +273 -1
- package/dist/locales/zh.json +273 -1
- package/dist/patterns/alia-assistant/index.js +1 -1
- package/dist/patterns/patient-shell/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +17 -1
- package/dist/_chunks/icon-button-C4CGcYuz.js +0 -54
- package/dist/_chunks/isSameMonth-5wNF2f4I.js +0 -1307
- package/dist/_chunks/patient-shell-B164drIa.js +0 -173
- package/dist/_chunks/react-day-picker-C5F3-TTX.js +0 -1827
- package/dist/_chunks/slot-grid-CgpYgBkW.js +0 -502
- package/dist/_chunks/stepper-C-sIpRRU.js +0 -7
- package/dist/_chunks/stepper-accordion.agent-ckKYZCIP.js +0 -322
- package/dist/_chunks/stepper-calendar-BLOJUE0-.js +0 -648
- package/dist/_chunks/use-theme-B1cwAXJR.js +0 -145
- package/dist/components/stepper-calendar/index.d.ts +0 -4
- package/dist/components/stepper-calendar/index.js +0 -6
- package/dist/components/stepper-calendar/stepper-calendar.agent.d.ts +0 -4
- package/dist/components/stepper-calendar/stepper-calendar.d.ts +0 -62
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { BookingOperator, BookingService, BookingSlot, BookingSpecialty, BookingValue, ConfirmationChannel, InsuranceType } from './booking-types';
|
|
2
|
+
/**
|
|
3
|
+
* Sentinel for the operator filter's "All operators" pseudo-option. Mirrors
|
|
4
|
+
* `OPERATORS_ALL = '0'` in the legacy `useBookingState.js`, but the kit
|
|
5
|
+
* uses `'all'` as the well-known string so consumers can't accidentally
|
|
6
|
+
* collide with a real operator id of `'0'`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const OPERATORS_ALL: "all";
|
|
9
|
+
export interface CascadePolicy {
|
|
10
|
+
/** ISO 3166-1 alpha-2 country code. Currently only `'de'` toggles a gate. */
|
|
11
|
+
country?: string;
|
|
12
|
+
useSpecialties?: boolean;
|
|
13
|
+
allowOperatorSelection?: boolean;
|
|
14
|
+
/** When set, locks step 4 to this operator id and hides the picker. */
|
|
15
|
+
lockedOperatorId?: string;
|
|
16
|
+
/** Defaults to `false`. When true, single-service lists auto-pre-fill. */
|
|
17
|
+
autoSelectSingleService?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface CascadeInputs extends CascadePolicy {
|
|
20
|
+
specialties: BookingSpecialty[];
|
|
21
|
+
services: BookingService[];
|
|
22
|
+
operators: BookingOperator[];
|
|
23
|
+
availableDates: string[];
|
|
24
|
+
availableSlots: Record<string, BookingSlot[]>;
|
|
25
|
+
value: BookingValue;
|
|
26
|
+
}
|
|
27
|
+
export interface CascadeGates {
|
|
28
|
+
insurance: boolean;
|
|
29
|
+
specialty: boolean;
|
|
30
|
+
service: boolean;
|
|
31
|
+
operator: boolean;
|
|
32
|
+
date: boolean;
|
|
33
|
+
slot: boolean;
|
|
34
|
+
details: boolean;
|
|
35
|
+
/** True when a service is picked but no eligible operators can perform it. */
|
|
36
|
+
onboardingIncomplete: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface CascadeFiltered {
|
|
39
|
+
specialties: BookingSpecialty[];
|
|
40
|
+
services: BookingService[];
|
|
41
|
+
/**
|
|
42
|
+
* Eligible operators for the active specialty (when `useSpecialties=true`)
|
|
43
|
+
* OR the active service. Excludes the "All operators" sentinel — that's
|
|
44
|
+
* always prepended in the UI layer.
|
|
45
|
+
*/
|
|
46
|
+
operators: BookingOperator[];
|
|
47
|
+
}
|
|
48
|
+
/** Step number — 1-indexed, matches the docs / a11y order. */
|
|
49
|
+
export type CascadeStep = 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
50
|
+
export interface CascadeOutputs {
|
|
51
|
+
gates: CascadeGates;
|
|
52
|
+
filtered: CascadeFiltered;
|
|
53
|
+
/** Current step: the first visible step that has an unfulfilled requirement. */
|
|
54
|
+
currentStep: CascadeStep;
|
|
55
|
+
/** Total visible steps (1..7 minus any auto-skipped). */
|
|
56
|
+
totalSteps: number;
|
|
57
|
+
/** Ordered list of the visible step indices, used by variants that show a stepper. */
|
|
58
|
+
visibleSteps: CascadeStep[];
|
|
59
|
+
/** Whether every required step is satisfied — the submit button is gated on this. */
|
|
60
|
+
isReadyToSubmit: boolean;
|
|
61
|
+
/** Selected service's duration, if any — needed for slot fetching. */
|
|
62
|
+
durationMin?: number;
|
|
63
|
+
/** Selected slot resolved from `value.date` + `value.slotKey`. */
|
|
64
|
+
selectedSlot?: BookingSlot;
|
|
65
|
+
}
|
|
66
|
+
export declare function deriveCascade(inputs: CascadeInputs): CascadeOutputs;
|
|
67
|
+
export declare function resetOnInsuranceChange(value: BookingValue, next: InsuranceType | undefined): BookingValue;
|
|
68
|
+
export declare function resetOnSpecialtyChange(value: BookingValue, next: string | undefined): BookingValue;
|
|
69
|
+
export declare function resetOnServiceChange(value: BookingValue, next: string | undefined): BookingValue;
|
|
70
|
+
export declare function resetOnOperatorChange(value: BookingValue, next: string | undefined): BookingValue;
|
|
71
|
+
export declare function resetOnDateChange(value: BookingValue, next: string | undefined): BookingValue;
|
|
72
|
+
export declare function resetOnSlotChange(value: BookingValue, next: string | undefined): BookingValue;
|
|
73
|
+
export declare function applyAutoSelects(value: BookingValue, inputs: CascadePolicy & {
|
|
74
|
+
specialties: BookingSpecialty[];
|
|
75
|
+
services: BookingService[];
|
|
76
|
+
}): BookingValue;
|
|
77
|
+
/** Resolve the active operator id, treating the `'all'` sentinel as `undefined`. */
|
|
78
|
+
export declare function resolveOperatorId(value: BookingValue): string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Resolve the effective list of enabled channels. Falls back to `['email']`
|
|
81
|
+
* when the consumer omits the prop, preserving the pre-amendment behaviour.
|
|
82
|
+
*/
|
|
83
|
+
export declare function resolveConfirmationChannels(enabled: ConfirmationChannel[] | undefined): ConfirmationChannel[];
|
|
84
|
+
/**
|
|
85
|
+
* Compute the channels to pre-check. Result is intersected with `enabled`
|
|
86
|
+
* for safety so a channel the practice didn't enable never gets ticked.
|
|
87
|
+
*
|
|
88
|
+
* Rules (per spec):
|
|
89
|
+
* 1. Always include 'email'.
|
|
90
|
+
* 2. Include 'whatsapp' if enabled AND mobile looks plausible.
|
|
91
|
+
* 3. Include 'sms' ONLY when whatsapp is NOT in `enabled`.
|
|
92
|
+
* 4. If the consumer passes `override`, honour it verbatim (still
|
|
93
|
+
* intersected with `enabled` for safety).
|
|
94
|
+
*/
|
|
95
|
+
export declare function defaultConfirmationSelection(enabled: ConfirmationChannel[] | undefined, mobile: string | undefined, override?: ConfirmationChannel[]): ConfirmationChannel[];
|
|
96
|
+
//# sourceMappingURL=cascade.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { BookingDetails, BookingValidator, ConfirmationChannel } from './booking-types';
|
|
3
|
+
export interface BookingDetailsFormProps {
|
|
4
|
+
value: Partial<BookingDetails>;
|
|
5
|
+
onChange: (next: Partial<BookingDetails>) => void;
|
|
6
|
+
onSubmit: (details: BookingDetails) => void | Promise<void>;
|
|
7
|
+
requireCodiceFiscale?: boolean;
|
|
8
|
+
requireDateOfBirth?: boolean;
|
|
9
|
+
/** When `true` AND `insuranceType === 'public'`, render the Versichertennummer field. */
|
|
10
|
+
requireInsuranceNumber?: boolean;
|
|
11
|
+
insuranceType?: 'private' | 'public';
|
|
12
|
+
showNote?: boolean;
|
|
13
|
+
showReturningPatientFlag?: boolean;
|
|
14
|
+
privacyPolicyUrl?: string;
|
|
15
|
+
termsUrl?: string;
|
|
16
|
+
validateCodiceFiscale?: BookingValidator;
|
|
17
|
+
validateInsuranceNumber?: BookingValidator;
|
|
18
|
+
submitting?: boolean;
|
|
19
|
+
/** Optional summary node rendered above the form (e.g. confirm-time chip). */
|
|
20
|
+
summarySlot?: ReactNode;
|
|
21
|
+
defaultPhoneCountry?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Channels the practice has enabled. When omitted, defaults to
|
|
24
|
+
* `['email']` (picker hidden — single implicit channel). When the
|
|
25
|
+
* resolved list has length 1 the picker stays hidden.
|
|
26
|
+
*/
|
|
27
|
+
confirmationChannels?: ConfirmationChannel[];
|
|
28
|
+
/** Pre-checked channels override; falls back to a smart default. */
|
|
29
|
+
defaultConfirmationChannels?: ConfirmationChannel[];
|
|
30
|
+
}
|
|
31
|
+
export declare const BookingDetailsForm: import("react").ForwardRefExoticComponent<BookingDetailsFormProps & import("react").RefAttributes<HTMLFormElement>>;
|
|
32
|
+
//# sourceMappingURL=details-form.d.ts.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Booking } from './booking';
|
|
2
|
+
export type { BookingProps, BookingHandle, BookingVariant, BookingValue, BookingService, BookingSpecialty, BookingSlot, BookingOperator, BookingDetails, BookingSubmitPayload, BookingValidator, BookingValidationResult, ConfirmationChannel, InsuranceType, } from './booking';
|
|
3
|
+
export { CONFIRMATION_CHANNEL_ORDER, OPERATORS_ALL } from './booking';
|
|
4
|
+
export { bookingAgent } from './booking.agent';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { B as r } from "../../_chunks/button-DD_0Xdmr.js";
|
|
2
|
-
import { I as e } from "../../_chunks/icon-button-
|
|
2
|
+
import { I as e } from "../../_chunks/icon-button-BRHSSFmZ.js";
|
|
3
3
|
import { b as f } from "../../_chunks/button.agent-BuGZBktn.js";
|
|
4
4
|
export {
|
|
5
5
|
r as Button,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef } from 'react';
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
2
|
import * as RadixCheckbox from '@radix-ui/react-checkbox';
|
|
3
3
|
import { type VariantProps } from 'class-variance-authority';
|
|
4
4
|
/** Agent-readiness curated handle for Checkbox. */
|
|
@@ -12,7 +12,11 @@ declare const checkboxVariants: (props?: ({
|
|
|
12
12
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
13
|
type RadixRootProps = ComponentPropsWithoutRef<typeof RadixCheckbox.Root>;
|
|
14
14
|
export interface CheckboxProps extends Omit<RadixRootProps, 'checked' | 'onCheckedChange' | 'children'>, VariantProps<typeof checkboxVariants> {
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Visible label rendered next to the box. Accepts a string or any React
|
|
17
|
+
* node — useful for consent labels that embed a privacy / T&C link.
|
|
18
|
+
*/
|
|
19
|
+
label: ReactNode;
|
|
16
20
|
checked?: boolean | 'indeterminate';
|
|
17
21
|
onCheckedChange?: (checked: boolean | 'indeterminate') => void;
|
|
18
22
|
size?: 'sm' | 'md' | 'lg';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as t, a as e, b as o, c as s, d as n, e as d, f as i, g as C, h as r, i as l, j as c, k as h, u as g } from "../../_chunks/command-palette-
|
|
1
|
+
import { C as t, a as e, b as o, c as s, d as n, e as d, f as i, g as C, h as r, i as l, j as c, k as h, u as g } from "../../_chunks/command-palette-11BieSNq.js";
|
|
2
2
|
export {
|
|
3
3
|
t as CommandEmpty,
|
|
4
4
|
e as CommandGroup,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-
|
|
1
|
+
import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-DSReCae7.js";
|
|
2
2
|
export {
|
|
3
3
|
l as ActionsCellRenderer,
|
|
4
4
|
r as BalanceCellRenderer,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { H as r, a as d, b as H, c as s, d as n, e as t, f as i, g as o } from "../../_chunks/header-
|
|
1
|
+
import { H as r, a as d, b as H, c as s, d as n, e as t, f as i, g as o } from "../../_chunks/header-CkMb1TZS.js";
|
|
2
2
|
export {
|
|
3
3
|
r as Header,
|
|
4
4
|
d as HeaderBrand,
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
1
|
+
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as A, useRef as p, useImperativeHandle as C, useCallback as x, useMemo as I } from "react";
|
|
3
3
|
import { c as N } from "../../_chunks/index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as E } from "react-i18next";
|
|
5
|
-
import { I as o } from "../../_chunks/icon-button-
|
|
6
|
-
import { I as
|
|
5
|
+
import { I as o } from "../../_chunks/icon-button-BRHSSFmZ.js";
|
|
6
|
+
import { I as M } from "../../_chunks/icon-button-group-DeV3FpNY.js";
|
|
7
7
|
import { D as r } from "../../_chunks/dropdown-menu-DZxwF23X.js";
|
|
8
|
-
import { S as
|
|
9
|
-
import { c as v, a as _, L as H } from "../../_chunks/locale-picker-
|
|
8
|
+
import { S as R } from "../../_chunks/switch-D916VW86.js";
|
|
9
|
+
import { c as v, a as _, L as H } from "../../_chunks/locale-picker-BHxbTNmR.js";
|
|
10
10
|
import { u as O } from "../../_chunks/use-locale-BkCIHujH.js";
|
|
11
|
-
import { u as P } from "../../_chunks/use-theme-
|
|
11
|
+
import { u as P } from "../../_chunks/use-theme-C2dHKUAN.js";
|
|
12
12
|
import { u as j } from "../../_chunks/registry-C9nwlNyL.js";
|
|
13
13
|
import { S as K } from "../../_chunks/settings-ca2Yi9R8.js";
|
|
14
|
-
import { S as D, M as z
|
|
14
|
+
import { S as D, M as z } from "../../_chunks/sun-BuXE0xUS.js";
|
|
15
|
+
import { M as V } from "../../_chunks/monitor-D-SFdbrU.js";
|
|
15
16
|
const B = {
|
|
16
17
|
id: "header-settings",
|
|
17
18
|
capabilities: ["view_change"],
|
|
@@ -117,7 +118,7 @@ const F = N("ds:inline-flex ds:items-center", {
|
|
|
117
118
|
"data-component-id": m,
|
|
118
119
|
className: F({ align: g, className: w }),
|
|
119
120
|
...L,
|
|
120
|
-
children: /* @__PURE__ */
|
|
121
|
+
children: /* @__PURE__ */ l(r.Root, { children: [
|
|
121
122
|
/* @__PURE__ */ e(r.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
|
|
122
123
|
o,
|
|
123
124
|
{
|
|
@@ -127,15 +128,15 @@ const F = N("ds:inline-flex ds:items-center", {
|
|
|
127
128
|
"aria-label": s("navigation.headerSettings.trigger")
|
|
128
129
|
}
|
|
129
130
|
) }),
|
|
130
|
-
/* @__PURE__ */ e(r.Portal, { children: /* @__PURE__ */
|
|
131
|
+
/* @__PURE__ */ e(r.Portal, { children: /* @__PURE__ */ l(
|
|
131
132
|
r.Content,
|
|
132
133
|
{
|
|
133
134
|
align: g,
|
|
134
135
|
sideOffset: 8,
|
|
135
136
|
className: U,
|
|
136
137
|
onKeyDownCapture: (a) => {
|
|
137
|
-
const
|
|
138
|
-
(
|
|
138
|
+
const d = a.target;
|
|
139
|
+
(d == null ? void 0 : d.tagName) === "INPUT" && // Always allow Escape so the menu can close.
|
|
139
140
|
a.key !== "Escape" && a.stopPropagation();
|
|
140
141
|
},
|
|
141
142
|
children: [
|
|
@@ -155,7 +156,7 @@ const F = N("ds:inline-flex ds:items-center", {
|
|
|
155
156
|
// flex container we make this div into.
|
|
156
157
|
"ds:flex ds:[&>*]:flex-1"
|
|
157
158
|
].join(" "),
|
|
158
|
-
children: /* @__PURE__ */ e(_, { variant: "compact" })
|
|
159
|
+
children: /* @__PURE__ */ e(_, { variant: "compact", popoverSide: "end" })
|
|
159
160
|
}
|
|
160
161
|
),
|
|
161
162
|
/* @__PURE__ */ e(r.Separator, {}),
|
|
@@ -166,8 +167,8 @@ const F = N("ds:inline-flex ds:items-center", {
|
|
|
166
167
|
role: "group",
|
|
167
168
|
"aria-label": s("navigation.headerSettings.appearance.label"),
|
|
168
169
|
className: "ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-xs)]",
|
|
169
|
-
children: /* @__PURE__ */
|
|
170
|
-
|
|
170
|
+
children: /* @__PURE__ */ l(
|
|
171
|
+
M,
|
|
171
172
|
{
|
|
172
173
|
role: "radiogroup",
|
|
173
174
|
mode: "toggle-single",
|
|
@@ -217,7 +218,7 @@ const F = N("ds:inline-flex ds:items-center", {
|
|
|
217
218
|
),
|
|
218
219
|
className: "ds:px-[var(--spacing-sm)] ds:py-[var(--spacing-sm)]",
|
|
219
220
|
children: /* @__PURE__ */ e(
|
|
220
|
-
|
|
221
|
+
R,
|
|
221
222
|
{
|
|
222
223
|
label: s("navigation.headerSettings.appearance.accessible"),
|
|
223
224
|
labelSide: "start",
|
|
@@ -65,12 +65,12 @@ export * from './header';
|
|
|
65
65
|
export * from './navigation-menu';
|
|
66
66
|
export * from './link';
|
|
67
67
|
export * from './pagination';
|
|
68
|
+
export * from './public-footer';
|
|
68
69
|
export * from './public-header';
|
|
69
70
|
export * from './search-bar';
|
|
70
71
|
export * from './sidebar';
|
|
71
72
|
export * from './skip-link';
|
|
72
73
|
export * from './stepper-accordion';
|
|
73
|
-
export * from './stepper-calendar';
|
|
74
74
|
export * from './stepper-progress';
|
|
75
75
|
export * from './tabs';
|
|
76
76
|
export * from './theme-toggle';
|
|
@@ -115,9 +115,12 @@ export * from './streaming-text';
|
|
|
115
115
|
export * from './suggestion-chip';
|
|
116
116
|
export * from './transcript-panel';
|
|
117
117
|
export * from './typing-indicator';
|
|
118
|
+
export * from './booking';
|
|
118
119
|
export * from './calendar';
|
|
120
|
+
export * from './patient-search';
|
|
119
121
|
export * from './payment-form';
|
|
120
122
|
export * from './pdf-viewer';
|
|
123
|
+
export * from './reviews-panel';
|
|
121
124
|
export * from './rich-text-editor';
|
|
122
125
|
export * from './signature-capture';
|
|
123
126
|
export * from './slot-grid';
|
|
@@ -23,6 +23,13 @@ export interface LinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
|
23
23
|
* trailing `ExternalLink` icon with an i18n'd aria-label.
|
|
24
24
|
*/
|
|
25
25
|
external?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Render the trailing external-link glyph. Default `true` — set to
|
|
28
|
+
* `false` for surfaces (footer, social rows, dense nav) where the
|
|
29
|
+
* indicator adds visual noise. The `target` / `rel` / "opens in new
|
|
30
|
+
* tab" aria-label are still applied.
|
|
31
|
+
*/
|
|
32
|
+
externalIcon?: boolean;
|
|
26
33
|
/**
|
|
27
34
|
* Render the link in a non-interactive disabled state. Strips `href`,
|
|
28
35
|
* adds `aria-disabled` + `role="link"`, suppresses the underline.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { PatientSearch } from './patient-search';
|
|
2
|
+
export type { PatientSearchProps, PatientSearchHandle, PatientSearchVariant, PatientSearchObject, PatientSearchPlace, DiscoveryCard, FacetGroup, FacetOption, SearchValue, WhenFilter, } from './patient-search';
|
|
3
|
+
export { patientSearchAgent } from './patient-search.agent';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
export type PatientSearchVariant = 'who-where' | 'who-where-when' | 'faceted' | 'discovery';
|
|
4
|
+
export type WhenFilter = 'today' | 'tomorrow' | 'this_week' | 'anytime';
|
|
5
|
+
/** Result from `loadObjects` — a profession, specialty, operator, or practice. */
|
|
6
|
+
export interface PatientSearchObject {
|
|
7
|
+
/** Stable opaque key, e.g. `"profession:dentista"` or `"operator:mario-rossi-9001"`. */
|
|
8
|
+
value: string;
|
|
9
|
+
label: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
/** Opaque consumer payload — used in `onObjectSelect` to route. */
|
|
12
|
+
__payload?: unknown;
|
|
13
|
+
}
|
|
14
|
+
/** Result from `loadPlaces` — a Google-Places-style place prediction. */
|
|
15
|
+
export interface PatientSearchPlace {
|
|
16
|
+
/** Place ID or stable text. */
|
|
17
|
+
value: string;
|
|
18
|
+
/** Display label, e.g. `"Milano, Italia"`. */
|
|
19
|
+
label: string;
|
|
20
|
+
lat?: number;
|
|
21
|
+
lng?: number;
|
|
22
|
+
}
|
|
23
|
+
/** Curated card for the `discovery` variant. */
|
|
24
|
+
export interface DiscoveryCard {
|
|
25
|
+
id: string;
|
|
26
|
+
label: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
href: string;
|
|
29
|
+
icon?: ReactNode;
|
|
30
|
+
/**
|
|
31
|
+
* Accent token. `auto` rotates through the brand palette by row index.
|
|
32
|
+
* Defaults to `auto`.
|
|
33
|
+
*/
|
|
34
|
+
accent?: 'violet' | 'purple' | 'magenta' | 'blue' | 'auto';
|
|
35
|
+
badge?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface FacetOption {
|
|
38
|
+
value: string;
|
|
39
|
+
label: string;
|
|
40
|
+
}
|
|
41
|
+
export interface FacetGroup {
|
|
42
|
+
/** Stable key — e.g. `"insurance"`, `"language"`. */
|
|
43
|
+
key: string;
|
|
44
|
+
/** Display label, e.g. `"Convenzione"`. */
|
|
45
|
+
label: string;
|
|
46
|
+
/** Empty array = boolean toggle chip. Non-empty = dropdown chip. */
|
|
47
|
+
options: FacetOption[];
|
|
48
|
+
/** Whether multiple options can be selected. Default false. */
|
|
49
|
+
multi?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface SearchValue {
|
|
52
|
+
object?: PatientSearchObject;
|
|
53
|
+
place?: PatientSearchPlace;
|
|
54
|
+
when?: WhenFilter;
|
|
55
|
+
facets?: Record<string, string[]>;
|
|
56
|
+
geo?: {
|
|
57
|
+
lat: number;
|
|
58
|
+
lng: number;
|
|
59
|
+
radiusKm: number;
|
|
60
|
+
label?: string;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** Curated imperative handle — used by the agent adapter. */
|
|
64
|
+
export interface PatientSearchHandle {
|
|
65
|
+
getVariant: () => PatientSearchVariant;
|
|
66
|
+
reset: () => void;
|
|
67
|
+
/** Move focus to the most-relevant field for the current variant. */
|
|
68
|
+
focusPrimary: () => void;
|
|
69
|
+
}
|
|
70
|
+
declare const rootVariants: (props?: ({
|
|
71
|
+
variant?: "who-where" | "who-where-when" | "faceted" | "discovery" | null | undefined;
|
|
72
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
73
|
+
export interface PatientSearchProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'onChange' | 'onSubmit'>, VariantProps<typeof rootVariants> {
|
|
74
|
+
variant: PatientSearchVariant;
|
|
75
|
+
loadObjects: (query: string, ctx: {
|
|
76
|
+
signal: AbortSignal;
|
|
77
|
+
}) => Promise<PatientSearchObject[]>;
|
|
78
|
+
loadPlaces: (query: string, ctx: {
|
|
79
|
+
signal: AbortSignal;
|
|
80
|
+
}) => Promise<PatientSearchPlace[]>;
|
|
81
|
+
onObjectSelect?: (option: PatientSearchObject) => void;
|
|
82
|
+
onPlaceSelect?: (place: PatientSearchPlace) => void;
|
|
83
|
+
facets?: FacetGroup[];
|
|
84
|
+
/** Default radius in km when geolocation is granted. Snaps to the nearest preset. */
|
|
85
|
+
defaultRadiusKm?: number;
|
|
86
|
+
/** Reverse-geocode lat/lng → human label. Optional. */
|
|
87
|
+
reverseGeocode?: (lat: number, lng: number) => Promise<string>;
|
|
88
|
+
discoveryCards?: DiscoveryCard[];
|
|
89
|
+
/** Forwarded to the consumer's loaders if they want to constrain by country. */
|
|
90
|
+
countryCode?: 'it' | 'de' | string;
|
|
91
|
+
value: SearchValue;
|
|
92
|
+
onChange: (next: SearchValue) => void;
|
|
93
|
+
onSubmit: (value: SearchValue) => void | Promise<void>;
|
|
94
|
+
submitting?: boolean;
|
|
95
|
+
/** Custom CTA label override; defaults to `ui.patientSearch.submit.cta`. */
|
|
96
|
+
submitLabel?: string;
|
|
97
|
+
'aria-label'?: string;
|
|
98
|
+
/** Agent-readiness instance id. */
|
|
99
|
+
id?: string;
|
|
100
|
+
}
|
|
101
|
+
export declare const PatientSearch: import("react").ForwardRefExoticComponent<PatientSearchProps & import("react").RefAttributes<PatientSearchHandle>>;
|
|
102
|
+
export {};
|
|
103
|
+
//# sourceMappingURL=patient-search.d.ts.map
|
|
@@ -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-Ds3rxvad.js";
|
|
2
2
|
export {
|
|
3
3
|
r as PaymentForm,
|
|
4
4
|
s as formatPaymentAmount,
|