@alfadocs/ui-kit 1.10.1 → 1.12.4

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