@alfadocs/ui-kit 1.28.3 → 1.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/{anamnesis-summary-rows-DwjqZgR5.js → anamnesis-summary-rows-DMO3MWSt.js} +2 -2
- package/dist/_chunks/{booking-BtSOKjQu.js → booking-AabCk7CI.js} +1205 -1148
- package/dist/_chunks/{sparkline-BmGcEyZO.js → sparkline-Dx_sxK3J.js} +228 -198
- package/dist/_chunks/use-zoom-drilldown-qCX34w9I.js +210 -0
- package/dist/agent-catalog.json +5 -2
- package/dist/agent-i18n/en.json +1 -1
- package/dist/components/booking/booking-types.d.ts +15 -0
- package/dist/components/booking/details-form.d.ts +7 -0
- package/dist/components/booking/index.js +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/sparkline/index.js +1 -1
- package/dist/components/sparkline/sparkline.d.ts +6 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +56 -54
- package/dist/hooks/use-zoom-drilldown.d.ts +23 -0
- package/dist/host-compat.css +4 -1
- package/dist/i18n/locales/ar.d.ts +4 -0
- package/dist/i18n/locales/ar.js +4 -0
- package/dist/i18n/locales/de.d.ts +4 -0
- package/dist/i18n/locales/de.js +4 -0
- package/dist/i18n/locales/el.d.ts +4 -0
- package/dist/i18n/locales/el.js +4 -0
- package/dist/i18n/locales/en.d.ts +4 -0
- package/dist/i18n/locales/en.js +4 -0
- package/dist/i18n/locales/es.d.ts +4 -0
- package/dist/i18n/locales/es.js +4 -0
- package/dist/i18n/locales/fr.d.ts +4 -0
- package/dist/i18n/locales/fr.js +4 -0
- package/dist/i18n/locales/hi.d.ts +4 -0
- package/dist/i18n/locales/hi.js +4 -0
- package/dist/i18n/locales/it.d.ts +4 -0
- package/dist/i18n/locales/it.js +4 -0
- package/dist/i18n/locales/ja.d.ts +4 -0
- package/dist/i18n/locales/ja.js +4 -0
- package/dist/i18n/locales/nl.d.ts +4 -0
- package/dist/i18n/locales/nl.js +4 -0
- package/dist/i18n/locales/pl.d.ts +4 -0
- package/dist/i18n/locales/pl.js +4 -0
- package/dist/i18n/locales/pt.d.ts +4 -0
- package/dist/i18n/locales/pt.js +4 -0
- package/dist/i18n/locales/ro.d.ts +4 -0
- package/dist/i18n/locales/ro.js +4 -0
- package/dist/i18n/locales/ru.d.ts +4 -0
- package/dist/i18n/locales/ru.js +4 -0
- package/dist/i18n/locales/sq.d.ts +4 -0
- package/dist/i18n/locales/sq.js +4 -0
- package/dist/i18n/locales/sv.d.ts +4 -0
- package/dist/i18n/locales/sv.js +4 -0
- package/dist/i18n/locales/tr.d.ts +4 -0
- package/dist/i18n/locales/tr.js +4 -0
- package/dist/i18n/locales/zh.d.ts +4 -0
- package/dist/i18n/locales/zh.js +4 -0
- package/dist/index.js +1072 -1070
- package/dist/locales/ar.json +4 -0
- package/dist/locales/de.json +4 -0
- package/dist/locales/el.json +4 -0
- package/dist/locales/en.json +4 -0
- package/dist/locales/es.json +4 -0
- package/dist/locales/fr.json +4 -0
- package/dist/locales/hi.json +4 -0
- package/dist/locales/it.json +4 -0
- package/dist/locales/ja.json +4 -0
- package/dist/locales/nl.json +4 -0
- package/dist/locales/pl.json +4 -0
- package/dist/locales/pt.json +4 -0
- package/dist/locales/ro.json +4 -0
- package/dist/locales/ru.json +4 -0
- package/dist/locales/sq.json +4 -0
- package/dist/locales/sv.json +4 -0
- package/dist/locales/tr.json +4 -0
- package/dist/locales/zh.json +4 -0
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/use-signing-session-CyOZWinp.js +0 -147
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { useRef as I, useEffect as M, useState as F, useMemo as E, useCallback as s } from "react";
|
|
2
|
+
import { flushSync as R } from "react-dom";
|
|
3
|
+
function x(e) {
|
|
4
|
+
return e != null && e.current ? e.current : typeof document > "u" ? null : document;
|
|
5
|
+
}
|
|
6
|
+
function O(e, l) {
|
|
7
|
+
const c = typeof CSS < "u" && typeof CSS.escape == "function" ? CSS.escape(e) : (
|
|
8
|
+
// SSR / jsdom fallback — drop every character that's
|
|
9
|
+
// significant in a CSS attribute selector. Conservative but
|
|
10
|
+
// robust enough for the test environment.
|
|
11
|
+
e.replace(/["'\\[\]]/g, "")
|
|
12
|
+
), d = `[data-error-anchor="${c}"], [name="${c}"], [name$="[${c}]"]`, u = Array.from(l.querySelectorAll(d));
|
|
13
|
+
return u.length === 0 ? null : u.find((p) => p.offsetParent !== null) ?? u[0];
|
|
14
|
+
}
|
|
15
|
+
function $(e, l, c = {}) {
|
|
16
|
+
const {
|
|
17
|
+
scope: d,
|
|
18
|
+
scrollOptions: u = { behavior: "smooth", block: "center" },
|
|
19
|
+
focus: a = !0,
|
|
20
|
+
skipInitialMount: p = !0
|
|
21
|
+
} = c, o = I(!1), f = I(null), i = l.find((h) => !!e[h]) ?? null;
|
|
22
|
+
M(() => {
|
|
23
|
+
if (p && !o.current) {
|
|
24
|
+
o.current = !0, f.current = i;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!i) {
|
|
28
|
+
f.current = null;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (i === f.current || typeof window > "u") return;
|
|
32
|
+
const h = window.requestAnimationFrame(() => {
|
|
33
|
+
const g = x(d);
|
|
34
|
+
if (!g) return;
|
|
35
|
+
const t = O(i, g);
|
|
36
|
+
t && (t.scrollIntoView(u), a && t.focus({ preventScroll: !0 }), f.current = i);
|
|
37
|
+
});
|
|
38
|
+
return () => window.cancelAnimationFrame(h);
|
|
39
|
+
}, [i]);
|
|
40
|
+
}
|
|
41
|
+
function k(e, l = !1) {
|
|
42
|
+
const c = {};
|
|
43
|
+
for (const d of e)
|
|
44
|
+
c[d.id] = { signed: l ? !1 : !!d.signed };
|
|
45
|
+
return c;
|
|
46
|
+
}
|
|
47
|
+
function D(e) {
|
|
48
|
+
const [l, c] = F(
|
|
49
|
+
() => k(e)
|
|
50
|
+
), [d, u] = F(null), [a, p] = F(
|
|
51
|
+
() => {
|
|
52
|
+
var n;
|
|
53
|
+
return ((n = e[0]) == null ? void 0 : n.id) ?? null;
|
|
54
|
+
}
|
|
55
|
+
), o = E(
|
|
56
|
+
() => e.map((n) => {
|
|
57
|
+
const r = l[n.id];
|
|
58
|
+
return {
|
|
59
|
+
...n,
|
|
60
|
+
signed: r ? r.signed : !!n.signed,
|
|
61
|
+
payload: r == null ? void 0 : r.payload
|
|
62
|
+
};
|
|
63
|
+
}),
|
|
64
|
+
[e, l]
|
|
65
|
+
), f = E(
|
|
66
|
+
() => o.reduce((n, r) => r.signed ? n + 1 : n, 0),
|
|
67
|
+
[o]
|
|
68
|
+
), i = o.length, h = i > 0 && f === i, g = s((n) => {
|
|
69
|
+
u(n);
|
|
70
|
+
}, []), t = s(() => {
|
|
71
|
+
u(null);
|
|
72
|
+
}, []), w = s((n, r) => {
|
|
73
|
+
c((m) => ({ ...m, [n]: { signed: !0, payload: r } })), u((m) => m === n ? null : m);
|
|
74
|
+
}, []), T = s(
|
|
75
|
+
(n) => {
|
|
76
|
+
var r;
|
|
77
|
+
return !!((r = l[n]) != null && r.signed);
|
|
78
|
+
},
|
|
79
|
+
[l]
|
|
80
|
+
), S = s(() => {
|
|
81
|
+
var n;
|
|
82
|
+
c(k(e, !0)), u(null), p(((n = e[0]) == null ? void 0 : n.id) ?? null);
|
|
83
|
+
}, [e]), C = s(() => {
|
|
84
|
+
p((n) => {
|
|
85
|
+
const r = o.length;
|
|
86
|
+
if (r === 0) return null;
|
|
87
|
+
const m = n ? o.findIndex((y) => y.id === n) : -1;
|
|
88
|
+
return o[(m + 1 + r) % r].id;
|
|
89
|
+
});
|
|
90
|
+
}, [o]), v = s(() => {
|
|
91
|
+
p((n) => {
|
|
92
|
+
const r = o.length;
|
|
93
|
+
if (r === 0) return null;
|
|
94
|
+
const m = n ? o.findIndex((y) => y.id === n) : 0;
|
|
95
|
+
return o[(m - 1 + r) % r].id;
|
|
96
|
+
});
|
|
97
|
+
}, [o]), A = s(() => {
|
|
98
|
+
p((n) => {
|
|
99
|
+
const r = o.length;
|
|
100
|
+
if (r === 0) return n;
|
|
101
|
+
const m = n ? o.findIndex((y) => y.id === n) : -1;
|
|
102
|
+
for (let y = 1; y <= r; y += 1) {
|
|
103
|
+
const b = o[(m + y) % r];
|
|
104
|
+
if (!b.signed) return b.id;
|
|
105
|
+
}
|
|
106
|
+
return n;
|
|
107
|
+
});
|
|
108
|
+
}, [o]);
|
|
109
|
+
return E(
|
|
110
|
+
() => ({
|
|
111
|
+
fields: o,
|
|
112
|
+
signedCount: f,
|
|
113
|
+
total: i,
|
|
114
|
+
isComplete: h,
|
|
115
|
+
activeFieldId: d,
|
|
116
|
+
openField: g,
|
|
117
|
+
closeField: t,
|
|
118
|
+
markSigned: w,
|
|
119
|
+
isFieldSigned: T,
|
|
120
|
+
reset: S,
|
|
121
|
+
cursorFieldId: a,
|
|
122
|
+
goToNextField: C,
|
|
123
|
+
goToPreviousField: v,
|
|
124
|
+
goToNextUnsigned: A
|
|
125
|
+
}),
|
|
126
|
+
[
|
|
127
|
+
o,
|
|
128
|
+
f,
|
|
129
|
+
i,
|
|
130
|
+
h,
|
|
131
|
+
d,
|
|
132
|
+
g,
|
|
133
|
+
t,
|
|
134
|
+
w,
|
|
135
|
+
T,
|
|
136
|
+
S,
|
|
137
|
+
a,
|
|
138
|
+
C,
|
|
139
|
+
v,
|
|
140
|
+
A
|
|
141
|
+
]
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
const q = "ds-zoom-drilldown", L = () => {
|
|
145
|
+
if (typeof document > "u") return null;
|
|
146
|
+
const e = document.querySelector("main");
|
|
147
|
+
return e ? e.querySelector("[data-radix-scroll-area-viewport]") ?? e.closest("[data-radix-scroll-area-viewport]") ?? e : null;
|
|
148
|
+
}, N = (e) => typeof e.startViewTransition == "function" && typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("view-transition-class", q);
|
|
149
|
+
function P(e = {}) {
|
|
150
|
+
const [l, c] = F(null), d = I(
|
|
151
|
+
null
|
|
152
|
+
), u = I(e.getScrollContainer);
|
|
153
|
+
u.current = e.getScrollContainer;
|
|
154
|
+
const a = s(
|
|
155
|
+
() => (u.current ?? L)(),
|
|
156
|
+
[]
|
|
157
|
+
), p = s(() => {
|
|
158
|
+
const t = a();
|
|
159
|
+
return {
|
|
160
|
+
window: typeof window < "u" ? window.scrollY : 0,
|
|
161
|
+
container: t ? t.scrollTop : 0
|
|
162
|
+
};
|
|
163
|
+
}, [a]), o = s(() => {
|
|
164
|
+
const t = d.current;
|
|
165
|
+
if (!t) return;
|
|
166
|
+
d.current = null;
|
|
167
|
+
let w = 0;
|
|
168
|
+
const T = () => {
|
|
169
|
+
const S = a();
|
|
170
|
+
typeof window < "u" && window.scrollTo({ top: t.window }), S && (S.scrollTop = t.container), !((typeof window > "u" || Math.abs(window.scrollY - t.window) < 2) && (!S || Math.abs(S.scrollTop - t.container) < 2)) && w < 20 && (w += 1, requestAnimationFrame(T));
|
|
171
|
+
};
|
|
172
|
+
T();
|
|
173
|
+
}, [a]), f = s(() => {
|
|
174
|
+
const t = a();
|
|
175
|
+
typeof window < "u" && window.scrollTo({ top: 0 }), t && (t.scrollTop = 0);
|
|
176
|
+
}, [a]), i = s(
|
|
177
|
+
(t) => {
|
|
178
|
+
var v;
|
|
179
|
+
const w = document, T = typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches, S = t === null;
|
|
180
|
+
if (T || !N(w) || !w.startViewTransition) {
|
|
181
|
+
R(() => c(t)), S ? o() : f();
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const C = w.startViewTransition(() => {
|
|
185
|
+
R(() => c(t)), S || f();
|
|
186
|
+
});
|
|
187
|
+
S && ((v = C == null ? void 0 : C.finished) == null || v.then(o, o));
|
|
188
|
+
},
|
|
189
|
+
[o, f]
|
|
190
|
+
), h = s(
|
|
191
|
+
(t) => {
|
|
192
|
+
d.current = p(), i(t);
|
|
193
|
+
},
|
|
194
|
+
[p, i]
|
|
195
|
+
), g = s(() => i(null), [i]);
|
|
196
|
+
return M(() => {
|
|
197
|
+
if (l === null) return;
|
|
198
|
+
const t = (w) => {
|
|
199
|
+
w.key === "Escape" && !w.defaultPrevented && g();
|
|
200
|
+
};
|
|
201
|
+
return window.addEventListener("keydown", t), () => window.removeEventListener("keydown", t);
|
|
202
|
+
}, [l, g]), { selected: l, open: h, close: g };
|
|
203
|
+
}
|
|
204
|
+
export {
|
|
205
|
+
q as Z,
|
|
206
|
+
D as a,
|
|
207
|
+
P as b,
|
|
208
|
+
$ as u
|
|
209
|
+
};
|
|
210
|
+
//# sourceMappingURL=use-zoom-drilldown-qCX34w9I.js.map
|
package/dist/agent-catalog.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"packageVersion": "1.
|
|
3
|
+
"packageVersion": "1.30.0",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"kind": "component",
|
|
@@ -12858,7 +12858,10 @@
|
|
|
12858
12858
|
]
|
|
12859
12859
|
},
|
|
12860
12860
|
"idempotent": true,
|
|
12861
|
-
"
|
|
12861
|
+
"errors": [
|
|
12862
|
+
"Per-point tooltip titles are hidden after this call — the host point labels describe the previous series, not the one written."
|
|
12863
|
+
],
|
|
12864
|
+
"description": "Replace the sparkline data without remounting. Writes straight into ApexCharts, bypassing React — read the `pointCount` slot back rather than expecting the host tree to reflect it. Host-supplied point labels are not updated, so the tooltip title is hidden after this call.",
|
|
12862
12865
|
"descriptionKey": "ui.agent.sparkline.actions.updateSeries"
|
|
12863
12866
|
},
|
|
12864
12867
|
{
|
package/dist/agent-i18n/en.json
CHANGED
|
@@ -1322,7 +1322,7 @@
|
|
|
1322
1322
|
"pointCount": "Number of positions in the currently rendered series, unmeasured gaps included — reflecting whichever applied last, the `data` prop or an `update_series` call. A count only; the plotted values are never exposed."
|
|
1323
1323
|
},
|
|
1324
1324
|
"actions": {
|
|
1325
|
-
"updateSeries": "Replace the sparkline data without remounting. Writes straight into ApexCharts, bypassing React — read the `pointCount` slot back rather than expecting the host tree to reflect it.",
|
|
1325
|
+
"updateSeries": "Replace the sparkline data without remounting. Writes straight into ApexCharts, bypassing React — read the `pointCount` slot back rather than expecting the host tree to reflect it. Host-supplied point labels are not updated, so the tooltip title is hidden after this call.",
|
|
1326
1326
|
"exportPng": "Return a PNG data URI of the sparkline.",
|
|
1327
1327
|
"selectAnnotation": "Select a drawn annotation, as pressing its band would. No-op unless the host wired onAnnotationSelect and the id names an annotation that is currently drawn — check the `selectable` and `annotationIds` slots first, since neither failure produces a signal."
|
|
1328
1328
|
}
|
|
@@ -31,6 +31,15 @@ export interface BookingService {
|
|
|
31
31
|
specialtyId?: string;
|
|
32
32
|
/** Operators who can perform this service. */
|
|
33
33
|
operatorIds?: string[];
|
|
34
|
+
/**
|
|
35
|
+
* Practice-authored plain text the patient must read and accept before
|
|
36
|
+
* the booking can be submitted (the platform's
|
|
37
|
+
* `criticalInformationToAccept` on a booking reason). When present, the
|
|
38
|
+
* details step renders it above the consents with a required checkbox;
|
|
39
|
+
* when absent, the step adds nothing. Always rendered as text, never as
|
|
40
|
+
* HTML: a practice cannot inject markup through it.
|
|
41
|
+
*/
|
|
42
|
+
criticalInformationToAccept?: string;
|
|
34
43
|
}
|
|
35
44
|
export interface BookingOperator {
|
|
36
45
|
id: string;
|
|
@@ -55,6 +64,12 @@ export interface BookingDetails {
|
|
|
55
64
|
mobilePhone: string;
|
|
56
65
|
privacyConsent: boolean;
|
|
57
66
|
termsConsent: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* `true` once the patient has ticked the acceptance box for the selected
|
|
69
|
+
* service's `criticalInformationToAccept`. Present in the submit payload
|
|
70
|
+
* only when the service carries that text; omitted otherwise.
|
|
71
|
+
*/
|
|
72
|
+
criticalInformationAccepted?: boolean;
|
|
58
73
|
codiceFiscale?: string;
|
|
59
74
|
dateOfBirth?: string;
|
|
60
75
|
insuranceNumber?: string;
|
|
@@ -13,6 +13,13 @@ export interface BookingDetailsFormProps {
|
|
|
13
13
|
showReturningPatientFlag?: boolean;
|
|
14
14
|
privacyPolicyUrl?: string;
|
|
15
15
|
termsUrl?: string;
|
|
16
|
+
/**
|
|
17
|
+
* The selected service's `criticalInformationToAccept`. When set (and not
|
|
18
|
+
* blank), a "Before you book" block renders above the consents and the
|
|
19
|
+
* patient must tick its checkbox before submit enables. Rendered as
|
|
20
|
+
* plain text — never parsed as HTML.
|
|
21
|
+
*/
|
|
22
|
+
criticalInformationToAccept?: string;
|
|
16
23
|
validateCodiceFiscale?: BookingValidator;
|
|
17
24
|
validateInsuranceNumber?: BookingValidator;
|
|
18
25
|
submitting?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { usePrefersReducedMotion, useMediaQuery, useScrollToFirstError, useLocale, useTheme, resolveTheme, themeClassList, THEME_CLASS, THEME_STORAGE_KEY, ACCESSIBILITY_STORAGE_KEY, useSigningSession, } from '../hooks';
|
|
2
|
-
export type { LocaleDir, UseLocaleReturn, UseScrollToFirstErrorOptions, ThemePreference, AccessibilityPreference, ResolvedTheme, UseThemeReturn, SigningField, SigningFieldBase, UseSigningSessionReturn, } from '../hooks';
|
|
1
|
+
export { usePrefersReducedMotion, useMediaQuery, useScrollToFirstError, useLocale, useTheme, resolveTheme, themeClassList, THEME_CLASS, THEME_STORAGE_KEY, ACCESSIBILITY_STORAGE_KEY, useSigningSession, useZoomDrilldown, ZOOM_DRILLDOWN_TRANSITION_CLASS, } from '../hooks';
|
|
2
|
+
export type { LocaleDir, UseLocaleReturn, UseScrollToFirstErrorOptions, ThemePreference, AccessibilityPreference, ResolvedTheme, UseThemeReturn, SigningField, SigningFieldBase, UseSigningSessionReturn, UseZoomDrilldownOptions, UseZoomDrilldownReturn, } from '../hooks';
|
|
3
3
|
export * from './button';
|
|
4
4
|
export * from './button-group';
|
|
5
5
|
export * from './floating-action-button';
|
|
@@ -73,6 +73,12 @@ export interface SparklineProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ro
|
|
|
73
73
|
* dashboard widgets) and the user benefits from per-point readout.
|
|
74
74
|
*/
|
|
75
75
|
showTooltip?: boolean;
|
|
76
|
+
/** Series name shown in the tooltip, already localised. Defaults to
|
|
77
|
+
* `label`, so the tooltip never falls back to Apex's "series-1". */
|
|
78
|
+
seriesName?: string;
|
|
79
|
+
/** Tooltip title per point, same order and length as `data` (gaps
|
|
80
|
+
* included). Omitted = no tooltip title. Never drawn on an axis. */
|
|
81
|
+
pointLabels?: readonly string[];
|
|
76
82
|
/** Width override — defaults to 100% of container */
|
|
77
83
|
width?: string | number;
|
|
78
84
|
/** Height override — defaults to the size variant height */
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -22,5 +22,6 @@ export { useWebOtp, type UseWebOtpOptions } from './use-web-otp';
|
|
|
22
22
|
export { useVisualViewportPin, type VisualViewportPinOptions, } from './use-visual-viewport-pin';
|
|
23
23
|
export { useEdgeResize, type UseEdgeResizeOptions, type UseEdgeResizeReturn, type EdgeResizeSeparatorProps, } from './use-edge-resize';
|
|
24
24
|
export { useSigningSession, type SigningField, type SigningFieldBase, type UseSigningSessionReturn, } from './use-signing-session';
|
|
25
|
+
export { useZoomDrilldown, ZOOM_DRILLDOWN_TRANSITION_CLASS, type UseZoomDrilldownOptions, type UseZoomDrilldownReturn, } from './use-zoom-drilldown';
|
|
25
26
|
export { useCountdown, type UseCountdownOptions, type UseCountdownReturn, } from './use-countdown';
|
|
26
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
import { u as A } from "../_chunks/use-prefers-reduced-motion-BMwIQRjB.js";
|
|
2
2
|
import { u as D } from "../_chunks/use-media-query-CcAx5SMM.js";
|
|
3
|
-
import { u as
|
|
4
|
-
import { u as
|
|
5
|
-
import { u as
|
|
6
|
-
import { A as
|
|
3
|
+
import { Z as w, u as _, a as F, b as I } from "../_chunks/use-zoom-drilldown-qCX34w9I.js";
|
|
4
|
+
import { u as R } from "../_chunks/use-count-up-BLLetaZ8.js";
|
|
5
|
+
import { u as k } from "../_chunks/use-locale-BkCIHujH.js";
|
|
6
|
+
import { A as M, T as V, a as H, r as N, t as Y, u as Z } from "../_chunks/use-theme-CAuo6EYT.js";
|
|
7
7
|
import { u as B } from "../_chunks/use-controllable-state-BiY4xTzM.js";
|
|
8
8
|
import { u as U } from "../_chunks/use-copy-to-clipboard-Cyfc_dlv.js";
|
|
9
|
-
import { u as
|
|
9
|
+
import { u as j } from "../_chunks/use-debounced-callback-BisrB-Fq.js";
|
|
10
10
|
import { useState as E, useRef as b, useEffect as x } from "react";
|
|
11
|
-
import { u as
|
|
12
|
-
import { u as
|
|
13
|
-
import { u as
|
|
14
|
-
import { u as
|
|
15
|
-
import { c as
|
|
16
|
-
import { u as
|
|
17
|
-
import { u as
|
|
18
|
-
import { u as
|
|
19
|
-
import { u as
|
|
20
|
-
function
|
|
11
|
+
import { u as Q, a as J } from "../_chunks/use-direction-Dp8h70PP.js";
|
|
12
|
+
import { u as $ } from "../_chunks/use-persistent-state-nZwZAnE9.js";
|
|
13
|
+
import { u as te } from "../_chunks/use-isomorphic-layout-effect-BGfaCOP1.js";
|
|
14
|
+
import { u as oe } from "../_chunks/use-overflow-collapse-BIOzKbni.js";
|
|
15
|
+
import { c as se, u as ne } from "../_chunks/use-priority-overflow-c9SjxZkZ.js";
|
|
16
|
+
import { u as ie } from "../_chunks/use-web-otp-D_utzp6S.js";
|
|
17
|
+
import { u as le } from "../_chunks/use-visual-viewport-pin-ChurOsHM.js";
|
|
18
|
+
import { u as me } from "../_chunks/use-edge-resize-ZnGG7gyO.js";
|
|
19
|
+
import { u as pe } from "../_chunks/use-countdown-Yd6ts0_a.js";
|
|
20
|
+
function C(e, o) {
|
|
21
21
|
const [t, i] = E(e), u = b(null);
|
|
22
22
|
return x(() => {
|
|
23
23
|
if (o <= 0) {
|
|
24
24
|
u.current !== null && (clearTimeout(u.current), u.current = null), i(e);
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
const
|
|
27
|
+
const n = setTimeout(() => {
|
|
28
28
|
i(e), u.current = null;
|
|
29
29
|
}, o);
|
|
30
|
-
return u.current =
|
|
30
|
+
return u.current = n, () => clearTimeout(n);
|
|
31
31
|
}, [e, o]), t;
|
|
32
32
|
}
|
|
33
33
|
const T = [
|
|
@@ -54,31 +54,31 @@ function p(e) {
|
|
|
54
54
|
return !0;
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
function
|
|
58
|
-
const { enabled: t = !0, autoFocus: i = !0, restoreFocus: u = !0 } = o,
|
|
57
|
+
function y(e, o = {}) {
|
|
58
|
+
const { enabled: t = !0, autoFocus: i = !0, restoreFocus: u = !0 } = o, n = b(null);
|
|
59
59
|
x(() => {
|
|
60
60
|
if (!t) return;
|
|
61
61
|
const a = e.current;
|
|
62
62
|
if (!a) return;
|
|
63
|
-
if (
|
|
64
|
-
const
|
|
65
|
-
|
|
63
|
+
if (n.current = typeof document < "u" && document.activeElement instanceof HTMLElement ? document.activeElement : null, i) {
|
|
64
|
+
const s = p(a)[0] ?? (a.tabIndex >= -1 ? a : null);
|
|
65
|
+
s == null || s.focus();
|
|
66
66
|
}
|
|
67
|
-
function
|
|
67
|
+
function f(r) {
|
|
68
68
|
if (r.key !== "Tab") return;
|
|
69
|
-
const
|
|
70
|
-
if (!
|
|
71
|
-
const c = p(
|
|
69
|
+
const s = e.current;
|
|
70
|
+
if (!s) return;
|
|
71
|
+
const c = p(s);
|
|
72
72
|
if (c.length === 0) {
|
|
73
73
|
r.preventDefault();
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
-
const m = c[0], d = c[c.length - 1],
|
|
77
|
-
r.shiftKey ? (
|
|
76
|
+
const m = c[0], d = c[c.length - 1], l = document.activeElement;
|
|
77
|
+
r.shiftKey ? (l === m || !s.contains(l)) && (r.preventDefault(), d.focus()) : (l === d || !s.contains(l)) && (r.preventDefault(), m.focus());
|
|
78
78
|
}
|
|
79
|
-
return a.addEventListener("keydown",
|
|
80
|
-
if (a.removeEventListener("keydown",
|
|
81
|
-
const r =
|
|
79
|
+
return a.addEventListener("keydown", f), () => {
|
|
80
|
+
if (a.removeEventListener("keydown", f), u && n.current) {
|
|
81
|
+
const r = n.current;
|
|
82
82
|
requestAnimationFrame(() => {
|
|
83
83
|
r.isConnected && r.focus();
|
|
84
84
|
});
|
|
@@ -87,33 +87,35 @@ function C(e, o = {}) {
|
|
|
87
87
|
}, [t, i, u, e]);
|
|
88
88
|
}
|
|
89
89
|
export {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
M as ACCESSIBILITY_STORAGE_KEY,
|
|
91
|
+
V as THEME_CLASS,
|
|
92
|
+
H as THEME_STORAGE_KEY,
|
|
93
|
+
w as ZOOM_DRILLDOWN_TRANSITION_CLASS,
|
|
94
|
+
se as computePriorityLayout,
|
|
95
|
+
N as resolveTheme,
|
|
96
|
+
Y as themeClassList,
|
|
96
97
|
B as useControllableState,
|
|
97
98
|
U as useCopyToClipboard,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
R as useCountUp,
|
|
100
|
+
pe as useCountdown,
|
|
101
|
+
j as useDebouncedCallback,
|
|
102
|
+
C as useDebouncedValue,
|
|
103
|
+
Q as useDirection,
|
|
103
104
|
J as useDocumentDirection,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
me as useEdgeResize,
|
|
106
|
+
y as useFocusTrap,
|
|
107
|
+
te as useIsomorphicLayoutEffect,
|
|
108
|
+
k as useLocale,
|
|
108
109
|
D as useMediaQuery,
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
oe as useOverflowCollapse,
|
|
111
|
+
$ as usePersistentState,
|
|
111
112
|
A as usePrefersReducedMotion,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
ne as usePriorityOverflow,
|
|
114
|
+
_ as useScrollToFirstError,
|
|
115
|
+
F as useSigningSession,
|
|
116
|
+
Z as useTheme,
|
|
117
|
+
le as useVisualViewportPin,
|
|
118
|
+
ie as useWebOtp,
|
|
119
|
+
I as useZoomDrilldown
|
|
118
120
|
};
|
|
119
121
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `view-transition-class` the shipped CSS targets. Add it as a class name
|
|
3
|
+
* to the source element and the detail, next to their shared
|
|
4
|
+
* `view-transition-name`. The kit sheet maps the class to the property.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ZOOM_DRILLDOWN_TRANSITION_CLASS: "ds-zoom-drilldown";
|
|
7
|
+
export interface UseZoomDrilldownOptions {
|
|
8
|
+
/** Resolver for the scroll container whose scrollTop should be preserved
|
|
9
|
+
* across the transition. Defaults to the nearest `<main>` element in
|
|
10
|
+
* the document (or the Radix ScrollArea viewport around it). The window
|
|
11
|
+
* scroll position is always tracked alongside. */
|
|
12
|
+
getScrollContainer?: () => HTMLElement | null;
|
|
13
|
+
}
|
|
14
|
+
export interface UseZoomDrilldownReturn<Id extends string> {
|
|
15
|
+
/** The open drill-down target, or `null` while the source view shows. */
|
|
16
|
+
readonly selected: Id | null;
|
|
17
|
+
/** Zoom into `id`: saves the scroll position and enters at the top. */
|
|
18
|
+
readonly open: (id: Id) => void;
|
|
19
|
+
/** Zoom back out and restore the saved scroll position. */
|
|
20
|
+
readonly close: () => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function useZoomDrilldown<Id extends string>(options?: UseZoomDrilldownOptions): UseZoomDrilldownReturn<Id>;
|
|
23
|
+
//# sourceMappingURL=use-zoom-drilldown.d.ts.map
|
package/dist/host-compat.css
CHANGED
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
|
|
203
203
|
/* ───────────────────────────────────────────────────────────────────────
|
|
204
204
|
SECTION B — non-token declarations. ORIGINAL LAYER PRESERVED.
|
|
205
|
-
|
|
205
|
+
130 declarations across 126 rules.
|
|
206
206
|
|
|
207
207
|
Kit-authored arbitrary-value utilities (`ds:w-[20rem]`) and the
|
|
208
208
|
vendored AG Grid rules. These set real properties on real elements,
|
|
@@ -469,6 +469,9 @@
|
|
|
469
469
|
.ds\:auto-rows-\[19rem\] {
|
|
470
470
|
grid-auto-rows:304px;
|
|
471
471
|
}
|
|
472
|
+
.ds\:auto-rows-\[22rem\] {
|
|
473
|
+
grid-auto-rows:352px;
|
|
474
|
+
}
|
|
472
475
|
.ds\:auto-rows-\[minmax\(12rem\,auto\)\] {
|
|
473
476
|
grid-auto-rows:minmax(192px,auto);
|
|
474
477
|
}
|
|
@@ -1870,6 +1870,10 @@ export declare const arUi: {
|
|
|
1870
1870
|
readonly returningPatient: {
|
|
1871
1871
|
readonly label: "أنا مريض حالي في هذه العيادة";
|
|
1872
1872
|
};
|
|
1873
|
+
readonly criticalInformation: {
|
|
1874
|
+
readonly heading: "قبل الحجز";
|
|
1875
|
+
readonly accept: "لقد قرأتُ هذه المعلومات وأوافق عليها";
|
|
1876
|
+
};
|
|
1873
1877
|
readonly consent: {
|
|
1874
1878
|
readonly privacy: {
|
|
1875
1879
|
readonly label: "لقد قرأتُ <policyLink>سياسة الخصوصية</policyLink> وأوافق عليها";
|
package/dist/i18n/locales/ar.js
CHANGED
|
@@ -1867,6 +1867,10 @@ const e = {
|
|
|
1867
1867
|
returningPatient: {
|
|
1868
1868
|
label: "أنا مريض حالي في هذه العيادة"
|
|
1869
1869
|
},
|
|
1870
|
+
criticalInformation: {
|
|
1871
|
+
heading: "قبل الحجز",
|
|
1872
|
+
accept: "لقد قرأتُ هذه المعلومات وأوافق عليها"
|
|
1873
|
+
},
|
|
1870
1874
|
consent: {
|
|
1871
1875
|
privacy: {
|
|
1872
1876
|
label: "لقد قرأتُ <policyLink>سياسة الخصوصية</policyLink> وأوافق عليها"
|
|
@@ -1870,6 +1870,10 @@ export declare const deUi: {
|
|
|
1870
1870
|
readonly returningPatient: {
|
|
1871
1871
|
readonly label: "Ich bin bereits Patient:in dieser Praxis";
|
|
1872
1872
|
};
|
|
1873
|
+
readonly criticalInformation: {
|
|
1874
|
+
readonly heading: "Bevor Sie buchen";
|
|
1875
|
+
readonly accept: "Ich habe diese Informationen gelesen und akzeptiere sie";
|
|
1876
|
+
};
|
|
1873
1877
|
readonly consent: {
|
|
1874
1878
|
readonly privacy: {
|
|
1875
1879
|
readonly label: "Ich habe die <policyLink>Datenschutzerklärung</policyLink> gelesen und akzeptiere sie";
|
package/dist/i18n/locales/de.js
CHANGED
|
@@ -1867,6 +1867,10 @@ const e = {
|
|
|
1867
1867
|
returningPatient: {
|
|
1868
1868
|
label: "Ich bin bereits Patient:in dieser Praxis"
|
|
1869
1869
|
},
|
|
1870
|
+
criticalInformation: {
|
|
1871
|
+
heading: "Bevor Sie buchen",
|
|
1872
|
+
accept: "Ich habe diese Informationen gelesen und akzeptiere sie"
|
|
1873
|
+
},
|
|
1870
1874
|
consent: {
|
|
1871
1875
|
privacy: {
|
|
1872
1876
|
label: "Ich habe die <policyLink>Datenschutzerklärung</policyLink> gelesen und akzeptiere sie"
|
|
@@ -1867,6 +1867,10 @@ export declare const elUi: {
|
|
|
1867
1867
|
readonly returningPatient: {
|
|
1868
1868
|
readonly label: "Είμαι ήδη ασθενής αυτού του ιατρείου";
|
|
1869
1869
|
};
|
|
1870
|
+
readonly criticalInformation: {
|
|
1871
|
+
readonly heading: "Πριν κλείσετε ραντεβού";
|
|
1872
|
+
readonly accept: "Έχω διαβάσει και αποδέχομαι αυτές τις πληροφορίες";
|
|
1873
|
+
};
|
|
1870
1874
|
readonly consent: {
|
|
1871
1875
|
readonly privacy: {
|
|
1872
1876
|
readonly label: "Έχω διαβάσει και αποδέχομαι την <policyLink>πολιτική απορρήτου</policyLink>";
|
package/dist/i18n/locales/el.js
CHANGED
|
@@ -1867,6 +1867,10 @@ const e = {
|
|
|
1867
1867
|
returningPatient: {
|
|
1868
1868
|
label: "Είμαι ήδη ασθενής αυτού του ιατρείου"
|
|
1869
1869
|
},
|
|
1870
|
+
criticalInformation: {
|
|
1871
|
+
heading: "Πριν κλείσετε ραντεβού",
|
|
1872
|
+
accept: "Έχω διαβάσει και αποδέχομαι αυτές τις πληροφορίες"
|
|
1873
|
+
},
|
|
1870
1874
|
consent: {
|
|
1871
1875
|
privacy: {
|
|
1872
1876
|
label: "Έχω διαβάσει και αποδέχομαι την <policyLink>πολιτική απορρήτου</policyLink>"
|
|
@@ -1935,6 +1935,10 @@ export declare const enUi: {
|
|
|
1935
1935
|
readonly returningPatient: {
|
|
1936
1936
|
readonly label: "I'm already a patient at this practice";
|
|
1937
1937
|
};
|
|
1938
|
+
readonly criticalInformation: {
|
|
1939
|
+
readonly heading: "Before you book";
|
|
1940
|
+
readonly accept: "I have read and accept this information";
|
|
1941
|
+
};
|
|
1938
1942
|
readonly consent: {
|
|
1939
1943
|
readonly privacy: {
|
|
1940
1944
|
readonly label: "I have read and accept the <policyLink>privacy policy</policyLink>";
|
package/dist/i18n/locales/en.js
CHANGED
|
@@ -1918,6 +1918,10 @@ const e = {
|
|
|
1918
1918
|
returningPatient: {
|
|
1919
1919
|
label: "I'm already a patient at this practice"
|
|
1920
1920
|
},
|
|
1921
|
+
criticalInformation: {
|
|
1922
|
+
heading: "Before you book",
|
|
1923
|
+
accept: "I have read and accept this information"
|
|
1924
|
+
},
|
|
1921
1925
|
consent: {
|
|
1922
1926
|
privacy: {
|
|
1923
1927
|
label: "I have read and accept the <policyLink>privacy policy</policyLink>"
|
|
@@ -1867,6 +1867,10 @@ export declare const esUi: {
|
|
|
1867
1867
|
readonly returningPatient: {
|
|
1868
1868
|
readonly label: "Ya soy paciente de esta clínica";
|
|
1869
1869
|
};
|
|
1870
|
+
readonly criticalInformation: {
|
|
1871
|
+
readonly heading: "Antes de reservar";
|
|
1872
|
+
readonly accept: "He leído y acepto esta información";
|
|
1873
|
+
};
|
|
1870
1874
|
readonly consent: {
|
|
1871
1875
|
readonly privacy: {
|
|
1872
1876
|
readonly label: "He leído y acepto la <policyLink>política de privacidad</policyLink>";
|
package/dist/i18n/locales/es.js
CHANGED
|
@@ -1867,6 +1867,10 @@ const e = {
|
|
|
1867
1867
|
returningPatient: {
|
|
1868
1868
|
label: "Ya soy paciente de esta clínica"
|
|
1869
1869
|
},
|
|
1870
|
+
criticalInformation: {
|
|
1871
|
+
heading: "Antes de reservar",
|
|
1872
|
+
accept: "He leído y acepto esta información"
|
|
1873
|
+
},
|
|
1870
1874
|
consent: {
|
|
1871
1875
|
privacy: {
|
|
1872
1876
|
label: "He leído y acepto la <policyLink>política de privacidad</policyLink>"
|