@alfadocs/ui-kit 0.31.6 → 0.31.8

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.
Files changed (64) hide show
  1. package/dist/_chunks/practice-profile-card-CfAMeTxQ.js +339 -0
  2. package/dist/_chunks/{practice-results-VqbCUO1b.js → practice-results-CIkAdwRm.js} +516 -512
  3. package/dist/agent-catalog.json +1 -1
  4. package/dist/components/practice-profile-card/index.js +1 -1
  5. package/dist/components/practice-profile-card/practice-profile-card.d.ts +43 -10
  6. package/dist/components/practice-results/index.js +1 -1
  7. package/dist/i18n/locales/ar.d.ts +23 -0
  8. package/dist/i18n/locales/ar.js +27 -0
  9. package/dist/i18n/locales/de.d.ts +23 -0
  10. package/dist/i18n/locales/de.js +27 -0
  11. package/dist/i18n/locales/el.d.ts +23 -0
  12. package/dist/i18n/locales/el.js +27 -0
  13. package/dist/i18n/locales/en.d.ts +23 -0
  14. package/dist/i18n/locales/en.js +27 -0
  15. package/dist/i18n/locales/es.d.ts +23 -0
  16. package/dist/i18n/locales/es.js +27 -0
  17. package/dist/i18n/locales/fr.d.ts +23 -0
  18. package/dist/i18n/locales/fr.js +27 -0
  19. package/dist/i18n/locales/hi.d.ts +23 -0
  20. package/dist/i18n/locales/hi.js +27 -0
  21. package/dist/i18n/locales/it.d.ts +23 -0
  22. package/dist/i18n/locales/it.js +27 -0
  23. package/dist/i18n/locales/ja.d.ts +23 -0
  24. package/dist/i18n/locales/ja.js +27 -0
  25. package/dist/i18n/locales/nl.d.ts +23 -0
  26. package/dist/i18n/locales/nl.js +27 -0
  27. package/dist/i18n/locales/pl.d.ts +23 -0
  28. package/dist/i18n/locales/pl.js +27 -0
  29. package/dist/i18n/locales/pt.d.ts +23 -0
  30. package/dist/i18n/locales/pt.js +27 -0
  31. package/dist/i18n/locales/ro.d.ts +23 -0
  32. package/dist/i18n/locales/ro.js +27 -0
  33. package/dist/i18n/locales/ru.d.ts +23 -0
  34. package/dist/i18n/locales/ru.js +27 -0
  35. package/dist/i18n/locales/sq.d.ts +23 -0
  36. package/dist/i18n/locales/sq.js +27 -0
  37. package/dist/i18n/locales/sv.d.ts +23 -0
  38. package/dist/i18n/locales/sv.js +27 -0
  39. package/dist/i18n/locales/tr.d.ts +23 -0
  40. package/dist/i18n/locales/tr.js +27 -0
  41. package/dist/i18n/locales/zh.d.ts +23 -0
  42. package/dist/i18n/locales/zh.js +27 -0
  43. package/dist/index.js +2 -2
  44. package/dist/locales/ar.json +23 -0
  45. package/dist/locales/de.json +23 -0
  46. package/dist/locales/el.json +23 -0
  47. package/dist/locales/en.json +23 -0
  48. package/dist/locales/es.json +23 -0
  49. package/dist/locales/fr.json +23 -0
  50. package/dist/locales/hi.json +23 -0
  51. package/dist/locales/it.json +23 -0
  52. package/dist/locales/ja.json +23 -0
  53. package/dist/locales/nl.json +23 -0
  54. package/dist/locales/pl.json +23 -0
  55. package/dist/locales/pt.json +23 -0
  56. package/dist/locales/ro.json +23 -0
  57. package/dist/locales/ru.json +23 -0
  58. package/dist/locales/sq.json +23 -0
  59. package/dist/locales/sv.json +23 -0
  60. package/dist/locales/tr.json +23 -0
  61. package/dist/locales/zh.json +23 -0
  62. package/dist/tokens.css +1 -1
  63. package/package.json +1 -1
  64. package/dist/_chunks/practice-profile-card-C2_2ZH_G.js +0 -297
@@ -1,25 +1,25 @@
1
- import { jsx as t, jsxs as f } from "react/jsx-runtime";
2
- import { forwardRef as Ue, useState as ue, useRef as A, useMemo as D, useImperativeHandle as qe, useCallback as K, useEffect as Q } from "react";
3
- import { c as G } from "./index-D2ZczOXr.js";
4
- import { useTranslation as C } from "react-i18next";
1
+ import { jsx as t, jsxs as p } from "react/jsx-runtime";
2
+ import { forwardRef as Ue, useState as ue, useRef as A, useMemo as L, useImperativeHandle as Ge, useCallback as K, useEffect as J } from "react";
3
+ import { c as Z } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as k } from "react-i18next";
5
5
  import { A as Y } from "./alert-ywPR59NE.js";
6
6
  import { A as Re } from "./avatar-BNQNhoyL.js";
7
- import { B as q } from "./button-DD_0Xdmr.js";
8
- import { D as H } from "./dropdown-menu-BC5ZdOMo.js";
9
- import { E as Ge } from "./empty-state-BLy7tigq.js";
10
- import { M as Ze } from "./map-view-WEWqXzof.js";
7
+ import { B as G } from "./button-DD_0Xdmr.js";
8
+ import { D as $ } from "./dropdown-menu-BC5ZdOMo.js";
9
+ import { E as Ze } from "./empty-state-BLy7tigq.js";
10
+ import { M as Qe } from "./map-view-WEWqXzof.js";
11
11
  import { R as we } from "./rating-BRD7O74e.js";
12
12
  import { S as z } from "./sheet-BV-yuLE2.js";
13
- import { S as Qe } from "./skeleton-CZbwyJAA.js";
14
- import { S as Je } from "./spinner-CCByyvcb.js";
15
- import { B as $ } from "./badge-B9Cr6iEB.js";
16
- import { u as We } from "./use-media-query-CcAx5SMM.js";
17
- import { u as Xe } from "./registry-nPAVE19X.js";
18
- import { c as Ye } from "./createLucideIcon-CrFbzy84.js";
19
- import { R as et } from "./refresh-cw-CC8jSKMr.js";
20
- import { C as Ce } from "./chevron-down-BX_NP2Yh.js";
13
+ import { S as Je } from "./skeleton-CZbwyJAA.js";
14
+ import { S as We } from "./spinner-CCByyvcb.js";
15
+ import { B as H } from "./badge-B9Cr6iEB.js";
16
+ import { u as Xe } from "./use-media-query-CcAx5SMM.js";
17
+ import { u as Ye } from "./registry-nPAVE19X.js";
18
+ import { c as et } from "./createLucideIcon-CrFbzy84.js";
19
+ import { R as tt } from "./refresh-cw-CC8jSKMr.js";
20
+ import { C as ke } from "./chevron-down-BX_NP2Yh.js";
21
21
  import { M as te } from "./map-pin-B8STOPMJ.js";
22
- import { L as ke, S as Ne, H as Se } from "./shield-check-BhHyReu8.js";
22
+ import { L as Ce, S as Ne, H as Se } from "./shield-check-BhHyReu8.js";
23
23
  import { C as Pe } from "./calendar-clock-CYkcqdwl.js";
24
24
  /**
25
25
  * @license lucide-react v1.8.0 - ISC
@@ -27,7 +27,7 @@ import { C as Pe } from "./calendar-clock-CYkcqdwl.js";
27
27
  * This source code is licensed under the ISC license.
28
28
  * See the LICENSE file in the root directory of this source tree.
29
29
  */
30
- const tt = [
30
+ const nt = [
31
31
  [
32
32
  "path",
33
33
  {
@@ -37,7 +37,7 @@ const tt = [
37
37
  ],
38
38
  ["path", { d: "M15 5.764v15", key: "1pn4in" }],
39
39
  ["path", { d: "M9 3.236v15", key: "1uimfh" }]
40
- ], nt = Ye("map", tt), at = {
40
+ ], at = et("map", nt), st = {
41
41
  id: "practice-results",
42
42
  capabilities: ["navigate", "view_change"],
43
43
  state: {
@@ -80,86 +80,90 @@ const tt = [
80
80
  description: "Sourced from the id prop."
81
81
  }
82
82
  }
83
- }, st = 13, it = [
83
+ }, it = 13, rt = [
84
84
  "distance",
85
85
  "rating",
86
86
  "next-available",
87
87
  "relevance"
88
88
  ];
89
+ function Me(e, n, a) {
90
+ const r = `languages.${e}`;
91
+ return a.exists(r) ? n(r) : e.toUpperCase();
92
+ }
89
93
  function F(e, n) {
90
94
  if (typeof window > "u") return;
91
- const s = window.track;
95
+ const a = window.track;
92
96
  try {
93
- s == null || s(e, n);
97
+ a == null || a(e, n);
94
98
  } catch {
95
99
  }
96
100
  }
97
- function J(e, n, s, o) {
101
+ function W(e, n, a, r) {
98
102
  const i = e.findIndex((d) => d.id === n);
99
103
  if (i < 0) return;
100
- const a = e[i];
101
- a && (F("serp_result_clicked", { resultId: n, source: s, position: i }), o(a, s));
104
+ const s = e[i];
105
+ s && (F("serp_result_clicked", { resultId: n, source: a, position: i }), r(s, a));
102
106
  }
103
- function rt(e, n) {
104
- const o = (n.lat - e.lat) * Math.PI / 180, i = (n.lng - e.lng) * Math.PI / 180, a = e.lat * Math.PI / 180, d = n.lat * Math.PI / 180, u = Math.sin(o / 2), c = Math.sin(i / 2), g = u * u + Math.cos(a) * Math.cos(d) * c * c;
107
+ function lt(e, n) {
108
+ const r = (n.lat - e.lat) * Math.PI / 180, i = (n.lng - e.lng) * Math.PI / 180, s = e.lat * Math.PI / 180, d = n.lat * Math.PI / 180, u = Math.sin(r / 2), o = Math.sin(i / 2), g = u * u + Math.cos(s) * Math.cos(d) * o * o;
105
109
  return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(g)));
106
110
  }
107
- function lt(e, n, s) {
108
- return !n || Object.keys(n).length === 0 ? e : e.filter((o) => {
109
- for (const i of s) {
110
- const a = n[i.key];
111
- if (!a || a.length === 0) continue;
111
+ function ot(e, n, a) {
112
+ return !n || Object.keys(n).length === 0 ? e : e.filter((r) => {
113
+ for (const i of a) {
114
+ const s = n[i.key];
115
+ if (!s || s.length === 0) continue;
112
116
  if (i.options.length === 0) {
113
- if (o[i.key] !== !0) return !1;
117
+ if (r[i.key] !== !0) return !1;
114
118
  continue;
115
119
  }
116
- const d = i.key === "insurance" ? o.insurances : i.key === "language" ? o.languages : o[i.key];
117
- if (!Array.isArray(d) || !(i.multi ? a.some((c) => d.includes(c)) : d.includes(a[0]))) return !1;
120
+ const d = i.key === "insurance" ? r.insurances : i.key === "language" ? r.languages : r[i.key];
121
+ if (!Array.isArray(d) || !(i.multi ? s.some((o) => d.includes(o)) : d.includes(s[0]))) return !1;
118
122
  }
119
123
  return !0;
120
124
  });
121
125
  }
122
- function ot(e, n, s) {
123
- const o = e.map((a) => {
124
- const d = a.location ? a.location.distanceKm ?? (s ? rt(s, a.location) : void 0) : void 0;
125
- return { result: a, distanceKm: d };
126
- }), i = (a, d) => {
127
- var u, c, g, l;
126
+ function ct(e, n, a) {
127
+ const r = e.map((s) => {
128
+ const d = s.location ? s.location.distanceKm ?? (a ? lt(a, s.location) : void 0) : void 0;
129
+ return { result: s, distanceKm: d };
130
+ }), i = (s, d) => {
131
+ var u, o, g, c;
128
132
  switch (n) {
129
133
  case "distance":
130
- return a.distanceKm == null && d.distanceKm == null ? 0 : a.distanceKm == null ? 1 : d.distanceKm == null ? -1 : a.distanceKm - d.distanceKm;
134
+ return s.distanceKm == null && d.distanceKm == null ? 0 : s.distanceKm == null ? 1 : d.distanceKm == null ? -1 : s.distanceKm - d.distanceKm;
131
135
  case "rating": {
132
- const p = ((u = a.result.rating) == null ? void 0 : u.value) ?? -1;
133
- return (((c = d.result.rating) == null ? void 0 : c.value) ?? -1) - p;
136
+ const m = ((u = s.result.rating) == null ? void 0 : u.value) ?? -1;
137
+ return (((o = d.result.rating) == null ? void 0 : o.value) ?? -1) - m;
134
138
  }
135
139
  case "next-available": {
136
- const p = ((g = a.result.nextAvailableSlot) == null ? void 0 : g.dateTime) ?? "", m = ((l = d.result.nextAvailableSlot) == null ? void 0 : l.dateTime) ?? "";
137
- return !p && !m ? 0 : p ? m ? p.localeCompare(m) : -1 : 1;
140
+ const m = ((g = s.result.nextAvailableSlot) == null ? void 0 : g.dateTime) ?? "", f = ((c = d.result.nextAvailableSlot) == null ? void 0 : c.dateTime) ?? "";
141
+ return !m && !f ? 0 : m ? f ? m.localeCompare(f) : -1 : 1;
138
142
  }
139
143
  case "relevance":
140
144
  default:
141
145
  return 0;
142
146
  }
143
147
  };
144
- return [...o].sort(i).map(
145
- ({ result: a, distanceKm: d }) => d != null && a.location ? {
146
- ...a,
147
- location: { ...a.location, distanceKm: d }
148
- } : a
148
+ return [...r].sort(i).map(
149
+ ({ result: s, distanceKm: d }) => d != null && s.location ? {
150
+ ...s,
151
+ location: { ...s.location, distanceKm: d }
152
+ } : s
149
153
  );
150
154
  }
151
155
  function be(e) {
152
- let n = -1 / 0, s = 1 / 0, o = -1 / 0, i = 1 / 0, a = !1;
156
+ let n = -1 / 0, a = 1 / 0, r = -1 / 0, i = 1 / 0, s = !1;
153
157
  for (const d of e) {
154
158
  if (!d.location) continue;
155
- a = !0;
156
- const { lat: u, lng: c } = d.location;
157
- u > n && (n = u), u < s && (s = u), c > o && (o = c), c < i && (i = c);
159
+ s = !0;
160
+ const { lat: u, lng: o } = d.location;
161
+ u > n && (n = u), u < a && (a = u), o > r && (r = o), o < i && (i = o);
158
162
  }
159
- if (a)
160
- return { north: n, south: s, east: o, west: i };
163
+ if (s)
164
+ return { north: n, south: a, east: r, west: i };
161
165
  }
162
- const ct = G(
166
+ const dt = Z(
163
167
  "ds:flex ds:w-full ds:flex-col ds:text-[var(--foreground)] ds:gap-[var(--spacing-md)]",
164
168
  {
165
169
  variants: {
@@ -172,32 +176,32 @@ const ct = G(
172
176
  defaultVariants: { variant: "split-list-map" }
173
177
  }
174
178
  );
175
- function Me({
179
+ function Ae({
176
180
  heading: e,
177
181
  intro: n,
178
- totalCount: s,
179
- searchCentreLabel: o
182
+ totalCount: a,
183
+ searchCentreLabel: r
180
184
  }) {
181
- const { t: i } = C();
182
- if (!e && !n && s == null) return null;
183
- const a = s != null ? o ? i("practiceResults.results.heading", {
184
- count: s,
185
- place: o
186
- }) : i("practiceResults.results.summary", { count: s }) : void 0;
187
- return /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
185
+ const { t: i } = k();
186
+ if (!e && !n && a == null) return null;
187
+ const s = a != null ? r ? i("practiceResults.results.heading", {
188
+ count: a,
189
+ place: r
190
+ }) : i("practiceResults.results.summary", { count: a }) : void 0;
191
+ return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
188
192
  e ? /* @__PURE__ */ t("h2", { className: "type-title-section ds:m-0 ds:text-[var(--foreground)]", children: e }) : null,
189
193
  n ? /* @__PURE__ */ t("p", { className: "type-body ds:m-0 ds:text-[var(--muted-foreground)]", children: n }) : null,
190
- a ? /* @__PURE__ */ t(
194
+ s ? /* @__PURE__ */ t(
191
195
  "p",
192
196
  {
193
197
  className: "type-body-sm ds:m-0 ds:text-[var(--muted-foreground)]",
194
198
  "aria-live": "polite",
195
- children: a
199
+ children: s
196
200
  }
197
201
  ) : null
198
202
  ] });
199
203
  }
200
- const ee = G(
204
+ const ee = Z(
201
205
  [
202
206
  "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
203
207
  "ds:min-h-[var(--min-target-size)]",
@@ -219,7 +223,7 @@ const ee = G(
219
223
  },
220
224
  defaultVariants: { state: "idle" }
221
225
  }
222
- ), dt = G(
226
+ ), ut = Z(
223
227
  "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
224
228
  {
225
229
  variants: {
@@ -238,7 +242,7 @@ const ee = G(
238
242
  },
239
243
  defaultVariants: { placement: "inline" }
240
244
  }
241
- ), ut = G(
245
+ ), mt = Z(
242
246
  [
243
247
  "ds:ms-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
244
248
  "ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]",
@@ -249,71 +253,71 @@ const ee = G(
249
253
  "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
250
254
  ].join(" ")
251
255
  );
252
- function Ae({
256
+ function ze({
253
257
  facets: e,
254
258
  value: n,
255
- onChange: s,
256
- floating: o
259
+ onChange: a,
260
+ floating: r
257
261
  }) {
258
- const { t: i } = C(), a = D(() => n ?? {}, [n]), d = D(
259
- () => Object.values(a).some((l) => l && l.length > 0),
260
- [a]
261
- ), u = (l, p) => {
262
- const m = { ...a };
263
- p.length === 0 ? delete m[l] : m[l] = p, s(m), F("serp_filter_changed", { key: l, values: p });
264
- }, c = (l) => {
265
- var m;
266
- const p = (((m = a[l]) == null ? void 0 : m.length) ?? 0) > 0;
267
- u(l, p ? [] : ["true"]);
268
- }, g = (l, p) => {
269
- const m = a[l.key] ?? [], x = m.includes(p);
262
+ const { t: i } = k(), s = L(() => n ?? {}, [n]), d = L(
263
+ () => Object.values(s).some((c) => c && c.length > 0),
264
+ [s]
265
+ ), u = (c, m) => {
266
+ const f = { ...s };
267
+ m.length === 0 ? delete f[c] : f[c] = m, a(f), F("serp_filter_changed", { key: c, values: m });
268
+ }, o = (c) => {
269
+ var f;
270
+ const m = (((f = s[c]) == null ? void 0 : f.length) ?? 0) > 0;
271
+ u(c, m ? [] : ["true"]);
272
+ }, g = (c, m) => {
273
+ const f = s[c.key] ?? [], x = f.includes(m);
270
274
  let h;
271
- l.multi ? h = x ? m.filter((r) => r !== p) : [...m, p] : h = x ? [] : [p], u(l.key, h);
275
+ c.multi ? h = x ? f.filter((l) => l !== m) : [...f, m] : h = x ? [] : [m], u(c.key, h);
272
276
  };
273
- return e.length === 0 ? null : /* @__PURE__ */ f(
277
+ return e.length === 0 ? null : /* @__PURE__ */ p(
274
278
  "div",
275
279
  {
276
280
  "data-component": "practice-results-filters",
277
281
  role: "group",
278
282
  "aria-label": i("practiceResults.filters.label"),
279
- className: dt({
280
- placement: o ? "floating" : "inline"
283
+ className: ut({
284
+ placement: r ? "floating" : "inline"
281
285
  }),
282
286
  children: [
283
- e.map((l) => {
284
- const p = l.options.length === 0, m = a[l.key] ?? [], x = m.length > 0;
285
- if (p)
287
+ e.map((c) => {
288
+ const m = c.options.length === 0, f = s[c.key] ?? [], x = f.length > 0;
289
+ if (m)
286
290
  return /* @__PURE__ */ t(
287
291
  "button",
288
292
  {
289
293
  type: "button",
290
294
  "aria-pressed": x,
291
- "aria-label": l.label,
292
- onClick: () => c(l.key),
295
+ "aria-label": c.label,
296
+ onClick: () => o(c.key),
293
297
  className: ee({
294
298
  state: x ? "active" : "idle"
295
299
  }),
296
- children: /* @__PURE__ */ t("span", { children: l.label })
300
+ children: /* @__PURE__ */ t("span", { children: c.label })
297
301
  },
298
- l.key
302
+ c.key
299
303
  );
300
- const h = x ? ` (${m.length})` : "";
301
- return /* @__PURE__ */ f(H.Root, { children: [
302
- /* @__PURE__ */ t(H.Trigger, { asChild: !0, children: /* @__PURE__ */ f(
304
+ const h = x ? ` (${f.length})` : "";
305
+ return /* @__PURE__ */ p($.Root, { children: [
306
+ /* @__PURE__ */ t($.Trigger, { asChild: !0, children: /* @__PURE__ */ p(
303
307
  "button",
304
308
  {
305
309
  type: "button",
306
- "aria-label": `${l.label}${h}`,
310
+ "aria-label": `${c.label}${h}`,
307
311
  className: ee({
308
312
  state: x ? "active" : "idle"
309
313
  }),
310
314
  children: [
311
- /* @__PURE__ */ f("span", { children: [
312
- l.label,
315
+ /* @__PURE__ */ p("span", { children: [
316
+ c.label,
313
317
  h
314
318
  ] }),
315
319
  /* @__PURE__ */ t(
316
- Ce,
320
+ ke,
317
321
  {
318
322
  "aria-hidden": "true",
319
323
  className: "ds:size-3.5 ds:shrink-0"
@@ -322,27 +326,27 @@ function Ae({
322
326
  ]
323
327
  }
324
328
  ) }),
325
- /* @__PURE__ */ t(H.Content, { sideOffset: 8, align: "start", children: l.options.map((r) => /* @__PURE__ */ t(
326
- H.CheckboxItem,
329
+ /* @__PURE__ */ t($.Content, { sideOffset: 8, align: "start", children: c.options.map((l) => /* @__PURE__ */ t(
330
+ $.CheckboxItem,
327
331
  {
328
- checked: m.includes(r.value),
332
+ checked: f.includes(l.value),
329
333
  onSelect: (b) => {
330
- l.multi && b.preventDefault(), g(l, r.value);
334
+ c.multi && b.preventDefault(), g(c, l.value);
331
335
  },
332
- children: r.label
336
+ children: l.label
333
337
  },
334
- r.value
338
+ l.value
335
339
  )) })
336
- ] }, l.key);
340
+ ] }, c.key);
337
341
  }),
338
342
  d ? /* @__PURE__ */ t(
339
343
  "button",
340
344
  {
341
345
  type: "button",
342
346
  onClick: () => {
343
- s({}), F("serp_filter_changed", { key: "*", values: [] });
347
+ a({}), F("serp_filter_changed", { key: "*", values: [] });
344
348
  },
345
- className: ut(),
349
+ className: mt(),
346
350
  children: i("practiceResults.filters.clear")
347
351
  }
348
352
  ) : null
@@ -351,60 +355,60 @@ function Ae({
351
355
  );
352
356
  }
353
357
  function ce({ value: e, onChange: n }) {
354
- const { t: s } = C(), o = (i) => {
358
+ const { t: a } = k(), r = (i) => {
355
359
  switch (i) {
356
360
  case "distance":
357
- return s("practiceResults.sort.distance");
361
+ return a("practiceResults.sort.distance");
358
362
  case "rating":
359
- return s("practiceResults.sort.rating");
363
+ return a("practiceResults.sort.rating");
360
364
  case "next-available":
361
- return s("practiceResults.sort.nextAvailable");
365
+ return a("practiceResults.sort.nextAvailable");
362
366
  case "relevance":
363
367
  default:
364
- return s("practiceResults.sort.relevance");
368
+ return a("practiceResults.sort.relevance");
365
369
  }
366
370
  };
367
- return /* @__PURE__ */ f(H.Root, { children: [
368
- /* @__PURE__ */ t(H.Trigger, { asChild: !0, children: /* @__PURE__ */ f(
371
+ return /* @__PURE__ */ p($.Root, { children: [
372
+ /* @__PURE__ */ t($.Trigger, { asChild: !0, children: /* @__PURE__ */ p(
369
373
  "button",
370
374
  {
371
375
  type: "button",
372
- "aria-label": `${s("practiceResults.sort.label")}: ${o(e)}`,
376
+ "aria-label": `${a("practiceResults.sort.label")}: ${r(e)}`,
373
377
  className: ee({ state: "idle" }),
374
378
  children: [
375
- /* @__PURE__ */ f("span", { children: [
376
- s("practiceResults.sort.label"),
379
+ /* @__PURE__ */ p("span", { children: [
380
+ a("practiceResults.sort.label"),
377
381
  ": ",
378
- o(e)
382
+ r(e)
379
383
  ] }),
380
- /* @__PURE__ */ t(Ce, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" })
384
+ /* @__PURE__ */ t(ke, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" })
381
385
  ]
382
386
  }
383
387
  ) }),
384
- /* @__PURE__ */ t(H.Content, { sideOffset: 8, align: "end", children: /* @__PURE__ */ t(
385
- H.RadioGroup,
388
+ /* @__PURE__ */ t($.Content, { sideOffset: 8, align: "end", children: /* @__PURE__ */ t(
389
+ $.RadioGroup,
386
390
  {
387
391
  value: e,
388
392
  onValueChange: (i) => {
389
- const a = i;
390
- a !== e && (n(a), F("serp_sort_changed", { sort: a }));
393
+ const s = i;
394
+ s !== e && (n(s), F("serp_sort_changed", { sort: s }));
391
395
  },
392
- children: it.map((i) => /* @__PURE__ */ t(H.RadioItem, { value: i, children: o(i) }, i))
396
+ children: rt.map((i) => /* @__PURE__ */ t($.RadioItem, { value: i, children: r(i) }, i))
393
397
  }
394
398
  ) })
395
399
  ] });
396
400
  }
397
- function ze({ distanceKm: e }) {
398
- const { t: n, i18n: s } = C(), o = D(() => {
401
+ function _e({ distanceKm: e }) {
402
+ const { t: n, i18n: a } = k(), r = L(() => {
399
403
  if (e < 1) return n("practiceResults.distance.below");
400
- const i = new Intl.NumberFormat(s.language, {
404
+ const i = new Intl.NumberFormat(a.language, {
401
405
  maximumFractionDigits: 1
402
406
  }).format(e);
403
407
  return n("practiceResults.distance.km", { distance: i });
404
- }, [e, n, s.language]);
405
- return /* @__PURE__ */ t($, { variant: "neutral", leading: /* @__PURE__ */ t(te, { "aria-hidden": "true" }), children: o });
408
+ }, [e, n, a.language]);
409
+ return /* @__PURE__ */ t(H, { variant: "neutral", leading: /* @__PURE__ */ t(te, { "aria-hidden": "true" }), children: r });
406
410
  }
407
- const ye = G(
411
+ const ye = Z(
408
412
  [
409
413
  "ds:inline-size-[12rem] ds:block-size-[8rem] ds:shrink-0",
410
414
  "ds:rounded-[var(--radius-md)] ds:overflow-hidden"
@@ -423,31 +427,31 @@ const ye = G(
423
427
  defaultVariants: { state: "placeholder" }
424
428
  }
425
429
  );
426
- function mt() {
430
+ function pt() {
427
431
  if (typeof document > "u") return "4945a3";
428
432
  const e = getComputedStyle(document.documentElement).getPropertyValue("--map-marker-color").trim(), n = /^#?([0-9a-fA-F]{6})$/.exec(e);
429
433
  return n ? n[1] : "4945a3";
430
434
  }
431
- function pt({
435
+ function ft({
432
436
  apiKey: e,
433
437
  center: n,
434
- zoom: s = 14,
435
- address: o
438
+ zoom: a = 14,
439
+ address: r
436
440
  }) {
437
- const { t: i } = C();
441
+ const { t: i } = k();
438
442
  if (!e)
439
- return /* @__PURE__ */ f(
443
+ return /* @__PURE__ */ p(
440
444
  "div",
441
445
  {
442
- "aria-hidden": o ? void 0 : "true",
446
+ "aria-hidden": r ? void 0 : "true",
443
447
  className: ye({ state: "placeholder" }),
444
448
  children: [
445
449
  /* @__PURE__ */ t(te, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
446
- o ? /* @__PURE__ */ t("span", { className: "type-meta ds:[overflow-wrap:anywhere]", children: o }) : null
450
+ r ? /* @__PURE__ */ t("span", { className: "type-meta ds:[overflow-wrap:anywhere]", children: r }) : null
447
451
  ]
448
452
  }
449
453
  );
450
- const a = mt(), d = `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)}`;
454
+ const s = pt(), d = `https://maps.googleapis.com/maps/api/staticmap?center=${n.lat},${n.lng}&zoom=${a}&size=240x160&scale=2&markers=color:0x${s}%7C${n.lat},${n.lng}&key=${encodeURIComponent(e)}`;
451
455
  return /* @__PURE__ */ t(
452
456
  "img",
453
457
  {
@@ -461,7 +465,7 @@ function pt({
461
465
  }
462
466
  );
463
467
  }
464
- const _e = G(
468
+ const Ie = Z(
465
469
  [
466
470
  "ds:relative ds:flex ds:w-full ds:cursor-pointer",
467
471
  "ds:rounded-[var(--radius-lg)]",
@@ -490,24 +494,24 @@ const _e = G(
490
494
  defaultVariants: { density: "compact" }
491
495
  }
492
496
  );
493
- function ft({
497
+ function ht({
494
498
  result: e,
495
499
  highlighted: n,
496
- onSelect: s,
497
- onOpenClick: o,
500
+ onSelect: a,
501
+ onOpenClick: r,
498
502
  onHover: i,
499
- density: a = "compact",
503
+ density: s = "compact",
500
504
  openLabel: d,
501
505
  nextSlotText: u,
502
- maxInsuranceChips: c = 3,
506
+ maxInsuranceChips: o = 3,
503
507
  maxLanguageChips: g = 4,
504
- children: l
508
+ children: c
505
509
  }) {
506
- var I, P, V, U, O, j;
507
- const { t: p } = C(), m = e.rating, x = (I = e.location) == null ? void 0 : I.distanceKm, h = (((P = e.languages) == null ? void 0 : P.length) ?? 0) > 0, r = (((V = e.insurances) == null ? void 0 : V.length) ?? 0) > 0, b = e.specializedInFearPatients, N = h || r || b, S = (e.languages ?? []).slice(0, g), y = (((U = e.languages) == null ? void 0 : U.length) ?? 0) - S.length, M = (e.insurances ?? []).slice(0, c), _ = (((O = e.insurances) == null ? void 0 : O.length) ?? 0) - M.length;
510
+ var S, q, U, D, j, B;
511
+ const { t: m, i18n: f } = k(), x = e.rating, h = (S = e.location) == null ? void 0 : S.distanceKm, l = (((q = e.languages) == null ? void 0 : q.length) ?? 0) > 0, b = (((U = e.insurances) == null ? void 0 : U.length) ?? 0) > 0, C = e.specializedInFearPatients, P = l || b || C, y = (e.languages ?? []).slice(0, g), M = (((D = e.languages) == null ? void 0 : D.length) ?? 0) - y.length, _ = (e.insurances ?? []).slice(0, o), I = (((j = e.insurances) == null ? void 0 : j.length) ?? 0) - _.length;
508
512
  return (
509
513
  // 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.
510
- /* @__PURE__ */ f(
514
+ /* @__PURE__ */ p(
511
515
  "div",
512
516
  {
513
517
  "data-component": "practice-result-card",
@@ -515,15 +519,15 @@ function ft({
515
519
  "data-highlighted": n ? "true" : "false",
516
520
  role: "group",
517
521
  "aria-labelledby": `practice-result-${e.id}-name`,
518
- onClick: s,
522
+ onClick: a,
519
523
  onMouseEnter: i,
520
524
  onFocus: i,
521
- className: _e({ density: a }),
525
+ className: Ie({ density: s }),
522
526
  children: [
523
527
  /* @__PURE__ */ t(Re, { src: e.imageUrl, name: e.name, size: "lg" }),
524
- /* @__PURE__ */ f("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
525
- /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
526
- /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
528
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
529
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
530
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
527
531
  /* @__PURE__ */ t(
528
532
  "span",
529
533
  {
@@ -532,47 +536,47 @@ function ft({
532
536
  children: e.name
533
537
  }
534
538
  ),
535
- x != null ? /* @__PURE__ */ t(ze, { distanceKm: x }) : null
539
+ h != null ? /* @__PURE__ */ t(_e, { distanceKm: h }) : null
536
540
  ] }),
537
541
  e.subtitle ? /* @__PURE__ */ t("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
538
- (j = e.location) != null && j.address ? /* @__PURE__ */ f("span", { className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
542
+ (B = e.location) != null && B.address ? /* @__PURE__ */ p("span", { className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
539
543
  /* @__PURE__ */ t(te, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" }),
540
544
  e.location.address
541
545
  ] }) : null
542
546
  ] }),
543
- m && m.count > 0 ? /* @__PURE__ */ t(
547
+ x && x.count > 0 ? /* @__PURE__ */ t(
544
548
  we,
545
549
  {
546
- value: m.value,
547
- reviews: { count: m.count },
550
+ value: x.value,
551
+ reviews: { count: x.count },
548
552
  size: "sm"
549
553
  }
550
554
  ) : null,
551
- N ? /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
552
- S.map((k) => /* @__PURE__ */ t(
553
- $,
555
+ P ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
556
+ y.map((N) => /* @__PURE__ */ t(
557
+ H,
554
558
  {
555
559
  variant: "neutral",
556
- leading: /* @__PURE__ */ t(ke, { "aria-hidden": "true" }),
557
- children: k.toUpperCase()
560
+ leading: /* @__PURE__ */ t(Ce, { "aria-hidden": "true" }),
561
+ children: Me(N, m, f)
558
562
  },
559
- `lang-${k}`
563
+ `lang-${N}`
560
564
  )),
561
- y > 0 ? /* @__PURE__ */ t($, { variant: "neutral", children: `+${y}` }) : null,
562
- M.map((k) => /* @__PURE__ */ t(
563
- $,
565
+ M > 0 ? /* @__PURE__ */ t(H, { variant: "neutral", children: `+${M}` }) : null,
566
+ _.map((N) => /* @__PURE__ */ t(
567
+ H,
564
568
  {
565
569
  variant: "info",
566
570
  leading: /* @__PURE__ */ t(Ne, { "aria-hidden": "true" }),
567
- children: k
571
+ children: N
568
572
  },
569
- `ins-${k}`
573
+ `ins-${N}`
570
574
  )),
571
- _ > 0 ? /* @__PURE__ */ t($, { variant: "neutral", children: `+${_}` }) : null,
572
- b ? /* @__PURE__ */ t($, { variant: "info", leading: /* @__PURE__ */ t(Se, { "aria-hidden": "true" }), children: p("practiceResults.fearPatient.label") }) : null
575
+ I > 0 ? /* @__PURE__ */ t(H, { variant: "neutral", children: `+${I}` }) : null,
576
+ C ? /* @__PURE__ */ t(H, { variant: "info", leading: /* @__PURE__ */ t(Se, { "aria-hidden": "true" }), children: m("practiceResults.fearPatient.label") }) : null
573
577
  ] }) : null,
574
- e.nextAvailableSlot && u ? /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
575
- /* @__PURE__ */ f("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
578
+ e.nextAvailableSlot && u ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
579
+ /* @__PURE__ */ p("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
576
580
  /* @__PURE__ */ t(
577
581
  Pe,
578
582
  {
@@ -580,37 +584,37 @@ function ft({
580
584
  className: "ds:size-4 ds:text-[var(--primary)]"
581
585
  }
582
586
  ),
583
- p("practiceResults.nextSlot.summary", { time: u })
587
+ m("practiceResults.nextSlot.summary", { time: u })
584
588
  ] }),
585
589
  /* @__PURE__ */ t(
586
- q,
590
+ G,
587
591
  {
588
592
  intent: "primary",
589
593
  size: "sm",
590
594
  asChild: !0,
591
- onClick: (k) => {
592
- k.stopPropagation();
595
+ onClick: (N) => {
596
+ N.stopPropagation();
593
597
  },
594
598
  children: /* @__PURE__ */ t(
595
599
  "a",
596
600
  {
597
601
  href: e.nextAvailableSlot.bookingHref,
598
602
  "data-component": "practice-result-next-slot-cta",
599
- children: p("practiceResults.nextSlot.cta", { time: u })
603
+ children: m("practiceResults.nextSlot.cta", { time: u })
600
604
  }
601
605
  )
602
606
  }
603
607
  )
604
608
  ] }) : null,
605
- l,
609
+ c,
606
610
  /* @__PURE__ */ t("div", { className: "ds:mt-[var(--spacing-xs)] ds:flex ds:justify-end", children: /* @__PURE__ */ t(
607
- q,
611
+ G,
608
612
  {
609
613
  intent: "secondary",
610
614
  size: "sm",
611
615
  asChild: !0,
612
- onClick: (k) => {
613
- k.stopPropagation(), o();
616
+ onClick: (N) => {
617
+ N.stopPropagation(), r();
614
618
  },
615
619
  children: /* @__PURE__ */ t("a", { href: e.href, "data-component": "practice-result-open-cta", children: d })
616
620
  }
@@ -621,20 +625,20 @@ function ft({
621
625
  )
622
626
  );
623
627
  }
624
- function ht({
628
+ function gt({
625
629
  result: e,
626
630
  apiKey: n,
627
- highlighted: s,
628
- onSelect: o,
631
+ highlighted: a,
632
+ onSelect: r,
629
633
  onOpenClick: i,
630
- onHover: a,
634
+ onHover: s,
631
635
  openLabel: d
632
636
  }) {
633
- var r, b, N, S;
634
- const { t: u, i18n: c } = C(), g = D(() => {
637
+ var l, b, C, P;
638
+ const { t: u, i18n: o } = k(), g = L(() => {
635
639
  if (e.nextAvailableSlot)
636
640
  try {
637
- return new Intl.DateTimeFormat(c.language, {
641
+ return new Intl.DateTimeFormat(o.language, {
638
642
  weekday: "short",
639
643
  hour: "numeric",
640
644
  minute: "numeric"
@@ -642,25 +646,25 @@ function ht({
642
646
  } catch {
643
647
  return e.nextAvailableSlot.dateTime;
644
648
  }
645
- }, [e.nextAvailableSlot, c.language]), l = (((r = e.languages) == null ? void 0 : r.length) ?? 0) > 0, p = (((b = e.insurances) == null ? void 0 : b.length) ?? 0) > 0, m = e.specializedInFearPatients, x = l || p || m, h = (N = e.location) == null ? void 0 : N.distanceKm;
649
+ }, [e.nextAvailableSlot, o.language]), c = (((l = e.languages) == null ? void 0 : l.length) ?? 0) > 0, m = (((b = e.insurances) == null ? void 0 : b.length) ?? 0) > 0, f = e.specializedInFearPatients, x = c || m || f, h = (C = e.location) == null ? void 0 : C.distanceKm;
646
650
  return (
647
651
  // 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.
648
- /* @__PURE__ */ f(
652
+ /* @__PURE__ */ p(
649
653
  "div",
650
654
  {
651
655
  "data-component": "practice-result-card",
652
656
  "data-result-id": e.id,
653
657
  "data-density": "rich",
654
- "data-highlighted": s ? "true" : "false",
658
+ "data-highlighted": a ? "true" : "false",
655
659
  role: "group",
656
660
  "aria-labelledby": `practice-result-${e.id}-name`,
657
- onClick: o,
658
- onMouseEnter: a,
659
- onFocus: a,
660
- className: _e({ density: "rich" }),
661
+ onClick: r,
662
+ onMouseEnter: s,
663
+ onFocus: s,
664
+ className: Ie({ density: "rich" }),
661
665
  children: [
662
666
  e.location ? /* @__PURE__ */ t(
663
- pt,
667
+ ft,
664
668
  {
665
669
  apiKey: n,
666
670
  center: {
@@ -670,11 +674,11 @@ function ht({
670
674
  address: e.location.address
671
675
  }
672
676
  ) : null,
673
- /* @__PURE__ */ f("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
674
- /* @__PURE__ */ f("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-md)]", children: [
677
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
678
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-md)]", children: [
675
679
  /* @__PURE__ */ t(Re, { src: e.imageUrl, name: e.name, size: "md" }),
676
- /* @__PURE__ */ f("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
677
- /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
680
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
681
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
678
682
  /* @__PURE__ */ t(
679
683
  "span",
680
684
  {
@@ -683,10 +687,10 @@ function ht({
683
687
  children: e.name
684
688
  }
685
689
  ),
686
- h != null ? /* @__PURE__ */ t(ze, { distanceKm: h }) : null
690
+ h != null ? /* @__PURE__ */ t(_e, { distanceKm: h }) : null
687
691
  ] }),
688
692
  e.subtitle ? /* @__PURE__ */ t("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
689
- (S = e.location) != null && S.address ? /* @__PURE__ */ f("span", { className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
693
+ (P = e.location) != null && P.address ? /* @__PURE__ */ p("span", { className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
690
694
  /* @__PURE__ */ t(
691
695
  te,
692
696
  {
@@ -706,18 +710,18 @@ function ht({
706
710
  }
707
711
  ) : null
708
712
  ] }),
709
- x ? /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
710
- l ? (e.languages ?? []).map((y) => /* @__PURE__ */ t(
711
- $,
713
+ x ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
714
+ c ? (e.languages ?? []).map((y) => /* @__PURE__ */ t(
715
+ H,
712
716
  {
713
717
  variant: "neutral",
714
- leading: /* @__PURE__ */ t(ke, { "aria-hidden": "true" }),
715
- children: y.toUpperCase()
718
+ leading: /* @__PURE__ */ t(Ce, { "aria-hidden": "true" }),
719
+ children: Me(y, u, o)
716
720
  },
717
721
  `lang-${y}`
718
722
  )) : null,
719
- p ? (e.insurances ?? []).map((y) => /* @__PURE__ */ t(
720
- $,
723
+ m ? (e.insurances ?? []).map((y) => /* @__PURE__ */ t(
724
+ H,
721
725
  {
722
726
  variant: "info",
723
727
  leading: /* @__PURE__ */ t(Ne, { "aria-hidden": "true" }),
@@ -725,10 +729,10 @@ function ht({
725
729
  },
726
730
  `ins-${y}`
727
731
  )) : null,
728
- m ? /* @__PURE__ */ t($, { variant: "info", leading: /* @__PURE__ */ t(Se, { "aria-hidden": "true" }), children: u("practiceResults.fearPatient.label") }) : null
732
+ f ? /* @__PURE__ */ t(H, { variant: "info", leading: /* @__PURE__ */ t(Se, { "aria-hidden": "true" }), children: u("practiceResults.fearPatient.label") }) : null
729
733
  ] }) : null,
730
- e.nextAvailableSlot && g ? /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
731
- /* @__PURE__ */ f("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
734
+ e.nextAvailableSlot && g ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
735
+ /* @__PURE__ */ p("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
732
736
  /* @__PURE__ */ t(
733
737
  Pe,
734
738
  {
@@ -739,7 +743,7 @@ function ht({
739
743
  u("practiceResults.nextSlot.summary", { time: g })
740
744
  ] }),
741
745
  /* @__PURE__ */ t(
742
- q,
746
+ G,
743
747
  {
744
748
  intent: "primary",
745
749
  size: "sm",
@@ -759,7 +763,7 @@ function ht({
759
763
  )
760
764
  ] }) : null,
761
765
  /* @__PURE__ */ t("div", { className: "ds:mt-[var(--spacing-xs)] ds:flex ds:justify-end", children: /* @__PURE__ */ t(
762
- q,
766
+ G,
763
767
  {
764
768
  intent: "secondary",
765
769
  size: "sm",
@@ -779,33 +783,33 @@ function ht({
779
783
  function me({
780
784
  results: e,
781
785
  highlightedId: n,
782
- onCardHover: s,
783
- onCardSelect: o,
786
+ onCardHover: a,
787
+ onCardSelect: r,
784
788
  onCardOpenClick: i,
785
- openLabel: a,
789
+ openLabel: s,
786
790
  formatNextSlot: d,
787
791
  onLoadMore: u,
788
- loadingMore: c,
792
+ loadingMore: o,
789
793
  loadingSkeletons: g,
790
- density: l = "compact",
791
- apiKey: p,
792
- containerRef: m
794
+ density: c = "compact",
795
+ apiKey: m,
796
+ containerRef: f
793
797
  }) {
794
- const { t: x } = C(), h = A(null);
795
- return Q(() => {
798
+ const { t: x } = k(), h = A(null);
799
+ return J(() => {
796
800
  if (!u) return;
797
- const r = h.current;
798
- if (!r || typeof IntersectionObserver > "u") return;
801
+ const l = h.current;
802
+ if (!l || typeof IntersectionObserver > "u") return;
799
803
  const b = new IntersectionObserver(
800
- (N) => {
801
- for (const S of N)
802
- S.isIntersecting && (F("serp_load_more", {
804
+ (C) => {
805
+ for (const P of C)
806
+ P.isIntersecting && (F("serp_load_more", {
803
807
  currentCount: e.length
804
808
  }), u());
805
809
  },
806
810
  { root: null, rootMargin: "200px" }
807
811
  );
808
- return b.observe(r), () => b.disconnect();
812
+ return b.observe(l), () => b.disconnect();
809
813
  }, [u, e.length]), g ? /* @__PURE__ */ t(
810
814
  "div",
811
815
  {
@@ -813,54 +817,54 @@ function me({
813
817
  "aria-live": "polite",
814
818
  "aria-label": x("practiceResults.loading"),
815
819
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
816
- children: Array.from({ length: 4 }).map((r, b) => /* @__PURE__ */ t(
817
- Qe,
820
+ children: Array.from({ length: 4 }).map((l, b) => /* @__PURE__ */ t(
821
+ Je,
818
822
  {
819
823
  variant: "rounded",
820
- height: l === "rich" ? "11rem" : "7rem"
824
+ height: c === "rich" ? "11rem" : "7rem"
821
825
  },
822
826
  `pr-skel-${b}`
823
827
  ))
824
828
  }
825
- ) : /* @__PURE__ */ f(
829
+ ) : /* @__PURE__ */ p(
826
830
  "div",
827
831
  {
828
- ref: m,
832
+ ref: f,
829
833
  "data-component": "practice-results-list",
830
834
  role: "list",
831
835
  "aria-label": x("practiceResults.list.label"),
832
836
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:overflow-y-auto",
833
837
  children: [
834
- e.map((r) => /* @__PURE__ */ t("div", { role: "listitem", children: l === "rich" ? /* @__PURE__ */ t(
835
- ht,
838
+ e.map((l) => /* @__PURE__ */ t("div", { role: "listitem", children: c === "rich" ? /* @__PURE__ */ t(
839
+ gt,
836
840
  {
837
- result: r,
838
- apiKey: p,
839
- highlighted: n === r.id,
840
- onSelect: () => o(r.id),
841
- onOpenClick: () => i(r.id),
842
- onHover: () => s(r.id),
843
- openLabel: a
841
+ result: l,
842
+ apiKey: m,
843
+ highlighted: n === l.id,
844
+ onSelect: () => r(l.id),
845
+ onOpenClick: () => i(l.id),
846
+ onHover: () => a(l.id),
847
+ openLabel: s
844
848
  }
845
849
  ) : /* @__PURE__ */ t(
846
- ft,
850
+ ht,
847
851
  {
848
- result: r,
849
- highlighted: n === r.id,
850
- onSelect: () => o(r.id),
851
- onOpenClick: () => i(r.id),
852
- onHover: () => s(r.id),
853
- openLabel: a,
854
- nextSlotText: d(r)
852
+ result: l,
853
+ highlighted: n === l.id,
854
+ onSelect: () => r(l.id),
855
+ onOpenClick: () => i(l.id),
856
+ onHover: () => a(l.id),
857
+ openLabel: s,
858
+ nextSlotText: d(l)
855
859
  }
856
- ) }, r.id)),
860
+ ) }, l.id)),
857
861
  u ? /* @__PURE__ */ t(
858
862
  "div",
859
863
  {
860
864
  ref: h,
861
865
  "aria-hidden": "true",
862
866
  className: "ds:flex ds:items-center ds:justify-center ds:py-[var(--spacing-md)]",
863
- children: c ? /* @__PURE__ */ t(Je, { size: "md", variant: "pulse" }) : /* @__PURE__ */ t("span", { className: "ds:size-1" })
867
+ children: o ? /* @__PURE__ */ t(We, { size: "md", variant: "pulse" }) : /* @__PURE__ */ t("span", { className: "ds:size-1" })
864
868
  }
865
869
  ) : null
866
870
  ]
@@ -870,61 +874,61 @@ function me({
870
874
  function de({
871
875
  results: e,
872
876
  searchCentre: n,
873
- zoom: s,
874
- apiKey: o,
877
+ zoom: a,
878
+ apiKey: r,
875
879
  highlightedId: i,
876
- onPinClick: a,
880
+ onPinClick: s,
877
881
  onPinHover: d,
878
882
  onPinFirstInteract: u,
879
- onBoundsChange: c,
883
+ onBoundsChange: o,
880
884
  consentGranted: g,
881
- onConsentRequest: l,
882
- mapHandleRef: p
885
+ onConsentRequest: c,
886
+ mapHandleRef: m
883
887
  }) {
884
- const { t: m } = C(), x = D(
888
+ const { t: f } = k(), x = L(
885
889
  () => e.filter(
886
- (r) => !!r.location
887
- ).map((r) => ({
888
- id: r.id,
890
+ (l) => !!l.location
891
+ ).map((l) => ({
892
+ id: l.id,
889
893
  position: {
890
- lat: r.location.lat,
891
- lng: r.location.lng
894
+ lat: l.location.lat,
895
+ lng: l.location.lng
892
896
  },
893
- label: r.name
897
+ label: l.name
894
898
  })),
895
899
  [e]
896
- ), h = D(() => {
900
+ ), h = L(() => {
897
901
  if (n) return n;
898
- const r = be(e);
899
- return r ? {
900
- lat: (r.north + r.south) / 2,
901
- lng: (r.east + r.west) / 2
902
+ const l = be(e);
903
+ return l ? {
904
+ lat: (l.north + l.south) / 2,
905
+ lng: (l.east + l.west) / 2
902
906
  } : { lat: 45.4642, lng: 9.19 };
903
907
  }, [e, n]);
904
- return Q(() => {
905
- if (!c) return;
906
- const r = be(e);
907
- r && (c(r), F("serp_map_panned", { bounds: r }));
908
- }, [e, c]), /* @__PURE__ */ t(
908
+ return J(() => {
909
+ if (!o) return;
910
+ const l = be(e);
911
+ l && (o(l), F("serp_map_panned", { bounds: l }));
912
+ }, [e, o]), /* @__PURE__ */ t(
909
913
  "div",
910
914
  {
911
915
  "data-component": "practice-results-map-panel",
912
916
  className: "ds:relative ds:flex ds:size-full ds:min-h-[24rem] ds:flex-col",
913
917
  children: /* @__PURE__ */ t(
914
- Ze,
918
+ Qe,
915
919
  {
916
- ref: p,
917
- apiKey: o ?? "",
920
+ ref: m,
921
+ apiKey: r ?? "",
918
922
  center: h,
919
- zoom: s,
923
+ zoom: a,
920
924
  markers: x,
921
925
  selectedMarkerId: i,
922
926
  consentGranted: !!g,
923
- onConsentRequest: l,
924
- onMarkerClick: (r) => {
925
- r != null && (d(r), u(r), a(r));
927
+ onConsentRequest: c,
928
+ onMarkerClick: (l) => {
929
+ l != null && (d(l), u(l), s(l));
926
930
  },
927
- ariaLabel: m("practiceResults.map.label"),
931
+ ariaLabel: f("practiceResults.map.label"),
928
932
  size: "lg",
929
933
  surface: "bordered",
930
934
  className: "ds:size-full"
@@ -933,49 +937,49 @@ function de({
933
937
  }
934
938
  );
935
939
  }
936
- function Ie({
940
+ function Te({
937
941
  variantBodyProps: e
938
942
  }) {
939
- const { facets: n, value: s, onChange: o, heading: i, intro: a, totalCount: d, searchCentre: u } = e;
940
- return /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
943
+ const { facets: n, value: a, onChange: r, heading: i, intro: s, totalCount: d, searchCentre: u } = e;
944
+ return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
941
945
  /* @__PURE__ */ t(
942
- Me,
946
+ Ae,
943
947
  {
944
948
  heading: i,
945
- intro: a,
949
+ intro: s,
946
950
  totalCount: d,
947
951
  searchCentreLabel: u == null ? void 0 : u.label
948
952
  }
949
953
  ),
950
- n.length > 0 ? /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
954
+ n.length > 0 ? /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
951
955
  /* @__PURE__ */ t(
952
- Ae,
956
+ ze,
953
957
  {
954
958
  facets: n,
955
- value: s.facets,
956
- onChange: (c) => o({ ...s, facets: c })
959
+ value: a.facets,
960
+ onChange: (o) => r({ ...a, facets: o })
957
961
  }
958
962
  ),
959
963
  /* @__PURE__ */ t(
960
964
  ce,
961
965
  {
962
- value: s.sort ?? "relevance",
963
- onChange: (c) => o({ ...s, sort: c })
966
+ value: a.sort ?? "relevance",
967
+ onChange: (o) => r({ ...a, sort: o })
964
968
  }
965
969
  )
966
970
  ] }) : /* @__PURE__ */ t("div", { className: "ds:flex ds:justify-end", children: /* @__PURE__ */ t(
967
971
  ce,
968
972
  {
969
- value: s.sort ?? "relevance",
970
- onChange: (c) => o({ ...s, sort: c })
973
+ value: a.sort ?? "relevance",
974
+ onChange: (o) => r({ ...a, sort: o })
971
975
  }
972
976
  ) })
973
977
  ] });
974
978
  }
975
979
  function pe() {
976
- const { t: e } = C();
980
+ const { t: e } = k();
977
981
  return /* @__PURE__ */ t(
978
- Ge,
982
+ Ze,
979
983
  {
980
984
  variant: "no-results",
981
985
  title: e("practiceResults.empty.title"),
@@ -984,113 +988,113 @@ function pe() {
984
988
  );
985
989
  }
986
990
  function fe({ onRetry: e }) {
987
- const { t: n } = C();
988
- return /* @__PURE__ */ f(Y, { variant: "error", children: [
991
+ const { t: n } = k();
992
+ return /* @__PURE__ */ p(Y, { variant: "error", children: [
989
993
  /* @__PURE__ */ t(Y.Title, { as: "h3", children: n("practiceResults.error.title") }),
990
994
  /* @__PURE__ */ t(Y.Description, { children: n("practiceResults.error.description") }),
991
995
  e ? /* @__PURE__ */ t(Y.Action, { children: /* @__PURE__ */ t(
992
- q,
996
+ G,
993
997
  {
994
998
  intent: "secondary",
995
999
  size: "sm",
996
- startIcon: /* @__PURE__ */ t(et, { "aria-hidden": "true" }),
1000
+ startIcon: /* @__PURE__ */ t(tt, { "aria-hidden": "true" }),
997
1001
  onClick: e,
998
1002
  children: n("practiceResults.error.retry")
999
1003
  }
1000
1004
  ) }) : null
1001
1005
  ] });
1002
1006
  }
1003
- function gt(e) {
1007
+ function vt(e) {
1004
1008
  const {
1005
1009
  results: n,
1006
- apiKey: s,
1007
- zoom: o,
1010
+ apiKey: a,
1011
+ zoom: r,
1008
1012
  searchCentre: i,
1009
- onLoadMore: a,
1013
+ onLoadMore: s,
1010
1014
  loadingMore: d,
1011
1015
  loadingSkeletons: u,
1012
- emptyResultsSlot: c,
1016
+ emptyResultsSlot: o,
1013
1017
  errorSlot: g,
1014
- error: l,
1015
- onRetry: p,
1016
- highlightedId: m,
1018
+ error: c,
1019
+ onRetry: m,
1020
+ highlightedId: f,
1017
1021
  onCardHover: x,
1018
1022
  onPinClick: h,
1019
- consentGranted: r,
1023
+ consentGranted: l,
1020
1024
  onConsentRequest: b,
1021
- onBoundsChange: N,
1022
- listContainerRef: S
1023
- } = e, { t: y } = C(), [M, _] = ue(!1), I = l ? g ?? /* @__PURE__ */ t(fe, { onRetry: p }) : n.length === 0 && !u ? c ?? /* @__PURE__ */ t(pe, {}) : /* @__PURE__ */ t(
1025
+ onBoundsChange: C,
1026
+ listContainerRef: P
1027
+ } = e, { t: y } = k(), [M, _] = ue(!1), I = c ? g ?? /* @__PURE__ */ t(fe, { onRetry: m }) : n.length === 0 && !u ? o ?? /* @__PURE__ */ t(pe, {}) : /* @__PURE__ */ t(
1024
1028
  me,
1025
1029
  {
1026
1030
  results: n,
1027
- highlightedId: m,
1031
+ highlightedId: f,
1028
1032
  onCardHover: x,
1029
1033
  onCardSelect: e.onCardSelect,
1030
1034
  onCardOpenClick: e.onCardOpenClick,
1031
1035
  openLabel: e.openLabel,
1032
1036
  formatNextSlot: e.formatNextSlot,
1033
- onLoadMore: a,
1037
+ onLoadMore: s,
1034
1038
  loadingMore: d,
1035
1039
  loadingSkeletons: u,
1036
1040
  density: "compact",
1037
- containerRef: S
1041
+ containerRef: P
1038
1042
  }
1039
1043
  );
1040
- return /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1041
- /* @__PURE__ */ t(Ie, { variantBodyProps: e }),
1042
- /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:lg:grid ds:lg:grid-cols-[55%_45%] ds:lg:gap-[var(--spacing-lg)] ds:lg:items-start", children: [
1044
+ return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1045
+ /* @__PURE__ */ t(Te, { variantBodyProps: e }),
1046
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:lg:grid ds:lg:grid-cols-[55%_45%] ds:lg:gap-[var(--spacing-lg)] ds:lg:items-start", children: [
1043
1047
  /* @__PURE__ */ t("div", { className: "ds:min-w-0 ds:lg:max-h-[40rem] ds:lg:overflow-y-auto", children: I }),
1044
1048
  /* @__PURE__ */ t("div", { className: "ds:hidden ds:lg:block ds:sticky ds:top-[var(--spacing-md)] ds:h-[40rem]", children: /* @__PURE__ */ t(
1045
1049
  de,
1046
1050
  {
1047
1051
  results: n,
1048
1052
  searchCentre: i,
1049
- zoom: o,
1050
- apiKey: s,
1051
- highlightedId: m,
1052
- onPinClick: (P) => {
1053
- J(n, P, "pin", e.onResultSelect), h(P);
1053
+ zoom: r,
1054
+ apiKey: a,
1055
+ highlightedId: f,
1056
+ onPinClick: (S) => {
1057
+ W(n, S, "pin", e.onResultSelect), h(S);
1054
1058
  },
1055
1059
  onPinHover: x,
1056
1060
  onPinFirstInteract: e.onPinFirstInteract,
1057
- onBoundsChange: N,
1058
- consentGranted: r,
1061
+ onBoundsChange: C,
1062
+ consentGranted: l,
1059
1063
  onConsentRequest: b,
1060
1064
  mapHandleRef: e.mapHandleRef
1061
1065
  }
1062
1066
  ) })
1063
1067
  ] }),
1064
1068
  /* @__PURE__ */ t("div", { className: "ds:flex ds:lg:hidden ds:sticky ds:bottom-[var(--spacing-md)] ds:justify-center", children: /* @__PURE__ */ t(
1065
- q,
1069
+ G,
1066
1070
  {
1067
1071
  intent: "primary",
1068
1072
  size: "md",
1069
- startIcon: /* @__PURE__ */ t(nt, { "aria-hidden": "true" }),
1073
+ startIcon: /* @__PURE__ */ t(at, { "aria-hidden": "true" }),
1070
1074
  onClick: () => _(!0),
1071
1075
  children: y("practiceResults.viewMap")
1072
1076
  }
1073
1077
  ) }),
1074
- /* @__PURE__ */ t(z.Root, { open: M, onOpenChange: _, children: /* @__PURE__ */ f(z.Content, { side: "bottom", size: "lg", children: [
1078
+ /* @__PURE__ */ t(z.Root, { open: M, onOpenChange: _, children: /* @__PURE__ */ p(z.Content, { side: "bottom", size: "lg", children: [
1075
1079
  /* @__PURE__ */ t(z.Header, { children: /* @__PURE__ */ t(z.Title, { children: y("practiceResults.map.label") }) }),
1076
- /* @__PURE__ */ f(z.Body, { children: [
1080
+ /* @__PURE__ */ p(z.Body, { children: [
1077
1081
  /* @__PURE__ */ t(z.Description, { className: "ds:sr-only", children: y("practiceResults.sheet.description") }),
1078
- /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1082
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1079
1083
  /* @__PURE__ */ t("div", { className: "ds:h-[20rem]", children: /* @__PURE__ */ t(
1080
1084
  de,
1081
1085
  {
1082
1086
  results: n,
1083
1087
  searchCentre: i,
1084
- zoom: o,
1085
- apiKey: s,
1086
- highlightedId: m,
1087
- onPinClick: (P) => {
1088
- J(n, P, "pin", e.onResultSelect), h(P);
1088
+ zoom: r,
1089
+ apiKey: a,
1090
+ highlightedId: f,
1091
+ onPinClick: (S) => {
1092
+ W(n, S, "pin", e.onResultSelect), h(S);
1089
1093
  },
1090
1094
  onPinHover: x,
1091
1095
  onPinFirstInteract: e.onPinFirstInteract,
1092
- onBoundsChange: N,
1093
- consentGranted: r,
1096
+ onBoundsChange: C,
1097
+ consentGranted: l,
1094
1098
  onConsentRequest: b,
1095
1099
  mapHandleRef: e.mapHandleRef
1096
1100
  }
@@ -1101,44 +1105,44 @@ function gt(e) {
1101
1105
  ] }) })
1102
1106
  ] });
1103
1107
  }
1104
- const vt = {
1108
+ const xt = {
1105
1109
  peek: "sm",
1106
1110
  half: "md",
1107
1111
  full: "lg"
1108
- }, E = [
1112
+ }, V = [
1109
1113
  "peek",
1110
1114
  "half",
1111
1115
  "full"
1112
1116
  ];
1113
- function xt({ value: e, onChange: n }) {
1114
- const { t: s, i18n: o } = C(), i = o.dir() === "rtl", a = A(
1117
+ function bt({ value: e, onChange: n }) {
1118
+ const { t: a, i18n: r } = k(), i = r.dir() === "rtl", s = A(
1115
1119
  /* @__PURE__ */ new Map()
1116
- ), d = K((c) => {
1120
+ ), d = K((o) => {
1117
1121
  var g;
1118
- (g = a.current.get(c)) == null || g.focus();
1122
+ (g = s.current.get(o)) == null || g.focus();
1119
1123
  }, []), u = K(
1120
- (c, g) => {
1121
- const l = E.indexOf(g), p = E.length, m = i ? "ArrowLeft" : "ArrowRight", x = i ? "ArrowRight" : "ArrowLeft";
1124
+ (o, g) => {
1125
+ const c = V.indexOf(g), m = V.length, f = i ? "ArrowLeft" : "ArrowRight", x = i ? "ArrowRight" : "ArrowLeft";
1122
1126
  let h = null;
1123
- switch (c.key) {
1124
- case m:
1127
+ switch (o.key) {
1128
+ case f:
1125
1129
  case "ArrowDown":
1126
- h = E[(l + 1) % p];
1130
+ h = V[(c + 1) % m];
1127
1131
  break;
1128
1132
  case x:
1129
1133
  case "ArrowUp":
1130
- h = E[(l - 1 + p) % p];
1134
+ h = V[(c - 1 + m) % m];
1131
1135
  break;
1132
1136
  case "Home":
1133
- h = E[0];
1137
+ h = V[0];
1134
1138
  break;
1135
1139
  case "End":
1136
- h = E[p - 1];
1140
+ h = V[m - 1];
1137
1141
  break;
1138
1142
  default:
1139
1143
  return;
1140
1144
  }
1141
- c.preventDefault(), h && h !== g && n(h), h && d(h);
1145
+ o.preventDefault(), h && h !== g && n(h), h && d(h);
1142
1146
  },
1143
1147
  [d, i, n]
1144
1148
  );
@@ -1146,94 +1150,94 @@ function xt({ value: e, onChange: n }) {
1146
1150
  "div",
1147
1151
  {
1148
1152
  role: "radiogroup",
1149
- "aria-label": s("practiceResults.sheet.snap.label"),
1153
+ "aria-label": a("practiceResults.sheet.snap.label"),
1150
1154
  className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]",
1151
- children: E.map((c) => {
1152
- const g = e === c;
1155
+ children: V.map((o) => {
1156
+ const g = e === o;
1153
1157
  return /* @__PURE__ */ t(
1154
1158
  "button",
1155
1159
  {
1156
- ref: (l) => {
1157
- l ? a.current.set(c, l) : a.current.delete(c);
1160
+ ref: (c) => {
1161
+ c ? s.current.set(o, c) : s.current.delete(o);
1158
1162
  },
1159
1163
  type: "button",
1160
1164
  role: "radio",
1161
1165
  "aria-checked": g,
1162
- "aria-label": s(`practiceResults.sheet.snap.${c}`),
1166
+ "aria-label": a(`practiceResults.sheet.snap.${o}`),
1163
1167
  tabIndex: g ? 0 : -1,
1164
- onClick: () => n(c),
1165
- onKeyDown: (l) => u(l, c),
1168
+ onClick: () => n(o),
1169
+ onKeyDown: (c) => u(c, o),
1166
1170
  className: ee({
1167
1171
  state: g ? "active" : "idle"
1168
1172
  }),
1169
- children: s(`practiceResults.sheet.snap.${c}`)
1173
+ children: a(`practiceResults.sheet.snap.${o}`)
1170
1174
  },
1171
- c
1175
+ o
1172
1176
  );
1173
1177
  })
1174
1178
  }
1175
1179
  );
1176
1180
  }
1177
- function bt(e) {
1181
+ function yt(e) {
1178
1182
  const {
1179
1183
  results: n,
1180
- apiKey: s,
1181
- zoom: o,
1184
+ apiKey: a,
1185
+ zoom: r,
1182
1186
  searchCentre: i,
1183
- onLoadMore: a,
1187
+ onLoadMore: s,
1184
1188
  loadingMore: d,
1185
1189
  loadingSkeletons: u,
1186
- emptyResultsSlot: c,
1190
+ emptyResultsSlot: o,
1187
1191
  errorSlot: g,
1188
- error: l,
1189
- onRetry: p,
1190
- highlightedId: m,
1192
+ error: c,
1193
+ onRetry: m,
1194
+ highlightedId: f,
1191
1195
  onCardHover: x,
1192
1196
  onPinClick: h,
1193
- consentGranted: r,
1197
+ consentGranted: l,
1194
1198
  onConsentRequest: b,
1195
- onBoundsChange: N,
1196
- listContainerRef: S,
1199
+ onBoundsChange: C,
1200
+ listContainerRef: P,
1197
1201
  facets: y,
1198
1202
  value: M,
1199
1203
  onChange: _
1200
- } = e, { t: I } = C(), [P, V] = ue("half"), U = vt[P], O = We("(min-width: 1024px)"), j = l ? g ?? /* @__PURE__ */ t(fe, { onRetry: p }) : n.length === 0 && !u ? c ?? /* @__PURE__ */ t(pe, {}) : /* @__PURE__ */ t(
1204
+ } = e, { t: I } = k(), [S, q] = ue("half"), U = xt[S], D = Xe("(min-width: 1024px)"), j = c ? g ?? /* @__PURE__ */ t(fe, { onRetry: m }) : n.length === 0 && !u ? o ?? /* @__PURE__ */ t(pe, {}) : /* @__PURE__ */ t(
1201
1205
  me,
1202
1206
  {
1203
1207
  results: n,
1204
- highlightedId: m,
1208
+ highlightedId: f,
1205
1209
  onCardHover: x,
1206
1210
  onCardSelect: e.onCardSelect,
1207
1211
  onCardOpenClick: e.onCardOpenClick,
1208
1212
  openLabel: e.openLabel,
1209
1213
  formatNextSlot: e.formatNextSlot,
1210
- onLoadMore: a,
1214
+ onLoadMore: s,
1211
1215
  loadingMore: d,
1212
1216
  loadingSkeletons: u,
1213
1217
  density: "compact",
1214
- apiKey: s,
1215
- containerRef: S
1218
+ apiKey: a,
1219
+ containerRef: P
1216
1220
  }
1217
- ), k = /* @__PURE__ */ t(
1221
+ ), B = /* @__PURE__ */ t(
1218
1222
  de,
1219
1223
  {
1220
1224
  results: n,
1221
1225
  searchCentre: i,
1222
- zoom: o,
1223
- apiKey: s,
1224
- highlightedId: m,
1226
+ zoom: r,
1227
+ apiKey: a,
1228
+ highlightedId: f,
1225
1229
  onPinClick: (R) => {
1226
- J(n, R, "pin", e.onResultSelect), h(R);
1230
+ W(n, R, "pin", e.onResultSelect), h(R);
1227
1231
  },
1228
1232
  onPinHover: x,
1229
1233
  onPinFirstInteract: e.onPinFirstInteract,
1230
- onBoundsChange: N,
1231
- consentGranted: r,
1234
+ onBoundsChange: C,
1235
+ consentGranted: l,
1232
1236
  onConsentRequest: b,
1233
1237
  mapHandleRef: e.mapHandleRef
1234
1238
  }
1235
- ), W = y.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(
1236
- Ae,
1239
+ ), N = y.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(
1240
+ ze,
1237
1241
  {
1238
1242
  facets: y,
1239
1243
  value: M.facets,
@@ -1241,9 +1245,9 @@ function bt(e) {
1241
1245
  floating: !0
1242
1246
  }
1243
1247
  ) }) : null;
1244
- return /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1248
+ return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1245
1249
  /* @__PURE__ */ t(
1246
- Me,
1250
+ Ae,
1247
1251
  {
1248
1252
  heading: e.heading,
1249
1253
  intro: e.intro,
@@ -1251,7 +1255,7 @@ function bt(e) {
1251
1255
  searchCentreLabel: i == null ? void 0 : i.label
1252
1256
  }
1253
1257
  ),
1254
- O ? (
1258
+ D ? (
1255
1259
  // Desktop: 65/35 map left + scrollable card rail right. NO Sheet
1256
1260
  // (the Sheet would portal to body and occlude the desktop
1257
1261
  // layout regardless of the parent's `lg:hidden` class).
@@ -1266,10 +1270,10 @@ function bt(e) {
1266
1270
  // The default 8rem approximates a typical sticky header.
1267
1271
  // `dvh` (dynamic viewport height) plays nice with mobile-
1268
1272
  // chrome show/hide.
1269
- /* @__PURE__ */ f("div", { className: "ds:grid ds:grid-cols-[65%_35%] ds:gap-[var(--spacing-lg)] ds:items-start", children: [
1270
- /* @__PURE__ */ f("div", { className: "ds:relative ds:h-[calc(100dvh-var(--practice-results-chrome,8rem))] ds:min-h-[40rem]", children: [
1271
- k,
1272
- W
1273
+ /* @__PURE__ */ p("div", { className: "ds:grid ds:grid-cols-[65%_35%] ds:gap-[var(--spacing-lg)] ds:items-start", children: [
1274
+ /* @__PURE__ */ p("div", { className: "ds:relative ds:h-[calc(100dvh-var(--practice-results-chrome,8rem))] ds:min-h-[40rem]", children: [
1275
+ B,
1276
+ N
1273
1277
  ] }),
1274
1278
  /* @__PURE__ */ t("div", { className: "ds:min-w-0 ds:h-[calc(100dvh-var(--practice-results-chrome,8rem))] ds:min-h-[40rem] ds:overflow-y-auto", children: j })
1275
1279
  ] })
@@ -1278,10 +1282,10 @@ function bt(e) {
1278
1282
  // 'half' state. No X close button — the sheet is core to the
1279
1283
  // layout, not dismissible. Patient cycles peek / half / full
1280
1284
  // via the snap radiogroup at the top of the sheet body.
1281
- /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1282
- /* @__PURE__ */ f("div", { className: "ds:relative ds:h-[60vh] ds:min-h-[20rem]", children: [
1283
- k,
1284
- W
1285
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1286
+ /* @__PURE__ */ p("div", { className: "ds:relative ds:h-[60vh] ds:min-h-[20rem]", children: [
1287
+ B,
1288
+ N
1285
1289
  ] }),
1286
1290
  /* @__PURE__ */ t(z.Root, { open: !0, children: /* @__PURE__ */ t(
1287
1291
  z.Content,
@@ -1291,17 +1295,17 @@ function bt(e) {
1291
1295
  onEscapeKeyDown: (R) => R.preventDefault(),
1292
1296
  onPointerDownOutside: (R) => R.preventDefault(),
1293
1297
  onInteractOutside: (R) => R.preventDefault(),
1294
- children: /* @__PURE__ */ f(z.Body, { children: [
1298
+ children: /* @__PURE__ */ p(z.Body, { children: [
1295
1299
  /* @__PURE__ */ t(z.Description, { className: "ds:sr-only", children: I("practiceResults.sheet.descriptionMapFirst") }),
1296
- /* @__PURE__ */ f("div", { className: "ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]", children: [
1300
+ /* @__PURE__ */ p("div", { className: "ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]", children: [
1297
1301
  /* @__PURE__ */ t(z.Title, { className: "type-title-card ds:m-0 ds:text-[var(--foreground)]", children: I("practiceResults.sheet.title", {
1298
1302
  count: e.totalCount ?? n.length
1299
1303
  }) }),
1300
1304
  /* @__PURE__ */ t(
1301
- xt,
1305
+ bt,
1302
1306
  {
1303
- value: P,
1304
- onChange: V
1307
+ value: S,
1308
+ onChange: q
1305
1309
  }
1306
1310
  )
1307
1311
  ] }),
@@ -1320,74 +1324,74 @@ function bt(e) {
1320
1324
  )
1321
1325
  ] });
1322
1326
  }
1323
- function yt(e) {
1327
+ function Rt(e) {
1324
1328
  const {
1325
1329
  results: n,
1326
- apiKey: s,
1327
- onLoadMore: o,
1330
+ apiKey: a,
1331
+ onLoadMore: r,
1328
1332
  loadingMore: i,
1329
- loadingSkeletons: a,
1333
+ loadingSkeletons: s,
1330
1334
  emptyResultsSlot: d,
1331
1335
  errorSlot: u,
1332
- error: c,
1336
+ error: o,
1333
1337
  onRetry: g,
1334
- highlightedId: l,
1335
- onCardHover: p,
1336
- listContainerRef: m
1337
- } = e, x = c ? u ?? /* @__PURE__ */ t(fe, { onRetry: g }) : n.length === 0 && !a ? d ?? /* @__PURE__ */ t(pe, {}) : /* @__PURE__ */ t(
1338
+ highlightedId: c,
1339
+ onCardHover: m,
1340
+ listContainerRef: f
1341
+ } = e, x = o ? u ?? /* @__PURE__ */ t(fe, { onRetry: g }) : n.length === 0 && !s ? d ?? /* @__PURE__ */ t(pe, {}) : /* @__PURE__ */ t(
1338
1342
  me,
1339
1343
  {
1340
1344
  results: n,
1341
- highlightedId: l,
1342
- onCardHover: p,
1345
+ highlightedId: c,
1346
+ onCardHover: m,
1343
1347
  onCardSelect: e.onCardSelect,
1344
1348
  onCardOpenClick: e.onCardOpenClick,
1345
1349
  openLabel: e.openLabel,
1346
1350
  formatNextSlot: e.formatNextSlot,
1347
- onLoadMore: o,
1351
+ onLoadMore: r,
1348
1352
  loadingMore: i,
1349
- loadingSkeletons: a,
1353
+ loadingSkeletons: s,
1350
1354
  density: "rich",
1351
- apiKey: s,
1352
- containerRef: m
1355
+ apiKey: a,
1356
+ containerRef: f
1353
1357
  }
1354
1358
  );
1355
- return /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1356
- /* @__PURE__ */ t(Ie, { variantBodyProps: e }),
1359
+ return /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1360
+ /* @__PURE__ */ t(Te, { variantBodyProps: e }),
1357
1361
  x
1358
1362
  ] });
1359
1363
  }
1360
- const Rt = Ue(function({
1364
+ const wt = Ue(function({
1361
1365
  variant: n = "split-list-map",
1362
- results: s,
1363
- totalCount: o,
1366
+ results: a,
1367
+ totalCount: r,
1364
1368
  searchCentre: i,
1365
- facets: a,
1369
+ facets: s,
1366
1370
  googleMapsApiKey: d,
1367
- defaultZoom: u = st,
1368
- onBoundsChange: c,
1371
+ defaultZoom: u = it,
1372
+ onBoundsChange: o,
1369
1373
  consentGranted: g,
1370
- onConsentRequest: l,
1371
- skipConsentGate: p = !1,
1372
- onLoadMore: m,
1374
+ onConsentRequest: c,
1375
+ skipConsentGate: m = !1,
1376
+ onLoadMore: f,
1373
1377
  loadingMore: x,
1374
1378
  value: h,
1375
- onChange: r,
1379
+ onChange: l,
1376
1380
  onResultSelect: b,
1377
- loading: N,
1378
- emptyResultsSlot: S,
1381
+ loading: C,
1382
+ emptyResultsSlot: P,
1379
1383
  errorSlot: y,
1380
1384
  error: M,
1381
1385
  onRetry: _,
1382
1386
  heading: I,
1383
- intro: P,
1384
- cardOpenButtonLabel: V,
1387
+ intro: S,
1388
+ cardOpenButtonLabel: q,
1385
1389
  "aria-label": U,
1386
- id: O,
1390
+ id: D,
1387
1391
  className: j,
1388
- ...k
1389
- }, W) {
1390
- const { t: R, i18n: he } = C(), [Te, Z] = ue(null), X = A(/* @__PURE__ */ new Set()), ne = A(/* @__PURE__ */ new Set()), Fe = A(null), ae = A(null), se = D(
1392
+ ...B
1393
+ }, N) {
1394
+ const { t: R, i18n: he } = k(), [Fe, Q] = ue(null), X = A(/* @__PURE__ */ new Set()), ne = A(/* @__PURE__ */ new Set()), $e = A(null), ae = A(null), se = L(
1391
1395
  () => ({
1392
1396
  getVariant: () => n,
1393
1397
  scrollToResult: (v) => {
@@ -1396,16 +1400,16 @@ const Rt = Ue(function({
1396
1400
  const w = T.querySelector(
1397
1401
  `[data-component="practice-result-card"][data-result-id="${CSS.escape(v)}"]`
1398
1402
  );
1399
- w && (w.scrollIntoView({ behavior: "smooth", block: "nearest" }), Z(v));
1403
+ w && (w.scrollIntoView({ behavior: "smooth", block: "nearest" }), Q(v));
1400
1404
  },
1401
1405
  focusPin: (v) => {
1402
- Z(v);
1406
+ Q(v);
1403
1407
  }
1404
1408
  }),
1405
1409
  [n]
1406
1410
  );
1407
- qe(W, () => se, [se]), Xe(at, se, O);
1408
- const He = V ?? R("practiceResults.card.open"), $e = K(
1411
+ Ge(N, () => se, [se]), Ye(st, se, D);
1412
+ const He = q ?? R("practiceResults.card.open"), Le = K(
1409
1413
  (v) => {
1410
1414
  if (v.nextAvailableSlot)
1411
1415
  try {
@@ -1420,47 +1424,47 @@ const Rt = Ue(function({
1420
1424
  },
1421
1425
  [he.language]
1422
1426
  ), ge = A(null);
1423
- Q(() => {
1427
+ J(() => {
1424
1428
  ge.current !== n && (ge.current = n, F("serp_variant_exposed", {
1425
1429
  variant: n,
1426
- totalCount: o ?? s.length
1430
+ totalCount: r ?? a.length
1427
1431
  }), X.current = /* @__PURE__ */ new Set(), ne.current = /* @__PURE__ */ new Set());
1428
1432
  }, [n]);
1429
- const ie = A(!1), re = D(() => a ?? [], [a]), le = h.sort ?? (i ? "distance" : "relevance"), L = D(() => {
1430
- const v = lt(s, h.facets, re);
1431
- return ot(v, le, i);
1432
- }, [s, h.facets, re, le, i]);
1433
- Q(() => {
1434
- const v = L.length === 0;
1433
+ const ie = A(!1), re = L(() => s ?? [], [s]), le = h.sort ?? (i ? "distance" : "relevance"), O = L(() => {
1434
+ const v = ot(a, h.facets, re);
1435
+ return ct(v, le, i);
1436
+ }, [a, h.facets, re, le, i]);
1437
+ J(() => {
1438
+ const v = O.length === 0;
1435
1439
  v && !ie.current ? (F("serp_empty_results", {
1436
1440
  appliedFacets: h.facets ?? {}
1437
1441
  }), ie.current = !0) : v || (ie.current = !1);
1438
- }, [L.length, h.facets]);
1439
- const B = A(null), ve = A(null);
1440
- Q(
1442
+ }, [O.length, h.facets]);
1443
+ const E = A(null), ve = A(null);
1444
+ J(
1441
1445
  () => () => {
1442
- B.current && clearTimeout(B.current);
1446
+ E.current && clearTimeout(E.current);
1443
1447
  },
1444
1448
  []
1445
1449
  );
1446
1450
  const De = K((v) => {
1447
- Z(v), !X.current.has(v) && (ve.current === v && B.current || (B.current && clearTimeout(B.current), ve.current = v, B.current = setTimeout(() => {
1448
- X.current.has(v) || (X.current.add(v), F("serp_result_hovered_card", { resultId: v })), B.current = null;
1451
+ Q(v), !X.current.has(v) && (ve.current === v && E.current || (E.current && clearTimeout(E.current), ve.current = v, E.current = setTimeout(() => {
1452
+ X.current.has(v) || (X.current.add(v), F("serp_result_hovered_card", { resultId: v })), E.current = null;
1449
1453
  }, 500)));
1450
1454
  }, []), Oe = K((v) => {
1451
- Z(v);
1455
+ Q(v);
1452
1456
  const T = ae.current;
1453
1457
  if (!T) return;
1454
1458
  const w = T.querySelector(
1455
1459
  `[data-component="practice-result-card"][data-result-id="${CSS.escape(v)}"]`
1456
1460
  );
1457
1461
  w == null || w.scrollIntoView({ behavior: "smooth", block: "nearest" });
1458
- }, []), Le = K((v) => {
1462
+ }, []), Ke = K((v) => {
1459
1463
  ne.current.has(v) || (ne.current.add(v), F("serp_result_hovered_pin", { resultId: v }));
1460
- }, []), xe = A(null), Ke = K(
1464
+ }, []), xe = A(null), je = K(
1461
1465
  (v) => {
1462
- Z(v);
1463
- const T = L.find((w) => w.id === v);
1466
+ Q(v);
1467
+ const T = O.find((w) => w.id === v);
1464
1468
  if (T) {
1465
1469
  if (T.location) {
1466
1470
  const w = xe.current;
@@ -1469,29 +1473,29 @@ const Rt = Ue(function({
1469
1473
  lng: T.location.lng
1470
1474
  }), w == null || w.setZoom(16);
1471
1475
  }
1472
- J(L, v, "card", b);
1476
+ W(O, v, "card", b);
1473
1477
  }
1474
1478
  },
1475
- [L, b]
1476
- ), je = K(
1479
+ [O, b]
1480
+ ), Be = K(
1477
1481
  (v) => {
1478
- J(
1479
- L,
1482
+ W(
1483
+ O,
1480
1484
  v,
1481
1485
  "open-button",
1482
1486
  b
1483
1487
  );
1484
1488
  },
1485
- [L, b]
1486
- ), Be = !!N && s.length === 0, oe = {
1487
- results: L,
1488
- totalCount: o,
1489
+ [O, b]
1490
+ ), Ee = !!C && a.length === 0, oe = {
1491
+ results: O,
1492
+ totalCount: r,
1489
1493
  searchCentre: i,
1490
1494
  facets: re,
1491
1495
  value: { ...h, sort: le },
1492
- onChange: r,
1496
+ onChange: l,
1493
1497
  onResultSelect: b,
1494
- onLoadMore: m,
1498
+ onLoadMore: f,
1495
1499
  loadingMore: x,
1496
1500
  apiKey: d,
1497
1501
  zoom: u,
@@ -1500,56 +1504,56 @@ const Rt = Ue(function({
1500
1504
  // CMP at the page level is responsible for whether the Google Maps
1501
1505
  // loader script is present at all. `onConsentRequest` is dropped
1502
1506
  // because no placeholder renders — nothing to fire it from.
1503
- consentGranted: p ? !0 : g,
1504
- onConsentRequest: p ? void 0 : l,
1505
- onBoundsChange: c,
1506
- loadingSkeletons: Be,
1507
- emptyResultsSlot: S,
1507
+ consentGranted: m ? !0 : g,
1508
+ onConsentRequest: m ? void 0 : c,
1509
+ onBoundsChange: o,
1510
+ loadingSkeletons: Ee,
1511
+ emptyResultsSlot: P,
1508
1512
  errorSlot: y,
1509
1513
  error: M,
1510
1514
  onRetry: _,
1511
1515
  heading: I,
1512
- intro: P,
1513
- highlightedId: Te,
1516
+ intro: S,
1517
+ highlightedId: Fe,
1514
1518
  onCardHover: De,
1515
1519
  onPinClick: Oe,
1516
- onPinFirstInteract: Le,
1517
- onCardSelect: Ke,
1518
- onCardOpenClick: je,
1520
+ onPinFirstInteract: Ke,
1521
+ onCardSelect: je,
1522
+ onCardOpenClick: Be,
1519
1523
  openLabel: He,
1520
- formatNextSlot: $e,
1521
- listContainerRef: Fe,
1524
+ formatNextSlot: Le,
1525
+ listContainerRef: $e,
1522
1526
  mapHandleRef: xe
1523
- }, Ee = (() => {
1527
+ }, Ve = (() => {
1524
1528
  switch (n) {
1525
1529
  case "map-first":
1526
- return /* @__PURE__ */ t(bt, { ...oe });
1527
- case "rich-cards":
1528
1530
  return /* @__PURE__ */ t(yt, { ...oe });
1531
+ case "rich-cards":
1532
+ return /* @__PURE__ */ t(Rt, { ...oe });
1529
1533
  case "split-list-map":
1530
1534
  default:
1531
- return /* @__PURE__ */ t(gt, { ...oe });
1535
+ return /* @__PURE__ */ t(vt, { ...oe });
1532
1536
  }
1533
- })(), Ve = U ?? R("practiceResults.regionLabel");
1537
+ })(), qe = U ?? R("practiceResults.regionLabel");
1534
1538
  return /* @__PURE__ */ t(
1535
1539
  "div",
1536
1540
  {
1537
1541
  ref: ae,
1538
1542
  role: "region",
1539
- "aria-label": Ve,
1540
- id: O,
1543
+ "aria-label": qe,
1544
+ id: D,
1541
1545
  "data-component": "practice-results",
1542
- "data-component-id": O,
1546
+ "data-component-id": D,
1543
1547
  "data-variant": n,
1544
- className: ct({ variant: n, className: j }),
1545
- ...k,
1546
- children: Ee
1548
+ className: dt({ variant: n, className: j }),
1549
+ ...B,
1550
+ children: Ve
1547
1551
  }
1548
1552
  );
1549
1553
  });
1550
- Rt.displayName = "PracticeResults";
1554
+ wt.displayName = "PracticeResults";
1551
1555
  export {
1552
- Rt as P,
1553
- at as p
1556
+ wt as P,
1557
+ st as p
1554
1558
  };
1555
- //# sourceMappingURL=practice-results-VqbCUO1b.js.map
1559
+ //# sourceMappingURL=practice-results-CIkAdwRm.js.map