@alfadocs/ui-kit-debug 1.119.0 → 1.121.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/assets/map-pin@2x.png +0 -0
  2. package/assets/map-pin@2x.source.json +5 -0
  3. package/dist/_chunks/{address-autocomplete-zLygkxFc.js → address-autocomplete-D2uNpxcE.js} +2 -2
  4. package/dist/_chunks/{address-autocomplete-zLygkxFc.js.map → address-autocomplete-D2uNpxcE.js.map} +1 -1
  5. package/dist/_chunks/{address-fields-Dl1ALKhP.js → address-fields-BU65pA-V.js} +2 -2
  6. package/dist/_chunks/{address-fields-Dl1ALKhP.js.map → address-fields-BU65pA-V.js.map} +1 -1
  7. package/dist/_chunks/map-view-h6ngp2xi.js +1578 -0
  8. package/dist/_chunks/map-view-h6ngp2xi.js.map +1 -0
  9. package/dist/_chunks/maps-core-gate-DKx96CC_.js +1492 -0
  10. package/dist/_chunks/{maps-core-gate-C4dyo1ic.js.map → maps-core-gate-DKx96CC_.js.map} +1 -1
  11. package/dist/_chunks/{practice-results-b3uchdBn.js → practice-results-yCresv86.js} +759 -750
  12. package/dist/_chunks/practice-results-yCresv86.js.map +1 -0
  13. package/dist/_chunks/{registration-form-CMXefBnC.js → registration-form-CwbhtKcy.js} +180 -165
  14. package/dist/_chunks/registration-form-CwbhtKcy.js.map +1 -0
  15. package/dist/_chunks/{reserved.agent-V2Eqoabh.js → reserved.agent-DRSZ8UcL.js} +2 -2
  16. package/dist/_chunks/{reserved.agent-V2Eqoabh.js.map → reserved.agent-DRSZ8UcL.js.map} +1 -1
  17. package/dist/_chunks/{workflow-webhook-action-dgUjv9T7.js → workflow-webhook-action-Cae02r_4.js} +264 -289
  18. package/dist/_chunks/workflow-webhook-action-Cae02r_4.js.map +1 -0
  19. package/dist/agent-catalog.json +1 -9
  20. package/dist/agent-i18n/en.json +0 -1
  21. package/dist/browser-support.js +1 -1
  22. package/dist/components/address-autocomplete/index.js +1 -1
  23. package/dist/components/address-fields/index.js +1 -1
  24. package/dist/components/booking/index.js +1 -1
  25. package/dist/components/map-view/index.js +1 -1
  26. package/dist/components/map-view/map-view-pin-geometry.d.ts +39 -0
  27. package/dist/components/map-view/map-view-pin-geometry.d.ts.map +1 -0
  28. package/dist/components/map-view/map-view-pin.d.ts +15 -0
  29. package/dist/components/map-view/map-view-pin.d.ts.map +1 -0
  30. package/dist/components/map-view/map-view.d.ts.map +1 -1
  31. package/dist/components/practice-results/index.js +1 -1
  32. package/dist/components/practice-results/practice-results.d.ts +8 -0
  33. package/dist/components/practice-results/practice-results.d.ts.map +1 -1
  34. package/dist/core.css +1 -1
  35. package/dist/i18n/locales/ar.d.ts +2 -5
  36. package/dist/i18n/locales/ar.d.ts.map +1 -1
  37. package/dist/i18n/locales/ar.js +2 -5
  38. package/dist/i18n/locales/ar.js.map +1 -1
  39. package/dist/i18n/locales/de.d.ts +2 -5
  40. package/dist/i18n/locales/de.d.ts.map +1 -1
  41. package/dist/i18n/locales/de.js +2 -5
  42. package/dist/i18n/locales/de.js.map +1 -1
  43. package/dist/i18n/locales/el.d.ts +2 -5
  44. package/dist/i18n/locales/el.d.ts.map +1 -1
  45. package/dist/i18n/locales/el.js +2 -5
  46. package/dist/i18n/locales/el.js.map +1 -1
  47. package/dist/i18n/locales/en.d.ts +2 -5
  48. package/dist/i18n/locales/en.d.ts.map +1 -1
  49. package/dist/i18n/locales/en.js +2 -5
  50. package/dist/i18n/locales/en.js.map +1 -1
  51. package/dist/i18n/locales/es.d.ts +2 -5
  52. package/dist/i18n/locales/es.d.ts.map +1 -1
  53. package/dist/i18n/locales/es.js +2 -5
  54. package/dist/i18n/locales/es.js.map +1 -1
  55. package/dist/i18n/locales/fr.d.ts +2 -5
  56. package/dist/i18n/locales/fr.d.ts.map +1 -1
  57. package/dist/i18n/locales/fr.js +2 -5
  58. package/dist/i18n/locales/fr.js.map +1 -1
  59. package/dist/i18n/locales/hi.d.ts +2 -5
  60. package/dist/i18n/locales/hi.d.ts.map +1 -1
  61. package/dist/i18n/locales/hi.js +2 -5
  62. package/dist/i18n/locales/hi.js.map +1 -1
  63. package/dist/i18n/locales/it.d.ts +2 -5
  64. package/dist/i18n/locales/it.d.ts.map +1 -1
  65. package/dist/i18n/locales/it.js +2 -5
  66. package/dist/i18n/locales/it.js.map +1 -1
  67. package/dist/i18n/locales/ja.d.ts +2 -5
  68. package/dist/i18n/locales/ja.d.ts.map +1 -1
  69. package/dist/i18n/locales/ja.js +2 -5
  70. package/dist/i18n/locales/ja.js.map +1 -1
  71. package/dist/i18n/locales/nl.d.ts +2 -5
  72. package/dist/i18n/locales/nl.d.ts.map +1 -1
  73. package/dist/i18n/locales/nl.js +2 -5
  74. package/dist/i18n/locales/nl.js.map +1 -1
  75. package/dist/i18n/locales/pl.d.ts +2 -5
  76. package/dist/i18n/locales/pl.d.ts.map +1 -1
  77. package/dist/i18n/locales/pl.js +2 -5
  78. package/dist/i18n/locales/pl.js.map +1 -1
  79. package/dist/i18n/locales/pt.d.ts +2 -5
  80. package/dist/i18n/locales/pt.d.ts.map +1 -1
  81. package/dist/i18n/locales/pt.js +2 -5
  82. package/dist/i18n/locales/pt.js.map +1 -1
  83. package/dist/i18n/locales/ro.d.ts +2 -5
  84. package/dist/i18n/locales/ro.d.ts.map +1 -1
  85. package/dist/i18n/locales/ro.js +2 -5
  86. package/dist/i18n/locales/ro.js.map +1 -1
  87. package/dist/i18n/locales/ru.d.ts +2 -5
  88. package/dist/i18n/locales/ru.d.ts.map +1 -1
  89. package/dist/i18n/locales/ru.js +2 -5
  90. package/dist/i18n/locales/ru.js.map +1 -1
  91. package/dist/i18n/locales/sq.d.ts +2 -5
  92. package/dist/i18n/locales/sq.d.ts.map +1 -1
  93. package/dist/i18n/locales/sq.js +2 -5
  94. package/dist/i18n/locales/sq.js.map +1 -1
  95. package/dist/i18n/locales/sv.d.ts +2 -5
  96. package/dist/i18n/locales/sv.d.ts.map +1 -1
  97. package/dist/i18n/locales/sv.js +2 -5
  98. package/dist/i18n/locales/sv.js.map +1 -1
  99. package/dist/i18n/locales/tr.d.ts +2 -5
  100. package/dist/i18n/locales/tr.d.ts.map +1 -1
  101. package/dist/i18n/locales/tr.js +2 -5
  102. package/dist/i18n/locales/tr.js.map +1 -1
  103. package/dist/i18n/locales/zh.d.ts +2 -5
  104. package/dist/i18n/locales/zh.d.ts.map +1 -1
  105. package/dist/i18n/locales/zh.js +2 -5
  106. package/dist/i18n/locales/zh.js.map +1 -1
  107. package/dist/index.js +7 -7
  108. package/dist/locales/ar.json +2 -5
  109. package/dist/locales/de.json +2 -5
  110. package/dist/locales/el.json +2 -5
  111. package/dist/locales/en.json +2 -5
  112. package/dist/locales/es.json +2 -5
  113. package/dist/locales/fr.json +2 -5
  114. package/dist/locales/hi.json +2 -5
  115. package/dist/locales/it.json +2 -5
  116. package/dist/locales/ja.json +2 -5
  117. package/dist/locales/nl.json +2 -5
  118. package/dist/locales/pl.json +2 -5
  119. package/dist/locales/pt.json +2 -5
  120. package/dist/locales/ro.json +2 -5
  121. package/dist/locales/ru.json +2 -5
  122. package/dist/locales/sq.json +2 -5
  123. package/dist/locales/sv.json +2 -5
  124. package/dist/locales/tr.json +2 -5
  125. package/dist/locales/zh.json +2 -5
  126. package/dist/patterns/registration-form/index.js +1 -1
  127. package/dist/patterns/workflow-webhook-action/index.js +1 -1
  128. package/dist/patterns/workflow-webhook-action/workflow-webhook-action.d.ts.map +1 -1
  129. package/dist/tokens.css +1 -1
  130. package/package.json +4 -1
  131. package/dist/_chunks/key-round-DIgsnJSg.js +0 -21
  132. package/dist/_chunks/key-round-DIgsnJSg.js.map +0 -1
  133. package/dist/_chunks/map-view-CHeGd94F.js +0 -1443
  134. package/dist/_chunks/map-view-CHeGd94F.js.map +0 -1
  135. package/dist/_chunks/maps-core-gate-C4dyo1ic.js +0 -1571
  136. package/dist/_chunks/practice-results-b3uchdBn.js.map +0 -1
  137. package/dist/_chunks/registration-form-CMXefBnC.js.map +0 -1
  138. package/dist/_chunks/workflow-webhook-action-dgUjv9T7.js.map +0 -1
@@ -1,40 +1,40 @@
1
- import { jsx as n, jsxs as g, Fragment as _t } from "react/jsx-runtime";
2
- import { forwardRef as Tt, useState as G, useRef as F, useMemo as _, useImperativeHandle as Ot, useCallback as H, useEffect as J } from "react";
3
- import { c as Z } from "./index-D2ZczOXr.js";
4
- import { useTranslation as P } from "react-i18next";
5
- import { A as fe } from "./alert-C4WKViaS.js";
6
- import { A as Ae } from "./avatar-Dp5apm1d.js";
7
- import { B as pe } from "./button-DohK_Ak_.js";
8
- import { D as U } from "./dropdown-menu-Dw6sgQwJ.js";
9
- import { E as Vt } from "./empty-state-DwJ5YNzz.js";
10
- import { M as Bt, i as He } from "./map-view-CHeGd94F.js";
11
- import { R as Fe } from "./rating-CGYpg5dj.js";
12
- import { S as K } from "./sheet-uZZXaO_S.js";
13
- import { S as Dt } from "./skeleton-tTWJpvAq.js";
14
- import { S as $t } from "./spinner-CoflYlEx.js";
15
- import { B as j } from "./badge-BUk4RjTS.js";
16
- import { u as _e } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
17
- import { u as Te } from "./use-media-query-CcAx5SMM.js";
18
- import { m as zt } from "./motion-is-off-BvAuNV5O.js";
19
- import { l as We } from "./length-token-DwMnGEYT.js";
20
- import { b as Et, a as Qe } from "./format-price-CIX0YJZn.js";
21
- import { u as Kt } from "./registry-DvAUVLHh.js";
22
- import { c as jt } from "./createLucideIcon-DhHxpK9K.js";
23
- import { R as qt } from "./refresh-cw-DnI0cLFC.js";
24
- import { C as et } from "./chevron-down-DWE7GSq9.js";
25
- import { L as tt } from "./languages-CGLX6Qpe.js";
26
- import { S as nt } from "./shield-check-DCJALLVh.js";
27
- import { H as at } from "./heart--qCA4ffe.js";
28
- import { M as he } from "./map-pin-BaY37-Km.js";
29
- import { C as Ut } from "./calendar-clock-hbObjfGY.js";
30
- import { C as Gt } from "./calendar-plus-BFrIRE4r.js";
1
+ import { jsx as n, jsxs as g, Fragment as Tt } from "react/jsx-runtime";
2
+ import { forwardRef as Ot, useState as Z, useRef as T, useMemo as O, useImperativeHandle as Vt, useCallback as H, useEffect as J } from "react";
3
+ import { c as W } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as L } from "react-i18next";
5
+ import { A as pe } from "./alert-C4WKViaS.js";
6
+ import { A as He } from "./avatar-Dp5apm1d.js";
7
+ import { B as he } from "./button-DohK_Ak_.js";
8
+ import { D as G } from "./dropdown-menu-Dw6sgQwJ.js";
9
+ import { E as Bt } from "./empty-state-DwJ5YNzz.js";
10
+ import { M as Dt, i as Fe } from "./map-view-h6ngp2xi.js";
11
+ import { R as _e } from "./rating-CGYpg5dj.js";
12
+ import { S as j } from "./sheet-uZZXaO_S.js";
13
+ import { S as $t } from "./skeleton-tTWJpvAq.js";
14
+ import { S as zt } from "./spinner-CoflYlEx.js";
15
+ import { B as q } from "./badge-BUk4RjTS.js";
16
+ import { u as Te } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
17
+ import { u as Oe } from "./use-media-query-CcAx5SMM.js";
18
+ import { m as Et } from "./motion-is-off-BvAuNV5O.js";
19
+ import { l as Qe } from "./length-token-DwMnGEYT.js";
20
+ import { b as Kt, a as Je } from "./format-price-CIX0YJZn.js";
21
+ import { u as jt } from "./registry-DvAUVLHh.js";
22
+ import { c as qt } from "./createLucideIcon-DhHxpK9K.js";
23
+ import { R as Ut } from "./refresh-cw-DnI0cLFC.js";
24
+ import { C as tt } from "./chevron-down-DWE7GSq9.js";
25
+ import { L as nt } from "./languages-CGLX6Qpe.js";
26
+ import { S as at } from "./shield-check-DCJALLVh.js";
27
+ import { H as it } from "./heart--qCA4ffe.js";
28
+ import { M as ge } from "./map-pin-BaY37-Km.js";
29
+ import { C as Gt } from "./calendar-clock-hbObjfGY.js";
30
+ import { C as Zt } from "./calendar-plus-BFrIRE4r.js";
31
31
  /**
32
32
  * @license lucide-react v1.22.0 - ISC
33
33
  *
34
34
  * This source code is licensed under the ISC license.
35
35
  * See the LICENSE file in the root directory of this source tree.
36
36
  */
37
- const Zt = [
37
+ const Wt = [
38
38
  [
39
39
  "path",
40
40
  {
@@ -44,7 +44,7 @@ const Zt = [
44
44
  ],
45
45
  ["path", { d: "M15 5.764v15", key: "1pn4in" }],
46
46
  ["path", { d: "M9 3.236v15", key: "1uimfh" }]
47
- ], Wt = jt("map", Zt), Qt = {
47
+ ], Qt = qt("map", Wt), Jt = {
48
48
  id: "practice-results",
49
49
  // `scroll` backs scroll_to_result (light highlight, no selection). focus_pin
50
50
  // follows the pin-click rules: on a map variant at `lg` and up it chooses the
@@ -128,18 +128,18 @@ const Zt = [
128
128
  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", data-component="practice-result-latest-review" (the newest approved review as one truncated line under the rating, from latestReview; its text span carries the language of the review as lang; absent without latestReview), and data-component="practice-result-price" (the kit-formatted first-visit cost: firstVisitPrice supports fixed, from and range amounts plus an optional practice-written label; it takes precedence over the older firstVisitPriceCents fixed-price field. Absent when neither price is set).'
129
129
  }
130
130
  }
131
- }, Jt = 13, Je = [
131
+ }, Xt = 13, Xe = [
132
132
  "distance",
133
133
  "rating",
134
134
  "next-available",
135
135
  "price",
136
136
  "relevance"
137
137
  ];
138
- function it(e, t, i) {
138
+ function st(e, t, i) {
139
139
  const s = `languages.${e}`;
140
140
  return i.exists(s) ? t(s) : e.toUpperCase();
141
141
  }
142
- function q(e, t) {
142
+ function U(e, t) {
143
143
  if (typeof window > "u") return;
144
144
  const i = window.track;
145
145
  try {
@@ -148,27 +148,27 @@ function q(e, t) {
148
148
  }
149
149
  }
150
150
  function ae(e, t, i, s) {
151
- const r = e.findIndex((l) => l.id === t);
151
+ const r = e.findIndex((o) => o.id === t);
152
152
  if (r < 0) return;
153
153
  const a = e[r];
154
- a && (q("serp_result_clicked", { resultId: t, source: i, position: r }), s(a, i));
154
+ a && (U("serp_result_clicked", { resultId: t, source: i, position: r }), s(a, i));
155
155
  }
156
- function Xt(e, t) {
157
- const s = (t.lat - e.lat) * Math.PI / 180, r = (t.lng - e.lng) * Math.PI / 180, a = e.lat * Math.PI / 180, l = t.lat * Math.PI / 180, m = Math.sin(s / 2), c = Math.sin(r / 2), o = m * m + Math.cos(a) * Math.cos(l) * c * c;
158
- return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(o)));
156
+ function Yt(e, t) {
157
+ const s = (t.lat - e.lat) * Math.PI / 180, r = (t.lng - e.lng) * Math.PI / 180, a = e.lat * Math.PI / 180, o = t.lat * Math.PI / 180, m = Math.sin(s / 2), d = Math.sin(r / 2), l = m * m + Math.cos(a) * Math.cos(o) * d * d;
158
+ return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(l)));
159
159
  }
160
- function Yt(e, t, i) {
160
+ function en(e, t, i) {
161
161
  var r;
162
162
  const s = [];
163
163
  for (const a of e) {
164
- const l = a.field ?? a.key, m = (((r = i == null ? void 0 : i[a.key]) == null ? void 0 : r.length) ?? 0) > 0, c = a.type === "boolean" || a.type !== "options" && a.options.length === 0 && (m || t.some(
165
- (o) => typeof o[l] == "boolean"
164
+ const o = a.field ?? a.key, m = (((r = i == null ? void 0 : i[a.key]) == null ? void 0 : r.length) ?? 0) > 0, d = a.type === "boolean" || a.type !== "options" && a.options.length === 0 && (m || t.some(
165
+ (l) => typeof l[o] == "boolean"
166
166
  ));
167
- !c && a.options.length === 0 || s.push({ ...a, boolean: c, booleanField: l });
167
+ !d && a.options.length === 0 || s.push({ ...a, boolean: d, booleanField: o });
168
168
  }
169
169
  return s;
170
170
  }
171
- function en(e, t, i) {
171
+ function tn(e, t, i) {
172
172
  return !t || Object.keys(t).length === 0 ? e : e.filter((s) => {
173
173
  for (const r of i) {
174
174
  const a = t[r.key];
@@ -177,47 +177,47 @@ function en(e, t, i) {
177
177
  if (s[r.booleanField] !== !0) return !1;
178
178
  continue;
179
179
  }
180
- const l = r.key === "insurance" ? s.insurances : r.key === "language" ? s.languages : s[r.key];
181
- if (!Array.isArray(l) || !(r.multi ? a.some((c) => l.includes(c)) : l.includes(a[0]))) return !1;
180
+ const o = r.key === "insurance" ? s.insurances : r.key === "language" ? s.languages : s[r.key];
181
+ if (!Array.isArray(o) || !(r.multi ? a.some((d) => o.includes(d)) : o.includes(a[0]))) return !1;
182
182
  }
183
183
  return !0;
184
184
  });
185
185
  }
186
- function tn(e) {
186
+ function nn(e) {
187
187
  const t = e.firstVisitPrice && Number.isFinite(e.firstVisitPrice.minCents) ? e.firstVisitPrice.minCents : e.firstVisitPriceCents;
188
188
  return t != null && Number.isFinite(t) && t >= 0 ? t : 1 / 0;
189
189
  }
190
- function nn(e) {
190
+ function an(e) {
191
191
  return e.firstVisitPrice && Number.isFinite(e.firstVisitPrice.minCents) ? e.firstVisitPrice.kind === "fixed" : !0;
192
192
  }
193
- function Xe(e, t) {
193
+ function Ye(e, t) {
194
194
  return e == null && t == null ? 0 : e == null ? 1 : t == null ? -1 : e - t;
195
195
  }
196
- function an(e, t, i) {
196
+ function sn(e, t, i) {
197
197
  const s = e.map((a) => {
198
- const l = a.location ? a.location.distanceKm ?? (i ? Xt(i, a.location) : void 0) : void 0;
198
+ const o = a.location ? a.location.distanceKm ?? (i ? Yt(i, a.location) : void 0) : void 0;
199
199
  return {
200
200
  result: a,
201
- distanceKm: l,
202
- price: t === "price" ? tn(a) : void 0,
203
- fixed: t === "price" ? nn(a) : !1
201
+ distanceKm: o,
202
+ price: t === "price" ? nn(a) : void 0,
203
+ fixed: t === "price" ? an(a) : !1
204
204
  };
205
- }), r = (a, l) => {
206
- var m, c, o, d;
205
+ }), r = (a, o) => {
206
+ var m, d, l, c;
207
207
  switch (t) {
208
208
  case "distance":
209
- return Xe(a.distanceKm, l.distanceKm);
209
+ return Ye(a.distanceKm, o.distanceKm);
210
210
  case "price": {
211
- const p = a.price ?? 1 / 0, f = l.price ?? 1 / 0;
212
- return p !== f ? p - f : p !== 1 / 0 && a.fixed !== l.fixed ? a.fixed ? -1 : 1 : Xe(a.distanceKm, l.distanceKm);
211
+ const h = a.price ?? 1 / 0, p = o.price ?? 1 / 0;
212
+ return h !== p ? h - p : h !== 1 / 0 && a.fixed !== o.fixed ? a.fixed ? -1 : 1 : Ye(a.distanceKm, o.distanceKm);
213
213
  }
214
214
  case "rating": {
215
- const p = ((m = a.result.rating) == null ? void 0 : m.value) ?? -1;
216
- return (((c = l.result.rating) == null ? void 0 : c.value) ?? -1) - p;
215
+ const h = ((m = a.result.rating) == null ? void 0 : m.value) ?? -1;
216
+ return (((d = o.result.rating) == null ? void 0 : d.value) ?? -1) - h;
217
217
  }
218
218
  case "next-available": {
219
- const p = ((o = a.result.nextAvailableSlot) == null ? void 0 : o.dateTime) ?? "", f = ((d = l.result.nextAvailableSlot) == null ? void 0 : d.dateTime) ?? "";
220
- return !p && !f ? 0 : p ? f ? p.localeCompare(f) : -1 : 1;
219
+ const h = ((l = a.result.nextAvailableSlot) == null ? void 0 : l.dateTime) ?? "", p = ((c = o.result.nextAvailableSlot) == null ? void 0 : c.dateTime) ?? "";
220
+ return !h && !p ? 0 : h ? p ? h.localeCompare(p) : -1 : 1;
221
221
  }
222
222
  case "relevance":
223
223
  default:
@@ -225,24 +225,24 @@ function an(e, t, i) {
225
225
  }
226
226
  };
227
227
  return [...s].sort(r).map(
228
- ({ result: a, distanceKm: l }) => l != null && a.location ? {
228
+ ({ result: a, distanceKm: o }) => o != null && a.location ? {
229
229
  ...a,
230
- location: { ...a.location, distanceKm: l }
230
+ location: { ...a.location, distanceKm: o }
231
231
  } : a
232
232
  );
233
233
  }
234
- function sn(e) {
234
+ function rn(e) {
235
235
  let t = -1 / 0, i = 1 / 0, s = -1 / 0, r = 1 / 0, a = !1;
236
- for (const l of e) {
237
- if (!l.location) continue;
236
+ for (const o of e) {
237
+ if (!o.location) continue;
238
238
  a = !0;
239
- const { lat: m, lng: c } = l.location;
240
- m > t && (t = m), m < i && (i = m), c > s && (s = c), c < r && (r = c);
239
+ const { lat: m, lng: d } = o.location;
240
+ m > t && (t = m), m < i && (i = m), d > s && (s = d), d < r && (r = d);
241
241
  }
242
242
  if (a)
243
243
  return { north: t, south: i, east: s, west: r };
244
244
  }
245
- const rn = Z(
245
+ const on = W(
246
246
  "ds:flex ds:w-full ds:flex-col ds:text-[var(--foreground)] ds:gap-[var(--spacing-md)]",
247
247
  {
248
248
  variants: {
@@ -255,21 +255,21 @@ const rn = Z(
255
255
  defaultVariants: { variant: "split-list-map" }
256
256
  }
257
257
  );
258
- function st({
258
+ function rt({
259
259
  heading: e,
260
260
  headingLevel: t,
261
261
  intro: i,
262
262
  totalCount: s,
263
263
  searchCentreLabel: r
264
264
  }) {
265
- const { t: a } = P("ui"), l = `h${t}`;
265
+ const { t: a } = L("ui"), o = `h${t}`;
266
266
  if (!e && !i && s == null) return null;
267
267
  const m = s != null ? r ? a("practiceResults.results.heading", {
268
268
  count: s,
269
269
  place: r
270
270
  }) : a("practiceResults.results.summary", { count: s }) : void 0;
271
271
  return /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
272
- e ? /* @__PURE__ */ n(l, { className: "type-title-section ds:m-0 ds:text-[var(--foreground)]", children: e }) : null,
272
+ e ? /* @__PURE__ */ n(o, { className: "type-title-section ds:m-0 ds:text-[var(--foreground)]", children: e }) : null,
273
273
  i ? /* @__PURE__ */ n("p", { className: "type-body ds:m-0 ds:text-[var(--muted-foreground)]", children: i }) : null,
274
274
  m ? /* @__PURE__ */ n(
275
275
  "p",
@@ -281,7 +281,7 @@ function st({
281
281
  ) : null
282
282
  ] });
283
283
  }
284
- const ge = Z(
284
+ const ve = W(
285
285
  [
286
286
  "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
287
287
  "ds:min-h-[var(--min-target-size)]",
@@ -303,7 +303,7 @@ const ge = Z(
303
303
  },
304
304
  defaultVariants: { state: "idle" }
305
305
  }
306
- ), on = Z(
306
+ ), ln = W(
307
307
  "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
308
308
  {
309
309
  variants: {
@@ -322,7 +322,7 @@ const ge = Z(
322
322
  },
323
323
  defaultVariants: { placement: "inline" }
324
324
  }
325
- ), ln = Z(
325
+ ), cn = W(
326
326
  [
327
327
  "ds:ms-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
328
328
  "ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]",
@@ -333,26 +333,26 @@ const ge = Z(
333
333
  "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
334
334
  ].join(" ")
335
335
  );
336
- function rt({
336
+ function ot({
337
337
  facets: e,
338
338
  value: t,
339
339
  onChange: i,
340
340
  floating: s
341
341
  }) {
342
- const { t: r } = P("ui"), a = _(() => t ?? {}, [t]), l = _(
343
- () => Object.values(a).some((d) => d && d.length > 0),
342
+ const { t: r } = L("ui"), a = O(() => t ?? {}, [t]), o = O(
343
+ () => Object.values(a).some((c) => c && c.length > 0),
344
344
  [a]
345
- ), m = (d, p) => {
346
- const f = { ...a };
347
- p.length === 0 ? delete f[d] : f[d] = p, i(f), q("serp_filter_changed", { key: d, values: p });
348
- }, c = (d) => {
349
- var f;
350
- const p = (((f = a[d]) == null ? void 0 : f.length) ?? 0) > 0;
351
- m(d, p ? [] : ["true"]);
352
- }, o = (d, p) => {
353
- const f = a[d.key] ?? [], x = f.includes(p);
345
+ ), m = (c, h) => {
346
+ const p = { ...a };
347
+ h.length === 0 ? delete p[c] : p[c] = h, i(p), U("serp_filter_changed", { key: c, values: h });
348
+ }, d = (c) => {
349
+ var p;
350
+ const h = (((p = a[c]) == null ? void 0 : p.length) ?? 0) > 0;
351
+ m(c, h ? [] : ["true"]);
352
+ }, l = (c, h) => {
353
+ const p = a[c.key] ?? [], x = p.includes(h);
354
354
  let b;
355
- d.multi ? b = x ? f.filter((y) => y !== p) : [...f, p] : b = x ? [] : [p], m(d.key, b);
355
+ c.multi ? b = x ? p.filter((w) => w !== h) : [...p, h] : b = x ? [] : [h], m(c.key, b);
356
356
  };
357
357
  return e.length === 0 ? null : /* @__PURE__ */ g(
358
358
  "div",
@@ -360,44 +360,44 @@ function rt({
360
360
  "data-component": "practice-results-filters",
361
361
  role: "group",
362
362
  "aria-label": r("practiceResults.filters.label"),
363
- className: on({
363
+ className: ln({
364
364
  placement: s ? "floating" : "inline"
365
365
  }),
366
366
  children: [
367
- e.map((d) => {
368
- const p = d.boolean, f = a[d.key] ?? [], x = f.length > 0;
369
- if (p)
367
+ e.map((c) => {
368
+ const h = c.boolean, p = a[c.key] ?? [], x = p.length > 0;
369
+ if (h)
370
370
  return /* @__PURE__ */ n(
371
371
  "button",
372
372
  {
373
373
  type: "button",
374
374
  "aria-pressed": x,
375
- "aria-label": d.label,
376
- onClick: () => c(d.key),
377
- className: ge({
375
+ "aria-label": c.label,
376
+ onClick: () => d(c.key),
377
+ className: ve({
378
378
  state: x ? "active" : "idle"
379
379
  }),
380
- children: /* @__PURE__ */ n("span", { children: d.label })
380
+ children: /* @__PURE__ */ n("span", { children: c.label })
381
381
  },
382
- d.key
382
+ c.key
383
383
  );
384
- const b = x ? ` (${f.length})` : "";
385
- return /* @__PURE__ */ g(U.Root, { children: [
386
- /* @__PURE__ */ n(U.Trigger, { asChild: !0, children: /* @__PURE__ */ g(
384
+ const b = x ? ` (${p.length})` : "";
385
+ return /* @__PURE__ */ g(G.Root, { children: [
386
+ /* @__PURE__ */ n(G.Trigger, { asChild: !0, children: /* @__PURE__ */ g(
387
387
  "button",
388
388
  {
389
389
  type: "button",
390
- "aria-label": `${d.label}${b}`,
391
- className: ge({
390
+ "aria-label": `${c.label}${b}`,
391
+ className: ve({
392
392
  state: x ? "active" : "idle"
393
393
  }),
394
394
  children: [
395
395
  /* @__PURE__ */ g("span", { children: [
396
- d.label,
396
+ c.label,
397
397
  b
398
398
  ] }),
399
399
  /* @__PURE__ */ n(
400
- et,
400
+ tt,
401
401
  {
402
402
  "aria-hidden": "true",
403
403
  className: "ds:size-3.5 ds:shrink-0"
@@ -406,27 +406,27 @@ function rt({
406
406
  ]
407
407
  }
408
408
  ) }),
409
- /* @__PURE__ */ n(U.Content, { sideOffset: 8, align: "start", children: d.options.map((y) => /* @__PURE__ */ n(
410
- U.CheckboxItem,
409
+ /* @__PURE__ */ n(G.Content, { sideOffset: 8, align: "start", children: c.options.map((w) => /* @__PURE__ */ n(
410
+ G.CheckboxItem,
411
411
  {
412
- checked: f.includes(y.value),
413
- onSelect: (N) => {
414
- d.multi && N.preventDefault(), o(d, y.value);
412
+ checked: p.includes(w.value),
413
+ onSelect: (S) => {
414
+ c.multi && S.preventDefault(), l(c, w.value);
415
415
  },
416
- children: y.label
416
+ children: w.label
417
417
  },
418
- y.value
418
+ w.value
419
419
  )) })
420
- ] }, d.key);
420
+ ] }, c.key);
421
421
  }),
422
- l ? /* @__PURE__ */ n(
422
+ o ? /* @__PURE__ */ n(
423
423
  "button",
424
424
  {
425
425
  type: "button",
426
426
  onClick: () => {
427
- i({}), q("serp_filter_changed", { key: "*", values: [] });
427
+ i({}), U("serp_filter_changed", { key: "*", values: [] });
428
428
  },
429
- className: ln(),
429
+ className: cn(),
430
430
  children: r("practiceResults.filters.clear")
431
431
  }
432
432
  ) : null
@@ -434,8 +434,8 @@ function rt({
434
434
  }
435
435
  );
436
436
  }
437
- function Pe({ value: e, options: t, onChange: i }) {
438
- const { t: s } = P("ui"), r = (a) => {
437
+ function Me({ value: e, options: t, onChange: i }) {
438
+ const { t: s } = L("ui"), r = (a) => {
439
439
  switch (a) {
440
440
  case "distance":
441
441
  return s("practiceResults.sort.distance");
@@ -450,47 +450,47 @@ function Pe({ value: e, options: t, onChange: i }) {
450
450
  return s("practiceResults.sort.relevance");
451
451
  }
452
452
  };
453
- return /* @__PURE__ */ g(U.Root, { children: [
454
- /* @__PURE__ */ n(U.Trigger, { asChild: !0, children: /* @__PURE__ */ g(
453
+ return /* @__PURE__ */ g(G.Root, { children: [
454
+ /* @__PURE__ */ n(G.Trigger, { asChild: !0, children: /* @__PURE__ */ g(
455
455
  "button",
456
456
  {
457
457
  type: "button",
458
458
  "aria-label": `${s("practiceResults.sort.label")}: ${r(e)}`,
459
- className: ge({ state: "idle" }),
459
+ className: ve({ state: "idle" }),
460
460
  children: [
461
461
  /* @__PURE__ */ g("span", { children: [
462
462
  s("practiceResults.sort.label"),
463
463
  ": ",
464
464
  r(e)
465
465
  ] }),
466
- /* @__PURE__ */ n(et, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" })
466
+ /* @__PURE__ */ n(tt, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" })
467
467
  ]
468
468
  }
469
469
  ) }),
470
- /* @__PURE__ */ n(U.Content, { sideOffset: 8, align: "end", children: /* @__PURE__ */ n(
471
- U.RadioGroup,
470
+ /* @__PURE__ */ n(G.Content, { sideOffset: 8, align: "end", children: /* @__PURE__ */ n(
471
+ G.RadioGroup,
472
472
  {
473
473
  value: e,
474
474
  onValueChange: (a) => {
475
- const l = a;
476
- l !== e && (i(l), q("serp_sort_changed", { sort: l }));
475
+ const o = a;
476
+ o !== e && (i(o), U("serp_sort_changed", { sort: o }));
477
477
  },
478
- children: t.map((a) => /* @__PURE__ */ n(U.RadioItem, { value: a, children: r(a) }, a))
478
+ children: t.map((a) => /* @__PURE__ */ n(G.RadioItem, { value: a, children: r(a) }, a))
479
479
  }
480
480
  ) })
481
481
  ] });
482
482
  }
483
- function cn({ distanceKm: e }) {
484
- const { t, i18n: i } = P("ui"), s = _(() => {
483
+ function dn({ distanceKm: e }) {
484
+ const { t, i18n: i } = L("ui"), s = O(() => {
485
485
  if (e < 1) return t("practiceResults.distance.below");
486
486
  const r = new Intl.NumberFormat(i.language, {
487
487
  maximumFractionDigits: 1
488
488
  }).format(e);
489
489
  return t("practiceResults.distance.km", { distance: r });
490
490
  }, [e, t, i.language]);
491
- return /* @__PURE__ */ n(j, { variant: "neutral", leading: /* @__PURE__ */ n(he, { "aria-hidden": "true" }), children: s });
491
+ return /* @__PURE__ */ n(q, { variant: "neutral", leading: /* @__PURE__ */ n(ge, { "aria-hidden": "true" }), children: s });
492
492
  }
493
- const Me = Z(
493
+ const Ie = W(
494
494
  [
495
495
  "ds:w-[12rem] ds:h-[8rem] ds:shrink-0",
496
496
  "ds:rounded-[var(--radius-md)] ds:overflow-hidden"
@@ -509,12 +509,12 @@ const Me = Z(
509
509
  defaultVariants: { state: "placeholder" }
510
510
  }
511
511
  );
512
- function dn() {
513
- if (typeof document > "u") return "4945a3";
512
+ function un() {
513
+ if (typeof document > "u") return "6761e5";
514
514
  const e = getComputedStyle(document.documentElement).getPropertyValue("--map-marker-color").trim(), t = /^#?([0-9a-fA-F]{6})$/.exec(e);
515
- return t ? t[1] : "4945a3";
515
+ return t ? t[1] : "6761e5";
516
516
  }
517
- function Ye({
517
+ function et({
518
518
  address: e,
519
519
  addressLang: t
520
520
  }) {
@@ -522,9 +522,9 @@ function Ye({
522
522
  "div",
523
523
  {
524
524
  "aria-hidden": e ? void 0 : "true",
525
- className: Me({ state: "placeholder" }),
525
+ className: Ie({ state: "placeholder" }),
526
526
  children: [
527
- /* @__PURE__ */ n(he, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
527
+ /* @__PURE__ */ n(ge, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
528
528
  e ? /* @__PURE__ */ n(
529
529
  "span",
530
530
  {
@@ -538,7 +538,7 @@ function Ye({
538
538
  }
539
539
  );
540
540
  }
541
- function un({
541
+ function mn({
542
542
  image: e,
543
543
  apiKey: t,
544
544
  center: i,
@@ -546,7 +546,7 @@ function un({
546
546
  address: r,
547
547
  addressLang: a
548
548
  }) {
549
- const { t: l } = P("ui"), [m, c] = G(null);
549
+ const { t: o } = L("ui"), [m, d] = Z(null);
550
550
  if (e && m !== e.src)
551
551
  return /* @__PURE__ */ n(
552
552
  "img",
@@ -558,29 +558,29 @@ function un({
558
558
  decoding: "async",
559
559
  width: 240,
560
560
  height: 160,
561
- onError: () => c(e.src),
562
- className: Me({ state: "image" })
561
+ onError: () => d(e.src),
562
+ className: Ie({ state: "image" })
563
563
  }
564
564
  );
565
565
  if (e)
566
- return /* @__PURE__ */ n(Ye, { address: r, addressLang: a });
566
+ return /* @__PURE__ */ n(et, { address: r, addressLang: a });
567
567
  if (!t)
568
- return /* @__PURE__ */ n(Ye, { address: r, addressLang: a });
569
- const o = dn(), d = `https://maps.googleapis.com/maps/api/staticmap?center=${i.lat},${i.lng}&zoom=${s}&size=240x160&scale=2&markers=color:0x${o}%7C${i.lat},${i.lng}&key=${encodeURIComponent(t)}`;
568
+ return /* @__PURE__ */ n(et, { address: r, addressLang: a });
569
+ const l = un(), c = `https://maps.googleapis.com/maps/api/staticmap?center=${i.lat},${i.lng}&zoom=${s}&size=240x160&scale=2&markers=color:0x${l}%7C${i.lat},${i.lng}&key=${encodeURIComponent(t)}`;
570
570
  return /* @__PURE__ */ n(
571
571
  "img",
572
572
  {
573
- src: d,
574
- alt: l("practiceResults.thumbnail.alt"),
573
+ src: c,
574
+ alt: o("practiceResults.thumbnail.alt"),
575
575
  loading: "lazy",
576
576
  decoding: "async",
577
577
  width: 240,
578
578
  height: 160,
579
- className: Me({ state: "image" })
579
+ className: Ie({ state: "image" })
580
580
  }
581
581
  );
582
582
  }
583
- function mn({ tagline: e, lang: t }) {
583
+ function fn({ tagline: e, lang: t }) {
584
584
  return e ? /* @__PURE__ */ n(
585
585
  "span",
586
586
  {
@@ -592,7 +592,7 @@ function mn({ tagline: e, lang: t }) {
592
592
  }
593
593
  ) : null;
594
594
  }
595
- function fn(e) {
595
+ function pn(e) {
596
596
  if (typeof e != "string") return;
597
597
  const t = e.trim().replace(/_/g, "-");
598
598
  if (t)
@@ -602,10 +602,10 @@ function fn(e) {
602
602
  return;
603
603
  }
604
604
  }
605
- function ot({
605
+ function lt({
606
606
  review: e
607
607
  }) {
608
- const { t } = P("ui"), i = typeof (e == null ? void 0 : e.text) == "string" ? e.text.trim() : "";
608
+ const { t } = L("ui"), i = typeof (e == null ? void 0 : e.text) == "string" ? e.text.trim() : "";
609
609
  return !e || !i ? null : /* @__PURE__ */ g(
610
610
  "p",
611
611
  {
@@ -617,7 +617,7 @@ function ot({
617
617
  /* @__PURE__ */ n(
618
618
  "span",
619
619
  {
620
- lang: fn(e.lang),
620
+ lang: pn(e.lang),
621
621
  dir: "auto",
622
622
  className: "ds:min-w-0 ds:truncate",
623
623
  children: i
@@ -627,7 +627,7 @@ function ot({
627
627
  }
628
628
  );
629
629
  }
630
- const pn = Z(
630
+ const hn = W(
631
631
  "type-body-sm ds:m-0 ds:text-[var(--muted-foreground)] ds:whitespace-pre-line ds:break-words",
632
632
  {
633
633
  variants: {
@@ -639,7 +639,7 @@ const pn = Z(
639
639
  defaultVariants: { density: "compact" }
640
640
  }
641
641
  );
642
- function lt({
642
+ function ct({
643
643
  description: e,
644
644
  density: t,
645
645
  lang: i
@@ -650,26 +650,26 @@ function lt({
650
650
  "data-component": "practice-result-description",
651
651
  lang: i,
652
652
  dir: "auto",
653
- className: pn({ density: t }),
653
+ className: hn({ density: t }),
654
654
  children: e
655
655
  }
656
656
  ) : null;
657
657
  }
658
- function hn(e, t, i, s) {
658
+ function gn(e, t, i, s) {
659
659
  if (e.kind === "fixed")
660
- return Et(
660
+ return Kt(
661
661
  e.minCents,
662
662
  t,
663
663
  i,
664
664
  s("common.freeOfCharge")
665
665
  );
666
- const r = Qe(e.minCents, t, i);
666
+ const r = Je(e.minCents, t, i);
667
667
  return e.kind === "range" && e.maxCents != null && Number.isFinite(e.maxCents) && e.maxCents > e.minCents ? s("practiceResults.card.priceRange", {
668
668
  min: r,
669
- max: Qe(e.maxCents, t, i)
669
+ max: Je(e.maxCents, t, i)
670
670
  }) : s("practiceResults.card.priceFrom", { price: r });
671
671
  }
672
- const gn = Z(
672
+ const vn = W(
673
673
  "ds:min-w-0 ds:max-w-full ds:[overflow-wrap:anywhere]",
674
674
  {
675
675
  variants: {
@@ -677,23 +677,23 @@ const gn = Z(
677
677
  }
678
678
  }
679
679
  );
680
- function vn({
680
+ function bn({
681
681
  price: e,
682
682
  cents: t,
683
683
  currencyCode: i = "EUR"
684
684
  }) {
685
- var f;
686
- const { t: s, i18n: r } = P("ui"), a = e && Number.isFinite(e.minCents) ? e : void 0, l = (a == null ? void 0 : a.kind) ?? "fixed", m = (a == null ? void 0 : a.minCents) ?? t, c = a == null ? void 0 : a.maxCents, o = _(
687
- () => m == null ? void 0 : hn(
688
- { kind: l, minCents: m, maxCents: c },
685
+ var p;
686
+ const { t: s, i18n: r } = L("ui"), a = e && Number.isFinite(e.minCents) ? e : void 0, o = (a == null ? void 0 : a.kind) ?? "fixed", m = (a == null ? void 0 : a.minCents) ?? t, d = a == null ? void 0 : a.maxCents, l = O(
687
+ () => m == null ? void 0 : gn(
688
+ { kind: o, minCents: m, maxCents: d },
689
689
  i,
690
690
  r.language ?? "en",
691
691
  s
692
692
  ),
693
- [l, m, c, i, r.language, s]
693
+ [o, m, d, i, r.language, s]
694
694
  );
695
- if (o === void 0) return null;
696
- const d = (f = a == null ? void 0 : a.label) == null ? void 0 : f.trim().replace(/:$/, "").trim(), p = d || s("practiceResults.card.firstVisitPrice");
695
+ if (l === void 0) return null;
696
+ const c = (p = a == null ? void 0 : a.label) == null ? void 0 : p.trim().replace(/:$/, "").trim(), h = c || s("practiceResults.card.firstVisitPrice");
697
697
  return /* @__PURE__ */ g(
698
698
  "span",
699
699
  {
@@ -704,33 +704,33 @@ function vn({
704
704
  "span",
705
705
  {
706
706
  dir: "auto",
707
- title: p,
708
- className: gn({
709
- practiceWritten: !!d
707
+ title: h,
708
+ className: vn({
709
+ practiceWritten: !!c
710
710
  }),
711
- children: p
711
+ children: h
712
712
  }
713
713
  ),
714
714
  /* @__PURE__ */ n("span", { className: "ds:sr-only", children: ": " }),
715
715
  /* @__PURE__ */ n(
716
- j,
716
+ q,
717
717
  {
718
718
  variant: "accentSoft",
719
719
  size: "lg",
720
720
  dir: "auto",
721
721
  className: "ds:h-auto ds:min-h-6 ds:min-w-0 ds:max-w-full ds:whitespace-normal ds:[overflow-wrap:anywhere]",
722
- children: o
722
+ children: l
723
723
  }
724
724
  )
725
725
  ]
726
726
  }
727
727
  );
728
728
  }
729
- function Oe({ time: e }) {
730
- const { t } = P("ui");
729
+ function Ve({ time: e }) {
730
+ const { t } = L("ui");
731
731
  return /* @__PURE__ */ g("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
732
732
  /* @__PURE__ */ n(
733
- Ut,
733
+ Gt,
734
734
  {
735
735
  "aria-hidden": "true",
736
736
  className: "ds:size-4 ds:text-[var(--primary)]"
@@ -739,7 +739,7 @@ function Oe({ time: e }) {
739
739
  t("practiceResults.nextSlot.summary", { time: e })
740
740
  ] });
741
741
  }
742
- function ct({
742
+ function dt({
743
743
  result: e,
744
744
  openLabel: t,
745
745
  bookLabel: i,
@@ -747,29 +747,29 @@ function ct({
747
747
  onOpenClick: r,
748
748
  onBookClick: a
749
749
  }) {
750
- const { t: l } = P("ui"), m = e.nextAvailableSlot, c = (m == null ? void 0 : m.bookingHref) ?? e.bookingHref ?? e.href, o = m && s ? l("practiceResults.nextSlot.cta", { time: s }) : i;
750
+ const { t: o } = L("ui"), m = e.nextAvailableSlot, d = (m == null ? void 0 : m.bookingHref) ?? e.bookingHref ?? e.href, l = m && s ? o("practiceResults.nextSlot.cta", { time: s }) : i;
751
751
  return /* @__PURE__ */ g("div", { className: "ds:mt-[var(--spacing-xs)] ds:flex ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)]", children: [
752
- t !== void 0 ? /* @__PURE__ */ n(pe, { intent: "secondary", size: "sm", asChild: !0, onClick: r, children: /* @__PURE__ */ g("a", { href: e.href, "data-component": "practice-result-open-cta", children: [
752
+ t !== void 0 ? /* @__PURE__ */ n(he, { intent: "secondary", size: "sm", asChild: !0, onClick: r, children: /* @__PURE__ */ g("a", { href: e.href, "data-component": "practice-result-open-cta", children: [
753
753
  t,
754
754
  " ",
755
755
  /* @__PURE__ */ n("span", { className: "ds:sr-only", children: e.name })
756
756
  ] }) }) : null,
757
757
  /* @__PURE__ */ n(
758
- pe,
758
+ he,
759
759
  {
760
760
  intent: "primary",
761
761
  size: "sm",
762
762
  asChild: !0,
763
- startIcon: /* @__PURE__ */ n(Gt, { "aria-hidden": "true" }),
763
+ startIcon: /* @__PURE__ */ n(Zt, { "aria-hidden": "true" }),
764
764
  onClick: a,
765
765
  children: /* @__PURE__ */ g(
766
766
  "a",
767
767
  {
768
- href: c,
768
+ href: d,
769
769
  "data-component": "practice-result-book-cta",
770
770
  "data-slot-aware": m ? "true" : void 0,
771
771
  children: [
772
- o,
772
+ l,
773
773
  " ",
774
774
  /* @__PURE__ */ n("span", { className: "ds:sr-only", children: e.name })
775
775
  ]
@@ -779,7 +779,7 @@ function ct({
779
779
  )
780
780
  ] });
781
781
  }
782
- const dt = Z(
782
+ const ut = W(
783
783
  [
784
784
  "ds:@container/result-card ds:relative ds:flex ds:w-full ds:cursor-pointer",
785
785
  "ds:rounded-[var(--radius-lg)]",
@@ -817,18 +817,18 @@ const dt = Z(
817
817
  },
818
818
  defaultVariants: { density: "compact" }
819
819
  }
820
- ), bn = Z([
820
+ ), xn = W([
821
821
  "ds:text-[var(--foreground)] ds:no-underline ds:hover:underline",
822
822
  "ds:rounded-[var(--radius-xs)]",
823
823
  "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
824
824
  "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
825
825
  "ds:forced-colors:focus-visible:outline-[CanvasText]"
826
826
  ]);
827
- function xn({
827
+ function wn({
828
828
  result: e,
829
829
  headingLevel: t
830
830
  }) {
831
- const i = `h${De(t)}`;
831
+ const i = `h${$e(t)}`;
832
832
  return /* @__PURE__ */ n(
833
833
  i,
834
834
  {
@@ -841,20 +841,20 @@ function xn({
841
841
  href: e.href,
842
842
  dir: "auto",
843
843
  "data-component": "practice-result-name-link",
844
- className: bn(),
844
+ className: xn(),
845
845
  children: e.name
846
846
  }
847
847
  )
848
848
  }
849
849
  );
850
850
  }
851
- function ut({
851
+ function mt({
852
852
  result: e,
853
853
  headingLevel: t,
854
854
  selected: i = !1
855
855
  }) {
856
856
  var r, a;
857
- const { t: s } = P("ui");
857
+ const { t: s } = L("ui");
858
858
  return /* @__PURE__ */ n(
859
859
  "div",
860
860
  {
@@ -863,27 +863,27 @@ function ut({
863
863
  children: /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)] ds:sm:@min-[280px]/result-heading:flex-row ds:sm:@min-[280px]/result-heading:gap-[var(--spacing-md)]", children: [
864
864
  /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:w-full ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
865
865
  /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
866
- /* @__PURE__ */ n(xn, { result: e, headingLevel: t }),
867
- ((r = e.location) == null ? void 0 : r.distanceKm) != null ? /* @__PURE__ */ n(cn, { distanceKm: e.location.distanceKm }) : null,
866
+ /* @__PURE__ */ n(wn, { result: e, headingLevel: t }),
867
+ ((r = e.location) == null ? void 0 : r.distanceKm) != null ? /* @__PURE__ */ n(dn, { distanceKm: e.location.distanceKm }) : null,
868
868
  i ? /* @__PURE__ */ n(
869
- j,
869
+ q,
870
870
  {
871
871
  variant: "brand",
872
872
  "data-component": "practice-result-selected-tag",
873
- leading: /* @__PURE__ */ n(he, { "aria-hidden": "true" }),
873
+ leading: /* @__PURE__ */ n(ge, { "aria-hidden": "true" }),
874
874
  children: s("practiceResults.selectedOnMap")
875
875
  }
876
876
  ) : null
877
877
  ] }),
878
878
  e.subtitle ? /* @__PURE__ */ n("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
879
- /* @__PURE__ */ n(mn, { tagline: e.tagline, lang: e.contentLang }),
879
+ /* @__PURE__ */ n(fn, { tagline: e.tagline, lang: e.contentLang }),
880
880
  (a = e.location) != null && a.address ? /* @__PURE__ */ g(
881
881
  "span",
882
882
  {
883
883
  "data-component": "practice-result-address",
884
884
  className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]",
885
885
  children: [
886
- /* @__PURE__ */ n(he, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" }),
886
+ /* @__PURE__ */ n(ge, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" }),
887
887
  /* @__PURE__ */ n(
888
888
  "span",
889
889
  {
@@ -898,7 +898,7 @@ function ut({
898
898
  ) : null
899
899
  ] }),
900
900
  /* @__PURE__ */ n(
901
- vn,
901
+ bn,
902
902
  {
903
903
  price: e.firstVisitPrice,
904
904
  cents: e.firstVisitPriceCents,
@@ -909,48 +909,48 @@ function ut({
909
909
  }
910
910
  );
911
911
  }
912
- function mt(e) {
912
+ function ft(e) {
913
913
  const t = e.target.closest(
914
914
  'a, button, [role="button"], input, select, textarea, label'
915
915
  );
916
916
  return t !== null && t !== e.currentTarget && e.currentTarget.contains(t);
917
917
  }
918
- function ve() {
918
+ function be() {
919
919
  return !(typeof window.matchMedia == "function" && !window.matchMedia("(hover: hover)").matches);
920
920
  }
921
- function ft(e) {
921
+ function pt(e) {
922
922
  if (e)
923
923
  return (t) => {
924
924
  const i = document.activeElement;
925
- i && t.currentTarget.contains(i) && He(i) || e();
925
+ i && t.currentTarget.contains(i) && Fe(i) || e();
926
926
  };
927
927
  }
928
- function pt(e) {
928
+ function ht(e) {
929
929
  if (e)
930
930
  return (t) => {
931
931
  t.currentTarget.contains(t.relatedTarget) || e();
932
932
  };
933
933
  }
934
- function wn({
934
+ function yn({
935
935
  result: e,
936
936
  headingLevel: t,
937
937
  highlighted: i,
938
938
  selected: s = !1,
939
939
  onSelect: r,
940
940
  onOpenClick: a,
941
- onHover: l,
941
+ onHover: o,
942
942
  onLeave: m,
943
- density: c = "compact",
944
- openLabel: o,
945
- bookLabel: d,
946
- onBookClick: p,
947
- nextSlotText: f,
943
+ density: d = "compact",
944
+ openLabel: l,
945
+ bookLabel: c,
946
+ onBookClick: h,
947
+ nextSlotText: p,
948
948
  maxInsuranceChips: x = 3,
949
949
  maxLanguageChips: b = 4,
950
- children: y
950
+ children: w
951
951
  }) {
952
- var D, W, ee, Q;
953
- const { t: N, i18n: k } = P("ui"), I = e.rating, M = (((D = e.languages) == null ? void 0 : D.length) ?? 0) > 0, R = (((W = e.insurances) == null ? void 0 : W.length) ?? 0) > 0, h = e.specializedInFearPatients, L = M || R || h, T = (e.languages ?? []).slice(0, b), B = (((ee = e.languages) == null ? void 0 : ee.length) ?? 0) - T.length, z = (e.insurances ?? []).slice(0, x), v = (((Q = e.insurances) == null ? void 0 : Q.length) ?? 0) - z.length;
952
+ var v, D, Q, ee;
953
+ const { t: S, i18n: M } = L("ui"), k = e.rating, I = (((v = e.languages) == null ? void 0 : v.length) ?? 0) > 0, P = (((D = e.insurances) == null ? void 0 : D.length) ?? 0) > 0, f = e.specializedInFearPatients, N = I || P || f, F = (e.languages ?? []).slice(0, b), V = (((Q = e.languages) == null ? void 0 : Q.length) ?? 0) - F.length, K = (e.insurances ?? []).slice(0, x), z = (((ee = e.insurances) == null ? void 0 : ee.length) ?? 0) - K.length;
954
954
  return (
955
955
  // 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.
956
956
  /* @__PURE__ */ g(
@@ -962,17 +962,17 @@ function wn({
962
962
  "data-selected": s ? "true" : "false",
963
963
  role: "group",
964
964
  "aria-labelledby": `practice-result-${e.id}-name`,
965
- onClick: (O) => {
966
- mt(O) || r();
965
+ onClick: (_) => {
966
+ ft(_) || r();
967
967
  },
968
- onMouseEnter: () => l(ve()),
969
- onFocus: (O) => l(He(O.target)),
970
- onMouseLeave: ft(m),
971
- onBlur: pt(m),
972
- className: dt({ density: c }),
968
+ onMouseEnter: () => o(be()),
969
+ onFocus: (_) => o(Fe(_.target)),
970
+ onMouseLeave: pt(m),
971
+ onBlur: ht(m),
972
+ className: ut({ density: d }),
973
973
  children: [
974
974
  /* @__PURE__ */ n(
975
- Ae,
975
+ He,
976
976
  {
977
977
  src: e.imageUrl,
978
978
  alt: e.imageAlt,
@@ -986,64 +986,64 @@ function wn({
986
986
  ),
987
987
  /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
988
988
  /* @__PURE__ */ n(
989
- ut,
989
+ mt,
990
990
  {
991
991
  result: e,
992
992
  headingLevel: t,
993
993
  selected: s
994
994
  }
995
995
  ),
996
- I && I.count > 0 ? /* @__PURE__ */ n(
997
- Fe,
996
+ k && k.count > 0 ? /* @__PURE__ */ n(
997
+ _e,
998
998
  {
999
- value: I.value,
1000
- reviews: { count: I.count },
999
+ value: k.value,
1000
+ reviews: { count: k.count },
1001
1001
  size: "sm"
1002
1002
  }
1003
1003
  ) : null,
1004
- /* @__PURE__ */ n(ot, { review: e.latestReview }),
1005
- L ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
1006
- T.map((O) => /* @__PURE__ */ n(
1007
- j,
1004
+ /* @__PURE__ */ n(lt, { review: e.latestReview }),
1005
+ N ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
1006
+ F.map((_) => /* @__PURE__ */ n(
1007
+ q,
1008
1008
  {
1009
1009
  variant: "neutral",
1010
- leading: /* @__PURE__ */ n(tt, { "aria-hidden": "true" }),
1011
- children: it(O, N, k)
1010
+ leading: /* @__PURE__ */ n(nt, { "aria-hidden": "true" }),
1011
+ children: st(_, S, M)
1012
1012
  },
1013
- `lang-${O}`
1013
+ `lang-${_}`
1014
1014
  )),
1015
- B > 0 ? /* @__PURE__ */ n(j, { variant: "neutral", children: `+${B}` }) : null,
1016
- z.map((O) => /* @__PURE__ */ n(
1017
- j,
1015
+ V > 0 ? /* @__PURE__ */ n(q, { variant: "neutral", children: `+${V}` }) : null,
1016
+ K.map((_) => /* @__PURE__ */ n(
1017
+ q,
1018
1018
  {
1019
1019
  variant: "info",
1020
- leading: /* @__PURE__ */ n(nt, { "aria-hidden": "true" }),
1021
- children: O
1020
+ leading: /* @__PURE__ */ n(at, { "aria-hidden": "true" }),
1021
+ children: _
1022
1022
  },
1023
- `ins-${O}`
1023
+ `ins-${_}`
1024
1024
  )),
1025
- v > 0 ? /* @__PURE__ */ n(j, { variant: "neutral", children: `+${v}` }) : null,
1026
- h ? /* @__PURE__ */ n(j, { variant: "info", leading: /* @__PURE__ */ n(at, { "aria-hidden": "true" }), children: N("practiceResults.fearPatient.label") }) : null
1025
+ z > 0 ? /* @__PURE__ */ n(q, { variant: "neutral", children: `+${z}` }) : null,
1026
+ f ? /* @__PURE__ */ n(q, { variant: "info", leading: /* @__PURE__ */ n(it, { "aria-hidden": "true" }), children: S("practiceResults.fearPatient.label") }) : null
1027
1027
  ] }) : null,
1028
1028
  /* @__PURE__ */ n(
1029
- lt,
1029
+ ct,
1030
1030
  {
1031
1031
  description: e.description,
1032
1032
  density: "compact",
1033
1033
  lang: e.contentLang
1034
1034
  }
1035
1035
  ),
1036
- e.nextAvailableSlot && f ? /* @__PURE__ */ n(Oe, { time: f }) : null,
1037
- y,
1036
+ e.nextAvailableSlot && p ? /* @__PURE__ */ n(Ve, { time: p }) : null,
1037
+ w,
1038
1038
  /* @__PURE__ */ n(
1039
- ct,
1039
+ dt,
1040
1040
  {
1041
1041
  result: e,
1042
- openLabel: o,
1043
- bookLabel: d,
1044
- nextSlotText: f,
1042
+ openLabel: l,
1043
+ bookLabel: c,
1044
+ nextSlotText: p,
1045
1045
  onOpenClick: a,
1046
- onBookClick: p
1046
+ onBookClick: h
1047
1047
  }
1048
1048
  )
1049
1049
  ] })
@@ -1052,22 +1052,22 @@ function wn({
1052
1052
  )
1053
1053
  );
1054
1054
  }
1055
- function yn({
1055
+ function kn({
1056
1056
  result: e,
1057
1057
  headingLevel: t,
1058
1058
  apiKey: i,
1059
1059
  highlighted: s,
1060
1060
  selected: r = !1,
1061
1061
  onSelect: a,
1062
- onOpenClick: l,
1062
+ onOpenClick: o,
1063
1063
  onBookClick: m,
1064
- onHover: c,
1065
- onLeave: o,
1066
- openLabel: d,
1067
- bookLabel: p
1064
+ onHover: d,
1065
+ onLeave: l,
1066
+ openLabel: c,
1067
+ bookLabel: h
1068
1068
  }) {
1069
- var M, R;
1070
- const { t: f, i18n: x } = P("ui"), b = _(() => {
1069
+ var I, P;
1070
+ const { t: p, i18n: x } = L("ui"), b = O(() => {
1071
1071
  if (e.nextAvailableSlot)
1072
1072
  try {
1073
1073
  return new Intl.DateTimeFormat(x.language, {
@@ -1078,7 +1078,7 @@ function yn({
1078
1078
  } catch {
1079
1079
  return e.nextAvailableSlot.dateTime;
1080
1080
  }
1081
- }, [e.nextAvailableSlot, x.language]), y = (((M = e.languages) == null ? void 0 : M.length) ?? 0) > 0, N = (((R = e.insurances) == null ? void 0 : R.length) ?? 0) > 0, k = e.specializedInFearPatients, I = y || N || k;
1081
+ }, [e.nextAvailableSlot, x.language]), w = (((I = e.languages) == null ? void 0 : I.length) ?? 0) > 0, S = (((P = e.insurances) == null ? void 0 : P.length) ?? 0) > 0, M = e.specializedInFearPatients, k = w || S || M;
1082
1082
  return (
1083
1083
  // 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.
1084
1084
  /* @__PURE__ */ g(
@@ -1091,17 +1091,17 @@ function yn({
1091
1091
  "data-selected": r ? "true" : "false",
1092
1092
  role: "group",
1093
1093
  "aria-labelledby": `practice-result-${e.id}-name`,
1094
- onClick: (h) => {
1095
- mt(h) || a();
1094
+ onClick: (f) => {
1095
+ ft(f) || a();
1096
1096
  },
1097
- onMouseEnter: () => c(ve()),
1098
- onFocus: (h) => c(He(h.target)),
1099
- onMouseLeave: ft(o),
1100
- onBlur: pt(o),
1101
- className: dt({ density: "rich" }),
1097
+ onMouseEnter: () => d(be()),
1098
+ onFocus: (f) => d(Fe(f.target)),
1099
+ onMouseLeave: pt(l),
1100
+ onBlur: ht(l),
1101
+ className: ut({ density: "rich" }),
1102
1102
  children: [
1103
1103
  e.location ? /* @__PURE__ */ n("div", { className: "ds:hidden ds:@min-[640px]/result-card:block", children: /* @__PURE__ */ n(
1104
- un,
1104
+ mn,
1105
1105
  {
1106
1106
  image: e.mapImage,
1107
1107
  apiKey: i,
@@ -1116,7 +1116,7 @@ function yn({
1116
1116
  /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
1117
1117
  /* @__PURE__ */ g("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-md)]", children: [
1118
1118
  /* @__PURE__ */ n(
1119
- Ae,
1119
+ He,
1120
1120
  {
1121
1121
  src: e.imageUrl,
1122
1122
  alt: e.imageAlt,
@@ -1129,7 +1129,7 @@ function yn({
1129
1129
  }
1130
1130
  ),
1131
1131
  /* @__PURE__ */ n(
1132
- ut,
1132
+ mt,
1133
1133
  {
1134
1134
  result: e,
1135
1135
  headingLevel: t,
@@ -1138,52 +1138,52 @@ function yn({
1138
1138
  )
1139
1139
  ] }),
1140
1140
  e.rating && e.rating.count > 0 ? /* @__PURE__ */ n(
1141
- Fe,
1141
+ _e,
1142
1142
  {
1143
1143
  value: e.rating.value,
1144
1144
  reviews: { count: e.rating.count },
1145
1145
  size: "md"
1146
1146
  }
1147
1147
  ) : null,
1148
- /* @__PURE__ */ n(ot, { review: e.latestReview }),
1149
- I ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
1150
- y ? (e.languages ?? []).map((h) => /* @__PURE__ */ n(
1151
- j,
1148
+ /* @__PURE__ */ n(lt, { review: e.latestReview }),
1149
+ k ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
1150
+ w ? (e.languages ?? []).map((f) => /* @__PURE__ */ n(
1151
+ q,
1152
1152
  {
1153
1153
  variant: "neutral",
1154
- leading: /* @__PURE__ */ n(tt, { "aria-hidden": "true" }),
1155
- children: it(h, f, x)
1154
+ leading: /* @__PURE__ */ n(nt, { "aria-hidden": "true" }),
1155
+ children: st(f, p, x)
1156
1156
  },
1157
- `lang-${h}`
1157
+ `lang-${f}`
1158
1158
  )) : null,
1159
- N ? (e.insurances ?? []).map((h) => /* @__PURE__ */ n(
1160
- j,
1159
+ S ? (e.insurances ?? []).map((f) => /* @__PURE__ */ n(
1160
+ q,
1161
1161
  {
1162
1162
  variant: "info",
1163
- leading: /* @__PURE__ */ n(nt, { "aria-hidden": "true" }),
1164
- children: h
1163
+ leading: /* @__PURE__ */ n(at, { "aria-hidden": "true" }),
1164
+ children: f
1165
1165
  },
1166
- `ins-${h}`
1166
+ `ins-${f}`
1167
1167
  )) : null,
1168
- k ? /* @__PURE__ */ n(j, { variant: "info", leading: /* @__PURE__ */ n(at, { "aria-hidden": "true" }), children: f("practiceResults.fearPatient.label") }) : null
1168
+ M ? /* @__PURE__ */ n(q, { variant: "info", leading: /* @__PURE__ */ n(it, { "aria-hidden": "true" }), children: p("practiceResults.fearPatient.label") }) : null
1169
1169
  ] }) : null,
1170
1170
  /* @__PURE__ */ n(
1171
- lt,
1171
+ ct,
1172
1172
  {
1173
1173
  description: e.description,
1174
1174
  density: "rich",
1175
1175
  lang: e.contentLang
1176
1176
  }
1177
1177
  ),
1178
- e.nextAvailableSlot && b ? /* @__PURE__ */ n(Oe, { time: b }) : null,
1178
+ e.nextAvailableSlot && b ? /* @__PURE__ */ n(Ve, { time: b }) : null,
1179
1179
  /* @__PURE__ */ n(
1180
- ct,
1180
+ dt,
1181
1181
  {
1182
1182
  result: e,
1183
- openLabel: d,
1184
- bookLabel: p,
1183
+ openLabel: c,
1184
+ bookLabel: h,
1185
1185
  nextSlotText: b,
1186
- onOpenClick: l,
1186
+ onOpenClick: o,
1187
1187
  onBookClick: m
1188
1188
  }
1189
1189
  )
@@ -1193,114 +1193,114 @@ function yn({
1193
1193
  )
1194
1194
  );
1195
1195
  }
1196
- function Ve({
1196
+ function Be({
1197
1197
  results: e,
1198
1198
  headingLevel: t,
1199
1199
  hoveredId: i,
1200
1200
  selectedId: s,
1201
1201
  softId: r,
1202
1202
  onCardHover: a,
1203
- onCardLeave: l,
1203
+ onCardLeave: o,
1204
1204
  onCardSelect: m,
1205
- onCardOpenClick: c,
1206
- onCardBookClick: o,
1207
- openLabel: d,
1208
- bookLabel: p,
1209
- formatNextSlot: f,
1205
+ onCardOpenClick: d,
1206
+ onCardBookClick: l,
1207
+ openLabel: c,
1208
+ bookLabel: h,
1209
+ formatNextSlot: p,
1210
1210
  onLoadMore: x,
1211
1211
  loadingMore: b,
1212
- loadingSkeletons: y,
1213
- density: N = "compact",
1214
- apiKey: k,
1215
- containerRef: I
1212
+ loadingSkeletons: w,
1213
+ density: S = "compact",
1214
+ apiKey: M,
1215
+ containerRef: k
1216
1216
  }) {
1217
- const { t: M } = P("ui"), R = F(null);
1217
+ const { t: I } = L("ui"), P = T(null);
1218
1218
  return J(() => {
1219
1219
  if (!x) return;
1220
- const h = R.current;
1221
- if (!h || typeof IntersectionObserver > "u") return;
1222
- const L = new IntersectionObserver(
1223
- (T) => {
1224
- for (const B of T)
1225
- B.isIntersecting && (q("serp_load_more", {
1220
+ const f = P.current;
1221
+ if (!f || typeof IntersectionObserver > "u") return;
1222
+ const N = new IntersectionObserver(
1223
+ (F) => {
1224
+ for (const V of F)
1225
+ V.isIntersecting && (U("serp_load_more", {
1226
1226
  currentCount: e.length
1227
1227
  }), x());
1228
1228
  },
1229
1229
  { root: null, rootMargin: "200px" }
1230
1230
  );
1231
- return L.observe(h), () => L.disconnect();
1232
- }, [x, e.length]), y ? /* @__PURE__ */ n(
1231
+ return N.observe(f), () => N.disconnect();
1232
+ }, [x, e.length]), w ? /* @__PURE__ */ n(
1233
1233
  "div",
1234
1234
  {
1235
1235
  role: "status",
1236
1236
  "aria-live": "polite",
1237
- "aria-label": M("practiceResults.loading"),
1237
+ "aria-label": I("practiceResults.loading"),
1238
1238
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
1239
- children: Array.from({ length: 4 }).map((h, L) => /* @__PURE__ */ n(
1240
- Dt,
1239
+ children: Array.from({ length: 4 }).map((f, N) => /* @__PURE__ */ n(
1240
+ $t,
1241
1241
  {
1242
1242
  variant: "rounded",
1243
- height: N === "rich" ? "11rem" : "7rem"
1243
+ height: S === "rich" ? "11rem" : "7rem"
1244
1244
  },
1245
- `pr-skel-${L}`
1245
+ `pr-skel-${N}`
1246
1246
  ))
1247
1247
  }
1248
1248
  ) : /* @__PURE__ */ g(
1249
1249
  "div",
1250
1250
  {
1251
- ref: I,
1251
+ ref: k,
1252
1252
  "data-component": "practice-results-list",
1253
1253
  role: "list",
1254
- "aria-label": M("practiceResults.list.label"),
1254
+ "aria-label": I("practiceResults.list.label"),
1255
1255
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:overflow-y-auto",
1256
1256
  children: [
1257
- e.map((h) => /* @__PURE__ */ n("div", { role: "listitem", children: N === "rich" ? /* @__PURE__ */ n(
1258
- yn,
1257
+ e.map((f) => /* @__PURE__ */ n("div", { role: "listitem", children: S === "rich" ? /* @__PURE__ */ n(
1258
+ kn,
1259
1259
  {
1260
- result: h,
1260
+ result: f,
1261
1261
  headingLevel: t,
1262
- apiKey: k,
1263
- highlighted: i === h.id || s === h.id || r === h.id,
1264
- selected: s === h.id,
1265
- onSelect: () => m(h.id),
1266
- onOpenClick: () => c(h.id),
1267
- onBookClick: () => o(h.id),
1268
- onHover: (L) => a(h.id, L),
1269
- onLeave: l,
1270
- openLabel: d,
1271
- bookLabel: p
1262
+ apiKey: M,
1263
+ highlighted: i === f.id || s === f.id || r === f.id,
1264
+ selected: s === f.id,
1265
+ onSelect: () => m(f.id),
1266
+ onOpenClick: () => d(f.id),
1267
+ onBookClick: () => l(f.id),
1268
+ onHover: (N) => a(f.id, N),
1269
+ onLeave: o,
1270
+ openLabel: c,
1271
+ bookLabel: h
1272
1272
  }
1273
1273
  ) : /* @__PURE__ */ n(
1274
- wn,
1274
+ yn,
1275
1275
  {
1276
- result: h,
1276
+ result: f,
1277
1277
  headingLevel: t,
1278
- highlighted: i === h.id || s === h.id || r === h.id,
1279
- selected: s === h.id,
1280
- onSelect: () => m(h.id),
1281
- onOpenClick: () => c(h.id),
1282
- onBookClick: () => o(h.id),
1283
- onHover: (L) => a(h.id, L),
1284
- onLeave: l,
1285
- openLabel: d,
1286
- bookLabel: p,
1287
- nextSlotText: f(h)
1278
+ highlighted: i === f.id || s === f.id || r === f.id,
1279
+ selected: s === f.id,
1280
+ onSelect: () => m(f.id),
1281
+ onOpenClick: () => d(f.id),
1282
+ onBookClick: () => l(f.id),
1283
+ onHover: (N) => a(f.id, N),
1284
+ onLeave: o,
1285
+ openLabel: c,
1286
+ bookLabel: h,
1287
+ nextSlotText: p(f)
1288
1288
  }
1289
- ) }, h.id)),
1289
+ ) }, f.id)),
1290
1290
  x ? /* @__PURE__ */ n(
1291
1291
  "div",
1292
1292
  {
1293
- ref: R,
1293
+ ref: P,
1294
1294
  "aria-hidden": "true",
1295
1295
  className: "ds:flex ds:items-center ds:justify-center ds:py-[var(--spacing-md)]",
1296
- children: b ? /* @__PURE__ */ n($t, { size: "md", variant: "pulse" }) : /* @__PURE__ */ n("span", { className: "ds:size-1" })
1296
+ children: b ? /* @__PURE__ */ n(zt, { size: "md", variant: "pulse" }) : /* @__PURE__ */ n("span", { className: "ds:size-1" })
1297
1297
  }
1298
1298
  ) : null
1299
1299
  ]
1300
1300
  }
1301
1301
  );
1302
1302
  }
1303
- function kn({
1303
+ function Cn({
1304
1304
  result: e,
1305
1305
  nextSlotText: t
1306
1306
  }) {
@@ -1312,7 +1312,7 @@ function kn({
1312
1312
  className: "ds:flex ds:[inline-size:16rem] ds:max-w-full ds:items-center ds:gap-[var(--spacing-sm)] ds:rounded-[var(--radius-lg)] ds:border ds:border-[color:var(--card-border)] ds:bg-[var(--card)] ds:p-[var(--spacing-sm)] ds:text-[var(--card-foreground)] ds:shadow-[var(--shadow-lg)]",
1313
1313
  children: [
1314
1314
  /* @__PURE__ */ n(
1315
- Ae,
1315
+ He,
1316
1316
  {
1317
1317
  src: e.imageUrl,
1318
1318
  name: e.name,
@@ -1333,41 +1333,42 @@ function kn({
1333
1333
  }
1334
1334
  ),
1335
1335
  i && i.count > 0 ? /* @__PURE__ */ n(
1336
- Fe,
1336
+ _e,
1337
1337
  {
1338
1338
  value: i.value,
1339
1339
  reviews: { count: i.count },
1340
1340
  size: "sm"
1341
1341
  }
1342
1342
  ) : null,
1343
- e.nextAvailableSlot && t ? /* @__PURE__ */ n(Oe, { time: t }) : null
1343
+ e.nextAvailableSlot && t ? /* @__PURE__ */ n(Ve, { time: t }) : null
1344
1344
  ] })
1345
1345
  ]
1346
1346
  }
1347
1347
  );
1348
1348
  }
1349
- function Ie({
1349
+ function Ae({
1350
1350
  results: e,
1351
1351
  searchCentre: t,
1352
1352
  zoom: i,
1353
1353
  apiKey: s,
1354
1354
  mapId: r,
1355
- hoveredId: a,
1356
- selectedId: l,
1357
- onMapClick: m,
1358
- showMarkerCard: c = !1,
1359
- formatNextSlot: o,
1360
- onPinHoverChange: d,
1355
+ clusterMarkers: a,
1356
+ hoveredId: o,
1357
+ selectedId: m,
1358
+ onMapClick: d,
1359
+ showMarkerCard: l = !1,
1360
+ formatNextSlot: c,
1361
+ onPinHoverChange: h,
1361
1362
  onPinClick: p,
1362
- onPinHover: f,
1363
- onPinFirstInteract: x,
1364
- onBoundsChange: b,
1365
- consentGranted: y,
1366
- onConsentRequest: N,
1363
+ onPinHover: x,
1364
+ onPinFirstInteract: b,
1365
+ onBoundsChange: w,
1366
+ consentGranted: S,
1367
+ onConsentRequest: M,
1367
1368
  staticPreview: k,
1368
1369
  mapHandleRef: I
1369
1370
  }) {
1370
- const { t: M } = P("ui"), R = _(
1371
+ const { t: P } = L("ui"), f = O(
1371
1372
  () => e.filter(
1372
1373
  (v) => !!v.location
1373
1374
  ).map((v) => ({
@@ -1379,36 +1380,36 @@ function Ie({
1379
1380
  label: v.name
1380
1381
  })),
1381
1382
  [e]
1382
- ), h = _(
1383
- () => R.map((v) => ({ ...v.position, id: v.id })),
1384
- [R]
1385
- ), L = _(
1386
- () => R.map((v) => v.id).sort().join("|"),
1387
- [R]
1388
- ), T = _(() => {
1383
+ ), N = O(
1384
+ () => f.map((v) => ({ ...v.position, id: v.id })),
1385
+ [f]
1386
+ ), F = O(
1387
+ () => f.map((v) => v.id).sort().join("|"),
1388
+ [f]
1389
+ ), V = O(() => {
1389
1390
  if (t) return t;
1390
- const v = sn(e);
1391
+ const v = rn(e);
1391
1392
  return v ? {
1392
1393
  lat: (v.north + v.south) / 2,
1393
1394
  lng: (v.east + v.west) / 2
1394
1395
  } : { lat: 45.4642, lng: 9.19 };
1395
- }, [e, t]), B = _(
1396
- () => c ? (v) => {
1397
- const D = e.find((W) => W.id === v);
1396
+ }, [e, t]), K = O(
1397
+ () => l ? (v) => {
1398
+ const D = e.find((Q) => Q.id === v);
1398
1399
  return D ? /* @__PURE__ */ n(
1399
- kn,
1400
+ Cn,
1400
1401
  {
1401
1402
  result: D,
1402
- nextSlotText: o == null ? void 0 : o(D)
1403
+ nextSlotText: c == null ? void 0 : c(D)
1403
1404
  }
1404
1405
  ) : null;
1405
1406
  } : void 0,
1406
- [c, o, e]
1407
+ [l, c, e]
1407
1408
  ), z = H(
1408
1409
  (v, { userInteraction: D }) => {
1409
- b == null || b(v), D && q("serp_map_panned", { bounds: v });
1410
+ w == null || w(v), D && U("serp_map_panned", { bounds: v });
1410
1411
  },
1411
- [b]
1412
+ [w]
1412
1413
  );
1413
1414
  return /* @__PURE__ */ n(
1414
1415
  "div",
@@ -1416,33 +1417,34 @@ function Ie({
1416
1417
  "data-component": "practice-results-map-panel",
1417
1418
  className: "ds:relative ds:flex ds:size-full ds:min-h-[24rem] ds:flex-col",
1418
1419
  children: /* @__PURE__ */ n(
1419
- Bt,
1420
+ Dt,
1420
1421
  {
1421
1422
  ref: I,
1422
1423
  apiKey: s ?? "",
1423
1424
  mapId: r,
1424
- center: T,
1425
+ clusterMarkers: a,
1426
+ center: V,
1425
1427
  zoom: i,
1426
- markers: R,
1427
- fitToPoints: h,
1428
- fitKey: L,
1429
- selectedMarkerId: l,
1430
- hoveredMarkerId: a,
1431
- renderMarkerCard: B,
1432
- onMarkerHover: c ? d : void 0,
1433
- consentGranted: !!y,
1428
+ markers: f,
1429
+ fitToPoints: N,
1430
+ fitKey: F,
1431
+ selectedMarkerId: m,
1432
+ hoveredMarkerId: o,
1433
+ renderMarkerCard: K,
1434
+ onMarkerHover: l ? h : void 0,
1435
+ consentGranted: !!S,
1434
1436
  staticPreview: k,
1435
- onConsentRequest: N,
1437
+ onConsentRequest: M,
1436
1438
  onBoundsChange: z,
1437
- onClusterClick: ({ count: v }) => q("serp_map_cluster_clicked", { count: v }),
1439
+ onClusterClick: ({ count: v }) => U("serp_map_cluster_clicked", { count: v }),
1438
1440
  onMarkerClick: (v) => {
1439
1441
  if (v == null) {
1440
- m();
1442
+ d();
1441
1443
  return;
1442
1444
  }
1443
- f(v), x(v), p(v);
1445
+ x(v), b(v), p(v);
1444
1446
  },
1445
- ariaLabel: M("practiceResults.map.label"),
1447
+ ariaLabel: P("practiceResults.map.label"),
1446
1448
  size: "fill",
1447
1449
  surface: "bordered",
1448
1450
  className: "ds:size-full"
@@ -1451,7 +1453,7 @@ function Ie({
1451
1453
  }
1452
1454
  );
1453
1455
  }
1454
- function Be({
1456
+ function De({
1455
1457
  variantBodyProps: e
1456
1458
  }) {
1457
1459
  const {
@@ -1460,116 +1462,117 @@ function Be({
1460
1462
  sortOptions: s,
1461
1463
  onChange: r,
1462
1464
  heading: a,
1463
- intro: l,
1465
+ intro: o,
1464
1466
  totalCount: m,
1465
- searchCentre: c
1467
+ searchCentre: d
1466
1468
  } = e;
1467
- return !a && !l && m == null && t.length === 0 && s.length === 0 ? null : /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
1469
+ return !a && !o && m == null && t.length === 0 && s.length === 0 ? null : /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
1468
1470
  /* @__PURE__ */ n(
1469
- st,
1471
+ rt,
1470
1472
  {
1471
1473
  heading: a,
1472
1474
  headingLevel: e.headingLevel,
1473
- intro: l,
1475
+ intro: o,
1474
1476
  totalCount: m,
1475
- searchCentreLabel: c == null ? void 0 : c.label
1477
+ searchCentreLabel: d == null ? void 0 : d.label
1476
1478
  }
1477
1479
  ),
1478
1480
  t.length > 0 ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
1479
1481
  /* @__PURE__ */ n(
1480
- rt,
1482
+ ot,
1481
1483
  {
1482
1484
  facets: t,
1483
1485
  value: i.facets,
1484
- onChange: (o) => r({ ...i, facets: o })
1486
+ onChange: (l) => r({ ...i, facets: l })
1485
1487
  }
1486
1488
  ),
1487
1489
  s.length > 0 ? /* @__PURE__ */ n(
1488
- Pe,
1490
+ Me,
1489
1491
  {
1490
1492
  options: s,
1491
1493
  value: i.sort ?? "relevance",
1492
- onChange: (o) => r({ ...i, sort: o })
1494
+ onChange: (l) => r({ ...i, sort: l })
1493
1495
  }
1494
1496
  ) : null
1495
1497
  ] }) : s.length > 0 ? /* @__PURE__ */ n("div", { className: "ds:flex ds:justify-end", children: /* @__PURE__ */ n(
1496
- Pe,
1498
+ Me,
1497
1499
  {
1498
1500
  options: s,
1499
1501
  value: i.sort ?? "relevance",
1500
- onChange: (o) => r({ ...i, sort: o })
1502
+ onChange: (l) => r({ ...i, sort: l })
1501
1503
  }
1502
1504
  ) }) : null
1503
1505
  ] });
1504
1506
  }
1505
- function De(e) {
1507
+ function $e(e) {
1506
1508
  return Math.min(e + 1, 6);
1507
1509
  }
1508
- function $e({
1510
+ function ze({
1509
1511
  headingLevel: e
1510
1512
  }) {
1511
- const { t } = P("ui");
1513
+ const { t } = L("ui");
1512
1514
  return /* @__PURE__ */ n(
1513
- Vt,
1515
+ Bt,
1514
1516
  {
1515
1517
  variant: "no-results",
1516
- headingLevel: De(e),
1518
+ headingLevel: $e(e),
1517
1519
  title: t("practiceResults.empty.title"),
1518
1520
  description: t("practiceResults.empty.description")
1519
1521
  }
1520
1522
  );
1521
1523
  }
1522
- function ze({
1524
+ function Ee({
1523
1525
  onRetry: e,
1524
1526
  headingLevel: t
1525
1527
  }) {
1526
- const { t: i } = P("ui"), s = De(t);
1527
- return /* @__PURE__ */ g(fe, { variant: "error", children: [
1528
- /* @__PURE__ */ n(fe.Title, { as: `h${s}`, children: i("practiceResults.error.title") }),
1529
- /* @__PURE__ */ n(fe.Description, { children: i("practiceResults.error.description") }),
1530
- e ? /* @__PURE__ */ n(fe.Action, { children: /* @__PURE__ */ n(
1531
- pe,
1528
+ const { t: i } = L("ui"), s = $e(t);
1529
+ return /* @__PURE__ */ g(pe, { variant: "error", children: [
1530
+ /* @__PURE__ */ n(pe.Title, { as: `h${s}`, children: i("practiceResults.error.title") }),
1531
+ /* @__PURE__ */ n(pe.Description, { children: i("practiceResults.error.description") }),
1532
+ e ? /* @__PURE__ */ n(pe.Action, { children: /* @__PURE__ */ n(
1533
+ he,
1532
1534
  {
1533
1535
  intent: "secondary",
1534
1536
  size: "sm",
1535
- startIcon: /* @__PURE__ */ n(qt, { "aria-hidden": "true" }),
1537
+ startIcon: /* @__PURE__ */ n(Ut, { "aria-hidden": "true" }),
1536
1538
  onClick: e,
1537
1539
  children: i("practiceResults.error.retry")
1538
1540
  }
1539
1541
  ) }) : null
1540
1542
  ] });
1541
1543
  }
1542
- function Cn(e) {
1544
+ function Rn(e) {
1543
1545
  const {
1544
1546
  results: t,
1545
1547
  apiKey: i,
1546
1548
  mapId: s,
1547
- zoom: r,
1548
- searchCentre: a,
1549
- onLoadMore: l,
1550
- loadingMore: m,
1551
- loadingSkeletons: c,
1552
- emptyResultsSlot: o,
1553
- errorSlot: d,
1549
+ clusterMarkers: r,
1550
+ zoom: a,
1551
+ searchCentre: o,
1552
+ onLoadMore: m,
1553
+ loadingMore: d,
1554
+ loadingSkeletons: l,
1555
+ emptyResultsSlot: c,
1556
+ errorSlot: h,
1554
1557
  error: p,
1555
- onRetry: f,
1556
- hoveredId: x,
1557
- selectedId: b,
1558
- onCardHover: y,
1559
- onPinClick: N,
1558
+ onRetry: x,
1559
+ hoveredId: b,
1560
+ selectedId: w,
1561
+ onCardHover: S,
1562
+ onPinClick: M,
1560
1563
  consentGranted: k,
1561
1564
  onConsentRequest: I,
1562
- onBoundsChange: M,
1563
- listContainerRef: R
1564
- } = e, { t: h } = P("ui"), [L, T] = G(!1), B = Te("(min-width: 1024px)"), z = p ? d ?? /* @__PURE__ */ n(ze, { onRetry: f, headingLevel: e.headingLevel }) : t.length === 0 && !c ? o ?? /* @__PURE__ */ n($e, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1565
- Ve,
1565
+ onBoundsChange: P,
1566
+ listContainerRef: f
1567
+ } = e, { t: N } = L("ui"), [F, V] = Z(!1), K = Oe("(min-width: 1024px)"), z = p ? h ?? /* @__PURE__ */ n(Ee, { onRetry: x, headingLevel: e.headingLevel }) : t.length === 0 && !l ? c ?? /* @__PURE__ */ n(ze, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1568
+ Be,
1566
1569
  {
1567
1570
  results: t,
1568
1571
  headingLevel: e.headingLevel,
1569
- hoveredId: x,
1570
- selectedId: b,
1572
+ hoveredId: b,
1573
+ selectedId: w,
1571
1574
  softId: e.softId,
1572
- onCardHover: y,
1575
+ onCardHover: S,
1573
1576
  onCardLeave: e.onCardLeave,
1574
1577
  onCardSelect: e.onCardSelect,
1575
1578
  onCardOpenClick: e.onCardOpenClick,
@@ -1577,37 +1580,38 @@ function Cn(e) {
1577
1580
  openLabel: e.openLabel,
1578
1581
  bookLabel: e.bookLabel,
1579
1582
  formatNextSlot: e.formatNextSlot,
1580
- onLoadMore: l,
1581
- loadingMore: m,
1582
- loadingSkeletons: c,
1583
+ onLoadMore: m,
1584
+ loadingMore: d,
1585
+ loadingSkeletons: l,
1583
1586
  density: "compact",
1584
- containerRef: R
1587
+ containerRef: f
1585
1588
  }
1586
1589
  );
1587
1590
  return /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1588
- /* @__PURE__ */ n(Be, { variantBodyProps: e }),
1591
+ /* @__PURE__ */ n(De, { variantBodyProps: e }),
1589
1592
  /* @__PURE__ */ g("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: [
1590
1593
  /* @__PURE__ */ n("div", { className: "ds:min-w-0", children: z }),
1591
1594
  /* @__PURE__ */ n("div", { className: "ds:hidden ds:lg:block ds:sticky ds:top-[var(--spacing-md)] ds:h-[40rem]", children: /* @__PURE__ */ n(
1592
- Ie,
1595
+ Ae,
1593
1596
  {
1594
1597
  results: t,
1595
- searchCentre: a,
1596
- zoom: r,
1598
+ searchCentre: o,
1599
+ zoom: a,
1597
1600
  apiKey: i,
1598
1601
  mapId: s,
1602
+ clusterMarkers: r,
1599
1603
  hoveredId: e.mapHoveredId,
1600
1604
  selectedId: e.mapSelectedId,
1601
1605
  onMapClick: e.onMapClick,
1602
- showMarkerCard: B,
1606
+ showMarkerCard: K,
1603
1607
  formatNextSlot: e.formatNextSlot,
1604
1608
  onPinHoverChange: e.onPinHoverChange,
1605
1609
  onPinClick: (v) => {
1606
- ae(t, v, "pin", e.onResultSelect), N(v);
1610
+ ae(t, v, "pin", e.onResultSelect), M(v);
1607
1611
  },
1608
1612
  onPinHover: e.onPinHover,
1609
1613
  onPinFirstInteract: e.onPinFirstInteract,
1610
- onBoundsChange: M,
1614
+ onBoundsChange: P,
1611
1615
  consentGranted: k,
1612
1616
  staticPreview: e.mapPreview,
1613
1617
  onConsentRequest: I,
@@ -1616,37 +1620,38 @@ function Cn(e) {
1616
1620
  ) })
1617
1621
  ] }),
1618
1622
  /* @__PURE__ */ n("div", { className: "ds:flex ds:lg:hidden ds:sticky ds:bottom-[var(--spacing-md)] ds:justify-center", children: /* @__PURE__ */ n(
1619
- pe,
1623
+ he,
1620
1624
  {
1621
1625
  intent: "primary",
1622
1626
  size: "md",
1623
- startIcon: /* @__PURE__ */ n(Wt, { "aria-hidden": "true" }),
1624
- onClick: () => T(!0),
1625
- children: h("practiceResults.viewMap")
1627
+ startIcon: /* @__PURE__ */ n(Qt, { "aria-hidden": "true" }),
1628
+ onClick: () => V(!0),
1629
+ children: N("practiceResults.viewMap")
1626
1630
  }
1627
1631
  ) }),
1628
- /* @__PURE__ */ n(K.Root, { open: L, onOpenChange: T, children: /* @__PURE__ */ g(K.Content, { side: "bottom", size: "lg", children: [
1629
- /* @__PURE__ */ n(K.Header, { children: /* @__PURE__ */ n(K.Title, { children: h("practiceResults.map.label") }) }),
1630
- /* @__PURE__ */ g(K.Body, { children: [
1631
- /* @__PURE__ */ n(K.Description, { className: "ds:sr-only", children: h("practiceResults.sheet.description") }),
1632
+ /* @__PURE__ */ n(j.Root, { open: F, onOpenChange: V, children: /* @__PURE__ */ g(j.Content, { side: "bottom", size: "lg", children: [
1633
+ /* @__PURE__ */ n(j.Header, { children: /* @__PURE__ */ n(j.Title, { children: N("practiceResults.map.label") }) }),
1634
+ /* @__PURE__ */ g(j.Body, { children: [
1635
+ /* @__PURE__ */ n(j.Description, { className: "ds:sr-only", children: N("practiceResults.sheet.description") }),
1632
1636
  /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1633
1637
  /* @__PURE__ */ n("div", { className: "ds:h-[24rem]", children: /* @__PURE__ */ n(
1634
- Ie,
1638
+ Ae,
1635
1639
  {
1636
1640
  results: t,
1637
- searchCentre: a,
1638
- zoom: r,
1641
+ searchCentre: o,
1642
+ zoom: a,
1639
1643
  apiKey: i,
1640
1644
  mapId: s,
1645
+ clusterMarkers: r,
1641
1646
  hoveredId: e.mapHoveredId,
1642
1647
  selectedId: e.mapSelectedId,
1643
1648
  onMapClick: e.onMapClick,
1644
1649
  onPinClick: (v) => {
1645
- ae(t, v, "pin", e.onResultSelect), N(v);
1650
+ ae(t, v, "pin", e.onResultSelect), M(v);
1646
1651
  },
1647
1652
  onPinHover: e.onPinHover,
1648
1653
  onPinFirstInteract: e.onPinFirstInteract,
1649
- onBoundsChange: M,
1654
+ onBoundsChange: P,
1650
1655
  consentGranted: k,
1651
1656
  staticPreview: e.mapPreview,
1652
1657
  onConsentRequest: I,
@@ -1659,7 +1664,7 @@ function Cn(e) {
1659
1664
  ] }) })
1660
1665
  ] });
1661
1666
  }
1662
- const Rn = {
1667
+ const Sn = {
1663
1668
  peek: "sm",
1664
1669
  half: "md",
1665
1670
  full: "lg"
@@ -1668,37 +1673,37 @@ const Rn = {
1668
1673
  "half",
1669
1674
  "full"
1670
1675
  ];
1671
- function Sn({ value: e, onChange: t }) {
1672
- const { t: i, i18n: s } = P("ui"), r = s.dir() === "rtl", a = F(
1676
+ function Nn({ value: e, onChange: t }) {
1677
+ const { t: i, i18n: s } = L("ui"), r = s.dir() === "rtl", a = T(
1673
1678
  /* @__PURE__ */ new Map()
1674
- ), l = H((c) => {
1675
- var o;
1676
- (o = a.current.get(c)) == null || o.focus();
1679
+ ), o = H((d) => {
1680
+ var l;
1681
+ (l = a.current.get(d)) == null || l.focus();
1677
1682
  }, []), m = H(
1678
- (c, o) => {
1679
- const d = Y.indexOf(o), p = Y.length, f = r ? "ArrowLeft" : "ArrowRight", x = r ? "ArrowRight" : "ArrowLeft";
1683
+ (d, l) => {
1684
+ const c = Y.indexOf(l), h = Y.length, p = r ? "ArrowLeft" : "ArrowRight", x = r ? "ArrowRight" : "ArrowLeft";
1680
1685
  let b = null;
1681
- switch (c.key) {
1682
- case f:
1686
+ switch (d.key) {
1687
+ case p:
1683
1688
  case "ArrowDown":
1684
- b = Y[(d + 1) % p];
1689
+ b = Y[(c + 1) % h];
1685
1690
  break;
1686
1691
  case x:
1687
1692
  case "ArrowUp":
1688
- b = Y[(d - 1 + p) % p];
1693
+ b = Y[(c - 1 + h) % h];
1689
1694
  break;
1690
1695
  case "Home":
1691
1696
  b = Y[0];
1692
1697
  break;
1693
1698
  case "End":
1694
- b = Y[p - 1];
1699
+ b = Y[h - 1];
1695
1700
  break;
1696
1701
  default:
1697
1702
  return;
1698
1703
  }
1699
- c.preventDefault(), b && b !== o && t(b), b && l(b);
1704
+ d.preventDefault(), b && b !== l && t(b), b && o(b);
1700
1705
  },
1701
- [l, r, t]
1706
+ [o, r, t]
1702
1707
  );
1703
1708
  return /* @__PURE__ */ n(
1704
1709
  "div",
@@ -1706,72 +1711,72 @@ function Sn({ value: e, onChange: t }) {
1706
1711
  role: "radiogroup",
1707
1712
  "aria-label": i("practiceResults.sheet.snap.label"),
1708
1713
  className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]",
1709
- children: Y.map((c) => {
1710
- const o = e === c;
1714
+ children: Y.map((d) => {
1715
+ const l = e === d;
1711
1716
  return /* @__PURE__ */ n(
1712
1717
  "button",
1713
1718
  {
1714
- ref: (d) => {
1715
- d ? a.current.set(c, d) : a.current.delete(c);
1719
+ ref: (c) => {
1720
+ c ? a.current.set(d, c) : a.current.delete(d);
1716
1721
  },
1717
1722
  type: "button",
1718
1723
  role: "radio",
1719
- "aria-checked": o,
1720
- "aria-label": i(`practiceResults.sheet.snap.${c}`),
1721
- tabIndex: o ? 0 : -1,
1722
- onClick: () => t(c),
1723
- onKeyDown: (d) => m(d, c),
1724
- className: ge({
1725
- state: o ? "active" : "idle"
1724
+ "aria-checked": l,
1725
+ "aria-label": i(`practiceResults.sheet.snap.${d}`),
1726
+ tabIndex: l ? 0 : -1,
1727
+ onClick: () => t(d),
1728
+ onKeyDown: (c) => m(c, d),
1729
+ className: ve({
1730
+ state: l ? "active" : "idle"
1726
1731
  }),
1727
- children: i(`practiceResults.sheet.snap.${c}`)
1732
+ children: i(`practiceResults.sheet.snap.${d}`)
1728
1733
  },
1729
- c
1734
+ d
1730
1735
  );
1731
1736
  })
1732
1737
  }
1733
1738
  );
1734
1739
  }
1735
- function Nn(e, t, i) {
1736
- const [s, r] = G(null), [a, l] = G(null);
1737
- return _e(() => {
1740
+ function Ln(e, t, i) {
1741
+ const [s, r] = Z(null), [a, o] = Z(null);
1742
+ return Te(() => {
1738
1743
  const m = e.current;
1739
1744
  if (!i || !m || typeof window > "u") {
1740
- r(null), l(null);
1745
+ r(null), o(null);
1741
1746
  return;
1742
1747
  }
1743
- let c = 0, o = null, d = null;
1744
- const p = () => {
1748
+ let d = 0, l = null, c = null;
1749
+ const h = () => {
1745
1750
  const b = t.current;
1746
1751
  r(b ? b.offsetHeight : null);
1747
- const y = m.querySelector(
1752
+ const w = m.querySelector(
1748
1753
  '[data-testid="map-view-preview-plate"]'
1749
1754
  ) ?? m.querySelector(
1750
1755
  '[data-testid="map-view-consent-actions"]'
1751
1756
  );
1752
- if (y !== d && (d && (o == null || o.unobserve(d)), y && (o == null || o.observe(y, { box: "border-box" })), d = y), !y) {
1753
- l(null);
1757
+ if (w !== c && (c && (l == null || l.unobserve(c)), w && (l == null || l.observe(w, { box: "border-box" })), c = w), !w) {
1758
+ o(null);
1754
1759
  return;
1755
1760
  }
1756
- const N = y.getBoundingClientRect().bottom;
1757
- if (N <= 0) {
1758
- l(null);
1761
+ const S = w.getBoundingClientRect().bottom;
1762
+ if (S <= 0) {
1763
+ o(null);
1759
1764
  return;
1760
1765
  }
1761
- const k = window.innerHeight - N - We("--spacing-sm", m, 8);
1762
- l(
1766
+ const M = window.innerHeight - S - Qe("--spacing-sm", m, 8);
1767
+ o(
1763
1768
  Math.max(
1764
- Math.round(k),
1765
- We("--min-target-size", m, 44) * 2
1769
+ Math.round(M),
1770
+ Qe("--min-target-size", m, 44) * 2
1766
1771
  )
1767
1772
  );
1768
- }, f = () => {
1769
- cancelAnimationFrame(c), c = requestAnimationFrame(p);
1773
+ }, p = () => {
1774
+ cancelAnimationFrame(d), d = requestAnimationFrame(h);
1770
1775
  };
1771
- o = typeof ResizeObserver > "u" ? null : new ResizeObserver(f), p(), o == null || o.observe(m), t.current && (o == null || o.observe(t.current)), o == null || o.observe(document.body);
1772
- const x = new MutationObserver(f);
1773
- return x.observe(m, { childList: !0, subtree: !0 }), window.addEventListener("resize", f), window.addEventListener("scroll", f, { passive: !0 }), () => {
1774
- cancelAnimationFrame(c), o == null || o.disconnect(), x.disconnect(), window.removeEventListener("resize", f), window.removeEventListener("scroll", f);
1776
+ l = typeof ResizeObserver > "u" ? null : new ResizeObserver(p), h(), l == null || l.observe(m), t.current && (l == null || l.observe(t.current)), l == null || l.observe(document.body);
1777
+ const x = new MutationObserver(p);
1778
+ return x.observe(m, { childList: !0, subtree: !0 }), window.addEventListener("resize", p), window.addEventListener("scroll", p, { passive: !0 }), () => {
1779
+ cancelAnimationFrame(d), l == null || l.disconnect(), x.disconnect(), window.removeEventListener("resize", p), window.removeEventListener("scroll", p);
1775
1780
  };
1776
1781
  }, [i, e, t]), i ? {
1777
1782
  mapStyle: s === null ? void 0 : {
@@ -1782,52 +1787,53 @@ function Nn(e, t, i) {
1782
1787
  }
1783
1788
  } : {};
1784
1789
  }
1785
- function Ln(e) {
1790
+ function Pn(e) {
1786
1791
  const {
1787
1792
  results: t,
1788
1793
  apiKey: i,
1789
1794
  mapId: s,
1790
- zoom: r,
1791
- searchCentre: a,
1792
- onLoadMore: l,
1793
- loadingMore: m,
1794
- loadingSkeletons: c,
1795
- emptyResultsSlot: o,
1796
- errorSlot: d,
1795
+ clusterMarkers: r,
1796
+ zoom: a,
1797
+ searchCentre: o,
1798
+ onLoadMore: m,
1799
+ loadingMore: d,
1800
+ loadingSkeletons: l,
1801
+ emptyResultsSlot: c,
1802
+ errorSlot: h,
1797
1803
  error: p,
1798
- onRetry: f,
1799
- hoveredId: x,
1800
- selectedId: b,
1801
- onCardHover: y,
1802
- onPinClick: N,
1804
+ onRetry: x,
1805
+ hoveredId: b,
1806
+ selectedId: w,
1807
+ onCardHover: S,
1808
+ onPinClick: M,
1803
1809
  consentGranted: k,
1804
1810
  onConsentRequest: I,
1805
- onBoundsChange: M,
1806
- listContainerRef: R,
1807
- facets: h,
1808
- value: L,
1809
- onChange: T
1810
- } = e, { t: B } = P("ui"), [z, v] = G(
1811
+ onBoundsChange: P,
1812
+ listContainerRef: f,
1813
+ facets: N,
1814
+ value: F,
1815
+ onChange: V
1816
+ } = e, { t: K } = L("ui"), [z, v] = Z(
1811
1817
  () => e.mapPreview && !k ? "peek" : "half"
1812
- ), D = F(!1), W = H((S) => {
1813
- D.current = !0, v(S);
1818
+ ), D = T(!1), Q = H((R) => {
1819
+ D.current = !0, v(R);
1814
1820
  }, []);
1815
- _e(() => {
1816
- k && !D.current && v((S) => S === "peek" ? "half" : S);
1821
+ Te(() => {
1822
+ k && !D.current && v((R) => R === "peek" ? "half" : R);
1817
1823
  }, [k]);
1818
- const ee = Rn[z], Q = Te("(min-width: 1024px)"), O = F(null), se = F(null), te = Nn(
1819
- O,
1824
+ const ee = Sn[z], _ = Oe("(min-width: 1024px)"), se = T(null), re = T(null), te = Ln(
1820
1825
  se,
1821
- !Q && !!e.mapPreview
1822
- ), re = p ? d ?? /* @__PURE__ */ n(ze, { onRetry: f, headingLevel: e.headingLevel }) : t.length === 0 && !c ? o ?? /* @__PURE__ */ n($e, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1823
- Ve,
1826
+ re,
1827
+ !_ && !!e.mapPreview
1828
+ ), oe = p ? h ?? /* @__PURE__ */ n(Ee, { onRetry: x, headingLevel: e.headingLevel }) : t.length === 0 && !l ? c ?? /* @__PURE__ */ n(ze, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1829
+ Be,
1824
1830
  {
1825
1831
  results: t,
1826
1832
  headingLevel: e.headingLevel,
1827
- hoveredId: x,
1828
- selectedId: b,
1833
+ hoveredId: b,
1834
+ selectedId: w,
1829
1835
  softId: e.softId,
1830
- onCardHover: y,
1836
+ onCardHover: S,
1831
1837
  onCardLeave: e.onCardLeave,
1832
1838
  onCardSelect: e.onCardSelect,
1833
1839
  onCardOpenClick: e.onCardOpenClick,
@@ -1835,55 +1841,56 @@ function Ln(e) {
1835
1841
  openLabel: e.openLabel,
1836
1842
  bookLabel: e.bookLabel,
1837
1843
  formatNextSlot: e.formatNextSlot,
1838
- onLoadMore: l,
1839
- loadingMore: m,
1840
- loadingSkeletons: c,
1844
+ onLoadMore: m,
1845
+ loadingMore: d,
1846
+ loadingSkeletons: l,
1841
1847
  density: "compact",
1842
1848
  apiKey: i,
1843
- containerRef: R
1849
+ containerRef: f
1844
1850
  }
1845
- ), oe = /* @__PURE__ */ n(
1846
- Ie,
1851
+ ), le = /* @__PURE__ */ n(
1852
+ Ae,
1847
1853
  {
1848
1854
  results: t,
1849
- searchCentre: a,
1850
- zoom: r,
1855
+ searchCentre: o,
1856
+ zoom: a,
1851
1857
  apiKey: i,
1852
1858
  mapId: s,
1859
+ clusterMarkers: r,
1853
1860
  hoveredId: e.mapHoveredId,
1854
1861
  selectedId: e.mapSelectedId,
1855
1862
  onMapClick: e.onMapClick,
1856
- showMarkerCard: Q,
1863
+ showMarkerCard: _,
1857
1864
  formatNextSlot: e.formatNextSlot,
1858
1865
  onPinHoverChange: e.onPinHoverChange,
1859
- onPinClick: (S) => {
1860
- ae(t, S, "pin", e.onResultSelect), N(S);
1866
+ onPinClick: (R) => {
1867
+ ae(t, R, "pin", e.onResultSelect), M(R);
1861
1868
  },
1862
1869
  onPinHover: e.onPinHover,
1863
1870
  onPinFirstInteract: e.onPinFirstInteract,
1864
- onBoundsChange: M,
1871
+ onBoundsChange: P,
1865
1872
  consentGranted: k,
1866
1873
  staticPreview: e.mapPreview,
1867
1874
  onConsentRequest: I,
1868
1875
  mapHandleRef: e.mapHandleRef
1869
1876
  }
1870
- ), be = h.length > 0 ? /* @__PURE__ */ n(
1877
+ ), xe = N.length > 0 ? /* @__PURE__ */ n(
1871
1878
  "div",
1872
1879
  {
1873
- ref: se,
1880
+ ref: re,
1874
1881
  className: "ds:absolute ds:start-[var(--spacing-md)] ds:top-[var(--spacing-md)] ds:max-w-[calc(100%-var(--spacing-lg))]",
1875
1882
  children: /* @__PURE__ */ n(
1876
- rt,
1883
+ ot,
1877
1884
  {
1878
- facets: h,
1879
- value: L.facets,
1880
- onChange: (S) => T({ ...L, facets: S }),
1885
+ facets: N,
1886
+ value: F.facets,
1887
+ onChange: (R) => V({ ...F, facets: R }),
1881
1888
  floating: !0
1882
1889
  }
1883
1890
  )
1884
1891
  }
1885
1892
  ) : null;
1886
- return /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: Q ? (
1893
+ return /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: _ ? (
1887
1894
  // Desktop: 65/35 map left + cards rail right. NO Sheet (the
1888
1895
  // Sheet would portal to body and occlude the desktop layout
1889
1896
  // regardless of the parent's `lg:hidden` class).
@@ -1901,11 +1908,11 @@ function Ln(e) {
1901
1908
  // the map column is `lg:sticky lg:h-[44rem]` (stays visible
1902
1909
  // as the patient scrolls cards) and the rail renders at
1903
1910
  // natural height. Single page scroll.
1904
- /* @__PURE__ */ g(_t, { children: [
1905
- /* @__PURE__ */ n(Be, { variantBodyProps: e }),
1911
+ /* @__PURE__ */ g(Tt, { children: [
1912
+ /* @__PURE__ */ n(De, { variantBodyProps: e }),
1906
1913
  /* @__PURE__ */ g("div", { className: "ds:grid ds:grid-cols-[65fr_35fr] ds:gap-[var(--spacing-lg)] ds:items-start", children: [
1907
- /* @__PURE__ */ n("div", { className: "ds:sticky ds:top-[var(--spacing-md)] ds:h-[44rem]", children: oe }),
1908
- /* @__PURE__ */ n("div", { className: "ds:min-w-0", children: re })
1914
+ /* @__PURE__ */ n("div", { className: "ds:sticky ds:top-[var(--spacing-md)] ds:h-[44rem]", children: le }),
1915
+ /* @__PURE__ */ n("div", { className: "ds:min-w-0", children: oe })
1909
1916
  ] })
1910
1917
  ] })
1911
1918
  ) : (
@@ -1917,91 +1924,91 @@ function Ln(e) {
1917
1924
  // chrome, so floating chips are the only place for them.
1918
1925
  /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1919
1926
  /* @__PURE__ */ n(
1920
- st,
1927
+ rt,
1921
1928
  {
1922
1929
  heading: e.heading,
1923
1930
  headingLevel: e.headingLevel,
1924
1931
  intro: e.intro,
1925
1932
  totalCount: e.totalCount,
1926
- searchCentreLabel: a == null ? void 0 : a.label
1933
+ searchCentreLabel: o == null ? void 0 : o.label
1927
1934
  }
1928
1935
  ),
1929
1936
  /* @__PURE__ */ g(
1930
1937
  "div",
1931
1938
  {
1932
- ref: O,
1939
+ ref: se,
1933
1940
  className: "ds:relative ds:h-[60vh] ds:min-h-[20rem]",
1934
1941
  style: te.mapStyle,
1935
1942
  children: [
1936
- oe,
1937
- be
1943
+ le,
1944
+ xe
1938
1945
  ]
1939
1946
  }
1940
1947
  ),
1941
- /* @__PURE__ */ n(K.Root, { open: !0, modal: !1, children: /* @__PURE__ */ n(
1942
- K.Content,
1948
+ /* @__PURE__ */ n(j.Root, { open: !0, modal: !1, children: /* @__PURE__ */ n(
1949
+ j.Content,
1943
1950
  {
1944
1951
  side: "bottom",
1945
1952
  size: ee,
1946
1953
  className: "ds:max-h-[var(--map-first-sheet-max-block-size,100dvh)] ds:[&_[data-radix-scroll-area-viewport]]:overscroll-contain",
1947
1954
  style: te.sheetStyle,
1948
- onEscapeKeyDown: (S) => S.preventDefault(),
1949
- onPointerDownOutside: (S) => S.preventDefault(),
1950
- onInteractOutside: (S) => S.preventDefault(),
1951
- onOpenAutoFocus: (S) => S.preventDefault(),
1952
- children: /* @__PURE__ */ g(K.Body, { children: [
1953
- /* @__PURE__ */ n(K.Description, { className: "ds:sr-only", children: B("practiceResults.sheet.descriptionMapFirst") }),
1955
+ onEscapeKeyDown: (R) => R.preventDefault(),
1956
+ onPointerDownOutside: (R) => R.preventDefault(),
1957
+ onInteractOutside: (R) => R.preventDefault(),
1958
+ onOpenAutoFocus: (R) => R.preventDefault(),
1959
+ children: /* @__PURE__ */ g(j.Body, { children: [
1960
+ /* @__PURE__ */ n(j.Description, { className: "ds:sr-only", children: K("practiceResults.sheet.descriptionMapFirst") }),
1954
1961
  /* @__PURE__ */ g("div", { className: "ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]", children: [
1955
- /* @__PURE__ */ n(K.Title, { className: "type-title-card ds:m-0 ds:text-[var(--foreground)]", children: B("practiceResults.sheet.title", {
1962
+ /* @__PURE__ */ n(j.Title, { className: "type-title-card ds:m-0 ds:text-[var(--foreground)]", children: K("practiceResults.sheet.title", {
1956
1963
  count: e.totalCount ?? t.length
1957
1964
  }) }),
1958
1965
  /* @__PURE__ */ n(
1959
- Sn,
1966
+ Nn,
1960
1967
  {
1961
1968
  value: z,
1962
- onChange: W
1969
+ onChange: Q
1963
1970
  }
1964
1971
  )
1965
1972
  ] }),
1966
1973
  e.sortOptions.length > 0 ? /* @__PURE__ */ n("div", { className: "ds:pb-[var(--spacing-sm)]", children: /* @__PURE__ */ n(
1967
- Pe,
1974
+ Me,
1968
1975
  {
1969
1976
  options: e.sortOptions,
1970
- value: L.sort ?? "relevance",
1971
- onChange: (S) => T({ ...L, sort: S })
1977
+ value: F.sort ?? "relevance",
1978
+ onChange: (R) => V({ ...F, sort: R })
1972
1979
  }
1973
1980
  ) }) : null,
1974
- re
1981
+ oe
1975
1982
  ] })
1976
1983
  }
1977
1984
  ) })
1978
1985
  ] })
1979
1986
  ) });
1980
1987
  }
1981
- function Pn(e) {
1988
+ function Mn(e) {
1982
1989
  const {
1983
1990
  results: t,
1984
1991
  apiKey: i,
1985
1992
  onLoadMore: s,
1986
1993
  loadingMore: r,
1987
1994
  loadingSkeletons: a,
1988
- emptyResultsSlot: l,
1995
+ emptyResultsSlot: o,
1989
1996
  errorSlot: m,
1990
- error: c,
1991
- onRetry: o,
1992
- hoveredId: d,
1993
- selectedId: p,
1994
- onCardHover: f,
1997
+ error: d,
1998
+ onRetry: l,
1999
+ hoveredId: c,
2000
+ selectedId: h,
2001
+ onCardHover: p,
1995
2002
  listContainerRef: x
1996
- } = e, b = c ? m ?? /* @__PURE__ */ n(ze, { onRetry: o, headingLevel: e.headingLevel }) : t.length === 0 && !a ? l ?? /* @__PURE__ */ n($e, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1997
- Ve,
2003
+ } = e, b = d ? m ?? /* @__PURE__ */ n(Ee, { onRetry: l, headingLevel: e.headingLevel }) : t.length === 0 && !a ? o ?? /* @__PURE__ */ n(ze, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
2004
+ Be,
1998
2005
  {
1999
2006
  results: t,
2000
2007
  headingLevel: e.headingLevel,
2001
- hoveredId: d,
2002
- selectedId: p,
2008
+ hoveredId: c,
2009
+ selectedId: h,
2003
2010
  softId: e.softId,
2004
- onCardHover: f,
2011
+ onCardHover: p,
2005
2012
  onCardLeave: e.onCardLeave,
2006
2013
  onCardSelect: e.onCardSelect,
2007
2014
  onCardOpenClick: e.onCardOpenClick,
@@ -2018,70 +2025,71 @@ function Pn(e) {
2018
2025
  }
2019
2026
  );
2020
2027
  return /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
2021
- /* @__PURE__ */ n(Be, { variantBodyProps: e }),
2028
+ /* @__PURE__ */ n(De, { variantBodyProps: e }),
2022
2029
  b
2023
2030
  ] });
2024
2031
  }
2025
- const Mn = Tt(function({
2032
+ const In = Ot(function({
2026
2033
  variant: t = "split-list-map",
2027
2034
  results: i,
2028
2035
  contentLang: s,
2029
2036
  totalCount: r,
2030
2037
  searchCentre: a,
2031
- facets: l,
2038
+ facets: o,
2032
2039
  googleMapsApiKey: m,
2033
- mapId: c,
2034
- defaultZoom: o = Jt,
2035
- onBoundsChange: d,
2040
+ mapId: d,
2041
+ clusterMarkers: l = "auto",
2042
+ defaultZoom: c = Xt,
2043
+ onBoundsChange: h,
2036
2044
  consentGranted: p,
2037
- onConsentRequest: f,
2038
- skipConsentGate: x = !1,
2039
- mapPreview: b,
2040
- onLoadMore: y,
2041
- loadingMore: N,
2045
+ onConsentRequest: x,
2046
+ skipConsentGate: b = !1,
2047
+ mapPreview: w,
2048
+ onLoadMore: S,
2049
+ loadingMore: M,
2042
2050
  value: k,
2043
2051
  onChange: I,
2044
- sortOptions: M,
2045
- onResultSelect: R,
2046
- loading: h,
2047
- emptyResultsSlot: L,
2048
- errorSlot: T,
2049
- error: B,
2052
+ sortOptions: P,
2053
+ onResultSelect: f,
2054
+ loading: N,
2055
+ emptyResultsSlot: F,
2056
+ errorSlot: V,
2057
+ error: K,
2050
2058
  onRetry: z,
2051
2059
  heading: v,
2052
2060
  headingLevel: D = 2,
2053
- intro: W,
2061
+ intro: Q,
2054
2062
  cardOpenButtonLabel: ee,
2055
- cardBookButtonLabel: Q,
2056
- showCardOpenButton: O = !0,
2057
- "aria-label": se,
2063
+ cardBookButtonLabel: _,
2064
+ showCardOpenButton: se = !0,
2065
+ "aria-label": re,
2058
2066
  id: te,
2059
- className: re,
2060
- ...oe
2061
- }, be) {
2062
- const { t: S, i18n: Ee } = P("ui"), [ie, $] = G(null), [Ke, ne] = G(null), [xe, E] = G(null), [we, ht] = G(null), V = Te("(min-width: 1024px)"), le = F(/* @__PURE__ */ new Set()), ye = F(/* @__PURE__ */ new Set()), gt = F(null), ce = F(null), ke = _(
2067
+ className: oe,
2068
+ ...le
2069
+ }, xe) {
2070
+ const { t: R, i18n: Ke } = L("ui"), [ie, $] = Z(null), [je, ne] = Z(null), [we, E] = Z(null), [ye, gt] = Z(null), B = Oe("(min-width: 1024px)"), ce = T(/* @__PURE__ */ new Set()), ke = T(/* @__PURE__ */ new Set()), vt = T(null), de = T(null), Ce = O(
2063
2071
  () => ({
2064
2072
  getVariant: () => t,
2065
2073
  scrollToResult: (u) => {
2066
- const C = ce.current;
2074
+ const C = de.current;
2067
2075
  if (!C) return;
2068
- const w = C.querySelector(
2076
+ const y = C.querySelector(
2069
2077
  `[data-component="practice-result-card"][data-result-id="${CSS.escape(u)}"]`
2070
2078
  );
2071
- w && (w.scrollIntoView({ behavior: "smooth", block: "nearest" }), V || $(null), E(u));
2079
+ y && (y.scrollIntoView({ behavior: "smooth", block: "nearest" }), B || $(null), E(u));
2072
2080
  },
2073
2081
  focusPin: (u) => {
2074
- V && t !== "rich-cards" ? (E(null), ne(u)) : (V || $(null), E(u));
2082
+ B && t !== "rich-cards" ? (E(null), ne(u)) : (B || $(null), E(u));
2075
2083
  }
2076
2084
  }),
2077
- [t, V]
2085
+ [t, B]
2078
2086
  );
2079
- Ot(be, () => ke, [ke]), Kt(Qt, ke, te);
2080
- const vt = O ? ee ?? S("practiceResults.card.open") : void 0, bt = Q ?? S("practiceResults.card.book"), xt = H(
2087
+ Vt(xe, () => Ce, [Ce]), jt(Jt, Ce, te);
2088
+ const bt = se ? ee ?? R("practiceResults.card.open") : void 0, xt = _ ?? R("practiceResults.card.book"), wt = H(
2081
2089
  (u) => {
2082
2090
  if (u.nextAvailableSlot)
2083
2091
  try {
2084
- return new Intl.DateTimeFormat(Ee.language, {
2092
+ return new Intl.DateTimeFormat(Ke.language, {
2085
2093
  weekday: "short",
2086
2094
  hour: "numeric",
2087
2095
  minute: "numeric"
@@ -2090,24 +2098,24 @@ const Mn = Tt(function({
2090
2098
  return u.nextAvailableSlot.dateTime;
2091
2099
  }
2092
2100
  },
2093
- [Ee.language]
2094
- ), je = F(null);
2101
+ [Ke.language]
2102
+ ), qe = T(null);
2095
2103
  J(() => {
2096
- je.current !== t && (je.current = t, q("serp_variant_exposed", {
2104
+ qe.current !== t && (qe.current = t, U("serp_variant_exposed", {
2097
2105
  variant: t,
2098
2106
  totalCount: r ?? i.length
2099
- }), le.current = /* @__PURE__ */ new Set(), ye.current = /* @__PURE__ */ new Set());
2107
+ }), ce.current = /* @__PURE__ */ new Set(), ke.current = /* @__PURE__ */ new Set());
2100
2108
  }, [t]);
2101
- const Ce = F(!1), Re = _(
2102
- () => Yt(l ?? [], i, k.facets),
2103
- [l, i, k.facets]
2104
- ), de = _(
2105
- () => M ? Je.filter((u) => M.includes(u)) : Je,
2106
- [M]
2107
- ), ue = a ? "distance" : "relevance", qe = k.sort ?? ue, Se = de.includes(qe) ? qe : de.includes(ue) ? ue : de[0] ?? ue, A = _(() => {
2108
- const u = en(i, k.facets, Re);
2109
- return an(u, Se, a);
2110
- }, [i, k.facets, Re, Se, a]), wt = _(
2109
+ const Re = T(!1), Se = O(
2110
+ () => en(o ?? [], i, k.facets),
2111
+ [o, i, k.facets]
2112
+ ), ue = O(
2113
+ () => P ? Xe.filter((u) => P.includes(u)) : Xe,
2114
+ [P]
2115
+ ), me = a ? "distance" : "relevance", Ue = k.sort ?? me, Ne = ue.includes(Ue) ? Ue : ue.includes(me) ? me : ue[0] ?? me, A = O(() => {
2116
+ const u = tn(i, k.facets, Se);
2117
+ return sn(u, Ne, a);
2118
+ }, [i, k.facets, Se, Ne, a]), yt = O(
2111
2119
  () => s ? A.map(
2112
2120
  (u) => u.contentLang ? u : { ...u, contentLang: s }
2113
2121
  ) : A,
@@ -2115,32 +2123,32 @@ const Mn = Tt(function({
2115
2123
  );
2116
2124
  J(() => {
2117
2125
  const u = A.length === 0;
2118
- u && !Ce.current ? (q("serp_empty_results", {
2126
+ u && !Re.current ? (U("serp_empty_results", {
2119
2127
  appliedFacets: k.facets ?? {}
2120
- }), Ce.current = !0) : u || (Ce.current = !1);
2128
+ }), Re.current = !0) : u || (Re.current = !1);
2121
2129
  }, [A.length, k.facets]), J(() => {
2122
- const u = new Set(A.map((w) => w.id)), C = (w) => w !== null && u.has(w) ? w : null;
2130
+ const u = new Set(A.map((y) => y.id)), C = (y) => y !== null && u.has(y) ? y : null;
2123
2131
  $(C), ne(C), E(C);
2124
2132
  }, [A]), J(() => {
2125
2133
  $(null), ne(null), E(null);
2126
2134
  }, [t]);
2127
- const X = F(null), Ue = F(null);
2135
+ const X = T(null), Ge = T(null);
2128
2136
  J(
2129
2137
  () => () => {
2130
2138
  X.current && clearTimeout(X.current);
2131
2139
  },
2132
2140
  []
2133
2141
  );
2134
- const Ne = H((u) => {
2135
- le.current.has(u) || Ue.current === u && X.current || (X.current && clearTimeout(X.current), Ue.current = u, X.current = setTimeout(() => {
2136
- le.current.has(u) || (le.current.add(u), q("serp_result_hovered_card", { resultId: u })), X.current = null;
2142
+ const Le = H((u) => {
2143
+ ce.current.has(u) || Ge.current === u && X.current || (X.current && clearTimeout(X.current), Ge.current = u, X.current = setTimeout(() => {
2144
+ ce.current.has(u) || (ce.current.add(u), U("serp_result_hovered_card", { resultId: u })), X.current = null;
2137
2145
  }, 500));
2138
- }, []), yt = H(
2146
+ }, []), kt = H(
2139
2147
  (u, C) => {
2140
- Ne(u), C && ($(u), E(null));
2148
+ Le(u), C && ($(u), E(null));
2141
2149
  },
2142
- [Ne]
2143
- ), kt = H(() => $(null), []);
2150
+ [Le]
2151
+ ), Ct = H(() => $(null), []);
2144
2152
  J(() => {
2145
2153
  if (ie === null) return;
2146
2154
  const u = (C) => {
@@ -2148,170 +2156,171 @@ const Mn = Tt(function({
2148
2156
  };
2149
2157
  return document.addEventListener("keydown", u), () => document.removeEventListener("keydown", u);
2150
2158
  }, [ie]);
2151
- const Ct = H(
2152
- (u, C, w) => {
2159
+ const Rt = H(
2160
+ (u, C, y) => {
2153
2161
  if (!C) {
2154
- $((me) => me === u ? null : me);
2162
+ $((fe) => fe === u ? null : fe);
2155
2163
  return;
2156
2164
  }
2157
- V && (w === "pointer" && !ve() || ($(u), E(null)));
2165
+ B && (y === "pointer" && !be() || ($(u), E(null)));
2158
2166
  },
2159
- [V]
2160
- ), Ge = F(V);
2167
+ [B]
2168
+ ), Ze = T(B);
2161
2169
  J(() => {
2162
- Ge.current && !V && $(null), Ge.current = V;
2163
- }, [V]);
2164
- const Rt = H(() => {
2170
+ Ze.current && !B && $(null), Ze.current = B;
2171
+ }, [B]);
2172
+ const St = H(() => {
2165
2173
  ne(null), E(null);
2166
- }, []), St = H(
2174
+ }, []), Nt = H(
2167
2175
  (u) => {
2168
2176
  var C;
2169
- if (!V) {
2170
- const w = (C = ce.current) == null ? void 0 : C.querySelector(
2177
+ if (!B) {
2178
+ const y = (C = de.current) == null ? void 0 : C.querySelector(
2171
2179
  `[data-component="practice-result-card"][data-result-id="${CSS.escape(u)}"]`
2172
2180
  );
2173
- $(null), E(u), w == null || w.scrollIntoView({ behavior: "smooth", block: "nearest" });
2181
+ $(null), E(u), y == null || y.scrollIntoView({ behavior: "smooth", block: "nearest" });
2174
2182
  return;
2175
2183
  }
2176
- E(null), ne(u), ht((w) => ({ id: u, n: ((w == null ? void 0 : w.n) ?? 0) + 1 }));
2184
+ E(null), ne(u), gt((y) => ({ id: u, n: ((y == null ? void 0 : y.n) ?? 0) + 1 }));
2177
2185
  },
2178
- [V]
2186
+ [B]
2179
2187
  );
2180
- _e(() => {
2181
- if (!we) return;
2182
- const u = ce.current, C = u == null ? void 0 : u.querySelector(
2183
- `[data-component="practice-result-card"][data-result-id="${CSS.escape(we.id)}"]`
2188
+ Te(() => {
2189
+ if (!ye) return;
2190
+ const u = de.current, C = u == null ? void 0 : u.querySelector(
2191
+ `[data-component="practice-result-card"][data-result-id="${CSS.escape(ye.id)}"]`
2184
2192
  );
2185
2193
  C == null || C.scrollIntoView({
2186
- behavior: zt(C) ? "instant" : "smooth",
2194
+ behavior: Et(C) ? "instant" : "smooth",
2187
2195
  block: "start"
2188
2196
  });
2189
- }, [we]);
2190
- const Nt = H((u) => {
2191
- ye.current.has(u) || (ye.current.add(u), q("serp_result_hovered_pin", { resultId: u }));
2192
- }, []), Ze = F(null), Lt = H(
2197
+ }, [ye]);
2198
+ const Lt = H((u) => {
2199
+ ke.current.has(u) || (ke.current.add(u), U("serp_result_hovered_pin", { resultId: u }));
2200
+ }, []), We = T(null), Pt = H(
2193
2201
  (u) => {
2194
- ne(null), ve() ? (E(null), $(u)) : ($(null), E(u));
2195
- const C = A.find((w) => w.id === u);
2202
+ ne(null), be() ? (E(null), $(u)) : ($(null), E(u));
2203
+ const C = A.find((y) => y.id === u);
2196
2204
  if (C) {
2197
2205
  if (C.location) {
2198
- const w = Ze.current;
2199
- w == null || w.panTo({
2206
+ const y = We.current;
2207
+ y == null || y.panTo({
2200
2208
  lat: C.location.lat,
2201
2209
  lng: C.location.lng
2202
- }), w == null || w.setZoom(16);
2210
+ }), y == null || y.setZoom(16);
2203
2211
  }
2204
- ae(A, u, "card", R);
2212
+ ae(A, u, "card", f);
2205
2213
  }
2206
2214
  },
2207
- [A, R]
2208
- ), Pt = H(
2215
+ [A, f]
2216
+ ), Mt = H(
2209
2217
  (u) => {
2210
2218
  ae(
2211
2219
  A,
2212
2220
  u,
2213
2221
  "open-button",
2214
- R
2222
+ f
2215
2223
  );
2216
2224
  },
2217
- [A, R]
2218
- ), Mt = H(
2225
+ [A, f]
2226
+ ), It = H(
2219
2227
  (u) => {
2220
2228
  ae(
2221
2229
  A,
2222
2230
  u,
2223
2231
  "book-button",
2224
- R
2232
+ f
2225
2233
  );
2226
2234
  },
2227
- [A, R]
2228
- ), It = !!h && i.length === 0, At = H(
2235
+ [A, f]
2236
+ ), At = !!N && i.length === 0, Ht = H(
2229
2237
  (u, C) => {
2230
- const w = A.find((me) => me.id === u.id);
2231
- R(w ?? u, C);
2238
+ const y = A.find((fe) => fe.id === u.id);
2239
+ f(y ?? u, C);
2232
2240
  },
2233
- [A, R]
2234
- ), Le = {
2235
- results: wt,
2241
+ [A, f]
2242
+ ), Pe = {
2243
+ results: yt,
2236
2244
  totalCount: r,
2237
2245
  searchCentre: a,
2238
- facets: Re,
2239
- value: { ...k, sort: Se },
2240
- sortOptions: de,
2246
+ facets: Se,
2247
+ value: { ...k, sort: Ne },
2248
+ sortOptions: ue,
2241
2249
  onChange: I,
2242
- onResultSelect: At,
2243
- onLoadMore: y,
2244
- loadingMore: N,
2250
+ onResultSelect: Ht,
2251
+ onLoadMore: S,
2252
+ loadingMore: M,
2245
2253
  apiKey: m,
2246
- mapId: c,
2247
- zoom: o,
2254
+ mapId: d,
2255
+ clusterMarkers: l,
2256
+ zoom: c,
2248
2257
  // 0.31.4: when `skipConsentGate` is true the kit synthesises
2249
2258
  // `consentGranted=true` for every internal MapView; the consumer's
2250
2259
  // CMP at the page level is responsible for whether the Google Maps
2251
2260
  // loader script is present at all. `onConsentRequest` is dropped
2252
2261
  // because no placeholder renders — nothing to fire it from.
2253
- consentGranted: x ? !0 : p,
2254
- onConsentRequest: x ? void 0 : f,
2255
- mapPreview: b,
2256
- onBoundsChange: d,
2257
- loadingSkeletons: It,
2258
- emptyResultsSlot: L,
2259
- errorSlot: T,
2260
- error: B,
2262
+ consentGranted: b ? !0 : p,
2263
+ onConsentRequest: b ? void 0 : x,
2264
+ mapPreview: w,
2265
+ onBoundsChange: h,
2266
+ loadingSkeletons: At,
2267
+ emptyResultsSlot: F,
2268
+ errorSlot: V,
2269
+ error: K,
2261
2270
  onRetry: z,
2262
2271
  heading: v,
2263
2272
  headingLevel: D,
2264
- intro: W,
2273
+ intro: Q,
2265
2274
  hoveredId: ie,
2266
- selectedId: Ke,
2267
- softId: xe,
2268
- mapHoveredId: V ? ie : null,
2269
- mapSelectedId: V ? Ke ?? xe : ie ?? xe,
2270
- onCardHover: yt,
2271
- onCardLeave: kt,
2272
- onPinHover: Ne,
2273
- onPinHoverChange: Ct,
2274
- onMapClick: Rt,
2275
- onPinClick: St,
2276
- onPinFirstInteract: Nt,
2277
- onCardSelect: Lt,
2278
- onCardOpenClick: Pt,
2279
- onCardBookClick: Mt,
2280
- openLabel: vt,
2281
- bookLabel: bt,
2282
- formatNextSlot: xt,
2283
- listContainerRef: gt,
2284
- mapHandleRef: Ze
2285
- }, Ht = (() => {
2275
+ selectedId: je,
2276
+ softId: we,
2277
+ mapHoveredId: B ? ie : null,
2278
+ mapSelectedId: B ? je ?? we : ie ?? we,
2279
+ onCardHover: kt,
2280
+ onCardLeave: Ct,
2281
+ onPinHover: Le,
2282
+ onPinHoverChange: Rt,
2283
+ onMapClick: St,
2284
+ onPinClick: Nt,
2285
+ onPinFirstInteract: Lt,
2286
+ onCardSelect: Pt,
2287
+ onCardOpenClick: Mt,
2288
+ onCardBookClick: It,
2289
+ openLabel: bt,
2290
+ bookLabel: xt,
2291
+ formatNextSlot: wt,
2292
+ listContainerRef: vt,
2293
+ mapHandleRef: We
2294
+ }, Ft = (() => {
2286
2295
  switch (t) {
2287
2296
  case "map-first":
2288
- return /* @__PURE__ */ n(Ln, { ...Le });
2297
+ return /* @__PURE__ */ n(Pn, { ...Pe });
2289
2298
  case "rich-cards":
2290
- return /* @__PURE__ */ n(Pn, { ...Le });
2299
+ return /* @__PURE__ */ n(Mn, { ...Pe });
2291
2300
  case "split-list-map":
2292
2301
  default:
2293
- return /* @__PURE__ */ n(Cn, { ...Le });
2302
+ return /* @__PURE__ */ n(Rn, { ...Pe });
2294
2303
  }
2295
- })(), Ft = se ?? S("practiceResults.regionLabel");
2304
+ })(), _t = re ?? R("practiceResults.regionLabel");
2296
2305
  return /* @__PURE__ */ n(
2297
2306
  "div",
2298
2307
  {
2299
- ref: ce,
2308
+ ref: de,
2300
2309
  role: "region",
2301
- "aria-label": Ft,
2310
+ "aria-label": _t,
2302
2311
  id: te,
2303
2312
  "data-component": "practice-results",
2304
2313
  "data-component-id": te,
2305
2314
  "data-variant": t,
2306
- className: rn({ variant: t, className: re }),
2307
- ...oe,
2308
- children: Ht
2315
+ className: on({ variant: t, className: oe }),
2316
+ ...le,
2317
+ children: Ft
2309
2318
  }
2310
2319
  );
2311
2320
  });
2312
- Mn.displayName = "PracticeResults";
2321
+ In.displayName = "PracticeResults";
2313
2322
  export {
2314
- Mn as P,
2315
- Qt as p
2323
+ In as P,
2324
+ Jt as p
2316
2325
  };
2317
- //# sourceMappingURL=practice-results-b3uchdBn.js.map
2326
+ //# sourceMappingURL=practice-results-yCresv86.js.map