@alfadocs/ui-kit-debug 1.113.0 → 1.114.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 (308) hide show
  1. package/dist/_chunks/{anamnesis-card-BzuluoD1.js → anamnesis-card-Ddnrdfx3.js} +2 -2
  2. package/dist/_chunks/{anamnesis-card-BzuluoD1.js.map → anamnesis-card-Ddnrdfx3.js.map} +1 -1
  3. package/dist/_chunks/{anamnesis-summary-card-DdTRdNrQ.js → anamnesis-summary-card-S1H_AARG.js} +2 -2
  4. package/dist/_chunks/{anamnesis-summary-card-DdTRdNrQ.js.map → anamnesis-summary-card-S1H_AARG.js.map} +1 -1
  5. package/dist/_chunks/{anamnesis-summary-rows-DfDulR_c.js → anamnesis-summary-rows-DaS-j8Jd.js} +2 -2
  6. package/dist/_chunks/{anamnesis-summary-rows-DfDulR_c.js.map → anamnesis-summary-rows-DaS-j8Jd.js.map} +1 -1
  7. package/dist/_chunks/{antenatal-schedule-timeline-DmsY5g28.js → antenatal-schedule-timeline-DmlXxevC.js} +2 -2
  8. package/dist/_chunks/{antenatal-schedule-timeline-DmsY5g28.js.map → antenatal-schedule-timeline-DmlXxevC.js.map} +1 -1
  9. package/dist/_chunks/{bishop-score-CnIft4eV.js → bishop-score-QJu-sM1y.js} +2 -2
  10. package/dist/_chunks/{bishop-score-CnIft4eV.js.map → bishop-score-QJu-sM1y.js.map} +1 -1
  11. package/dist/_chunks/{bmi-calculator-NMkXc079.js → bmi-calculator-Ba4yoR31.js} +2 -2
  12. package/dist/_chunks/{bmi-calculator-NMkXc079.js.map → bmi-calculator-Ba4yoR31.js.map} +1 -1
  13. package/dist/_chunks/{calendar-appointment-editor-dialog-CaZm5wGR.js → calendar-appointment-editor-dialog-iyh9QqNw.js} +6 -6
  14. package/dist/_chunks/{calendar-appointment-editor-dialog-CaZm5wGR.js.map → calendar-appointment-editor-dialog-iyh9QqNw.js.map} +1 -1
  15. package/dist/_chunks/{card-C85_Ndhb.js → card-DVO3x8E-.js} +23 -19
  16. package/dist/_chunks/{card-C85_Ndhb.js.map → card-DVO3x8E-.js.map} +1 -1
  17. package/dist/_chunks/{clinical-note-card-BVkxGiGl.js → clinical-note-card-Zz5_GEz-.js} +2 -2
  18. package/dist/_chunks/{clinical-note-card-BVkxGiGl.js.map → clinical-note-card-Zz5_GEz-.js.map} +1 -1
  19. package/dist/_chunks/{connection-status-CWSU3eiq.js → connection-status-DjarASoU.js} +2 -2
  20. package/dist/_chunks/{connection-status-CWSU3eiq.js.map → connection-status-DjarASoU.js.map} +1 -1
  21. package/dist/_chunks/{contact-card-CymtNvy3.js → contact-card-Cv-Nwvac.js} +2 -2
  22. package/dist/_chunks/{contact-card-CymtNvy3.js.map → contact-card-Cv-Nwvac.js.map} +1 -1
  23. package/dist/_chunks/{contact-profile-card-CAL66GaH.js → contact-profile-card-DMXWBBkU.js} +2 -2
  24. package/dist/_chunks/{contact-profile-card-CAL66GaH.js.map → contact-profile-card-DMXWBBkU.js.map} +1 -1
  25. package/dist/_chunks/{cycle-calculator-ZMDvToIm.js → cycle-calculator-Dd-XbKmZ.js} +2 -2
  26. package/dist/_chunks/{cycle-calculator-ZMDvToIm.js.map → cycle-calculator-Dd-XbKmZ.js.map} +1 -1
  27. package/dist/_chunks/{document-preview-5xs64jME.js → document-preview-WvJKHJOP.js} +2 -2
  28. package/dist/_chunks/{document-preview-5xs64jME.js.map → document-preview-WvJKHJOP.js.map} +1 -1
  29. package/dist/_chunks/{due-date-calculator-Dr2cDa64.js → due-date-calculator-Dl6SyMHO.js} +3 -3
  30. package/dist/_chunks/{due-date-calculator-Dr2cDa64.js.map → due-date-calculator-Dl6SyMHO.js.map} +1 -1
  31. package/dist/_chunks/{entity-summary-BbqqYqF1.js → entity-summary-DGCBQDt1.js} +2 -2
  32. package/dist/_chunks/{entity-summary-BbqqYqF1.js.map → entity-summary-DGCBQDt1.js.map} +1 -1
  33. package/dist/_chunks/{face-scheme-e2M2HJGz.js → face-scheme-DlcQaQVR.js} +2 -2
  34. package/dist/_chunks/{face-scheme-e2M2HJGz.js.map → face-scheme-DlcQaQVR.js.map} +1 -1
  35. package/dist/_chunks/{fetal-weight-CkIwJgiH.js → fetal-weight-DmZzMRzB.js} +2 -2
  36. package/dist/_chunks/{fetal-weight-CkIwJgiH.js.map → fetal-weight-DmZzMRzB.js.map} +1 -1
  37. package/dist/_chunks/{finished-terminal-DXVAfhRr.js → finished-terminal-BKTFUk3S.js} +2 -2
  38. package/dist/_chunks/{finished-terminal-DXVAfhRr.js.map → finished-terminal-BKTFUk3S.js.map} +1 -1
  39. package/dist/_chunks/{forgot-password-form-YQVzSskq.js → forgot-password-form-Bc_UPax6.js} +2 -2
  40. package/dist/_chunks/{forgot-password-form-YQVzSskq.js.map → forgot-password-form-Bc_UPax6.js.map} +1 -1
  41. package/dist/_chunks/{gestational-age-calculator-Dv3IePb-.js → gestational-age-calculator-DmzYdW5e.js} +3 -3
  42. package/dist/_chunks/{gestational-age-calculator-Dv3IePb-.js.map → gestational-age-calculator-DmzYdW5e.js.map} +1 -1
  43. package/dist/_chunks/{hcg-doubling-DdyUt4gz.js → hcg-doubling-Tr72PetS.js} +2 -2
  44. package/dist/_chunks/{hcg-doubling-DdyUt4gz.js.map → hcg-doubling-Tr72PetS.js.map} +1 -1
  45. package/dist/_chunks/{heatmap-BiwC7Gdx.js → heatmap-CNxCDl0D.js} +2 -2
  46. package/dist/_chunks/{heatmap-BiwC7Gdx.js.map → heatmap-CNxCDl0D.js.map} +1 -1
  47. package/dist/_chunks/{kit-extensions-BOsUgWnE.js → kit-extensions-DZJRmDI6.js} +7 -7
  48. package/dist/_chunks/{kit-extensions-BOsUgWnE.js.map → kit-extensions-DZJRmDI6.js.map} +1 -1
  49. package/dist/_chunks/{login-dev-card-B6-zCFq3.js → login-dev-card-D7orCfJT.js} +2 -2
  50. package/dist/_chunks/{login-dev-card-B6-zCFq3.js.map → login-dev-card-D7orCfJT.js.map} +1 -1
  51. package/dist/_chunks/map-view-Bny79cWa.js +856 -0
  52. package/dist/_chunks/map-view-Bny79cWa.js.map +1 -0
  53. package/dist/_chunks/{marketplace-app-shell-C-4QF6mp.js → marketplace-app-shell-CPNVBVLH.js} +2 -2
  54. package/dist/_chunks/{marketplace-app-shell-C-4QF6mp.js.map → marketplace-app-shell-CPNVBVLH.js.map} +1 -1
  55. package/dist/_chunks/motion-is-off-BvAuNV5O.js +15 -0
  56. package/dist/_chunks/motion-is-off-BvAuNV5O.js.map +1 -0
  57. package/dist/_chunks/{notes-panel-Cz621DWV.js → notes-panel-DXMTObBv.js} +3 -3
  58. package/dist/_chunks/{notes-panel-Cz621DWV.js.map → notes-panel-DXMTObBv.js.map} +1 -1
  59. package/dist/_chunks/{operator-hero-BELhrv9o.js → operator-hero-BWayX73x.js} +71 -62
  60. package/dist/_chunks/{operator-hero-BELhrv9o.js.map → operator-hero-BWayX73x.js.map} +1 -1
  61. package/dist/_chunks/{patient-details-RsT3SaYh.js → patient-details-DdtXBNjt.js} +2 -2
  62. package/dist/_chunks/{patient-details-RsT3SaYh.js.map → patient-details-DdtXBNjt.js.map} +1 -1
  63. package/dist/_chunks/{patient-search-CxuqVUTB.js → patient-search-DDRDCjZi.js} +439 -482
  64. package/dist/_chunks/patient-search-DDRDCjZi.js.map +1 -0
  65. package/dist/_chunks/{patient-summary-card-BjZErlbt.js → patient-summary-card-CGHz-Bvm.js} +2 -2
  66. package/dist/_chunks/{patient-summary-card-BjZErlbt.js.map → patient-summary-card-CGHz-Bvm.js.map} +1 -1
  67. package/dist/_chunks/{payment-automation-upsell-u5EuFyCY.js → payment-automation-upsell-D7yaD4u1.js} +3 -3
  68. package/dist/_chunks/{payment-automation-upsell-u5EuFyCY.js.map → payment-automation-upsell-D7yaD4u1.js.map} +1 -1
  69. package/dist/_chunks/{payment-request-card-IR83TJax.js → payment-request-card-BmV2pLoM.js} +2 -2
  70. package/dist/_chunks/{payment-request-card-IR83TJax.js.map → payment-request-card-BmV2pLoM.js.map} +1 -1
  71. package/dist/_chunks/{periodontal-chart-DqdUEFxK.js → periodontal-chart-Bjz7O4wT.js} +2 -2
  72. package/dist/_chunks/{periodontal-chart-DqdUEFxK.js.map → periodontal-chart-Bjz7O4wT.js.map} +1 -1
  73. package/dist/_chunks/{periodontal-chart-card-CCkzStlm.js → periodontal-chart-card-CxEXHl2x.js} +2 -2
  74. package/dist/_chunks/{periodontal-chart-card-CCkzStlm.js.map → periodontal-chart-card-CxEXHl2x.js.map} +1 -1
  75. package/dist/_chunks/{periodontal-diagnosis-CF1d_0yl.js → periodontal-diagnosis-xheWfi4g.js} +2 -2
  76. package/dist/_chunks/{periodontal-diagnosis-CF1d_0yl.js.map → periodontal-diagnosis-xheWfi4g.js.map} +1 -1
  77. package/dist/_chunks/{periodontal-risk-chart-D2zyID0H.js → periodontal-risk-chart-BBPB9wf1.js} +2 -2
  78. package/dist/_chunks/{periodontal-risk-chart-D2zyID0H.js.map → periodontal-risk-chart-BBPB9wf1.js.map} +1 -1
  79. package/dist/_chunks/{practice-profile-hero-Bb4YyxHA.js → practice-profile-hero-Cw4NZp0A.js} +2 -2
  80. package/dist/_chunks/{practice-profile-hero-Bb4YyxHA.js.map → practice-profile-hero-Cw4NZp0A.js.map} +1 -1
  81. package/dist/_chunks/practice-results-BlxfBx-D.js +2181 -0
  82. package/dist/_chunks/practice-results-BlxfBx-D.js.map +1 -0
  83. package/dist/_chunks/{pregnancy-dating-Cs8xpZA8.js → pregnancy-dating-BvorzHrd.js} +3 -3
  84. package/dist/_chunks/{pregnancy-dating-Cs8xpZA8.js.map → pregnancy-dating-BvorzHrd.js.map} +1 -1
  85. package/dist/_chunks/{pregnancy-weight-gain-B_Zldlzq.js → pregnancy-weight-gain-DQoOM8QV.js} +2 -2
  86. package/dist/_chunks/{pregnancy-weight-gain-B_Zldlzq.js.map → pregnancy-weight-gain-DQoOM8QV.js.map} +1 -1
  87. package/dist/_chunks/{privacy-mask-DbEKI-Jv.js → privacy-mask-Dc3kdkCR.js} +2 -2
  88. package/dist/_chunks/{privacy-mask-DbEKI-Jv.js.map → privacy-mask-Dc3kdkCR.js.map} +1 -1
  89. package/dist/_chunks/{public-footer-DGjLTtNK.js → public-footer-CB7ruuLI.js} +295 -260
  90. package/dist/_chunks/public-footer-CB7ruuLI.js.map +1 -0
  91. package/dist/_chunks/{public-header.agent-_ArDD1Xr.js → public-header.agent-Db4wm6_S.js} +203 -193
  92. package/dist/_chunks/public-header.agent-Db4wm6_S.js.map +1 -0
  93. package/dist/_chunks/{registration-form-Cq5_OSIL.js → registration-form-Lw9T7IXr.js} +2 -2
  94. package/dist/_chunks/{registration-form-Cq5_OSIL.js.map → registration-form-Lw9T7IXr.js.map} +1 -1
  95. package/dist/_chunks/{reserved.agent-BMkapgom.js → reserved.agent-D2jwJPac.js} +21 -31
  96. package/dist/_chunks/reserved.agent-D2jwJPac.js.map +1 -0
  97. package/dist/_chunks/{reset-password-form-BVsL2fOJ.js → reset-password-form-C93SH0Tx.js} +2 -2
  98. package/dist/_chunks/{reset-password-form-BVsL2fOJ.js.map → reset-password-form-C93SH0Tx.js.map} +1 -1
  99. package/dist/_chunks/{reviews-panel-B03auSpQ.js → reviews-panel-CfJPEkH7.js} +2 -2
  100. package/dist/_chunks/{reviews-panel-B03auSpQ.js.map → reviews-panel-CfJPEkH7.js.map} +1 -1
  101. package/dist/_chunks/{section-card-D1sV4Voz.js → section-card-DFr2wGal.js} +2 -2
  102. package/dist/_chunks/{section-card-D1sV4Voz.js.map → section-card-DFr2wGal.js.map} +1 -1
  103. package/dist/_chunks/{send-registration-link-form-OgPomrZN.js → send-registration-link-form-DfbTjrEK.js} +2 -2
  104. package/dist/_chunks/{send-registration-link-form-OgPomrZN.js.map → send-registration-link-form-DfbTjrEK.js.map} +1 -1
  105. package/dist/_chunks/{signed-out-frame-CPow3aCZ.js → signed-out-frame-bh7fn_Px.js} +2 -2
  106. package/dist/_chunks/{signed-out-frame-CPow3aCZ.js.map → signed-out-frame-bh7fn_Px.js.map} +1 -1
  107. package/dist/_chunks/{stat-BFKZV50y.js → stat-WGLdn5Vn.js} +113 -107
  108. package/dist/_chunks/stat-WGLdn5Vn.js.map +1 -0
  109. package/dist/_chunks/{task-card-TSJjuuDe.js → task-card-DqVoitRk.js} +2 -2
  110. package/dist/_chunks/{task-card-TSJjuuDe.js.map → task-card-DqVoitRk.js.map} +1 -1
  111. package/dist/_chunks/{task-editor-gqWF1jI6.js → task-editor-D--LwVrg.js} +2 -2
  112. package/dist/_chunks/{task-editor-gqWF1jI6.js.map → task-editor-D--LwVrg.js.map} +1 -1
  113. package/dist/_chunks/{task-tray-DrXfMCuf.js → task-tray-C6j8HVMv.js} +2 -2
  114. package/dist/_chunks/{task-tray-DrXfMCuf.js.map → task-tray-C6j8HVMv.js.map} +1 -1
  115. package/dist/_chunks/{tasks-panel-OuIaydK5.js → tasks-panel-D6PuF4MQ.js} +2 -2
  116. package/dist/_chunks/{tasks-panel-OuIaydK5.js.map → tasks-panel-D6PuF4MQ.js.map} +1 -1
  117. package/dist/_chunks/{timeline-CKUaBZOx.js → timeline-AMqE-c2T.js} +2 -2
  118. package/dist/_chunks/{timeline-CKUaBZOx.js.map → timeline-AMqE-c2T.js.map} +1 -1
  119. package/dist/_chunks/{use-appointment-details-read-DvK7Looa.js → use-appointment-details-read-BK_Gw1GG.js} +5 -5
  120. package/dist/_chunks/{use-appointment-details-read-DvK7Looa.js.map → use-appointment-details-read-BK_Gw1GG.js.map} +1 -1
  121. package/dist/_chunks/{workflow-map-DWk-rZse.js → workflow-map-B4XkcET0.js} +2 -2
  122. package/dist/_chunks/{workflow-map-DWk-rZse.js.map → workflow-map-B4XkcET0.js.map} +1 -1
  123. package/dist/_chunks/{workflow-webhook-action-DILFqAVd.js → workflow-webhook-action-CtBn5JvO.js} +2 -2
  124. package/dist/_chunks/{workflow-webhook-action-DILFqAVd.js.map → workflow-webhook-action-CtBn5JvO.js.map} +1 -1
  125. package/dist/agent-catalog.json +6 -6
  126. package/dist/agent-i18n/en.json +2 -2
  127. package/dist/components/_shared/motion-is-off.d.ts +7 -0
  128. package/dist/components/_shared/motion-is-off.d.ts.map +1 -0
  129. package/dist/components/anamnesis-card/index.js +1 -1
  130. package/dist/components/anamnesis-summary-card/index.js +1 -1
  131. package/dist/components/appointment-details-panel/index.js +1 -1
  132. package/dist/components/bishop-score/index.js +1 -1
  133. package/dist/components/bmi-calculator/index.js +1 -1
  134. package/dist/components/booking/index.js +1 -1
  135. package/dist/components/booking/step-focus.d.ts +0 -6
  136. package/dist/components/booking/step-focus.d.ts.map +1 -1
  137. package/dist/components/card/card.d.ts.map +1 -1
  138. package/dist/components/card/index.js +1 -1
  139. package/dist/components/clinical-note-card/index.js +1 -1
  140. package/dist/components/connection-status/index.js +1 -1
  141. package/dist/components/contact-card/index.js +1 -1
  142. package/dist/components/contact-profile-card/index.js +1 -1
  143. package/dist/components/cycle-calculator/index.js +1 -1
  144. package/dist/components/document-preview/index.js +1 -1
  145. package/dist/components/due-date-calculator/index.js +2 -2
  146. package/dist/components/entity-summary/index.js +1 -1
  147. package/dist/components/face-scheme/index.js +1 -1
  148. package/dist/components/fetal-weight/index.js +1 -1
  149. package/dist/components/finished-terminal/index.js +1 -1
  150. package/dist/components/gestational-age-calculator/index.js +1 -1
  151. package/dist/components/hcg-doubling/index.js +1 -1
  152. package/dist/components/heatmap/index.js +1 -1
  153. package/dist/components/map-view/index.js +1 -1
  154. package/dist/components/map-view/map-view.d.ts +16 -0
  155. package/dist/components/map-view/map-view.d.ts.map +1 -1
  156. package/dist/components/notes-panel/index.js +1 -1
  157. package/dist/components/operator-hero/index.js +1 -1
  158. package/dist/components/operator-hero/operator-hero.d.ts.map +1 -1
  159. package/dist/components/patient-details/index.js +1 -1
  160. package/dist/components/patient-search/index.js +1 -1
  161. package/dist/components/patient-search/patient-search.d.ts +6 -2
  162. package/dist/components/patient-search/patient-search.d.ts.map +1 -1
  163. package/dist/components/patient-summary-card/index.js +1 -1
  164. package/dist/components/payment-card/index.js +1 -1
  165. package/dist/components/periodontal-chart/index.js +1 -1
  166. package/dist/components/periodontal-chart-card/index.js +1 -1
  167. package/dist/components/periodontal-diagnosis/index.js +1 -1
  168. package/dist/components/periodontal-risk-chart/index.js +1 -1
  169. package/dist/components/practice-profile-hero/index.js +1 -1
  170. package/dist/components/practice-results/index.js +1 -1
  171. package/dist/components/practice-results/practice-results.agent.d.ts.map +1 -1
  172. package/dist/components/practice-results/practice-results.d.ts +15 -2
  173. package/dist/components/practice-results/practice-results.d.ts.map +1 -1
  174. package/dist/components/pregnancy-dating/index.js +1 -1
  175. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  176. package/dist/components/public-footer/index.js +1 -1
  177. package/dist/components/public-footer/public-footer.d.ts +23 -0
  178. package/dist/components/public-footer/public-footer.d.ts.map +1 -1
  179. package/dist/components/public-header/index.js +1 -1
  180. package/dist/components/public-header/public-header.d.ts +7 -0
  181. package/dist/components/public-header/public-header.d.ts.map +1 -1
  182. package/dist/components/reviews-panel/index.js +1 -1
  183. package/dist/components/rich-text-editor/index.js +1 -1
  184. package/dist/components/section-card/index.js +1 -1
  185. package/dist/components/stat/index.js +1 -1
  186. package/dist/components/stat/stat.d.ts +7 -0
  187. package/dist/components/stat/stat.d.ts.map +1 -1
  188. package/dist/components/task-card/index.js +1 -1
  189. package/dist/components/task-editor/index.js +1 -1
  190. package/dist/components/task-tray/index.js +1 -1
  191. package/dist/components/tasks-panel/index.js +1 -1
  192. package/dist/components/timeline/index.js +1 -1
  193. package/dist/components/workflow/index.js +1 -1
  194. package/dist/core.css +1 -1
  195. package/dist/host-compat.css +4 -1
  196. package/dist/i18n/locales/ar.d.ts +1 -0
  197. package/dist/i18n/locales/ar.d.ts.map +1 -1
  198. package/dist/i18n/locales/ar.js +2 -1
  199. package/dist/i18n/locales/ar.js.map +1 -1
  200. package/dist/i18n/locales/de.d.ts +1 -0
  201. package/dist/i18n/locales/de.d.ts.map +1 -1
  202. package/dist/i18n/locales/de.js +2 -1
  203. package/dist/i18n/locales/de.js.map +1 -1
  204. package/dist/i18n/locales/el.d.ts +1 -0
  205. package/dist/i18n/locales/el.d.ts.map +1 -1
  206. package/dist/i18n/locales/el.js +2 -1
  207. package/dist/i18n/locales/el.js.map +1 -1
  208. package/dist/i18n/locales/en.d.ts +1 -0
  209. package/dist/i18n/locales/en.d.ts.map +1 -1
  210. package/dist/i18n/locales/en.js +1 -0
  211. package/dist/i18n/locales/en.js.map +1 -1
  212. package/dist/i18n/locales/es.d.ts +1 -0
  213. package/dist/i18n/locales/es.d.ts.map +1 -1
  214. package/dist/i18n/locales/es.js +2 -1
  215. package/dist/i18n/locales/es.js.map +1 -1
  216. package/dist/i18n/locales/fr.d.ts +1 -0
  217. package/dist/i18n/locales/fr.d.ts.map +1 -1
  218. package/dist/i18n/locales/fr.js +2 -1
  219. package/dist/i18n/locales/fr.js.map +1 -1
  220. package/dist/i18n/locales/hi.d.ts +1 -0
  221. package/dist/i18n/locales/hi.d.ts.map +1 -1
  222. package/dist/i18n/locales/hi.js +2 -1
  223. package/dist/i18n/locales/hi.js.map +1 -1
  224. package/dist/i18n/locales/it.d.ts +1 -0
  225. package/dist/i18n/locales/it.d.ts.map +1 -1
  226. package/dist/i18n/locales/it.js +2 -1
  227. package/dist/i18n/locales/it.js.map +1 -1
  228. package/dist/i18n/locales/ja.d.ts +1 -0
  229. package/dist/i18n/locales/ja.d.ts.map +1 -1
  230. package/dist/i18n/locales/ja.js +2 -1
  231. package/dist/i18n/locales/ja.js.map +1 -1
  232. package/dist/i18n/locales/nl.d.ts +1 -0
  233. package/dist/i18n/locales/nl.d.ts.map +1 -1
  234. package/dist/i18n/locales/nl.js +2 -1
  235. package/dist/i18n/locales/nl.js.map +1 -1
  236. package/dist/i18n/locales/pl.d.ts +1 -0
  237. package/dist/i18n/locales/pl.d.ts.map +1 -1
  238. package/dist/i18n/locales/pl.js +2 -1
  239. package/dist/i18n/locales/pl.js.map +1 -1
  240. package/dist/i18n/locales/pt.d.ts +1 -0
  241. package/dist/i18n/locales/pt.d.ts.map +1 -1
  242. package/dist/i18n/locales/pt.js +2 -1
  243. package/dist/i18n/locales/pt.js.map +1 -1
  244. package/dist/i18n/locales/ro.d.ts +1 -0
  245. package/dist/i18n/locales/ro.d.ts.map +1 -1
  246. package/dist/i18n/locales/ro.js +2 -1
  247. package/dist/i18n/locales/ro.js.map +1 -1
  248. package/dist/i18n/locales/ru.d.ts +1 -0
  249. package/dist/i18n/locales/ru.d.ts.map +1 -1
  250. package/dist/i18n/locales/ru.js +2 -1
  251. package/dist/i18n/locales/ru.js.map +1 -1
  252. package/dist/i18n/locales/sq.d.ts +1 -0
  253. package/dist/i18n/locales/sq.d.ts.map +1 -1
  254. package/dist/i18n/locales/sq.js +2 -1
  255. package/dist/i18n/locales/sq.js.map +1 -1
  256. package/dist/i18n/locales/sv.d.ts +1 -0
  257. package/dist/i18n/locales/sv.d.ts.map +1 -1
  258. package/dist/i18n/locales/sv.js +2 -1
  259. package/dist/i18n/locales/sv.js.map +1 -1
  260. package/dist/i18n/locales/tr.d.ts +1 -0
  261. package/dist/i18n/locales/tr.d.ts.map +1 -1
  262. package/dist/i18n/locales/tr.js +2 -1
  263. package/dist/i18n/locales/tr.js.map +1 -1
  264. package/dist/i18n/locales/zh.d.ts +1 -0
  265. package/dist/i18n/locales/zh.d.ts.map +1 -1
  266. package/dist/i18n/locales/zh.js +2 -1
  267. package/dist/i18n/locales/zh.js.map +1 -1
  268. package/dist/index.js +60 -60
  269. package/dist/locales/ar.json +2 -1
  270. package/dist/locales/de.json +2 -1
  271. package/dist/locales/el.json +2 -1
  272. package/dist/locales/en.json +1 -0
  273. package/dist/locales/es.json +2 -1
  274. package/dist/locales/fr.json +2 -1
  275. package/dist/locales/hi.json +2 -1
  276. package/dist/locales/it.json +2 -1
  277. package/dist/locales/ja.json +2 -1
  278. package/dist/locales/nl.json +2 -1
  279. package/dist/locales/pl.json +2 -1
  280. package/dist/locales/pt.json +2 -1
  281. package/dist/locales/ro.json +2 -1
  282. package/dist/locales/ru.json +2 -1
  283. package/dist/locales/sq.json +2 -1
  284. package/dist/locales/sv.json +2 -1
  285. package/dist/locales/tr.json +2 -1
  286. package/dist/locales/zh.json +2 -1
  287. package/dist/patterns/anamnesis/index.js +1 -1
  288. package/dist/patterns/calendar/index.js +1 -1
  289. package/dist/patterns/forgot-password-form/index.js +1 -1
  290. package/dist/patterns/login-form/index.js +1 -1
  291. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  292. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  293. package/dist/patterns/registration-form/index.js +1 -1
  294. package/dist/patterns/reset-password-form/index.js +1 -1
  295. package/dist/patterns/send-registration-link-form/index.js +1 -1
  296. package/dist/patterns/signed-out-frame/index.js +1 -1
  297. package/dist/patterns/workflow-webhook-action/index.js +1 -1
  298. package/dist/tokens.css +1 -1
  299. package/package.json +1 -1
  300. package/dist/_chunks/map-view-Dn7aXZJw.js +0 -731
  301. package/dist/_chunks/map-view-Dn7aXZJw.js.map +0 -1
  302. package/dist/_chunks/patient-search-CxuqVUTB.js.map +0 -1
  303. package/dist/_chunks/practice-results-BByRCIuR.js +0 -1977
  304. package/dist/_chunks/practice-results-BByRCIuR.js.map +0 -1
  305. package/dist/_chunks/public-footer-DGjLTtNK.js.map +0 -1
  306. package/dist/_chunks/public-header.agent-_ArDD1Xr.js.map +0 -1
  307. package/dist/_chunks/reserved.agent-BMkapgom.js.map +0 -1
  308. package/dist/_chunks/stat-BFKZV50y.js.map +0 -1
@@ -0,0 +1,2181 @@
1
+ import { jsx as n, jsxs as g, Fragment as It } from "react/jsx-runtime";
2
+ import { forwardRef as Pt, useState as te, useRef as B, useMemo as F, useImperativeHandle as Mt, useCallback as _, useEffect as ee } from "react";
3
+ import { c as q } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as N } from "react-i18next";
5
+ import { A as oe } from "./alert-C4WKViaS.js";
6
+ import { A as Re } from "./avatar-Dp5apm1d.js";
7
+ import { B as le } from "./button-DohK_Ak_.js";
8
+ import { D as K } from "./dropdown-menu-CqxBthww.js";
9
+ import { E as At } from "./empty-state-DwJ5YNzz.js";
10
+ import { M as Tt } from "./map-view-Bny79cWa.js";
11
+ import { R as Se } from "./rating-CGYpg5dj.js";
12
+ import { S as $ } from "./sheet-uZZXaO_S.js";
13
+ import { S as Ft } from "./skeleton-tTWJpvAq.js";
14
+ import { S as _t } from "./spinner-CoflYlEx.js";
15
+ import { B as D } from "./badge-BUk4RjTS.js";
16
+ import { u as Ht } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
17
+ import { u as Ne } from "./use-media-query-CcAx5SMM.js";
18
+ import { m as Vt } from "./motion-is-off-BvAuNV5O.js";
19
+ import { b as Ot, a as De } from "./format-price-BcFBa-WP.js";
20
+ import { u as zt } from "./registry-DvAUVLHh.js";
21
+ import { c as Bt } from "./createLucideIcon-DhHxpK9K.js";
22
+ import { R as $t } from "./refresh-cw-DnI0cLFC.js";
23
+ import { C as qe } from "./chevron-down-DWE7GSq9.js";
24
+ import { L as Ue } from "./languages-CGLX6Qpe.js";
25
+ import { S as Ge } from "./shield-check-DCJALLVh.js";
26
+ import { H as Ze } from "./heart--qCA4ffe.js";
27
+ import { M as ce } from "./map-pin-BaY37-Km.js";
28
+ import { C as Dt } from "./calendar-clock-hbObjfGY.js";
29
+ import { C as Et } from "./calendar-plus-BFrIRE4r.js";
30
+ /**
31
+ * @license lucide-react v1.22.0 - ISC
32
+ *
33
+ * This source code is licensed under the ISC license.
34
+ * See the LICENSE file in the root directory of this source tree.
35
+ */
36
+ const jt = [
37
+ [
38
+ "path",
39
+ {
40
+ d: "M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",
41
+ key: "169xi5"
42
+ }
43
+ ],
44
+ ["path", { d: "M15 5.764v15", key: "1pn4in" }],
45
+ ["path", { d: "M9 3.236v15", key: "1uimfh" }]
46
+ ], Kt = Bt("map", jt), qt = {
47
+ id: "practice-results",
48
+ // `scroll` backs scroll_to_result (light highlight, no selection). focus_pin
49
+ // follows the pin-click rules: on a map variant at `lg` and up it chooses the
50
+ // card and the choice persists until another pin, a card or the map is
51
+ // clicked, so it is `select_single`; elsewhere it is a light highlight. The active variant is consumer-owned via props, so there is
52
+ // no `view_change` action — variant is read-only state, not an operation; and
53
+ // there is no in-component routing, so no `navigate`.
54
+ capabilities: ["scroll", "select_single"],
55
+ state: {
56
+ variant: {
57
+ type: "string",
58
+ descriptionKey: "ui.agent.practiceResults.state.variant",
59
+ description: "Active variant — one of `split-list-map`, `map-first`, `rich-cards`.",
60
+ read: (e) => e.getVariant()
61
+ }
62
+ },
63
+ actions: {
64
+ scroll_to_result: {
65
+ safety: "read",
66
+ argsType: "{ id: string }",
67
+ argsSchema: {
68
+ type: "object",
69
+ properties: {
70
+ id: {
71
+ type: "string",
72
+ description: "Stable result id (the data-result-id of the card)."
73
+ }
74
+ },
75
+ required: ["id"]
76
+ },
77
+ idempotent: !0,
78
+ descriptionKey: "ui.agent.practiceResults.actions.scrollToResult",
79
+ description: 'Scroll the result card with the given id into the visible viewport and give it a light highlight. It does not choose the card: no "Selected on the map" tag.',
80
+ examples: [
81
+ { args: { id: "practice-42" }, note: "Scroll to a specific result." }
82
+ ],
83
+ invoke: (e, t) => {
84
+ e.scrollToResult(t.id);
85
+ }
86
+ },
87
+ focus_pin: {
88
+ safety: "read",
89
+ argsType: "{ id: string }",
90
+ argsSchema: {
91
+ type: "object",
92
+ properties: {
93
+ id: {
94
+ type: "string",
95
+ description: "Stable result id whose map pin to choose."
96
+ }
97
+ },
98
+ required: ["id"]
99
+ },
100
+ idempotent: !0,
101
+ descriptionKey: "ui.agent.practiceResults.actions.focusPin",
102
+ description: 'Choose the result with the given id as a pin click would. On a map variant at lg width and up the card gets the strong highlight and the "Selected on the map" tag, kept until another pin, a card or the map is clicked. On rich-cards or a narrow screen it gives a light highlight only.',
103
+ examples: [
104
+ {
105
+ args: { id: "practice-42" },
106
+ note: "Choose the matching result and pin, as a pin click does."
107
+ }
108
+ ],
109
+ invoke: (e, t) => {
110
+ e.focusPin(t.id);
111
+ }
112
+ }
113
+ },
114
+ domHooks: {
115
+ root: {
116
+ attr: "data-component",
117
+ value: "practice-results",
118
+ 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."
119
+ },
120
+ instanceId: {
121
+ attr: "data-component-id",
122
+ sourceProp: "id",
123
+ description: "Sourced from the id prop."
124
+ },
125
+ item: {
126
+ attr: "data-result-id",
127
+ description: 'Stable result id emitted on each rendered result card. Used by scroll_to_result / focus_pin to address a single result. The non-focusable card group is labelled by the practice-result-{id}-name heading, which contains data-component="practice-result-name-link": a visible link to result.href that navigates without firing onResultSelect or click telemetry. Each card also carries up to two CTA anchors: data-component="practice-result-open-cta" (practice page; absent when the consumer sets showCardOpenButton=false) and data-component="practice-result-book-cta" (booking flow; data-slot-aware="true" when it deep-links to a next slot). Card content carries its own read-only hooks: data-component="practice-result-tagline", data-component="practice-result-description", data-component="practice-result-latest-review" (the newest approved review as one truncated line under the rating, from latestReview; its text span carries the language of the review as lang; absent without latestReview), and data-component="practice-result-price" (the kit-formatted first-visit cost: firstVisitPrice supports fixed, from and range amounts plus an optional practice-written label; it takes precedence over the older firstVisitPriceCents fixed-price field. Absent when neither price is set).'
128
+ }
129
+ }
130
+ }, Ut = 13, Ee = [
131
+ "distance",
132
+ "rating",
133
+ "next-available",
134
+ "price",
135
+ "relevance"
136
+ ];
137
+ function We(e, t, i) {
138
+ const s = `languages.${e}`;
139
+ return i.exists(s) ? t(s) : e.toUpperCase();
140
+ }
141
+ function E(e, t) {
142
+ if (typeof window > "u") return;
143
+ const i = window.track;
144
+ try {
145
+ i == null || i(e, t);
146
+ } catch {
147
+ }
148
+ }
149
+ function ne(e, t, i, s) {
150
+ const r = e.findIndex((o) => o.id === t);
151
+ if (r < 0) return;
152
+ const a = e[r];
153
+ a && (E("serp_result_clicked", { resultId: t, source: i, position: r }), s(a, i));
154
+ }
155
+ function Gt(e, t) {
156
+ const s = (t.lat - e.lat) * Math.PI / 180, r = (t.lng - e.lng) * Math.PI / 180, a = e.lat * Math.PI / 180, o = t.lat * Math.PI / 180, u = Math.sin(s / 2), l = Math.sin(r / 2), p = u * u + Math.cos(a) * Math.cos(o) * l * l;
157
+ return 2 * 6371 * Math.asin(Math.min(1, Math.sqrt(p)));
158
+ }
159
+ function Zt(e, t, i) {
160
+ var r;
161
+ const s = [];
162
+ for (const a of e) {
163
+ const o = a.field ?? a.key, u = (((r = i == null ? void 0 : i[a.key]) == null ? void 0 : r.length) ?? 0) > 0, l = a.type === "boolean" || a.type !== "options" && a.options.length === 0 && (u || t.some(
164
+ (p) => typeof p[o] == "boolean"
165
+ ));
166
+ !l && a.options.length === 0 || s.push({ ...a, boolean: l, booleanField: o });
167
+ }
168
+ return s;
169
+ }
170
+ function Wt(e, t, i) {
171
+ return !t || Object.keys(t).length === 0 ? e : e.filter((s) => {
172
+ for (const r of i) {
173
+ const a = t[r.key];
174
+ if (!a || a.length === 0) continue;
175
+ if (r.boolean) {
176
+ if (s[r.booleanField] !== !0) return !1;
177
+ continue;
178
+ }
179
+ const o = r.key === "insurance" ? s.insurances : r.key === "language" ? s.languages : s[r.key];
180
+ if (!Array.isArray(o) || !(r.multi ? a.some((l) => o.includes(l)) : o.includes(a[0]))) return !1;
181
+ }
182
+ return !0;
183
+ });
184
+ }
185
+ function Qt(e) {
186
+ const t = e.firstVisitPrice && Number.isFinite(e.firstVisitPrice.minCents) ? e.firstVisitPrice.minCents : e.firstVisitPriceCents;
187
+ return t != null && Number.isFinite(t) && t >= 0 ? t : 1 / 0;
188
+ }
189
+ function Jt(e) {
190
+ return e.firstVisitPrice && Number.isFinite(e.firstVisitPrice.minCents) ? e.firstVisitPrice.kind === "fixed" : !0;
191
+ }
192
+ function je(e, t) {
193
+ return e == null && t == null ? 0 : e == null ? 1 : t == null ? -1 : e - t;
194
+ }
195
+ function Xt(e, t, i) {
196
+ const s = e.map((a) => {
197
+ const o = a.location ? a.location.distanceKm ?? (i ? Gt(i, a.location) : void 0) : void 0;
198
+ return {
199
+ result: a,
200
+ distanceKm: o,
201
+ price: t === "price" ? Qt(a) : void 0,
202
+ fixed: t === "price" ? Jt(a) : !1
203
+ };
204
+ }), r = (a, o) => {
205
+ var u, l, p, c;
206
+ switch (t) {
207
+ case "distance":
208
+ return je(a.distanceKm, o.distanceKm);
209
+ case "price": {
210
+ const h = a.price ?? 1 / 0, m = o.price ?? 1 / 0;
211
+ return h !== m ? h - m : h !== 1 / 0 && a.fixed !== o.fixed ? a.fixed ? -1 : 1 : je(a.distanceKm, o.distanceKm);
212
+ }
213
+ case "rating": {
214
+ const h = ((u = a.result.rating) == null ? void 0 : u.value) ?? -1;
215
+ return (((l = o.result.rating) == null ? void 0 : l.value) ?? -1) - h;
216
+ }
217
+ case "next-available": {
218
+ const h = ((p = a.result.nextAvailableSlot) == null ? void 0 : p.dateTime) ?? "", m = ((c = o.result.nextAvailableSlot) == null ? void 0 : c.dateTime) ?? "";
219
+ return !h && !m ? 0 : h ? m ? h.localeCompare(m) : -1 : 1;
220
+ }
221
+ case "relevance":
222
+ default:
223
+ return 0;
224
+ }
225
+ };
226
+ return [...s].sort(r).map(
227
+ ({ result: a, distanceKm: o }) => o != null && a.location ? {
228
+ ...a,
229
+ location: { ...a.location, distanceKm: o }
230
+ } : a
231
+ );
232
+ }
233
+ function Yt(e) {
234
+ let t = -1 / 0, i = 1 / 0, s = -1 / 0, r = 1 / 0, a = !1;
235
+ for (const o of e) {
236
+ if (!o.location) continue;
237
+ a = !0;
238
+ const { lat: u, lng: l } = o.location;
239
+ u > t && (t = u), u < i && (i = u), l > s && (s = l), l < r && (r = l);
240
+ }
241
+ if (a)
242
+ return { north: t, south: i, east: s, west: r };
243
+ }
244
+ const en = q(
245
+ "ds:flex ds:w-full ds:flex-col ds:text-[var(--foreground)] ds:gap-[var(--spacing-md)]",
246
+ {
247
+ variants: {
248
+ variant: {
249
+ "split-list-map": "",
250
+ "map-first": "",
251
+ "rich-cards": ""
252
+ }
253
+ },
254
+ defaultVariants: { variant: "split-list-map" }
255
+ }
256
+ );
257
+ function Qe({
258
+ heading: e,
259
+ headingLevel: t,
260
+ intro: i,
261
+ totalCount: s,
262
+ searchCentreLabel: r
263
+ }) {
264
+ const { t: a } = N("ui"), o = `h${t}`;
265
+ if (!e && !i && s == null) return null;
266
+ const u = s != null ? r ? a("practiceResults.results.heading", {
267
+ count: s,
268
+ place: r
269
+ }) : a("practiceResults.results.summary", { count: s }) : void 0;
270
+ return /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
271
+ e ? /* @__PURE__ */ n(o, { className: "type-title-section ds:m-0 ds:text-[var(--foreground)]", children: e }) : null,
272
+ i ? /* @__PURE__ */ n("p", { className: "type-body ds:m-0 ds:text-[var(--muted-foreground)]", children: i }) : null,
273
+ u ? /* @__PURE__ */ n(
274
+ "p",
275
+ {
276
+ className: "type-body-sm ds:m-0 ds:text-[var(--muted-foreground)]",
277
+ "aria-live": "polite",
278
+ children: u
279
+ }
280
+ ) : null
281
+ ] });
282
+ }
283
+ const de = q(
284
+ [
285
+ "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
286
+ "ds:min-h-[var(--min-target-size)]",
287
+ "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
288
+ "ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]",
289
+ "ds:rounded-[var(--radius-full)]",
290
+ "type-label",
291
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
292
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
293
+ "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
294
+ "ds:forced-colors:focus-visible:outline-[CanvasText]"
295
+ ].join(" "),
296
+ {
297
+ variants: {
298
+ state: {
299
+ idle: "ds:bg-[var(--secondary)] ds:text-[var(--foreground)] ds:border ds:border-[color:var(--border)] ds:hover:bg-[color-mix(in_srgb,var(--primary)_8%,var(--secondary))]",
300
+ active: "ds:bg-[var(--primary)] ds:text-[var(--primary-foreground)] ds:border ds:border-transparent ds:font-[var(--font-weight-semibold)]"
301
+ }
302
+ },
303
+ defaultVariants: { state: "idle" }
304
+ }
305
+ ), tn = q(
306
+ "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
307
+ {
308
+ variants: {
309
+ placement: {
310
+ inline: "",
311
+ // Floating chrome on map-first: soft `--popover` surface so chips
312
+ // read over the map without losing contrast. Same surface as
313
+ // dropdowns / sheets — themed and forced-colors safe.
314
+ floating: [
315
+ "ds:rounded-[var(--radius-full)]",
316
+ "ds:bg-[var(--popover)] ds:shadow-[var(--shadow-md)]",
317
+ "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
318
+ "ds:pt-[var(--spacing-2xs)] ds:pb-[var(--spacing-2xs)]"
319
+ ].join(" ")
320
+ }
321
+ },
322
+ defaultVariants: { placement: "inline" }
323
+ }
324
+ ), nn = q(
325
+ [
326
+ "ds:ms-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
327
+ "ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]",
328
+ "type-label ds:text-[color:var(--muted-foreground)]",
329
+ "ds:rounded-[var(--radius-sm)]",
330
+ "ds:hover:text-[color:var(--foreground)]",
331
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
332
+ "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
333
+ ].join(" ")
334
+ );
335
+ function Je({
336
+ facets: e,
337
+ value: t,
338
+ onChange: i,
339
+ floating: s
340
+ }) {
341
+ const { t: r } = N("ui"), a = F(() => t ?? {}, [t]), o = F(
342
+ () => Object.values(a).some((c) => c && c.length > 0),
343
+ [a]
344
+ ), u = (c, h) => {
345
+ const m = { ...a };
346
+ h.length === 0 ? delete m[c] : m[c] = h, i(m), E("serp_filter_changed", { key: c, values: h });
347
+ }, l = (c) => {
348
+ var m;
349
+ const h = (((m = a[c]) == null ? void 0 : m.length) ?? 0) > 0;
350
+ u(c, h ? [] : ["true"]);
351
+ }, p = (c, h) => {
352
+ const m = a[c.key] ?? [], x = m.includes(h);
353
+ let b;
354
+ c.multi ? b = x ? m.filter((R) => R !== h) : [...m, h] : b = x ? [] : [h], u(c.key, b);
355
+ };
356
+ return e.length === 0 ? null : /* @__PURE__ */ g(
357
+ "div",
358
+ {
359
+ "data-component": "practice-results-filters",
360
+ role: "group",
361
+ "aria-label": r("practiceResults.filters.label"),
362
+ className: tn({
363
+ placement: s ? "floating" : "inline"
364
+ }),
365
+ children: [
366
+ e.map((c) => {
367
+ const h = c.boolean, m = a[c.key] ?? [], x = m.length > 0;
368
+ if (h)
369
+ return /* @__PURE__ */ n(
370
+ "button",
371
+ {
372
+ type: "button",
373
+ "aria-pressed": x,
374
+ "aria-label": c.label,
375
+ onClick: () => l(c.key),
376
+ className: de({
377
+ state: x ? "active" : "idle"
378
+ }),
379
+ children: /* @__PURE__ */ n("span", { children: c.label })
380
+ },
381
+ c.key
382
+ );
383
+ const b = x ? ` (${m.length})` : "";
384
+ return /* @__PURE__ */ g(K.Root, { children: [
385
+ /* @__PURE__ */ n(K.Trigger, { asChild: !0, children: /* @__PURE__ */ g(
386
+ "button",
387
+ {
388
+ type: "button",
389
+ "aria-label": `${c.label}${b}`,
390
+ className: de({
391
+ state: x ? "active" : "idle"
392
+ }),
393
+ children: [
394
+ /* @__PURE__ */ g("span", { children: [
395
+ c.label,
396
+ b
397
+ ] }),
398
+ /* @__PURE__ */ n(
399
+ qe,
400
+ {
401
+ "aria-hidden": "true",
402
+ className: "ds:size-3.5 ds:shrink-0"
403
+ }
404
+ )
405
+ ]
406
+ }
407
+ ) }),
408
+ /* @__PURE__ */ n(K.Content, { sideOffset: 8, align: "start", children: c.options.map((R) => /* @__PURE__ */ n(
409
+ K.CheckboxItem,
410
+ {
411
+ checked: m.includes(R.value),
412
+ onSelect: (w) => {
413
+ c.multi && w.preventDefault(), p(c, R.value);
414
+ },
415
+ children: R.label
416
+ },
417
+ R.value
418
+ )) })
419
+ ] }, c.key);
420
+ }),
421
+ o ? /* @__PURE__ */ n(
422
+ "button",
423
+ {
424
+ type: "button",
425
+ onClick: () => {
426
+ i({}), E("serp_filter_changed", { key: "*", values: [] });
427
+ },
428
+ className: nn(),
429
+ children: r("practiceResults.filters.clear")
430
+ }
431
+ ) : null
432
+ ]
433
+ }
434
+ );
435
+ }
436
+ function Ce({ value: e, options: t, onChange: i }) {
437
+ const { t: s } = N("ui"), r = (a) => {
438
+ switch (a) {
439
+ case "distance":
440
+ return s("practiceResults.sort.distance");
441
+ case "rating":
442
+ return s("practiceResults.sort.rating");
443
+ case "next-available":
444
+ return s("practiceResults.sort.nextAvailable");
445
+ case "price":
446
+ return s("practiceResults.sort.price");
447
+ case "relevance":
448
+ default:
449
+ return s("practiceResults.sort.relevance");
450
+ }
451
+ };
452
+ return /* @__PURE__ */ g(K.Root, { children: [
453
+ /* @__PURE__ */ n(K.Trigger, { asChild: !0, children: /* @__PURE__ */ g(
454
+ "button",
455
+ {
456
+ type: "button",
457
+ "aria-label": `${s("practiceResults.sort.label")}: ${r(e)}`,
458
+ className: de({ state: "idle" }),
459
+ children: [
460
+ /* @__PURE__ */ g("span", { children: [
461
+ s("practiceResults.sort.label"),
462
+ ": ",
463
+ r(e)
464
+ ] }),
465
+ /* @__PURE__ */ n(qe, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" })
466
+ ]
467
+ }
468
+ ) }),
469
+ /* @__PURE__ */ n(K.Content, { sideOffset: 8, align: "end", children: /* @__PURE__ */ n(
470
+ K.RadioGroup,
471
+ {
472
+ value: e,
473
+ onValueChange: (a) => {
474
+ const o = a;
475
+ o !== e && (i(o), E("serp_sort_changed", { sort: o }));
476
+ },
477
+ children: t.map((a) => /* @__PURE__ */ n(K.RadioItem, { value: a, children: r(a) }, a))
478
+ }
479
+ ) })
480
+ ] });
481
+ }
482
+ function an({ distanceKm: e }) {
483
+ const { t, i18n: i } = N("ui"), s = F(() => {
484
+ if (e < 1) return t("practiceResults.distance.below");
485
+ const r = new Intl.NumberFormat(i.language, {
486
+ maximumFractionDigits: 1
487
+ }).format(e);
488
+ return t("practiceResults.distance.km", { distance: r });
489
+ }, [e, t, i.language]);
490
+ return /* @__PURE__ */ n(D, { variant: "neutral", leading: /* @__PURE__ */ n(ce, { "aria-hidden": "true" }), children: s });
491
+ }
492
+ const Ke = q(
493
+ [
494
+ "ds:w-[12rem] ds:h-[8rem] ds:shrink-0",
495
+ "ds:rounded-[var(--radius-md)] ds:overflow-hidden"
496
+ ].join(" "),
497
+ {
498
+ variants: {
499
+ state: {
500
+ // Tonal address-block placeholder — renders the MapPin glyph
501
+ // + address text on a `--muted` surface. Used when the consumer
502
+ // hasn't provided `googleMapsApiKey`; carries the spatial cue
503
+ // (location is here, even if we can't draw the map).
504
+ placeholder: "ds:flex ds:flex-col ds:items-start ds:justify-end ds:gap-[var(--spacing-2xs)] ds:bg-[var(--muted)] ds:text-[var(--muted-foreground)] ds:p-[var(--spacing-sm)]",
505
+ image: "ds:[object-fit:cover]"
506
+ }
507
+ },
508
+ defaultVariants: { state: "placeholder" }
509
+ }
510
+ );
511
+ function sn() {
512
+ if (typeof document > "u") return "4945a3";
513
+ const e = getComputedStyle(document.documentElement).getPropertyValue("--map-marker-color").trim(), t = /^#?([0-9a-fA-F]{6})$/.exec(e);
514
+ return t ? t[1] : "4945a3";
515
+ }
516
+ function rn({
517
+ apiKey: e,
518
+ center: t,
519
+ zoom: i = 14,
520
+ address: s,
521
+ addressLang: r
522
+ }) {
523
+ const { t: a } = N("ui");
524
+ if (!e)
525
+ return /* @__PURE__ */ g(
526
+ "div",
527
+ {
528
+ "aria-hidden": s ? void 0 : "true",
529
+ className: Ke({ state: "placeholder" }),
530
+ children: [
531
+ /* @__PURE__ */ n(ce, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
532
+ s ? /* @__PURE__ */ n(
533
+ "span",
534
+ {
535
+ lang: r,
536
+ dir: "auto",
537
+ className: "type-meta ds:[overflow-wrap:anywhere]",
538
+ children: s
539
+ }
540
+ ) : null
541
+ ]
542
+ }
543
+ );
544
+ const o = sn(), u = `https://maps.googleapis.com/maps/api/staticmap?center=${t.lat},${t.lng}&zoom=${i}&size=240x160&scale=2&markers=color:0x${o}%7C${t.lat},${t.lng}&key=${encodeURIComponent(e)}`;
545
+ return /* @__PURE__ */ n(
546
+ "img",
547
+ {
548
+ src: u,
549
+ alt: a("practiceResults.thumbnail.alt"),
550
+ loading: "lazy",
551
+ decoding: "async",
552
+ width: 240,
553
+ height: 160,
554
+ className: Ke({ state: "image" })
555
+ }
556
+ );
557
+ }
558
+ function on({ tagline: e, lang: t }) {
559
+ return e ? /* @__PURE__ */ n(
560
+ "span",
561
+ {
562
+ "data-component": "practice-result-tagline",
563
+ lang: t,
564
+ dir: "auto",
565
+ className: "type-body-sm ds:font-[var(--font-weight-medium)] ds:text-[var(--foreground)]",
566
+ children: e
567
+ }
568
+ ) : null;
569
+ }
570
+ function ln(e) {
571
+ if (typeof e != "string") return;
572
+ const t = e.trim().replace(/_/g, "-");
573
+ if (t)
574
+ try {
575
+ return Intl.getCanonicalLocales(t)[0] ? t : void 0;
576
+ } catch {
577
+ return;
578
+ }
579
+ }
580
+ function Xe({
581
+ review: e
582
+ }) {
583
+ const { t } = N("ui"), i = typeof (e == null ? void 0 : e.text) == "string" ? e.text.trim() : "";
584
+ return !e || !i ? null : /* @__PURE__ */ g(
585
+ "p",
586
+ {
587
+ "data-component": "practice-result-latest-review",
588
+ className: "type-body-sm ds:m-0 ds:flex ds:min-w-0 ds:gap-[var(--spacing-xs)] ds:text-[var(--muted-foreground)]",
589
+ children: [
590
+ /* @__PURE__ */ n("span", { className: "ds:shrink-0", children: t("practiceResults.card.latestReview") }),
591
+ " ",
592
+ /* @__PURE__ */ n(
593
+ "span",
594
+ {
595
+ lang: ln(e.lang),
596
+ dir: "auto",
597
+ className: "ds:min-w-0 ds:truncate",
598
+ children: i
599
+ }
600
+ )
601
+ ]
602
+ }
603
+ );
604
+ }
605
+ const cn = q(
606
+ "type-body-sm ds:m-0 ds:text-[var(--muted-foreground)] ds:whitespace-pre-line ds:break-words",
607
+ {
608
+ variants: {
609
+ density: {
610
+ compact: "ds:line-clamp-2",
611
+ rich: "ds:line-clamp-3"
612
+ }
613
+ },
614
+ defaultVariants: { density: "compact" }
615
+ }
616
+ );
617
+ function Ye({
618
+ description: e,
619
+ density: t,
620
+ lang: i
621
+ }) {
622
+ return e ? /* @__PURE__ */ n(
623
+ "p",
624
+ {
625
+ "data-component": "practice-result-description",
626
+ lang: i,
627
+ dir: "auto",
628
+ className: cn({ density: t }),
629
+ children: e
630
+ }
631
+ ) : null;
632
+ }
633
+ function dn(e, t, i, s) {
634
+ if (e.kind === "fixed")
635
+ return Ot(
636
+ e.minCents,
637
+ t,
638
+ i,
639
+ s("common.freeOfCharge")
640
+ );
641
+ const r = De(e.minCents, t, i);
642
+ return e.kind === "range" && e.maxCents != null && Number.isFinite(e.maxCents) && e.maxCents > e.minCents ? s("practiceResults.card.priceRange", {
643
+ min: r,
644
+ max: De(e.maxCents, t, i)
645
+ }) : s("practiceResults.card.priceFrom", { price: r });
646
+ }
647
+ const un = q(
648
+ "ds:min-w-0 ds:max-w-full ds:[overflow-wrap:anywhere]",
649
+ {
650
+ variants: {
651
+ practiceWritten: { true: "ds:truncate" }
652
+ }
653
+ }
654
+ );
655
+ function mn({
656
+ price: e,
657
+ cents: t,
658
+ currencyCode: i = "EUR"
659
+ }) {
660
+ var m;
661
+ const { t: s, i18n: r } = N("ui"), a = e && Number.isFinite(e.minCents) ? e : void 0, o = (a == null ? void 0 : a.kind) ?? "fixed", u = (a == null ? void 0 : a.minCents) ?? t, l = a == null ? void 0 : a.maxCents, p = F(
662
+ () => u == null ? void 0 : dn(
663
+ { kind: o, minCents: u, maxCents: l },
664
+ i,
665
+ r.language ?? "en",
666
+ s
667
+ ),
668
+ [o, u, l, i, r.language, s]
669
+ );
670
+ if (p === void 0) return null;
671
+ const c = (m = a == null ? void 0 : a.label) == null ? void 0 : m.trim().replace(/:$/, "").trim(), h = c || s("practiceResults.card.firstVisitPrice");
672
+ return /* @__PURE__ */ g(
673
+ "span",
674
+ {
675
+ "data-component": "practice-result-price",
676
+ className: "type-body-sm ds:flex ds:min-w-0 ds:max-w-full ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)] ds:text-start ds:text-[var(--muted-foreground)] ds:sm:@min-[280px]/result-heading:max-w-[45%] ds:sm:@min-[280px]/result-heading:items-end ds:sm:@min-[280px]/result-heading:text-end",
677
+ children: [
678
+ /* @__PURE__ */ n(
679
+ "span",
680
+ {
681
+ dir: "auto",
682
+ title: h,
683
+ className: un({
684
+ practiceWritten: !!c
685
+ }),
686
+ children: h
687
+ }
688
+ ),
689
+ /* @__PURE__ */ n("span", { className: "ds:sr-only", children: ": " }),
690
+ /* @__PURE__ */ n(
691
+ D,
692
+ {
693
+ variant: "accentSoft",
694
+ size: "lg",
695
+ dir: "auto",
696
+ className: "ds:h-auto ds:min-h-6 ds:min-w-0 ds:max-w-full ds:whitespace-normal ds:[overflow-wrap:anywhere]",
697
+ children: p
698
+ }
699
+ )
700
+ ]
701
+ }
702
+ );
703
+ }
704
+ function Le({ time: e }) {
705
+ const { t } = N("ui");
706
+ return /* @__PURE__ */ g("span", { className: "type-body-sm ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
707
+ /* @__PURE__ */ n(
708
+ Dt,
709
+ {
710
+ "aria-hidden": "true",
711
+ className: "ds:size-4 ds:text-[var(--primary)]"
712
+ }
713
+ ),
714
+ t("practiceResults.nextSlot.summary", { time: e })
715
+ ] });
716
+ }
717
+ function et({
718
+ result: e,
719
+ openLabel: t,
720
+ bookLabel: i,
721
+ nextSlotText: s,
722
+ onOpenClick: r,
723
+ onBookClick: a
724
+ }) {
725
+ const { t: o } = N("ui"), u = e.nextAvailableSlot, l = (u == null ? void 0 : u.bookingHref) ?? e.bookingHref ?? e.href, p = u && s ? o("practiceResults.nextSlot.cta", { time: s }) : i;
726
+ return /* @__PURE__ */ g("div", { className: "ds:mt-[var(--spacing-xs)] ds:flex ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)]", children: [
727
+ t !== void 0 ? /* @__PURE__ */ n(le, { intent: "secondary", size: "sm", asChild: !0, onClick: r, children: /* @__PURE__ */ g("a", { href: e.href, "data-component": "practice-result-open-cta", children: [
728
+ t,
729
+ " ",
730
+ /* @__PURE__ */ n("span", { className: "ds:sr-only", children: e.name })
731
+ ] }) }) : null,
732
+ /* @__PURE__ */ n(
733
+ le,
734
+ {
735
+ intent: "primary",
736
+ size: "sm",
737
+ asChild: !0,
738
+ startIcon: /* @__PURE__ */ n(Et, { "aria-hidden": "true" }),
739
+ onClick: a,
740
+ children: /* @__PURE__ */ g(
741
+ "a",
742
+ {
743
+ href: l,
744
+ "data-component": "practice-result-book-cta",
745
+ "data-slot-aware": u ? "true" : void 0,
746
+ children: [
747
+ p,
748
+ " ",
749
+ /* @__PURE__ */ n("span", { className: "ds:sr-only", children: e.name })
750
+ ]
751
+ }
752
+ )
753
+ }
754
+ )
755
+ ] });
756
+ }
757
+ const tt = q(
758
+ [
759
+ "ds:@container/result-card ds:relative ds:flex ds:w-full ds:cursor-pointer",
760
+ "ds:rounded-[var(--radius-lg)]",
761
+ "ds:bg-[var(--card)] ds:text-[var(--card-foreground)]",
762
+ "ds:border ds:border-[color:var(--card-border)]",
763
+ "ds:p-[var(--spacing-md)]",
764
+ "ds:gap-[var(--spacing-md)]",
765
+ "ds:transition-[box-shadow,border-color] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
766
+ "ds:hover:shadow-[var(--shadow-md)]",
767
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
768
+ "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
769
+ "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
770
+ // Use `data-highlighted` for the pin↔card sync visual so consumers
771
+ // can override (e.g. dim siblings) without fighting the kit.
772
+ "ds:data-[highlighted=true]:border-[color:var(--primary)]",
773
+ "ds:data-[highlighted=true]:shadow-[var(--shadow-md)]",
774
+ // HTP-7323: the card chosen by a pin click. Stronger than the hover
775
+ // highlight: a brand border (one extra ring, no layout shift), a tinted
776
+ // surface and the "Selected on the map" tag.
777
+ "ds:data-[selected=true]:border-[color:var(--primary)]",
778
+ "ds:data-[selected=true]:bg-[var(--primary-soft)]",
779
+ "ds:data-[selected=true]:shadow-[0_0_0_1px_var(--primary),var(--shadow-md)]",
780
+ // Extra room above the card when a pin click scrolls it to the top, for a
781
+ // sticky header other than PublicHeader (which already sets the page's
782
+ // `scroll-padding-block-start`). Default 0, so nothing is counted twice.
783
+ "ds:[scroll-margin-block-start:var(--practice-results-scroll-offset,0)]",
784
+ "ds:forced-colors:focus-visible:outline-[CanvasText]"
785
+ ].join(" "),
786
+ {
787
+ variants: {
788
+ density: {
789
+ compact: "",
790
+ rich: "ds:p-[var(--spacing-lg)] ds:gap-[var(--spacing-lg)]"
791
+ }
792
+ },
793
+ defaultVariants: { density: "compact" }
794
+ }
795
+ ), fn = q([
796
+ "ds:text-[var(--foreground)] ds:no-underline ds:hover:underline",
797
+ "ds:rounded-[var(--radius-xs)]",
798
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
799
+ "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
800
+ "ds:forced-colors:focus-visible:outline-[CanvasText]"
801
+ ]);
802
+ function pn({
803
+ result: e,
804
+ headingLevel: t
805
+ }) {
806
+ const i = `h${Te(t)}`;
807
+ return /* @__PURE__ */ n(
808
+ i,
809
+ {
810
+ id: `practice-result-${e.id}-name`,
811
+ dir: "auto",
812
+ className: "type-title-card ds:m-0 ds:min-w-0 ds:[overflow-wrap:anywhere] ds:text-[var(--foreground)]",
813
+ children: /* @__PURE__ */ n(
814
+ "a",
815
+ {
816
+ href: e.href,
817
+ dir: "auto",
818
+ "data-component": "practice-result-name-link",
819
+ className: fn(),
820
+ children: e.name
821
+ }
822
+ )
823
+ }
824
+ );
825
+ }
826
+ function nt({
827
+ result: e,
828
+ headingLevel: t,
829
+ selected: i = !1
830
+ }) {
831
+ var r, a;
832
+ const { t: s } = N("ui");
833
+ return /* @__PURE__ */ n(
834
+ "div",
835
+ {
836
+ "data-component": "practice-result-heading",
837
+ className: "ds:@container/result-heading ds:min-w-0 ds:flex-1",
838
+ children: /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:flex-col ds:items-start ds:gap-[var(--spacing-xs)] ds:sm:@min-[280px]/result-heading:flex-row ds:sm:@min-[280px]/result-heading:gap-[var(--spacing-md)]", children: [
839
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:w-full ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
840
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
841
+ /* @__PURE__ */ n(pn, { result: e, headingLevel: t }),
842
+ ((r = e.location) == null ? void 0 : r.distanceKm) != null ? /* @__PURE__ */ n(an, { distanceKm: e.location.distanceKm }) : null,
843
+ i ? /* @__PURE__ */ n(
844
+ D,
845
+ {
846
+ variant: "brand",
847
+ "data-component": "practice-result-selected-tag",
848
+ leading: /* @__PURE__ */ n(ce, { "aria-hidden": "true" }),
849
+ children: s("practiceResults.selectedOnMap")
850
+ }
851
+ ) : null
852
+ ] }),
853
+ e.subtitle ? /* @__PURE__ */ n("span", { className: "type-body-sm ds:text-[var(--muted-foreground)]", children: e.subtitle }) : null,
854
+ /* @__PURE__ */ n(on, { tagline: e.tagline, lang: e.contentLang }),
855
+ (a = e.location) != null && a.address ? /* @__PURE__ */ g(
856
+ "span",
857
+ {
858
+ "data-component": "practice-result-address",
859
+ className: "type-meta ds:text-[var(--muted-foreground)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]",
860
+ children: [
861
+ /* @__PURE__ */ n(ce, { "aria-hidden": "true", className: "ds:size-3.5 ds:shrink-0" }),
862
+ /* @__PURE__ */ n(
863
+ "span",
864
+ {
865
+ lang: e.contentLang,
866
+ dir: "auto",
867
+ className: "ds:min-w-0 ds:[overflow-wrap:anywhere]",
868
+ children: e.location.address
869
+ }
870
+ )
871
+ ]
872
+ }
873
+ ) : null
874
+ ] }),
875
+ /* @__PURE__ */ n(
876
+ mn,
877
+ {
878
+ price: e.firstVisitPrice,
879
+ cents: e.firstVisitPriceCents,
880
+ currencyCode: e.currencyCode
881
+ }
882
+ )
883
+ ] })
884
+ }
885
+ );
886
+ }
887
+ function at(e) {
888
+ const t = e.target.closest(
889
+ 'a, button, [role="button"], input, select, textarea, label'
890
+ );
891
+ return t !== null && t !== e.currentTarget && e.currentTarget.contains(t);
892
+ }
893
+ function Ie() {
894
+ return !(typeof window.matchMedia == "function" && !window.matchMedia("(hover: hover)").matches);
895
+ }
896
+ function Pe(e) {
897
+ try {
898
+ return e.matches(":focus-visible");
899
+ } catch {
900
+ return !0;
901
+ }
902
+ }
903
+ function it(e) {
904
+ if (e)
905
+ return (t) => {
906
+ const i = document.activeElement;
907
+ i && t.currentTarget.contains(i) && Pe(i) || e();
908
+ };
909
+ }
910
+ function st(e) {
911
+ if (e)
912
+ return (t) => {
913
+ t.currentTarget.contains(t.relatedTarget) || e();
914
+ };
915
+ }
916
+ function hn({
917
+ result: e,
918
+ headingLevel: t,
919
+ highlighted: i,
920
+ selected: s = !1,
921
+ onSelect: r,
922
+ onOpenClick: a,
923
+ onHover: o,
924
+ onLeave: u,
925
+ density: l = "compact",
926
+ openLabel: p,
927
+ bookLabel: c,
928
+ onBookClick: h,
929
+ nextSlotText: m,
930
+ maxInsuranceChips: x = 3,
931
+ maxLanguageChips: b = 4,
932
+ children: R
933
+ }) {
934
+ var X, G, Z, W;
935
+ const { t: w, i18n: L } = N("ui"), I = e.rating, C = (((X = e.languages) == null ? void 0 : X.length) ?? 0) > 0, T = (((G = e.insurances) == null ? void 0 : G.length) ?? 0) > 0, f = e.specializedInFearPatients, S = C || T || f, v = (e.languages ?? []).slice(0, b), P = (((Z = e.languages) == null ? void 0 : Z.length) ?? 0) - v.length, V = (e.insurances ?? []).slice(0, x), O = (((W = e.insurances) == null ? void 0 : W.length) ?? 0) - V.length;
936
+ return (
937
+ // 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.
938
+ /* @__PURE__ */ g(
939
+ "div",
940
+ {
941
+ "data-component": "practice-result-card",
942
+ "data-result-id": e.id,
943
+ "data-highlighted": i ? "true" : "false",
944
+ "data-selected": s ? "true" : "false",
945
+ role: "group",
946
+ "aria-labelledby": `practice-result-${e.id}-name`,
947
+ onClick: (H) => {
948
+ at(H) || r();
949
+ },
950
+ onMouseEnter: () => o(Ie()),
951
+ onFocus: (H) => o(Pe(H.target)),
952
+ onMouseLeave: it(u),
953
+ onBlur: st(u),
954
+ className: tt({ density: l }),
955
+ children: [
956
+ /* @__PURE__ */ n(
957
+ Re,
958
+ {
959
+ src: e.imageUrl,
960
+ alt: e.imageAlt,
961
+ name: e.name,
962
+ size: "lg",
963
+ shape: "rounded",
964
+ ratio: "4:3",
965
+ width: 64,
966
+ height: 48
967
+ }
968
+ ),
969
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
970
+ /* @__PURE__ */ n(
971
+ nt,
972
+ {
973
+ result: e,
974
+ headingLevel: t,
975
+ selected: s
976
+ }
977
+ ),
978
+ I && I.count > 0 ? /* @__PURE__ */ n(
979
+ Se,
980
+ {
981
+ value: I.value,
982
+ reviews: { count: I.count },
983
+ size: "sm"
984
+ }
985
+ ) : null,
986
+ /* @__PURE__ */ n(Xe, { review: e.latestReview }),
987
+ S ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
988
+ v.map((H) => /* @__PURE__ */ n(
989
+ D,
990
+ {
991
+ variant: "neutral",
992
+ leading: /* @__PURE__ */ n(Ue, { "aria-hidden": "true" }),
993
+ children: We(H, w, L)
994
+ },
995
+ `lang-${H}`
996
+ )),
997
+ P > 0 ? /* @__PURE__ */ n(D, { variant: "neutral", children: `+${P}` }) : null,
998
+ V.map((H) => /* @__PURE__ */ n(
999
+ D,
1000
+ {
1001
+ variant: "info",
1002
+ leading: /* @__PURE__ */ n(Ge, { "aria-hidden": "true" }),
1003
+ children: H
1004
+ },
1005
+ `ins-${H}`
1006
+ )),
1007
+ O > 0 ? /* @__PURE__ */ n(D, { variant: "neutral", children: `+${O}` }) : null,
1008
+ f ? /* @__PURE__ */ n(D, { variant: "info", leading: /* @__PURE__ */ n(Ze, { "aria-hidden": "true" }), children: w("practiceResults.fearPatient.label") }) : null
1009
+ ] }) : null,
1010
+ /* @__PURE__ */ n(
1011
+ Ye,
1012
+ {
1013
+ description: e.description,
1014
+ density: "compact",
1015
+ lang: e.contentLang
1016
+ }
1017
+ ),
1018
+ e.nextAvailableSlot && m ? /* @__PURE__ */ n(Le, { time: m }) : null,
1019
+ R,
1020
+ /* @__PURE__ */ n(
1021
+ et,
1022
+ {
1023
+ result: e,
1024
+ openLabel: p,
1025
+ bookLabel: c,
1026
+ nextSlotText: m,
1027
+ onOpenClick: a,
1028
+ onBookClick: h
1029
+ }
1030
+ )
1031
+ ] })
1032
+ ]
1033
+ }
1034
+ )
1035
+ );
1036
+ }
1037
+ function gn({
1038
+ result: e,
1039
+ headingLevel: t,
1040
+ apiKey: i,
1041
+ highlighted: s,
1042
+ selected: r = !1,
1043
+ onSelect: a,
1044
+ onOpenClick: o,
1045
+ onBookClick: u,
1046
+ onHover: l,
1047
+ onLeave: p,
1048
+ openLabel: c,
1049
+ bookLabel: h
1050
+ }) {
1051
+ var C, T;
1052
+ const { t: m, i18n: x } = N("ui"), b = F(() => {
1053
+ if (e.nextAvailableSlot)
1054
+ try {
1055
+ return new Intl.DateTimeFormat(x.language, {
1056
+ weekday: "short",
1057
+ hour: "numeric",
1058
+ minute: "numeric"
1059
+ }).format(new Date(e.nextAvailableSlot.dateTime));
1060
+ } catch {
1061
+ return e.nextAvailableSlot.dateTime;
1062
+ }
1063
+ }, [e.nextAvailableSlot, x.language]), R = (((C = e.languages) == null ? void 0 : C.length) ?? 0) > 0, w = (((T = e.insurances) == null ? void 0 : T.length) ?? 0) > 0, L = e.specializedInFearPatients, I = R || w || L;
1064
+ return (
1065
+ // 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.
1066
+ /* @__PURE__ */ g(
1067
+ "div",
1068
+ {
1069
+ "data-component": "practice-result-card",
1070
+ "data-result-id": e.id,
1071
+ "data-density": "rich",
1072
+ "data-highlighted": s ? "true" : "false",
1073
+ "data-selected": r ? "true" : "false",
1074
+ role: "group",
1075
+ "aria-labelledby": `practice-result-${e.id}-name`,
1076
+ onClick: (f) => {
1077
+ at(f) || a();
1078
+ },
1079
+ onMouseEnter: () => l(Ie()),
1080
+ onFocus: (f) => l(Pe(f.target)),
1081
+ onMouseLeave: it(p),
1082
+ onBlur: st(p),
1083
+ className: tt({ density: "rich" }),
1084
+ children: [
1085
+ e.location ? /* @__PURE__ */ n("div", { className: "ds:hidden ds:@min-[640px]/result-card:block", children: /* @__PURE__ */ n(
1086
+ rn,
1087
+ {
1088
+ apiKey: i,
1089
+ center: {
1090
+ lat: e.location.lat,
1091
+ lng: e.location.lng
1092
+ },
1093
+ address: e.location.address,
1094
+ addressLang: e.contentLang
1095
+ }
1096
+ ) }) : null,
1097
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
1098
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-md)]", children: [
1099
+ /* @__PURE__ */ n(
1100
+ Re,
1101
+ {
1102
+ src: e.imageUrl,
1103
+ alt: e.imageAlt,
1104
+ name: e.name,
1105
+ size: "md",
1106
+ shape: "rounded",
1107
+ ratio: "4:3",
1108
+ width: 53,
1109
+ height: 40
1110
+ }
1111
+ ),
1112
+ /* @__PURE__ */ n(
1113
+ nt,
1114
+ {
1115
+ result: e,
1116
+ headingLevel: t,
1117
+ selected: r
1118
+ }
1119
+ )
1120
+ ] }),
1121
+ e.rating && e.rating.count > 0 ? /* @__PURE__ */ n(
1122
+ Se,
1123
+ {
1124
+ value: e.rating.value,
1125
+ reviews: { count: e.rating.count },
1126
+ size: "md"
1127
+ }
1128
+ ) : null,
1129
+ /* @__PURE__ */ n(Xe, { review: e.latestReview }),
1130
+ I ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: [
1131
+ R ? (e.languages ?? []).map((f) => /* @__PURE__ */ n(
1132
+ D,
1133
+ {
1134
+ variant: "neutral",
1135
+ leading: /* @__PURE__ */ n(Ue, { "aria-hidden": "true" }),
1136
+ children: We(f, m, x)
1137
+ },
1138
+ `lang-${f}`
1139
+ )) : null,
1140
+ w ? (e.insurances ?? []).map((f) => /* @__PURE__ */ n(
1141
+ D,
1142
+ {
1143
+ variant: "info",
1144
+ leading: /* @__PURE__ */ n(Ge, { "aria-hidden": "true" }),
1145
+ children: f
1146
+ },
1147
+ `ins-${f}`
1148
+ )) : null,
1149
+ L ? /* @__PURE__ */ n(D, { variant: "info", leading: /* @__PURE__ */ n(Ze, { "aria-hidden": "true" }), children: m("practiceResults.fearPatient.label") }) : null
1150
+ ] }) : null,
1151
+ /* @__PURE__ */ n(
1152
+ Ye,
1153
+ {
1154
+ description: e.description,
1155
+ density: "rich",
1156
+ lang: e.contentLang
1157
+ }
1158
+ ),
1159
+ e.nextAvailableSlot && b ? /* @__PURE__ */ n(Le, { time: b }) : null,
1160
+ /* @__PURE__ */ n(
1161
+ et,
1162
+ {
1163
+ result: e,
1164
+ openLabel: c,
1165
+ bookLabel: h,
1166
+ nextSlotText: b,
1167
+ onOpenClick: o,
1168
+ onBookClick: u
1169
+ }
1170
+ )
1171
+ ] })
1172
+ ]
1173
+ }
1174
+ )
1175
+ );
1176
+ }
1177
+ function Me({
1178
+ results: e,
1179
+ headingLevel: t,
1180
+ hoveredId: i,
1181
+ selectedId: s,
1182
+ softId: r,
1183
+ onCardHover: a,
1184
+ onCardLeave: o,
1185
+ onCardSelect: u,
1186
+ onCardOpenClick: l,
1187
+ onCardBookClick: p,
1188
+ openLabel: c,
1189
+ bookLabel: h,
1190
+ formatNextSlot: m,
1191
+ onLoadMore: x,
1192
+ loadingMore: b,
1193
+ loadingSkeletons: R,
1194
+ density: w = "compact",
1195
+ apiKey: L,
1196
+ containerRef: I
1197
+ }) {
1198
+ const { t: C } = N("ui"), T = B(null);
1199
+ return ee(() => {
1200
+ if (!x) return;
1201
+ const f = T.current;
1202
+ if (!f || typeof IntersectionObserver > "u") return;
1203
+ const S = new IntersectionObserver(
1204
+ (v) => {
1205
+ for (const P of v)
1206
+ P.isIntersecting && (E("serp_load_more", {
1207
+ currentCount: e.length
1208
+ }), x());
1209
+ },
1210
+ { root: null, rootMargin: "200px" }
1211
+ );
1212
+ return S.observe(f), () => S.disconnect();
1213
+ }, [x, e.length]), R ? /* @__PURE__ */ n(
1214
+ "div",
1215
+ {
1216
+ role: "status",
1217
+ "aria-live": "polite",
1218
+ "aria-label": C("practiceResults.loading"),
1219
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
1220
+ children: Array.from({ length: 4 }).map((f, S) => /* @__PURE__ */ n(
1221
+ Ft,
1222
+ {
1223
+ variant: "rounded",
1224
+ height: w === "rich" ? "11rem" : "7rem"
1225
+ },
1226
+ `pr-skel-${S}`
1227
+ ))
1228
+ }
1229
+ ) : /* @__PURE__ */ g(
1230
+ "div",
1231
+ {
1232
+ ref: I,
1233
+ "data-component": "practice-results-list",
1234
+ role: "list",
1235
+ "aria-label": C("practiceResults.list.label"),
1236
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:overflow-y-auto",
1237
+ children: [
1238
+ e.map((f) => /* @__PURE__ */ n("div", { role: "listitem", children: w === "rich" ? /* @__PURE__ */ n(
1239
+ gn,
1240
+ {
1241
+ result: f,
1242
+ headingLevel: t,
1243
+ apiKey: L,
1244
+ highlighted: i === f.id || s === f.id || r === f.id,
1245
+ selected: s === f.id,
1246
+ onSelect: () => u(f.id),
1247
+ onOpenClick: () => l(f.id),
1248
+ onBookClick: () => p(f.id),
1249
+ onHover: (S) => a(f.id, S),
1250
+ onLeave: o,
1251
+ openLabel: c,
1252
+ bookLabel: h
1253
+ }
1254
+ ) : /* @__PURE__ */ n(
1255
+ hn,
1256
+ {
1257
+ result: f,
1258
+ headingLevel: t,
1259
+ highlighted: i === f.id || s === f.id || r === f.id,
1260
+ selected: s === f.id,
1261
+ onSelect: () => u(f.id),
1262
+ onOpenClick: () => l(f.id),
1263
+ onBookClick: () => p(f.id),
1264
+ onHover: (S) => a(f.id, S),
1265
+ onLeave: o,
1266
+ openLabel: c,
1267
+ bookLabel: h,
1268
+ nextSlotText: m(f)
1269
+ }
1270
+ ) }, f.id)),
1271
+ x ? /* @__PURE__ */ n(
1272
+ "div",
1273
+ {
1274
+ ref: T,
1275
+ "aria-hidden": "true",
1276
+ className: "ds:flex ds:items-center ds:justify-center ds:py-[var(--spacing-md)]",
1277
+ children: b ? /* @__PURE__ */ n(_t, { size: "md", variant: "pulse" }) : /* @__PURE__ */ n("span", { className: "ds:size-1" })
1278
+ }
1279
+ ) : null
1280
+ ]
1281
+ }
1282
+ );
1283
+ }
1284
+ function vn({
1285
+ result: e,
1286
+ nextSlotText: t
1287
+ }) {
1288
+ const i = e.rating;
1289
+ return /* @__PURE__ */ g(
1290
+ "div",
1291
+ {
1292
+ "data-component": "practice-result-map-card",
1293
+ className: "ds:flex ds:[inline-size:16rem] ds:max-w-full ds:items-center ds:gap-[var(--spacing-sm)] ds:rounded-[var(--radius-lg)] ds:border ds:border-[color:var(--card-border)] ds:bg-[var(--card)] ds:p-[var(--spacing-sm)] ds:text-[var(--card-foreground)] ds:shadow-[var(--shadow-lg)]",
1294
+ children: [
1295
+ /* @__PURE__ */ n(
1296
+ Re,
1297
+ {
1298
+ src: e.imageUrl,
1299
+ name: e.name,
1300
+ size: "lg",
1301
+ shape: "rounded",
1302
+ ratio: "4:3",
1303
+ width: 64,
1304
+ height: 48
1305
+ }
1306
+ ),
1307
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
1308
+ /* @__PURE__ */ n(
1309
+ "span",
1310
+ {
1311
+ dir: "auto",
1312
+ className: "type-title-card ds:min-w-0 ds:[overflow-wrap:anywhere] ds:text-[var(--foreground)]",
1313
+ children: e.name
1314
+ }
1315
+ ),
1316
+ i && i.count > 0 ? /* @__PURE__ */ n(
1317
+ Se,
1318
+ {
1319
+ value: i.value,
1320
+ reviews: { count: i.count },
1321
+ size: "sm"
1322
+ }
1323
+ ) : null,
1324
+ e.nextAvailableSlot && t ? /* @__PURE__ */ n(Le, { time: t }) : null
1325
+ ] })
1326
+ ]
1327
+ }
1328
+ );
1329
+ }
1330
+ function ke({
1331
+ results: e,
1332
+ searchCentre: t,
1333
+ zoom: i,
1334
+ apiKey: s,
1335
+ mapId: r,
1336
+ hoveredId: a,
1337
+ selectedId: o,
1338
+ onMapClick: u,
1339
+ formatNextSlot: l,
1340
+ onPinClick: p,
1341
+ onPinHover: c,
1342
+ onPinFirstInteract: h,
1343
+ onBoundsChange: m,
1344
+ consentGranted: x,
1345
+ onConsentRequest: b,
1346
+ mapHandleRef: R
1347
+ }) {
1348
+ const { t: w } = N("ui"), L = F(
1349
+ () => e.filter(
1350
+ (v) => !!v.location
1351
+ ).map((v) => ({
1352
+ id: v.id,
1353
+ position: {
1354
+ lat: v.location.lat,
1355
+ lng: v.location.lng
1356
+ },
1357
+ label: v.name
1358
+ })),
1359
+ [e]
1360
+ ), I = F(
1361
+ () => L.map((v) => ({ ...v.position, id: v.id })),
1362
+ [L]
1363
+ ), C = F(
1364
+ () => L.map((v) => v.id).sort().join("|"),
1365
+ [L]
1366
+ ), T = F(() => {
1367
+ if (t) return t;
1368
+ const v = Yt(e);
1369
+ return v ? {
1370
+ lat: (v.north + v.south) / 2,
1371
+ lng: (v.east + v.west) / 2
1372
+ } : { lat: 45.4642, lng: 9.19 };
1373
+ }, [e, t]), f = F(
1374
+ () => l ? (v) => {
1375
+ const P = e.find((V) => V.id === v);
1376
+ return P ? /* @__PURE__ */ n(
1377
+ vn,
1378
+ {
1379
+ result: P,
1380
+ nextSlotText: l(P)
1381
+ }
1382
+ ) : null;
1383
+ } : void 0,
1384
+ [l, e]
1385
+ ), S = _(
1386
+ (v, { userInteraction: P }) => {
1387
+ m == null || m(v), P && E("serp_map_panned", { bounds: v });
1388
+ },
1389
+ [m]
1390
+ );
1391
+ return /* @__PURE__ */ n(
1392
+ "div",
1393
+ {
1394
+ "data-component": "practice-results-map-panel",
1395
+ className: "ds:relative ds:flex ds:size-full ds:min-h-[24rem] ds:flex-col",
1396
+ children: /* @__PURE__ */ n(
1397
+ Tt,
1398
+ {
1399
+ ref: R,
1400
+ apiKey: s ?? "",
1401
+ mapId: r,
1402
+ center: T,
1403
+ zoom: i,
1404
+ markers: L,
1405
+ fitToPoints: I,
1406
+ fitKey: C,
1407
+ selectedMarkerId: o,
1408
+ hoveredMarkerId: a,
1409
+ renderMarkerCard: f,
1410
+ consentGranted: !!x,
1411
+ onConsentRequest: b,
1412
+ onBoundsChange: S,
1413
+ onMarkerClick: (v) => {
1414
+ if (v == null) {
1415
+ u();
1416
+ return;
1417
+ }
1418
+ c(v), h(v), p(v);
1419
+ },
1420
+ ariaLabel: w("practiceResults.map.label"),
1421
+ size: "fill",
1422
+ surface: "bordered",
1423
+ className: "ds:size-full"
1424
+ }
1425
+ )
1426
+ }
1427
+ );
1428
+ }
1429
+ function Ae({
1430
+ variantBodyProps: e
1431
+ }) {
1432
+ const {
1433
+ facets: t,
1434
+ value: i,
1435
+ sortOptions: s,
1436
+ onChange: r,
1437
+ heading: a,
1438
+ intro: o,
1439
+ totalCount: u,
1440
+ searchCentre: l
1441
+ } = e;
1442
+ return !a && !o && u == null && t.length === 0 && s.length === 0 ? null : /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
1443
+ /* @__PURE__ */ n(
1444
+ Qe,
1445
+ {
1446
+ heading: a,
1447
+ headingLevel: e.headingLevel,
1448
+ intro: o,
1449
+ totalCount: u,
1450
+ searchCentreLabel: l == null ? void 0 : l.label
1451
+ }
1452
+ ),
1453
+ t.length > 0 ? /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)]", children: [
1454
+ /* @__PURE__ */ n(
1455
+ Je,
1456
+ {
1457
+ facets: t,
1458
+ value: i.facets,
1459
+ onChange: (p) => r({ ...i, facets: p })
1460
+ }
1461
+ ),
1462
+ s.length > 0 ? /* @__PURE__ */ n(
1463
+ Ce,
1464
+ {
1465
+ options: s,
1466
+ value: i.sort ?? "relevance",
1467
+ onChange: (p) => r({ ...i, sort: p })
1468
+ }
1469
+ ) : null
1470
+ ] }) : s.length > 0 ? /* @__PURE__ */ n("div", { className: "ds:flex ds:justify-end", children: /* @__PURE__ */ n(
1471
+ Ce,
1472
+ {
1473
+ options: s,
1474
+ value: i.sort ?? "relevance",
1475
+ onChange: (p) => r({ ...i, sort: p })
1476
+ }
1477
+ ) }) : null
1478
+ ] });
1479
+ }
1480
+ function Te(e) {
1481
+ return Math.min(e + 1, 6);
1482
+ }
1483
+ function Fe({
1484
+ headingLevel: e
1485
+ }) {
1486
+ const { t } = N("ui");
1487
+ return /* @__PURE__ */ n(
1488
+ At,
1489
+ {
1490
+ variant: "no-results",
1491
+ headingLevel: Te(e),
1492
+ title: t("practiceResults.empty.title"),
1493
+ description: t("practiceResults.empty.description")
1494
+ }
1495
+ );
1496
+ }
1497
+ function _e({
1498
+ onRetry: e,
1499
+ headingLevel: t
1500
+ }) {
1501
+ const { t: i } = N("ui"), s = Te(t);
1502
+ return /* @__PURE__ */ g(oe, { variant: "error", children: [
1503
+ /* @__PURE__ */ n(oe.Title, { as: `h${s}`, children: i("practiceResults.error.title") }),
1504
+ /* @__PURE__ */ n(oe.Description, { children: i("practiceResults.error.description") }),
1505
+ e ? /* @__PURE__ */ n(oe.Action, { children: /* @__PURE__ */ n(
1506
+ le,
1507
+ {
1508
+ intent: "secondary",
1509
+ size: "sm",
1510
+ startIcon: /* @__PURE__ */ n($t, { "aria-hidden": "true" }),
1511
+ onClick: e,
1512
+ children: i("practiceResults.error.retry")
1513
+ }
1514
+ ) }) : null
1515
+ ] });
1516
+ }
1517
+ function bn(e) {
1518
+ const {
1519
+ results: t,
1520
+ apiKey: i,
1521
+ mapId: s,
1522
+ zoom: r,
1523
+ searchCentre: a,
1524
+ onLoadMore: o,
1525
+ loadingMore: u,
1526
+ loadingSkeletons: l,
1527
+ emptyResultsSlot: p,
1528
+ errorSlot: c,
1529
+ error: h,
1530
+ onRetry: m,
1531
+ hoveredId: x,
1532
+ selectedId: b,
1533
+ onCardHover: R,
1534
+ onPinClick: w,
1535
+ consentGranted: L,
1536
+ onConsentRequest: I,
1537
+ onBoundsChange: C,
1538
+ listContainerRef: T
1539
+ } = e, { t: f } = N("ui"), [S, v] = te(!1), P = Ne("(min-width: 1024px)"), V = h ? c ?? /* @__PURE__ */ n(_e, { onRetry: m, headingLevel: e.headingLevel }) : t.length === 0 && !l ? p ?? /* @__PURE__ */ n(Fe, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1540
+ Me,
1541
+ {
1542
+ results: t,
1543
+ headingLevel: e.headingLevel,
1544
+ hoveredId: x,
1545
+ selectedId: b,
1546
+ softId: e.softId,
1547
+ onCardHover: R,
1548
+ onCardLeave: e.onCardLeave,
1549
+ onCardSelect: e.onCardSelect,
1550
+ onCardOpenClick: e.onCardOpenClick,
1551
+ onCardBookClick: e.onCardBookClick,
1552
+ openLabel: e.openLabel,
1553
+ bookLabel: e.bookLabel,
1554
+ formatNextSlot: e.formatNextSlot,
1555
+ onLoadMore: o,
1556
+ loadingMore: u,
1557
+ loadingSkeletons: l,
1558
+ density: "compact",
1559
+ containerRef: T
1560
+ }
1561
+ );
1562
+ return /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1563
+ /* @__PURE__ */ n(Ae, { variantBodyProps: e }),
1564
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:lg:grid ds:lg:grid-cols-[55fr_45fr] ds:lg:gap-[var(--spacing-lg)] ds:lg:items-start", children: [
1565
+ /* @__PURE__ */ n("div", { className: "ds:min-w-0", children: V }),
1566
+ /* @__PURE__ */ n("div", { className: "ds:hidden ds:lg:block ds:sticky ds:top-[var(--spacing-md)] ds:h-[40rem]", children: /* @__PURE__ */ n(
1567
+ ke,
1568
+ {
1569
+ results: t,
1570
+ searchCentre: a,
1571
+ zoom: r,
1572
+ apiKey: i,
1573
+ mapId: s,
1574
+ hoveredId: e.mapHoveredId,
1575
+ selectedId: e.mapSelectedId,
1576
+ onMapClick: e.onMapClick,
1577
+ formatNextSlot: P ? e.formatNextSlot : void 0,
1578
+ onPinClick: (O) => {
1579
+ ne(t, O, "pin", e.onResultSelect), w(O);
1580
+ },
1581
+ onPinHover: e.onPinHover,
1582
+ onPinFirstInteract: e.onPinFirstInteract,
1583
+ onBoundsChange: C,
1584
+ consentGranted: L,
1585
+ onConsentRequest: I,
1586
+ mapHandleRef: e.mapHandleRef
1587
+ }
1588
+ ) })
1589
+ ] }),
1590
+ /* @__PURE__ */ n("div", { className: "ds:flex ds:lg:hidden ds:sticky ds:bottom-[var(--spacing-md)] ds:justify-center", children: /* @__PURE__ */ n(
1591
+ le,
1592
+ {
1593
+ intent: "primary",
1594
+ size: "md",
1595
+ startIcon: /* @__PURE__ */ n(Kt, { "aria-hidden": "true" }),
1596
+ onClick: () => v(!0),
1597
+ children: f("practiceResults.viewMap")
1598
+ }
1599
+ ) }),
1600
+ /* @__PURE__ */ n($.Root, { open: S, onOpenChange: v, children: /* @__PURE__ */ g($.Content, { side: "bottom", size: "lg", children: [
1601
+ /* @__PURE__ */ n($.Header, { children: /* @__PURE__ */ n($.Title, { children: f("practiceResults.map.label") }) }),
1602
+ /* @__PURE__ */ g($.Body, { children: [
1603
+ /* @__PURE__ */ n($.Description, { className: "ds:sr-only", children: f("practiceResults.sheet.description") }),
1604
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1605
+ /* @__PURE__ */ n("div", { className: "ds:h-[20rem]", children: /* @__PURE__ */ n(
1606
+ ke,
1607
+ {
1608
+ results: t,
1609
+ searchCentre: a,
1610
+ zoom: r,
1611
+ apiKey: i,
1612
+ mapId: s,
1613
+ hoveredId: e.mapHoveredId,
1614
+ selectedId: e.mapSelectedId,
1615
+ onMapClick: e.onMapClick,
1616
+ onPinClick: (O) => {
1617
+ ne(t, O, "pin", e.onResultSelect), w(O);
1618
+ },
1619
+ onPinHover: e.onPinHover,
1620
+ onPinFirstInteract: e.onPinFirstInteract,
1621
+ onBoundsChange: C,
1622
+ consentGranted: L,
1623
+ onConsentRequest: I,
1624
+ mapHandleRef: e.mapHandleRef
1625
+ }
1626
+ ) }),
1627
+ V
1628
+ ] })
1629
+ ] })
1630
+ ] }) })
1631
+ ] });
1632
+ }
1633
+ const xn = {
1634
+ peek: "sm",
1635
+ half: "md",
1636
+ full: "lg"
1637
+ }, J = [
1638
+ "peek",
1639
+ "half",
1640
+ "full"
1641
+ ];
1642
+ function yn({ value: e, onChange: t }) {
1643
+ const { t: i, i18n: s } = N("ui"), r = s.dir() === "rtl", a = B(
1644
+ /* @__PURE__ */ new Map()
1645
+ ), o = _((l) => {
1646
+ var p;
1647
+ (p = a.current.get(l)) == null || p.focus();
1648
+ }, []), u = _(
1649
+ (l, p) => {
1650
+ const c = J.indexOf(p), h = J.length, m = r ? "ArrowLeft" : "ArrowRight", x = r ? "ArrowRight" : "ArrowLeft";
1651
+ let b = null;
1652
+ switch (l.key) {
1653
+ case m:
1654
+ case "ArrowDown":
1655
+ b = J[(c + 1) % h];
1656
+ break;
1657
+ case x:
1658
+ case "ArrowUp":
1659
+ b = J[(c - 1 + h) % h];
1660
+ break;
1661
+ case "Home":
1662
+ b = J[0];
1663
+ break;
1664
+ case "End":
1665
+ b = J[h - 1];
1666
+ break;
1667
+ default:
1668
+ return;
1669
+ }
1670
+ l.preventDefault(), b && b !== p && t(b), b && o(b);
1671
+ },
1672
+ [o, r, t]
1673
+ );
1674
+ return /* @__PURE__ */ n(
1675
+ "div",
1676
+ {
1677
+ role: "radiogroup",
1678
+ "aria-label": i("practiceResults.sheet.snap.label"),
1679
+ className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]",
1680
+ children: J.map((l) => {
1681
+ const p = e === l;
1682
+ return /* @__PURE__ */ n(
1683
+ "button",
1684
+ {
1685
+ ref: (c) => {
1686
+ c ? a.current.set(l, c) : a.current.delete(l);
1687
+ },
1688
+ type: "button",
1689
+ role: "radio",
1690
+ "aria-checked": p,
1691
+ "aria-label": i(`practiceResults.sheet.snap.${l}`),
1692
+ tabIndex: p ? 0 : -1,
1693
+ onClick: () => t(l),
1694
+ onKeyDown: (c) => u(c, l),
1695
+ className: de({
1696
+ state: p ? "active" : "idle"
1697
+ }),
1698
+ children: i(`practiceResults.sheet.snap.${l}`)
1699
+ },
1700
+ l
1701
+ );
1702
+ })
1703
+ }
1704
+ );
1705
+ }
1706
+ function wn(e) {
1707
+ const {
1708
+ results: t,
1709
+ apiKey: i,
1710
+ mapId: s,
1711
+ zoom: r,
1712
+ searchCentre: a,
1713
+ onLoadMore: o,
1714
+ loadingMore: u,
1715
+ loadingSkeletons: l,
1716
+ emptyResultsSlot: p,
1717
+ errorSlot: c,
1718
+ error: h,
1719
+ onRetry: m,
1720
+ hoveredId: x,
1721
+ selectedId: b,
1722
+ onCardHover: R,
1723
+ onPinClick: w,
1724
+ consentGranted: L,
1725
+ onConsentRequest: I,
1726
+ onBoundsChange: C,
1727
+ listContainerRef: T,
1728
+ facets: f,
1729
+ value: S,
1730
+ onChange: v
1731
+ } = e, { t: P } = N("ui"), [V, O] = te("half"), X = xn[V], G = Ne("(min-width: 1024px)"), Z = h ? c ?? /* @__PURE__ */ n(_e, { onRetry: m, headingLevel: e.headingLevel }) : t.length === 0 && !l ? p ?? /* @__PURE__ */ n(Fe, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1732
+ Me,
1733
+ {
1734
+ results: t,
1735
+ headingLevel: e.headingLevel,
1736
+ hoveredId: x,
1737
+ selectedId: b,
1738
+ softId: e.softId,
1739
+ onCardHover: R,
1740
+ onCardLeave: e.onCardLeave,
1741
+ onCardSelect: e.onCardSelect,
1742
+ onCardOpenClick: e.onCardOpenClick,
1743
+ onCardBookClick: e.onCardBookClick,
1744
+ openLabel: e.openLabel,
1745
+ bookLabel: e.bookLabel,
1746
+ formatNextSlot: e.formatNextSlot,
1747
+ onLoadMore: o,
1748
+ loadingMore: u,
1749
+ loadingSkeletons: l,
1750
+ density: "compact",
1751
+ apiKey: i,
1752
+ containerRef: T
1753
+ }
1754
+ ), W = /* @__PURE__ */ n(
1755
+ ke,
1756
+ {
1757
+ results: t,
1758
+ searchCentre: a,
1759
+ zoom: r,
1760
+ apiKey: i,
1761
+ mapId: s,
1762
+ hoveredId: e.mapHoveredId,
1763
+ selectedId: e.mapSelectedId,
1764
+ onMapClick: e.onMapClick,
1765
+ formatNextSlot: G ? e.formatNextSlot : void 0,
1766
+ onPinClick: (M) => {
1767
+ ne(t, M, "pin", e.onResultSelect), w(M);
1768
+ },
1769
+ onPinHover: e.onPinHover,
1770
+ onPinFirstInteract: e.onPinFirstInteract,
1771
+ onBoundsChange: C,
1772
+ consentGranted: L,
1773
+ onConsentRequest: I,
1774
+ mapHandleRef: e.mapHandleRef
1775
+ }
1776
+ ), H = f.length > 0 ? /* @__PURE__ */ n("div", { className: "ds:absolute ds:start-[var(--spacing-md)] ds:top-[var(--spacing-md)] ds:max-w-[calc(100%-var(--spacing-lg))]", children: /* @__PURE__ */ n(
1777
+ Je,
1778
+ {
1779
+ facets: f,
1780
+ value: S.facets,
1781
+ onChange: (M) => v({ ...S, facets: M }),
1782
+ floating: !0
1783
+ }
1784
+ ) }) : null;
1785
+ return /* @__PURE__ */ n("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: G ? (
1786
+ // Desktop: 65/35 map left + cards rail right. NO Sheet (the
1787
+ // Sheet would portal to body and occlude the desktop layout
1788
+ // regardless of the parent's `lg:hidden` class).
1789
+ //
1790
+ // 0.33.8: filters move from floating-over-the-map to an
1791
+ // inline `<HeaderRow>` above the grid (parity with
1792
+ // split-list-map). Floating chips read as ad-hoc on a real
1793
+ // Google tile and are easy to miss; an inline row sits in
1794
+ // the visual flow as a deliberate refinement control.
1795
+ //
1796
+ // 0.33.8: dropped `h-[calc(100dvh - chrome)] min-h-[40rem]`
1797
+ // on both columns + `overflow-y-auto` on the list rail. The
1798
+ // viewport-fill + internal scroll created a double-scroll
1799
+ // experience — patients scrolled the page AND the rail. Now
1800
+ // the map column is `lg:sticky lg:h-[44rem]` (stays visible
1801
+ // as the patient scrolls cards) and the rail renders at
1802
+ // natural height. Single page scroll.
1803
+ /* @__PURE__ */ g(It, { children: [
1804
+ /* @__PURE__ */ n(Ae, { variantBodyProps: e }),
1805
+ /* @__PURE__ */ g("div", { className: "ds:grid ds:grid-cols-[65fr_35fr] ds:gap-[var(--spacing-lg)] ds:items-start", children: [
1806
+ /* @__PURE__ */ n("div", { className: "ds:sticky ds:top-[var(--spacing-md)] ds:h-[44rem]", children: W }),
1807
+ /* @__PURE__ */ n("div", { className: "ds:min-w-0", children: Z })
1808
+ ] })
1809
+ ] })
1810
+ ) : (
1811
+ // Mobile: full-bleed map + persistent bottom sheet defaulting to
1812
+ // 'half' state. No X close button — the sheet is core to the
1813
+ // layout, not dismissible. Patient cycles peek / half / full
1814
+ // via the snap radiogroup at the top of the sheet body. Filters
1815
+ // stay floating on mobile — the full-bleed map IS the viewport
1816
+ // chrome, so floating chips are the only place for them.
1817
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1818
+ /* @__PURE__ */ n(
1819
+ Qe,
1820
+ {
1821
+ heading: e.heading,
1822
+ headingLevel: e.headingLevel,
1823
+ intro: e.intro,
1824
+ totalCount: e.totalCount,
1825
+ searchCentreLabel: a == null ? void 0 : a.label
1826
+ }
1827
+ ),
1828
+ /* @__PURE__ */ g("div", { className: "ds:relative ds:h-[60vh] ds:min-h-[20rem]", children: [
1829
+ W,
1830
+ H
1831
+ ] }),
1832
+ /* @__PURE__ */ n($.Root, { open: !0, children: /* @__PURE__ */ n(
1833
+ $.Content,
1834
+ {
1835
+ side: "bottom",
1836
+ size: X,
1837
+ onEscapeKeyDown: (M) => M.preventDefault(),
1838
+ onPointerDownOutside: (M) => M.preventDefault(),
1839
+ onInteractOutside: (M) => M.preventDefault(),
1840
+ children: /* @__PURE__ */ g($.Body, { children: [
1841
+ /* @__PURE__ */ n($.Description, { className: "ds:sr-only", children: P("practiceResults.sheet.descriptionMapFirst") }),
1842
+ /* @__PURE__ */ g("div", { className: "ds:flex ds:items-start ds:justify-between ds:gap-[var(--spacing-sm)] ds:pb-[var(--spacing-sm)]", children: [
1843
+ /* @__PURE__ */ n($.Title, { className: "type-title-card ds:m-0 ds:text-[var(--foreground)]", children: P("practiceResults.sheet.title", {
1844
+ count: e.totalCount ?? t.length
1845
+ }) }),
1846
+ /* @__PURE__ */ n(
1847
+ yn,
1848
+ {
1849
+ value: V,
1850
+ onChange: O
1851
+ }
1852
+ )
1853
+ ] }),
1854
+ e.sortOptions.length > 0 ? /* @__PURE__ */ n("div", { className: "ds:pb-[var(--spacing-sm)]", children: /* @__PURE__ */ n(
1855
+ Ce,
1856
+ {
1857
+ options: e.sortOptions,
1858
+ value: S.sort ?? "relevance",
1859
+ onChange: (M) => v({ ...S, sort: M })
1860
+ }
1861
+ ) }) : null,
1862
+ Z
1863
+ ] })
1864
+ }
1865
+ ) })
1866
+ ] })
1867
+ ) });
1868
+ }
1869
+ function Cn(e) {
1870
+ const {
1871
+ results: t,
1872
+ apiKey: i,
1873
+ onLoadMore: s,
1874
+ loadingMore: r,
1875
+ loadingSkeletons: a,
1876
+ emptyResultsSlot: o,
1877
+ errorSlot: u,
1878
+ error: l,
1879
+ onRetry: p,
1880
+ hoveredId: c,
1881
+ selectedId: h,
1882
+ onCardHover: m,
1883
+ listContainerRef: x
1884
+ } = e, b = l ? u ?? /* @__PURE__ */ n(_e, { onRetry: p, headingLevel: e.headingLevel }) : t.length === 0 && !a ? o ?? /* @__PURE__ */ n(Fe, { headingLevel: e.headingLevel }) : /* @__PURE__ */ n(
1885
+ Me,
1886
+ {
1887
+ results: t,
1888
+ headingLevel: e.headingLevel,
1889
+ hoveredId: c,
1890
+ selectedId: h,
1891
+ softId: e.softId,
1892
+ onCardHover: m,
1893
+ onCardLeave: e.onCardLeave,
1894
+ onCardSelect: e.onCardSelect,
1895
+ onCardOpenClick: e.onCardOpenClick,
1896
+ onCardBookClick: e.onCardBookClick,
1897
+ openLabel: e.openLabel,
1898
+ bookLabel: e.bookLabel,
1899
+ formatNextSlot: e.formatNextSlot,
1900
+ onLoadMore: s,
1901
+ loadingMore: r,
1902
+ loadingSkeletons: a,
1903
+ density: "rich",
1904
+ apiKey: i,
1905
+ containerRef: x
1906
+ }
1907
+ );
1908
+ return /* @__PURE__ */ g("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
1909
+ /* @__PURE__ */ n(Ae, { variantBodyProps: e }),
1910
+ b
1911
+ ] });
1912
+ }
1913
+ const kn = Pt(function({
1914
+ variant: t = "split-list-map",
1915
+ results: i,
1916
+ contentLang: s,
1917
+ totalCount: r,
1918
+ searchCentre: a,
1919
+ facets: o,
1920
+ googleMapsApiKey: u,
1921
+ mapId: l,
1922
+ defaultZoom: p = Ut,
1923
+ onBoundsChange: c,
1924
+ consentGranted: h,
1925
+ onConsentRequest: m,
1926
+ skipConsentGate: x = !1,
1927
+ onLoadMore: b,
1928
+ loadingMore: R,
1929
+ value: w,
1930
+ onChange: L,
1931
+ sortOptions: I,
1932
+ onResultSelect: C,
1933
+ loading: T,
1934
+ emptyResultsSlot: f,
1935
+ errorSlot: S,
1936
+ error: v,
1937
+ onRetry: P,
1938
+ heading: V,
1939
+ headingLevel: O = 2,
1940
+ intro: X,
1941
+ cardOpenButtonLabel: G,
1942
+ cardBookButtonLabel: Z,
1943
+ showCardOpenButton: W = !0,
1944
+ "aria-label": H,
1945
+ id: M,
1946
+ className: rt,
1947
+ ...ot
1948
+ }, lt) {
1949
+ const { t: ue, i18n: He } = N("ui"), [me, j] = te(null), [Ve, Y] = te(null), [fe, z] = te(null), [pe, ct] = te(null), U = Ne("(min-width: 1024px)"), ae = B(/* @__PURE__ */ new Set()), he = B(/* @__PURE__ */ new Set()), dt = B(null), ie = B(null), ge = F(
1950
+ () => ({
1951
+ getVariant: () => t,
1952
+ scrollToResult: (d) => {
1953
+ const k = ie.current;
1954
+ if (!k) return;
1955
+ const y = k.querySelector(
1956
+ `[data-component="practice-result-card"][data-result-id="${CSS.escape(d)}"]`
1957
+ );
1958
+ y && (y.scrollIntoView({ behavior: "smooth", block: "nearest" }), U || j(null), z(d));
1959
+ },
1960
+ focusPin: (d) => {
1961
+ U && t !== "rich-cards" ? (z(null), Y(d)) : (U || j(null), z(d));
1962
+ }
1963
+ }),
1964
+ [t, U]
1965
+ );
1966
+ Mt(lt, () => ge, [ge]), zt(qt, ge, M);
1967
+ const ut = W ? G ?? ue("practiceResults.card.open") : void 0, mt = Z ?? ue("practiceResults.card.book"), ft = _(
1968
+ (d) => {
1969
+ if (d.nextAvailableSlot)
1970
+ try {
1971
+ return new Intl.DateTimeFormat(He.language, {
1972
+ weekday: "short",
1973
+ hour: "numeric",
1974
+ minute: "numeric"
1975
+ }).format(new Date(d.nextAvailableSlot.dateTime));
1976
+ } catch {
1977
+ return d.nextAvailableSlot.dateTime;
1978
+ }
1979
+ },
1980
+ [He.language]
1981
+ ), Oe = B(null);
1982
+ ee(() => {
1983
+ Oe.current !== t && (Oe.current = t, E("serp_variant_exposed", {
1984
+ variant: t,
1985
+ totalCount: r ?? i.length
1986
+ }), ae.current = /* @__PURE__ */ new Set(), he.current = /* @__PURE__ */ new Set());
1987
+ }, [t]);
1988
+ const ve = B(!1), be = F(
1989
+ () => Zt(o ?? [], i, w.facets),
1990
+ [o, i, w.facets]
1991
+ ), se = F(
1992
+ () => I ? Ee.filter((d) => I.includes(d)) : Ee,
1993
+ [I]
1994
+ ), re = a ? "distance" : "relevance", ze = w.sort ?? re, xe = se.includes(ze) ? ze : se.includes(re) ? re : se[0] ?? re, A = F(() => {
1995
+ const d = Wt(i, w.facets, be);
1996
+ return Xt(d, xe, a);
1997
+ }, [i, w.facets, be, xe, a]), pt = F(
1998
+ () => s ? A.map(
1999
+ (d) => d.contentLang ? d : { ...d, contentLang: s }
2000
+ ) : A,
2001
+ [A, s]
2002
+ );
2003
+ ee(() => {
2004
+ const d = A.length === 0;
2005
+ d && !ve.current ? (E("serp_empty_results", {
2006
+ appliedFacets: w.facets ?? {}
2007
+ }), ve.current = !0) : d || (ve.current = !1);
2008
+ }, [A.length, w.facets]), ee(() => {
2009
+ const d = new Set(A.map((y) => y.id)), k = (y) => y !== null && d.has(y) ? y : null;
2010
+ j(k), Y(k), z(k);
2011
+ }, [A]), ee(() => {
2012
+ j(null), Y(null), z(null);
2013
+ }, [t]);
2014
+ const Q = B(null), Be = B(null);
2015
+ ee(
2016
+ () => () => {
2017
+ Q.current && clearTimeout(Q.current);
2018
+ },
2019
+ []
2020
+ );
2021
+ const ye = _((d) => {
2022
+ ae.current.has(d) || Be.current === d && Q.current || (Q.current && clearTimeout(Q.current), Be.current = d, Q.current = setTimeout(() => {
2023
+ ae.current.has(d) || (ae.current.add(d), E("serp_result_hovered_card", { resultId: d })), Q.current = null;
2024
+ }, 500));
2025
+ }, []), ht = _(
2026
+ (d, k) => {
2027
+ ye(d), k && (j(d), z(null));
2028
+ },
2029
+ [ye]
2030
+ ), gt = _(() => j(null), []), vt = _(() => {
2031
+ Y(null), z(null);
2032
+ }, []), bt = _(
2033
+ (d) => {
2034
+ var k;
2035
+ if (!U) {
2036
+ const y = (k = ie.current) == null ? void 0 : k.querySelector(
2037
+ `[data-component="practice-result-card"][data-result-id="${CSS.escape(d)}"]`
2038
+ );
2039
+ j(null), z(d), y == null || y.scrollIntoView({ behavior: "smooth", block: "nearest" });
2040
+ return;
2041
+ }
2042
+ z(null), Y(d), ct((y) => ({ id: d, n: ((y == null ? void 0 : y.n) ?? 0) + 1 }));
2043
+ },
2044
+ [U]
2045
+ );
2046
+ Ht(() => {
2047
+ if (!pe) return;
2048
+ const d = ie.current, k = d == null ? void 0 : d.querySelector(
2049
+ `[data-component="practice-result-card"][data-result-id="${CSS.escape(pe.id)}"]`
2050
+ );
2051
+ k == null || k.scrollIntoView({
2052
+ behavior: Vt(k) ? "instant" : "smooth",
2053
+ block: "start"
2054
+ });
2055
+ }, [pe]);
2056
+ const xt = _((d) => {
2057
+ he.current.has(d) || (he.current.add(d), E("serp_result_hovered_pin", { resultId: d }));
2058
+ }, []), $e = B(null), yt = _(
2059
+ (d) => {
2060
+ Y(null), Ie() ? (z(null), j(d)) : (j(null), z(d));
2061
+ const k = A.find((y) => y.id === d);
2062
+ if (k) {
2063
+ if (k.location) {
2064
+ const y = $e.current;
2065
+ y == null || y.panTo({
2066
+ lat: k.location.lat,
2067
+ lng: k.location.lng
2068
+ }), y == null || y.setZoom(16);
2069
+ }
2070
+ ne(A, d, "card", C);
2071
+ }
2072
+ },
2073
+ [A, C]
2074
+ ), wt = _(
2075
+ (d) => {
2076
+ ne(
2077
+ A,
2078
+ d,
2079
+ "open-button",
2080
+ C
2081
+ );
2082
+ },
2083
+ [A, C]
2084
+ ), Ct = _(
2085
+ (d) => {
2086
+ ne(
2087
+ A,
2088
+ d,
2089
+ "book-button",
2090
+ C
2091
+ );
2092
+ },
2093
+ [A, C]
2094
+ ), kt = !!T && i.length === 0, Rt = _(
2095
+ (d, k) => {
2096
+ const y = A.find((Lt) => Lt.id === d.id);
2097
+ C(y ?? d, k);
2098
+ },
2099
+ [A, C]
2100
+ ), we = {
2101
+ results: pt,
2102
+ totalCount: r,
2103
+ searchCentre: a,
2104
+ facets: be,
2105
+ value: { ...w, sort: xe },
2106
+ sortOptions: se,
2107
+ onChange: L,
2108
+ onResultSelect: Rt,
2109
+ onLoadMore: b,
2110
+ loadingMore: R,
2111
+ apiKey: u,
2112
+ mapId: l,
2113
+ zoom: p,
2114
+ // 0.31.4: when `skipConsentGate` is true the kit synthesises
2115
+ // `consentGranted=true` for every internal MapView; the consumer's
2116
+ // CMP at the page level is responsible for whether the Google Maps
2117
+ // loader script is present at all. `onConsentRequest` is dropped
2118
+ // because no placeholder renders — nothing to fire it from.
2119
+ consentGranted: x ? !0 : h,
2120
+ onConsentRequest: x ? void 0 : m,
2121
+ onBoundsChange: c,
2122
+ loadingSkeletons: kt,
2123
+ emptyResultsSlot: f,
2124
+ errorSlot: S,
2125
+ error: v,
2126
+ onRetry: P,
2127
+ heading: V,
2128
+ headingLevel: O,
2129
+ intro: X,
2130
+ hoveredId: me,
2131
+ selectedId: Ve,
2132
+ softId: fe,
2133
+ mapHoveredId: U ? me : null,
2134
+ mapSelectedId: U ? Ve ?? fe : me ?? fe,
2135
+ onCardHover: ht,
2136
+ onCardLeave: gt,
2137
+ onPinHover: ye,
2138
+ onMapClick: vt,
2139
+ onPinClick: bt,
2140
+ onPinFirstInteract: xt,
2141
+ onCardSelect: yt,
2142
+ onCardOpenClick: wt,
2143
+ onCardBookClick: Ct,
2144
+ openLabel: ut,
2145
+ bookLabel: mt,
2146
+ formatNextSlot: ft,
2147
+ listContainerRef: dt,
2148
+ mapHandleRef: $e
2149
+ }, St = (() => {
2150
+ switch (t) {
2151
+ case "map-first":
2152
+ return /* @__PURE__ */ n(wn, { ...we });
2153
+ case "rich-cards":
2154
+ return /* @__PURE__ */ n(Cn, { ...we });
2155
+ case "split-list-map":
2156
+ default:
2157
+ return /* @__PURE__ */ n(bn, { ...we });
2158
+ }
2159
+ })(), Nt = H ?? ue("practiceResults.regionLabel");
2160
+ return /* @__PURE__ */ n(
2161
+ "div",
2162
+ {
2163
+ ref: ie,
2164
+ role: "region",
2165
+ "aria-label": Nt,
2166
+ id: M,
2167
+ "data-component": "practice-results",
2168
+ "data-component-id": M,
2169
+ "data-variant": t,
2170
+ className: en({ variant: t, className: rt }),
2171
+ ...ot,
2172
+ children: St
2173
+ }
2174
+ );
2175
+ });
2176
+ kn.displayName = "PracticeResults";
2177
+ export {
2178
+ kn as P,
2179
+ qt as p
2180
+ };
2181
+ //# sourceMappingURL=practice-results-BlxfBx-D.js.map