@alfadocs/ui-kit 1.80.0 → 1.82.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-GnoSkvh6.js → address-fields-CfnXK8RT.js} +4 -4
- package/dist/_chunks/{ai-prompt-input-M6u29f87.js → ai-prompt-input-DH_rnV-F.js} +33 -26
- package/dist/_chunks/{anamnesis-summary-rows-lONg-zja.js → anamnesis-summary-rows-6gMuu0ZK.js} +2 -2
- package/dist/_chunks/{autocomplete-DosDnGie.js → autocomplete-CnB1mHGc.js} +65 -64
- package/dist/_chunks/{balance-badge-cell-Dzd-Z_5W.js → balance-badge-cell-BHXJS8Ga.js} +2 -2
- package/dist/_chunks/{benefit-card-BWBClvdF.js → benefit-card-BcPtRHgM.js} +37 -36
- package/dist/_chunks/booking-dsgiuhKg.js +4304 -0
- package/dist/_chunks/{calendar-appointment-editor-dialog-DhTTWgXw.js → calendar-appointment-editor-dialog-BuumJbcv.js} +4 -4
- package/dist/_chunks/{city-input-3J3bz9EO.js → city-input-CJVGswxp.js} +2 -2
- package/dist/_chunks/{combobox-vF9O-QoG.js → combobox-CDPm_n0p.js} +93 -92
- package/dist/_chunks/{command-palette-D9TBzmOG.js → command-palette-B3dVqm9D.js} +68 -68
- package/dist/_chunks/{contact-profile-card-DKk94l-d.js → contact-profile-card-Da1vmJQI.js} +115 -102
- package/dist/_chunks/{country-select-CSE2Zm_s.js → country-select-DQ8q7ypA.js} +2 -2
- package/dist/_chunks/{face-scheme-BIPJqw9f.js → face-scheme-BgJGFDTa.js} +2 -2
- package/dist/_chunks/{header-settings-BYpVmLip.js → header-settings-CifwJEKB.js} +2 -2
- package/dist/_chunks/{link-cell-renderer-B0riA_h_.js → link-cell-renderer-C0ynDik7.js} +3 -3
- package/dist/_chunks/{locale-picker-DzdGDSBI.js → locale-picker-QbT1p60X.js} +39 -38
- package/dist/_chunks/{map-view-C6MIVaqn.js → map-view-Bvi06RVh.js} +2 -2
- package/dist/_chunks/{marketplace-app-shell-mS7Q2-81.js → marketplace-app-shell-vON3WhD0.js} +2 -2
- package/dist/_chunks/{multi-select-BOad3za9.js → multi-select-i5MFRpXg.js} +194 -187
- package/dist/_chunks/{otp-input-BgEZi0py.js → otp-input-gV1446Dw.js} +70 -70
- package/dist/_chunks/{patient-details-B-I9Xkh9.js → patient-details-D0P5eog5.js} +2 -2
- package/dist/_chunks/{patient-field-row-Bn0z6lAZ.js → patient-field-row-R73dZJY6.js} +5 -5
- package/dist/_chunks/{patient-search-CxqNcth4.js → patient-search-Dy0sxcwv.js} +2 -2
- package/dist/_chunks/{patient-summary-card-bhDo0gVX.js → patient-summary-card-6U74-ivO.js} +2 -2
- package/dist/_chunks/{payment-automation-upsell-AQpHOS1X.js → payment-automation-upsell-D1YdO1xY.js} +2 -2
- package/dist/_chunks/{phone-input-C3NrD-nl.js → phone-input-DJ4BN8tG.js} +70 -63
- package/dist/_chunks/{practice-results-CtOanuzZ.js → practice-results-B61krlwu.js} +2 -2
- package/dist/_chunks/{province-select-CDjs5obD.js → province-select-CPdTwEob.js} +2 -2
- package/dist/_chunks/{registration-form-CNBfUduG.js → registration-form-DmP3YUfp.js} +3 -3
- package/dist/_chunks/{send-registration-link-form-vTn1HxjA.js → send-registration-link-form-CZYOO7NO.js} +2 -2
- package/dist/_chunks/{task-editor-Cpw-NmND.js → task-editor-BOETWbjU.js} +2 -2
- package/dist/_chunks/{use-appointment-details-read-lFUL4kkd.js → use-appointment-details-read-CWN-nJCZ.js} +2 -2
- package/dist/agent-catalog.json +4 -4
- package/dist/agent-i18n/en.json +1 -1
- package/dist/components/address-fields/index.js +1 -1
- package/dist/components/ai-prompt-input/index.js +1 -1
- package/dist/components/appointment-details-panel/index.js +1 -1
- package/dist/components/autocomplete/index.js +1 -1
- package/dist/components/benefit-card/benefit-card.d.ts +7 -1
- package/dist/components/benefit-card/index.js +1 -1
- package/dist/components/booking/booking-types.d.ts +35 -2
- package/dist/components/booking/code-step.d.ts +4 -2
- package/dist/components/booking/details-form.d.ts +2 -0
- package/dist/components/booking/handover.d.ts +12 -0
- package/dist/components/booking/index.js +1 -1
- package/dist/components/booking/reserved.d.ts +24 -0
- package/dist/components/booking/use-booking-payment.d.ts +3 -1
- package/dist/components/city-input/index.js +1 -1
- package/dist/components/combobox/index.js +1 -1
- package/dist/components/command-palette/index.js +1 -1
- package/dist/components/contact-profile-card/contact-profile-card.d.ts +4 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/country-select/index.js +1 -1
- package/dist/components/data-table/index.js +1 -1
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/locale-picker/index.js +1 -1
- package/dist/components/map-view/index.js +1 -1
- package/dist/components/multi-select/index.js +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/otp-input/otp-input.d.ts +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/phone-input/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/province-select/index.js +1 -1
- package/dist/components/task-editor/index.js +1 -1
- package/dist/i18n/locales/ar.d.ts +8 -0
- package/dist/i18n/locales/ar.js +8 -0
- package/dist/i18n/locales/de.d.ts +8 -0
- package/dist/i18n/locales/de.js +8 -0
- package/dist/i18n/locales/el.d.ts +8 -0
- package/dist/i18n/locales/el.js +8 -0
- package/dist/i18n/locales/en.d.ts +8 -0
- package/dist/i18n/locales/en.js +8 -0
- package/dist/i18n/locales/es.d.ts +8 -0
- package/dist/i18n/locales/es.js +8 -0
- package/dist/i18n/locales/fr.d.ts +8 -0
- package/dist/i18n/locales/fr.js +8 -0
- package/dist/i18n/locales/hi.d.ts +8 -0
- package/dist/i18n/locales/hi.js +8 -0
- package/dist/i18n/locales/it.d.ts +8 -0
- package/dist/i18n/locales/it.js +8 -0
- package/dist/i18n/locales/ja.d.ts +8 -0
- package/dist/i18n/locales/ja.js +8 -0
- package/dist/i18n/locales/nl.d.ts +8 -0
- package/dist/i18n/locales/nl.js +8 -0
- package/dist/i18n/locales/pl.d.ts +8 -0
- package/dist/i18n/locales/pl.js +8 -0
- package/dist/i18n/locales/pt.d.ts +8 -0
- package/dist/i18n/locales/pt.js +8 -0
- package/dist/i18n/locales/ro.d.ts +8 -0
- package/dist/i18n/locales/ro.js +8 -0
- package/dist/i18n/locales/ru.d.ts +8 -0
- package/dist/i18n/locales/ru.js +8 -0
- package/dist/i18n/locales/sq.d.ts +8 -0
- package/dist/i18n/locales/sq.js +8 -0
- package/dist/i18n/locales/sv.d.ts +8 -0
- package/dist/i18n/locales/sv.js +8 -0
- package/dist/i18n/locales/tr.d.ts +8 -0
- package/dist/i18n/locales/tr.js +8 -0
- package/dist/i18n/locales/zh.d.ts +8 -0
- package/dist/i18n/locales/zh.js +8 -0
- package/dist/index.js +30 -30
- package/dist/locales/ar.json +8 -0
- package/dist/locales/de.json +8 -0
- package/dist/locales/el.json +8 -0
- package/dist/locales/en.json +8 -0
- package/dist/locales/es.json +8 -0
- package/dist/locales/fr.json +8 -0
- package/dist/locales/hi.json +8 -0
- package/dist/locales/it.json +8 -0
- package/dist/locales/ja.json +8 -0
- package/dist/locales/nl.json +8 -0
- package/dist/locales/pl.json +8 -0
- package/dist/locales/pt.json +8 -0
- package/dist/locales/ro.json +8 -0
- package/dist/locales/ru.json +8 -0
- package/dist/locales/sq.json +8 -0
- package/dist/locales/sv.json +8 -0
- package/dist/locales/tr.json +8 -0
- package/dist/locales/zh.json +8 -0
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/calendar/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/send-registration-link-form/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/booking-By4I_1A-.js +0 -4068
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as P } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as y, useMemo as g, useCallback as R, useRef as D, useEffect as _ } from "react";
|
|
3
3
|
import { useTranslation as k } from "react-i18next";
|
|
4
|
-
import { C as x } from "./combobox-
|
|
4
|
+
import { C as x } from "./combobox-CDPm_n0p.js";
|
|
5
5
|
import { n as t } from "./normalize-diacritics-BNGbFNlJ.js";
|
|
6
6
|
import { u as K } from "./use-controllable-state-BiY4xTzM.js";
|
|
7
7
|
import { u as j } from "./registry-DvAUVLHh.js";
|
|
@@ -271,4 +271,4 @@ export {
|
|
|
271
271
|
Z as P,
|
|
272
272
|
H as p
|
|
273
273
|
};
|
|
274
|
-
//# sourceMappingURL=province-select-
|
|
274
|
+
//# sourceMappingURL=province-select-CPdTwEob.js.map
|
|
@@ -14,7 +14,7 @@ import { F as W } from "./form-field-CyHfOVKF.js";
|
|
|
14
14
|
import { L as qr } from "./list-CNnn7DOD.js";
|
|
15
15
|
import { P as Tr } from "./password-input-BokZ_rnT.js";
|
|
16
16
|
import { u as Rn } from "./use-password-requirements-C8DdwPEy.js";
|
|
17
|
-
import { P as Ln } from "./phone-input-
|
|
17
|
+
import { P as Ln } from "./phone-input-DJ4BN8tG.js";
|
|
18
18
|
import { R as An } from "./recaptcha-widget-iglUBIF3.js";
|
|
19
19
|
import { S as Pn } from "./select-4S-eYZUf.js";
|
|
20
20
|
import { S as Dr } from "./state-backed-text-input-Cgh4ms3p.js";
|
|
@@ -24,7 +24,7 @@ import { a as Vr, i as qn } from "./safe-href-5dbsfbQn.js";
|
|
|
24
24
|
import { u as Or } from "./use-field-match-C8ug3sdQ.js";
|
|
25
25
|
import { B as Tn } from "./brand-mark-DLk9kD8g.js";
|
|
26
26
|
import { u as Dn, b as Bn, a as On } from "./use-registration-submit-CLGHxwoT.js";
|
|
27
|
-
import { O as Mn } from "./otp-input-
|
|
27
|
+
import { O as Mn } from "./otp-input-gV1446Dw.js";
|
|
28
28
|
import { C as _n } from "./circle-check-BN6rz4NV.js";
|
|
29
29
|
import { P as en } from "./pencil-B1sKKyuT.js";
|
|
30
30
|
import { L as jn } from "./log-in-OQUEoGhX.js";
|
|
@@ -1334,4 +1334,4 @@ export {
|
|
|
1334
1334
|
Gr as R,
|
|
1335
1335
|
cs as a
|
|
1336
1336
|
};
|
|
1337
|
-
//# sourceMappingURL=registration-form-
|
|
1337
|
+
//# sourceMappingURL=registration-form-DmP3YUfp.js.map
|
|
@@ -10,7 +10,7 @@ import { C as B } from "./card-BA4Ig_kn.js";
|
|
|
10
10
|
import { D as Ze } from "./date-picker-CdhXlgVI.js";
|
|
11
11
|
import { E as Ve } from "./error-summary-mGxIyDAY.js";
|
|
12
12
|
import { F } from "./form-field-CyHfOVKF.js";
|
|
13
|
-
import { P as ue } from "./phone-input-
|
|
13
|
+
import { P as ue } from "./phone-input-DJ4BN8tG.js";
|
|
14
14
|
import { a as en, i as nn } from "./safe-href-5dbsfbQn.js";
|
|
15
15
|
import { u as ge } from "./use-state-backed-input-DhRQo6gM.js";
|
|
16
16
|
import { u as Ce } from "./use-field-match-C8ug3sdQ.js";
|
|
@@ -406,4 +406,4 @@ export {
|
|
|
406
406
|
q as S,
|
|
407
407
|
fn as a
|
|
408
408
|
};
|
|
409
|
-
//# sourceMappingURL=send-registration-link-form-
|
|
409
|
+
//# sourceMappingURL=send-registration-link-form-CZYOO7NO.js.map
|
|
@@ -5,7 +5,7 @@ import { useTranslation as gt } from "react-i18next";
|
|
|
5
5
|
import { A as M } from "./alert-9kEwDza3.js";
|
|
6
6
|
import { B as Me } from "./button-DohK_Ak_.js";
|
|
7
7
|
import { I as We } from "./icon-button-S8_weU3g.js";
|
|
8
|
-
import { C as Qe } from "./combobox-
|
|
8
|
+
import { C as Qe } from "./combobox-CDPm_n0p.js";
|
|
9
9
|
import { D as ce } from "./dialog-C7RWaH08.js";
|
|
10
10
|
import { D as Bt } from "./date-picker-CdhXlgVI.js";
|
|
11
11
|
import { F as H } from "./form-field-CyHfOVKF.js";
|
|
@@ -1239,4 +1239,4 @@ export {
|
|
|
1239
1239
|
vn as T,
|
|
1240
1240
|
ln as t
|
|
1241
1241
|
};
|
|
1242
|
-
//# sourceMappingURL=task-editor-
|
|
1242
|
+
//# sourceMappingURL=task-editor-BOETWbjU.js.map
|
|
@@ -16,7 +16,7 @@ import { E as zt } from "./editable-description-KU56SP4P.js";
|
|
|
16
16
|
import { N as Xe } from "./note-timeline-KzL52MmB.js";
|
|
17
17
|
import { P as Ot } from "./panel-header-CbtlTe85.js";
|
|
18
18
|
import { P as Ge } from "./panel-subview-DCyvn-49.js";
|
|
19
|
-
import { P as _t } from "./patient-summary-card-
|
|
19
|
+
import { P as _t } from "./patient-summary-card-6U74-ivO.js";
|
|
20
20
|
import { S as ne } from "./section-card-D5nWiTcK.js";
|
|
21
21
|
import { C as nn, S as ue } from "./skeleton-tTWJpvAq.js";
|
|
22
22
|
import { T as an } from "./text-area-COMVJ1yE.js";
|
|
@@ -2195,4 +2195,4 @@ export {
|
|
|
2195
2195
|
Kn as s,
|
|
2196
2196
|
_s as u
|
|
2197
2197
|
};
|
|
2198
|
-
//# sourceMappingURL=use-appointment-details-read-
|
|
2198
|
+
//# sourceMappingURL=use-appointment-details-read-CWN-nJCZ.js.map
|
package/dist/agent-catalog.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"packageVersion": "1.
|
|
3
|
+
"packageVersion": "1.82.0",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"kind": "component",
|
|
@@ -1449,7 +1449,7 @@
|
|
|
1449
1449
|
{
|
|
1450
1450
|
"name": "currentStep",
|
|
1451
1451
|
"type": "number",
|
|
1452
|
-
"description": "The step the flow is on: 1 insurance, 2 specialty, 3 service, 4 provider, 5 date, 6 time, 7 patient details, payment or optional SMS code verification, 8 confirmation after all required steps succeed. Read this back after `goto_step` to see where the clamp landed.",
|
|
1452
|
+
"description": "The step the flow is on: 1 insurance, 2 specialty, 3 service, 4 provider, 5 date, 6 time, 7 patient details, payment or optional SMS code verification, 8 confirmation after all required steps succeed, including the \"Time reserved\" view that opens a host address after a short delay. Read this back after `goto_step` to see where the clamp landed.",
|
|
1453
1453
|
"descriptionKey": "ui.agent.booking.state.currentStep"
|
|
1454
1454
|
}
|
|
1455
1455
|
],
|
|
@@ -1460,7 +1460,7 @@
|
|
|
1460
1460
|
"idempotent": true,
|
|
1461
1461
|
"errors": [
|
|
1462
1462
|
"Refused while a payment session is open (step 7): the consumer must cancel the hold first.",
|
|
1463
|
-
"Refused while SMS code verification is pending (step 7): the submitted booking remains active. The host owns cancellation."
|
|
1463
|
+
"Refused while SMS code verification is pending (step 7): the locked form and code box stay, and the submitted booking remains active. The host owns cancellation."
|
|
1464
1464
|
],
|
|
1465
1465
|
"description": "Clear the booking value back to an empty state. Use to abandon an in-progress flow.",
|
|
1466
1466
|
"descriptionKey": "ui.agent.booking.actions.reset"
|
|
@@ -1512,7 +1512,7 @@
|
|
|
1512
1512
|
"root": {
|
|
1513
1513
|
"attr": "data-component",
|
|
1514
1514
|
"value": "booking",
|
|
1515
|
-
"description": "Marks the Booking root region. The host prop hideEmail (boolean, default false) hides the email field, skips its validation and omits email from submission. The host prop emailOptional (boolean, default false) keeps email visible and optional unless used for confirmation. Email is marked and validated as required when selected in the channel picker or singleConfirmationChannel radio, or when the effective confirmation channel is email. With a hidden picker, the form and success screen use the sole enabled channel, or email when multiple channels are enabled. This includes payment and blocked-payment flows, which omit stored selections from submission. Omitting confirmationChannels also defaults to email. Selecting SMS without email makes the field optional again. The optional/required marker updates visually when the channel changes, with no announcement of that change. Validation updates immediately using the existing email error. With emailOptional, surrounding spaces are trimmed before validation, even when email is required for confirmation. Optional blank values are omitted from submission; filled values are sent trimmed. hideEmail takes precedence over emailOptional. Neither prop changes confirmation channels; pair with confirmationChannels [\"sms\"] for SMS-only confirmation with no channel picker. The optional codeStep prop adds SMS verification after submission and payment; the step remains 7 until verification succeeds
|
|
1515
|
+
"description": "Marks the Booking root region. The host prop hideEmail (boolean, default false) hides the email field, skips its validation and omits email from submission. The host prop emailOptional (boolean, default false) keeps email visible and optional unless used for confirmation. Email is marked and validated as required when selected in the channel picker or singleConfirmationChannel radio, or when the effective confirmation channel is email. With a hidden picker, the form and success screen use the sole enabled channel, or email when multiple channels are enabled. This includes payment and blocked-payment flows, which omit stored selections from submission. Omitting confirmationChannels also defaults to email. Selecting SMS without email makes the field optional again. The optional/required marker updates visually when the channel changes, with no announcement of that change. Validation updates immediately using the existing email error. With emailOptional, surrounding spaces are trimmed before validation, even when email is required for confirmation. Optional blank values are omitted from submission; filled values are sent trimmed. hideEmail takes precedence over emailOptional. Neither prop changes confirmation channels; pair with confirmationChannels [\"sms\"] for SMS-only confirmation with no channel picker. The optional codeStep prop adds SMS verification after submission and before any payment: the submitted form stays in place but locked (controls disabled, text still readable, not hidden), the code box opens below it, and a Change button, for the patient only (no agent action unlocks it), unlocks the form for a new booking request (the host keeps the earlier request until it expires; the kit cannot cancel it). With payment, a correct code opens the payment stage, and the step remains 7 until payment succeeds; without payment it remains 7 until verification succeeds. It then becomes 8. Patient contact details and verification codes are never exposed through this adapter."
|
|
1516
1516
|
},
|
|
1517
1517
|
"instanceId": {
|
|
1518
1518
|
"attr": "data-component-id",
|
package/dist/agent-i18n/en.json
CHANGED
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"booking": {
|
|
154
154
|
"state": {
|
|
155
155
|
"variant": "Active variant — one of `inline-list`, `accordion`, `calendar`, `flexible`, `progress`.",
|
|
156
|
-
"currentStep": "The step the flow is on: 1 insurance, 2 specialty, 3 service, 4 provider, 5 date, 6 time, 7 patient details, payment or optional SMS code verification, 8 confirmation after all required steps succeed. Read this back after `goto_step` to see where the clamp landed."
|
|
156
|
+
"currentStep": "The step the flow is on: 1 insurance, 2 specialty, 3 service, 4 provider, 5 date, 6 time, 7 patient details, payment or optional SMS code verification, 8 confirmation after all required steps succeed, including the \"Time reserved\" view that opens a host address after a short delay. Read this back after `goto_step` to see where the clamp landed."
|
|
157
157
|
},
|
|
158
158
|
"actions": {
|
|
159
159
|
"reset": "Clear the booking value back to an empty state. Use to abandon an in-progress flow.",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-
|
|
1
|
+
import { A as e, a as n, p, u as s } from "../../_chunks/use-appointment-details-read-CWN-nJCZ.js";
|
|
2
2
|
export {
|
|
3
3
|
e as AppointmentDetailsPanel,
|
|
4
4
|
n as appointmentDetailsPanelAgent,
|
|
@@ -8,8 +8,14 @@ export interface BenefitCardProps extends Omit<HTMLAttributes<HTMLElement>, 'tit
|
|
|
8
8
|
step?: number;
|
|
9
9
|
/** Icon node — usually an `<svg>` 24-32px. Rendered inside a tinted square chip. */
|
|
10
10
|
icon?: ReactNode;
|
|
11
|
-
/** Card heading
|
|
11
|
+
/** Card heading, rendered as a heading element. Pass only inline / phrasing content. */
|
|
12
12
|
title: ReactNode;
|
|
13
|
+
/**
|
|
14
|
+
* Level of the title heading, `3` by default. Set it to one below the
|
|
15
|
+
* section heading the cards sit under: `2` when the page's `h1` is the
|
|
16
|
+
* only heading above them.
|
|
17
|
+
*/
|
|
18
|
+
headingLevel?: 2 | 3 | 4 | 5 | 6;
|
|
13
19
|
/** Optional CTA — usually a `<Button intent="link">` or kit `<Link>`. Rendered at the block-end. */
|
|
14
20
|
cta?: ReactNode;
|
|
15
21
|
/** Surface treatment. */
|
|
@@ -39,7 +39,16 @@ export interface BookingSubmitResult {
|
|
|
39
39
|
}
|
|
40
40
|
export type BookingPaymentState = {
|
|
41
41
|
sessionId: string;
|
|
42
|
-
status: 'ready' | 'cancelled'
|
|
42
|
+
status: 'ready' | 'cancelled';
|
|
43
|
+
} | {
|
|
44
|
+
sessionId: string;
|
|
45
|
+
status: 'paid';
|
|
46
|
+
/**
|
|
47
|
+
* An http(s) address to open after payment. Booking then shows
|
|
48
|
+
* "Time reserved" and opens it (see `handoverDelayMs`). Without it the
|
|
49
|
+
* paid receipt shows as before.
|
|
50
|
+
*/
|
|
51
|
+
redirectUrl?: string;
|
|
43
52
|
} | {
|
|
44
53
|
sessionId: string;
|
|
45
54
|
status: 'processing';
|
|
@@ -282,13 +291,26 @@ export interface BookingHandle {
|
|
|
282
291
|
*/
|
|
283
292
|
goToStep: (step: 1 | 2 | 3 | 4 | 5 | 6 | 7) => void;
|
|
284
293
|
}
|
|
285
|
-
/**
|
|
294
|
+
/**
|
|
295
|
+
* Opt into SMS verification after submission and before any required payment.
|
|
296
|
+
* The submitted form stays in place, locked, with the code box below it. A
|
|
297
|
+
* "Change" button unlocks the form; the next submit calls `onSubmit` again as
|
|
298
|
+
* a new booking request. The host's earlier request stays held on the
|
|
299
|
+
* platform until it expires: the kit cannot cancel it. With a payment, a
|
|
300
|
+
* correct code opens the payment stage; the code is never asked after paying.
|
|
301
|
+
*/
|
|
286
302
|
export interface BookingCodeStep {
|
|
287
303
|
/** Number of characters, default 5. OTPInput clamps this to 3–10. */
|
|
288
304
|
length?: number;
|
|
289
305
|
/** Resolve ok only after the host has verified the code and confirmed the booking. */
|
|
290
306
|
onVerify: (code: string) => Promise<{
|
|
291
307
|
ok: true;
|
|
308
|
+
/**
|
|
309
|
+
* An http(s) address to open after the code. Booking then shows
|
|
310
|
+
* "Time reserved" and opens it (see `handoverDelayMs`). Ignored when
|
|
311
|
+
* a payment follows. Without it the confirmation view shows as before.
|
|
312
|
+
*/
|
|
313
|
+
redirectUrl?: string;
|
|
292
314
|
} | {
|
|
293
315
|
ok: false;
|
|
294
316
|
reason: 'wrong' | 'expired' | 'too-many-attempts';
|
|
@@ -371,6 +393,17 @@ export interface BookingProps extends Omit<ComponentPropsWithoutRef<'div'>, 'ari
|
|
|
371
393
|
* @default 'highlighted'
|
|
372
394
|
*/
|
|
373
395
|
paymentNoticeStyle?: 'plain' | 'highlighted';
|
|
396
|
+
/**
|
|
397
|
+
* Wait before opening a `redirectUrl`, in milliseconds. Not under
|
|
398
|
+
* motion: the redirect happens after this delay with reduced motion too.
|
|
399
|
+
* @default 3000
|
|
400
|
+
*/
|
|
401
|
+
handoverDelayMs?: number;
|
|
402
|
+
/**
|
|
403
|
+
* Opens a `redirectUrl`. Defaults to `window.location.assign`. Pass one to
|
|
404
|
+
* route inside an app, or to stub navigation in tests and stories.
|
|
405
|
+
*/
|
|
406
|
+
onNavigate?: (url: string) => void;
|
|
374
407
|
/** Publish paid only after the server verifies payment AND saves the appointment. */
|
|
375
408
|
paymentState?: BookingPaymentState;
|
|
376
409
|
/** Render PaymentForm here. The consumer owns Stripe credentials and completion calls. */
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { BookingCodeStep } from './booking-types';
|
|
2
2
|
/** Submit-phase UI. The host owns code generation, validation and SMS delivery. */
|
|
3
|
-
export declare function BookingCodeVerification({ length, onVerify, onResend, resendSeconds, phoneHint, onVerified, }: BookingCodeStep & {
|
|
4
|
-
onVerified: () => void;
|
|
3
|
+
export declare function BookingCodeVerification({ length, onVerify, onResend, resendSeconds, phoneHint, onVerified, onBusyChange, }: BookingCodeStep & {
|
|
4
|
+
onVerified: (redirectUrl?: string) => void;
|
|
5
|
+
/** Reports a running verify or resend, so the host form can hold "Change". */
|
|
6
|
+
onBusyChange?: (busy: boolean) => void;
|
|
5
7
|
}): import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
//# sourceMappingURL=code-step.d.ts.map
|
|
@@ -62,6 +62,8 @@ export interface BookingDetailsFormProps {
|
|
|
62
62
|
* re-submit immediately.
|
|
63
63
|
*/
|
|
64
64
|
submitError?: ReactNode;
|
|
65
|
+
/** Read-only review while a code step is open: no alert, hint or submit button. */
|
|
66
|
+
locked?: boolean;
|
|
65
67
|
}
|
|
66
68
|
export declare const BookingDetailsForm: import("react").ForwardRefExoticComponent<BookingDetailsFormProps & import("react").RefAttributes<HTMLFormElement>>;
|
|
67
69
|
//# sourceMappingURL=details-form.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Wait before the "Time reserved" view opens the host's address. */
|
|
2
|
+
export declare const DEFAULT_HANDOVER_DELAY_MS = 3000;
|
|
3
|
+
/**
|
|
4
|
+
* The address to open after a verified booking, or undefined when it must
|
|
5
|
+
* not be used. Only a full http(s) address passes: a relative path,
|
|
6
|
+
* `javascript:`, `data:` or `mailto:` never does. The URL parser strips the
|
|
7
|
+
* whitespace and line breaks a browser would ignore, so they cannot hide a
|
|
8
|
+
* scheme.
|
|
9
|
+
*/
|
|
10
|
+
export declare function safeHandoverUrl(url: string | undefined): string | undefined;
|
|
11
|
+
export declare function resolveHandoverDelay(delayMs: number | undefined): number;
|
|
12
|
+
//# sourceMappingURL=handover.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
interface BookingReservedProps {
|
|
3
|
+
/** An address already checked with `safeHandoverUrl`. */
|
|
4
|
+
url: string;
|
|
5
|
+
delayMs: number;
|
|
6
|
+
/** Replaces `window.location.assign`. */
|
|
7
|
+
onNavigate?: (url: string) => void;
|
|
8
|
+
/** Short date, already formatted for the locale. */
|
|
9
|
+
date?: string;
|
|
10
|
+
/** Clock time, already formatted for the locale. */
|
|
11
|
+
time: string;
|
|
12
|
+
/** Service and professional, already joined. */
|
|
13
|
+
details?: ReactNode;
|
|
14
|
+
/** True when focus is inside Booking, or a removed control dropped it. */
|
|
15
|
+
shouldTakeFocus: (root: HTMLElement) => boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* "Time reserved": shown after a correct SMS code or a verified payment when
|
|
19
|
+
* the host gave an address. Opens it after `delayMs`, or at once from the
|
|
20
|
+
* button.
|
|
21
|
+
*/
|
|
22
|
+
export declare function BookingReserved({ url, delayMs, onNavigate, date, time, details, shouldTakeFocus, }: BookingReservedProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=reserved.d.ts.map
|
|
@@ -6,12 +6,14 @@ export declare function useBookingPayment({ services, value, availableSlots, onS
|
|
|
6
6
|
activeSession: BookingPaymentSession | undefined;
|
|
7
7
|
submit: (details: BookingDetails) => Promise<void>;
|
|
8
8
|
reset: () => void;
|
|
9
|
-
completeCode: () => void;
|
|
9
|
+
completeCode: (redirectUrl?: string) => void;
|
|
10
10
|
status: "idle" | "submitting" | "payment" | "code" | "success" | "error";
|
|
11
11
|
snapshot?: BookingSubmitPayload;
|
|
12
12
|
session?: BookingPaymentSession;
|
|
13
13
|
cancelled?: boolean;
|
|
14
14
|
codeStep?: BookingCodeStep;
|
|
15
15
|
codeVerified?: boolean;
|
|
16
|
+
/** Address to open from the "Time reserved" view, as the host gave it. */
|
|
17
|
+
redirectUrl?: string;
|
|
16
18
|
};
|
|
17
19
|
//# sourceMappingURL=use-booking-payment.d.ts.map
|
|
@@ -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-B3dVqm9D.js";
|
|
2
2
|
export {
|
|
3
3
|
t as CommandEmpty,
|
|
4
4
|
e as CommandGroup,
|
|
@@ -40,7 +40,10 @@ export interface ContactProfileCardProps extends Omit<ComponentPropsWithoutRef<'
|
|
|
40
40
|
whatsappMessage?: string;
|
|
41
41
|
/** Public-facing email. Compiled into a `mailto:` link. */
|
|
42
42
|
email?: string;
|
|
43
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Practice website. An address without a scheme (`www.example.it`) is
|
|
45
|
+
* linked over `https://`; anything but a web address shows as text.
|
|
46
|
+
*/
|
|
44
47
|
website?: string;
|
|
45
48
|
/**
|
|
46
49
|
* Google Maps Static API key. When provided alongside `address.lat`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-
|
|
1
|
+
import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-Da1vmJQI.js";
|
|
2
2
|
export {
|
|
3
3
|
_ as CONTACT_PROFILE_CARD_ROW_ICONS,
|
|
4
4
|
O as CONTACT_PROFILE_CARD_ROW_KEYS,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { D as r, E as l, T as t, a as s, b as d, c as o, d as n, e as i, f as R, i as C, g as T } from "../../_chunks/data-table-BlONA1rP.js";
|
|
2
2
|
import { B as g, C as D, a as b, E as x, b as c, R as p, T as u, c as m, r as E, u as f } from "../../_chunks/editable-currency-cell-renderer-rWYiF4EI.js";
|
|
3
|
-
import { D as h, a as A, b as w, I as y, L as I, N as L, c as N, S as P, d as W, e as B, T as U, f as _, g as k, U as v } from "../../_chunks/link-cell-renderer-
|
|
3
|
+
import { D as h, a as A, b as w, I as y, L as I, N as L, c as N, S as P, d as W, e as B, T as U, f as _, g as k, U as v } from "../../_chunks/link-cell-renderer-C0ynDik7.js";
|
|
4
4
|
import { A as X, a as j } from "../../_chunks/actions-cell-renderer-B1yaOfQM.js";
|
|
5
5
|
export {
|
|
6
6
|
X as ActionsCellRenderer,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as e, F as o, a as n, b as A, c as i, d as f, e as t, I, f as N, g as T, h as F, i as _, j as E, k as c, l as h, m as r, n as p, o as O, p as S, q as m, r as l, s as d, t as C, u as D } from "../../_chunks/face-scheme-
|
|
1
|
+
import { A as e, F as o, a as n, b as A, c as i, d as f, e as t, I, f as N, g as T, h as F, i as _, j as E, k as c, l as h, m as r, n as p, o as O, p as S, q as m, r as l, s as d, t as C, u as D } from "../../_chunks/face-scheme-BgJGFDTa.js";
|
|
2
2
|
export {
|
|
3
3
|
e as ANNOTATION_TOOL_KIND,
|
|
4
4
|
o as FACE_ANNOTATION_TOOLS,
|
|
@@ -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-BHXJS8Ga.js";
|
|
2
2
|
export {
|
|
3
3
|
s as BalanceBadgeCell,
|
|
4
4
|
l as CarePlanStatusCell,
|
|
@@ -2419,6 +2419,14 @@ export declare const arUi: {
|
|
|
2419
2419
|
readonly intro: "لإيصال الدفع الصادر باسم المريض.";
|
|
2420
2420
|
};
|
|
2421
2421
|
};
|
|
2422
|
+
readonly reserved: {
|
|
2423
|
+
readonly heading: "تم حجز الموعد مؤقتًا";
|
|
2424
|
+
readonly when: "{{date}}، {{time}}";
|
|
2425
|
+
readonly redirecting: "جارٍ نقلك إلى منطقة المرضى للتأكيد…";
|
|
2426
|
+
readonly goNow: "انتقل الآن";
|
|
2427
|
+
readonly stay: "ابقَ في هذه الصفحة";
|
|
2428
|
+
readonly stayed: "انتقل إلى منطقة المرضى عندما تكون مستعدًا للتأكيد.";
|
|
2429
|
+
};
|
|
2422
2430
|
};
|
|
2423
2431
|
readonly patientSearch: {
|
|
2424
2432
|
readonly regionLabel: "ابحث عن موعد";
|
package/dist/i18n/locales/ar.js
CHANGED
|
@@ -2411,6 +2411,14 @@ const e = {
|
|
|
2411
2411
|
heading: "بيانات الفوترة",
|
|
2412
2412
|
intro: "لإيصال الدفع الصادر باسم المريض."
|
|
2413
2413
|
}
|
|
2414
|
+
},
|
|
2415
|
+
reserved: {
|
|
2416
|
+
heading: "تم حجز الموعد مؤقتًا",
|
|
2417
|
+
when: "{{date}}، {{time}}",
|
|
2418
|
+
redirecting: "جارٍ نقلك إلى منطقة المرضى للتأكيد…",
|
|
2419
|
+
goNow: "انتقل الآن",
|
|
2420
|
+
stay: "ابقَ في هذه الصفحة",
|
|
2421
|
+
stayed: "انتقل إلى منطقة المرضى عندما تكون مستعدًا للتأكيد."
|
|
2414
2422
|
}
|
|
2415
2423
|
},
|
|
2416
2424
|
patientSearch: {
|
|
@@ -2407,6 +2407,14 @@ export declare const deUi: {
|
|
|
2407
2407
|
readonly intro: "Für die Zahlungsquittung, ausgestellt auf den Namen des Patienten.";
|
|
2408
2408
|
};
|
|
2409
2409
|
};
|
|
2410
|
+
readonly reserved: {
|
|
2411
|
+
readonly heading: "Termin reserviert";
|
|
2412
|
+
readonly when: "{{date}}, {{time}}";
|
|
2413
|
+
readonly redirecting: "Wir bringen Sie zum Patientenbereich, damit Sie bestätigen können …";
|
|
2414
|
+
readonly goNow: "Jetzt öffnen";
|
|
2415
|
+
readonly stay: "Auf dieser Seite bleiben";
|
|
2416
|
+
readonly stayed: "Gehen Sie zum Patientenbereich, wenn Sie bereit zur Bestätigung sind.";
|
|
2417
|
+
};
|
|
2410
2418
|
};
|
|
2411
2419
|
readonly patientSearch: {
|
|
2412
2420
|
readonly regionLabel: "Termin suchen";
|
package/dist/i18n/locales/de.js
CHANGED
|
@@ -2399,6 +2399,14 @@ const e = {
|
|
|
2399
2399
|
heading: "Rechnungsdaten",
|
|
2400
2400
|
intro: "Für die Zahlungsquittung, ausgestellt auf den Namen des Patienten."
|
|
2401
2401
|
}
|
|
2402
|
+
},
|
|
2403
|
+
reserved: {
|
|
2404
|
+
heading: "Termin reserviert",
|
|
2405
|
+
when: "{{date}}, {{time}}",
|
|
2406
|
+
redirecting: "Wir bringen Sie zum Patientenbereich, damit Sie bestätigen können …",
|
|
2407
|
+
goNow: "Jetzt öffnen",
|
|
2408
|
+
stay: "Auf dieser Seite bleiben",
|
|
2409
|
+
stayed: "Gehen Sie zum Patientenbereich, wenn Sie bereit zur Bestätigung sind."
|
|
2402
2410
|
}
|
|
2403
2411
|
},
|
|
2404
2412
|
patientSearch: {
|
|
@@ -2404,6 +2404,14 @@ export declare const elUi: {
|
|
|
2404
2404
|
readonly intro: "Για την απόδειξη πληρωμής, στο όνομα του ασθενούς.";
|
|
2405
2405
|
};
|
|
2406
2406
|
};
|
|
2407
|
+
readonly reserved: {
|
|
2408
|
+
readonly heading: "Η ώρα κρατήθηκε";
|
|
2409
|
+
readonly when: "{{date}}, {{time}}";
|
|
2410
|
+
readonly redirecting: "Σας μεταφέρουμε στην περιοχή ασθενών για επιβεβαίωση…";
|
|
2411
|
+
readonly goNow: "Μετάβαση τώρα";
|
|
2412
|
+
readonly stay: "Παραμονή σε αυτή τη σελίδα";
|
|
2413
|
+
readonly stayed: "Μεταβείτε στην περιοχή ασθενών όταν είστε έτοιμοι να επιβεβαιώσετε.";
|
|
2414
|
+
};
|
|
2407
2415
|
};
|
|
2408
2416
|
readonly patientSearch: {
|
|
2409
2417
|
readonly regionLabel: "Αναζήτηση ραντεβού";
|
package/dist/i18n/locales/el.js
CHANGED
|
@@ -2399,6 +2399,14 @@ const e = {
|
|
|
2399
2399
|
heading: "Στοιχεία χρέωσης",
|
|
2400
2400
|
intro: "Για την απόδειξη πληρωμής, στο όνομα του ασθενούς."
|
|
2401
2401
|
}
|
|
2402
|
+
},
|
|
2403
|
+
reserved: {
|
|
2404
|
+
heading: "Η ώρα κρατήθηκε",
|
|
2405
|
+
when: "{{date}}, {{time}}",
|
|
2406
|
+
redirecting: "Σας μεταφέρουμε στην περιοχή ασθενών για επιβεβαίωση…",
|
|
2407
|
+
goNow: "Μετάβαση τώρα",
|
|
2408
|
+
stay: "Παραμονή σε αυτή τη σελίδα",
|
|
2409
|
+
stayed: "Μεταβείτε στην περιοχή ασθενών όταν είστε έτοιμοι να επιβεβαιώσετε."
|
|
2402
2410
|
}
|
|
2403
2411
|
},
|
|
2404
2412
|
patientSearch: {
|