@alfadocs/ui-kit 1.76.0 → 1.77.1
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/{balance-badge-cell-B49xgL6H.js → balance-badge-cell-Dzd-Z_5W.js} +2 -2
- package/dist/_chunks/booking-Cz_QjIJe.js +4051 -0
- package/dist/_chunks/{breadcrumb-Boan-5n8.js → breadcrumb-Bn29NCnf.js} +8 -8
- package/dist/_chunks/{calendar-appointment-editor-dialog-B4My4eiB.js → calendar-appointment-editor-dialog-cvUpUjj-.js} +4 -4
- package/dist/_chunks/{control-room-rail-CKZ2nemY.js → control-room-rail-DcJpHbp4.js} +2 -2
- package/dist/_chunks/{data-table-DTKGWUQm.js → data-table-BlONA1rP.js} +2 -2
- package/dist/_chunks/{file-manager-Ct5QpZZI.js → file-manager-C9iJjDZt.js} +3 -3
- package/dist/_chunks/{header-settings-Coh1r41O.js → header-settings-BYpVmLip.js} +2 -2
- package/dist/_chunks/{heatmap-Ba9cgfSY.js → heatmap-C2Rg-SV_.js} +2 -2
- package/dist/_chunks/{marketplace-app-shell-Ck5NVJcO.js → marketplace-app-shell-mS7Q2-81.js} +3 -3
- package/dist/_chunks/{notes-panel-CxjMovCh.js → notes-panel-CZO1qsD-.js} +2 -2
- package/dist/_chunks/{otp-input-CGMu30_e.js → otp-input-BgEZi0py.js} +54 -53
- package/dist/_chunks/{practice-results-C5SJTgcd.js → practice-results-BnY2EkzI.js} +708 -689
- package/dist/_chunks/{recaptcha-widget-CsvwlYTE.js → recaptcha-widget-iglUBIF3.js} +2 -2
- package/dist/_chunks/{registration-form-DeK2QiJu.js → registration-form-xORq2s4p.js} +3 -3
- package/dist/_chunks/signature-request-DjY-X62H.js +2448 -0
- package/dist/_chunks/{tasks-panel-Cmr0oMvc.js → tasks-panel-BkjtgjQ8.js} +2 -2
- package/dist/_chunks/{theme-toggle-DTrUzIBG.js → theme-toggle-DKpzb0-M.js} +2 -2
- package/dist/_chunks/{tool-rail-C_9lm0TC.js → tool-rail-Kup1b7xI.js} +2 -2
- package/dist/_chunks/use-theme-CYGyzFgZ.js +196 -0
- package/dist/agent-catalog.json +46 -10
- package/dist/agent-i18n/en.json +5 -4
- package/dist/components/booking/booking-types.d.ts +22 -1
- package/dist/components/booking/booking.d.ts +1 -1
- package/dist/components/booking/code-step.d.ts +6 -0
- package/dist/components/booking/index.d.ts +1 -1
- package/dist/components/booking/index.js +1 -1
- package/dist/components/booking/step-focus.d.ts +9 -0
- package/dist/components/booking/use-booking-payment.d.ts +6 -3
- package/dist/components/breadcrumb/index.js +1 -1
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/data-table/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/heatmap/index.js +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/otp-input/index.js +1 -1
- package/dist/components/otp-input/otp-input.d.ts +1 -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 +1 -1
- package/dist/components/recaptcha-widget/index.js +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/theme-toggle/index.js +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +88 -86
- package/dist/hooks/use-theme.d.ts +9 -0
- package/dist/host-compat.css +4 -1
- package/dist/i18n/locales/ar.d.ts +29 -0
- package/dist/i18n/locales/ar.js +30 -1
- package/dist/i18n/locales/de.d.ts +29 -0
- package/dist/i18n/locales/de.js +30 -1
- package/dist/i18n/locales/el.d.ts +29 -0
- package/dist/i18n/locales/el.js +30 -1
- package/dist/i18n/locales/en.d.ts +29 -0
- package/dist/i18n/locales/en.js +30 -1
- package/dist/i18n/locales/es.d.ts +29 -0
- package/dist/i18n/locales/es.js +30 -1
- package/dist/i18n/locales/fr.d.ts +29 -0
- package/dist/i18n/locales/fr.js +30 -1
- package/dist/i18n/locales/hi.d.ts +29 -0
- package/dist/i18n/locales/hi.js +30 -1
- package/dist/i18n/locales/it.d.ts +29 -0
- package/dist/i18n/locales/it.js +30 -1
- package/dist/i18n/locales/ja.d.ts +29 -0
- package/dist/i18n/locales/ja.js +30 -1
- package/dist/i18n/locales/nl.d.ts +29 -0
- package/dist/i18n/locales/nl.js +30 -1
- package/dist/i18n/locales/pl.d.ts +29 -0
- package/dist/i18n/locales/pl.js +30 -1
- package/dist/i18n/locales/pt.d.ts +29 -0
- package/dist/i18n/locales/pt.js +30 -1
- package/dist/i18n/locales/ro.d.ts +29 -0
- package/dist/i18n/locales/ro.js +30 -1
- package/dist/i18n/locales/ru.d.ts +29 -0
- package/dist/i18n/locales/ru.js +30 -1
- package/dist/i18n/locales/sq.d.ts +29 -0
- package/dist/i18n/locales/sq.js +30 -1
- package/dist/i18n/locales/sv.d.ts +29 -0
- package/dist/i18n/locales/sv.js +30 -1
- package/dist/i18n/locales/tr.d.ts +29 -0
- package/dist/i18n/locales/tr.js +30 -1
- package/dist/i18n/locales/zh.d.ts +29 -0
- package/dist/i18n/locales/zh.js +30 -1
- package/dist/index.js +1209 -1207
- package/dist/locales/ar.json +30 -1
- package/dist/locales/de.json +30 -1
- package/dist/locales/el.json +30 -1
- package/dist/locales/en.json +30 -1
- package/dist/locales/es.json +30 -1
- package/dist/locales/fr.json +30 -1
- package/dist/locales/hi.json +30 -1
- package/dist/locales/it.json +30 -1
- package/dist/locales/ja.json +30 -1
- package/dist/locales/nl.json +30 -1
- package/dist/locales/pl.json +30 -1
- package/dist/locales/pt.json +30 -1
- package/dist/locales/ro.json +30 -1
- package/dist/locales/ru.json +30 -1
- package/dist/locales/sq.json +30 -1
- package/dist/locales/sv.json +30 -1
- package/dist/locales/tr.json +30 -1
- package/dist/locales/zh.json +30 -1
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/patterns/marketplace-app-shell/index.js +1 -1
- package/dist/patterns/registration-form/index.js +1 -1
- package/dist/patterns/signature-request/channel-meta.d.ts +8 -2
- package/dist/patterns/signature-request/index.js +1 -1
- package/dist/patterns/signature-request/minor-patient.d.ts +41 -0
- package/dist/patterns/signature-request/required-documents.d.ts +4 -3
- package/dist/patterns/signature-request/signature-request.d.ts +62 -12
- package/dist/theme-boot.js +26 -0
- package/dist/tokens.css +1 -1
- package/package.json +4 -2
- package/dist/_chunks/booking-D2r19Lia.js +0 -3901
- package/dist/_chunks/signature-request-ldmXj2X6.js +0 -2221
- package/dist/_chunks/use-theme-CAuo6EYT.js +0 -159
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { jsx as t, jsxs as m, Fragment as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { c as
|
|
1
|
+
import { jsx as t, jsxs as m, Fragment as st } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as rt, useState as fe, useRef as T, useMemo as M, useImperativeHandle as ot, useCallback as $, useEffect as X } from "react";
|
|
3
|
+
import { c as K } from "./index-D2ZczOXr.js";
|
|
4
4
|
import { useTranslation as w } from "react-i18next";
|
|
5
|
-
import { A as
|
|
6
|
-
import { A as
|
|
7
|
-
import { B as
|
|
8
|
-
import { D as
|
|
9
|
-
import { E as
|
|
10
|
-
import { M as
|
|
11
|
-
import { R as
|
|
5
|
+
import { A as ee } from "./alert-9kEwDza3.js";
|
|
6
|
+
import { A as Se } from "./avatar-BPiPL7ND.js";
|
|
7
|
+
import { B as te } from "./button-DohK_Ak_.js";
|
|
8
|
+
import { D as O } from "./dropdown-menu-D1we7oAY.js";
|
|
9
|
+
import { E as lt } from "./empty-state-DwJ5YNzz.js";
|
|
10
|
+
import { M as ct } from "./map-view-C6MIVaqn.js";
|
|
11
|
+
import { R as Le } from "./rating-CGYpg5dj.js";
|
|
12
12
|
import { S as I } from "./sheet-uZZXaO_S.js";
|
|
13
|
-
import { S as
|
|
14
|
-
import { S as
|
|
13
|
+
import { S as dt } from "./skeleton-tTWJpvAq.js";
|
|
14
|
+
import { S as ut } from "./spinner-CoflYlEx.js";
|
|
15
15
|
import { B as D } from "./badge-BUk4RjTS.js";
|
|
16
|
-
import { u as
|
|
17
|
-
import { b as
|
|
18
|
-
import { u as
|
|
19
|
-
import { c as
|
|
20
|
-
import { R as
|
|
21
|
-
import { C as
|
|
22
|
-
import { M as
|
|
23
|
-
import { L as
|
|
24
|
-
import { S as
|
|
25
|
-
import { H as
|
|
26
|
-
import { C as
|
|
27
|
-
import { C as
|
|
16
|
+
import { u as mt } from "./use-media-query-CcAx5SMM.js";
|
|
17
|
+
import { b as pt } from "./format-price-BcFBa-WP.js";
|
|
18
|
+
import { u as ft } from "./registry-DvAUVLHh.js";
|
|
19
|
+
import { c as ht } from "./createLucideIcon-DhHxpK9K.js";
|
|
20
|
+
import { R as gt } from "./refresh-cw-DnI0cLFC.js";
|
|
21
|
+
import { C as Pe } from "./chevron-down-DWE7GSq9.js";
|
|
22
|
+
import { M as ae } from "./map-pin-BaY37-Km.js";
|
|
23
|
+
import { L as Ae, B as vt } from "./languages-CZqBaPwI.js";
|
|
24
|
+
import { S as Me } from "./shield-check-DCJALLVh.js";
|
|
25
|
+
import { H as Te } from "./heart--qCA4ffe.js";
|
|
26
|
+
import { C as bt } from "./calendar-clock-hbObjfGY.js";
|
|
27
|
+
import { C as yt } from "./calendar-plus-BFrIRE4r.js";
|
|
28
28
|
/**
|
|
29
29
|
* @license lucide-react v1.22.0 - ISC
|
|
30
30
|
*
|
|
31
31
|
* This source code is licensed under the ISC license.
|
|
32
32
|
* See the LICENSE file in the root directory of this source tree.
|
|
33
33
|
*/
|
|
34
|
-
const
|
|
34
|
+
const xt = [
|
|
35
35
|
[
|
|
36
36
|
"path",
|
|
37
37
|
{
|
|
@@ -41,7 +41,7 @@ const bt = [
|
|
|
41
41
|
],
|
|
42
42
|
["path", { d: "M15 5.764v15", key: "1pn4in" }],
|
|
43
43
|
["path", { d: "M9 3.236v15", key: "1uimfh" }]
|
|
44
|
-
],
|
|
44
|
+
], kt = ht("map", xt), Ct = {
|
|
45
45
|
id: "practice-results",
|
|
46
46
|
// `scroll` backs scroll_to_result; `pick` backs focus_pin (a non-persisting
|
|
47
47
|
// pin highlight). The active variant is consumer-owned via props, so there is
|
|
@@ -108,7 +108,7 @@ const bt = [
|
|
|
108
108
|
root: {
|
|
109
109
|
attr: "data-component",
|
|
110
110
|
value: "practice-results",
|
|
111
|
-
description: "Marks the PracticeResults root region. The headingLevel prop accepts 1 to 6 (default 2) for the optional results heading; use 1 when it is the page title.
|
|
111
|
+
description: "Marks the PracticeResults root region. The headingLevel prop accepts 1 to 6 (default 2) for the optional results heading; use 1 when it is the page title. Card names and default error and empty-state titles use the next level, capped at 6."
|
|
112
112
|
},
|
|
113
113
|
instanceId: {
|
|
114
114
|
attr: "data-component-id",
|
|
@@ -117,20 +117,20 @@ const bt = [
|
|
|
117
117
|
},
|
|
118
118
|
item: {
|
|
119
119
|
attr: "data-result-id",
|
|
120
|
-
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 up to two anchors: data-component="practice-result-open-cta" (practice page; absent when the consumer sets showCardOpenButton=false) 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
|
|
120
|
+
description: 'Stable result id emitted on each rendered result card. Used by scroll_to_result / focus_pin to address a single result. The non-focusable card group is labelled by the practice-result-{id}-name heading, which contains data-component="practice-result-name-link": a visible link to result.href that navigates without firing onResultSelect or click telemetry. Each card also carries up to two CTA anchors: data-component="practice-result-open-cta" (practice page; absent when the consumer sets showCardOpenButton=false) 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).'
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
-
},
|
|
123
|
+
}, wt = 13, Rt = [
|
|
124
124
|
"distance",
|
|
125
125
|
"rating",
|
|
126
126
|
"next-available",
|
|
127
127
|
"relevance"
|
|
128
128
|
];
|
|
129
|
-
function
|
|
129
|
+
function Ie(e, n, a) {
|
|
130
130
|
const r = `languages.${e}`;
|
|
131
131
|
return a.exists(r) ? n(r) : e.toUpperCase();
|
|
132
132
|
}
|
|
133
|
-
function
|
|
133
|
+
function H(e, n) {
|
|
134
134
|
if (typeof window > "u") return;
|
|
135
135
|
const a = window.track;
|
|
136
136
|
try {
|
|
@@ -138,28 +138,28 @@ function B(e, n) {
|
|
|
138
138
|
} catch {
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
function
|
|
142
|
-
const s = e.findIndex((
|
|
141
|
+
function J(e, n, a, r) {
|
|
142
|
+
const s = e.findIndex((d) => d.id === n);
|
|
143
143
|
if (s < 0) return;
|
|
144
144
|
const i = e[s];
|
|
145
|
-
i && (
|
|
145
|
+
i && (H("serp_result_clicked", { resultId: n, source: a, position: s }), r(i, a));
|
|
146
146
|
}
|
|
147
|
-
function
|
|
148
|
-
const r = (n.lat - e.lat) * Math.PI / 180, s = (n.lng - e.lng) * Math.PI / 180, i = e.lat * Math.PI / 180,
|
|
149
|
-
return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(
|
|
147
|
+
function Nt(e, n) {
|
|
148
|
+
const r = (n.lat - e.lat) * Math.PI / 180, s = (n.lng - e.lng) * Math.PI / 180, i = e.lat * Math.PI / 180, d = n.lat * Math.PI / 180, u = Math.sin(r / 2), o = Math.sin(s / 2), g = u * u + Math.cos(i) * Math.cos(d) * o * o;
|
|
149
|
+
return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(g)));
|
|
150
150
|
}
|
|
151
|
-
function
|
|
151
|
+
function St(e, n, a) {
|
|
152
152
|
var s;
|
|
153
153
|
const r = [];
|
|
154
154
|
for (const i of e) {
|
|
155
|
-
const
|
|
156
|
-
(
|
|
155
|
+
const d = i.field ?? i.key, u = (((s = a == null ? void 0 : a[i.key]) == null ? void 0 : s.length) ?? 0) > 0, o = i.type === "boolean" || i.type !== "options" && i.options.length === 0 && (u || n.some(
|
|
156
|
+
(g) => typeof g[d] == "boolean"
|
|
157
157
|
));
|
|
158
|
-
!
|
|
158
|
+
!o && i.options.length === 0 || r.push({ ...i, boolean: o, booleanField: d });
|
|
159
159
|
}
|
|
160
160
|
return r;
|
|
161
161
|
}
|
|
162
|
-
function
|
|
162
|
+
function Lt(e, n, a) {
|
|
163
163
|
return !n || Object.keys(n).length === 0 ? e : e.filter((r) => {
|
|
164
164
|
for (const s of a) {
|
|
165
165
|
const i = n[s.key];
|
|
@@ -168,28 +168,28 @@ function Nt(e, n, a) {
|
|
|
168
168
|
if (r[s.booleanField] !== !0) return !1;
|
|
169
169
|
continue;
|
|
170
170
|
}
|
|
171
|
-
const
|
|
172
|
-
if (!Array.isArray(
|
|
171
|
+
const d = s.key === "insurance" ? r.insurances : s.key === "language" ? r.languages : r[s.key];
|
|
172
|
+
if (!Array.isArray(d) || !(s.multi ? i.some((o) => d.includes(o)) : d.includes(i[0]))) return !1;
|
|
173
173
|
}
|
|
174
174
|
return !0;
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
|
-
function
|
|
177
|
+
function Pt(e, n, a) {
|
|
178
178
|
const r = e.map((i) => {
|
|
179
|
-
const
|
|
180
|
-
return { result: i, distanceKm:
|
|
181
|
-
}), s = (i,
|
|
182
|
-
var
|
|
179
|
+
const d = i.location ? i.location.distanceKm ?? (a ? Nt(a, i.location) : void 0) : void 0;
|
|
180
|
+
return { result: i, distanceKm: d };
|
|
181
|
+
}), s = (i, d) => {
|
|
182
|
+
var u, o, g, l;
|
|
183
183
|
switch (n) {
|
|
184
184
|
case "distance":
|
|
185
|
-
return i.distanceKm == null &&
|
|
185
|
+
return i.distanceKm == null && d.distanceKm == null ? 0 : i.distanceKm == null ? 1 : d.distanceKm == null ? -1 : i.distanceKm - d.distanceKm;
|
|
186
186
|
case "rating": {
|
|
187
|
-
const
|
|
188
|
-
return (((
|
|
187
|
+
const p = ((u = i.result.rating) == null ? void 0 : u.value) ?? -1;
|
|
188
|
+
return (((o = d.result.rating) == null ? void 0 : o.value) ?? -1) - p;
|
|
189
189
|
}
|
|
190
190
|
case "next-available": {
|
|
191
|
-
const
|
|
192
|
-
return !
|
|
191
|
+
const p = ((g = i.result.nextAvailableSlot) == null ? void 0 : g.dateTime) ?? "", f = ((l = d.result.nextAvailableSlot) == null ? void 0 : l.dateTime) ?? "";
|
|
192
|
+
return !p && !f ? 0 : p ? f ? p.localeCompare(f) : -1 : 1;
|
|
193
193
|
}
|
|
194
194
|
case "relevance":
|
|
195
195
|
default:
|
|
@@ -197,24 +197,24 @@ function St(e, n, a) {
|
|
|
197
197
|
}
|
|
198
198
|
};
|
|
199
199
|
return [...r].sort(s).map(
|
|
200
|
-
({ result: i, distanceKm:
|
|
200
|
+
({ result: i, distanceKm: d }) => d != null && i.location ? {
|
|
201
201
|
...i,
|
|
202
|
-
location: { ...i.location, distanceKm:
|
|
202
|
+
location: { ...i.location, distanceKm: d }
|
|
203
203
|
} : i
|
|
204
204
|
);
|
|
205
205
|
}
|
|
206
|
-
function
|
|
206
|
+
function Re(e) {
|
|
207
207
|
let n = -1 / 0, a = 1 / 0, r = -1 / 0, s = 1 / 0, i = !1;
|
|
208
|
-
for (const
|
|
209
|
-
if (!
|
|
208
|
+
for (const d of e) {
|
|
209
|
+
if (!d.location) continue;
|
|
210
210
|
i = !0;
|
|
211
|
-
const { lat:
|
|
212
|
-
|
|
211
|
+
const { lat: u, lng: o } = d.location;
|
|
212
|
+
u > n && (n = u), u < a && (a = u), o > r && (r = o), o < s && (s = o);
|
|
213
213
|
}
|
|
214
214
|
if (i)
|
|
215
215
|
return { north: n, south: a, east: r, west: s };
|
|
216
216
|
}
|
|
217
|
-
const
|
|
217
|
+
const At = K(
|
|
218
218
|
"ds:flex ds:w-full ds:flex-col ds:text-[var(--foreground)] ds:gap-[var(--spacing-md)]",
|
|
219
219
|
{
|
|
220
220
|
variants: {
|
|
@@ -227,33 +227,33 @@ const Pt = q(
|
|
|
227
227
|
defaultVariants: { variant: "split-list-map" }
|
|
228
228
|
}
|
|
229
229
|
);
|
|
230
|
-
function
|
|
230
|
+
function _e({
|
|
231
231
|
heading: e,
|
|
232
232
|
headingLevel: n,
|
|
233
233
|
intro: a,
|
|
234
234
|
totalCount: r,
|
|
235
235
|
searchCentreLabel: s
|
|
236
236
|
}) {
|
|
237
|
-
const { t: i } = w("ui"),
|
|
237
|
+
const { t: i } = w("ui"), d = `h${n}`;
|
|
238
238
|
if (!e && !a && r == null) return null;
|
|
239
|
-
const
|
|
239
|
+
const u = r != null ? s ? i("practiceResults.results.heading", {
|
|
240
240
|
count: r,
|
|
241
241
|
place: s
|
|
242
242
|
}) : i("practiceResults.results.summary", { count: r }) : void 0;
|
|
243
243
|
return /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
|
|
244
|
-
e ? /* @__PURE__ */ t(
|
|
244
|
+
e ? /* @__PURE__ */ t(d, { className: "type-title-section ds:m-0 ds:text-[var(--foreground)]", children: e }) : null,
|
|
245
245
|
a ? /* @__PURE__ */ t("p", { className: "type-body ds:m-0 ds:text-[var(--muted-foreground)]", children: a }) : null,
|
|
246
|
-
|
|
246
|
+
u ? /* @__PURE__ */ t(
|
|
247
247
|
"p",
|
|
248
248
|
{
|
|
249
249
|
className: "type-body-sm ds:m-0 ds:text-[var(--muted-foreground)]",
|
|
250
250
|
"aria-live": "polite",
|
|
251
|
-
children:
|
|
251
|
+
children: u
|
|
252
252
|
}
|
|
253
253
|
) : null
|
|
254
254
|
] });
|
|
255
255
|
}
|
|
256
|
-
const
|
|
256
|
+
const ne = K(
|
|
257
257
|
[
|
|
258
258
|
"ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
|
|
259
259
|
"ds:min-h-[var(--min-target-size)]",
|
|
@@ -275,7 +275,7 @@ const te = q(
|
|
|
275
275
|
},
|
|
276
276
|
defaultVariants: { state: "idle" }
|
|
277
277
|
}
|
|
278
|
-
),
|
|
278
|
+
), Mt = K(
|
|
279
279
|
"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
|
|
280
280
|
{
|
|
281
281
|
variants: {
|
|
@@ -294,7 +294,7 @@ const te = q(
|
|
|
294
294
|
},
|
|
295
295
|
defaultVariants: { placement: "inline" }
|
|
296
296
|
}
|
|
297
|
-
),
|
|
297
|
+
), Tt = K(
|
|
298
298
|
[
|
|
299
299
|
"ds:ms-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
|
|
300
300
|
"ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]",
|
|
@@ -305,26 +305,26 @@ const te = q(
|
|
|
305
305
|
"ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
|
|
306
306
|
].join(" ")
|
|
307
307
|
);
|
|
308
|
-
function
|
|
308
|
+
function ze({
|
|
309
309
|
facets: e,
|
|
310
310
|
value: n,
|
|
311
311
|
onChange: a,
|
|
312
312
|
floating: r
|
|
313
313
|
}) {
|
|
314
|
-
const { t: s } = w("ui"), i = M(() => n ?? {}, [n]),
|
|
315
|
-
() => Object.values(i).some((
|
|
314
|
+
const { t: s } = w("ui"), i = M(() => n ?? {}, [n]), d = M(
|
|
315
|
+
() => Object.values(i).some((l) => l && l.length > 0),
|
|
316
316
|
[i]
|
|
317
|
-
),
|
|
318
|
-
const
|
|
319
|
-
|
|
320
|
-
},
|
|
321
|
-
var
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
},
|
|
325
|
-
const
|
|
326
|
-
let
|
|
327
|
-
|
|
317
|
+
), u = (l, p) => {
|
|
318
|
+
const f = { ...i };
|
|
319
|
+
p.length === 0 ? delete f[l] : f[l] = p, a(f), H("serp_filter_changed", { key: l, values: p });
|
|
320
|
+
}, o = (l) => {
|
|
321
|
+
var f;
|
|
322
|
+
const p = (((f = i[l]) == null ? void 0 : f.length) ?? 0) > 0;
|
|
323
|
+
u(l, p ? [] : ["true"]);
|
|
324
|
+
}, g = (l, p) => {
|
|
325
|
+
const f = i[l.key] ?? [], b = f.includes(p);
|
|
326
|
+
let h;
|
|
327
|
+
l.multi ? h = b ? f.filter((y) => y !== p) : [...f, p] : h = b ? [] : [p], u(l.key, h);
|
|
328
328
|
};
|
|
329
329
|
return e.length === 0 ? null : /* @__PURE__ */ m(
|
|
330
330
|
"div",
|
|
@@ -332,44 +332,44 @@ function _e({
|
|
|
332
332
|
"data-component": "practice-results-filters",
|
|
333
333
|
role: "group",
|
|
334
334
|
"aria-label": s("practiceResults.filters.label"),
|
|
335
|
-
className:
|
|
335
|
+
className: Mt({
|
|
336
336
|
placement: r ? "floating" : "inline"
|
|
337
337
|
}),
|
|
338
338
|
children: [
|
|
339
|
-
e.map((
|
|
340
|
-
const
|
|
341
|
-
if (
|
|
339
|
+
e.map((l) => {
|
|
340
|
+
const p = l.boolean, f = i[l.key] ?? [], b = f.length > 0;
|
|
341
|
+
if (p)
|
|
342
342
|
return /* @__PURE__ */ t(
|
|
343
343
|
"button",
|
|
344
344
|
{
|
|
345
345
|
type: "button",
|
|
346
|
-
"aria-pressed":
|
|
347
|
-
"aria-label":
|
|
348
|
-
onClick: () => l
|
|
349
|
-
className:
|
|
350
|
-
state:
|
|
346
|
+
"aria-pressed": b,
|
|
347
|
+
"aria-label": l.label,
|
|
348
|
+
onClick: () => o(l.key),
|
|
349
|
+
className: ne({
|
|
350
|
+
state: b ? "active" : "idle"
|
|
351
351
|
}),
|
|
352
|
-
children: /* @__PURE__ */ t("span", { children:
|
|
352
|
+
children: /* @__PURE__ */ t("span", { children: l.label })
|
|
353
353
|
},
|
|
354
|
-
|
|
354
|
+
l.key
|
|
355
355
|
);
|
|
356
|
-
const
|
|
357
|
-
return /* @__PURE__ */ m(
|
|
358
|
-
/* @__PURE__ */ t(
|
|
356
|
+
const h = b ? ` (${f.length})` : "";
|
|
357
|
+
return /* @__PURE__ */ m(O.Root, { children: [
|
|
358
|
+
/* @__PURE__ */ t(O.Trigger, { asChild: !0, children: /* @__PURE__ */ m(
|
|
359
359
|
"button",
|
|
360
360
|
{
|
|
361
361
|
type: "button",
|
|
362
|
-
"aria-label": `${
|
|
363
|
-
className:
|
|
364
|
-
state:
|
|
362
|
+
"aria-label": `${l.label}${h}`,
|
|
363
|
+
className: ne({
|
|
364
|
+
state: b ? "active" : "idle"
|
|
365
365
|
}),
|
|
366
366
|
children: [
|
|
367
367
|
/* @__PURE__ */ m("span", { children: [
|
|
368
|
-
|
|
369
|
-
|
|
368
|
+
l.label,
|
|
369
|
+
h
|
|
370
370
|
] }),
|
|
371
371
|
/* @__PURE__ */ t(
|
|
372
|
-
|
|
372
|
+
Pe,
|
|
373
373
|
{
|
|
374
374
|
"aria-hidden": "true",
|
|
375
375
|
className: "ds:size-3.5 ds:shrink-0"
|
|
@@ -378,27 +378,27 @@ function _e({
|
|
|
378
378
|
]
|
|
379
379
|
}
|
|
380
380
|
) }),
|
|
381
|
-
/* @__PURE__ */ t(
|
|
382
|
-
|
|
381
|
+
/* @__PURE__ */ t(O.Content, { sideOffset: 8, align: "start", children: l.options.map((y) => /* @__PURE__ */ t(
|
|
382
|
+
O.CheckboxItem,
|
|
383
383
|
{
|
|
384
|
-
checked:
|
|
385
|
-
onSelect: (
|
|
386
|
-
|
|
384
|
+
checked: f.includes(y.value),
|
|
385
|
+
onSelect: (k) => {
|
|
386
|
+
l.multi && k.preventDefault(), g(l, y.value);
|
|
387
387
|
},
|
|
388
388
|
children: y.label
|
|
389
389
|
},
|
|
390
390
|
y.value
|
|
391
391
|
)) })
|
|
392
|
-
] },
|
|
392
|
+
] }, l.key);
|
|
393
393
|
}),
|
|
394
|
-
|
|
394
|
+
d ? /* @__PURE__ */ t(
|
|
395
395
|
"button",
|
|
396
396
|
{
|
|
397
397
|
type: "button",
|
|
398
398
|
onClick: () => {
|
|
399
|
-
a({}),
|
|
399
|
+
a({}), H("serp_filter_changed", { key: "*", values: [] });
|
|
400
400
|
},
|
|
401
|
-
className:
|
|
401
|
+
className: Tt(),
|
|
402
402
|
children: s("practiceResults.filters.clear")
|
|
403
403
|
}
|
|
404
404
|
) : null
|
|
@@ -406,7 +406,7 @@ function _e({
|
|
|
406
406
|
}
|
|
407
407
|
);
|
|
408
408
|
}
|
|
409
|
-
function
|
|
409
|
+
function me({ value: e, onChange: n }) {
|
|
410
410
|
const { t: a } = w("ui"), r = (s) => {
|
|
411
411
|
switch (s) {
|
|
412
412
|
case "distance":
|
|
@@ -420,37 +420,37 @@ function ue({ value: e, onChange: n }) {
|
|
|
420
420
|
return a("practiceResults.sort.relevance");
|
|
421
421
|
}
|
|
422
422
|
};
|
|
423
|
-
return /* @__PURE__ */ m(
|
|
424
|
-
/* @__PURE__ */ t(
|
|
423
|
+
return /* @__PURE__ */ m(O.Root, { children: [
|
|
424
|
+
/* @__PURE__ */ t(O.Trigger, { asChild: !0, children: /* @__PURE__ */ m(
|
|
425
425
|
"button",
|
|
426
426
|
{
|
|
427
427
|
type: "button",
|
|
428
428
|
"aria-label": `${a("practiceResults.sort.label")}: ${r(e)}`,
|
|
429
|
-
className:
|
|
429
|
+
className: ne({ state: "idle" }),
|
|
430
430
|
children: [
|
|
431
431
|
/* @__PURE__ */ m("span", { children: [
|
|
432
432
|
a("practiceResults.sort.label"),
|
|
433
433
|
": ",
|
|
434
434
|
r(e)
|
|
435
435
|
] }),
|
|
436
|
-
/* @__PURE__ */ t(
|
|
436
|
+
/* @__PURE__ */ t(Pe, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" })
|
|
437
437
|
]
|
|
438
438
|
}
|
|
439
439
|
) }),
|
|
440
|
-
/* @__PURE__ */ t(
|
|
441
|
-
|
|
440
|
+
/* @__PURE__ */ t(O.Content, { sideOffset: 8, align: "end", children: /* @__PURE__ */ t(
|
|
441
|
+
O.RadioGroup,
|
|
442
442
|
{
|
|
443
443
|
value: e,
|
|
444
444
|
onValueChange: (s) => {
|
|
445
445
|
const i = s;
|
|
446
|
-
i !== e && (n(i),
|
|
446
|
+
i !== e && (n(i), H("serp_sort_changed", { sort: i }));
|
|
447
447
|
},
|
|
448
|
-
children:
|
|
448
|
+
children: Rt.map((s) => /* @__PURE__ */ t(O.RadioItem, { value: s, children: r(s) }, s))
|
|
449
449
|
}
|
|
450
450
|
) })
|
|
451
451
|
] });
|
|
452
452
|
}
|
|
453
|
-
function
|
|
453
|
+
function Fe({ distanceKm: e }) {
|
|
454
454
|
const { t: n, i18n: a } = w("ui"), r = M(() => {
|
|
455
455
|
if (e < 1) return n("practiceResults.distance.below");
|
|
456
456
|
const s = new Intl.NumberFormat(a.language, {
|
|
@@ -458,9 +458,9 @@ function Te({ distanceKm: e }) {
|
|
|
458
458
|
}).format(e);
|
|
459
459
|
return n("practiceResults.distance.km", { distance: s });
|
|
460
460
|
}, [e, n, a.language]);
|
|
461
|
-
return /* @__PURE__ */ t(D, { variant: "neutral", leading: /* @__PURE__ */ t(
|
|
461
|
+
return /* @__PURE__ */ t(D, { variant: "neutral", leading: /* @__PURE__ */ t(ae, { "aria-hidden": "true" }), children: r });
|
|
462
462
|
}
|
|
463
|
-
const
|
|
463
|
+
const Ne = K(
|
|
464
464
|
[
|
|
465
465
|
"ds:inline-size-[12rem] ds:block-size-[8rem] ds:shrink-0",
|
|
466
466
|
"ds:rounded-[var(--radius-md)] ds:overflow-hidden"
|
|
@@ -479,12 +479,12 @@ const we = q(
|
|
|
479
479
|
defaultVariants: { state: "placeholder" }
|
|
480
480
|
}
|
|
481
481
|
);
|
|
482
|
-
function
|
|
482
|
+
function It() {
|
|
483
483
|
if (typeof document > "u") return "4945a3";
|
|
484
484
|
const e = getComputedStyle(document.documentElement).getPropertyValue("--map-marker-color").trim(), n = /^#?([0-9a-fA-F]{6})$/.exec(e);
|
|
485
485
|
return n ? n[1] : "4945a3";
|
|
486
486
|
}
|
|
487
|
-
function
|
|
487
|
+
function _t({
|
|
488
488
|
apiKey: e,
|
|
489
489
|
center: n,
|
|
490
490
|
zoom: a = 14,
|
|
@@ -496,28 +496,28 @@ function It({
|
|
|
496
496
|
"div",
|
|
497
497
|
{
|
|
498
498
|
"aria-hidden": r ? void 0 : "true",
|
|
499
|
-
className:
|
|
499
|
+
className: Ne({ state: "placeholder" }),
|
|
500
500
|
children: [
|
|
501
|
-
/* @__PURE__ */ t(
|
|
501
|
+
/* @__PURE__ */ t(ae, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
|
|
502
502
|
r ? /* @__PURE__ */ t("span", { dir: "auto", className: "type-meta ds:[overflow-wrap:anywhere]", children: r }) : null
|
|
503
503
|
]
|
|
504
504
|
}
|
|
505
505
|
);
|
|
506
|
-
const i =
|
|
506
|
+
const i = It(), d = `https://maps.googleapis.com/maps/api/staticmap?center=${n.lat},${n.lng}&zoom=${a}&size=240x160&scale=2&markers=color:0x${i}%7C${n.lat},${n.lng}&key=${encodeURIComponent(e)}`;
|
|
507
507
|
return /* @__PURE__ */ t(
|
|
508
508
|
"img",
|
|
509
509
|
{
|
|
510
|
-
src:
|
|
510
|
+
src: d,
|
|
511
511
|
alt: s("practiceResults.thumbnail.alt"),
|
|
512
512
|
loading: "lazy",
|
|
513
513
|
decoding: "async",
|
|
514
514
|
width: 240,
|
|
515
515
|
height: 160,
|
|
516
|
-
className:
|
|
516
|
+
className: Ne({ state: "image" })
|
|
517
517
|
}
|
|
518
518
|
);
|
|
519
519
|
}
|
|
520
|
-
function
|
|
520
|
+
function He({ tagline: e }) {
|
|
521
521
|
return e ? /* @__PURE__ */ t(
|
|
522
522
|
"span",
|
|
523
523
|
{
|
|
@@ -528,7 +528,7 @@ function ze({ tagline: e }) {
|
|
|
528
528
|
}
|
|
529
529
|
) : null;
|
|
530
530
|
}
|
|
531
|
-
const
|
|
531
|
+
const zt = K(
|
|
532
532
|
"type-body-sm ds:m-0 ds:text-[var(--muted-foreground)] ds:whitespace-pre-line ds:break-words",
|
|
533
533
|
{
|
|
534
534
|
variants: {
|
|
@@ -540,7 +540,7 @@ const _t = q(
|
|
|
540
540
|
defaultVariants: { density: "compact" }
|
|
541
541
|
}
|
|
542
542
|
);
|
|
543
|
-
function
|
|
543
|
+
function Be({
|
|
544
544
|
description: e,
|
|
545
545
|
density: n
|
|
546
546
|
}) {
|
|
@@ -549,17 +549,17 @@ function Fe({
|
|
|
549
549
|
{
|
|
550
550
|
"data-component": "practice-result-description",
|
|
551
551
|
dir: "auto",
|
|
552
|
-
className:
|
|
552
|
+
className: zt({ density: n }),
|
|
553
553
|
children: e
|
|
554
554
|
}
|
|
555
555
|
) : null;
|
|
556
556
|
}
|
|
557
|
-
function
|
|
557
|
+
function $e({
|
|
558
558
|
cents: e,
|
|
559
559
|
currencyCode: n = "EUR"
|
|
560
560
|
}) {
|
|
561
561
|
const { t: a, i18n: r } = w("ui"), s = M(
|
|
562
|
-
() => e == null ? void 0 :
|
|
562
|
+
() => e == null ? void 0 : pt(
|
|
563
563
|
e,
|
|
564
564
|
n,
|
|
565
565
|
r.language ?? "en",
|
|
@@ -574,7 +574,7 @@ function Be({
|
|
|
574
574
|
className: "type-body-sm ds:inline-flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)] ds:text-[var(--muted-foreground)]",
|
|
575
575
|
children: [
|
|
576
576
|
/* @__PURE__ */ t(
|
|
577
|
-
|
|
577
|
+
vt,
|
|
578
578
|
{
|
|
579
579
|
"aria-hidden": "true",
|
|
580
580
|
className: "ds:size-4 ds:shrink-0 ds:text-[var(--primary)]"
|
|
@@ -587,11 +587,11 @@ function Be({
|
|
|
587
587
|
}
|
|
588
588
|
);
|
|
589
589
|
}
|
|
590
|
-
function
|
|
590
|
+
function Oe({ time: e }) {
|
|
591
591
|
const { t: n } = w("ui");
|
|
592
592
|
return /* @__PURE__ */ m("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
593
593
|
/* @__PURE__ */ t(
|
|
594
|
-
|
|
594
|
+
bt,
|
|
595
595
|
{
|
|
596
596
|
"aria-hidden": "true",
|
|
597
597
|
className: "ds:size-4 ds:text-[var(--primary)]"
|
|
@@ -600,7 +600,7 @@ function He({ time: e }) {
|
|
|
600
600
|
n("practiceResults.nextSlot.summary", { time: e })
|
|
601
601
|
] });
|
|
602
602
|
}
|
|
603
|
-
function
|
|
603
|
+
function De({
|
|
604
604
|
result: e,
|
|
605
605
|
openLabel: n,
|
|
606
606
|
bookLabel: a,
|
|
@@ -608,42 +608,29 @@ function $e({
|
|
|
608
608
|
onOpenClick: s,
|
|
609
609
|
onBookClick: i
|
|
610
610
|
}) {
|
|
611
|
-
const { t:
|
|
611
|
+
const { t: d } = w("ui"), u = e.nextAvailableSlot, o = (u == null ? void 0 : u.bookingHref) ?? e.bookingHref ?? e.href, g = u && r ? d("practiceResults.nextSlot.cta", { time: r }) : a;
|
|
612
612
|
return /* @__PURE__ */ m("div", { className: "ds:mt-[var(--spacing-xs)] ds:flex ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)]", children: [
|
|
613
|
-
n !== void 0 ? /* @__PURE__ */ t(
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
asChild: !0,
|
|
619
|
-
onClick: (o) => {
|
|
620
|
-
o.stopPropagation(), s();
|
|
621
|
-
},
|
|
622
|
-
children: /* @__PURE__ */ m("a", { href: e.href, "data-component": "practice-result-open-cta", children: [
|
|
623
|
-
n,
|
|
624
|
-
" ",
|
|
625
|
-
/* @__PURE__ */ t("span", { className: "ds:sr-only", children: e.name })
|
|
626
|
-
] })
|
|
627
|
-
}
|
|
628
|
-
) : null,
|
|
613
|
+
n !== void 0 ? /* @__PURE__ */ t(te, { intent: "secondary", size: "sm", asChild: !0, onClick: s, children: /* @__PURE__ */ m("a", { href: e.href, "data-component": "practice-result-open-cta", children: [
|
|
614
|
+
n,
|
|
615
|
+
" ",
|
|
616
|
+
/* @__PURE__ */ t("span", { className: "ds:sr-only", children: e.name })
|
|
617
|
+
] }) }) : null,
|
|
629
618
|
/* @__PURE__ */ t(
|
|
630
|
-
|
|
619
|
+
te,
|
|
631
620
|
{
|
|
632
621
|
intent: "primary",
|
|
633
622
|
size: "sm",
|
|
634
623
|
asChild: !0,
|
|
635
|
-
startIcon: /* @__PURE__ */ t(
|
|
636
|
-
onClick:
|
|
637
|
-
o.stopPropagation(), i();
|
|
638
|
-
},
|
|
624
|
+
startIcon: /* @__PURE__ */ t(yt, { "aria-hidden": "true" }),
|
|
625
|
+
onClick: i,
|
|
639
626
|
children: /* @__PURE__ */ m(
|
|
640
627
|
"a",
|
|
641
628
|
{
|
|
642
|
-
href:
|
|
629
|
+
href: o,
|
|
643
630
|
"data-component": "practice-result-book-cta",
|
|
644
|
-
"data-slot-aware":
|
|
631
|
+
"data-slot-aware": u ? "true" : void 0,
|
|
645
632
|
children: [
|
|
646
|
-
|
|
633
|
+
g,
|
|
647
634
|
" ",
|
|
648
635
|
/* @__PURE__ */ t("span", { className: "ds:sr-only", children: e.name })
|
|
649
636
|
]
|
|
@@ -653,7 +640,7 @@ function $e({
|
|
|
653
640
|
)
|
|
654
641
|
] });
|
|
655
642
|
}
|
|
656
|
-
const
|
|
643
|
+
const Ve = K(
|
|
657
644
|
[
|
|
658
645
|
"ds:relative ds:flex ds:w-full ds:cursor-pointer",
|
|
659
646
|
"ds:rounded-[var(--radius-lg)]",
|
|
@@ -681,24 +668,61 @@ const De = q(
|
|
|
681
668
|
},
|
|
682
669
|
defaultVariants: { density: "compact" }
|
|
683
670
|
}
|
|
684
|
-
)
|
|
685
|
-
|
|
671
|
+
), Ft = K([
|
|
672
|
+
"ds:text-[var(--foreground)] ds:no-underline ds:hover:underline",
|
|
673
|
+
"ds:rounded-[var(--radius-xs)]",
|
|
674
|
+
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
675
|
+
"ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
676
|
+
"ds:forced-colors:focus-visible:outline-[CanvasText]"
|
|
677
|
+
]);
|
|
678
|
+
function Ke({
|
|
679
|
+
result: e,
|
|
680
|
+
headingLevel: n
|
|
681
|
+
}) {
|
|
682
|
+
const a = `h${ve(n)}`;
|
|
683
|
+
return /* @__PURE__ */ t(
|
|
684
|
+
a,
|
|
685
|
+
{
|
|
686
|
+
id: `practice-result-${e.id}-name`,
|
|
687
|
+
dir: "auto",
|
|
688
|
+
className: "type-title-card ds:m-0 ds:text-[var(--foreground)]",
|
|
689
|
+
children: /* @__PURE__ */ t(
|
|
690
|
+
"a",
|
|
691
|
+
{
|
|
692
|
+
href: e.href,
|
|
693
|
+
dir: "auto",
|
|
694
|
+
"data-component": "practice-result-name-link",
|
|
695
|
+
className: Ft(),
|
|
696
|
+
children: e.name
|
|
697
|
+
}
|
|
698
|
+
)
|
|
699
|
+
}
|
|
700
|
+
);
|
|
701
|
+
}
|
|
702
|
+
function Ee(e) {
|
|
703
|
+
const n = e.target.closest(
|
|
704
|
+
'a, button, [role="button"], input, select, textarea, label'
|
|
705
|
+
);
|
|
706
|
+
return n !== null && n !== e.currentTarget && e.currentTarget.contains(n);
|
|
707
|
+
}
|
|
708
|
+
function Ht({
|
|
686
709
|
result: e,
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
710
|
+
headingLevel: n,
|
|
711
|
+
highlighted: a,
|
|
712
|
+
onSelect: r,
|
|
713
|
+
onOpenClick: s,
|
|
714
|
+
onHover: i,
|
|
715
|
+
density: d = "compact",
|
|
716
|
+
openLabel: u,
|
|
717
|
+
bookLabel: o,
|
|
718
|
+
onBookClick: g,
|
|
719
|
+
nextSlotText: l,
|
|
720
|
+
maxInsuranceChips: p = 3,
|
|
697
721
|
maxLanguageChips: f = 4,
|
|
698
|
-
children:
|
|
722
|
+
children: b
|
|
699
723
|
}) {
|
|
700
|
-
var
|
|
701
|
-
const { t:
|
|
724
|
+
var Z, Q, E, j, V, R;
|
|
725
|
+
const { t: h, i18n: y } = w("ui"), k = e.rating, x = (Z = e.location) == null ? void 0 : Z.distanceKm, c = (((Q = e.languages) == null ? void 0 : Q.length) ?? 0) > 0, S = (((E = e.insurances) == null ? void 0 : E.length) ?? 0) > 0, N = e.specializedInFearPatients, L = c || S || N, C = (e.languages ?? []).slice(0, f), _ = (((j = e.languages) == null ? void 0 : j.length) ?? 0) - C.length, A = (e.insurances ?? []).slice(0, p), G = (((V = e.insurances) == null ? void 0 : V.length) ?? 0) - A.length;
|
|
702
726
|
return (
|
|
703
727
|
// 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.
|
|
704
728
|
/* @__PURE__ */ m(
|
|
@@ -706,16 +730,18 @@ function Tt({
|
|
|
706
730
|
{
|
|
707
731
|
"data-component": "practice-result-card",
|
|
708
732
|
"data-result-id": e.id,
|
|
709
|
-
"data-highlighted":
|
|
733
|
+
"data-highlighted": a ? "true" : "false",
|
|
710
734
|
role: "group",
|
|
711
735
|
"aria-labelledby": `practice-result-${e.id}-name`,
|
|
712
|
-
onClick:
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
736
|
+
onClick: (B) => {
|
|
737
|
+
Ee(B) || r();
|
|
738
|
+
},
|
|
739
|
+
onMouseEnter: i,
|
|
740
|
+
onFocus: i,
|
|
741
|
+
className: Ve({ density: d }),
|
|
716
742
|
children: [
|
|
717
743
|
/* @__PURE__ */ t(
|
|
718
|
-
|
|
744
|
+
Se,
|
|
719
745
|
{
|
|
720
746
|
src: e.imageUrl,
|
|
721
747
|
name: e.name,
|
|
@@ -727,74 +753,66 @@ function Tt({
|
|
|
727
753
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
|
|
728
754
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
|
|
729
755
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
730
|
-
/* @__PURE__ */ t(
|
|
731
|
-
|
|
732
|
-
{
|
|
733
|
-
id: `practice-result-${e.id}-name`,
|
|
734
|
-
dir: "auto",
|
|
735
|
-
className: "type-title-card ds:text-[var(--foreground)]",
|
|
736
|
-
children: e.name
|
|
737
|
-
}
|
|
738
|
-
),
|
|
739
|
-
C != null ? /* @__PURE__ */ t(Te, { distanceKm: C }) : null
|
|
756
|
+
/* @__PURE__ */ t(Ke, { result: e, headingLevel: n }),
|
|
757
|
+
x != null ? /* @__PURE__ */ t(Fe, { distanceKm: x }) : null
|
|
740
758
|
] }),
|
|
741
759
|
e.subtitle ? /* @__PURE__ */ t("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
|
|
742
|
-
/* @__PURE__ */ t(
|
|
743
|
-
(
|
|
744
|
-
/* @__PURE__ */ t(
|
|
760
|
+
/* @__PURE__ */ t(He, { tagline: e.tagline }),
|
|
761
|
+
(R = e.location) != null && R.address ? /* @__PURE__ */ m("span", { className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
|
|
762
|
+
/* @__PURE__ */ t(ae, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" }),
|
|
745
763
|
/* @__PURE__ */ t("span", { dir: "auto", children: e.location.address })
|
|
746
764
|
] }) : null
|
|
747
765
|
] }),
|
|
748
|
-
|
|
749
|
-
|
|
766
|
+
k && k.count > 0 ? /* @__PURE__ */ t(
|
|
767
|
+
Le,
|
|
750
768
|
{
|
|
751
|
-
value:
|
|
752
|
-
reviews: { count:
|
|
769
|
+
value: k.value,
|
|
770
|
+
reviews: { count: k.count },
|
|
753
771
|
size: "sm"
|
|
754
772
|
}
|
|
755
773
|
) : null,
|
|
756
|
-
|
|
757
|
-
|
|
774
|
+
L ? /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
775
|
+
C.map((B) => /* @__PURE__ */ t(
|
|
758
776
|
D,
|
|
759
777
|
{
|
|
760
778
|
variant: "neutral",
|
|
761
|
-
leading: /* @__PURE__ */ t(
|
|
762
|
-
children:
|
|
779
|
+
leading: /* @__PURE__ */ t(Ae, { "aria-hidden": "true" }),
|
|
780
|
+
children: Ie(B, h, y)
|
|
763
781
|
},
|
|
764
|
-
`lang-${
|
|
782
|
+
`lang-${B}`
|
|
765
783
|
)),
|
|
766
784
|
_ > 0 ? /* @__PURE__ */ t(D, { variant: "neutral", children: `+${_}` }) : null,
|
|
767
|
-
|
|
785
|
+
A.map((B) => /* @__PURE__ */ t(
|
|
768
786
|
D,
|
|
769
787
|
{
|
|
770
788
|
variant: "info",
|
|
771
|
-
leading: /* @__PURE__ */ t(
|
|
772
|
-
children:
|
|
789
|
+
leading: /* @__PURE__ */ t(Me, { "aria-hidden": "true" }),
|
|
790
|
+
children: B
|
|
773
791
|
},
|
|
774
|
-
`ins-${
|
|
792
|
+
`ins-${B}`
|
|
775
793
|
)),
|
|
776
|
-
|
|
777
|
-
|
|
794
|
+
G > 0 ? /* @__PURE__ */ t(D, { variant: "neutral", children: `+${G}` }) : null,
|
|
795
|
+
N ? /* @__PURE__ */ t(D, { variant: "info", leading: /* @__PURE__ */ t(Te, { "aria-hidden": "true" }), children: h("practiceResults.fearPatient.label") }) : null
|
|
778
796
|
] }) : null,
|
|
779
|
-
/* @__PURE__ */ t(
|
|
797
|
+
/* @__PURE__ */ t(Be, { description: e.description, density: "compact" }),
|
|
780
798
|
/* @__PURE__ */ t(
|
|
781
|
-
|
|
799
|
+
$e,
|
|
782
800
|
{
|
|
783
801
|
cents: e.firstVisitPriceCents,
|
|
784
802
|
currencyCode: e.currencyCode
|
|
785
803
|
}
|
|
786
804
|
),
|
|
787
|
-
e.nextAvailableSlot &&
|
|
788
|
-
|
|
805
|
+
e.nextAvailableSlot && l ? /* @__PURE__ */ t(Oe, { time: l }) : null,
|
|
806
|
+
b,
|
|
789
807
|
/* @__PURE__ */ t(
|
|
790
|
-
|
|
808
|
+
De,
|
|
791
809
|
{
|
|
792
810
|
result: e,
|
|
793
|
-
openLabel:
|
|
794
|
-
bookLabel:
|
|
795
|
-
nextSlotText:
|
|
796
|
-
onOpenClick:
|
|
797
|
-
onBookClick:
|
|
811
|
+
openLabel: u,
|
|
812
|
+
bookLabel: o,
|
|
813
|
+
nextSlotText: l,
|
|
814
|
+
onOpenClick: s,
|
|
815
|
+
onBookClick: g
|
|
798
816
|
}
|
|
799
817
|
)
|
|
800
818
|
] })
|
|
@@ -803,22 +821,23 @@ function Tt({
|
|
|
803
821
|
)
|
|
804
822
|
);
|
|
805
823
|
}
|
|
806
|
-
function
|
|
824
|
+
function Bt({
|
|
807
825
|
result: e,
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
826
|
+
headingLevel: n,
|
|
827
|
+
apiKey: a,
|
|
828
|
+
highlighted: r,
|
|
829
|
+
onSelect: s,
|
|
830
|
+
onOpenClick: i,
|
|
831
|
+
onBookClick: d,
|
|
832
|
+
onHover: u,
|
|
833
|
+
openLabel: o,
|
|
834
|
+
bookLabel: g
|
|
816
835
|
}) {
|
|
817
|
-
var
|
|
818
|
-
const { t:
|
|
836
|
+
var c, S, N, L;
|
|
837
|
+
const { t: l, i18n: p } = w("ui"), f = M(() => {
|
|
819
838
|
if (e.nextAvailableSlot)
|
|
820
839
|
try {
|
|
821
|
-
return new Intl.DateTimeFormat(
|
|
840
|
+
return new Intl.DateTimeFormat(p.language, {
|
|
822
841
|
weekday: "short",
|
|
823
842
|
hour: "numeric",
|
|
824
843
|
minute: "numeric"
|
|
@@ -826,7 +845,7 @@ function zt({
|
|
|
826
845
|
} catch {
|
|
827
846
|
return e.nextAvailableSlot.dateTime;
|
|
828
847
|
}
|
|
829
|
-
}, [e.nextAvailableSlot,
|
|
848
|
+
}, [e.nextAvailableSlot, p.language]), b = (((c = e.languages) == null ? void 0 : c.length) ?? 0) > 0, h = (((S = e.insurances) == null ? void 0 : S.length) ?? 0) > 0, y = e.specializedInFearPatients, k = b || h || y, x = (N = e.location) == null ? void 0 : N.distanceKm;
|
|
830
849
|
return (
|
|
831
850
|
// 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.
|
|
832
851
|
/* @__PURE__ */ m(
|
|
@@ -835,18 +854,20 @@ function zt({
|
|
|
835
854
|
"data-component": "practice-result-card",
|
|
836
855
|
"data-result-id": e.id,
|
|
837
856
|
"data-density": "rich",
|
|
838
|
-
"data-highlighted":
|
|
857
|
+
"data-highlighted": r ? "true" : "false",
|
|
839
858
|
role: "group",
|
|
840
859
|
"aria-labelledby": `practice-result-${e.id}-name`,
|
|
841
|
-
onClick:
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
860
|
+
onClick: (C) => {
|
|
861
|
+
Ee(C) || s();
|
|
862
|
+
},
|
|
863
|
+
onMouseEnter: u,
|
|
864
|
+
onFocus: u,
|
|
865
|
+
className: Ve({ density: "rich" }),
|
|
845
866
|
children: [
|
|
846
867
|
e.location ? /* @__PURE__ */ t(
|
|
847
|
-
|
|
868
|
+
_t,
|
|
848
869
|
{
|
|
849
|
-
apiKey:
|
|
870
|
+
apiKey: a,
|
|
850
871
|
center: {
|
|
851
872
|
lat: e.location.lat,
|
|
852
873
|
lng: e.location.lng
|
|
@@ -857,7 +878,7 @@ function zt({
|
|
|
857
878
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
|
|
858
879
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-md)]", children: [
|
|
859
880
|
/* @__PURE__ */ t(
|
|
860
|
-
|
|
881
|
+
Se,
|
|
861
882
|
{
|
|
862
883
|
src: e.imageUrl,
|
|
863
884
|
name: e.name,
|
|
@@ -868,22 +889,14 @@ function zt({
|
|
|
868
889
|
),
|
|
869
890
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
|
|
870
891
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
871
|
-
/* @__PURE__ */ t(
|
|
872
|
-
|
|
873
|
-
{
|
|
874
|
-
id: `practice-result-${e.id}-name`,
|
|
875
|
-
dir: "auto",
|
|
876
|
-
className: "type-title-card ds:text-[var(--foreground)]",
|
|
877
|
-
children: e.name
|
|
878
|
-
}
|
|
879
|
-
),
|
|
880
|
-
C != null ? /* @__PURE__ */ t(Te, { distanceKm: C }) : null
|
|
892
|
+
/* @__PURE__ */ t(Ke, { result: e, headingLevel: n }),
|
|
893
|
+
x != null ? /* @__PURE__ */ t(Fe, { distanceKm: x }) : null
|
|
881
894
|
] }),
|
|
882
895
|
e.subtitle ? /* @__PURE__ */ t("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
|
|
883
|
-
/* @__PURE__ */ t(
|
|
884
|
-
(
|
|
896
|
+
/* @__PURE__ */ t(He, { tagline: e.tagline }),
|
|
897
|
+
(L = e.location) != null && L.address ? /* @__PURE__ */ m("span", { className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
|
|
885
898
|
/* @__PURE__ */ t(
|
|
886
|
-
|
|
899
|
+
ae,
|
|
887
900
|
{
|
|
888
901
|
"aria-hidden": "true",
|
|
889
902
|
className: "ds:size-3.5 ds:shrink-0"
|
|
@@ -893,7 +906,7 @@ function zt({
|
|
|
893
906
|
] }) : null
|
|
894
907
|
] }),
|
|
895
908
|
e.rating && e.rating.count > 0 ? /* @__PURE__ */ t(
|
|
896
|
-
|
|
909
|
+
Le,
|
|
897
910
|
{
|
|
898
911
|
value: e.rating.value,
|
|
899
912
|
reviews: { count: e.rating.count },
|
|
@@ -901,45 +914,45 @@ function zt({
|
|
|
901
914
|
}
|
|
902
915
|
) : null
|
|
903
916
|
] }),
|
|
904
|
-
|
|
905
|
-
|
|
917
|
+
k ? /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
|
|
918
|
+
b ? (e.languages ?? []).map((C) => /* @__PURE__ */ t(
|
|
906
919
|
D,
|
|
907
920
|
{
|
|
908
921
|
variant: "neutral",
|
|
909
|
-
leading: /* @__PURE__ */ t(
|
|
910
|
-
children:
|
|
922
|
+
leading: /* @__PURE__ */ t(Ae, { "aria-hidden": "true" }),
|
|
923
|
+
children: Ie(C, l, p)
|
|
911
924
|
},
|
|
912
|
-
`lang-${
|
|
925
|
+
`lang-${C}`
|
|
913
926
|
)) : null,
|
|
914
|
-
|
|
927
|
+
h ? (e.insurances ?? []).map((C) => /* @__PURE__ */ t(
|
|
915
928
|
D,
|
|
916
929
|
{
|
|
917
930
|
variant: "info",
|
|
918
|
-
leading: /* @__PURE__ */ t(
|
|
919
|
-
children:
|
|
931
|
+
leading: /* @__PURE__ */ t(Me, { "aria-hidden": "true" }),
|
|
932
|
+
children: C
|
|
920
933
|
},
|
|
921
|
-
`ins-${
|
|
934
|
+
`ins-${C}`
|
|
922
935
|
)) : null,
|
|
923
|
-
|
|
936
|
+
y ? /* @__PURE__ */ t(D, { variant: "info", leading: /* @__PURE__ */ t(Te, { "aria-hidden": "true" }), children: l("practiceResults.fearPatient.label") }) : null
|
|
924
937
|
] }) : null,
|
|
925
|
-
/* @__PURE__ */ t(
|
|
938
|
+
/* @__PURE__ */ t(Be, { description: e.description, density: "rich" }),
|
|
926
939
|
/* @__PURE__ */ t(
|
|
927
|
-
|
|
940
|
+
$e,
|
|
928
941
|
{
|
|
929
942
|
cents: e.firstVisitPriceCents,
|
|
930
943
|
currencyCode: e.currencyCode
|
|
931
944
|
}
|
|
932
945
|
),
|
|
933
|
-
e.nextAvailableSlot && f ? /* @__PURE__ */ t(
|
|
946
|
+
e.nextAvailableSlot && f ? /* @__PURE__ */ t(Oe, { time: f }) : null,
|
|
934
947
|
/* @__PURE__ */ t(
|
|
935
|
-
|
|
948
|
+
De,
|
|
936
949
|
{
|
|
937
950
|
result: e,
|
|
938
|
-
openLabel:
|
|
939
|
-
bookLabel:
|
|
951
|
+
openLabel: o,
|
|
952
|
+
bookLabel: g,
|
|
940
953
|
nextSlotText: f,
|
|
941
|
-
onOpenClick:
|
|
942
|
-
onBookClick:
|
|
954
|
+
onOpenClick: i,
|
|
955
|
+
onBookClick: d
|
|
943
956
|
}
|
|
944
957
|
)
|
|
945
958
|
] })
|
|
@@ -948,97 +961,100 @@ function zt({
|
|
|
948
961
|
)
|
|
949
962
|
);
|
|
950
963
|
}
|
|
951
|
-
function
|
|
964
|
+
function he({
|
|
952
965
|
results: e,
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
966
|
+
headingLevel: n,
|
|
967
|
+
highlightedId: a,
|
|
968
|
+
onCardHover: r,
|
|
969
|
+
onCardSelect: s,
|
|
970
|
+
onCardOpenClick: i,
|
|
971
|
+
onCardBookClick: d,
|
|
972
|
+
openLabel: u,
|
|
973
|
+
bookLabel: o,
|
|
974
|
+
formatNextSlot: g,
|
|
975
|
+
onLoadMore: l,
|
|
976
|
+
loadingMore: p,
|
|
963
977
|
loadingSkeletons: f,
|
|
964
|
-
density:
|
|
965
|
-
apiKey:
|
|
966
|
-
containerRef:
|
|
978
|
+
density: b = "compact",
|
|
979
|
+
apiKey: h,
|
|
980
|
+
containerRef: y
|
|
967
981
|
}) {
|
|
968
|
-
const { t:
|
|
969
|
-
return
|
|
970
|
-
if (!
|
|
971
|
-
const
|
|
972
|
-
if (!
|
|
973
|
-
const
|
|
974
|
-
(
|
|
975
|
-
for (const
|
|
976
|
-
|
|
982
|
+
const { t: k } = w("ui"), x = T(null);
|
|
983
|
+
return X(() => {
|
|
984
|
+
if (!l) return;
|
|
985
|
+
const c = x.current;
|
|
986
|
+
if (!c || typeof IntersectionObserver > "u") return;
|
|
987
|
+
const S = new IntersectionObserver(
|
|
988
|
+
(N) => {
|
|
989
|
+
for (const L of N)
|
|
990
|
+
L.isIntersecting && (H("serp_load_more", {
|
|
977
991
|
currentCount: e.length
|
|
978
|
-
}),
|
|
992
|
+
}), l());
|
|
979
993
|
},
|
|
980
994
|
{ root: null, rootMargin: "200px" }
|
|
981
995
|
);
|
|
982
|
-
return
|
|
983
|
-
}, [
|
|
996
|
+
return S.observe(c), () => S.disconnect();
|
|
997
|
+
}, [l, e.length]), f ? /* @__PURE__ */ t(
|
|
984
998
|
"div",
|
|
985
999
|
{
|
|
986
1000
|
role: "status",
|
|
987
1001
|
"aria-live": "polite",
|
|
988
|
-
"aria-label":
|
|
1002
|
+
"aria-label": k("practiceResults.loading"),
|
|
989
1003
|
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
|
|
990
|
-
children: Array.from({ length: 4 }).map((
|
|
991
|
-
|
|
1004
|
+
children: Array.from({ length: 4 }).map((c, S) => /* @__PURE__ */ t(
|
|
1005
|
+
dt,
|
|
992
1006
|
{
|
|
993
1007
|
variant: "rounded",
|
|
994
|
-
height:
|
|
1008
|
+
height: b === "rich" ? "11rem" : "7rem"
|
|
995
1009
|
},
|
|
996
|
-
`pr-skel-${
|
|
1010
|
+
`pr-skel-${S}`
|
|
997
1011
|
))
|
|
998
1012
|
}
|
|
999
1013
|
) : /* @__PURE__ */ m(
|
|
1000
1014
|
"div",
|
|
1001
1015
|
{
|
|
1002
|
-
ref:
|
|
1016
|
+
ref: y,
|
|
1003
1017
|
"data-component": "practice-results-list",
|
|
1004
1018
|
role: "list",
|
|
1005
|
-
"aria-label":
|
|
1019
|
+
"aria-label": k("practiceResults.list.label"),
|
|
1006
1020
|
className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:overflow-y-auto",
|
|
1007
1021
|
children: [
|
|
1008
|
-
e.map((
|
|
1009
|
-
|
|
1022
|
+
e.map((c) => /* @__PURE__ */ t("div", { role: "listitem", children: b === "rich" ? /* @__PURE__ */ t(
|
|
1023
|
+
Bt,
|
|
1010
1024
|
{
|
|
1011
|
-
result:
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1025
|
+
result: c,
|
|
1026
|
+
headingLevel: n,
|
|
1027
|
+
apiKey: h,
|
|
1028
|
+
highlighted: a === c.id,
|
|
1029
|
+
onSelect: () => s(c.id),
|
|
1030
|
+
onOpenClick: () => i(c.id),
|
|
1031
|
+
onBookClick: () => d(c.id),
|
|
1032
|
+
onHover: () => r(c.id),
|
|
1033
|
+
openLabel: u,
|
|
1034
|
+
bookLabel: o
|
|
1020
1035
|
}
|
|
1021
1036
|
) : /* @__PURE__ */ t(
|
|
1022
|
-
|
|
1037
|
+
Ht,
|
|
1023
1038
|
{
|
|
1024
|
-
result:
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1039
|
+
result: c,
|
|
1040
|
+
headingLevel: n,
|
|
1041
|
+
highlighted: a === c.id,
|
|
1042
|
+
onSelect: () => s(c.id),
|
|
1043
|
+
onOpenClick: () => i(c.id),
|
|
1044
|
+
onBookClick: () => d(c.id),
|
|
1045
|
+
onHover: () => r(c.id),
|
|
1046
|
+
openLabel: u,
|
|
1047
|
+
bookLabel: o,
|
|
1048
|
+
nextSlotText: g(c)
|
|
1033
1049
|
}
|
|
1034
|
-
) },
|
|
1035
|
-
|
|
1050
|
+
) }, c.id)),
|
|
1051
|
+
l ? /* @__PURE__ */ t(
|
|
1036
1052
|
"div",
|
|
1037
1053
|
{
|
|
1038
|
-
ref:
|
|
1054
|
+
ref: x,
|
|
1039
1055
|
"aria-hidden": "true",
|
|
1040
1056
|
className: "ds:flex ds:items-center ds:justify-center ds:py-[var(--spacing-md)]",
|
|
1041
|
-
children:
|
|
1057
|
+
children: p ? /* @__PURE__ */ t(ut, { size: "md", variant: "pulse" }) : /* @__PURE__ */ t("span", { className: "ds:size-1" })
|
|
1042
1058
|
}
|
|
1043
1059
|
) : null
|
|
1044
1060
|
]
|
|
@@ -1052,67 +1068,67 @@ function pe({
|
|
|
1052
1068
|
apiKey: r,
|
|
1053
1069
|
mapId: s,
|
|
1054
1070
|
highlightedId: i,
|
|
1055
|
-
onPinClick:
|
|
1056
|
-
onPinHover:
|
|
1057
|
-
onPinFirstInteract:
|
|
1058
|
-
onBoundsChange:
|
|
1059
|
-
consentGranted:
|
|
1060
|
-
onConsentRequest:
|
|
1061
|
-
mapHandleRef:
|
|
1071
|
+
onPinClick: d,
|
|
1072
|
+
onPinHover: u,
|
|
1073
|
+
onPinFirstInteract: o,
|
|
1074
|
+
onBoundsChange: g,
|
|
1075
|
+
consentGranted: l,
|
|
1076
|
+
onConsentRequest: p,
|
|
1077
|
+
mapHandleRef: f
|
|
1062
1078
|
}) {
|
|
1063
|
-
const { t:
|
|
1079
|
+
const { t: b } = w("ui"), h = M(
|
|
1064
1080
|
() => e.filter(
|
|
1065
|
-
(
|
|
1066
|
-
).map((
|
|
1067
|
-
id:
|
|
1081
|
+
(c) => !!c.location
|
|
1082
|
+
).map((c) => ({
|
|
1083
|
+
id: c.id,
|
|
1068
1084
|
position: {
|
|
1069
|
-
lat:
|
|
1070
|
-
lng:
|
|
1085
|
+
lat: c.location.lat,
|
|
1086
|
+
lng: c.location.lng
|
|
1071
1087
|
},
|
|
1072
|
-
label:
|
|
1088
|
+
label: c.name
|
|
1073
1089
|
})),
|
|
1074
1090
|
[e]
|
|
1075
1091
|
), y = M(
|
|
1076
|
-
() =>
|
|
1077
|
-
[
|
|
1078
|
-
),
|
|
1079
|
-
() =>
|
|
1080
|
-
[
|
|
1081
|
-
),
|
|
1092
|
+
() => h.map((c) => ({ ...c.position, id: c.id })),
|
|
1093
|
+
[h]
|
|
1094
|
+
), k = M(
|
|
1095
|
+
() => h.map((c) => c.id).sort().join("|"),
|
|
1096
|
+
[h]
|
|
1097
|
+
), x = M(() => {
|
|
1082
1098
|
if (n) return n;
|
|
1083
|
-
const
|
|
1084
|
-
return
|
|
1085
|
-
lat: (
|
|
1086
|
-
lng: (
|
|
1099
|
+
const c = Re(e);
|
|
1100
|
+
return c ? {
|
|
1101
|
+
lat: (c.north + c.south) / 2,
|
|
1102
|
+
lng: (c.east + c.west) / 2
|
|
1087
1103
|
} : { lat: 45.4642, lng: 9.19 };
|
|
1088
1104
|
}, [e, n]);
|
|
1089
|
-
return
|
|
1090
|
-
if (!
|
|
1091
|
-
const
|
|
1092
|
-
|
|
1093
|
-
}, [e,
|
|
1105
|
+
return X(() => {
|
|
1106
|
+
if (!g) return;
|
|
1107
|
+
const c = Re(e);
|
|
1108
|
+
c && (g(c), H("serp_map_panned", { bounds: c }));
|
|
1109
|
+
}, [e, g]), /* @__PURE__ */ t(
|
|
1094
1110
|
"div",
|
|
1095
1111
|
{
|
|
1096
1112
|
"data-component": "practice-results-map-panel",
|
|
1097
1113
|
className: "ds:relative ds:flex ds:size-full ds:min-h-[24rem] ds:flex-col",
|
|
1098
1114
|
children: /* @__PURE__ */ t(
|
|
1099
|
-
|
|
1115
|
+
ct,
|
|
1100
1116
|
{
|
|
1101
|
-
ref:
|
|
1117
|
+
ref: f,
|
|
1102
1118
|
apiKey: r ?? "",
|
|
1103
1119
|
mapId: s,
|
|
1104
|
-
center:
|
|
1120
|
+
center: x,
|
|
1105
1121
|
zoom: a,
|
|
1106
|
-
markers:
|
|
1122
|
+
markers: h,
|
|
1107
1123
|
fitToPoints: y,
|
|
1108
|
-
fitKey:
|
|
1124
|
+
fitKey: k,
|
|
1109
1125
|
selectedMarkerId: i,
|
|
1110
|
-
consentGranted: !!
|
|
1111
|
-
onConsentRequest:
|
|
1112
|
-
onMarkerClick: (
|
|
1113
|
-
|
|
1126
|
+
consentGranted: !!l,
|
|
1127
|
+
onConsentRequest: p,
|
|
1128
|
+
onMarkerClick: (c) => {
|
|
1129
|
+
c != null && (u(c), o(c), d(c));
|
|
1114
1130
|
},
|
|
1115
|
-
ariaLabel:
|
|
1131
|
+
ariaLabel: b("practiceResults.map.label"),
|
|
1116
1132
|
size: "fill",
|
|
1117
1133
|
surface: "bordered",
|
|
1118
1134
|
className: "ds:size-full"
|
|
@@ -1121,127 +1137,128 @@ function pe({
|
|
|
1121
1137
|
}
|
|
1122
1138
|
);
|
|
1123
1139
|
}
|
|
1124
|
-
function
|
|
1140
|
+
function ge({
|
|
1125
1141
|
variantBodyProps: e
|
|
1126
1142
|
}) {
|
|
1127
|
-
const { facets: n, value: a, onChange: r, heading: s, intro: i, totalCount:
|
|
1143
|
+
const { facets: n, value: a, onChange: r, heading: s, intro: i, totalCount: d, searchCentre: u } = e;
|
|
1128
1144
|
return /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
|
|
1129
1145
|
/* @__PURE__ */ t(
|
|
1130
|
-
|
|
1146
|
+
_e,
|
|
1131
1147
|
{
|
|
1132
1148
|
heading: s,
|
|
1133
1149
|
headingLevel: e.headingLevel,
|
|
1134
1150
|
intro: i,
|
|
1135
|
-
totalCount:
|
|
1136
|
-
searchCentreLabel:
|
|
1151
|
+
totalCount: d,
|
|
1152
|
+
searchCentreLabel: u == null ? void 0 : u.label
|
|
1137
1153
|
}
|
|
1138
1154
|
),
|
|
1139
1155
|
n.length > 0 ? /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
|
|
1140
1156
|
/* @__PURE__ */ t(
|
|
1141
|
-
|
|
1157
|
+
ze,
|
|
1142
1158
|
{
|
|
1143
1159
|
facets: n,
|
|
1144
1160
|
value: a.facets,
|
|
1145
|
-
onChange: (
|
|
1161
|
+
onChange: (o) => r({ ...a, facets: o })
|
|
1146
1162
|
}
|
|
1147
1163
|
),
|
|
1148
1164
|
/* @__PURE__ */ t(
|
|
1149
|
-
|
|
1165
|
+
me,
|
|
1150
1166
|
{
|
|
1151
1167
|
value: a.sort ?? "relevance",
|
|
1152
|
-
onChange: (
|
|
1168
|
+
onChange: (o) => r({ ...a, sort: o })
|
|
1153
1169
|
}
|
|
1154
1170
|
)
|
|
1155
1171
|
] }) : /* @__PURE__ */ t("div", { className: "ds:flex ds:justify-end", children: /* @__PURE__ */ t(
|
|
1156
|
-
|
|
1172
|
+
me,
|
|
1157
1173
|
{
|
|
1158
1174
|
value: a.sort ?? "relevance",
|
|
1159
|
-
onChange: (
|
|
1175
|
+
onChange: (o) => r({ ...a, sort: o })
|
|
1160
1176
|
}
|
|
1161
1177
|
) })
|
|
1162
1178
|
] });
|
|
1163
1179
|
}
|
|
1164
|
-
function
|
|
1180
|
+
function ve(e) {
|
|
1165
1181
|
return Math.min(e + 1, 6);
|
|
1166
1182
|
}
|
|
1167
|
-
function
|
|
1183
|
+
function be({
|
|
1168
1184
|
headingLevel: e
|
|
1169
1185
|
}) {
|
|
1170
1186
|
const { t: n } = w("ui");
|
|
1171
1187
|
return /* @__PURE__ */ t(
|
|
1172
|
-
|
|
1188
|
+
lt,
|
|
1173
1189
|
{
|
|
1174
1190
|
variant: "no-results",
|
|
1175
|
-
headingLevel:
|
|
1191
|
+
headingLevel: ve(e),
|
|
1176
1192
|
title: n("practiceResults.empty.title"),
|
|
1177
1193
|
description: n("practiceResults.empty.description")
|
|
1178
1194
|
}
|
|
1179
1195
|
);
|
|
1180
1196
|
}
|
|
1181
|
-
function
|
|
1197
|
+
function ye({
|
|
1182
1198
|
onRetry: e,
|
|
1183
1199
|
headingLevel: n
|
|
1184
1200
|
}) {
|
|
1185
|
-
const { t: a } = w("ui"), r =
|
|
1186
|
-
return /* @__PURE__ */ m(
|
|
1187
|
-
/* @__PURE__ */ t(
|
|
1188
|
-
/* @__PURE__ */ t(
|
|
1189
|
-
e ? /* @__PURE__ */ t(
|
|
1190
|
-
|
|
1201
|
+
const { t: a } = w("ui"), r = ve(n);
|
|
1202
|
+
return /* @__PURE__ */ m(ee, { variant: "error", children: [
|
|
1203
|
+
/* @__PURE__ */ t(ee.Title, { as: `h${r}`, children: a("practiceResults.error.title") }),
|
|
1204
|
+
/* @__PURE__ */ t(ee.Description, { children: a("practiceResults.error.description") }),
|
|
1205
|
+
e ? /* @__PURE__ */ t(ee.Action, { children: /* @__PURE__ */ t(
|
|
1206
|
+
te,
|
|
1191
1207
|
{
|
|
1192
1208
|
intent: "secondary",
|
|
1193
1209
|
size: "sm",
|
|
1194
|
-
startIcon: /* @__PURE__ */ t(
|
|
1210
|
+
startIcon: /* @__PURE__ */ t(gt, { "aria-hidden": "true" }),
|
|
1195
1211
|
onClick: e,
|
|
1196
1212
|
children: a("practiceResults.error.retry")
|
|
1197
1213
|
}
|
|
1198
1214
|
) }) : null
|
|
1199
1215
|
] });
|
|
1200
1216
|
}
|
|
1201
|
-
function
|
|
1217
|
+
function $t(e) {
|
|
1202
1218
|
const {
|
|
1203
1219
|
results: n,
|
|
1204
1220
|
apiKey: a,
|
|
1205
1221
|
mapId: r,
|
|
1206
1222
|
zoom: s,
|
|
1207
1223
|
searchCentre: i,
|
|
1208
|
-
onLoadMore:
|
|
1209
|
-
loadingMore:
|
|
1210
|
-
loadingSkeletons:
|
|
1211
|
-
emptyResultsSlot:
|
|
1212
|
-
errorSlot:
|
|
1213
|
-
error:
|
|
1214
|
-
onRetry:
|
|
1215
|
-
highlightedId:
|
|
1216
|
-
onCardHover:
|
|
1224
|
+
onLoadMore: d,
|
|
1225
|
+
loadingMore: u,
|
|
1226
|
+
loadingSkeletons: o,
|
|
1227
|
+
emptyResultsSlot: g,
|
|
1228
|
+
errorSlot: l,
|
|
1229
|
+
error: p,
|
|
1230
|
+
onRetry: f,
|
|
1231
|
+
highlightedId: b,
|
|
1232
|
+
onCardHover: h,
|
|
1217
1233
|
onPinClick: y,
|
|
1218
|
-
consentGranted:
|
|
1219
|
-
onConsentRequest:
|
|
1220
|
-
onBoundsChange:
|
|
1221
|
-
listContainerRef:
|
|
1222
|
-
} = e, { t: N } = w("ui"), [
|
|
1223
|
-
|
|
1234
|
+
consentGranted: k,
|
|
1235
|
+
onConsentRequest: x,
|
|
1236
|
+
onBoundsChange: c,
|
|
1237
|
+
listContainerRef: S
|
|
1238
|
+
} = e, { t: N } = w("ui"), [L, C] = fe(!1), _ = p ? l ?? /* @__PURE__ */ t(ye, { onRetry: f, headingLevel: e.headingLevel }) : n.length === 0 && !o ? g ?? /* @__PURE__ */ t(be, { headingLevel: e.headingLevel }) : /* @__PURE__ */ t(
|
|
1239
|
+
he,
|
|
1224
1240
|
{
|
|
1225
1241
|
results: n,
|
|
1226
|
-
|
|
1227
|
-
|
|
1242
|
+
headingLevel: e.headingLevel,
|
|
1243
|
+
highlightedId: b,
|
|
1244
|
+
onCardHover: h,
|
|
1228
1245
|
onCardSelect: e.onCardSelect,
|
|
1229
1246
|
onCardOpenClick: e.onCardOpenClick,
|
|
1230
1247
|
onCardBookClick: e.onCardBookClick,
|
|
1231
1248
|
openLabel: e.openLabel,
|
|
1232
1249
|
bookLabel: e.bookLabel,
|
|
1233
1250
|
formatNextSlot: e.formatNextSlot,
|
|
1234
|
-
onLoadMore:
|
|
1235
|
-
loadingMore:
|
|
1236
|
-
loadingSkeletons:
|
|
1251
|
+
onLoadMore: d,
|
|
1252
|
+
loadingMore: u,
|
|
1253
|
+
loadingSkeletons: o,
|
|
1237
1254
|
density: "compact",
|
|
1238
|
-
containerRef:
|
|
1255
|
+
containerRef: S
|
|
1239
1256
|
}
|
|
1240
1257
|
);
|
|
1241
1258
|
return /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
|
|
1242
|
-
/* @__PURE__ */ t(
|
|
1259
|
+
/* @__PURE__ */ t(ge, { variantBodyProps: e }),
|
|
1243
1260
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:lg:grid ds:lg:grid-cols-[55fr_45fr] ds:lg:gap-[var(--spacing-lg)] ds:lg:items-start", children: [
|
|
1244
|
-
/* @__PURE__ */ t("div", { className: "ds:min-w-0", children:
|
|
1261
|
+
/* @__PURE__ */ t("div", { className: "ds:min-w-0", children: _ }),
|
|
1245
1262
|
/* @__PURE__ */ t("div", { className: "ds:hidden ds:lg:block ds:sticky ds:top-[var(--spacing-md)] ds:h-[40rem]", children: /* @__PURE__ */ t(
|
|
1246
1263
|
pe,
|
|
1247
1264
|
{
|
|
@@ -1250,30 +1267,30 @@ function Ft(e) {
|
|
|
1250
1267
|
zoom: s,
|
|
1251
1268
|
apiKey: a,
|
|
1252
1269
|
mapId: r,
|
|
1253
|
-
highlightedId:
|
|
1254
|
-
onPinClick: (
|
|
1255
|
-
|
|
1270
|
+
highlightedId: b,
|
|
1271
|
+
onPinClick: (A) => {
|
|
1272
|
+
J(n, A, "pin", e.onResultSelect), y(A);
|
|
1256
1273
|
},
|
|
1257
|
-
onPinHover:
|
|
1274
|
+
onPinHover: h,
|
|
1258
1275
|
onPinFirstInteract: e.onPinFirstInteract,
|
|
1259
|
-
onBoundsChange:
|
|
1260
|
-
consentGranted:
|
|
1261
|
-
onConsentRequest:
|
|
1276
|
+
onBoundsChange: c,
|
|
1277
|
+
consentGranted: k,
|
|
1278
|
+
onConsentRequest: x,
|
|
1262
1279
|
mapHandleRef: e.mapHandleRef
|
|
1263
1280
|
}
|
|
1264
1281
|
) })
|
|
1265
1282
|
] }),
|
|
1266
1283
|
/* @__PURE__ */ t("div", { className: "ds:flex ds:lg:hidden ds:sticky ds:bottom-[var(--spacing-md)] ds:justify-center", children: /* @__PURE__ */ t(
|
|
1267
|
-
|
|
1284
|
+
te,
|
|
1268
1285
|
{
|
|
1269
1286
|
intent: "primary",
|
|
1270
1287
|
size: "md",
|
|
1271
|
-
startIcon: /* @__PURE__ */ t(
|
|
1272
|
-
onClick: () =>
|
|
1288
|
+
startIcon: /* @__PURE__ */ t(kt, { "aria-hidden": "true" }),
|
|
1289
|
+
onClick: () => C(!0),
|
|
1273
1290
|
children: N("practiceResults.viewMap")
|
|
1274
1291
|
}
|
|
1275
1292
|
) }),
|
|
1276
|
-
/* @__PURE__ */ t(I.Root, { open:
|
|
1293
|
+
/* @__PURE__ */ t(I.Root, { open: L, onOpenChange: C, children: /* @__PURE__ */ m(I.Content, { side: "bottom", size: "lg", children: [
|
|
1277
1294
|
/* @__PURE__ */ t(I.Header, { children: /* @__PURE__ */ t(I.Title, { children: N("practiceResults.map.label") }) }),
|
|
1278
1295
|
/* @__PURE__ */ m(I.Body, { children: [
|
|
1279
1296
|
/* @__PURE__ */ t(I.Description, { className: "ds:sr-only", children: N("practiceResults.sheet.description") }),
|
|
@@ -1286,64 +1303,64 @@ function Ft(e) {
|
|
|
1286
1303
|
zoom: s,
|
|
1287
1304
|
apiKey: a,
|
|
1288
1305
|
mapId: r,
|
|
1289
|
-
highlightedId:
|
|
1290
|
-
onPinClick: (
|
|
1291
|
-
|
|
1306
|
+
highlightedId: b,
|
|
1307
|
+
onPinClick: (A) => {
|
|
1308
|
+
J(n, A, "pin", e.onResultSelect), y(A);
|
|
1292
1309
|
},
|
|
1293
|
-
onPinHover:
|
|
1310
|
+
onPinHover: h,
|
|
1294
1311
|
onPinFirstInteract: e.onPinFirstInteract,
|
|
1295
|
-
onBoundsChange:
|
|
1296
|
-
consentGranted:
|
|
1297
|
-
onConsentRequest:
|
|
1312
|
+
onBoundsChange: c,
|
|
1313
|
+
consentGranted: k,
|
|
1314
|
+
onConsentRequest: x,
|
|
1298
1315
|
mapHandleRef: e.mapHandleRef
|
|
1299
1316
|
}
|
|
1300
1317
|
) }),
|
|
1301
|
-
|
|
1318
|
+
_
|
|
1302
1319
|
] })
|
|
1303
1320
|
] })
|
|
1304
1321
|
] }) })
|
|
1305
1322
|
] });
|
|
1306
1323
|
}
|
|
1307
|
-
const
|
|
1324
|
+
const Ot = {
|
|
1308
1325
|
peek: "sm",
|
|
1309
1326
|
half: "md",
|
|
1310
1327
|
full: "lg"
|
|
1311
|
-
},
|
|
1328
|
+
}, U = [
|
|
1312
1329
|
"peek",
|
|
1313
1330
|
"half",
|
|
1314
1331
|
"full"
|
|
1315
1332
|
];
|
|
1316
|
-
function
|
|
1317
|
-
const { t: a, i18n: r } = w("ui"), s = r.dir() === "rtl", i =
|
|
1333
|
+
function Dt({ value: e, onChange: n }) {
|
|
1334
|
+
const { t: a, i18n: r } = w("ui"), s = r.dir() === "rtl", i = T(
|
|
1318
1335
|
/* @__PURE__ */ new Map()
|
|
1319
|
-
),
|
|
1320
|
-
var
|
|
1321
|
-
(
|
|
1322
|
-
}, []),
|
|
1323
|
-
(
|
|
1324
|
-
const
|
|
1325
|
-
let
|
|
1326
|
-
switch (
|
|
1327
|
-
case
|
|
1336
|
+
), d = $((o) => {
|
|
1337
|
+
var g;
|
|
1338
|
+
(g = i.current.get(o)) == null || g.focus();
|
|
1339
|
+
}, []), u = $(
|
|
1340
|
+
(o, g) => {
|
|
1341
|
+
const l = U.indexOf(g), p = U.length, f = s ? "ArrowLeft" : "ArrowRight", b = s ? "ArrowRight" : "ArrowLeft";
|
|
1342
|
+
let h = null;
|
|
1343
|
+
switch (o.key) {
|
|
1344
|
+
case f:
|
|
1328
1345
|
case "ArrowDown":
|
|
1329
|
-
|
|
1346
|
+
h = U[(l + 1) % p];
|
|
1330
1347
|
break;
|
|
1331
|
-
case
|
|
1348
|
+
case b:
|
|
1332
1349
|
case "ArrowUp":
|
|
1333
|
-
|
|
1350
|
+
h = U[(l - 1 + p) % p];
|
|
1334
1351
|
break;
|
|
1335
1352
|
case "Home":
|
|
1336
|
-
|
|
1353
|
+
h = U[0];
|
|
1337
1354
|
break;
|
|
1338
1355
|
case "End":
|
|
1339
|
-
|
|
1356
|
+
h = U[p - 1];
|
|
1340
1357
|
break;
|
|
1341
1358
|
default:
|
|
1342
1359
|
return;
|
|
1343
1360
|
}
|
|
1344
|
-
|
|
1361
|
+
o.preventDefault(), h && h !== g && n(h), h && d(h);
|
|
1345
1362
|
},
|
|
1346
|
-
[
|
|
1363
|
+
[d, s, n]
|
|
1347
1364
|
);
|
|
1348
1365
|
return /* @__PURE__ */ t(
|
|
1349
1366
|
"div",
|
|
@@ -1351,76 +1368,77 @@ function Ht({ value: e, onChange: n }) {
|
|
|
1351
1368
|
role: "radiogroup",
|
|
1352
1369
|
"aria-label": a("practiceResults.sheet.snap.label"),
|
|
1353
1370
|
className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]",
|
|
1354
|
-
children:
|
|
1355
|
-
const
|
|
1371
|
+
children: U.map((o) => {
|
|
1372
|
+
const g = e === o;
|
|
1356
1373
|
return /* @__PURE__ */ t(
|
|
1357
1374
|
"button",
|
|
1358
1375
|
{
|
|
1359
|
-
ref: (
|
|
1360
|
-
|
|
1376
|
+
ref: (l) => {
|
|
1377
|
+
l ? i.current.set(o, l) : i.current.delete(o);
|
|
1361
1378
|
},
|
|
1362
1379
|
type: "button",
|
|
1363
1380
|
role: "radio",
|
|
1364
|
-
"aria-checked":
|
|
1365
|
-
"aria-label": a(`practiceResults.sheet.snap.${
|
|
1366
|
-
tabIndex:
|
|
1367
|
-
onClick: () => n(
|
|
1368
|
-
onKeyDown: (
|
|
1369
|
-
className:
|
|
1370
|
-
state:
|
|
1381
|
+
"aria-checked": g,
|
|
1382
|
+
"aria-label": a(`practiceResults.sheet.snap.${o}`),
|
|
1383
|
+
tabIndex: g ? 0 : -1,
|
|
1384
|
+
onClick: () => n(o),
|
|
1385
|
+
onKeyDown: (l) => u(l, o),
|
|
1386
|
+
className: ne({
|
|
1387
|
+
state: g ? "active" : "idle"
|
|
1371
1388
|
}),
|
|
1372
|
-
children: a(`practiceResults.sheet.snap.${
|
|
1389
|
+
children: a(`practiceResults.sheet.snap.${o}`)
|
|
1373
1390
|
},
|
|
1374
|
-
|
|
1391
|
+
o
|
|
1375
1392
|
);
|
|
1376
1393
|
})
|
|
1377
1394
|
}
|
|
1378
1395
|
);
|
|
1379
1396
|
}
|
|
1380
|
-
function
|
|
1397
|
+
function Vt(e) {
|
|
1381
1398
|
const {
|
|
1382
1399
|
results: n,
|
|
1383
1400
|
apiKey: a,
|
|
1384
1401
|
mapId: r,
|
|
1385
1402
|
zoom: s,
|
|
1386
1403
|
searchCentre: i,
|
|
1387
|
-
onLoadMore:
|
|
1388
|
-
loadingMore:
|
|
1389
|
-
loadingSkeletons:
|
|
1390
|
-
emptyResultsSlot:
|
|
1391
|
-
errorSlot:
|
|
1392
|
-
error:
|
|
1393
|
-
onRetry:
|
|
1394
|
-
highlightedId:
|
|
1395
|
-
onCardHover:
|
|
1404
|
+
onLoadMore: d,
|
|
1405
|
+
loadingMore: u,
|
|
1406
|
+
loadingSkeletons: o,
|
|
1407
|
+
emptyResultsSlot: g,
|
|
1408
|
+
errorSlot: l,
|
|
1409
|
+
error: p,
|
|
1410
|
+
onRetry: f,
|
|
1411
|
+
highlightedId: b,
|
|
1412
|
+
onCardHover: h,
|
|
1396
1413
|
onPinClick: y,
|
|
1397
|
-
consentGranted:
|
|
1398
|
-
onConsentRequest:
|
|
1399
|
-
onBoundsChange:
|
|
1400
|
-
listContainerRef:
|
|
1414
|
+
consentGranted: k,
|
|
1415
|
+
onConsentRequest: x,
|
|
1416
|
+
onBoundsChange: c,
|
|
1417
|
+
listContainerRef: S,
|
|
1401
1418
|
facets: N,
|
|
1402
|
-
value:
|
|
1403
|
-
onChange:
|
|
1404
|
-
} = e, { t:
|
|
1405
|
-
|
|
1419
|
+
value: L,
|
|
1420
|
+
onChange: C
|
|
1421
|
+
} = e, { t: _ } = w("ui"), [A, G] = fe("half"), Z = Ot[A], Q = mt("(min-width: 1024px)"), E = p ? l ?? /* @__PURE__ */ t(ye, { onRetry: f, headingLevel: e.headingLevel }) : n.length === 0 && !o ? g ?? /* @__PURE__ */ t(be, { headingLevel: e.headingLevel }) : /* @__PURE__ */ t(
|
|
1422
|
+
he,
|
|
1406
1423
|
{
|
|
1407
1424
|
results: n,
|
|
1408
|
-
|
|
1409
|
-
|
|
1425
|
+
headingLevel: e.headingLevel,
|
|
1426
|
+
highlightedId: b,
|
|
1427
|
+
onCardHover: h,
|
|
1410
1428
|
onCardSelect: e.onCardSelect,
|
|
1411
1429
|
onCardOpenClick: e.onCardOpenClick,
|
|
1412
1430
|
onCardBookClick: e.onCardBookClick,
|
|
1413
1431
|
openLabel: e.openLabel,
|
|
1414
1432
|
bookLabel: e.bookLabel,
|
|
1415
1433
|
formatNextSlot: e.formatNextSlot,
|
|
1416
|
-
onLoadMore:
|
|
1417
|
-
loadingMore:
|
|
1418
|
-
loadingSkeletons:
|
|
1434
|
+
onLoadMore: d,
|
|
1435
|
+
loadingMore: u,
|
|
1436
|
+
loadingSkeletons: o,
|
|
1419
1437
|
density: "compact",
|
|
1420
1438
|
apiKey: a,
|
|
1421
|
-
containerRef:
|
|
1439
|
+
containerRef: S
|
|
1422
1440
|
}
|
|
1423
|
-
),
|
|
1441
|
+
), j = /* @__PURE__ */ t(
|
|
1424
1442
|
pe,
|
|
1425
1443
|
{
|
|
1426
1444
|
results: n,
|
|
@@ -1428,27 +1446,27 @@ function $t(e) {
|
|
|
1428
1446
|
zoom: s,
|
|
1429
1447
|
apiKey: a,
|
|
1430
1448
|
mapId: r,
|
|
1431
|
-
highlightedId:
|
|
1432
|
-
onPinClick: (
|
|
1433
|
-
|
|
1449
|
+
highlightedId: b,
|
|
1450
|
+
onPinClick: (R) => {
|
|
1451
|
+
J(n, R, "pin", e.onResultSelect), y(R);
|
|
1434
1452
|
},
|
|
1435
|
-
onPinHover:
|
|
1453
|
+
onPinHover: h,
|
|
1436
1454
|
onPinFirstInteract: e.onPinFirstInteract,
|
|
1437
|
-
onBoundsChange:
|
|
1438
|
-
consentGranted:
|
|
1439
|
-
onConsentRequest:
|
|
1455
|
+
onBoundsChange: c,
|
|
1456
|
+
consentGranted: k,
|
|
1457
|
+
onConsentRequest: x,
|
|
1440
1458
|
mapHandleRef: e.mapHandleRef
|
|
1441
1459
|
}
|
|
1442
|
-
),
|
|
1443
|
-
|
|
1460
|
+
), V = 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(
|
|
1461
|
+
ze,
|
|
1444
1462
|
{
|
|
1445
1463
|
facets: N,
|
|
1446
|
-
value:
|
|
1447
|
-
onChange: (
|
|
1464
|
+
value: L.facets,
|
|
1465
|
+
onChange: (R) => C({ ...L, facets: R }),
|
|
1448
1466
|
floating: !0
|
|
1449
1467
|
}
|
|
1450
1468
|
) }) : null;
|
|
1451
|
-
return /* @__PURE__ */ t("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children:
|
|
1469
|
+
return /* @__PURE__ */ t("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: Q ? (
|
|
1452
1470
|
// Desktop: 65/35 map left + cards rail right. NO Sheet (the
|
|
1453
1471
|
// Sheet would portal to body and occlude the desktop layout
|
|
1454
1472
|
// regardless of the parent's `lg:hidden` class).
|
|
@@ -1466,11 +1484,11 @@ function $t(e) {
|
|
|
1466
1484
|
// the map column is `lg:sticky lg:h-[44rem]` (stays visible
|
|
1467
1485
|
// as the patient scrolls cards) and the rail renders at
|
|
1468
1486
|
// natural height. Single page scroll.
|
|
1469
|
-
/* @__PURE__ */ m(
|
|
1470
|
-
/* @__PURE__ */ t(
|
|
1487
|
+
/* @__PURE__ */ m(st, { children: [
|
|
1488
|
+
/* @__PURE__ */ t(ge, { variantBodyProps: e }),
|
|
1471
1489
|
/* @__PURE__ */ m("div", { className: "ds:grid ds:grid-cols-[65fr_35fr] ds:gap-[var(--spacing-lg)] ds:items-start", children: [
|
|
1472
|
-
/* @__PURE__ */ t("div", { className: "ds:sticky ds:top-[var(--spacing-md)] ds:h-[44rem]", children:
|
|
1473
|
-
/* @__PURE__ */ t("div", { className: "ds:min-w-0", children:
|
|
1490
|
+
/* @__PURE__ */ t("div", { className: "ds:sticky ds:top-[var(--spacing-md)] ds:h-[44rem]", children: j }),
|
|
1491
|
+
/* @__PURE__ */ t("div", { className: "ds:min-w-0", children: E })
|
|
1474
1492
|
] })
|
|
1475
1493
|
] })
|
|
1476
1494
|
) : (
|
|
@@ -1482,7 +1500,7 @@ function $t(e) {
|
|
|
1482
1500
|
// chrome, so floating chips are the only place for them.
|
|
1483
1501
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
|
|
1484
1502
|
/* @__PURE__ */ t(
|
|
1485
|
-
|
|
1503
|
+
_e,
|
|
1486
1504
|
{
|
|
1487
1505
|
heading: e.heading,
|
|
1488
1506
|
headingLevel: e.headingLevel,
|
|
@@ -1492,65 +1510,66 @@ function $t(e) {
|
|
|
1492
1510
|
}
|
|
1493
1511
|
),
|
|
1494
1512
|
/* @__PURE__ */ m("div", { className: "ds:relative ds:h-[60vh] ds:min-h-[20rem]", children: [
|
|
1495
|
-
|
|
1496
|
-
|
|
1513
|
+
j,
|
|
1514
|
+
V
|
|
1497
1515
|
] }),
|
|
1498
1516
|
/* @__PURE__ */ t(I.Root, { open: !0, children: /* @__PURE__ */ t(
|
|
1499
1517
|
I.Content,
|
|
1500
1518
|
{
|
|
1501
1519
|
side: "bottom",
|
|
1502
|
-
size:
|
|
1503
|
-
onEscapeKeyDown: (
|
|
1504
|
-
onPointerDownOutside: (
|
|
1505
|
-
onInteractOutside: (
|
|
1520
|
+
size: Z,
|
|
1521
|
+
onEscapeKeyDown: (R) => R.preventDefault(),
|
|
1522
|
+
onPointerDownOutside: (R) => R.preventDefault(),
|
|
1523
|
+
onInteractOutside: (R) => R.preventDefault(),
|
|
1506
1524
|
children: /* @__PURE__ */ m(I.Body, { children: [
|
|
1507
|
-
/* @__PURE__ */ t(I.Description, { className: "ds:sr-only", children:
|
|
1525
|
+
/* @__PURE__ */ t(I.Description, { className: "ds:sr-only", children: _("practiceResults.sheet.descriptionMapFirst") }),
|
|
1508
1526
|
/* @__PURE__ */ m("div", { className: "ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]", children: [
|
|
1509
|
-
/* @__PURE__ */ t(I.Title, { className: "type-title-card ds:m-0 ds:text-[var(--foreground)]", children:
|
|
1527
|
+
/* @__PURE__ */ t(I.Title, { className: "type-title-card ds:m-0 ds:text-[var(--foreground)]", children: _("practiceResults.sheet.title", {
|
|
1510
1528
|
count: e.totalCount ?? n.length
|
|
1511
1529
|
}) }),
|
|
1512
1530
|
/* @__PURE__ */ t(
|
|
1513
|
-
|
|
1531
|
+
Dt,
|
|
1514
1532
|
{
|
|
1515
|
-
value:
|
|
1516
|
-
onChange:
|
|
1533
|
+
value: A,
|
|
1534
|
+
onChange: G
|
|
1517
1535
|
}
|
|
1518
1536
|
)
|
|
1519
1537
|
] }),
|
|
1520
1538
|
/* @__PURE__ */ t("div", { className: "ds:pb-[var(--spacing-sm)]", children: /* @__PURE__ */ t(
|
|
1521
|
-
|
|
1539
|
+
me,
|
|
1522
1540
|
{
|
|
1523
|
-
value:
|
|
1524
|
-
onChange: (
|
|
1541
|
+
value: L.sort ?? "relevance",
|
|
1542
|
+
onChange: (R) => C({ ...L, sort: R })
|
|
1525
1543
|
}
|
|
1526
1544
|
) }),
|
|
1527
|
-
|
|
1545
|
+
E
|
|
1528
1546
|
] })
|
|
1529
1547
|
}
|
|
1530
1548
|
) })
|
|
1531
1549
|
] })
|
|
1532
1550
|
) });
|
|
1533
1551
|
}
|
|
1534
|
-
function
|
|
1552
|
+
function Kt(e) {
|
|
1535
1553
|
const {
|
|
1536
1554
|
results: n,
|
|
1537
1555
|
apiKey: a,
|
|
1538
1556
|
onLoadMore: r,
|
|
1539
1557
|
loadingMore: s,
|
|
1540
1558
|
loadingSkeletons: i,
|
|
1541
|
-
emptyResultsSlot:
|
|
1542
|
-
errorSlot:
|
|
1543
|
-
error:
|
|
1544
|
-
onRetry:
|
|
1545
|
-
highlightedId:
|
|
1546
|
-
onCardHover:
|
|
1547
|
-
listContainerRef:
|
|
1548
|
-
} = e,
|
|
1549
|
-
|
|
1559
|
+
emptyResultsSlot: d,
|
|
1560
|
+
errorSlot: u,
|
|
1561
|
+
error: o,
|
|
1562
|
+
onRetry: g,
|
|
1563
|
+
highlightedId: l,
|
|
1564
|
+
onCardHover: p,
|
|
1565
|
+
listContainerRef: f
|
|
1566
|
+
} = e, b = o ? u ?? /* @__PURE__ */ t(ye, { onRetry: g, headingLevel: e.headingLevel }) : n.length === 0 && !i ? d ?? /* @__PURE__ */ t(be, { headingLevel: e.headingLevel }) : /* @__PURE__ */ t(
|
|
1567
|
+
he,
|
|
1550
1568
|
{
|
|
1551
1569
|
results: n,
|
|
1552
|
-
|
|
1553
|
-
|
|
1570
|
+
headingLevel: e.headingLevel,
|
|
1571
|
+
highlightedId: l,
|
|
1572
|
+
onCardHover: p,
|
|
1554
1573
|
onCardSelect: e.onCardSelect,
|
|
1555
1574
|
onCardOpenClick: e.onCardOpenClick,
|
|
1556
1575
|
onCardBookClick: e.onCardBookClick,
|
|
@@ -1562,228 +1581,228 @@ function Dt(e) {
|
|
|
1562
1581
|
loadingSkeletons: i,
|
|
1563
1582
|
density: "rich",
|
|
1564
1583
|
apiKey: a,
|
|
1565
|
-
containerRef:
|
|
1584
|
+
containerRef: f
|
|
1566
1585
|
}
|
|
1567
1586
|
);
|
|
1568
1587
|
return /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
|
|
1569
|
-
/* @__PURE__ */ t(
|
|
1570
|
-
|
|
1588
|
+
/* @__PURE__ */ t(ge, { variantBodyProps: e }),
|
|
1589
|
+
b
|
|
1571
1590
|
] });
|
|
1572
1591
|
}
|
|
1573
|
-
const
|
|
1592
|
+
const Et = rt(function({
|
|
1574
1593
|
variant: n = "split-list-map",
|
|
1575
1594
|
results: a,
|
|
1576
1595
|
totalCount: r,
|
|
1577
1596
|
searchCentre: s,
|
|
1578
1597
|
facets: i,
|
|
1579
|
-
googleMapsApiKey:
|
|
1580
|
-
mapId:
|
|
1581
|
-
defaultZoom:
|
|
1582
|
-
onBoundsChange:
|
|
1583
|
-
consentGranted:
|
|
1584
|
-
onConsentRequest:
|
|
1585
|
-
skipConsentGate:
|
|
1586
|
-
onLoadMore:
|
|
1587
|
-
loadingMore:
|
|
1598
|
+
googleMapsApiKey: d,
|
|
1599
|
+
mapId: u,
|
|
1600
|
+
defaultZoom: o = wt,
|
|
1601
|
+
onBoundsChange: g,
|
|
1602
|
+
consentGranted: l,
|
|
1603
|
+
onConsentRequest: p,
|
|
1604
|
+
skipConsentGate: f = !1,
|
|
1605
|
+
onLoadMore: b,
|
|
1606
|
+
loadingMore: h,
|
|
1588
1607
|
value: y,
|
|
1589
|
-
onChange:
|
|
1590
|
-
onResultSelect:
|
|
1591
|
-
loading:
|
|
1592
|
-
emptyResultsSlot:
|
|
1608
|
+
onChange: k,
|
|
1609
|
+
onResultSelect: x,
|
|
1610
|
+
loading: c,
|
|
1611
|
+
emptyResultsSlot: S,
|
|
1593
1612
|
errorSlot: N,
|
|
1594
|
-
error:
|
|
1595
|
-
onRetry:
|
|
1596
|
-
heading:
|
|
1597
|
-
headingLevel:
|
|
1598
|
-
intro:
|
|
1599
|
-
cardOpenButtonLabel:
|
|
1600
|
-
cardBookButtonLabel:
|
|
1601
|
-
showCardOpenButton:
|
|
1602
|
-
"aria-label":
|
|
1603
|
-
id:
|
|
1604
|
-
className:
|
|
1605
|
-
...
|
|
1606
|
-
},
|
|
1607
|
-
const { t:
|
|
1613
|
+
error: L,
|
|
1614
|
+
onRetry: C,
|
|
1615
|
+
heading: _,
|
|
1616
|
+
headingLevel: A = 2,
|
|
1617
|
+
intro: G,
|
|
1618
|
+
cardOpenButtonLabel: Z,
|
|
1619
|
+
cardBookButtonLabel: Q,
|
|
1620
|
+
showCardOpenButton: E = !0,
|
|
1621
|
+
"aria-label": j,
|
|
1622
|
+
id: V,
|
|
1623
|
+
className: R,
|
|
1624
|
+
...B
|
|
1625
|
+
}, je) {
|
|
1626
|
+
const { t: ie, i18n: xe } = w("ui"), [qe, W] = fe(null), Y = T(/* @__PURE__ */ new Set()), se = T(/* @__PURE__ */ new Set()), Ue = T(null), re = T(null), oe = M(
|
|
1608
1627
|
() => ({
|
|
1609
1628
|
getVariant: () => n,
|
|
1610
|
-
scrollToResult: (
|
|
1611
|
-
const F =
|
|
1629
|
+
scrollToResult: (v) => {
|
|
1630
|
+
const F = re.current;
|
|
1612
1631
|
if (!F) return;
|
|
1613
|
-
const
|
|
1614
|
-
`[data-component="practice-result-card"][data-result-id="${CSS.escape(
|
|
1632
|
+
const P = F.querySelector(
|
|
1633
|
+
`[data-component="practice-result-card"][data-result-id="${CSS.escape(v)}"]`
|
|
1615
1634
|
);
|
|
1616
|
-
|
|
1635
|
+
P && (P.scrollIntoView({ behavior: "smooth", block: "nearest" }), W(v));
|
|
1617
1636
|
},
|
|
1618
|
-
focusPin: (
|
|
1619
|
-
|
|
1637
|
+
focusPin: (v) => {
|
|
1638
|
+
W(v);
|
|
1620
1639
|
}
|
|
1621
1640
|
}),
|
|
1622
1641
|
[n]
|
|
1623
1642
|
);
|
|
1624
|
-
|
|
1625
|
-
const
|
|
1626
|
-
(
|
|
1627
|
-
if (
|
|
1643
|
+
ot(je, () => oe, [oe]), ft(Ct, oe, V);
|
|
1644
|
+
const Ge = E ? Z ?? ie("practiceResults.card.open") : void 0, Ze = Q ?? ie("practiceResults.card.book"), Qe = $(
|
|
1645
|
+
(v) => {
|
|
1646
|
+
if (v.nextAvailableSlot)
|
|
1628
1647
|
try {
|
|
1629
|
-
return new Intl.DateTimeFormat(
|
|
1648
|
+
return new Intl.DateTimeFormat(xe.language, {
|
|
1630
1649
|
weekday: "short",
|
|
1631
1650
|
hour: "numeric",
|
|
1632
1651
|
minute: "numeric"
|
|
1633
|
-
}).format(new Date(
|
|
1652
|
+
}).format(new Date(v.nextAvailableSlot.dateTime));
|
|
1634
1653
|
} catch {
|
|
1635
|
-
return
|
|
1654
|
+
return v.nextAvailableSlot.dateTime;
|
|
1636
1655
|
}
|
|
1637
1656
|
},
|
|
1638
|
-
[
|
|
1639
|
-
),
|
|
1640
|
-
|
|
1641
|
-
|
|
1657
|
+
[xe.language]
|
|
1658
|
+
), ke = T(null);
|
|
1659
|
+
X(() => {
|
|
1660
|
+
ke.current !== n && (ke.current = n, H("serp_variant_exposed", {
|
|
1642
1661
|
variant: n,
|
|
1643
1662
|
totalCount: r ?? a.length
|
|
1644
|
-
}),
|
|
1663
|
+
}), Y.current = /* @__PURE__ */ new Set(), se.current = /* @__PURE__ */ new Set());
|
|
1645
1664
|
}, [n]);
|
|
1646
|
-
const
|
|
1647
|
-
() =>
|
|
1665
|
+
const le = T(!1), ce = M(
|
|
1666
|
+
() => St(i ?? [], a, y.facets),
|
|
1648
1667
|
[i, a, y.facets]
|
|
1649
|
-
),
|
|
1650
|
-
const
|
|
1651
|
-
return
|
|
1652
|
-
}, [a, y.facets,
|
|
1653
|
-
|
|
1654
|
-
const
|
|
1655
|
-
|
|
1668
|
+
), de = y.sort ?? (s ? "distance" : "relevance"), z = M(() => {
|
|
1669
|
+
const v = Lt(a, y.facets, ce);
|
|
1670
|
+
return Pt(v, de, s);
|
|
1671
|
+
}, [a, y.facets, ce, de, s]);
|
|
1672
|
+
X(() => {
|
|
1673
|
+
const v = z.length === 0;
|
|
1674
|
+
v && !le.current ? (H("serp_empty_results", {
|
|
1656
1675
|
appliedFacets: y.facets ?? {}
|
|
1657
|
-
}),
|
|
1676
|
+
}), le.current = !0) : v || (le.current = !1);
|
|
1658
1677
|
}, [z.length, y.facets]);
|
|
1659
|
-
const
|
|
1660
|
-
|
|
1678
|
+
const q = T(null), Ce = T(null);
|
|
1679
|
+
X(
|
|
1661
1680
|
() => () => {
|
|
1662
|
-
|
|
1681
|
+
q.current && clearTimeout(q.current);
|
|
1663
1682
|
},
|
|
1664
1683
|
[]
|
|
1665
1684
|
);
|
|
1666
|
-
const
|
|
1667
|
-
|
|
1668
|
-
|
|
1685
|
+
const Je = $((v) => {
|
|
1686
|
+
W(v), !Y.current.has(v) && (Ce.current === v && q.current || (q.current && clearTimeout(q.current), Ce.current = v, q.current = setTimeout(() => {
|
|
1687
|
+
Y.current.has(v) || (Y.current.add(v), H("serp_result_hovered_card", { resultId: v })), q.current = null;
|
|
1669
1688
|
}, 500)));
|
|
1670
|
-
}, []),
|
|
1671
|
-
|
|
1672
|
-
const F =
|
|
1689
|
+
}, []), We = $((v) => {
|
|
1690
|
+
W(v);
|
|
1691
|
+
const F = re.current;
|
|
1673
1692
|
if (!F) return;
|
|
1674
|
-
const
|
|
1675
|
-
`[data-component="practice-result-card"][data-result-id="${CSS.escape(
|
|
1693
|
+
const P = F.querySelector(
|
|
1694
|
+
`[data-component="practice-result-card"][data-result-id="${CSS.escape(v)}"]`
|
|
1676
1695
|
);
|
|
1677
|
-
|
|
1678
|
-
}, []),
|
|
1679
|
-
|
|
1680
|
-
}, []),
|
|
1681
|
-
(
|
|
1682
|
-
|
|
1683
|
-
const F = z.find((
|
|
1696
|
+
P == null || P.scrollIntoView({ behavior: "smooth", block: "nearest" });
|
|
1697
|
+
}, []), Xe = $((v) => {
|
|
1698
|
+
se.current.has(v) || (se.current.add(v), H("serp_result_hovered_pin", { resultId: v }));
|
|
1699
|
+
}, []), we = T(null), Ye = $(
|
|
1700
|
+
(v) => {
|
|
1701
|
+
W(v);
|
|
1702
|
+
const F = z.find((P) => P.id === v);
|
|
1684
1703
|
if (F) {
|
|
1685
1704
|
if (F.location) {
|
|
1686
|
-
const
|
|
1687
|
-
|
|
1705
|
+
const P = we.current;
|
|
1706
|
+
P == null || P.panTo({
|
|
1688
1707
|
lat: F.location.lat,
|
|
1689
1708
|
lng: F.location.lng
|
|
1690
|
-
}),
|
|
1709
|
+
}), P == null || P.setZoom(16);
|
|
1691
1710
|
}
|
|
1692
|
-
|
|
1711
|
+
J(z, v, "card", x);
|
|
1693
1712
|
}
|
|
1694
1713
|
},
|
|
1695
|
-
[z,
|
|
1696
|
-
),
|
|
1697
|
-
(
|
|
1698
|
-
|
|
1714
|
+
[z, x]
|
|
1715
|
+
), et = $(
|
|
1716
|
+
(v) => {
|
|
1717
|
+
J(
|
|
1699
1718
|
z,
|
|
1700
|
-
|
|
1719
|
+
v,
|
|
1701
1720
|
"open-button",
|
|
1702
|
-
|
|
1721
|
+
x
|
|
1703
1722
|
);
|
|
1704
1723
|
},
|
|
1705
|
-
[z,
|
|
1706
|
-
),
|
|
1707
|
-
(
|
|
1708
|
-
|
|
1724
|
+
[z, x]
|
|
1725
|
+
), tt = $(
|
|
1726
|
+
(v) => {
|
|
1727
|
+
J(
|
|
1709
1728
|
z,
|
|
1710
|
-
|
|
1729
|
+
v,
|
|
1711
1730
|
"book-button",
|
|
1712
|
-
|
|
1731
|
+
x
|
|
1713
1732
|
);
|
|
1714
1733
|
},
|
|
1715
|
-
[z,
|
|
1716
|
-
),
|
|
1734
|
+
[z, x]
|
|
1735
|
+
), nt = !!c && a.length === 0, ue = {
|
|
1717
1736
|
results: z,
|
|
1718
1737
|
totalCount: r,
|
|
1719
1738
|
searchCentre: s,
|
|
1720
|
-
facets:
|
|
1721
|
-
value: { ...y, sort:
|
|
1722
|
-
onChange:
|
|
1723
|
-
onResultSelect:
|
|
1724
|
-
onLoadMore:
|
|
1725
|
-
loadingMore:
|
|
1726
|
-
apiKey:
|
|
1727
|
-
mapId:
|
|
1728
|
-
zoom:
|
|
1739
|
+
facets: ce,
|
|
1740
|
+
value: { ...y, sort: de },
|
|
1741
|
+
onChange: k,
|
|
1742
|
+
onResultSelect: x,
|
|
1743
|
+
onLoadMore: b,
|
|
1744
|
+
loadingMore: h,
|
|
1745
|
+
apiKey: d,
|
|
1746
|
+
mapId: u,
|
|
1747
|
+
zoom: o,
|
|
1729
1748
|
// 0.31.4: when `skipConsentGate` is true the kit synthesises
|
|
1730
1749
|
// `consentGranted=true` for every internal MapView; the consumer's
|
|
1731
1750
|
// CMP at the page level is responsible for whether the Google Maps
|
|
1732
1751
|
// loader script is present at all. `onConsentRequest` is dropped
|
|
1733
1752
|
// because no placeholder renders — nothing to fire it from.
|
|
1734
|
-
consentGranted:
|
|
1735
|
-
onConsentRequest:
|
|
1736
|
-
onBoundsChange:
|
|
1737
|
-
loadingSkeletons:
|
|
1738
|
-
emptyResultsSlot:
|
|
1753
|
+
consentGranted: f ? !0 : l,
|
|
1754
|
+
onConsentRequest: f ? void 0 : p,
|
|
1755
|
+
onBoundsChange: g,
|
|
1756
|
+
loadingSkeletons: nt,
|
|
1757
|
+
emptyResultsSlot: S,
|
|
1739
1758
|
errorSlot: N,
|
|
1740
|
-
error:
|
|
1741
|
-
onRetry:
|
|
1742
|
-
heading:
|
|
1743
|
-
headingLevel:
|
|
1744
|
-
intro:
|
|
1745
|
-
highlightedId:
|
|
1746
|
-
onCardHover:
|
|
1747
|
-
onPinClick:
|
|
1748
|
-
onPinFirstInteract:
|
|
1749
|
-
onCardSelect:
|
|
1750
|
-
onCardOpenClick:
|
|
1751
|
-
onCardBookClick:
|
|
1752
|
-
openLabel:
|
|
1753
|
-
bookLabel:
|
|
1754
|
-
formatNextSlot:
|
|
1755
|
-
listContainerRef:
|
|
1756
|
-
mapHandleRef:
|
|
1757
|
-
},
|
|
1759
|
+
error: L,
|
|
1760
|
+
onRetry: C,
|
|
1761
|
+
heading: _,
|
|
1762
|
+
headingLevel: A,
|
|
1763
|
+
intro: G,
|
|
1764
|
+
highlightedId: qe,
|
|
1765
|
+
onCardHover: Je,
|
|
1766
|
+
onPinClick: We,
|
|
1767
|
+
onPinFirstInteract: Xe,
|
|
1768
|
+
onCardSelect: Ye,
|
|
1769
|
+
onCardOpenClick: et,
|
|
1770
|
+
onCardBookClick: tt,
|
|
1771
|
+
openLabel: Ge,
|
|
1772
|
+
bookLabel: Ze,
|
|
1773
|
+
formatNextSlot: Qe,
|
|
1774
|
+
listContainerRef: Ue,
|
|
1775
|
+
mapHandleRef: we
|
|
1776
|
+
}, at = (() => {
|
|
1758
1777
|
switch (n) {
|
|
1759
1778
|
case "map-first":
|
|
1760
|
-
return /* @__PURE__ */ t(
|
|
1779
|
+
return /* @__PURE__ */ t(Vt, { ...ue });
|
|
1761
1780
|
case "rich-cards":
|
|
1762
|
-
return /* @__PURE__ */ t(
|
|
1781
|
+
return /* @__PURE__ */ t(Kt, { ...ue });
|
|
1763
1782
|
case "split-list-map":
|
|
1764
1783
|
default:
|
|
1765
|
-
return /* @__PURE__ */ t(
|
|
1784
|
+
return /* @__PURE__ */ t($t, { ...ue });
|
|
1766
1785
|
}
|
|
1767
|
-
})(),
|
|
1786
|
+
})(), it = j ?? ie("practiceResults.regionLabel");
|
|
1768
1787
|
return /* @__PURE__ */ t(
|
|
1769
1788
|
"div",
|
|
1770
1789
|
{
|
|
1771
|
-
ref:
|
|
1790
|
+
ref: re,
|
|
1772
1791
|
role: "region",
|
|
1773
|
-
"aria-label":
|
|
1774
|
-
id:
|
|
1792
|
+
"aria-label": it,
|
|
1793
|
+
id: V,
|
|
1775
1794
|
"data-component": "practice-results",
|
|
1776
|
-
"data-component-id":
|
|
1795
|
+
"data-component-id": V,
|
|
1777
1796
|
"data-variant": n,
|
|
1778
|
-
className:
|
|
1779
|
-
...
|
|
1780
|
-
children:
|
|
1797
|
+
className: At({ variant: n, className: R }),
|
|
1798
|
+
...B,
|
|
1799
|
+
children: at
|
|
1781
1800
|
}
|
|
1782
1801
|
);
|
|
1783
1802
|
});
|
|
1784
|
-
|
|
1803
|
+
Et.displayName = "PracticeResults";
|
|
1785
1804
|
export {
|
|
1786
|
-
|
|
1787
|
-
|
|
1805
|
+
Et as P,
|
|
1806
|
+
Ct as p
|
|
1788
1807
|
};
|
|
1789
|
-
//# sourceMappingURL=practice-results-
|
|
1808
|
+
//# sourceMappingURL=practice-results-BnY2EkzI.js.map
|