@alfadocs/ui-kit 1.10.1 → 1.12.4
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/{actions-cell-renderer-xfSYiTXQ.js → actions-cell-renderer-BCEjn3-f.js} +2 -2
- package/dist/_chunks/{anamnesis-summary-rows-d44s_whc.js → anamnesis-summary-rows-BfhxWPO3.js} +1421 -1418
- package/dist/_chunks/appointment-timeline-DCn0Jx55.js +403 -0
- package/dist/_chunks/{balance-badge-cell-C_Qz76x7.js → balance-badge-cell-BrlikHfT.js} +317 -290
- package/dist/_chunks/booking-CBHKdsZl.js +2906 -0
- package/dist/_chunks/{chart-Bkr1Sh4o.js → chart-C6eHTxkO.js} +2 -2
- package/dist/_chunks/{contact-profile-card-CE9OJKcl.js → contact-profile-card-BMIBr5s9.js} +104 -125
- package/dist/_chunks/{control-room-rail-Cj2iX9h_.js → control-room-rail-iO_BCaq1.js} +2 -2
- package/dist/_chunks/{editable-currency-cell-renderer-zLf_bXvL.js → editable-currency-cell-renderer-B7TVZ5ZJ.js} +2 -2
- package/dist/_chunks/{face-scheme-BfDi4YkW.js → face-scheme-CZaKm6fG.js} +2 -2
- package/dist/_chunks/{file-manager-Df6hyUYg.js → file-manager-Moc7sUFj.js} +3 -3
- package/dist/_chunks/format-price-DNqXPa_q.js +61 -0
- package/dist/_chunks/{header-settings-CVC_davE.js → header-settings-J-ZCAfir.js} +2 -2
- package/dist/_chunks/{icon-button-group-D6SVMteH.js → icon-button-group-VCCod3Hz.js} +154 -145
- package/dist/_chunks/{link-cell-renderer-Cp2MSlJl.js → link-cell-renderer-CenJx-_7.js} +197 -181
- package/dist/_chunks/{marketplace-app-shell-Chfdia7m.js → marketplace-app-shell-DDQXQ8hX.js} +2 -2
- package/dist/_chunks/{notes-panel-e9cJWVRg.js → notes-panel-CymneXtl.js} +93 -91
- package/dist/_chunks/{practice-results-BEsAdW-B.js → practice-results-D7ygCj_W.js} +333 -291
- package/dist/_chunks/{signature-request-CW30B77U.js → signature-request-DVDTKLjM.js} +2 -2
- package/dist/_chunks/{stepper-accordion-BeVMZPuG.js → stepper-accordion-DmVykr5F.js} +91 -88
- package/dist/_chunks/{theme-toggle-DuMhQNFS.js → theme-toggle-uEwoKjl3.js} +2 -2
- package/dist/_chunks/{tool-rail-CHyUmulN.js → tool-rail-8Scslq3X.js} +2 -2
- package/dist/_chunks/{whatsapp-button-Ca9towA4.js → whatsapp-button-CuFIHJzG.js} +27 -19
- package/dist/agent-catalog.json +12 -5
- package/dist/agent-i18n/en.json +4 -3
- package/dist/components/_shared/format-price.d.ts +21 -0
- package/dist/components/_shared/index.d.ts +1 -0
- package/dist/components/_shared/stepper.d.ts +28 -2
- package/dist/components/appointment-card/appointment-card.d.ts +1 -1
- package/dist/components/appointment-timeline/appointment-timeline.d.ts +8 -0
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/booking/booking-types.d.ts +15 -2
- package/dist/components/booking/index.js +1 -1
- package/dist/components/chart/index.js +1 -1
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/data-table/filters/date-range-filter.d.ts +22 -0
- package/dist/components/data-table/index.js +3 -3
- package/dist/components/face-scheme/index.js +1 -1
- package/dist/components/file-manager/index.js +1 -1
- package/dist/components/header-settings/index.js +1 -1
- package/dist/components/icon-button-group/index.js +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +6 -0
- package/dist/components/patient-table/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/practice-results/practice-results.d.ts +18 -0
- package/dist/components/stepper-accordion/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/tool-rail/tool-rail.d.ts +1 -1
- package/dist/components/whatsapp-button/index.js +1 -1
- package/dist/host-compat.css +7 -1
- package/dist/i18n/locales/ar.d.ts +4 -0
- package/dist/i18n/locales/ar.js +5 -1
- package/dist/i18n/locales/de.d.ts +5 -1
- package/dist/i18n/locales/de.js +6 -2
- package/dist/i18n/locales/el.d.ts +4 -0
- package/dist/i18n/locales/el.js +5 -1
- package/dist/i18n/locales/en.d.ts +4 -0
- package/dist/i18n/locales/en.js +5 -1
- package/dist/i18n/locales/es.d.ts +5 -1
- package/dist/i18n/locales/es.js +6 -2
- package/dist/i18n/locales/fr.d.ts +5 -1
- package/dist/i18n/locales/fr.js +6 -2
- package/dist/i18n/locales/hi.d.ts +4 -0
- package/dist/i18n/locales/hi.js +5 -1
- package/dist/i18n/locales/it.d.ts +4 -0
- package/dist/i18n/locales/it.js +5 -1
- package/dist/i18n/locales/ja.d.ts +4 -0
- package/dist/i18n/locales/ja.js +5 -1
- package/dist/i18n/locales/nl.d.ts +5 -1
- package/dist/i18n/locales/nl.js +6 -2
- package/dist/i18n/locales/pl.d.ts +4 -0
- package/dist/i18n/locales/pl.js +5 -1
- package/dist/i18n/locales/pt.d.ts +5 -1
- package/dist/i18n/locales/pt.js +6 -2
- package/dist/i18n/locales/ro.d.ts +4 -0
- package/dist/i18n/locales/ro.js +5 -1
- package/dist/i18n/locales/ru.d.ts +4 -0
- package/dist/i18n/locales/ru.js +5 -1
- package/dist/i18n/locales/sq.d.ts +4 -0
- package/dist/i18n/locales/sq.js +5 -1
- package/dist/i18n/locales/sv.d.ts +4 -0
- package/dist/i18n/locales/sv.js +5 -1
- package/dist/i18n/locales/tr.d.ts +4 -0
- package/dist/i18n/locales/tr.js +5 -1
- package/dist/i18n/locales/zh.d.ts +4 -0
- package/dist/i18n/locales/zh.js +5 -1
- package/dist/index.js +20 -20
- package/dist/locales/ar.json +5 -1
- package/dist/locales/de.json +6 -2
- package/dist/locales/el.json +5 -1
- package/dist/locales/en.json +5 -1
- package/dist/locales/es.json +6 -2
- package/dist/locales/fr.json +6 -2
- package/dist/locales/hi.json +5 -1
- package/dist/locales/it.json +5 -1
- package/dist/locales/ja.json +5 -1
- package/dist/locales/nl.json +6 -2
- package/dist/locales/pl.json +5 -1
- package/dist/locales/pt.json +6 -2
- package/dist/locales/ro.json +5 -1
- package/dist/locales/ru.json +5 -1
- package/dist/locales/sq.json +5 -1
- package/dist/locales/sv.json +5 -1
- package/dist/locales/tr.json +5 -1
- package/dist/locales/zh.json +5 -1
- package/dist/patterns/anamnesis/anamnesis-config.d.ts +18 -7
- package/dist/patterns/anamnesis/anamnesis-types.d.ts +8 -0
- package/dist/patterns/anamnesis/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/tokens.css +1 -1
- package/package.json +1 -1
- package/dist/_chunks/appointment-timeline-0mwtpErq.js +0 -388
- package/dist/_chunks/booking-DHkKcUIl.js +0 -2713
- package/dist/_chunks/languages-CGLX6Qpe.js +0 -19
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { jsx as t, jsxs as p, Fragment as
|
|
2
|
-
import { forwardRef as
|
|
1
|
+
import { jsx as t, jsxs as p, Fragment as tt } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as nt, useState as me, useRef as A, useMemo as B, useImperativeHandle as at, useCallback as $, useEffect as W } from "react";
|
|
3
3
|
import { c as j } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as C } from "react-i18next";
|
|
5
5
|
import { A as Y } from "./alert-CiJT540z.js";
|
|
6
6
|
import { A as Re } from "./avatar-BNQNhoyL.js";
|
|
7
7
|
import { B as ee } from "./button-nJaPh_HC.js";
|
|
8
|
-
import { D
|
|
9
|
-
import { E as
|
|
10
|
-
import { M as
|
|
11
|
-
import { R as
|
|
8
|
+
import { D } from "./dropdown-menu-DU-Hrf33.js";
|
|
9
|
+
import { E as st } from "./empty-state-X0sVPfVo.js";
|
|
10
|
+
import { M as it } from "./map-view-CCAlC9IL.js";
|
|
11
|
+
import { R as Ne } from "./rating-BYbUowdK.js";
|
|
12
12
|
import { S as _ } from "./sheet-BSznOyJs.js";
|
|
13
|
-
import { S as
|
|
14
|
-
import { S as
|
|
15
|
-
import { B as
|
|
16
|
-
import { u as
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
13
|
+
import { S as rt } from "./skeleton-CZbwyJAA.js";
|
|
14
|
+
import { S as ot } from "./spinner-hbwuKwMf.js";
|
|
15
|
+
import { B as O } from "./badge-sTusUqZD.js";
|
|
16
|
+
import { u as ct } from "./use-media-query-CcAx5SMM.js";
|
|
17
|
+
import { L as Se, f as lt, B as dt } from "./format-price-DNqXPa_q.js";
|
|
18
|
+
import { u as ut } from "./registry-DvAUVLHh.js";
|
|
19
|
+
import { c as Pe } from "./createLucideIcon-DhHxpK9K.js";
|
|
20
|
+
import { R as pt } from "./refresh-cw-DnI0cLFC.js";
|
|
20
21
|
import { C as Me } from "./chevron-down-DWE7GSq9.js";
|
|
21
22
|
import { M as ne } from "./map-pin-BaY37-Km.js";
|
|
22
|
-
import { L as Pe } from "./languages-CGLX6Qpe.js";
|
|
23
23
|
import { S as Ae } from "./shield-check-DCJALLVh.js";
|
|
24
24
|
import { H as _e } from "./heart--qCA4ffe.js";
|
|
25
|
-
import { C as
|
|
25
|
+
import { C as mt } from "./calendar-clock-hbObjfGY.js";
|
|
26
26
|
/**
|
|
27
27
|
* @license lucide-react v1.22.0 - ISC
|
|
28
28
|
*
|
|
29
29
|
* This source code is licensed under the ISC license.
|
|
30
30
|
* See the LICENSE file in the root directory of this source tree.
|
|
31
31
|
*/
|
|
32
|
-
const
|
|
32
|
+
const ft = [
|
|
33
33
|
["path", { d: "M16 19h6", key: "xwg31i" }],
|
|
34
34
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
35
35
|
["path", { d: "M19 16v6", key: "tddt3s" }],
|
|
36
36
|
["path", { d: "M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5", key: "1glfrc" }],
|
|
37
37
|
["path", { d: "M3 10h18", key: "8toen8" }],
|
|
38
38
|
["path", { d: "M8 2v4", key: "1cmpym" }]
|
|
39
|
-
],
|
|
39
|
+
], ht = Pe("calendar-plus", ft);
|
|
40
40
|
/**
|
|
41
41
|
* @license lucide-react v1.22.0 - ISC
|
|
42
42
|
*
|
|
43
43
|
* This source code is licensed under the ISC license.
|
|
44
44
|
* See the LICENSE file in the root directory of this source tree.
|
|
45
45
|
*/
|
|
46
|
-
const
|
|
46
|
+
const gt = [
|
|
47
47
|
[
|
|
48
48
|
"path",
|
|
49
49
|
{
|
|
@@ -53,7 +53,7 @@ const mt = [
|
|
|
53
53
|
],
|
|
54
54
|
["path", { d: "M15 5.764v15", key: "1pn4in" }],
|
|
55
55
|
["path", { d: "M9 3.236v15", key: "1uimfh" }]
|
|
56
|
-
],
|
|
56
|
+
], vt = Pe("map", gt), bt = {
|
|
57
57
|
id: "practice-results",
|
|
58
58
|
// `scroll` backs scroll_to_result; `pick` backs focus_pin (a non-persisting
|
|
59
59
|
// pin highlight). The active variant is consumer-owned via props, so there is
|
|
@@ -129,10 +129,10 @@ const mt = [
|
|
|
129
129
|
},
|
|
130
130
|
item: {
|
|
131
131
|
attr: "data-result-id",
|
|
132
|
-
description: 'Stable result id emitted on each rendered result card. Used by scroll_to_result / focus_pin to address a single result. Each card also carries two anchors: data-component="practice-result-open-cta" (practice page) and data-component="practice-result-book-cta" (booking flow; data-slot-aware="true" when it deep-links to a next slot).'
|
|
132
|
+
description: 'Stable result id emitted on each rendered result card. Used by scroll_to_result / focus_pin to address a single result. Each card also carries two anchors: data-component="practice-result-open-cta" (practice page) and data-component="practice-result-book-cta" (booking flow; data-slot-aware="true" when it deep-links to a next slot). Card content carries its own read-only hooks: data-component="practice-result-tagline", data-component="practice-result-description", and data-component="practice-result-price" (the kit-formatted first-visit cost — present only when the practice set one).'
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
|
-
},
|
|
135
|
+
}, yt = 13, xt = [
|
|
136
136
|
"distance",
|
|
137
137
|
"rating",
|
|
138
138
|
"next-available",
|
|
@@ -151,27 +151,27 @@ function F(e, n) {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
function Q(e, n, s, r) {
|
|
154
|
-
const i = e.findIndex((
|
|
154
|
+
const i = e.findIndex((l) => l.id === n);
|
|
155
155
|
if (i < 0) return;
|
|
156
156
|
const a = e[i];
|
|
157
157
|
a && (F("serp_result_clicked", { resultId: n, source: s, position: i }), r(a, s));
|
|
158
158
|
}
|
|
159
|
-
function
|
|
160
|
-
const r = (n.lat - e.lat) * Math.PI / 180, i = (n.lng - e.lng) * Math.PI / 180, a = e.lat * Math.PI / 180,
|
|
159
|
+
function kt(e, n) {
|
|
160
|
+
const r = (n.lat - e.lat) * Math.PI / 180, i = (n.lng - e.lng) * Math.PI / 180, a = e.lat * Math.PI / 180, l = n.lat * Math.PI / 180, d = Math.sin(r / 2), c = Math.sin(i / 2), u = d * d + Math.cos(a) * Math.cos(l) * c * c;
|
|
161
161
|
return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(u)));
|
|
162
162
|
}
|
|
163
|
-
function
|
|
163
|
+
function Ct(e, n, s) {
|
|
164
164
|
var i;
|
|
165
165
|
const r = [];
|
|
166
166
|
for (const a of e) {
|
|
167
|
-
const
|
|
168
|
-
(u) => typeof u[
|
|
167
|
+
const l = a.field ?? a.key, d = (((i = s == null ? void 0 : s[a.key]) == null ? void 0 : i.length) ?? 0) > 0, c = a.type === "boolean" || a.type !== "options" && a.options.length === 0 && (d || n.some(
|
|
168
|
+
(u) => typeof u[l] == "boolean"
|
|
169
169
|
));
|
|
170
|
-
!
|
|
170
|
+
!c && a.options.length === 0 || r.push({ ...a, boolean: c, booleanField: l });
|
|
171
171
|
}
|
|
172
172
|
return r;
|
|
173
173
|
}
|
|
174
|
-
function
|
|
174
|
+
function wt(e, n, s) {
|
|
175
175
|
return !n || Object.keys(n).length === 0 ? e : e.filter((r) => {
|
|
176
176
|
for (const i of s) {
|
|
177
177
|
const a = n[i.key];
|
|
@@ -180,27 +180,27 @@ function xt(e, n, s) {
|
|
|
180
180
|
if (r[i.booleanField] !== !0) return !1;
|
|
181
181
|
continue;
|
|
182
182
|
}
|
|
183
|
-
const
|
|
184
|
-
if (!Array.isArray(
|
|
183
|
+
const l = i.key === "insurance" ? r.insurances : i.key === "language" ? r.languages : r[i.key];
|
|
184
|
+
if (!Array.isArray(l) || !(i.multi ? a.some((c) => l.includes(c)) : l.includes(a[0]))) return !1;
|
|
185
185
|
}
|
|
186
186
|
return !0;
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
|
-
function
|
|
189
|
+
function Rt(e, n, s) {
|
|
190
190
|
const r = e.map((a) => {
|
|
191
|
-
const
|
|
192
|
-
return { result: a, distanceKm:
|
|
193
|
-
}), i = (a,
|
|
194
|
-
var d,
|
|
191
|
+
const l = a.location ? a.location.distanceKm ?? (s ? kt(s, a.location) : void 0) : void 0;
|
|
192
|
+
return { result: a, distanceKm: l };
|
|
193
|
+
}), i = (a, l) => {
|
|
194
|
+
var d, c, u, o;
|
|
195
195
|
switch (n) {
|
|
196
196
|
case "distance":
|
|
197
|
-
return a.distanceKm == null &&
|
|
197
|
+
return a.distanceKm == null && l.distanceKm == null ? 0 : a.distanceKm == null ? 1 : l.distanceKm == null ? -1 : a.distanceKm - l.distanceKm;
|
|
198
198
|
case "rating": {
|
|
199
199
|
const m = ((d = a.result.rating) == null ? void 0 : d.value) ?? -1;
|
|
200
|
-
return (((
|
|
200
|
+
return (((c = l.result.rating) == null ? void 0 : c.value) ?? -1) - m;
|
|
201
201
|
}
|
|
202
202
|
case "next-available": {
|
|
203
|
-
const m = ((u = a.result.nextAvailableSlot) == null ? void 0 : u.dateTime) ?? "", f = ((o =
|
|
203
|
+
const m = ((u = a.result.nextAvailableSlot) == null ? void 0 : u.dateTime) ?? "", f = ((o = l.result.nextAvailableSlot) == null ? void 0 : o.dateTime) ?? "";
|
|
204
204
|
return !m && !f ? 0 : m ? f ? m.localeCompare(f) : -1 : 1;
|
|
205
205
|
}
|
|
206
206
|
case "relevance":
|
|
@@ -209,24 +209,24 @@ function kt(e, n, s) {
|
|
|
209
209
|
}
|
|
210
210
|
};
|
|
211
211
|
return [...r].sort(i).map(
|
|
212
|
-
({ result: a, distanceKm:
|
|
212
|
+
({ result: a, distanceKm: l }) => l != null && a.location ? {
|
|
213
213
|
...a,
|
|
214
|
-
location: { ...a.location, distanceKm:
|
|
214
|
+
location: { ...a.location, distanceKm: l }
|
|
215
215
|
} : a
|
|
216
216
|
);
|
|
217
217
|
}
|
|
218
|
-
function
|
|
218
|
+
function Ce(e) {
|
|
219
219
|
let n = -1 / 0, s = 1 / 0, r = -1 / 0, i = 1 / 0, a = !1;
|
|
220
|
-
for (const
|
|
221
|
-
if (!
|
|
220
|
+
for (const l of e) {
|
|
221
|
+
if (!l.location) continue;
|
|
222
222
|
a = !0;
|
|
223
|
-
const { lat: d, lng:
|
|
224
|
-
d > n && (n = d), d < s && (s = d),
|
|
223
|
+
const { lat: d, lng: c } = l.location;
|
|
224
|
+
d > n && (n = d), d < s && (s = d), c > r && (r = c), c < i && (i = c);
|
|
225
225
|
}
|
|
226
226
|
if (a)
|
|
227
227
|
return { north: n, south: s, east: r, west: i };
|
|
228
228
|
}
|
|
229
|
-
const
|
|
229
|
+
const Nt = j(
|
|
230
230
|
"ds:flex ds:w-full ds:flex-col ds:text-[var(--foreground)] ds:gap-[var(--spacing-md)]",
|
|
231
231
|
{
|
|
232
232
|
variants: {
|
|
@@ -286,7 +286,7 @@ const te = j(
|
|
|
286
286
|
},
|
|
287
287
|
defaultVariants: { state: "idle" }
|
|
288
288
|
}
|
|
289
|
-
),
|
|
289
|
+
), St = j(
|
|
290
290
|
"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
|
|
291
291
|
{
|
|
292
292
|
variants: {
|
|
@@ -305,7 +305,7 @@ const te = j(
|
|
|
305
305
|
},
|
|
306
306
|
defaultVariants: { placement: "inline" }
|
|
307
307
|
}
|
|
308
|
-
),
|
|
308
|
+
), Pt = j(
|
|
309
309
|
[
|
|
310
310
|
"ds:ms-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
|
|
311
311
|
"ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]",
|
|
@@ -316,19 +316,19 @@ const te = j(
|
|
|
316
316
|
"ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
|
|
317
317
|
].join(" ")
|
|
318
318
|
);
|
|
319
|
-
function
|
|
319
|
+
function ze({
|
|
320
320
|
facets: e,
|
|
321
321
|
value: n,
|
|
322
322
|
onChange: s,
|
|
323
323
|
floating: r
|
|
324
324
|
}) {
|
|
325
|
-
const { t: i } = C(), a =
|
|
325
|
+
const { t: i } = C(), a = B(() => n ?? {}, [n]), l = B(
|
|
326
326
|
() => Object.values(a).some((o) => o && o.length > 0),
|
|
327
327
|
[a]
|
|
328
328
|
), d = (o, m) => {
|
|
329
329
|
const f = { ...a };
|
|
330
330
|
m.length === 0 ? delete f[o] : f[o] = m, s(f), F("serp_filter_changed", { key: o, values: m });
|
|
331
|
-
},
|
|
331
|
+
}, c = (o) => {
|
|
332
332
|
var f;
|
|
333
333
|
const m = (((f = a[o]) == null ? void 0 : f.length) ?? 0) > 0;
|
|
334
334
|
d(o, m ? [] : ["true"]);
|
|
@@ -343,7 +343,7 @@ function Le({
|
|
|
343
343
|
"data-component": "practice-results-filters",
|
|
344
344
|
role: "group",
|
|
345
345
|
"aria-label": i("practiceResults.filters.label"),
|
|
346
|
-
className:
|
|
346
|
+
className: St({
|
|
347
347
|
placement: r ? "floating" : "inline"
|
|
348
348
|
}),
|
|
349
349
|
children: [
|
|
@@ -356,7 +356,7 @@ function Le({
|
|
|
356
356
|
type: "button",
|
|
357
357
|
"aria-pressed": x,
|
|
358
358
|
"aria-label": o.label,
|
|
359
|
-
onClick: () =>
|
|
359
|
+
onClick: () => c(o.key),
|
|
360
360
|
className: te({
|
|
361
361
|
state: x ? "active" : "idle"
|
|
362
362
|
}),
|
|
@@ -365,8 +365,8 @@ function Le({
|
|
|
365
365
|
o.key
|
|
366
366
|
);
|
|
367
367
|
const b = x ? ` (${f.length})` : "";
|
|
368
|
-
return /* @__PURE__ */ p(
|
|
369
|
-
/* @__PURE__ */ t(
|
|
368
|
+
return /* @__PURE__ */ p(D.Root, { children: [
|
|
369
|
+
/* @__PURE__ */ t(D.Trigger, { asChild: !0, children: /* @__PURE__ */ p(
|
|
370
370
|
"button",
|
|
371
371
|
{
|
|
372
372
|
type: "button",
|
|
@@ -389,8 +389,8 @@ function Le({
|
|
|
389
389
|
]
|
|
390
390
|
}
|
|
391
391
|
) }),
|
|
392
|
-
/* @__PURE__ */ t(
|
|
393
|
-
|
|
392
|
+
/* @__PURE__ */ t(D.Content, { sideOffset: 8, align: "start", children: o.options.map((y) => /* @__PURE__ */ t(
|
|
393
|
+
D.CheckboxItem,
|
|
394
394
|
{
|
|
395
395
|
checked: f.includes(y.value),
|
|
396
396
|
onSelect: (h) => {
|
|
@@ -402,14 +402,14 @@ function Le({
|
|
|
402
402
|
)) })
|
|
403
403
|
] }, o.key);
|
|
404
404
|
}),
|
|
405
|
-
|
|
405
|
+
l ? /* @__PURE__ */ t(
|
|
406
406
|
"button",
|
|
407
407
|
{
|
|
408
408
|
type: "button",
|
|
409
409
|
onClick: () => {
|
|
410
410
|
s({}), F("serp_filter_changed", { key: "*", values: [] });
|
|
411
411
|
},
|
|
412
|
-
className:
|
|
412
|
+
className: Pt(),
|
|
413
413
|
children: i("practiceResults.filters.clear")
|
|
414
414
|
}
|
|
415
415
|
) : null
|
|
@@ -431,8 +431,8 @@ function ue({ value: e, onChange: n }) {
|
|
|
431
431
|
return s("practiceResults.sort.relevance");
|
|
432
432
|
}
|
|
433
433
|
};
|
|
434
|
-
return /* @__PURE__ */ p(
|
|
435
|
-
/* @__PURE__ */ t(
|
|
434
|
+
return /* @__PURE__ */ p(D.Root, { children: [
|
|
435
|
+
/* @__PURE__ */ t(D.Trigger, { asChild: !0, children: /* @__PURE__ */ p(
|
|
436
436
|
"button",
|
|
437
437
|
{
|
|
438
438
|
type: "button",
|
|
@@ -448,30 +448,30 @@ function ue({ value: e, onChange: n }) {
|
|
|
448
448
|
]
|
|
449
449
|
}
|
|
450
450
|
) }),
|
|
451
|
-
/* @__PURE__ */ t(
|
|
452
|
-
|
|
451
|
+
/* @__PURE__ */ t(D.Content, { sideOffset: 8, align: "end", children: /* @__PURE__ */ t(
|
|
452
|
+
D.RadioGroup,
|
|
453
453
|
{
|
|
454
454
|
value: e,
|
|
455
455
|
onValueChange: (i) => {
|
|
456
456
|
const a = i;
|
|
457
457
|
a !== e && (n(a), F("serp_sort_changed", { sort: a }));
|
|
458
458
|
},
|
|
459
|
-
children:
|
|
459
|
+
children: xt.map((i) => /* @__PURE__ */ t(D.RadioItem, { value: i, children: r(i) }, i))
|
|
460
460
|
}
|
|
461
461
|
) })
|
|
462
462
|
] });
|
|
463
463
|
}
|
|
464
|
-
function
|
|
465
|
-
const { t: n, i18n: s } = C(), r =
|
|
464
|
+
function Le({ distanceKm: e }) {
|
|
465
|
+
const { t: n, i18n: s } = C(), r = B(() => {
|
|
466
466
|
if (e < 1) return n("practiceResults.distance.below");
|
|
467
467
|
const i = new Intl.NumberFormat(s.language, {
|
|
468
468
|
maximumFractionDigits: 1
|
|
469
469
|
}).format(e);
|
|
470
470
|
return n("practiceResults.distance.km", { distance: i });
|
|
471
471
|
}, [e, n, s.language]);
|
|
472
|
-
return /* @__PURE__ */ t(
|
|
472
|
+
return /* @__PURE__ */ t(O, { variant: "neutral", leading: /* @__PURE__ */ t(ne, { "aria-hidden": "true" }), children: r });
|
|
473
473
|
}
|
|
474
|
-
const
|
|
474
|
+
const we = j(
|
|
475
475
|
[
|
|
476
476
|
"ds:inline-size-[12rem] ds:block-size-[8rem] ds:shrink-0",
|
|
477
477
|
"ds:rounded-[var(--radius-md)] ds:overflow-hidden"
|
|
@@ -490,12 +490,12 @@ const Ce = j(
|
|
|
490
490
|
defaultVariants: { state: "placeholder" }
|
|
491
491
|
}
|
|
492
492
|
);
|
|
493
|
-
function
|
|
493
|
+
function Mt() {
|
|
494
494
|
if (typeof document > "u") return "4945a3";
|
|
495
495
|
const e = getComputedStyle(document.documentElement).getPropertyValue("--map-marker-color").trim(), n = /^#?([0-9a-fA-F]{6})$/.exec(e);
|
|
496
496
|
return n ? n[1] : "4945a3";
|
|
497
497
|
}
|
|
498
|
-
function
|
|
498
|
+
function At({
|
|
499
499
|
apiKey: e,
|
|
500
500
|
center: n,
|
|
501
501
|
zoom: s = 14,
|
|
@@ -507,24 +507,24 @@ function Nt({
|
|
|
507
507
|
"div",
|
|
508
508
|
{
|
|
509
509
|
"aria-hidden": r ? void 0 : "true",
|
|
510
|
-
className:
|
|
510
|
+
className: we({ state: "placeholder" }),
|
|
511
511
|
children: [
|
|
512
512
|
/* @__PURE__ */ t(ne, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
|
|
513
513
|
r ? /* @__PURE__ */ t("span", { className: "type-meta ds:[overflow-wrap:anywhere]", children: r }) : null
|
|
514
514
|
]
|
|
515
515
|
}
|
|
516
516
|
);
|
|
517
|
-
const a =
|
|
517
|
+
const a = Mt(), l = `https://maps.googleapis.com/maps/api/staticmap?center=${n.lat},${n.lng}&zoom=${s}&size=240x160&scale=2&markers=color:0x${a}%7C${n.lat},${n.lng}&key=${encodeURIComponent(e)}`;
|
|
518
518
|
return /* @__PURE__ */ t(
|
|
519
519
|
"img",
|
|
520
520
|
{
|
|
521
|
-
src:
|
|
521
|
+
src: l,
|
|
522
522
|
alt: i("practiceResults.thumbnail.alt"),
|
|
523
523
|
loading: "lazy",
|
|
524
524
|
decoding: "async",
|
|
525
525
|
width: 240,
|
|
526
526
|
height: 160,
|
|
527
|
-
className:
|
|
527
|
+
className: we({ state: "image" })
|
|
528
528
|
}
|
|
529
529
|
);
|
|
530
530
|
}
|
|
@@ -538,7 +538,7 @@ function Fe({ tagline: e }) {
|
|
|
538
538
|
}
|
|
539
539
|
) : null;
|
|
540
540
|
}
|
|
541
|
-
const
|
|
541
|
+
const _t = j(
|
|
542
542
|
"type-body-sm ds:m-0 ds:text-[var(--muted-foreground)] ds:whitespace-pre-line ds:break-words",
|
|
543
543
|
{
|
|
544
544
|
variants: {
|
|
@@ -550,7 +550,7 @@ const Mt = j(
|
|
|
550
550
|
defaultVariants: { density: "compact" }
|
|
551
551
|
}
|
|
552
552
|
);
|
|
553
|
-
function
|
|
553
|
+
function Be({
|
|
554
554
|
description: e,
|
|
555
555
|
density: n
|
|
556
556
|
}) {
|
|
@@ -558,16 +558,44 @@ function He({
|
|
|
558
558
|
"p",
|
|
559
559
|
{
|
|
560
560
|
"data-component": "practice-result-description",
|
|
561
|
-
className:
|
|
561
|
+
className: _t({ density: n }),
|
|
562
562
|
children: e
|
|
563
563
|
}
|
|
564
564
|
) : null;
|
|
565
565
|
}
|
|
566
|
-
function
|
|
566
|
+
function He({
|
|
567
|
+
cents: e,
|
|
568
|
+
currencyCode: n = "EUR"
|
|
569
|
+
}) {
|
|
570
|
+
const { t: s, i18n: r } = C(), i = B(
|
|
571
|
+
() => e == null ? void 0 : lt(e, n, r.language ?? "en"),
|
|
572
|
+
[e, n, r.language]
|
|
573
|
+
);
|
|
574
|
+
return i === void 0 ? null : /* @__PURE__ */ p(
|
|
575
|
+
"span",
|
|
576
|
+
{
|
|
577
|
+
"data-component": "practice-result-price",
|
|
578
|
+
className: "type-body-sm ds:inline-flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)] ds:text-[var(--muted-foreground)]",
|
|
579
|
+
children: [
|
|
580
|
+
/* @__PURE__ */ t(
|
|
581
|
+
dt,
|
|
582
|
+
{
|
|
583
|
+
"aria-hidden": "true",
|
|
584
|
+
className: "ds:size-4 ds:shrink-0 ds:text-[var(--primary)]"
|
|
585
|
+
}
|
|
586
|
+
),
|
|
587
|
+
s("practiceResults.card.firstVisitPrice"),
|
|
588
|
+
/* @__PURE__ */ t("span", { className: "ds:sr-only", children: ": " }),
|
|
589
|
+
/* @__PURE__ */ t("span", { className: "ds:font-[var(--font-weight-medium)] ds:text-[var(--foreground)]", children: i })
|
|
590
|
+
]
|
|
591
|
+
}
|
|
592
|
+
);
|
|
593
|
+
}
|
|
594
|
+
function $e({ time: e }) {
|
|
567
595
|
const { t: n } = C();
|
|
568
596
|
return /* @__PURE__ */ p("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
569
597
|
/* @__PURE__ */ t(
|
|
570
|
-
|
|
598
|
+
mt,
|
|
571
599
|
{
|
|
572
600
|
"aria-hidden": "true",
|
|
573
601
|
className: "ds:size-4 ds:text-[var(--primary)]"
|
|
@@ -576,7 +604,7 @@ function Be({ time: e }) {
|
|
|
576
604
|
n("practiceResults.nextSlot.summary", { time: e })
|
|
577
605
|
] });
|
|
578
606
|
}
|
|
579
|
-
function
|
|
607
|
+
function De({
|
|
580
608
|
result: e,
|
|
581
609
|
openLabel: n,
|
|
582
610
|
bookLabel: s,
|
|
@@ -584,7 +612,7 @@ function $e({
|
|
|
584
612
|
onOpenClick: i,
|
|
585
613
|
onBookClick: a
|
|
586
614
|
}) {
|
|
587
|
-
const { t:
|
|
615
|
+
const { t: l } = C(), d = e.nextAvailableSlot, c = (d == null ? void 0 : d.bookingHref) ?? e.bookingHref ?? e.href, u = d && r ? l("practiceResults.nextSlot.cta", { time: r }) : s;
|
|
588
616
|
return /* @__PURE__ */ p("div", { className: "ds:mt-[var(--spacing-xs)] ds:flex ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)]", children: [
|
|
589
617
|
/* @__PURE__ */ t(
|
|
590
618
|
ee,
|
|
@@ -608,14 +636,14 @@ function $e({
|
|
|
608
636
|
intent: "primary",
|
|
609
637
|
size: "sm",
|
|
610
638
|
asChild: !0,
|
|
611
|
-
startIcon: /* @__PURE__ */ t(
|
|
639
|
+
startIcon: /* @__PURE__ */ t(ht, { "aria-hidden": "true" }),
|
|
612
640
|
onClick: (o) => {
|
|
613
641
|
o.stopPropagation(), a();
|
|
614
642
|
},
|
|
615
643
|
children: /* @__PURE__ */ p(
|
|
616
644
|
"a",
|
|
617
645
|
{
|
|
618
|
-
href:
|
|
646
|
+
href: c,
|
|
619
647
|
"data-component": "practice-result-book-cta",
|
|
620
648
|
"data-slot-aware": d ? "true" : void 0,
|
|
621
649
|
children: [
|
|
@@ -629,7 +657,7 @@ function $e({
|
|
|
629
657
|
)
|
|
630
658
|
] });
|
|
631
659
|
}
|
|
632
|
-
const
|
|
660
|
+
const Oe = j(
|
|
633
661
|
[
|
|
634
662
|
"ds:relative ds:flex ds:w-full ds:cursor-pointer",
|
|
635
663
|
"ds:rounded-[var(--radius-lg)]",
|
|
@@ -658,23 +686,23 @@ const De = j(
|
|
|
658
686
|
defaultVariants: { density: "compact" }
|
|
659
687
|
}
|
|
660
688
|
);
|
|
661
|
-
function
|
|
689
|
+
function It({
|
|
662
690
|
result: e,
|
|
663
691
|
highlighted: n,
|
|
664
692
|
onSelect: s,
|
|
665
693
|
onOpenClick: r,
|
|
666
694
|
onHover: i,
|
|
667
695
|
density: a = "compact",
|
|
668
|
-
openLabel:
|
|
696
|
+
openLabel: l,
|
|
669
697
|
bookLabel: d,
|
|
670
|
-
onBookClick:
|
|
698
|
+
onBookClick: c,
|
|
671
699
|
nextSlotText: u,
|
|
672
700
|
maxInsuranceChips: o = 3,
|
|
673
701
|
maxLanguageChips: m = 4,
|
|
674
702
|
children: f
|
|
675
703
|
}) {
|
|
676
|
-
var q, U, G, H,
|
|
677
|
-
const { t: x, i18n: b } = C(), y = e.rating, h = (q = e.location) == null ? void 0 : q.distanceKm, g = (((U = e.languages) == null ? void 0 : U.length) ?? 0) > 0, R = (((G = e.insurances) == null ? void 0 : G.length) ?? 0) > 0,
|
|
704
|
+
var q, U, G, H, V, Z;
|
|
705
|
+
const { t: x, i18n: b } = C(), y = e.rating, h = (q = e.location) == null ? void 0 : q.distanceKm, g = (((U = e.languages) == null ? void 0 : U.length) ?? 0) > 0, R = (((G = e.insurances) == null ? void 0 : G.length) ?? 0) > 0, P = e.specializedInFearPatients, N = g || R || P, w = (e.languages ?? []).slice(0, m), I = (((H = e.languages) == null ? void 0 : H.length) ?? 0) - w.length, T = (e.insurances ?? []).slice(0, o), M = (((V = e.insurances) == null ? void 0 : V.length) ?? 0) - T.length;
|
|
678
706
|
return (
|
|
679
707
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events -- card is role="group" by design (axe nested-interactive); click handler is mouse-only sync.
|
|
680
708
|
/* @__PURE__ */ p(
|
|
@@ -688,7 +716,7 @@ function Pt({
|
|
|
688
716
|
onClick: s,
|
|
689
717
|
onMouseEnter: i,
|
|
690
718
|
onFocus: i,
|
|
691
|
-
className:
|
|
719
|
+
className: Oe({ density: a }),
|
|
692
720
|
children: [
|
|
693
721
|
/* @__PURE__ */ t(Re, { src: e.imageUrl, name: e.name, size: "lg" }),
|
|
694
722
|
/* @__PURE__ */ p("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
|
|
@@ -702,7 +730,7 @@ function Pt({
|
|
|
702
730
|
children: e.name
|
|
703
731
|
}
|
|
704
732
|
),
|
|
705
|
-
h != null ? /* @__PURE__ */ t(
|
|
733
|
+
h != null ? /* @__PURE__ */ t(Le, { distanceKm: h }) : null
|
|
706
734
|
] }),
|
|
707
735
|
e.subtitle ? /* @__PURE__ */ t("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
|
|
708
736
|
/* @__PURE__ */ t(Fe, { tagline: e.tagline }),
|
|
@@ -712,26 +740,26 @@ function Pt({
|
|
|
712
740
|
] }) : null
|
|
713
741
|
] }),
|
|
714
742
|
y && y.count > 0 ? /* @__PURE__ */ t(
|
|
715
|
-
|
|
743
|
+
Ne,
|
|
716
744
|
{
|
|
717
745
|
value: y.value,
|
|
718
746
|
reviews: { count: y.count },
|
|
719
747
|
size: "sm"
|
|
720
748
|
}
|
|
721
749
|
) : null,
|
|
722
|
-
|
|
750
|
+
N ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
723
751
|
w.map((k) => /* @__PURE__ */ t(
|
|
724
|
-
|
|
752
|
+
O,
|
|
725
753
|
{
|
|
726
754
|
variant: "neutral",
|
|
727
|
-
leading: /* @__PURE__ */ t(
|
|
755
|
+
leading: /* @__PURE__ */ t(Se, { "aria-hidden": "true" }),
|
|
728
756
|
children: Ie(k, x, b)
|
|
729
757
|
},
|
|
730
758
|
`lang-${k}`
|
|
731
759
|
)),
|
|
732
|
-
I > 0 ? /* @__PURE__ */ t(
|
|
760
|
+
I > 0 ? /* @__PURE__ */ t(O, { variant: "neutral", children: `+${I}` }) : null,
|
|
733
761
|
T.map((k) => /* @__PURE__ */ t(
|
|
734
|
-
|
|
762
|
+
O,
|
|
735
763
|
{
|
|
736
764
|
variant: "info",
|
|
737
765
|
leading: /* @__PURE__ */ t(Ae, { "aria-hidden": "true" }),
|
|
@@ -739,21 +767,28 @@ function Pt({
|
|
|
739
767
|
},
|
|
740
768
|
`ins-${k}`
|
|
741
769
|
)),
|
|
742
|
-
|
|
743
|
-
|
|
770
|
+
M > 0 ? /* @__PURE__ */ t(O, { variant: "neutral", children: `+${M}` }) : null,
|
|
771
|
+
P ? /* @__PURE__ */ t(O, { variant: "info", leading: /* @__PURE__ */ t(_e, { "aria-hidden": "true" }), children: x("practiceResults.fearPatient.label") }) : null
|
|
744
772
|
] }) : null,
|
|
745
|
-
/* @__PURE__ */ t(
|
|
746
|
-
|
|
773
|
+
/* @__PURE__ */ t(Be, { description: e.description, density: "compact" }),
|
|
774
|
+
/* @__PURE__ */ t(
|
|
775
|
+
He,
|
|
776
|
+
{
|
|
777
|
+
cents: e.firstVisitPriceCents,
|
|
778
|
+
currencyCode: e.currencyCode
|
|
779
|
+
}
|
|
780
|
+
),
|
|
781
|
+
e.nextAvailableSlot && u ? /* @__PURE__ */ t($e, { time: u }) : null,
|
|
747
782
|
f,
|
|
748
783
|
/* @__PURE__ */ t(
|
|
749
|
-
|
|
784
|
+
De,
|
|
750
785
|
{
|
|
751
786
|
result: e,
|
|
752
|
-
openLabel:
|
|
787
|
+
openLabel: l,
|
|
753
788
|
bookLabel: d,
|
|
754
789
|
nextSlotText: u,
|
|
755
790
|
onOpenClick: r,
|
|
756
|
-
onBookClick:
|
|
791
|
+
onBookClick: c
|
|
757
792
|
}
|
|
758
793
|
)
|
|
759
794
|
] })
|
|
@@ -762,19 +797,19 @@ function Pt({
|
|
|
762
797
|
)
|
|
763
798
|
);
|
|
764
799
|
}
|
|
765
|
-
function
|
|
800
|
+
function Tt({
|
|
766
801
|
result: e,
|
|
767
802
|
apiKey: n,
|
|
768
803
|
highlighted: s,
|
|
769
804
|
onSelect: r,
|
|
770
805
|
onOpenClick: i,
|
|
771
806
|
onBookClick: a,
|
|
772
|
-
onHover:
|
|
807
|
+
onHover: l,
|
|
773
808
|
openLabel: d,
|
|
774
|
-
bookLabel:
|
|
809
|
+
bookLabel: c
|
|
775
810
|
}) {
|
|
776
|
-
var g, R,
|
|
777
|
-
const { t: u, i18n: o } = C(), m =
|
|
811
|
+
var g, R, P, N;
|
|
812
|
+
const { t: u, i18n: o } = C(), m = B(() => {
|
|
778
813
|
if (e.nextAvailableSlot)
|
|
779
814
|
try {
|
|
780
815
|
return new Intl.DateTimeFormat(o.language, {
|
|
@@ -785,7 +820,7 @@ function At({
|
|
|
785
820
|
} catch {
|
|
786
821
|
return e.nextAvailableSlot.dateTime;
|
|
787
822
|
}
|
|
788
|
-
}, [e.nextAvailableSlot, o.language]), f = (((g = e.languages) == null ? void 0 : g.length) ?? 0) > 0, x = (((R = e.insurances) == null ? void 0 : R.length) ?? 0) > 0, b = e.specializedInFearPatients, y = f || x || b, h = (
|
|
823
|
+
}, [e.nextAvailableSlot, o.language]), f = (((g = e.languages) == null ? void 0 : g.length) ?? 0) > 0, x = (((R = e.insurances) == null ? void 0 : R.length) ?? 0) > 0, b = e.specializedInFearPatients, y = f || x || b, h = (P = e.location) == null ? void 0 : P.distanceKm;
|
|
789
824
|
return (
|
|
790
825
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events -- card is role="group" by design (axe nested-interactive); click handler is mouse-only sync.
|
|
791
826
|
/* @__PURE__ */ p(
|
|
@@ -798,12 +833,12 @@ function At({
|
|
|
798
833
|
role: "group",
|
|
799
834
|
"aria-labelledby": `practice-result-${e.id}-name`,
|
|
800
835
|
onClick: r,
|
|
801
|
-
onMouseEnter:
|
|
802
|
-
onFocus:
|
|
803
|
-
className:
|
|
836
|
+
onMouseEnter: l,
|
|
837
|
+
onFocus: l,
|
|
838
|
+
className: Oe({ density: "rich" }),
|
|
804
839
|
children: [
|
|
805
840
|
e.location ? /* @__PURE__ */ t(
|
|
806
|
-
|
|
841
|
+
At,
|
|
807
842
|
{
|
|
808
843
|
apiKey: n,
|
|
809
844
|
center: {
|
|
@@ -826,11 +861,11 @@ function At({
|
|
|
826
861
|
children: e.name
|
|
827
862
|
}
|
|
828
863
|
),
|
|
829
|
-
h != null ? /* @__PURE__ */ t(
|
|
864
|
+
h != null ? /* @__PURE__ */ t(Le, { distanceKm: h }) : null
|
|
830
865
|
] }),
|
|
831
866
|
e.subtitle ? /* @__PURE__ */ t("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
|
|
832
867
|
/* @__PURE__ */ t(Fe, { tagline: e.tagline }),
|
|
833
|
-
(
|
|
868
|
+
(N = e.location) != null && N.address ? /* @__PURE__ */ p("span", { className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
|
|
834
869
|
/* @__PURE__ */ t(
|
|
835
870
|
ne,
|
|
836
871
|
{
|
|
@@ -842,7 +877,7 @@ function At({
|
|
|
842
877
|
] }) : null
|
|
843
878
|
] }),
|
|
844
879
|
e.rating && e.rating.count > 0 ? /* @__PURE__ */ t(
|
|
845
|
-
|
|
880
|
+
Ne,
|
|
846
881
|
{
|
|
847
882
|
value: e.rating.value,
|
|
848
883
|
reviews: { count: e.rating.count },
|
|
@@ -852,16 +887,16 @@ function At({
|
|
|
852
887
|
] }),
|
|
853
888
|
y ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
854
889
|
f ? (e.languages ?? []).map((w) => /* @__PURE__ */ t(
|
|
855
|
-
|
|
890
|
+
O,
|
|
856
891
|
{
|
|
857
892
|
variant: "neutral",
|
|
858
|
-
leading: /* @__PURE__ */ t(
|
|
893
|
+
leading: /* @__PURE__ */ t(Se, { "aria-hidden": "true" }),
|
|
859
894
|
children: Ie(w, u, o)
|
|
860
895
|
},
|
|
861
896
|
`lang-${w}`
|
|
862
897
|
)) : null,
|
|
863
898
|
x ? (e.insurances ?? []).map((w) => /* @__PURE__ */ t(
|
|
864
|
-
|
|
899
|
+
O,
|
|
865
900
|
{
|
|
866
901
|
variant: "info",
|
|
867
902
|
leading: /* @__PURE__ */ t(Ae, { "aria-hidden": "true" }),
|
|
@@ -869,16 +904,23 @@ function At({
|
|
|
869
904
|
},
|
|
870
905
|
`ins-${w}`
|
|
871
906
|
)) : null,
|
|
872
|
-
b ? /* @__PURE__ */ t(
|
|
907
|
+
b ? /* @__PURE__ */ t(O, { variant: "info", leading: /* @__PURE__ */ t(_e, { "aria-hidden": "true" }), children: u("practiceResults.fearPatient.label") }) : null
|
|
873
908
|
] }) : null,
|
|
874
|
-
/* @__PURE__ */ t(
|
|
875
|
-
|
|
909
|
+
/* @__PURE__ */ t(Be, { description: e.description, density: "rich" }),
|
|
910
|
+
/* @__PURE__ */ t(
|
|
911
|
+
He,
|
|
912
|
+
{
|
|
913
|
+
cents: e.firstVisitPriceCents,
|
|
914
|
+
currencyCode: e.currencyCode
|
|
915
|
+
}
|
|
916
|
+
),
|
|
917
|
+
e.nextAvailableSlot && m ? /* @__PURE__ */ t($e, { time: m }) : null,
|
|
876
918
|
/* @__PURE__ */ t(
|
|
877
|
-
|
|
919
|
+
De,
|
|
878
920
|
{
|
|
879
921
|
result: e,
|
|
880
922
|
openLabel: d,
|
|
881
|
-
bookLabel:
|
|
923
|
+
bookLabel: c,
|
|
882
924
|
nextSlotText: m,
|
|
883
925
|
onOpenClick: i,
|
|
884
926
|
onBookClick: a
|
|
@@ -897,9 +939,9 @@ function fe({
|
|
|
897
939
|
onCardSelect: r,
|
|
898
940
|
onCardOpenClick: i,
|
|
899
941
|
onCardBookClick: a,
|
|
900
|
-
openLabel:
|
|
942
|
+
openLabel: l,
|
|
901
943
|
bookLabel: d,
|
|
902
|
-
formatNextSlot:
|
|
944
|
+
formatNextSlot: c,
|
|
903
945
|
onLoadMore: u,
|
|
904
946
|
loadingMore: o,
|
|
905
947
|
loadingSkeletons: m,
|
|
@@ -913,9 +955,9 @@ function fe({
|
|
|
913
955
|
const g = h.current;
|
|
914
956
|
if (!g || typeof IntersectionObserver > "u") return;
|
|
915
957
|
const R = new IntersectionObserver(
|
|
916
|
-
(
|
|
917
|
-
for (const
|
|
918
|
-
|
|
958
|
+
(P) => {
|
|
959
|
+
for (const N of P)
|
|
960
|
+
N.isIntersecting && (F("serp_load_more", {
|
|
919
961
|
currentCount: e.length
|
|
920
962
|
}), u());
|
|
921
963
|
},
|
|
@@ -930,7 +972,7 @@ function fe({
|
|
|
930
972
|
"aria-label": y("practiceResults.loading"),
|
|
931
973
|
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
|
|
932
974
|
children: Array.from({ length: 4 }).map((g, R) => /* @__PURE__ */ t(
|
|
933
|
-
|
|
975
|
+
rt,
|
|
934
976
|
{
|
|
935
977
|
variant: "rounded",
|
|
936
978
|
height: f === "rich" ? "11rem" : "7rem"
|
|
@@ -948,7 +990,7 @@ function fe({
|
|
|
948
990
|
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:overflow-y-auto",
|
|
949
991
|
children: [
|
|
950
992
|
e.map((g) => /* @__PURE__ */ t("div", { role: "listitem", children: f === "rich" ? /* @__PURE__ */ t(
|
|
951
|
-
|
|
993
|
+
Tt,
|
|
952
994
|
{
|
|
953
995
|
result: g,
|
|
954
996
|
apiKey: x,
|
|
@@ -957,11 +999,11 @@ function fe({
|
|
|
957
999
|
onOpenClick: () => i(g.id),
|
|
958
1000
|
onBookClick: () => a(g.id),
|
|
959
1001
|
onHover: () => s(g.id),
|
|
960
|
-
openLabel:
|
|
1002
|
+
openLabel: l,
|
|
961
1003
|
bookLabel: d
|
|
962
1004
|
}
|
|
963
1005
|
) : /* @__PURE__ */ t(
|
|
964
|
-
|
|
1006
|
+
It,
|
|
965
1007
|
{
|
|
966
1008
|
result: g,
|
|
967
1009
|
highlighted: n === g.id,
|
|
@@ -969,9 +1011,9 @@ function fe({
|
|
|
969
1011
|
onOpenClick: () => i(g.id),
|
|
970
1012
|
onBookClick: () => a(g.id),
|
|
971
1013
|
onHover: () => s(g.id),
|
|
972
|
-
openLabel:
|
|
1014
|
+
openLabel: l,
|
|
973
1015
|
bookLabel: d,
|
|
974
|
-
nextSlotText:
|
|
1016
|
+
nextSlotText: c(g)
|
|
975
1017
|
}
|
|
976
1018
|
) }, g.id)),
|
|
977
1019
|
u ? /* @__PURE__ */ t(
|
|
@@ -980,7 +1022,7 @@ function fe({
|
|
|
980
1022
|
ref: h,
|
|
981
1023
|
"aria-hidden": "true",
|
|
982
1024
|
className: "ds:flex ds:items-center ds:justify-center ds:py-[var(--spacing-md)]",
|
|
983
|
-
children: o ? /* @__PURE__ */ t(
|
|
1025
|
+
children: o ? /* @__PURE__ */ t(ot, { size: "md", variant: "pulse" }) : /* @__PURE__ */ t("span", { className: "ds:size-1" })
|
|
984
1026
|
}
|
|
985
1027
|
) : null
|
|
986
1028
|
]
|
|
@@ -994,15 +1036,15 @@ function pe({
|
|
|
994
1036
|
apiKey: r,
|
|
995
1037
|
mapId: i,
|
|
996
1038
|
highlightedId: a,
|
|
997
|
-
onPinClick:
|
|
1039
|
+
onPinClick: l,
|
|
998
1040
|
onPinHover: d,
|
|
999
|
-
onPinFirstInteract:
|
|
1041
|
+
onPinFirstInteract: c,
|
|
1000
1042
|
onBoundsChange: u,
|
|
1001
1043
|
consentGranted: o,
|
|
1002
1044
|
onConsentRequest: m,
|
|
1003
1045
|
mapHandleRef: f
|
|
1004
1046
|
}) {
|
|
1005
|
-
const { t: x } = C(), b =
|
|
1047
|
+
const { t: x } = C(), b = B(
|
|
1006
1048
|
() => e.filter(
|
|
1007
1049
|
(h) => !!h.location
|
|
1008
1050
|
).map((h) => ({
|
|
@@ -1014,9 +1056,9 @@ function pe({
|
|
|
1014
1056
|
label: h.name
|
|
1015
1057
|
})),
|
|
1016
1058
|
[e]
|
|
1017
|
-
), y =
|
|
1059
|
+
), y = B(() => {
|
|
1018
1060
|
if (n) return n;
|
|
1019
|
-
const h =
|
|
1061
|
+
const h = Ce(e);
|
|
1020
1062
|
return h ? {
|
|
1021
1063
|
lat: (h.north + h.south) / 2,
|
|
1022
1064
|
lng: (h.east + h.west) / 2
|
|
@@ -1024,7 +1066,7 @@ function pe({
|
|
|
1024
1066
|
}, [e, n]);
|
|
1025
1067
|
return W(() => {
|
|
1026
1068
|
if (!u) return;
|
|
1027
|
-
const h =
|
|
1069
|
+
const h = Ce(e);
|
|
1028
1070
|
h && (u(h), F("serp_map_panned", { bounds: h }));
|
|
1029
1071
|
}, [e, u]), /* @__PURE__ */ t(
|
|
1030
1072
|
"div",
|
|
@@ -1032,7 +1074,7 @@ function pe({
|
|
|
1032
1074
|
"data-component": "practice-results-map-panel",
|
|
1033
1075
|
className: "ds:relative ds:flex ds:size-full ds:min-h-[24rem] ds:flex-col",
|
|
1034
1076
|
children: /* @__PURE__ */ t(
|
|
1035
|
-
|
|
1077
|
+
it,
|
|
1036
1078
|
{
|
|
1037
1079
|
ref: f,
|
|
1038
1080
|
apiKey: r ?? "",
|
|
@@ -1044,7 +1086,7 @@ function pe({
|
|
|
1044
1086
|
consentGranted: !!o,
|
|
1045
1087
|
onConsentRequest: m,
|
|
1046
1088
|
onMarkerClick: (h) => {
|
|
1047
|
-
h != null && (d(h),
|
|
1089
|
+
h != null && (d(h), c(h), l(h));
|
|
1048
1090
|
},
|
|
1049
1091
|
ariaLabel: x("practiceResults.map.label"),
|
|
1050
1092
|
size: "fill",
|
|
@@ -1058,38 +1100,38 @@ function pe({
|
|
|
1058
1100
|
function he({
|
|
1059
1101
|
variantBodyProps: e
|
|
1060
1102
|
}) {
|
|
1061
|
-
const { facets: n, value: s, onChange: r, heading: i, intro: a, totalCount:
|
|
1103
|
+
const { facets: n, value: s, onChange: r, heading: i, intro: a, totalCount: l, searchCentre: d } = e;
|
|
1062
1104
|
return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
|
|
1063
1105
|
/* @__PURE__ */ t(
|
|
1064
1106
|
Te,
|
|
1065
1107
|
{
|
|
1066
1108
|
heading: i,
|
|
1067
1109
|
intro: a,
|
|
1068
|
-
totalCount:
|
|
1110
|
+
totalCount: l,
|
|
1069
1111
|
searchCentreLabel: d == null ? void 0 : d.label
|
|
1070
1112
|
}
|
|
1071
1113
|
),
|
|
1072
1114
|
n.length > 0 ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
|
|
1073
1115
|
/* @__PURE__ */ t(
|
|
1074
|
-
|
|
1116
|
+
ze,
|
|
1075
1117
|
{
|
|
1076
1118
|
facets: n,
|
|
1077
1119
|
value: s.facets,
|
|
1078
|
-
onChange: (
|
|
1120
|
+
onChange: (c) => r({ ...s, facets: c })
|
|
1079
1121
|
}
|
|
1080
1122
|
),
|
|
1081
1123
|
/* @__PURE__ */ t(
|
|
1082
1124
|
ue,
|
|
1083
1125
|
{
|
|
1084
1126
|
value: s.sort ?? "relevance",
|
|
1085
|
-
onChange: (
|
|
1127
|
+
onChange: (c) => r({ ...s, sort: c })
|
|
1086
1128
|
}
|
|
1087
1129
|
)
|
|
1088
1130
|
] }) : /* @__PURE__ */ t("div", { className: "ds:flex ds:justify-end", children: /* @__PURE__ */ t(
|
|
1089
1131
|
ue,
|
|
1090
1132
|
{
|
|
1091
1133
|
value: s.sort ?? "relevance",
|
|
1092
|
-
onChange: (
|
|
1134
|
+
onChange: (c) => r({ ...s, sort: c })
|
|
1093
1135
|
}
|
|
1094
1136
|
) })
|
|
1095
1137
|
] });
|
|
@@ -1097,7 +1139,7 @@ function he({
|
|
|
1097
1139
|
function ge() {
|
|
1098
1140
|
const { t: e } = C();
|
|
1099
1141
|
return /* @__PURE__ */ t(
|
|
1100
|
-
|
|
1142
|
+
st,
|
|
1101
1143
|
{
|
|
1102
1144
|
variant: "no-results",
|
|
1103
1145
|
title: e("practiceResults.empty.title"),
|
|
@@ -1115,23 +1157,23 @@ function ve({ onRetry: e }) {
|
|
|
1115
1157
|
{
|
|
1116
1158
|
intent: "secondary",
|
|
1117
1159
|
size: "sm",
|
|
1118
|
-
startIcon: /* @__PURE__ */ t(
|
|
1160
|
+
startIcon: /* @__PURE__ */ t(pt, { "aria-hidden": "true" }),
|
|
1119
1161
|
onClick: e,
|
|
1120
1162
|
children: n("practiceResults.error.retry")
|
|
1121
1163
|
}
|
|
1122
1164
|
) }) : null
|
|
1123
1165
|
] });
|
|
1124
1166
|
}
|
|
1125
|
-
function
|
|
1167
|
+
function zt(e) {
|
|
1126
1168
|
const {
|
|
1127
1169
|
results: n,
|
|
1128
1170
|
apiKey: s,
|
|
1129
1171
|
mapId: r,
|
|
1130
1172
|
zoom: i,
|
|
1131
1173
|
searchCentre: a,
|
|
1132
|
-
onLoadMore:
|
|
1174
|
+
onLoadMore: l,
|
|
1133
1175
|
loadingMore: d,
|
|
1134
|
-
loadingSkeletons:
|
|
1176
|
+
loadingSkeletons: c,
|
|
1135
1177
|
emptyResultsSlot: u,
|
|
1136
1178
|
errorSlot: o,
|
|
1137
1179
|
error: m,
|
|
@@ -1142,8 +1184,8 @@ function _t(e) {
|
|
|
1142
1184
|
consentGranted: h,
|
|
1143
1185
|
onConsentRequest: g,
|
|
1144
1186
|
onBoundsChange: R,
|
|
1145
|
-
listContainerRef:
|
|
1146
|
-
} = e, { t:
|
|
1187
|
+
listContainerRef: P
|
|
1188
|
+
} = e, { t: N } = C(), [w, I] = me(!1), T = m ? o ?? /* @__PURE__ */ t(ve, { onRetry: f }) : n.length === 0 && !c ? u ?? /* @__PURE__ */ t(ge, {}) : /* @__PURE__ */ t(
|
|
1147
1189
|
fe,
|
|
1148
1190
|
{
|
|
1149
1191
|
results: n,
|
|
@@ -1155,11 +1197,11 @@ function _t(e) {
|
|
|
1155
1197
|
openLabel: e.openLabel,
|
|
1156
1198
|
bookLabel: e.bookLabel,
|
|
1157
1199
|
formatNextSlot: e.formatNextSlot,
|
|
1158
|
-
onLoadMore:
|
|
1200
|
+
onLoadMore: l,
|
|
1159
1201
|
loadingMore: d,
|
|
1160
|
-
loadingSkeletons:
|
|
1202
|
+
loadingSkeletons: c,
|
|
1161
1203
|
density: "compact",
|
|
1162
|
-
containerRef:
|
|
1204
|
+
containerRef: P
|
|
1163
1205
|
}
|
|
1164
1206
|
);
|
|
1165
1207
|
return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
|
|
@@ -1175,8 +1217,8 @@ function _t(e) {
|
|
|
1175
1217
|
apiKey: s,
|
|
1176
1218
|
mapId: r,
|
|
1177
1219
|
highlightedId: x,
|
|
1178
|
-
onPinClick: (
|
|
1179
|
-
Q(n,
|
|
1220
|
+
onPinClick: (M) => {
|
|
1221
|
+
Q(n, M, "pin", e.onResultSelect), y(M);
|
|
1180
1222
|
},
|
|
1181
1223
|
onPinHover: b,
|
|
1182
1224
|
onPinFirstInteract: e.onPinFirstInteract,
|
|
@@ -1192,15 +1234,15 @@ function _t(e) {
|
|
|
1192
1234
|
{
|
|
1193
1235
|
intent: "primary",
|
|
1194
1236
|
size: "md",
|
|
1195
|
-
startIcon: /* @__PURE__ */ t(
|
|
1237
|
+
startIcon: /* @__PURE__ */ t(vt, { "aria-hidden": "true" }),
|
|
1196
1238
|
onClick: () => I(!0),
|
|
1197
|
-
children:
|
|
1239
|
+
children: N("practiceResults.viewMap")
|
|
1198
1240
|
}
|
|
1199
1241
|
) }),
|
|
1200
1242
|
/* @__PURE__ */ t(_.Root, { open: w, onOpenChange: I, children: /* @__PURE__ */ p(_.Content, { side: "bottom", size: "lg", children: [
|
|
1201
|
-
/* @__PURE__ */ t(_.Header, { children: /* @__PURE__ */ t(_.Title, { children:
|
|
1243
|
+
/* @__PURE__ */ t(_.Header, { children: /* @__PURE__ */ t(_.Title, { children: N("practiceResults.map.label") }) }),
|
|
1202
1244
|
/* @__PURE__ */ p(_.Body, { children: [
|
|
1203
|
-
/* @__PURE__ */ t(_.Description, { className: "ds:sr-only", children:
|
|
1245
|
+
/* @__PURE__ */ t(_.Description, { className: "ds:sr-only", children: N("practiceResults.sheet.description") }),
|
|
1204
1246
|
/* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
|
|
1205
1247
|
/* @__PURE__ */ t("div", { className: "ds:h-[20rem]", children: /* @__PURE__ */ t(
|
|
1206
1248
|
pe,
|
|
@@ -1211,8 +1253,8 @@ function _t(e) {
|
|
|
1211
1253
|
apiKey: s,
|
|
1212
1254
|
mapId: r,
|
|
1213
1255
|
highlightedId: x,
|
|
1214
|
-
onPinClick: (
|
|
1215
|
-
Q(n,
|
|
1256
|
+
onPinClick: (M) => {
|
|
1257
|
+
Q(n, M, "pin", e.onResultSelect), y(M);
|
|
1216
1258
|
},
|
|
1217
1259
|
onPinHover: b,
|
|
1218
1260
|
onPinFirstInteract: e.onPinFirstInteract,
|
|
@@ -1228,7 +1270,7 @@ function _t(e) {
|
|
|
1228
1270
|
] }) })
|
|
1229
1271
|
] });
|
|
1230
1272
|
}
|
|
1231
|
-
const
|
|
1273
|
+
const Lt = {
|
|
1232
1274
|
peek: "sm",
|
|
1233
1275
|
half: "md",
|
|
1234
1276
|
full: "lg"
|
|
@@ -1237,17 +1279,17 @@ const It = {
|
|
|
1237
1279
|
"half",
|
|
1238
1280
|
"full"
|
|
1239
1281
|
];
|
|
1240
|
-
function
|
|
1282
|
+
function Ft({ value: e, onChange: n }) {
|
|
1241
1283
|
const { t: s, i18n: r } = C(), i = r.dir() === "rtl", a = A(
|
|
1242
1284
|
/* @__PURE__ */ new Map()
|
|
1243
|
-
),
|
|
1285
|
+
), l = $((c) => {
|
|
1244
1286
|
var u;
|
|
1245
|
-
(u = a.current.get(
|
|
1246
|
-
}, []), d =
|
|
1247
|
-
(
|
|
1287
|
+
(u = a.current.get(c)) == null || u.focus();
|
|
1288
|
+
}, []), d = $(
|
|
1289
|
+
(c, u) => {
|
|
1248
1290
|
const o = E.indexOf(u), m = E.length, f = i ? "ArrowLeft" : "ArrowRight", x = i ? "ArrowRight" : "ArrowLeft";
|
|
1249
1291
|
let b = null;
|
|
1250
|
-
switch (
|
|
1292
|
+
switch (c.key) {
|
|
1251
1293
|
case f:
|
|
1252
1294
|
case "ArrowDown":
|
|
1253
1295
|
b = E[(o + 1) % m];
|
|
@@ -1265,9 +1307,9 @@ function Tt({ value: e, onChange: n }) {
|
|
|
1265
1307
|
default:
|
|
1266
1308
|
return;
|
|
1267
1309
|
}
|
|
1268
|
-
|
|
1310
|
+
c.preventDefault(), b && b !== u && n(b), b && l(b);
|
|
1269
1311
|
},
|
|
1270
|
-
[
|
|
1312
|
+
[l, i, n]
|
|
1271
1313
|
);
|
|
1272
1314
|
return /* @__PURE__ */ t(
|
|
1273
1315
|
"div",
|
|
@@ -1275,42 +1317,42 @@ function Tt({ value: e, onChange: n }) {
|
|
|
1275
1317
|
role: "radiogroup",
|
|
1276
1318
|
"aria-label": s("practiceResults.sheet.snap.label"),
|
|
1277
1319
|
className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]",
|
|
1278
|
-
children: E.map((
|
|
1279
|
-
const u = e ===
|
|
1320
|
+
children: E.map((c) => {
|
|
1321
|
+
const u = e === c;
|
|
1280
1322
|
return /* @__PURE__ */ t(
|
|
1281
1323
|
"button",
|
|
1282
1324
|
{
|
|
1283
1325
|
ref: (o) => {
|
|
1284
|
-
o ? a.current.set(
|
|
1326
|
+
o ? a.current.set(c, o) : a.current.delete(c);
|
|
1285
1327
|
},
|
|
1286
1328
|
type: "button",
|
|
1287
1329
|
role: "radio",
|
|
1288
1330
|
"aria-checked": u,
|
|
1289
|
-
"aria-label": s(`practiceResults.sheet.snap.${
|
|
1331
|
+
"aria-label": s(`practiceResults.sheet.snap.${c}`),
|
|
1290
1332
|
tabIndex: u ? 0 : -1,
|
|
1291
|
-
onClick: () => n(
|
|
1292
|
-
onKeyDown: (o) => d(o,
|
|
1333
|
+
onClick: () => n(c),
|
|
1334
|
+
onKeyDown: (o) => d(o, c),
|
|
1293
1335
|
className: te({
|
|
1294
1336
|
state: u ? "active" : "idle"
|
|
1295
1337
|
}),
|
|
1296
|
-
children: s(`practiceResults.sheet.snap.${
|
|
1338
|
+
children: s(`practiceResults.sheet.snap.${c}`)
|
|
1297
1339
|
},
|
|
1298
|
-
|
|
1340
|
+
c
|
|
1299
1341
|
);
|
|
1300
1342
|
})
|
|
1301
1343
|
}
|
|
1302
1344
|
);
|
|
1303
1345
|
}
|
|
1304
|
-
function
|
|
1346
|
+
function Bt(e) {
|
|
1305
1347
|
const {
|
|
1306
1348
|
results: n,
|
|
1307
1349
|
apiKey: s,
|
|
1308
1350
|
mapId: r,
|
|
1309
1351
|
zoom: i,
|
|
1310
1352
|
searchCentre: a,
|
|
1311
|
-
onLoadMore:
|
|
1353
|
+
onLoadMore: l,
|
|
1312
1354
|
loadingMore: d,
|
|
1313
|
-
loadingSkeletons:
|
|
1355
|
+
loadingSkeletons: c,
|
|
1314
1356
|
emptyResultsSlot: u,
|
|
1315
1357
|
errorSlot: o,
|
|
1316
1358
|
error: m,
|
|
@@ -1321,11 +1363,11 @@ function Lt(e) {
|
|
|
1321
1363
|
consentGranted: h,
|
|
1322
1364
|
onConsentRequest: g,
|
|
1323
1365
|
onBoundsChange: R,
|
|
1324
|
-
listContainerRef:
|
|
1325
|
-
facets:
|
|
1366
|
+
listContainerRef: P,
|
|
1367
|
+
facets: N,
|
|
1326
1368
|
value: w,
|
|
1327
1369
|
onChange: I
|
|
1328
|
-
} = e, { t: T } = C(), [
|
|
1370
|
+
} = e, { t: T } = C(), [M, q] = me("half"), U = Lt[M], G = ct("(min-width: 1024px)"), H = m ? o ?? /* @__PURE__ */ t(ve, { onRetry: f }) : n.length === 0 && !c ? u ?? /* @__PURE__ */ t(ge, {}) : /* @__PURE__ */ t(
|
|
1329
1371
|
fe,
|
|
1330
1372
|
{
|
|
1331
1373
|
results: n,
|
|
@@ -1337,14 +1379,14 @@ function Lt(e) {
|
|
|
1337
1379
|
openLabel: e.openLabel,
|
|
1338
1380
|
bookLabel: e.bookLabel,
|
|
1339
1381
|
formatNextSlot: e.formatNextSlot,
|
|
1340
|
-
onLoadMore:
|
|
1382
|
+
onLoadMore: l,
|
|
1341
1383
|
loadingMore: d,
|
|
1342
|
-
loadingSkeletons:
|
|
1384
|
+
loadingSkeletons: c,
|
|
1343
1385
|
density: "compact",
|
|
1344
1386
|
apiKey: s,
|
|
1345
|
-
containerRef:
|
|
1387
|
+
containerRef: P
|
|
1346
1388
|
}
|
|
1347
|
-
),
|
|
1389
|
+
), V = /* @__PURE__ */ t(
|
|
1348
1390
|
pe,
|
|
1349
1391
|
{
|
|
1350
1392
|
results: n,
|
|
@@ -1363,10 +1405,10 @@ function Lt(e) {
|
|
|
1363
1405
|
onConsentRequest: g,
|
|
1364
1406
|
mapHandleRef: e.mapHandleRef
|
|
1365
1407
|
}
|
|
1366
|
-
), Z =
|
|
1367
|
-
|
|
1408
|
+
), Z = N.length > 0 ? /* @__PURE__ */ t("div", { className: "ds:absolute ds:start-[var(--spacing-md)] ds:top-[var(--spacing-md)] ds:max-w-[calc(100%-var(--spacing-lg))]", children: /* @__PURE__ */ t(
|
|
1409
|
+
ze,
|
|
1368
1410
|
{
|
|
1369
|
-
facets:
|
|
1411
|
+
facets: N,
|
|
1370
1412
|
value: w.facets,
|
|
1371
1413
|
onChange: (k) => I({ ...w, facets: k }),
|
|
1372
1414
|
floating: !0
|
|
@@ -1390,10 +1432,10 @@ function Lt(e) {
|
|
|
1390
1432
|
// the map column is `lg:sticky lg:h-[44rem]` (stays visible
|
|
1391
1433
|
// as the patient scrolls cards) and the rail renders at
|
|
1392
1434
|
// natural height. Single page scroll.
|
|
1393
|
-
/* @__PURE__ */ p(
|
|
1435
|
+
/* @__PURE__ */ p(tt, { children: [
|
|
1394
1436
|
/* @__PURE__ */ t(he, { variantBodyProps: e }),
|
|
1395
1437
|
/* @__PURE__ */ p("div", { className: "ds:grid ds:grid-cols-[65fr_35fr] ds:gap-[var(--spacing-lg)] ds:items-start", children: [
|
|
1396
|
-
/* @__PURE__ */ t("div", { className: "ds:sticky ds:top-[var(--spacing-md)] ds:h-[44rem]", children:
|
|
1438
|
+
/* @__PURE__ */ t("div", { className: "ds:sticky ds:top-[var(--spacing-md)] ds:h-[44rem]", children: V }),
|
|
1397
1439
|
/* @__PURE__ */ t("div", { className: "ds:min-w-0", children: H })
|
|
1398
1440
|
] })
|
|
1399
1441
|
] })
|
|
@@ -1415,7 +1457,7 @@ function Lt(e) {
|
|
|
1415
1457
|
}
|
|
1416
1458
|
),
|
|
1417
1459
|
/* @__PURE__ */ p("div", { className: "ds:relative ds:h-[60vh] ds:min-h-[20rem]", children: [
|
|
1418
|
-
|
|
1460
|
+
V,
|
|
1419
1461
|
Z
|
|
1420
1462
|
] }),
|
|
1421
1463
|
/* @__PURE__ */ t(_.Root, { open: !0, children: /* @__PURE__ */ t(
|
|
@@ -1433,9 +1475,9 @@ function Lt(e) {
|
|
|
1433
1475
|
count: e.totalCount ?? n.length
|
|
1434
1476
|
}) }),
|
|
1435
1477
|
/* @__PURE__ */ t(
|
|
1436
|
-
|
|
1478
|
+
Ft,
|
|
1437
1479
|
{
|
|
1438
|
-
value:
|
|
1480
|
+
value: M,
|
|
1439
1481
|
onChange: q
|
|
1440
1482
|
}
|
|
1441
1483
|
)
|
|
@@ -1454,21 +1496,21 @@ function Lt(e) {
|
|
|
1454
1496
|
] })
|
|
1455
1497
|
) });
|
|
1456
1498
|
}
|
|
1457
|
-
function
|
|
1499
|
+
function Ht(e) {
|
|
1458
1500
|
const {
|
|
1459
1501
|
results: n,
|
|
1460
1502
|
apiKey: s,
|
|
1461
1503
|
onLoadMore: r,
|
|
1462
1504
|
loadingMore: i,
|
|
1463
1505
|
loadingSkeletons: a,
|
|
1464
|
-
emptyResultsSlot:
|
|
1506
|
+
emptyResultsSlot: l,
|
|
1465
1507
|
errorSlot: d,
|
|
1466
|
-
error:
|
|
1508
|
+
error: c,
|
|
1467
1509
|
onRetry: u,
|
|
1468
1510
|
highlightedId: o,
|
|
1469
1511
|
onCardHover: m,
|
|
1470
1512
|
listContainerRef: f
|
|
1471
|
-
} = e, x =
|
|
1513
|
+
} = e, x = c ? d ?? /* @__PURE__ */ t(ve, { onRetry: u }) : n.length === 0 && !a ? l ?? /* @__PURE__ */ t(ge, {}) : /* @__PURE__ */ t(
|
|
1472
1514
|
fe,
|
|
1473
1515
|
{
|
|
1474
1516
|
results: n,
|
|
@@ -1493,15 +1535,15 @@ function zt(e) {
|
|
|
1493
1535
|
x
|
|
1494
1536
|
] });
|
|
1495
1537
|
}
|
|
1496
|
-
const
|
|
1538
|
+
const $t = nt(function({
|
|
1497
1539
|
variant: n = "split-list-map",
|
|
1498
1540
|
results: s,
|
|
1499
1541
|
totalCount: r,
|
|
1500
1542
|
searchCentre: i,
|
|
1501
1543
|
facets: a,
|
|
1502
|
-
googleMapsApiKey:
|
|
1544
|
+
googleMapsApiKey: l,
|
|
1503
1545
|
mapId: d,
|
|
1504
|
-
defaultZoom:
|
|
1546
|
+
defaultZoom: c = yt,
|
|
1505
1547
|
onBoundsChange: u,
|
|
1506
1548
|
consentGranted: o,
|
|
1507
1549
|
onConsentRequest: m,
|
|
@@ -1512,29 +1554,29 @@ const Ft = tt(function({
|
|
|
1512
1554
|
onChange: h,
|
|
1513
1555
|
onResultSelect: g,
|
|
1514
1556
|
loading: R,
|
|
1515
|
-
emptyResultsSlot:
|
|
1516
|
-
errorSlot:
|
|
1557
|
+
emptyResultsSlot: P,
|
|
1558
|
+
errorSlot: N,
|
|
1517
1559
|
error: w,
|
|
1518
1560
|
onRetry: I,
|
|
1519
1561
|
heading: T,
|
|
1520
|
-
intro:
|
|
1562
|
+
intro: M,
|
|
1521
1563
|
cardOpenButtonLabel: q,
|
|
1522
1564
|
cardBookButtonLabel: U,
|
|
1523
1565
|
"aria-label": G,
|
|
1524
1566
|
id: H,
|
|
1525
|
-
className:
|
|
1567
|
+
className: V,
|
|
1526
1568
|
...Z
|
|
1527
1569
|
}, k) {
|
|
1528
|
-
const { t: ae, i18n: be } = C(), [
|
|
1570
|
+
const { t: ae, i18n: be } = C(), [Ve, J] = me(null), X = A(/* @__PURE__ */ new Set()), se = A(/* @__PURE__ */ new Set()), Ke = A(null), ie = A(null), re = B(
|
|
1529
1571
|
() => ({
|
|
1530
1572
|
getVariant: () => n,
|
|
1531
1573
|
scrollToResult: (v) => {
|
|
1532
|
-
const
|
|
1533
|
-
if (!
|
|
1534
|
-
const
|
|
1574
|
+
const L = ie.current;
|
|
1575
|
+
if (!L) return;
|
|
1576
|
+
const S = L.querySelector(
|
|
1535
1577
|
`[data-component="practice-result-card"][data-result-id="${CSS.escape(v)}"]`
|
|
1536
1578
|
);
|
|
1537
|
-
|
|
1579
|
+
S && (S.scrollIntoView({ behavior: "smooth", block: "nearest" }), J(v));
|
|
1538
1580
|
},
|
|
1539
1581
|
focusPin: (v) => {
|
|
1540
1582
|
J(v);
|
|
@@ -1542,8 +1584,8 @@ const Ft = tt(function({
|
|
|
1542
1584
|
}),
|
|
1543
1585
|
[n]
|
|
1544
1586
|
);
|
|
1545
|
-
|
|
1546
|
-
const
|
|
1587
|
+
at(k, () => re, [re]), ut(bt, re, H);
|
|
1588
|
+
const Ee = q ?? ae("practiceResults.card.open"), je = U ?? ae("practiceResults.card.book"), qe = $(
|
|
1547
1589
|
(v) => {
|
|
1548
1590
|
if (v.nextAvailableSlot)
|
|
1549
1591
|
try {
|
|
@@ -1564,89 +1606,89 @@ const Ft = tt(function({
|
|
|
1564
1606
|
totalCount: r ?? s.length
|
|
1565
1607
|
}), X.current = /* @__PURE__ */ new Set(), se.current = /* @__PURE__ */ new Set());
|
|
1566
1608
|
}, [n]);
|
|
1567
|
-
const oe = A(!1),
|
|
1568
|
-
() =>
|
|
1609
|
+
const oe = A(!1), ce = B(
|
|
1610
|
+
() => Ct(a ?? [], s, y.facets),
|
|
1569
1611
|
[a, s, y.facets]
|
|
1570
|
-
),
|
|
1571
|
-
const v =
|
|
1572
|
-
return
|
|
1573
|
-
}, [s, y.facets,
|
|
1612
|
+
), le = y.sort ?? (i ? "distance" : "relevance"), z = B(() => {
|
|
1613
|
+
const v = wt(s, y.facets, ce);
|
|
1614
|
+
return Rt(v, le, i);
|
|
1615
|
+
}, [s, y.facets, ce, le, i]);
|
|
1574
1616
|
W(() => {
|
|
1575
|
-
const v =
|
|
1617
|
+
const v = z.length === 0;
|
|
1576
1618
|
v && !oe.current ? (F("serp_empty_results", {
|
|
1577
1619
|
appliedFacets: y.facets ?? {}
|
|
1578
1620
|
}), oe.current = !0) : v || (oe.current = !1);
|
|
1579
|
-
}, [
|
|
1580
|
-
const
|
|
1621
|
+
}, [z.length, y.facets]);
|
|
1622
|
+
const K = A(null), xe = A(null);
|
|
1581
1623
|
W(
|
|
1582
1624
|
() => () => {
|
|
1583
|
-
|
|
1625
|
+
K.current && clearTimeout(K.current);
|
|
1584
1626
|
},
|
|
1585
1627
|
[]
|
|
1586
1628
|
);
|
|
1587
|
-
const
|
|
1588
|
-
J(v), !X.current.has(v) && (xe.current === v &&
|
|
1589
|
-
X.current.has(v) || (X.current.add(v), F("serp_result_hovered_card", { resultId: v })),
|
|
1629
|
+
const Ue = $((v) => {
|
|
1630
|
+
J(v), !X.current.has(v) && (xe.current === v && K.current || (K.current && clearTimeout(K.current), xe.current = v, K.current = setTimeout(() => {
|
|
1631
|
+
X.current.has(v) || (X.current.add(v), F("serp_result_hovered_card", { resultId: v })), K.current = null;
|
|
1590
1632
|
}, 500)));
|
|
1591
|
-
}, []),
|
|
1633
|
+
}, []), Ge = $((v) => {
|
|
1592
1634
|
J(v);
|
|
1593
|
-
const
|
|
1594
|
-
if (!
|
|
1595
|
-
const
|
|
1635
|
+
const L = ie.current;
|
|
1636
|
+
if (!L) return;
|
|
1637
|
+
const S = L.querySelector(
|
|
1596
1638
|
`[data-component="practice-result-card"][data-result-id="${CSS.escape(v)}"]`
|
|
1597
1639
|
);
|
|
1598
|
-
|
|
1599
|
-
}, []),
|
|
1640
|
+
S == null || S.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
1641
|
+
}, []), Ze = $((v) => {
|
|
1600
1642
|
se.current.has(v) || (se.current.add(v), F("serp_result_hovered_pin", { resultId: v }));
|
|
1601
|
-
}, []), ke = A(null),
|
|
1643
|
+
}, []), ke = A(null), Qe = $(
|
|
1602
1644
|
(v) => {
|
|
1603
1645
|
J(v);
|
|
1604
|
-
const
|
|
1605
|
-
if (
|
|
1606
|
-
if (
|
|
1607
|
-
const
|
|
1608
|
-
|
|
1609
|
-
lat:
|
|
1610
|
-
lng:
|
|
1611
|
-
}),
|
|
1646
|
+
const L = z.find((S) => S.id === v);
|
|
1647
|
+
if (L) {
|
|
1648
|
+
if (L.location) {
|
|
1649
|
+
const S = ke.current;
|
|
1650
|
+
S == null || S.panTo({
|
|
1651
|
+
lat: L.location.lat,
|
|
1652
|
+
lng: L.location.lng
|
|
1653
|
+
}), S == null || S.setZoom(16);
|
|
1612
1654
|
}
|
|
1613
|
-
Q(
|
|
1655
|
+
Q(z, v, "card", g);
|
|
1614
1656
|
}
|
|
1615
1657
|
},
|
|
1616
|
-
[
|
|
1617
|
-
),
|
|
1658
|
+
[z, g]
|
|
1659
|
+
), Je = $(
|
|
1618
1660
|
(v) => {
|
|
1619
1661
|
Q(
|
|
1620
|
-
|
|
1662
|
+
z,
|
|
1621
1663
|
v,
|
|
1622
1664
|
"open-button",
|
|
1623
1665
|
g
|
|
1624
1666
|
);
|
|
1625
1667
|
},
|
|
1626
|
-
[
|
|
1627
|
-
),
|
|
1668
|
+
[z, g]
|
|
1669
|
+
), We = $(
|
|
1628
1670
|
(v) => {
|
|
1629
1671
|
Q(
|
|
1630
|
-
|
|
1672
|
+
z,
|
|
1631
1673
|
v,
|
|
1632
1674
|
"book-button",
|
|
1633
1675
|
g
|
|
1634
1676
|
);
|
|
1635
1677
|
},
|
|
1636
|
-
[
|
|
1637
|
-
),
|
|
1638
|
-
results:
|
|
1678
|
+
[z, g]
|
|
1679
|
+
), Xe = !!R && s.length === 0, de = {
|
|
1680
|
+
results: z,
|
|
1639
1681
|
totalCount: r,
|
|
1640
1682
|
searchCentre: i,
|
|
1641
|
-
facets:
|
|
1642
|
-
value: { ...y, sort:
|
|
1683
|
+
facets: ce,
|
|
1684
|
+
value: { ...y, sort: le },
|
|
1643
1685
|
onChange: h,
|
|
1644
1686
|
onResultSelect: g,
|
|
1645
1687
|
onLoadMore: x,
|
|
1646
1688
|
loadingMore: b,
|
|
1647
|
-
apiKey:
|
|
1689
|
+
apiKey: l,
|
|
1648
1690
|
mapId: d,
|
|
1649
|
-
zoom:
|
|
1691
|
+
zoom: c,
|
|
1650
1692
|
// 0.31.4: when `skipConsentGate` is true the kit synthesises
|
|
1651
1693
|
// `consentGranted=true` for every internal MapView; the consumer's
|
|
1652
1694
|
// CMP at the page level is responsible for whether the Google Maps
|
|
@@ -1655,55 +1697,55 @@ const Ft = tt(function({
|
|
|
1655
1697
|
consentGranted: f ? !0 : o,
|
|
1656
1698
|
onConsentRequest: f ? void 0 : m,
|
|
1657
1699
|
onBoundsChange: u,
|
|
1658
|
-
loadingSkeletons:
|
|
1659
|
-
emptyResultsSlot:
|
|
1660
|
-
errorSlot:
|
|
1700
|
+
loadingSkeletons: Xe,
|
|
1701
|
+
emptyResultsSlot: P,
|
|
1702
|
+
errorSlot: N,
|
|
1661
1703
|
error: w,
|
|
1662
1704
|
onRetry: I,
|
|
1663
1705
|
heading: T,
|
|
1664
|
-
intro:
|
|
1665
|
-
highlightedId:
|
|
1666
|
-
onCardHover:
|
|
1667
|
-
onPinClick:
|
|
1668
|
-
onPinFirstInteract:
|
|
1669
|
-
onCardSelect:
|
|
1670
|
-
onCardOpenClick:
|
|
1671
|
-
onCardBookClick:
|
|
1672
|
-
openLabel:
|
|
1673
|
-
bookLabel:
|
|
1674
|
-
formatNextSlot:
|
|
1706
|
+
intro: M,
|
|
1707
|
+
highlightedId: Ve,
|
|
1708
|
+
onCardHover: Ue,
|
|
1709
|
+
onPinClick: Ge,
|
|
1710
|
+
onPinFirstInteract: Ze,
|
|
1711
|
+
onCardSelect: Qe,
|
|
1712
|
+
onCardOpenClick: Je,
|
|
1713
|
+
onCardBookClick: We,
|
|
1714
|
+
openLabel: Ee,
|
|
1715
|
+
bookLabel: je,
|
|
1716
|
+
formatNextSlot: qe,
|
|
1675
1717
|
listContainerRef: Ke,
|
|
1676
1718
|
mapHandleRef: ke
|
|
1677
|
-
},
|
|
1719
|
+
}, Ye = (() => {
|
|
1678
1720
|
switch (n) {
|
|
1679
1721
|
case "map-first":
|
|
1680
|
-
return /* @__PURE__ */ t(
|
|
1722
|
+
return /* @__PURE__ */ t(Bt, { ...de });
|
|
1681
1723
|
case "rich-cards":
|
|
1682
|
-
return /* @__PURE__ */ t(
|
|
1724
|
+
return /* @__PURE__ */ t(Ht, { ...de });
|
|
1683
1725
|
case "split-list-map":
|
|
1684
1726
|
default:
|
|
1685
|
-
return /* @__PURE__ */ t(
|
|
1727
|
+
return /* @__PURE__ */ t(zt, { ...de });
|
|
1686
1728
|
}
|
|
1687
|
-
})(),
|
|
1729
|
+
})(), et = G ?? ae("practiceResults.regionLabel");
|
|
1688
1730
|
return /* @__PURE__ */ t(
|
|
1689
1731
|
"div",
|
|
1690
1732
|
{
|
|
1691
1733
|
ref: ie,
|
|
1692
1734
|
role: "region",
|
|
1693
|
-
"aria-label":
|
|
1735
|
+
"aria-label": et,
|
|
1694
1736
|
id: H,
|
|
1695
1737
|
"data-component": "practice-results",
|
|
1696
1738
|
"data-component-id": H,
|
|
1697
1739
|
"data-variant": n,
|
|
1698
|
-
className:
|
|
1740
|
+
className: Nt({ variant: n, className: V }),
|
|
1699
1741
|
...Z,
|
|
1700
|
-
children:
|
|
1742
|
+
children: Ye
|
|
1701
1743
|
}
|
|
1702
1744
|
);
|
|
1703
1745
|
});
|
|
1704
|
-
|
|
1746
|
+
$t.displayName = "PracticeResults";
|
|
1705
1747
|
export {
|
|
1706
|
-
|
|
1707
|
-
|
|
1748
|
+
$t as P,
|
|
1749
|
+
bt as p
|
|
1708
1750
|
};
|
|
1709
|
-
//# sourceMappingURL=practice-results-
|
|
1751
|
+
//# sourceMappingURL=practice-results-D7ygCj_W.js.map
|