@alfadocs/ui-kit 1.88.1 → 1.90.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 (32) hide show
  1. package/dist/_chunks/{anamnesis-summary-rows-DjM_HkCS.js → anamnesis-summary-rows-DUMERHK3.js} +2 -2
  2. package/dist/_chunks/{balance-badge-cell-BHXJS8Ga.js → balance-badge-cell-C9-hyfxy.js} +2 -2
  3. package/dist/_chunks/{calendar-appointment-editor-dialog-BuumJbcv.js → calendar-appointment-editor-dialog-D8Wkbm8_.js} +2 -2
  4. package/dist/_chunks/{data-table-BlONA1rP.js → data-table-D7EGpqOn.js} +2 -2
  5. package/dist/_chunks/{file-manager-C9iJjDZt.js → file-manager-DQbWBTfk.js} +2 -2
  6. package/dist/_chunks/{header-settings-CifwJEKB.js → header-settings-BVhjndtV.js} +188 -168
  7. package/dist/_chunks/{heatmap-C2Rg-SV_.js → heatmap-BJB6V9yJ.js} +2 -2
  8. package/dist/_chunks/{index.es-B8zMZ1wV.js → index.es-Bpb8_NrX.js} +2 -2
  9. package/dist/_chunks/{jspdf.es.min-DaapWjR1.js → jspdf.es.min-Cal6Nuw_.js} +3 -3
  10. package/dist/_chunks/{locale-picker-QbT1p60X.js → locale-picker-DVvinQXU.js} +339 -310
  11. package/dist/_chunks/{marketplace-app-shell-vON3WhD0.js → marketplace-app-shell-x_abo_ye.js} +2 -2
  12. package/dist/_chunks/{patient-search-Dy0sxcwv.js → patient-search-CCOUZABE.js} +418 -407
  13. package/dist/_chunks/purify.es-Lo4sC_pz.js +1483 -0
  14. package/dist/agent-catalog.json +4 -4
  15. package/dist/agent-i18n/en.json +3 -3
  16. package/dist/components/data-table/index.js +1 -1
  17. package/dist/components/file-manager/index.js +1 -1
  18. package/dist/components/header-settings/header-settings.d.ts +14 -0
  19. package/dist/components/header-settings/index.js +1 -1
  20. package/dist/components/heatmap/index.js +1 -1
  21. package/dist/components/locale-picker/index.js +4 -3
  22. package/dist/components/locale-picker/locale-picker.d.ts +31 -1
  23. package/dist/components/patient-search/index.js +1 -1
  24. package/dist/components/patient-search/patient-search.d.ts +8 -0
  25. package/dist/components/patient-table/index.js +1 -1
  26. package/dist/index.js +8 -8
  27. package/dist/patterns/anamnesis/index.js +1 -1
  28. package/dist/patterns/calendar/index.js +1 -1
  29. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  30. package/dist/safe-html/index.js +6 -6
  31. package/package.json +8 -3
  32. package/dist/_chunks/purify.es-Cm3utOpm.js +0 -561
@@ -1,16 +1,16 @@
1
1
  import { jsx as a, jsxs as w } from "react/jsx-runtime";
2
- import { forwardRef as ce, useRef as j, useEffect as K, useMemo as Y, useImperativeHandle as le, useState as z, useCallback as M, useId as ue } from "react";
2
+ import { forwardRef as ce, useRef as R, useEffect as B, useMemo as J, useImperativeHandle as le, useState as H, useCallback as $, useId as ue } from "react";
3
3
  import { c as L } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as C } from "react-i18next";
5
- import { A as re } from "./autocomplete-CnB1mHGc.js";
5
+ import { A as ne } from "./autocomplete-CnB1mHGc.js";
6
6
  import { B as fe } from "./button-DohK_Ak_.js";
7
- import { C as H } from "./card-BA4Ig_kn.js";
7
+ import { C as q } from "./card-BA4Ig_kn.js";
8
8
  import { S as pe } from "./slider-pZ95bEm7.js";
9
- import { A as ee } from "./alert-9kEwDza3.js";
10
- import { D as W } from "./dropdown-menu-D1we7oAY.js";
9
+ import { A as ae } from "./alert-9kEwDza3.js";
10
+ import { D as M } from "./dropdown-menu-D1we7oAY.js";
11
11
  import { u as me } from "./registry-DvAUVLHh.js";
12
- import { S as ne } from "./search-QbWPlY5f.js";
13
- import { X as ie } from "./x-B5YnXwCz.js";
12
+ import { S as ie } from "./search-QbWPlY5f.js";
13
+ import { X as oe } from "./x-B5YnXwCz.js";
14
14
  import { c as he } from "./createLucideIcon-DhHxpK9K.js";
15
15
  import { M as ve } from "./map-pin-BaY37-Km.js";
16
16
  import { S as ge } from "./stethoscope-sZXGC43m.js";
@@ -79,11 +79,11 @@ const ye = [
79
79
  }
80
80
  }
81
81
  };
82
- function _(e, s) {
82
+ function _(e, t) {
83
83
  if (typeof window > "u") return;
84
- const t = window.track;
84
+ const s = window.track;
85
85
  try {
86
- t == null || t(e, s);
86
+ s == null || s(e, t);
87
87
  } catch {
88
88
  }
89
89
  }
@@ -92,13 +92,13 @@ const T = [
92
92
  "tomorrow",
93
93
  "this_week",
94
94
  "anytime"
95
- ], B = [1, 5, 10, 25, 50], J = 5, oe = 200;
95
+ ], V = [1, 5, 10, 25, 50], Z = 5, de = 200;
96
96
  function _e(e) {
97
- let s = 0, t = Number.POSITIVE_INFINITY;
98
- return B.forEach((i, p) => {
99
- const v = Math.abs(i - e);
100
- v < t && (t = v, s = p);
101
- }), s;
97
+ let t = 0, s = Number.POSITIVE_INFINITY;
98
+ return V.forEach((d, i) => {
99
+ const v = Math.abs(d - e);
100
+ v < s && (s = v, t = i);
101
+ }), t;
102
102
  }
103
103
  const Se = L(
104
104
  "ds:flex ds:w-full ds:flex-col ds:text-[var(--foreground)]",
@@ -114,22 +114,22 @@ const Se = L(
114
114
  defaultVariants: { variant: "who-where" }
115
115
  }
116
116
  );
117
- function $({
117
+ function U({
118
118
  value: e,
119
- onChange: s,
120
- loadObjects: t,
121
- onObjectSelect: i,
122
- inputRef: p
119
+ onChange: t,
120
+ loadObjects: s,
121
+ onObjectSelect: d,
122
+ inputRef: i
123
123
  }) {
124
- var l, u, c, g;
125
- const { t: v } = C("ui"), [b, h] = z(((l = e.object) == null ? void 0 : l.label) ?? ""), d = j((u = e.object) == null ? void 0 : u.value);
126
- K(() => {
127
- var m, o, S;
128
- ((m = e.object) == null ? void 0 : m.value) !== d.current && (d.current = (o = e.object) == null ? void 0 : o.value, h(((S = e.object) == null ? void 0 : S.label) ?? ""));
129
- }, [(c = e.object) == null ? void 0 : c.value, (g = e.object) == null ? void 0 : g.label]);
130
- const n = M(
131
- async (m, { signal: o }) => await t(m, { signal: o }),
132
- [t]
124
+ var p, u, l, b;
125
+ const { t: v } = C("ui"), [g, h] = H(((p = e.object) == null ? void 0 : p.label) ?? ""), c = R((u = e.object) == null ? void 0 : u.value);
126
+ B(() => {
127
+ var m, o, k;
128
+ ((m = e.object) == null ? void 0 : m.value) !== c.current && (c.current = (o = e.object) == null ? void 0 : o.value, h(((k = e.object) == null ? void 0 : k.label) ?? ""));
129
+ }, [(l = e.object) == null ? void 0 : l.value, (b = e.object) == null ? void 0 : b.label]);
130
+ const n = $(
131
+ async (m, { signal: o }) => await s(m, { signal: o }),
132
+ [s]
133
133
  ), f = (m) => {
134
134
  const o = {
135
135
  value: m.value,
@@ -137,11 +137,11 @@ function $({
137
137
  description: m.description,
138
138
  __payload: m.__payload
139
139
  };
140
- h(o.label), d.current = o.value, s({ ...e, object: o }), _("patient_search_object_selected", {
140
+ h(o.label), c.current = o.value, t({ ...e, object: o }), _("patient_search_object_selected", {
141
141
  value: o.value,
142
142
  type: o.__payload && typeof o.__payload == "object" ? o.__payload.type : void 0
143
- }), i == null || i(o);
144
- }, r = j(!1);
143
+ }), d == null || d(o);
144
+ }, r = R(!1);
145
145
  return /* @__PURE__ */ a(
146
146
  "div",
147
147
  {
@@ -154,25 +154,26 @@ function $({
154
154
  m.currentTarget && !m.currentTarget.contains(m.relatedTarget) && (r.current = !1);
155
155
  },
156
156
  children: /* @__PURE__ */ a(
157
- re,
157
+ ne,
158
158
  {
159
- ref: p,
160
- value: b,
159
+ ref: i,
160
+ size: "lg",
161
+ value: g,
161
162
  onChange: (m) => {
162
- h(m), e.object && m !== e.object.label && (d.current = void 0, s({ ...e, object: void 0 }));
163
+ h(m), e.object && m !== e.object.label && (c.current = void 0, t({ ...e, object: void 0 }));
163
164
  },
164
165
  onSelect: f,
165
166
  loadOptions: n,
166
- debounceMs: oe,
167
+ debounceMs: de,
167
168
  placeholder: v("patientSearch.who.placeholder"),
168
169
  "aria-label": v("patientSearch.who.label"),
169
- startAdornment: /* @__PURE__ */ a(ne, { "aria-hidden": "true" })
170
+ startAdornment: /* @__PURE__ */ a(ie, { "aria-hidden": "true" })
170
171
  }
171
172
  )
172
173
  }
173
174
  );
174
175
  }
175
- const ae = [
176
+ const te = [
176
177
  "ds:inline-flex ds:items-center ds:justify-center",
177
178
  "ds:size-8 ds:rounded-[var(--radius-sm)]",
178
179
  "ds:text-[color:var(--muted-foreground)] ds:hover:text-[color:var(--primary)]",
@@ -184,25 +185,25 @@ const ae = [
184
185
  "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
185
186
  "ds:forced-colors:focus-visible:outline-[CanvasText]"
186
187
  ].join(" ");
187
- function q({
188
+ function G({
188
189
  value: e,
189
- onChange: s,
190
- loadPlaces: t,
191
- onPlaceSelect: i,
192
- allowTypedPlace: p,
190
+ onChange: t,
191
+ loadPlaces: s,
192
+ onPlaceSelect: d,
193
+ allowTypedPlace: i,
193
194
  inputRef: v,
194
- defaultRadiusKm: b = J,
195
+ defaultRadiusKm: g = Z,
195
196
  reverseGeocode: h
196
197
  }) {
197
- var O, F, E, P;
198
- const { t: d } = C("ui"), [n, f] = z(((O = e.place) == null ? void 0 : O.label) ?? ""), r = j((F = e.place) == null ? void 0 : F.value), l = e.geo ? "granted" : "pristine", [u, c] = z(l);
199
- K(() => {
198
+ var K, O, z, E;
199
+ const { t: c } = C("ui"), [n, f] = H(((K = e.place) == null ? void 0 : K.label) ?? ""), r = R((O = e.place) == null ? void 0 : O.value), p = e.geo ? "granted" : "pristine", [u, l] = H(p);
200
+ B(() => {
200
201
  var y, x, N;
201
202
  ((y = e.place) == null ? void 0 : y.value) !== r.current && (r.current = (x = e.place) == null ? void 0 : x.value, f(((N = e.place) == null ? void 0 : N.label) ?? ""));
202
- }, [(E = e.place) == null ? void 0 : E.value, (P = e.place) == null ? void 0 : P.label]);
203
- const g = M(
204
- async (y, { signal: x }) => await t(y, { signal: x }),
205
- [t]
203
+ }, [(z = e.place) == null ? void 0 : z.value, (E = e.place) == null ? void 0 : E.label]);
204
+ const b = $(
205
+ async (y, { signal: x }) => await s(y, { signal: x }),
206
+ [s]
206
207
  ), m = (y) => {
207
208
  const x = {
208
209
  value: y.value,
@@ -210,65 +211,65 @@ function q({
210
211
  lat: y.lat,
211
212
  lng: y.lng
212
213
  };
213
- f(x.label), r.current = x.value, s({ ...e, place: x, geo: void 0 }), u === "granted" && c("pristine"), _("patient_search_place_selected", { value: x.value }), i == null || i(x);
214
+ f(x.label), r.current = x.value, t({ ...e, place: x, geo: void 0 }), u === "granted" && l("pristine"), _("patient_search_place_selected", { value: x.value }), d == null || d(x);
214
215
  }, o = () => {
215
216
  if (typeof window > "u" || !(navigator != null && navigator.geolocation)) {
216
- c("denied"), _("patient_search_geo_denied", { reason: "unsupported" });
217
+ l("denied"), _("patient_search_geo_denied", { reason: "unsupported" });
217
218
  return;
218
219
  }
219
- c("requesting"), _("patient_search_place_focused"), navigator.geolocation.getCurrentPosition(
220
+ l("requesting"), _("patient_search_place_focused"), navigator.geolocation.getCurrentPosition(
220
221
  async (y) => {
221
222
  const { latitude: x, longitude: N } = y.coords;
222
- let k;
223
+ let A;
223
224
  try {
224
- k = await (h == null ? void 0 : h(x, N));
225
+ A = await (h == null ? void 0 : h(x, N));
225
226
  } catch {
226
- k = void 0;
227
+ A = void 0;
227
228
  }
228
- const R = b, V = k ?? d("patientSearch.geo.fallbackLabel"), de = {
229
+ const S = g, F = A ?? c("patientSearch.geo.fallbackLabel"), W = {
229
230
  value: `geo:${x.toFixed(4)},${N.toFixed(4)}`,
230
- label: V,
231
+ label: F,
231
232
  lat: x,
232
233
  lng: N
233
234
  };
234
- s({
235
+ t({
235
236
  ...e,
236
- place: de,
237
+ place: W,
237
238
  geo: {
238
239
  lat: x,
239
240
  lng: N,
240
- radiusKm: R,
241
- label: V
241
+ radiusKm: S,
242
+ label: F
242
243
  }
243
- }), c("granted"), _("patient_search_geo_granted", { radiusKm: R });
244
+ }), l("granted"), _("patient_search_geo_granted", { radiusKm: S });
244
245
  },
245
246
  () => {
246
- c("denied"), _("patient_search_geo_denied", { reason: "user" });
247
+ l("denied"), _("patient_search_geo_denied", { reason: "user" });
247
248
  },
248
249
  { enableHighAccuracy: !1, maximumAge: 6e4, timeout: 1e4 }
249
250
  );
250
- }, S = () => {
251
- s({ ...e, geo: void 0, place: void 0 }), f(""), r.current = void 0, c("pristine");
252
- }, A = u === "granted" && !!e.geo, Q = u === "requesting", D = u === "denied", I = j(!1), X = D || !!!h ? null : /* @__PURE__ */ w("span", { className: "ds:absolute ds:end-[var(--spacing-xs)] ds:top-1/2 ds:-translate-y-1/2 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
253
- A ? /* @__PURE__ */ a(
251
+ }, k = () => {
252
+ t({ ...e, geo: void 0, place: void 0 }), f(""), r.current = void 0, l("pristine");
253
+ }, j = u === "granted" && !!e.geo, P = u === "requesting", D = u === "denied", I = R(!1), Y = D || !!!h ? null : /* @__PURE__ */ w("span", { className: "ds:absolute ds:end-[var(--spacing-xs)] ds:top-1/2 ds:-translate-y-1/2 ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
254
+ j ? /* @__PURE__ */ a(
254
255
  "button",
255
256
  {
256
257
  type: "button",
257
- "aria-label": d("patientSearch.geo.clear"),
258
- onClick: S,
259
- className: ae,
260
- children: /* @__PURE__ */ a(ie, { "aria-hidden": "true", className: "ds:size-4" })
258
+ "aria-label": c("patientSearch.geo.clear"),
259
+ onClick: k,
260
+ className: te,
261
+ children: /* @__PURE__ */ a(oe, { "aria-hidden": "true", className: "ds:size-4" })
261
262
  }
262
263
  ) : null,
263
264
  /* @__PURE__ */ a(
264
265
  "button",
265
266
  {
266
267
  type: "button",
267
- "aria-label": d("patientSearch.geo.cta"),
268
- "aria-pressed": A || void 0,
269
- disabled: Q,
270
- onClick: A ? S : o,
271
- className: ae,
268
+ "aria-label": c("patientSearch.geo.cta"),
269
+ "aria-pressed": j || void 0,
270
+ disabled: P,
271
+ onClick: j ? k : o,
272
+ className: te,
272
273
  children: /* @__PURE__ */ a(xe, { "aria-hidden": "true", className: "ds:size-4" })
273
274
  }
274
275
  )
@@ -288,23 +289,24 @@ function q({
288
289
  children: [
289
290
  /* @__PURE__ */ w("div", { className: "ds:relative", children: [
290
291
  /* @__PURE__ */ a(
291
- re,
292
+ ne,
292
293
  {
293
294
  ref: v,
295
+ size: "lg",
294
296
  value: n,
295
297
  onChange: (y) => {
296
298
  var x, N;
297
- if (f(y), (p || e.place) && y !== ((x = e.place) == null ? void 0 : x.label)) {
298
- const k = y.trim(), R = p && k ? { value: `text:${k}`, label: k } : void 0;
299
- if (r.current = R == null ? void 0 : R.value, (R == null ? void 0 : R.value) === ((N = e.place) == null ? void 0 : N.value) && !e.geo) return;
300
- s({ ...e, place: R, geo: void 0 }), u === "granted" && c("pristine");
299
+ if (f(y), (i || e.place) && y !== ((x = e.place) == null ? void 0 : x.label)) {
300
+ const A = y.trim(), S = i && A ? { value: `text:${A}`, label: A } : void 0;
301
+ if (r.current = S == null ? void 0 : S.value, (S == null ? void 0 : S.value) === ((N = e.place) == null ? void 0 : N.value) && !e.geo) return;
302
+ t({ ...e, place: S, geo: void 0 }), u === "granted" && l("pristine");
301
303
  }
302
304
  },
303
305
  onSelect: m,
304
- loadOptions: g,
305
- debounceMs: oe,
306
- placeholder: d("patientSearch.where.placeholder"),
307
- "aria-label": d("patientSearch.where.label"),
306
+ loadOptions: b,
307
+ debounceMs: de,
308
+ placeholder: c("patientSearch.where.placeholder"),
309
+ "aria-label": c("patientSearch.where.label"),
308
310
  startAdornment: /* @__PURE__ */ a(ve, { "aria-hidden": "true" }),
309
311
  endAdornment: D ? void 0 : (
310
312
  // Decorative spacer — reserves inline-end room so the typed
@@ -316,42 +318,42 @@ function q({
316
318
  "span",
317
319
  {
318
320
  "aria-hidden": "true",
319
- className: A ? "ds:inline-block ds:size-[4.5rem]" : "ds:inline-block ds:size-8"
321
+ className: j ? "ds:inline-block ds:size-[4.5rem]" : "ds:inline-block ds:size-8"
320
322
  }
321
323
  )
322
324
  )
323
325
  }
324
326
  ),
325
- X
327
+ Y
326
328
  ] }),
327
329
  D ? (
328
330
  // Alert defaults to `role="status"` + `aria-live="polite"` for the
329
331
  // `info` variant — the user hears why the field reverted to plain
330
332
  // text when their browser blocked the geolocation prompt.
331
- /* @__PURE__ */ a(ee, { variant: "info", children: /* @__PURE__ */ a(ee.Description, { children: d("patientSearch.geo.denied") }) })
333
+ /* @__PURE__ */ a(ae, { variant: "info", children: /* @__PURE__ */ a(ae.Description, { children: c("patientSearch.geo.denied") }) })
332
334
  ) : null
333
335
  ]
334
336
  }
335
337
  );
336
338
  }
337
- function U({
339
+ function Q({
338
340
  value: e,
339
- onChange: s,
340
- defaultRadiusKm: t = J
341
+ onChange: t,
342
+ defaultRadiusKm: s = Z
341
343
  }) {
342
- const { t: i } = C("ui"), [p, v] = z(
344
+ const { t: d } = C("ui"), [i, v] = H(
343
345
  () => {
344
- var d;
345
- return _e(((d = e.geo) == null ? void 0 : d.radiusKm) ?? t);
346
+ var c;
347
+ return _e(((c = e.geo) == null ? void 0 : c.radiusKm) ?? s);
346
348
  }
347
349
  );
348
350
  if (!e.geo) return null;
349
- const b = (d) => {
350
- const n = B[d] ?? t;
351
- s({ ...e, geo: { ...e.geo, radiusKm: n } }), _("patient_search_radius_changed", { radiusKm: n });
352
- }, h = (d) => {
353
- const n = B[Math.round(d)] ?? t;
354
- return i("patientSearch.geo.radiusFormat", { km: n });
351
+ const g = (c) => {
352
+ const n = V[c] ?? s;
353
+ t({ ...e, geo: { ...e.geo, radiusKm: n } }), _("patient_search_radius_changed", { radiusKm: n });
354
+ }, h = (c) => {
355
+ const n = V[Math.round(c)] ?? s;
356
+ return d("patientSearch.geo.radiusFormat", { km: n });
355
357
  };
356
358
  return /* @__PURE__ */ w(
357
359
  "div",
@@ -364,25 +366,25 @@ function U({
364
366
  {
365
367
  id: "patient-search-radius-label",
366
368
  className: "type-meta ds:text-[color:var(--muted-foreground)]",
367
- children: i("patientSearch.geo.radius")
369
+ children: d("patientSearch.geo.radius")
368
370
  }
369
371
  ),
370
372
  /* @__PURE__ */ a(
371
373
  pe,
372
374
  {
373
- value: [p],
375
+ value: [i],
374
376
  min: 0,
375
- max: B.length - 1,
377
+ max: V.length - 1,
376
378
  step: 1,
377
- marks: B.map((d, n) => ({
379
+ marks: V.map((c, n) => ({
378
380
  value: n,
379
- label: `${d}`
381
+ label: `${c}`
380
382
  })),
381
383
  formatValue: h,
382
384
  alwaysShowValue: !0,
383
385
  "aria-labelledby": "patient-search-radius-label",
384
- onValueChange: (d) => v(d[0] ?? 0),
385
- onValueCommit: (d) => b(d[0] ?? 0)
386
+ onValueChange: (c) => v(c[0] ?? 0),
387
+ onValueCommit: (c) => g(c[0] ?? 0)
386
388
  }
387
389
  )
388
390
  ]
@@ -412,43 +414,43 @@ const Ne = L(
412
414
  defaultVariants: { state: "idle" }
413
415
  }
414
416
  );
415
- function ke({ value: e, onChange: s }) {
416
- const { t, i18n: i } = C("ui"), p = ue(), v = i.dir() === "rtl", b = j(/* @__PURE__ */ new Map()), h = M((r) => {
417
- var l;
418
- (l = b.current.get(r)) == null || l.focus();
419
- }, []), d = M(
420
- (r, l) => {
421
- const u = T.indexOf(l), c = T.length, g = v ? "ArrowLeft" : "ArrowRight", m = v ? "ArrowRight" : "ArrowLeft";
417
+ function ke({ value: e, onChange: t }) {
418
+ const { t: s, i18n: d } = C("ui"), i = ue(), v = d.dir() === "rtl", g = R(/* @__PURE__ */ new Map()), h = $((r) => {
419
+ var p;
420
+ (p = g.current.get(r)) == null || p.focus();
421
+ }, []), c = $(
422
+ (r, p) => {
423
+ const u = T.indexOf(p), l = T.length, b = v ? "ArrowLeft" : "ArrowRight", m = v ? "ArrowRight" : "ArrowLeft";
422
424
  switch (r.key) {
423
- case g:
425
+ case b:
424
426
  case "ArrowDown": {
425
427
  r.preventDefault();
426
- const o = T[(u + 1) % c];
427
- s(o), _("patient_search_when_selected", { when: o }), h(o);
428
+ const o = T[(u + 1) % l];
429
+ t(o), _("patient_search_when_selected", { when: o }), h(o);
428
430
  break;
429
431
  }
430
432
  case m:
431
433
  case "ArrowUp": {
432
434
  r.preventDefault();
433
- const o = T[(u - 1 + c) % c];
434
- s(o), _("patient_search_when_selected", { when: o }), h(o);
435
+ const o = T[(u - 1 + l) % l];
436
+ t(o), _("patient_search_when_selected", { when: o }), h(o);
435
437
  break;
436
438
  }
437
439
  case "Home": {
438
440
  r.preventDefault();
439
441
  const o = T[0];
440
- s(o), _("patient_search_when_selected", { when: o }), h(o);
442
+ t(o), _("patient_search_when_selected", { when: o }), h(o);
441
443
  break;
442
444
  }
443
445
  case "End": {
444
446
  r.preventDefault();
445
- const o = T[c - 1];
446
- s(o), _("patient_search_when_selected", { when: o }), h(o);
447
+ const o = T[l - 1];
448
+ t(o), _("patient_search_when_selected", { when: o }), h(o);
447
449
  break;
448
450
  }
449
451
  }
450
452
  },
451
- [h, v, s]
453
+ [h, v, t]
452
454
  ), n = e ?? "anytime", f = {
453
455
  today: "patientSearch.when.today",
454
456
  tomorrow: "patientSearch.when.tomorrow",
@@ -459,30 +461,30 @@ function ke({ value: e, onChange: s }) {
459
461
  "div",
460
462
  {
461
463
  role: "radiogroup",
462
- "aria-label": t("patientSearch.when.label"),
463
- id: p,
464
+ "aria-label": s("patientSearch.when.label"),
465
+ id: i,
464
466
  className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
465
467
  children: T.map((r) => {
466
- const l = e === r, u = n === r, c = t(f[r]);
468
+ const p = e === r, u = n === r, l = s(f[r]);
467
469
  return /* @__PURE__ */ a(
468
470
  "button",
469
471
  {
470
472
  type: "button",
471
473
  role: "radio",
472
- "aria-checked": l,
473
- "aria-label": c,
474
+ "aria-checked": p,
475
+ "aria-label": l,
474
476
  tabIndex: u ? 0 : -1,
475
- ref: (g) => {
476
- g ? b.current.set(r, g) : b.current.delete(r);
477
+ ref: (b) => {
478
+ b ? g.current.set(r, b) : g.current.delete(r);
477
479
  },
478
480
  onClick: () => {
479
- s(r), _("patient_search_when_selected", { when: r });
481
+ t(r), _("patient_search_when_selected", { when: r });
480
482
  },
481
- onKeyDown: (g) => d(g, r),
483
+ onKeyDown: (b) => c(b, r),
482
484
  className: Ne({
483
- state: l ? "selected" : "idle"
485
+ state: p ? "selected" : "idle"
484
486
  }),
485
- children: c
487
+ children: l
486
488
  },
487
489
  r
488
490
  );
@@ -490,7 +492,7 @@ function ke({ value: e, onChange: s }) {
490
492
  }
491
493
  );
492
494
  }
493
- const te = L(
495
+ const se = L(
494
496
  [
495
497
  "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
496
498
  "ds:min-h-[var(--min-target-size)]",
@@ -520,55 +522,55 @@ const te = L(
520
522
  defaultVariants: { state: "idle" }
521
523
  }
522
524
  );
523
- function Re({ facets: e, value: s, onChange: t }) {
524
- const { t: i } = C("ui"), p = Y(() => s ?? {}, [s]), v = Y(
525
- () => Object.values(p).some((n) => n && n.length > 0),
526
- [p]
527
- ), b = (n, f) => {
528
- const r = { ...p };
529
- f.length === 0 ? delete r[n] : r[n] = f, t(r), _("patient_search_facet_changed", { key: n, values: f });
525
+ function Re({ facets: e, value: t, onChange: s }) {
526
+ const { t: d } = C("ui"), i = J(() => t ?? {}, [t]), v = J(
527
+ () => Object.values(i).some((n) => n && n.length > 0),
528
+ [i]
529
+ ), g = (n, f) => {
530
+ const r = { ...i };
531
+ f.length === 0 ? delete r[n] : r[n] = f, s(r), _("patient_search_facet_changed", { key: n, values: f });
530
532
  }, h = (n) => {
531
533
  var r;
532
- const f = (((r = p[n]) == null ? void 0 : r.length) ?? 0) > 0;
533
- b(n, f ? [] : ["true"]);
534
- }, d = (n, f) => {
535
- const r = p[n.key] ?? [], l = r.includes(f);
534
+ const f = (((r = i[n]) == null ? void 0 : r.length) ?? 0) > 0;
535
+ g(n, f ? [] : ["true"]);
536
+ }, c = (n, f) => {
537
+ const r = i[n.key] ?? [], p = r.includes(f);
536
538
  let u;
537
- n.multi ? u = l ? r.filter((c) => c !== f) : [...r, f] : u = l ? [] : [f], b(n.key, u);
539
+ n.multi ? u = p ? r.filter((l) => l !== f) : [...r, f] : u = p ? [] : [f], g(n.key, u);
538
540
  };
539
541
  return /* @__PURE__ */ w(
540
542
  "div",
541
543
  {
542
544
  role: "group",
543
- "aria-label": i("patientSearch.facets.label"),
545
+ "aria-label": d("patientSearch.facets.label"),
544
546
  className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]",
545
547
  children: [
546
548
  e.map((n) => {
547
- const f = n.options.length === 0, r = p[n.key] ?? [], l = r.length > 0;
549
+ const f = n.options.length === 0, r = i[n.key] ?? [], p = r.length > 0;
548
550
  if (f)
549
551
  return /* @__PURE__ */ a(
550
552
  "button",
551
553
  {
552
554
  type: "button",
553
- "aria-pressed": l,
555
+ "aria-pressed": p,
554
556
  "aria-label": n.label,
555
557
  onClick: () => h(n.key),
556
- className: te({
557
- state: l ? "active" : "idle"
558
+ className: se({
559
+ state: p ? "active" : "idle"
558
560
  }),
559
561
  children: /* @__PURE__ */ a("span", { children: n.label })
560
562
  },
561
563
  n.key
562
564
  );
563
- const u = l ? ` (${r.length})` : "";
564
- return /* @__PURE__ */ w(W.Root, { children: [
565
- /* @__PURE__ */ a(W.Trigger, { asChild: !0, children: /* @__PURE__ */ w(
565
+ const u = p ? ` (${r.length})` : "";
566
+ return /* @__PURE__ */ w(M.Root, { children: [
567
+ /* @__PURE__ */ a(M.Trigger, { asChild: !0, children: /* @__PURE__ */ w(
566
568
  "button",
567
569
  {
568
570
  type: "button",
569
571
  "aria-label": `${n.label}${u}`,
570
- className: te({
571
- state: l ? "active" : "idle"
572
+ className: se({
573
+ state: p ? "active" : "idle"
572
574
  }),
573
575
  children: [
574
576
  /* @__PURE__ */ w("span", { children: [
@@ -585,16 +587,16 @@ function Re({ facets: e, value: s, onChange: t }) {
585
587
  ]
586
588
  }
587
589
  ) }),
588
- /* @__PURE__ */ a(W.Content, { sideOffset: 8, align: "start", children: n.options.map((c) => /* @__PURE__ */ a(
589
- W.CheckboxItem,
590
+ /* @__PURE__ */ a(M.Content, { sideOffset: 8, align: "start", children: n.options.map((l) => /* @__PURE__ */ a(
591
+ M.CheckboxItem,
590
592
  {
591
- checked: r.includes(c.value),
592
- onSelect: (g) => {
593
- n.multi && g.preventDefault(), d(n, c.value);
593
+ checked: r.includes(l.value),
594
+ onSelect: (b) => {
595
+ n.multi && b.preventDefault(), c(n, l.value);
594
596
  },
595
- children: c.label
597
+ children: l.label
596
598
  },
597
- c.value
599
+ l.value
598
600
  )) })
599
601
  ] }, n.key);
600
602
  }),
@@ -603,7 +605,7 @@ function Re({ facets: e, value: s, onChange: t }) {
603
605
  {
604
606
  type: "button",
605
607
  onClick: () => {
606
- t({}), _("patient_search_facet_changed", { key: "*", values: [] });
608
+ s({}), _("patient_search_facet_changed", { key: "*", values: [] });
607
609
  },
608
610
  className: [
609
611
  "ds:ms-[var(--spacing-xs)] ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]",
@@ -615,8 +617,8 @@ function Re({ facets: e, value: s, onChange: t }) {
615
617
  "ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]"
616
618
  ].join(" "),
617
619
  children: [
618
- /* @__PURE__ */ a(ie, { "aria-hidden": "true", className: "ds:size-3.5" }),
619
- i("patientSearch.facets.clear")
620
+ /* @__PURE__ */ a(oe, { "aria-hidden": "true", className: "ds:size-3.5" }),
621
+ d("patientSearch.facets.clear")
620
622
  ]
621
623
  }
622
624
  ) : null
@@ -624,7 +626,7 @@ function Re({ facets: e, value: s, onChange: t }) {
624
626
  }
625
627
  );
626
628
  }
627
- const se = ["violet", "purple", "magenta", "blue"], je = L(
629
+ const re = ["violet", "purple", "magenta", "blue"], je = L(
628
630
  [
629
631
  "ds:relative ds:flex ds:h-full ds:flex-col ds:gap-[var(--spacing-sm)]",
630
632
  "ds:rounded-[var(--radius-lg)] ds:overflow-hidden",
@@ -669,13 +671,13 @@ const se = ["violet", "purple", "magenta", "blue"], je = L(
669
671
  defaultVariants: { accent: "violet" }
670
672
  }
671
673
  );
672
- function Te(e, s) {
673
- return e && e !== "auto" ? e : se[s % se.length];
674
+ function Te(e, t) {
675
+ return e && e !== "auto" ? e : re[t % re.length];
674
676
  }
675
- function Ee({ cards: e }) {
676
- const { t: s } = C("ui");
677
+ function Ee({ cards: e, headingLevel: t }) {
678
+ const { t: s } = C("ui"), d = `h${t}`;
677
679
  return e.length === 0 ? /* @__PURE__ */ a("p", { className: "type-body-sm ds:text-[color:var(--muted-foreground)] ds:m-0", children: s("patientSearch.discovery.empty") }) : /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]", children: [
678
- /* @__PURE__ */ a("h3", { className: "type-title-card ds:text-[var(--foreground)] ds:m-0", children: s("patientSearch.discovery.heading") }),
680
+ /* @__PURE__ */ a(d, { className: "type-title-card ds:text-[var(--foreground)] ds:m-0", children: s("patientSearch.discovery.heading") }),
679
681
  /* @__PURE__ */ a(
680
682
  "ul",
681
683
  {
@@ -684,17 +686,17 @@ function Ee({ cards: e }) {
684
686
  "ds:md:grid-cols-2 ds:lg:grid-cols-3",
685
687
  "ds:m-0 ds:p-0 ds:list-none"
686
688
  ].join(" "),
687
- children: e.map((t, i) => {
688
- const p = Te(t.accent, i);
689
+ children: e.map((i, v) => {
690
+ const g = Te(i.accent, v);
689
691
  return /* @__PURE__ */ a("li", { children: /* @__PURE__ */ w(
690
692
  "a",
691
693
  {
692
- href: t.href,
694
+ href: i.href,
693
695
  "data-component": "patient-search-card",
694
- "data-card-id": t.id,
695
- "aria-label": t.description ? `${t.label} — ${t.description}` : t.label,
696
+ "data-card-id": i.id,
697
+ "aria-label": i.description ? `${i.label} — ${i.description}` : i.label,
696
698
  onClick: () => _("patient_search_discovery_card_clicked", {
697
- cardId: t.id
699
+ cardId: i.id
698
700
  }),
699
701
  className: je(),
700
702
  children: [
@@ -702,7 +704,7 @@ function Ee({ cards: e }) {
702
704
  "span",
703
705
  {
704
706
  "aria-hidden": "true",
705
- className: Ae({ accent: p })
707
+ className: Ae({ accent: g })
706
708
  }
707
709
  ),
708
710
  /* @__PURE__ */ w("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]", children: [
@@ -710,11 +712,11 @@ function Ee({ cards: e }) {
710
712
  "span",
711
713
  {
712
714
  "aria-hidden": "true",
713
- className: Ce({ accent: p }),
714
- children: t.icon ?? /* @__PURE__ */ a(ge, { className: "ds:size-4", "aria-hidden": "true" })
715
+ className: Ce({ accent: g }),
716
+ children: i.icon ?? /* @__PURE__ */ a(ge, { className: "ds:size-4", "aria-hidden": "true" })
715
717
  }
716
718
  ),
717
- t.badge ? (
719
+ i.badge ? (
718
720
  // The badge sits inside a softly-tinted accent bubble
719
721
  // (15% accent + 85% background). The text colour must
720
722
  // contrast with that mix, not with the accent's canonical
@@ -722,48 +724,48 @@ function Ee({ cards: e }) {
722
724
  // the 100% accent surface and fails AA on the 15% tint.
723
725
  // Use `--foreground` which contrasts with the
724
726
  // mostly-background mix in both light and dark themes.
725
- /* @__PURE__ */ a("span", { className: "type-meta ds:ms-auto ds:inline-flex ds:items-center ds:rounded-[var(--radius-full)] ds:border ds:border-[color:var(--foreground)] ds:bg-[color-mix(in_srgb,var(--accent)_15%,var(--background))] ds:text-[color:var(--foreground)] ds:font-[var(--font-weight-semibold)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]", children: t.badge })
727
+ /* @__PURE__ */ a("span", { className: "type-meta ds:ms-auto ds:inline-flex ds:items-center ds:rounded-[var(--radius-full)] ds:border ds:border-[color:var(--foreground)] ds:bg-[color-mix(in_srgb,var(--accent)_15%,var(--background))] ds:text-[color:var(--foreground)] ds:font-[var(--font-weight-semibold)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pt-[var(--spacing-xs)] ds:pb-[var(--spacing-xs)]", children: i.badge })
726
728
  ) : null
727
729
  ] }),
728
- /* @__PURE__ */ a("span", { className: "type-label ds:font-[var(--font-weight-semibold)] ds:text-[var(--foreground)]", children: t.label }),
729
- t.description ? /* @__PURE__ */ a("span", { className: "type-body-sm ds:text-[color:var(--muted-foreground)]", children: t.description }) : null
730
+ /* @__PURE__ */ a("span", { className: "type-label ds:font-[var(--font-weight-semibold)] ds:text-[var(--foreground)]", children: i.label }),
731
+ i.description ? /* @__PURE__ */ a("span", { className: "type-body-sm ds:text-[color:var(--muted-foreground)]", children: i.description }) : null
730
732
  ]
731
733
  }
732
- ) }, t.id);
734
+ ) }, i.id);
733
735
  })
734
736
  }
735
737
  )
736
738
  ] });
737
739
  }
738
- function Pe(e) {
740
+ function Le(e) {
739
741
  if (e.object || e.place || e.geo || e.when && e.when !== "anytime") return !0;
740
742
  if (e.facets) {
741
- for (const s of Object.values(e.facets))
742
- if (s && s.length > 0) return !0;
743
+ for (const t of Object.values(e.facets))
744
+ if (t && t.length > 0) return !0;
743
745
  }
744
746
  return !1;
745
747
  }
746
- function G({
748
+ function X({
747
749
  value: e,
748
- variant: s,
749
- submitting: t,
750
- submitLabel: i,
751
- allowEmptySubmit: p,
750
+ variant: t,
751
+ submitting: s,
752
+ submitLabel: d,
753
+ allowEmptySubmit: i,
752
754
  onSubmit: v
753
755
  }) {
754
- const { t: b } = C("ui"), h = !t && !p && !Pe(e), d = i ?? b("patientSearch.submit.cta");
756
+ const { t: g } = C("ui"), h = !s && !i && !Le(e), c = d ?? g("patientSearch.submit.cta");
755
757
  return /* @__PURE__ */ a(
756
758
  fe,
757
759
  {
758
760
  type: "button",
759
761
  intent: "primary",
760
762
  size: "lg",
761
- startIcon: /* @__PURE__ */ a(ne, { "aria-hidden": "true" }),
762
- loading: t,
763
+ startIcon: /* @__PURE__ */ a(ie, { "aria-hidden": "true" }),
764
+ loading: s,
763
765
  disabled: h,
764
766
  onClick: () => {
765
767
  _("patient_search_submitted", {
766
- variant: s,
768
+ variant: t,
767
769
  hasObject: !!e.object,
768
770
  hasPlace: !!e.place,
769
771
  hasGeo: !!e.geo,
@@ -771,214 +773,214 @@ function G({
771
773
  facetKeys: e.facets ? Object.keys(e.facets) : []
772
774
  }), v(e);
773
775
  },
774
- children: d
776
+ children: c
775
777
  }
776
778
  );
777
779
  }
778
- function Le(e) {
780
+ function Pe(e) {
779
781
  const {
780
- variant: s,
781
- value: t,
782
- onChange: i,
783
- onSubmit: p,
782
+ variant: t,
783
+ value: s,
784
+ onChange: d,
785
+ onSubmit: i,
784
786
  loadObjects: v,
785
- loadPlaces: b,
787
+ loadPlaces: g,
786
788
  onObjectSelect: h,
787
- onPlaceSelect: d,
789
+ onPlaceSelect: c,
788
790
  allowTypedPlace: n,
789
791
  submitting: f,
790
792
  submitLabel: r,
791
- allowEmptySubmit: l,
793
+ allowEmptySubmit: p,
792
794
  whoRef: u,
793
- whereRef: c,
794
- defaultRadiusKm: g,
795
+ whereRef: l,
796
+ defaultRadiusKm: b,
795
797
  reverseGeocode: m,
796
798
  cardLabel: o
797
799
  } = e;
798
- return /* @__PURE__ */ a(H, { variant: "elevated", "aria-label": o, children: /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]", children: [
800
+ return /* @__PURE__ */ a(q, { variant: "elevated", "aria-label": o, children: /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)]", children: [
799
801
  /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:md:flex-row ds:md:items-start", children: [
800
802
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
801
- $,
803
+ U,
802
804
  {
803
- value: t,
804
- onChange: i,
805
+ value: s,
806
+ onChange: d,
805
807
  loadObjects: v,
806
808
  onObjectSelect: h,
807
809
  inputRef: u
808
810
  }
809
811
  ) }),
810
812
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
811
- q,
813
+ G,
812
814
  {
813
- value: t,
814
- onChange: i,
815
- loadPlaces: b,
816
- onPlaceSelect: d,
815
+ value: s,
816
+ onChange: d,
817
+ loadPlaces: g,
818
+ onPlaceSelect: c,
817
819
  allowTypedPlace: n,
818
- defaultRadiusKm: g,
820
+ defaultRadiusKm: b,
819
821
  reverseGeocode: m,
820
- inputRef: c
822
+ inputRef: l
821
823
  }
822
824
  ) }),
823
825
  /* @__PURE__ */ a(
824
- G,
826
+ X,
825
827
  {
826
- value: t,
827
- variant: s,
828
+ value: s,
829
+ variant: t,
828
830
  submitting: f,
829
831
  submitLabel: r,
830
- allowEmptySubmit: l,
831
- onSubmit: p
832
+ allowEmptySubmit: p,
833
+ onSubmit: i
832
834
  }
833
835
  )
834
836
  ] }),
835
837
  /* @__PURE__ */ a(
836
- U,
838
+ Q,
837
839
  {
838
- value: t,
839
- onChange: i,
840
- defaultRadiusKm: g
840
+ value: s,
841
+ onChange: d,
842
+ defaultRadiusKm: b
841
843
  }
842
844
  )
843
845
  ] }) });
844
846
  }
845
847
  function De(e) {
846
848
  const {
847
- variant: s,
848
- value: t,
849
- onChange: i,
850
- onSubmit: p,
849
+ variant: t,
850
+ value: s,
851
+ onChange: d,
852
+ onSubmit: i,
851
853
  loadObjects: v,
852
- loadPlaces: b,
854
+ loadPlaces: g,
853
855
  onObjectSelect: h,
854
- onPlaceSelect: d,
856
+ onPlaceSelect: c,
855
857
  allowTypedPlace: n,
856
858
  submitting: f,
857
859
  submitLabel: r,
858
- allowEmptySubmit: l,
860
+ allowEmptySubmit: p,
859
861
  whoRef: u,
860
- whereRef: c,
861
- defaultRadiusKm: g,
862
+ whereRef: l,
863
+ defaultRadiusKm: b,
862
864
  reverseGeocode: m,
863
865
  cardLabel: o
864
866
  } = e;
865
- return /* @__PURE__ */ a(H, { variant: "elevated", "aria-label": o, children: /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]", children: [
867
+ return /* @__PURE__ */ a(q, { variant: "elevated", "aria-label": o, children: /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]", children: [
866
868
  /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:md:flex-row ds:md:items-start", children: [
867
869
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
868
- $,
870
+ U,
869
871
  {
870
- value: t,
871
- onChange: i,
872
+ value: s,
873
+ onChange: d,
872
874
  loadObjects: v,
873
875
  onObjectSelect: h,
874
876
  inputRef: u
875
877
  }
876
878
  ) }),
877
879
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
878
- q,
880
+ G,
879
881
  {
880
- value: t,
881
- onChange: i,
882
- loadPlaces: b,
883
- onPlaceSelect: d,
882
+ value: s,
883
+ onChange: d,
884
+ loadPlaces: g,
885
+ onPlaceSelect: c,
884
886
  allowTypedPlace: n,
885
- defaultRadiusKm: g,
887
+ defaultRadiusKm: b,
886
888
  reverseGeocode: m,
887
- inputRef: c
889
+ inputRef: l
888
890
  }
889
891
  ) }),
890
892
  /* @__PURE__ */ a(
891
- G,
893
+ X,
892
894
  {
893
- value: t,
894
- variant: s,
895
+ value: s,
896
+ variant: t,
895
897
  submitting: f,
896
898
  submitLabel: r,
897
- allowEmptySubmit: l,
898
- onSubmit: p
899
+ allowEmptySubmit: p,
900
+ onSubmit: i
899
901
  }
900
902
  )
901
903
  ] }),
902
904
  /* @__PURE__ */ a(
903
- U,
905
+ Q,
904
906
  {
905
- value: t,
906
- onChange: i,
907
- defaultRadiusKm: g
907
+ value: s,
908
+ onChange: d,
909
+ defaultRadiusKm: b
908
910
  }
909
911
  ),
910
912
  /* @__PURE__ */ a(
911
913
  ke,
912
914
  {
913
- value: t.when,
914
- onChange: (S) => i({ ...t, when: S })
915
+ value: s.when,
916
+ onChange: (k) => d({ ...s, when: k })
915
917
  }
916
918
  )
917
919
  ] }) });
918
920
  }
919
921
  function Ie(e) {
920
922
  const {
921
- variant: s,
922
- value: t,
923
- onChange: i,
924
- onSubmit: p,
923
+ variant: t,
924
+ value: s,
925
+ onChange: d,
926
+ onSubmit: i,
925
927
  loadObjects: v,
926
- loadPlaces: b,
928
+ loadPlaces: g,
927
929
  onObjectSelect: h,
928
- onPlaceSelect: d,
930
+ onPlaceSelect: c,
929
931
  allowTypedPlace: n,
930
932
  facets: f,
931
933
  submitting: r,
932
- submitLabel: l,
934
+ submitLabel: p,
933
935
  allowEmptySubmit: u,
934
- whoRef: c,
935
- whereRef: g,
936
+ whoRef: l,
937
+ whereRef: b,
936
938
  defaultRadiusKm: m,
937
939
  reverseGeocode: o,
938
- cardLabel: S
940
+ cardLabel: k
939
941
  } = e;
940
- return /* @__PURE__ */ a(H, { variant: "elevated", "aria-label": S, children: /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]", children: [
942
+ return /* @__PURE__ */ a(q, { variant: "elevated", "aria-label": k, children: /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]", children: [
941
943
  /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:md:flex-row ds:md:items-start", children: [
942
944
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
943
- $,
945
+ U,
944
946
  {
945
- value: t,
946
- onChange: i,
947
+ value: s,
948
+ onChange: d,
947
949
  loadObjects: v,
948
950
  onObjectSelect: h,
949
- inputRef: c
951
+ inputRef: l
950
952
  }
951
953
  ) }),
952
954
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
953
- q,
955
+ G,
954
956
  {
955
- value: t,
956
- onChange: i,
957
- loadPlaces: b,
958
- onPlaceSelect: d,
957
+ value: s,
958
+ onChange: d,
959
+ loadPlaces: g,
960
+ onPlaceSelect: c,
959
961
  allowTypedPlace: n,
960
962
  defaultRadiusKm: m,
961
963
  reverseGeocode: o,
962
- inputRef: g
964
+ inputRef: b
963
965
  }
964
966
  ) }),
965
967
  /* @__PURE__ */ a(
966
- G,
968
+ X,
967
969
  {
968
- value: t,
969
- variant: s,
970
+ value: s,
971
+ variant: t,
970
972
  submitting: r,
971
- submitLabel: l,
973
+ submitLabel: p,
972
974
  allowEmptySubmit: u,
973
- onSubmit: p
975
+ onSubmit: i
974
976
  }
975
977
  )
976
978
  ] }),
977
979
  /* @__PURE__ */ a(
978
- U,
980
+ Q,
979
981
  {
980
- value: t,
981
- onChange: i,
982
+ value: s,
983
+ onChange: d,
982
984
  defaultRadiusKm: m
983
985
  }
984
986
  ),
@@ -986,176 +988,185 @@ function Ie(e) {
986
988
  Re,
987
989
  {
988
990
  facets: f,
989
- value: t.facets,
990
- onChange: (A) => i({ ...t, facets: A })
991
+ value: s.facets,
992
+ onChange: (j) => d({ ...s, facets: j })
991
993
  }
992
994
  ) : null
993
995
  ] }) });
994
996
  }
995
997
  function Oe(e) {
996
998
  const {
997
- variant: s,
998
- value: t,
999
- onChange: i,
1000
- onSubmit: p,
999
+ variant: t,
1000
+ value: s,
1001
+ onChange: d,
1002
+ onSubmit: i,
1001
1003
  loadObjects: v,
1002
- loadPlaces: b,
1004
+ loadPlaces: g,
1003
1005
  onObjectSelect: h,
1004
- onPlaceSelect: d,
1006
+ onPlaceSelect: c,
1005
1007
  allowTypedPlace: n,
1006
1008
  discoveryCards: f,
1007
- submitting: r,
1008
- submitLabel: l,
1009
- allowEmptySubmit: u,
1010
- whoRef: c,
1011
- whereRef: g,
1012
- defaultRadiusKm: m,
1013
- reverseGeocode: o,
1014
- cardLabel: S
1009
+ discoveryHeadingLevel: r,
1010
+ submitting: p,
1011
+ submitLabel: u,
1012
+ allowEmptySubmit: l,
1013
+ whoRef: b,
1014
+ whereRef: m,
1015
+ defaultRadiusKm: o,
1016
+ reverseGeocode: k,
1017
+ cardLabel: j
1015
1018
  } = e;
1016
1019
  return /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", children: [
1017
- /* @__PURE__ */ w(H, { variant: "elevated", "aria-label": S, children: [
1020
+ /* @__PURE__ */ w(q, { variant: "elevated", "aria-label": j, children: [
1018
1021
  /* @__PURE__ */ w("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-md)] ds:md:flex-row ds:md:items-stretch", children: [
1019
1022
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
1020
- $,
1023
+ U,
1021
1024
  {
1022
- value: t,
1023
- onChange: i,
1025
+ value: s,
1026
+ onChange: d,
1024
1027
  loadObjects: v,
1025
1028
  onObjectSelect: h,
1026
- inputRef: c
1029
+ inputRef: b
1027
1030
  }
1028
1031
  ) }),
1029
1032
  /* @__PURE__ */ a("div", { className: "ds:flex-1 ds:min-w-0", children: /* @__PURE__ */ a(
1030
- q,
1033
+ G,
1031
1034
  {
1032
- value: t,
1033
- onChange: i,
1034
- loadPlaces: b,
1035
- onPlaceSelect: d,
1035
+ value: s,
1036
+ onChange: d,
1037
+ loadPlaces: g,
1038
+ onPlaceSelect: c,
1036
1039
  allowTypedPlace: n,
1037
- defaultRadiusKm: m,
1038
- reverseGeocode: o,
1039
- inputRef: g
1040
+ defaultRadiusKm: o,
1041
+ reverseGeocode: k,
1042
+ inputRef: m
1040
1043
  }
1041
1044
  ) }),
1042
1045
  /* @__PURE__ */ a(
1043
- G,
1046
+ X,
1044
1047
  {
1045
- value: t,
1046
- variant: s,
1047
- submitting: r,
1048
- submitLabel: l,
1049
- allowEmptySubmit: u,
1050
- onSubmit: p
1048
+ value: s,
1049
+ variant: t,
1050
+ submitting: p,
1051
+ submitLabel: u,
1052
+ allowEmptySubmit: l,
1053
+ onSubmit: i
1051
1054
  }
1052
1055
  )
1053
1056
  ] }),
1054
1057
  /* @__PURE__ */ a(
1055
- U,
1058
+ Q,
1056
1059
  {
1057
- value: t,
1058
- onChange: i,
1059
- defaultRadiusKm: m
1060
+ value: s,
1061
+ onChange: d,
1062
+ defaultRadiusKm: o
1060
1063
  }
1061
1064
  )
1062
1065
  ] }),
1063
- /* @__PURE__ */ a(Ee, { cards: f })
1066
+ /* @__PURE__ */ a(
1067
+ Ee,
1068
+ {
1069
+ cards: f,
1070
+ headingLevel: r
1071
+ }
1072
+ )
1064
1073
  ] });
1065
1074
  }
1066
1075
  const Ve = ce(function({
1067
- variant: s,
1068
- loadObjects: t,
1069
- loadPlaces: i,
1070
- onObjectSelect: p,
1076
+ variant: t,
1077
+ loadObjects: s,
1078
+ loadPlaces: d,
1079
+ onObjectSelect: i,
1071
1080
  onPlaceSelect: v,
1072
- allowTypedPlace: b = !1,
1081
+ allowTypedPlace: g = !1,
1073
1082
  facets: h,
1074
- defaultRadiusKm: d = J,
1083
+ defaultRadiusKm: c = Z,
1075
1084
  reverseGeocode: n,
1076
1085
  discoveryCards: f,
1077
- countryCode: r,
1078
- value: l,
1079
- onChange: u,
1080
- onSubmit: c,
1081
- submitting: g,
1082
- submitLabel: m,
1083
- allowEmptySubmit: o,
1084
- "aria-label": S,
1085
- id: A,
1086
- className: Q,
1087
- ...D
1088
- }, I) {
1089
- const { t: Z } = C("ui"), X = j(null), O = j(null), F = j(null), E = j(!1);
1090
- K(() => {
1091
- if (!E.current && s === "who-where-when") {
1092
- if (l.when !== void 0) {
1086
+ discoveryHeadingLevel: r = 3,
1087
+ countryCode: p,
1088
+ value: u,
1089
+ onChange: l,
1090
+ onSubmit: b,
1091
+ submitting: m,
1092
+ submitLabel: o,
1093
+ allowEmptySubmit: k,
1094
+ "aria-label": j,
1095
+ id: P,
1096
+ className: D,
1097
+ ...I
1098
+ }, ee) {
1099
+ const { t: Y } = C("ui"), K = R(null), O = R(null), z = R(null), E = R(!1);
1100
+ B(() => {
1101
+ if (!E.current && t === "who-where-when") {
1102
+ if (u.when !== void 0) {
1093
1103
  E.current = !0;
1094
1104
  return;
1095
1105
  }
1096
- E.current = !0, u({ ...l, when: "anytime" });
1106
+ E.current = !0, l({ ...u, when: "anytime" });
1097
1107
  }
1098
- }, [s]);
1099
- const P = j(!1);
1100
- K(() => {
1101
- if (!P.current && s === "faceted") {
1102
- if (l.facets !== void 0) {
1103
- P.current = !0;
1108
+ }, [t]);
1109
+ const y = R(!1);
1110
+ B(() => {
1111
+ if (!y.current && t === "faceted") {
1112
+ if (u.facets !== void 0) {
1113
+ y.current = !0;
1104
1114
  return;
1105
1115
  }
1106
- P.current = !0, u({ ...l, facets: {} });
1116
+ y.current = !0, l({ ...u, facets: {} });
1107
1117
  }
1108
- }, [s]);
1109
- const y = j(null);
1110
- K(() => {
1111
- y.current !== s && (y.current = s, _("patient_search_variant_exposed", { variant: s, country: r }));
1112
- }, [s, r]);
1113
- const x = Y(
1118
+ }, [t]);
1119
+ const x = R(null);
1120
+ B(() => {
1121
+ x.current !== t && (x.current = t, _("patient_search_variant_exposed", { variant: t, country: p }));
1122
+ }, [t, p]);
1123
+ const N = J(
1114
1124
  () => ({
1115
- getVariant: () => s,
1125
+ getVariant: () => t,
1116
1126
  reset: () => {
1117
- u({});
1127
+ l({});
1118
1128
  },
1119
1129
  focusPrimary: () => {
1120
1130
  requestAnimationFrame(() => {
1121
- var V;
1122
- (V = O.current) == null || V.focus();
1131
+ var W;
1132
+ (W = O.current) == null || W.focus();
1123
1133
  });
1124
1134
  }
1125
1135
  }),
1126
- [s, u]
1136
+ [t, l]
1127
1137
  );
1128
- le(I, () => x, [x]), me(we, x, A);
1129
- const N = S ?? Z("patientSearch.regionLabel"), k = {
1130
- variant: s,
1131
- value: l,
1132
- onChange: u,
1133
- onSubmit: c,
1134
- loadObjects: t,
1135
- loadPlaces: i,
1136
- onObjectSelect: p,
1138
+ le(ee, () => N, [N]), me(we, N, P);
1139
+ const A = j ?? Y("patientSearch.regionLabel"), S = {
1140
+ variant: t,
1141
+ value: u,
1142
+ onChange: l,
1143
+ onSubmit: b,
1144
+ loadObjects: s,
1145
+ loadPlaces: d,
1146
+ onObjectSelect: i,
1137
1147
  onPlaceSelect: v,
1138
- allowTypedPlace: b,
1148
+ allowTypedPlace: g,
1139
1149
  facets: h,
1140
- defaultRadiusKm: d,
1150
+ defaultRadiusKm: c,
1141
1151
  reverseGeocode: n,
1142
1152
  discoveryCards: f ?? [],
1143
- submitting: g,
1144
- submitLabel: m,
1145
- allowEmptySubmit: o,
1153
+ discoveryHeadingLevel: r,
1154
+ submitting: m,
1155
+ submitLabel: o,
1156
+ allowEmptySubmit: k,
1146
1157
  whoRef: O,
1147
- whereRef: F,
1148
- cardLabel: N
1149
- }, R = (() => {
1150
- switch (s) {
1158
+ whereRef: z,
1159
+ cardLabel: A
1160
+ }, F = (() => {
1161
+ switch (t) {
1151
1162
  case "who-where":
1152
- return /* @__PURE__ */ a(Le, { ...k });
1163
+ return /* @__PURE__ */ a(Pe, { ...S });
1153
1164
  case "who-where-when":
1154
- return /* @__PURE__ */ a(De, { ...k });
1165
+ return /* @__PURE__ */ a(De, { ...S });
1155
1166
  case "faceted":
1156
- return /* @__PURE__ */ a(Ie, { ...k });
1167
+ return /* @__PURE__ */ a(Ie, { ...S });
1157
1168
  case "discovery":
1158
- return /* @__PURE__ */ a(Oe, { ...k });
1169
+ return /* @__PURE__ */ a(Oe, { ...S });
1159
1170
  /* c8 ignore next 2 */
1160
1171
  default:
1161
1172
  return null;
@@ -1164,16 +1175,16 @@ const Ve = ce(function({
1164
1175
  return /* @__PURE__ */ a(
1165
1176
  "div",
1166
1177
  {
1167
- ref: X,
1178
+ ref: K,
1168
1179
  role: "region",
1169
- "aria-label": N,
1170
- id: A,
1180
+ "aria-label": A,
1181
+ id: P,
1171
1182
  "data-component": "patient-search",
1172
- "data-component-id": A,
1173
- "data-variant": s,
1174
- className: Se({ variant: s, className: Q }),
1175
- ...D,
1176
- children: R
1183
+ "data-component-id": P,
1184
+ "data-variant": t,
1185
+ className: Se({ variant: t, className: D }),
1186
+ ...I,
1187
+ children: F
1177
1188
  }
1178
1189
  );
1179
1190
  });
@@ -1182,4 +1193,4 @@ export {
1182
1193
  Ve as P,
1183
1194
  we as p
1184
1195
  };
1185
- //# sourceMappingURL=patient-search-Dy0sxcwv.js.map
1196
+ //# sourceMappingURL=patient-search-CCOUZABE.js.map