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