@alfadocs/ui-kit 1.4.11 → 1.4.13

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 (202) hide show
  1. package/dist/_chunks/actions-cell-renderer-BD-jruqA.js +1784 -0
  2. package/dist/_chunks/{address-fields-pHsfkXGk.js → address-fields-D-8akw2m.js} +2 -2
  3. package/dist/_chunks/{agenda-card-BCGaQazD.js → agenda-card-BQDs2ZMp.js} +2 -2
  4. package/dist/_chunks/{agenda-tray-CG6FuccE.js → agenda-tray-BTyWsVwT.js} +2 -2
  5. package/dist/_chunks/{ai-consent-banner-CpF_rbG9.js → ai-consent-banner-gVcoiXxv.js} +2 -2
  6. package/dist/_chunks/{anamnesis-card-C4FVp9wO.js → anamnesis-card-Bt0twrML.js} +2 -2
  7. package/dist/_chunks/anamnesis-summary-card-BKGVcwny.js +350 -0
  8. package/dist/_chunks/{anamnesis-summary-rows-Dw3l6nOD.js → anamnesis-summary-rows-B5MAYkJ-.js} +2768 -2951
  9. package/dist/_chunks/{antenatal-schedule-timeline-u8TsS2QJ.js → antenatal-schedule-timeline-BSLrOQ3S.js} +2 -2
  10. package/dist/_chunks/{appointment-card-DgKI5QKD.js → appointment-card-kcUC7vWR.js} +2 -2
  11. package/dist/_chunks/{appointment-timeline-CUijZCxZ.js → appointment-timeline-BC3dlZu5.js} +2 -2
  12. package/dist/_chunks/{appointment-tray-B1aUk46V.js → appointment-tray-BPY5rATW.js} +2 -2
  13. package/dist/_chunks/{badge-DCOqV9mI.js → badge-CIt-UFEx.js} +28 -28
  14. package/dist/_chunks/{bishop-score-Bpe20Ctl.js → bishop-score-B6iYYO0c.js} +3 -3
  15. package/dist/_chunks/{bmi-calculator-DF5bNsDD.js → bmi-calculator-DC5SaqXT.js} +5 -5
  16. package/dist/_chunks/{booking-DuSkvE5x.js → booking-CmHX15dh.js} +2 -2
  17. package/dist/_chunks/{care-plan-card-DiyK3Eys.js → care-plan-card-9tLgsDYY.js} +3 -3
  18. package/dist/_chunks/{care-plan-entry-card-6du8PYVk.js → care-plan-entry-card-CSan4h7A.js} +2 -2
  19. package/dist/_chunks/{care-plan-header-BWvDvly-.js → care-plan-header-D_BTi77b.js} +2 -2
  20. package/dist/_chunks/{clinical-note-card-D63x_AkK.js → clinical-note-card-ByzQ86uz.js} +2 -2
  21. package/dist/_chunks/{connection-status-Bi4Hwpd1.js → connection-status-D8mZ4klk.js} +2 -2
  22. package/dist/_chunks/{contact-profile-card-CGS_NABR.js → contact-profile-card-DuW6VpzY.js} +2 -2
  23. package/dist/_chunks/{cycle-calculator-Bd4_fJhq.js → cycle-calculator-B_NlctlQ.js} +4 -4
  24. package/dist/_chunks/{date-time-picker-DafkGDGO.js → date-time-picker-DVETwpzc.js} +2 -2
  25. package/dist/_chunks/{dependent-selector-DyFpdzZV.js → dependent-selector-BUvrZRi0.js} +2 -2
  26. package/dist/_chunks/{document-preview-DuMzmupZ.js → document-preview-Di15VrpQ.js} +2 -2
  27. package/dist/_chunks/{due-date-calculator-Do67C-Z-.js → due-date-calculator-le1z3KpW.js} +6 -6
  28. package/dist/_chunks/{fetal-weight-DHxXx7Uz.js → fetal-weight-DXA6ZpMq.js} +4 -4
  29. package/dist/_chunks/{field-value-C5A4t4OE.js → field-value-BCFLVBmu.js} +2 -2
  30. package/dist/_chunks/{file-manager-BY6FdHAt.js → file-manager-BjCM2fZB.js} +3 -3
  31. package/dist/_chunks/form-field-D1oqYisL.js +127 -0
  32. package/dist/_chunks/{gestational-age-calculator-CMhOtFE_.js → gestational-age-calculator-Ch8vmJAl.js} +5 -5
  33. package/dist/_chunks/{hcg-doubling-DNG9Q2go.js → hcg-doubling-BT6lki_i.js} +5 -5
  34. package/dist/_chunks/{link-cell-renderer-C8npOgmM.js → link-cell-renderer-C7GvyK66.js} +3 -3
  35. package/dist/_chunks/{marketplace-app-shell-BxOiy25s.js → marketplace-app-shell-BhRH7Zi4.js} +2 -2
  36. package/dist/_chunks/{notes-panel-BoyzMHI_.js → notes-panel-Bz83SO4-.js} +2 -2
  37. package/dist/_chunks/number-input-CM1q9zvH.js +414 -0
  38. package/dist/_chunks/{operator-hero-DVy0RGoD.js → operator-hero-CpJkDNAM.js} +2 -2
  39. package/dist/_chunks/{optical-prescription-Brs0CeP3.js → optical-prescription-CQR_WJiS.js} +2 -2
  40. package/dist/_chunks/{patient-details-Bf4iTAPp.js → patient-details-CnFgF3MU.js} +3 -3
  41. package/dist/_chunks/{patient-summary-card-dkV6a53T.js → patient-summary-card-DfbOtOV6.js} +3 -3
  42. package/dist/_chunks/{patient-table-zifAcsjV.js → patient-table-BXzcrC79.js} +4 -4
  43. package/dist/_chunks/{payment-automation-upsell-CZZPGfs0.js → payment-automation-upsell-Ckh3b7Xx.js} +2 -2
  44. package/dist/_chunks/{payment-request-card-Dy7_DA-2.js → payment-request-card-Dn6-tH-D.js} +2 -2
  45. package/dist/_chunks/{periodontal-chart-CfFgKXWa.js → periodontal-chart-B0yko9Xm.js} +2 -2
  46. package/dist/_chunks/{periodontal-chart-card--6yTUsrQ.js → periodontal-chart-card-HbYTmWlo.js} +2 -2
  47. package/dist/_chunks/{periodontal-diagnosis-cco40xTa.js → periodontal-diagnosis-Qk4F3Wc_.js} +3 -3
  48. package/dist/_chunks/{periodontal-risk-chart-bUGkMwDg.js → periodontal-risk-chart-ByKuM4cF.js} +2 -2
  49. package/dist/_chunks/{practice-results-Mys11x9p.js → practice-results-C5exrEn0.js} +2 -2
  50. package/dist/_chunks/{pregnancy-dating-t3oM4ZzC.js → pregnancy-dating-4tPV_Yko.js} +6 -6
  51. package/dist/_chunks/{pregnancy-weight-gain-Bfz7SbIw.js → pregnancy-weight-gain-BBgbWBGe.js} +5 -5
  52. package/dist/_chunks/radio-group-BmIqhIT2.js +171 -0
  53. package/dist/_chunks/{radiograph-panel.agent-DyA4wsZA.js → radiograph-panel.agent-Drj0hYVV.js} +3 -3
  54. package/dist/_chunks/signature-status-chip-DlLJk1VA.js +97 -0
  55. package/dist/_chunks/{tab-bar-BYESZINM.js → tab-bar-Ddp_ZbnL.js} +2 -2
  56. package/dist/_chunks/{tasks-panel-CoESdfZI.js → tasks-panel-T7vaKJcA.js} +2 -2
  57. package/dist/_chunks/{time-picker-BPlJWm8w.js → time-picker-D0RS391l.js} +66 -63
  58. package/dist/_chunks/{unit-converter-lUW9Q888.js → unit-converter-Dsk__pjA.js} +3 -3
  59. package/dist/_chunks/{widget-picker-DEmTVuFL.js → widget-picker-DqMbjQy_.js} +2 -2
  60. package/dist/_chunks/{workflow-map-C5PGP6cD.js → workflow-map-BNBeG2zn.js} +2 -2
  61. package/dist/agent-catalog.json +34 -34
  62. package/dist/agent-i18n/en.json +4 -4
  63. package/dist/components/address-fields/index.js +1 -1
  64. package/dist/components/agenda-card/index.js +1 -1
  65. package/dist/components/agenda-tray/index.js +1 -1
  66. package/dist/components/ai-consent-banner/index.js +1 -1
  67. package/dist/components/anamnesis-card/index.js +1 -1
  68. package/dist/components/anamnesis-summary-card/index.js +1 -1
  69. package/dist/components/appointment-card/index.js +2 -2
  70. package/dist/components/appointment-timeline/index.js +1 -1
  71. package/dist/components/badge/badge.d.ts +1 -0
  72. package/dist/components/badge/index.js +1 -1
  73. package/dist/components/bishop-score/index.js +1 -1
  74. package/dist/components/bmi-calculator/index.js +1 -1
  75. package/dist/components/booking/index.js +1 -1
  76. package/dist/components/care-plan-card/index.js +1 -1
  77. package/dist/components/care-plan-entry-card/index.js +1 -1
  78. package/dist/components/care-plan-header/index.js +1 -1
  79. package/dist/components/clinical-note-card/index.js +1 -1
  80. package/dist/components/connection-status/index.js +1 -1
  81. package/dist/components/contact-profile-card/index.js +1 -1
  82. package/dist/components/cycle-calculator/index.js +1 -1
  83. package/dist/components/data-table/data-table.d.ts +19 -0
  84. package/dist/components/data-table/expanded-row-renderer.d.ts +47 -0
  85. package/dist/components/data-table/index.d.ts +2 -0
  86. package/dist/components/data-table/index.js +31 -27
  87. package/dist/components/date-time-picker/index.js +1 -1
  88. package/dist/components/dependent-selector/index.js +1 -1
  89. package/dist/components/document-preview/index.js +1 -1
  90. package/dist/components/due-date-calculator/index.js +2 -2
  91. package/dist/components/fetal-weight/index.js +1 -1
  92. package/dist/components/file-manager/index.js +1 -1
  93. package/dist/components/form-field/form-field.d.ts +6 -0
  94. package/dist/components/form-field/index.js +1 -1
  95. package/dist/components/gestational-age-calculator/index.js +1 -1
  96. package/dist/components/hcg-doubling/index.js +1 -1
  97. package/dist/components/index.d.ts +1 -0
  98. package/dist/components/notes-panel/index.js +1 -1
  99. package/dist/components/number-input/index.js +1 -1
  100. package/dist/components/number-input/number-input.d.ts +11 -0
  101. package/dist/components/operator-hero/index.js +1 -1
  102. package/dist/components/optical-prescription/index.js +1 -1
  103. package/dist/components/patient-details/index.js +1 -1
  104. package/dist/components/patient-summary-card/index.js +1 -1
  105. package/dist/components/patient-table/index.js +1 -1
  106. package/dist/components/payment-card/index.js +1 -1
  107. package/dist/components/periodontal-chart/index.js +1 -1
  108. package/dist/components/periodontal-chart-card/index.js +1 -1
  109. package/dist/components/periodontal-diagnosis/index.js +1 -1
  110. package/dist/components/periodontal-risk-chart/index.js +1 -1
  111. package/dist/components/practice-results/index.js +1 -1
  112. package/dist/components/pregnancy-dating/index.js +1 -1
  113. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  114. package/dist/components/radio-group/index.js +1 -1
  115. package/dist/components/radio-group/radio-group.d.ts +3 -0
  116. package/dist/components/radiograph-panel/index.js +1 -1
  117. package/dist/components/signature-status-chip/index.d.ts +3 -0
  118. package/dist/components/signature-status-chip/index.js +6 -0
  119. package/dist/components/signature-status-chip/signature-status-chip.d.ts +29 -0
  120. package/dist/components/tab-bar/index.js +1 -1
  121. package/dist/components/tasks-panel/index.js +1 -1
  122. package/dist/components/time-picker/index.js +1 -1
  123. package/dist/components/unit-converter/index.js +1 -1
  124. package/dist/components/widget-picker/index.js +1 -1
  125. package/dist/components/workflow/index.js +1 -1
  126. package/dist/host-compat.css +4 -1
  127. package/dist/i18n/locales/ar.d.ts +17 -0
  128. package/dist/i18n/locales/ar.js +11 -0
  129. package/dist/i18n/locales/de.d.ts +17 -0
  130. package/dist/i18n/locales/de.js +11 -0
  131. package/dist/i18n/locales/el.d.ts +17 -0
  132. package/dist/i18n/locales/el.js +11 -0
  133. package/dist/i18n/locales/en.d.ts +17 -0
  134. package/dist/i18n/locales/en.js +11 -0
  135. package/dist/i18n/locales/es.d.ts +17 -0
  136. package/dist/i18n/locales/es.js +11 -0
  137. package/dist/i18n/locales/fr.d.ts +17 -0
  138. package/dist/i18n/locales/fr.js +11 -0
  139. package/dist/i18n/locales/hi.d.ts +17 -0
  140. package/dist/i18n/locales/hi.js +11 -0
  141. package/dist/i18n/locales/it.d.ts +17 -0
  142. package/dist/i18n/locales/it.js +11 -0
  143. package/dist/i18n/locales/ja.d.ts +17 -0
  144. package/dist/i18n/locales/ja.js +11 -0
  145. package/dist/i18n/locales/nl.d.ts +17 -0
  146. package/dist/i18n/locales/nl.js +11 -0
  147. package/dist/i18n/locales/pl.d.ts +17 -0
  148. package/dist/i18n/locales/pl.js +11 -0
  149. package/dist/i18n/locales/pt.d.ts +17 -0
  150. package/dist/i18n/locales/pt.js +11 -0
  151. package/dist/i18n/locales/ro.d.ts +17 -0
  152. package/dist/i18n/locales/ro.js +11 -0
  153. package/dist/i18n/locales/ru.d.ts +17 -0
  154. package/dist/i18n/locales/ru.js +11 -0
  155. package/dist/i18n/locales/sq.d.ts +17 -0
  156. package/dist/i18n/locales/sq.js +11 -0
  157. package/dist/i18n/locales/sv.d.ts +17 -0
  158. package/dist/i18n/locales/sv.js +11 -0
  159. package/dist/i18n/locales/tr.d.ts +17 -0
  160. package/dist/i18n/locales/tr.js +11 -0
  161. package/dist/i18n/locales/zh.d.ts +17 -0
  162. package/dist/i18n/locales/zh.js +11 -0
  163. package/dist/index.js +799 -792
  164. package/dist/locales/ar.json +17 -0
  165. package/dist/locales/de.json +17 -0
  166. package/dist/locales/el.json +17 -0
  167. package/dist/locales/en.json +17 -0
  168. package/dist/locales/es.json +17 -0
  169. package/dist/locales/fr.json +17 -0
  170. package/dist/locales/hi.json +17 -0
  171. package/dist/locales/it.json +17 -0
  172. package/dist/locales/ja.json +17 -0
  173. package/dist/locales/nl.json +17 -0
  174. package/dist/locales/pl.json +17 -0
  175. package/dist/locales/pt.json +17 -0
  176. package/dist/locales/ro.json +17 -0
  177. package/dist/locales/ru.json +17 -0
  178. package/dist/locales/sq.json +17 -0
  179. package/dist/locales/sv.json +17 -0
  180. package/dist/locales/tr.json +17 -0
  181. package/dist/locales/zh.json +17 -0
  182. package/dist/patterns/anamnesis/anamnesis-baseline.d.ts +6 -0
  183. package/dist/patterns/anamnesis/anamnesis-compile.d.ts +4 -1
  184. package/dist/patterns/anamnesis/anamnesis-evolution-grid.d.ts +8 -9
  185. package/dist/patterns/anamnesis/anamnesis-evolution.d.ts +24 -12
  186. package/dist/patterns/anamnesis/anamnesis-intake.d.ts +5 -1
  187. package/dist/patterns/anamnesis/anamnesis-questionnaire.d.ts +4 -1
  188. package/dist/patterns/anamnesis/anamnesis-readonly.d.ts +4 -1
  189. package/dist/patterns/anamnesis/anamnesis-source-blocks.d.ts +29 -0
  190. package/dist/patterns/anamnesis/anamnesis-window.d.ts +3 -5
  191. package/dist/patterns/anamnesis/anamnesis.d.ts +4 -1
  192. package/dist/patterns/anamnesis/index.js +1 -1
  193. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  194. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  195. package/dist/tokens.css +5 -2
  196. package/package.json +5 -1
  197. package/dist/_chunks/actions-cell-renderer-C67oj7mR.js +0 -1581
  198. package/dist/_chunks/anamnesis-summary-card-CpQViN5l.js +0 -392
  199. package/dist/_chunks/form-field-M5UpX65Z.js +0 -123
  200. package/dist/_chunks/number-input-DOe5VYei.js +0 -370
  201. package/dist/_chunks/radio-group-CI-6SmSw.js +0 -167
  202. package/dist/patterns/anamnesis/anamnesis-compare-panel.d.ts +0 -89
@@ -13,10 +13,10 @@ const De = {
13
13
  descriptionKey: "ui.agent.timePicker.state.value",
14
14
  description: "Currently-selected time as 24h HH:MM (always present — defaults to 00:00 when unset).",
15
15
  read: (t) => {
16
- const s = t.getValue();
17
- if (!s) return null;
18
- const u = String(s.hours).padStart(2, "0"), f = String(s.minutes).padStart(2, "0");
19
- return `${u}:${f}`;
16
+ const n = t.getValue();
17
+ if (!n) return null;
18
+ const u = String(n.hours).padStart(2, "0"), m = String(n.minutes).padStart(2, "0");
19
+ return `${u}:${m}`;
20
20
  }
21
21
  },
22
22
  isOpen: {
@@ -41,11 +41,11 @@ const De = {
41
41
  descriptionKey: "ui.agent.timePicker.actions.setTime",
42
42
  description: "Set the time using a 24h HH:MM string.",
43
43
  examples: [{ args: { time: "14:30" }, note: "2:30 PM in 24h form." }],
44
- invoke: (t, s) => {
45
- const [u, f] = s.time.split(":");
44
+ invoke: (t, n) => {
45
+ const [u, m] = n.time.split(":");
46
46
  t.setValue({
47
47
  hours: Number.parseInt(u ?? "0", 10),
48
- minutes: Number.parseInt(f ?? "0", 10)
48
+ minutes: Number.parseInt(m ?? "0", 10)
49
49
  });
50
50
  }
51
51
  },
@@ -90,40 +90,40 @@ const De = {
90
90
  };
91
91
  function Me(t) {
92
92
  try {
93
- const s = new Intl.DateTimeFormat(t, {
93
+ const n = new Intl.DateTimeFormat(t, {
94
94
  hour: "numeric"
95
95
  }).resolvedOptions();
96
- return s.hourCycle === "h12" || s.hourCycle === "h11";
96
+ return n.hourCycle === "h12" || n.hourCycle === "h11";
97
97
  } catch {
98
98
  return !1;
99
99
  }
100
100
  }
101
101
  function He(t) {
102
- var s, u;
102
+ var n, u;
103
103
  try {
104
- const f = ((s = new Intl.DateTimeFormat(t, {
104
+ const m = ((n = new Intl.DateTimeFormat(t, {
105
105
  hour: "numeric",
106
106
  hour12: !0
107
- }).formatToParts(new Date(2e3, 0, 1, 9)).find((x) => x.type === "dayPeriod")) == null ? void 0 : s.value) ?? "AM", m = ((u = new Intl.DateTimeFormat(t, {
107
+ }).formatToParts(new Date(2e3, 0, 1, 9)).find((x) => x.type === "dayPeriod")) == null ? void 0 : n.value) ?? "AM", p = ((u = new Intl.DateTimeFormat(t, {
108
108
  hour: "numeric",
109
109
  hour12: !0
110
110
  }).formatToParts(new Date(2e3, 0, 1, 15)).find((x) => x.type === "dayPeriod")) == null ? void 0 : u.value) ?? "PM";
111
- return { am: f, pm: m };
111
+ return { am: m, pm: p };
112
112
  } catch {
113
113
  return { am: "AM", pm: "PM" };
114
114
  }
115
115
  }
116
- function w(t, s, u) {
117
- return Math.min(u, Math.max(s, t));
116
+ function w(t, n, u) {
117
+ return Math.min(u, Math.max(n, t));
118
118
  }
119
- function S(t, s) {
120
- return Math.round(t / s) * s;
119
+ function S(t, n) {
120
+ return Math.round(t / n) * n;
121
121
  }
122
122
  function W(t) {
123
123
  return t === 0 ? 12 : t > 12 ? t - 12 : t;
124
124
  }
125
- function U(t, s) {
126
- return s ? t === 12 ? 12 : t + 12 : t === 12 ? 0 : t;
125
+ function U(t, n) {
126
+ return n ? t === 12 ? 12 : t + 12 : t === 12 ? 0 : t;
127
127
  }
128
128
  const ze = N(
129
129
  [
@@ -208,10 +208,10 @@ const ze = N(
208
208
  }), Ie = ye(
209
209
  ({
210
210
  value: t,
211
- defaultValue: s,
211
+ defaultValue: n,
212
212
  onChange: u,
213
- hour12: f,
214
- minuteStep: m = 1,
213
+ hour12: m,
214
+ minuteStep: p = 1,
215
215
  fullWidthSeparator: x = !1,
216
216
  periodLabels: J,
217
217
  size: T = "md",
@@ -219,14 +219,14 @@ const ze = N(
219
219
  className: X,
220
220
  id: Y
221
221
  }, Z) => {
222
- const { t: K, i18n: _ } = xe(), P = Te(), R = Y ?? P.id, p = P.disabled || Q, ee = P.invalid ? "error" : "default", i = f !== void 0 ? f : Me(_.language), te = He(_.language), V = J ?? te, j = t !== void 0, [re, ne] = F(
223
- t ?? s ?? { hours: 0, minutes: 0 }
222
+ const { t: K, i18n: _ } = xe(), P = Te(), R = Y ?? P.id, c = P.disabled || Q, ee = P.invalid ? "error" : "default", i = m !== void 0 ? m : Me(_.language), te = He(_.language), V = J ?? te, j = t !== void 0, [re, se] = F(
223
+ t ?? n ?? { hours: 0, minutes: 0 }
224
224
  ), r = j ? t : re, o = O(
225
225
  (e) => {
226
- j || ne(e), u == null || u(e);
226
+ j || se(e), u == null || u(e);
227
227
  },
228
228
  [j, u]
229
- ), $ = k(null), D = k(null), I = k(null), [se, M] = F(""), [ie, H] = F(""), h = k(null), v = k(null), L = O(() => {
229
+ ), $ = k(null), D = k(null), I = k(null), [ne, M] = F(""), [ie, H] = F(""), h = k(null), v = k(null), L = O(() => {
230
230
  M(""), h.current && (clearTimeout(h.current), h.current = null);
231
231
  }, []), A = O(() => {
232
232
  H(""), v.current && (clearTimeout(v.current), v.current = null);
@@ -234,14 +234,14 @@ const ze = N(
234
234
  be(() => () => {
235
235
  h.current && clearTimeout(h.current), v.current && clearTimeout(v.current);
236
236
  }, []);
237
- const oe = x ? ":" : ":", C = i ? String(W(r.hours)).padStart(2, "0") : String(r.hours).padStart(2, "0"), q = String(r.minutes).padStart(2, "0"), l = r.hours >= 12, ae = (e) => {
237
+ const oe = x ? ":" : ":", C = i ? String(W(r.hours)).padStart(2, "0") : String(r.hours).padStart(2, "0"), q = String(r.minutes).padStart(2, "0"), f = r.hours >= 12, ae = (e) => {
238
238
  var g, b, z;
239
- if (!p) {
239
+ if (!c) {
240
240
  if (e.key === "ArrowUp" || e.key === "ArrowDown") {
241
241
  e.preventDefault();
242
242
  const y = e.key === "ArrowUp" ? 1 : -1, d = 23;
243
- let n = r.hours + y;
244
- n < 0 && (n = d), n > d && (n = 0), o({ ...r, hours: n }), L();
243
+ let s = r.hours + y;
244
+ s < 0 && (s = d), s > d && (s = 0), o({ ...r, hours: s }), L();
245
245
  return;
246
246
  }
247
247
  if (e.key === "Tab" && !e.shiftKey) {
@@ -250,30 +250,30 @@ const ze = N(
250
250
  }
251
251
  if (e.key >= "0" && e.key <= "9") {
252
252
  e.preventDefault();
253
- const y = se + e.key;
253
+ const y = ne + e.key;
254
254
  M(y), h.current && clearTimeout(h.current);
255
- const d = parseInt(y, 10), n = i ? 12 : 23;
255
+ const d = parseInt(y, 10), s = i ? 12 : 23;
256
256
  if (y.length >= 2) {
257
- const a = w(d, i ? 1 : 0, n), c = i ? U(a, l) : a;
258
- o({ ...r, hours: c }), M(""), (b = D.current) == null || b.focus();
257
+ const a = w(d, i ? 1 : 0, s), l = i ? U(a, f) : a;
258
+ o({ ...r, hours: l }), M(""), (b = D.current) == null || b.focus();
259
259
  } else if (d > (i ? 1 : 2)) {
260
- const a = w(d, i ? 1 : 0, n), c = i ? U(a, l) : a;
261
- o({ ...r, hours: c }), M(""), (z = D.current) == null || z.focus();
260
+ const a = w(d, i ? 1 : 0, s), l = i ? U(a, f) : a;
261
+ o({ ...r, hours: l }), M(""), (z = D.current) == null || z.focus();
262
262
  } else
263
263
  h.current = setTimeout(() => {
264
- const a = w(d, i ? 1 : 0, n), c = i ? U(a, l) : a;
265
- o({ ...r, hours: c }), M("");
264
+ const a = w(d, i ? 1 : 0, s), l = i ? U(a, f) : a;
265
+ o({ ...r, hours: l }), M("");
266
266
  }, 1e3);
267
267
  }
268
268
  }
269
269
  }, ue = (e) => {
270
270
  var g, b, z, y;
271
- if (!p) {
271
+ if (!c) {
272
272
  if (e.key === "ArrowUp" || e.key === "ArrowDown") {
273
273
  e.preventDefault();
274
- const d = e.key === "ArrowUp" ? m : -m;
275
- let n = r.minutes + d;
276
- n < 0 && (n = 60 + n), n >= 60 && (n = n - 60), o({ ...r, minutes: n }), A();
274
+ const d = e.key === "ArrowUp" ? p : -p;
275
+ let s = r.minutes + d;
276
+ s < 0 && (s = 60 + s), s >= 60 && (s = s - 60), o({ ...r, minutes: s }), A();
277
277
  return;
278
278
  }
279
279
  if (e.key === "Tab" && !e.shiftKey && i) {
@@ -288,26 +288,26 @@ const ze = N(
288
288
  e.preventDefault();
289
289
  const d = ie + e.key;
290
290
  H(d), v.current && clearTimeout(v.current);
291
- const n = parseInt(d, 10);
291
+ const s = parseInt(d, 10);
292
292
  if (d.length >= 2) {
293
- const a = w(n, 0, 59), c = S(a, m);
294
- o({ ...r, minutes: c }), H(""), i && ((z = I.current) == null || z.focus());
295
- } else if (n > 5) {
296
- const a = w(n, 0, 59), c = S(a, m);
297
- o({ ...r, minutes: c }), H(""), i && ((y = I.current) == null || y.focus());
293
+ const a = w(s, 0, 59), l = S(a, p);
294
+ o({ ...r, minutes: l }), H(""), i && ((z = I.current) == null || z.focus());
295
+ } else if (s > 5) {
296
+ const a = w(s, 0, 59), l = S(a, p);
297
+ o({ ...r, minutes: l }), H(""), i && ((y = I.current) == null || y.focus());
298
298
  } else
299
299
  v.current = setTimeout(() => {
300
- const a = w(n, 0, 59), c = S(a, m);
301
- o({ ...r, minutes: c }), H("");
300
+ const a = w(s, 0, 59), l = S(a, p);
301
+ o({ ...r, minutes: l }), H("");
302
302
  }, 1e3);
303
303
  }
304
304
  }
305
305
  }, de = (e) => {
306
306
  var g;
307
- if (!p) {
307
+ if (!c) {
308
308
  if (e.key === "ArrowUp" || e.key === "ArrowDown") {
309
309
  e.preventDefault();
310
- const b = l ? r.hours - 12 : r.hours + 12;
310
+ const b = f ? r.hours - 12 : r.hours + 12;
311
311
  o({ ...r, hours: w(b, 0, 23) });
312
312
  return;
313
313
  }
@@ -315,13 +315,13 @@ const ze = N(
315
315
  e.preventDefault(), (g = D.current) == null || g.focus();
316
316
  return;
317
317
  }
318
- (e.key === "a" || e.key === "A") && (e.preventDefault(), l && o({ ...r, hours: r.hours - 12 })), (e.key === "p" || e.key === "P") && (e.preventDefault(), l || o({ ...r, hours: r.hours + 12 }));
318
+ (e.key === "a" || e.key === "A") && (e.preventDefault(), f && o({ ...r, hours: r.hours - 12 })), (e.key === "p" || e.key === "P") && (e.preventDefault(), f || o({ ...r, hours: r.hours + 12 }));
319
319
  }
320
320
  }, ce = (e) => {
321
321
  L();
322
322
  }, le = () => {
323
323
  A();
324
- const e = S(r.minutes, m);
324
+ const e = S(r.minutes, p);
325
325
  e !== r.minutes && o({ ...r, minutes: e });
326
326
  }, fe = K("inputs.timePicker.hour", "Hour"), me = K("inputs.timePicker.minute", "Minute"), pe = K("inputs.timePicker.period", "Period"), he = K("inputs.timePicker.groupLabel", "Time"), ve = we(
327
327
  () => ({
@@ -346,13 +346,13 @@ const ze = N(
346
346
  "aria-label": he,
347
347
  "aria-describedby": P.describedBy || void 0,
348
348
  "aria-invalid": P.invalid || void 0,
349
- "aria-disabled": p || void 0,
349
+ "aria-disabled": c || void 0,
350
350
  "data-component": "time-picker",
351
351
  "data-component-id": R,
352
352
  className: ze({
353
353
  size: T,
354
354
  tone: ee,
355
- isDisabled: p ?? !1,
355
+ isDisabled: c ?? !1,
356
356
  className: X
357
357
  }),
358
358
  children: [
@@ -361,12 +361,13 @@ const ze = N(
361
361
  {
362
362
  ref: $,
363
363
  role: "spinbutton",
364
+ "aria-disabled": c || void 0,
364
365
  "aria-label": fe,
365
366
  "aria-valuemin": i ? 1 : 0,
366
367
  "aria-valuemax": i ? 12 : 23,
367
368
  "aria-valuenow": i ? W(r.hours) : r.hours,
368
369
  "aria-valuetext": C,
369
- tabIndex: p ? -1 : 0,
370
+ tabIndex: c ? -1 : 0,
370
371
  inputMode: "numeric",
371
372
  onKeyDown: ae,
372
373
  onBlur: ce,
@@ -380,12 +381,13 @@ const ze = N(
380
381
  {
381
382
  ref: D,
382
383
  role: "spinbutton",
384
+ "aria-disabled": c || void 0,
383
385
  "aria-label": me,
384
386
  "aria-valuemin": 0,
385
387
  "aria-valuemax": 59,
386
388
  "aria-valuenow": r.minutes,
387
389
  "aria-valuetext": q,
388
- tabIndex: p ? -1 : 0,
390
+ tabIndex: c ? -1 : 0,
389
391
  inputMode: "numeric",
390
392
  onKeyDown: ue,
391
393
  onBlur: le,
@@ -398,15 +400,16 @@ const ze = N(
398
400
  {
399
401
  ref: I,
400
402
  role: "spinbutton",
403
+ "aria-disabled": c || void 0,
401
404
  "aria-label": pe,
402
405
  "aria-valuemin": 0,
403
406
  "aria-valuemax": 1,
404
- "aria-valuenow": l ? 1 : 0,
405
- "aria-valuetext": l ? V.pm : V.am,
406
- tabIndex: p ? -1 : 0,
407
+ "aria-valuenow": f ? 1 : 0,
408
+ "aria-valuetext": f ? V.pm : V.am,
409
+ tabIndex: c ? -1 : 0,
407
410
  onKeyDown: de,
408
411
  className: Ke({ size: T }),
409
- children: l ? V.pm : V.am
412
+ children: f ? V.pm : V.am
410
413
  }
411
414
  ) : null
412
415
  ]
@@ -419,4 +422,4 @@ export {
419
422
  Ie as T,
420
423
  De as t
421
424
  };
422
- //# sourceMappingURL=time-picker-BPlJWm8w.js.map
425
+ //# sourceMappingURL=time-picker-D0RS391l.js.map
@@ -3,8 +3,8 @@ import { forwardRef as H, useState as h, useMemo as $, useEffect as j, useRef as
3
3
  import { c as z } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as M } from "react-i18next";
5
5
  import { u as Y } from "./registry-DvAUVLHh.js";
6
- import { F as C } from "./form-field-M5UpX65Z.js";
7
- import { N as B } from "./number-input-DOe5VYei.js";
6
+ import { F as C } from "./form-field-D1oqYisL.js";
7
+ import { N as B } from "./number-input-CM1q9zvH.js";
8
8
  import { S } from "./select-BW5ecXlX.js";
9
9
  import { I as D } from "./insert-result-98J1QEp7.js";
10
10
  const L = [
@@ -334,4 +334,4 @@ export {
334
334
  ee as b,
335
335
  Q as c
336
336
  };
337
- //# sourceMappingURL=unit-converter-lUW9Q888.js.map
337
+ //# sourceMappingURL=unit-converter-Dsk__pjA.js.map
@@ -4,7 +4,7 @@ import { c as _ } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as j } from "react-i18next";
5
5
  import { D as l } from "./dialog-UbKJCi1X.js";
6
6
  import { T as z } from "./text-input-CUvCb6ST.js";
7
- import { B as C } from "./badge-DCOqV9mI.js";
7
+ import { B as C } from "./badge-CIt-UFEx.js";
8
8
  import { u as I } from "./registry-DvAUVLHh.js";
9
9
  import { S as L } from "./search-QbWPlY5f.js";
10
10
  const R = {
@@ -190,4 +190,4 @@ export {
190
190
  B as W,
191
191
  R as w
192
192
  };
193
- //# sourceMappingURL=widget-picker-DEmTVuFL.js.map
193
+ //# sourceMappingURL=widget-picker-DqMbjQy_.js.map
@@ -3,7 +3,7 @@ import { forwardRef as H, useMemo as F, useRef as z, useCallback as q, useState
3
3
  import { c as j } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as M } from "react-i18next";
5
5
  import { C } from "./card-DPmk26CL.js";
6
- import { B as ye } from "./badge-DCOqV9mI.js";
6
+ import { B as ye } from "./badge-CIt-UFEx.js";
7
7
  import { a as Z } from "./key-value-pair-DGkGlgCF.js";
8
8
  import { T as xe } from "./timestamp-BV2lC-wV.js";
9
9
  import { I as S } from "./icon-button-9c9Gp41m.js";
@@ -1353,4 +1353,4 @@ export {
1353
1353
  ee as r,
1354
1354
  L as w
1355
1355
  };
1356
- //# sourceMappingURL=workflow-map-C5PGP6cD.js.map
1356
+ //# sourceMappingURL=workflow-map-BNBeG2zn.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.4.11",
3
+ "packageVersion": "1.4.13",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -3209,6 +3209,12 @@
3209
3209
  "type": "number",
3210
3210
  "description": "Zero-indexed page number.",
3211
3211
  "descriptionKey": "ui.agent.dataTable.state.currentPage"
3212
+ },
3213
+ {
3214
+ "name": "expandedRowId",
3215
+ "type": "string | null",
3216
+ "description": "Id of the row whose inline detail is open (expandable row), or null.",
3217
+ "descriptionKey": "ui.agent.dataTable.state.expandedRowId"
3212
3218
  }
3213
3219
  ],
3214
3220
  "actions": [
@@ -3401,7 +3407,7 @@
3401
3407
  },
3402
3408
  "item": {
3403
3409
  "attr": "row-id",
3404
- "description": "Native ag-grid row-id attribute on each rendered row. Selection is performed via the curated handle, not by DOM mutation."
3410
+ "description": "Native ag-grid row-id attribute on each rendered record row. When an expandable row is open, one extra full-width row with row-id `<parentId>::detail` is the accordion detail, not a record — its cell carries data-component=\"data-table-expanded-row\" and data-expanded-row-of=\"<parentId>\"; skip it when enumerating rows (isExpandedRowDetailId). Selection is performed via the curated handle, not by DOM mutation."
3405
3411
  }
3406
3412
  }
3407
3413
  },
@@ -12188,6 +12194,25 @@
12188
12194
  }
12189
12195
  }
12190
12196
  },
12197
+ {
12198
+ "kind": "component",
12199
+ "id": "signature-status-chip",
12200
+ "capabilities": [],
12201
+ "state": [],
12202
+ "actions": [],
12203
+ "domHooks": {
12204
+ "root": {
12205
+ "attr": "data-component",
12206
+ "value": "signature-status-chip",
12207
+ "description": "Marks the element as a kit SignatureStatusChip. The root also emits data-status (signed | partial | unsigned | notRequired) — the derived state only, never the document."
12208
+ },
12209
+ "instanceId": {
12210
+ "attr": "data-component-id",
12211
+ "sourceProp": "id",
12212
+ "description": "Sourced from the id prop — the consumer-supplied document identifier."
12213
+ }
12214
+ }
12215
+ },
12191
12216
  {
12192
12217
  "kind": "component",
12193
12218
  "id": "skeleton",
@@ -15093,10 +15118,6 @@
15093
15118
  "component": "collapsible",
15094
15119
  "as": "intakeGaps"
15095
15120
  },
15096
- {
15097
- "component": "collapsible",
15098
- "as": "comparePanel"
15099
- },
15100
15121
  {
15101
15122
  "component": "sparkline",
15102
15123
  "as": "trend",
@@ -15117,15 +15138,10 @@
15117
15138
  "entity": "parameter"
15118
15139
  },
15119
15140
  {
15120
- "component": "multi-select",
15141
+ "component": "dropdown-menu",
15121
15142
  "as": "shownVisits",
15122
15143
  "entity": "visit"
15123
15144
  },
15124
- {
15125
- "component": "multi-select",
15126
- "as": "comparedVisits",
15127
- "entity": "visit"
15128
- },
15129
15145
  {
15130
15146
  "component": "dropdown-menu",
15131
15147
  "as": "exportMenu"
@@ -15328,13 +15344,14 @@
15328
15344
  {
15329
15345
  "name": "window_visits",
15330
15346
  "safety": "read",
15331
- "description": "Choose which visits the evolution grid shows as columns, by ticking them in the visit multi-select. It opens on the first visit and the latest; every other visit is one tick away, and the last remaining visit cannot be un-ticked. Also reads how many visits are shown out of how many exist. Clinician-only; view state only.",
15347
+ "description": "Choose which visits the evolution grid shows as columns, by ticking them in the Visits menu one button that opens a list of checkbox items, with a Select all row first. Every visit is ticked on arrival; un-ticking one removes its column, the menu stays open while ticking, and the last remaining visit cannot be un-ticked. The change between two adjacent shown columns is always drawn. The button itself reads how many visits are shown out of how many exist. Clinician-only; view state only.",
15332
15348
  "descriptionKey": "ui.agent.anamnesis.workflows.windowVisits",
15333
15349
  "uiActions": [
15334
- "multi-select.set_selection"
15350
+ "dropdown-menu.open",
15351
+ "dropdown-menu.close"
15335
15352
  ],
15336
15353
  "stateReads": [
15337
- "multi-select.selection"
15354
+ "dropdown-menu.isOpen"
15338
15355
  ],
15339
15356
  "apiActions": []
15340
15357
  },
@@ -15346,22 +15363,6 @@
15346
15363
  "uiActions": [],
15347
15364
  "apiActions": []
15348
15365
  },
15349
- {
15350
- "name": "compare_visits",
15351
- "safety": "read",
15352
- "description": "Open the compare panel below the evolution grid and tick two or more visits (first and latest by default) to read every difference — measurements, pathologies, therapy and notes — in one table shaped like the grid: one column per compared visit, the trend sparkline, and a Change column carrying the net first-to-last change. Compared visits are always read in record order, and the selection cannot drop below two. The panel carries its own exit in its header, since the toggle that opened it is a full grid above. Clinician-only; no mutation, no export.",
15353
- "descriptionKey": "ui.agent.anamnesis.workflows.compareVisits",
15354
- "uiActions": [
15355
- "collapsible.toggle",
15356
- "collapsible.close",
15357
- "multi-select.set_selection"
15358
- ],
15359
- "stateReads": [
15360
- "collapsible.isOpen",
15361
- "multi-select.selection"
15362
- ],
15363
- "apiActions": []
15364
- },
15365
15366
  {
15366
15367
  "name": "choose_export_audience",
15367
15368
  "safety": "read",
@@ -15379,15 +15380,14 @@
15379
15380
  {
15380
15381
  "name": "export_tab",
15381
15382
  "safety": "phi",
15382
- "description": "Produce a file of the view that is currently selected — Summary, Compile or Evolution — from the one Export & share control. The same document is written as a PDF, an Excel workbook or a CSV, and Print sends that same document to the printer rather than the screen, so the app shell never appears on the page. On Evolution the file follows the visit columns the grid is DRAWING — including any the compare panel added — unless \"include every visit\" is ticked. The audience rides in the filename, so the two copies stay apart outside the app. Every table resolves through the patient-copy boundary first, so a patient-audience file is missing what that audience may not receive. Produces a patient-identifiable document.",
15383
+ "description": "Produce a file of the view that is currently selected — Summary, Compile or Evolution — from the one Export & share control. The same document is written as a PDF, an Excel workbook or a CSV, and Print sends that same document to the printer rather than the screen, so the app shell never appears on the page. On Evolution the file follows the visit columns the grid is DRAWING unless \"include every visit\" is ticked; the same Evolution file is also offered from the trend tab of questionnaire mode and from the read-only record, at the end of the trend toolbar. The audience rides in the filename, so the two copies stay apart outside the app. Every table resolves through the patient-copy boundary first, so a patient-audience file is missing what that audience may not receive. Produces a patient-identifiable document.",
15383
15384
  "descriptionKey": "ui.agent.anamnesis.workflows.exportTab",
15384
15385
  "uiActions": [
15385
15386
  "dropdown-menu.open",
15386
15387
  "dropdown-menu.close"
15387
15388
  ],
15388
15389
  "stateReads": [
15389
- "dropdown-menu.isOpen",
15390
- "multi-select.selection"
15390
+ "dropdown-menu.isOpen"
15391
15391
  ],
15392
15392
  "apiActions": [
15393
15393
  "anamnesis.exportTab"
@@ -378,7 +378,8 @@
378
378
  "selection": "Row ids of currently-selected rows.",
379
379
  "filter": "Current ag-grid filter model, keyed by column id.",
380
380
  "sort": "Active sort, in priority order.",
381
- "currentPage": "Zero-indexed page number."
381
+ "currentPage": "Zero-indexed page number.",
382
+ "expandedRowId": "Id of the row whose inline detail is open (expandable row), or null."
382
383
  },
383
384
  "actions": {
384
385
  "selectRows": "Replace the current selection with the given row ids.",
@@ -1520,11 +1521,10 @@
1520
1521
  "resolveMissingAnswers": "Read how many required questionnaire answers are still missing, jump to the first of them — which crosses from the read-only Summary to the Compile tab and opens the unanswered-questions block that holds it — and record the answer there. Writes patient clinical history.",
1521
1522
  "readVisitNote": "Open the note recorded at one visit from the evolution grid's visit-column header and read the clinical note and the nutritional proposal. Where the host supplies a side panel (`onOpenNote`), the trigger hands that visit's id out and the host's panel navigates to it — no popover opens, and the note lives in exactly one place. Where it does not, the same trigger opens the note in place. Clinician-only; no mutation.",
1522
1523
  "openRecordSection": "Open or fold one section of the compile form. Sections filled at every visit start open — visit details, any unanswered required questionnaire answers, anthropometrics, pathologies, therapy, the proposal; the occasional ones (oncological history, blood tests, fasting cycles, annual programme) start folded and state in their header how many entries they already hold. Clinician-only; view state only.",
1523
- "windowVisits": "Choose which visits the evolution grid shows as columns, by ticking them in the visit multi-select. It opens on the first visit and the latest; every other visit is one tick away, and the last remaining visit cannot be un-ticked. Also reads how many visits are shown out of how many exist. Clinician-only; view state only.",
1524
+ "windowVisits": "Choose which visits the evolution grid shows as columns, by ticking them in the Visits menu one button that opens a list of checkbox items, with a Select all row first. Every visit is ticked on arrival; un-ticking one removes its column, the menu stays open while ticking, and the last remaining visit cannot be un-ticked. The change between two adjacent shown columns is always drawn. The button itself reads how many visits are shown out of how many exist. Clinician-only; view state only.",
1524
1525
  "annotateTrend": "Drop a dated event's reference line across every trend sparkline in the evolution grid, by pressing its chip in the event bar above the grid. Events are things that happened to the patient on a date — a therapy or diet starting, a fasting-mimicking cycle, surgery, a change in daily life — and need not have happened at a visit or been recorded by this practice. Each chip carries its category (and, for an event this practice did not record, its source) as an accessible description rather than a hover tooltip. Nothing is drawn on arrival; pressing the same chip again removes the line. Where the host supplies a side panel, turning a chip on also navigates that panel to the event; turning it off does not. Clinician-only; view state only.",
1525
- "compareVisits": "Open the compare panel below the evolution grid and tick two or more visits (first and latest by default) to read every difference — measurements, pathologies, therapy and notes — in one table shaped like the grid: one column per compared visit, the trend sparkline, and a Change column carrying the net first-to-last change. Compared visits are always read in record order, and the selection cannot drop below two. The panel carries its own exit in its header, since the toggle that opened it is a full grid above. Clinician-only; no mutation, no export.",
1526
1526
  "chooseExportAudience": "Choose who a file or a shared copy is for — the practice, or the patient — from the single Export & share control beside the view switch. The choice governs every route below it (share, PDF, print, Excel, CSV), it sticks across tabs and later exports, and a non-default choice is badged on the closed control. The menu names what the copy carries in BOTH states, and the exclusions are PER VIEW: on Compile a patient copy drops blood-test values, diagnostic codes, oncological history and the clinician's own notes; on Evolution it drops the blood-test rows; on Summary it drops nothing. Nothing is filed by making the choice. View state only.",
1527
- "exportTab": "Produce a file of the view that is currently selected — Summary, Compile or Evolution — from the one Export & share control. The same document is written as a PDF, an Excel workbook or a CSV, and Print sends that same document to the printer rather than the screen, so the app shell never appears on the page. On Evolution the file follows the visit columns the grid is DRAWING — including any the compare panel added — unless \"include every visit\" is ticked. The audience rides in the filename, so the two copies stay apart outside the app. Every table resolves through the patient-copy boundary first, so a patient-audience file is missing what that audience may not receive. Produces a patient-identifiable document.",
1527
+ "exportTab": "Produce a file of the view that is currently selected — Summary, Compile or Evolution — from the one Export & share control. The same document is written as a PDF, an Excel workbook or a CSV, and Print sends that same document to the printer rather than the screen, so the app shell never appears on the page. On Evolution the file follows the visit columns the grid is DRAWING unless \"include every visit\" is ticked; the same Evolution file is also offered from the trend tab of questionnaire mode and from the read-only record, at the end of the trend toolbar. The audience rides in the filename, so the two copies stay apart outside the app. Every table resolves through the patient-copy boundary first, so a patient-audience file is missing what that audience may not receive. Produces a patient-identifiable document.",
1528
1528
  "previewShare": "Open the share preview for the selected view, choose the recipient, and read what that recipient's copy would hold and what it would leave out. THIS SENDS NOTHING: the dialog is a preview of the shape of a share. Real delivery — a signed expiring link, the consent gate, and the record of who received what over which channel — is not part of this surface. Confirming only sets the recipient the next export uses. No mutation, no transmission.",
1529
1529
  "reviewRecord": "Review a completed anamnesis in the care plan: expand the intake answers and read the record. No mutation."
1530
1530
  }
@@ -1,4 +1,4 @@
1
- import { A as e, a } from "../../_chunks/address-fields-pHsfkXGk.js";
1
+ import { A as e, a } from "../../_chunks/address-fields-D-8akw2m.js";
2
2
  export {
3
3
  e as AddressFields,
4
4
  a as addressFieldsAgent
@@ -1,4 +1,4 @@
1
- import { A as e } from "../../_chunks/agenda-card-BCGaQazD.js";
1
+ import { A as e } from "../../_chunks/agenda-card-BQDs2ZMp.js";
2
2
  import { a as d } from "../../_chunks/agenda-card.agent-Cb5tuEh3.js";
3
3
  import { i as g } from "../../_chunks/is-safe-url-DkETxeHz.js";
4
4
  export {
@@ -1,4 +1,4 @@
1
- import { A as r, a as g } from "../../_chunks/agenda-tray-CG6FuccE.js";
1
+ import { A as r, a as g } from "../../_chunks/agenda-tray-BTyWsVwT.js";
2
2
  export {
3
3
  r as AgendaTray,
4
4
  g as agendaTrayAgent
@@ -1,4 +1,4 @@
1
- import { A as e, a as o } from "../../_chunks/ai-consent-banner-CpF_rbG9.js";
1
+ import { A as e, a as o } from "../../_chunks/ai-consent-banner-gVcoiXxv.js";
2
2
  export {
3
3
  e as AiConsentBanner,
4
4
  o as aiConsentBannerAgent
@@ -1,4 +1,4 @@
1
- import { A as s } from "../../_chunks/anamnesis-card-C4FVp9wO.js";
1
+ import { A as s } from "../../_chunks/anamnesis-card-Bt0twrML.js";
2
2
  export {
3
3
  s as AnamnesisCard
4
4
  };
@@ -1,4 +1,4 @@
1
- import { A as r, a as s } from "../../_chunks/anamnesis-summary-card-CpQViN5l.js";
1
+ import { A as r, a as s } from "../../_chunks/anamnesis-summary-card-BKGVcwny.js";
2
2
  export {
3
3
  r as AnamnesisSummaryCard,
4
4
  s as anamnesisSummaryCardAgent
@@ -1,5 +1,5 @@
1
- import { A as p } from "../../_chunks/appointment-card-DgKI5QKD.js";
2
- import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-B1aUk46V.js";
1
+ import { A as p } from "../../_chunks/appointment-card-kcUC7vWR.js";
2
+ import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-BPY5rATW.js";
3
3
  import { i } from "../../_chunks/is-safe-url-DkETxeHz.js";
4
4
  export {
5
5
  p as AppointmentCard,
@@ -1,4 +1,4 @@
1
- import { A as i, a as t } from "../../_chunks/appointment-timeline-CUijZCxZ.js";
1
+ import { A as i, a as t } from "../../_chunks/appointment-timeline-BC3dlZu5.js";
2
2
  export {
3
3
  i as AppointmentTimeline,
4
4
  t as appointmentTimelineAgent
@@ -16,6 +16,7 @@ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, Varia
16
16
  * For icon-only badges, provides the accessible name. For count (numeric)
17
17
  * badges, overrides the default "{count} notifications" screen-reader label
18
18
  * so a non-notification count reads correctly (e.g. `aria-label="4 treatments"`).
19
+ * For labelled badges it is applied to the root — pair it with a `role`.
19
20
  */
20
21
  'aria-label'?: string;
21
22
  }
@@ -1,4 +1,4 @@
1
- import { B as o } from "../../_chunks/badge-DCOqV9mI.js";
1
+ import { B as o } from "../../_chunks/badge-CIt-UFEx.js";
2
2
  export {
3
3
  o as Badge
4
4
  };
@@ -1,4 +1,4 @@
1
- import { B as O, a as S, b as o, c as B, d as P, e } from "../../_chunks/bishop-score-Bpe20Ctl.js";
1
+ import { B as O, a as S, b as o, c as B, d as P, e } from "../../_chunks/bishop-score-B6iYYO0c.js";
2
2
  export {
3
3
  O as BISHOP_COMPONENTS,
4
4
  S as BISHOP_MAX_SCORE,
@@ -1,4 +1,4 @@
1
- import { B as m } from "../../_chunks/bmi-calculator-DF5bNsDD.js";
1
+ import { B as m } from "../../_chunks/bmi-calculator-DC5SaqXT.js";
2
2
  import { b as e, a as t, c as r, d as T, e as c, f as i, i as b, k as n, l as f } from "../../_chunks/bmi-BxD-tFzU.js";
3
3
  export {
4
4
  m as BmiCalculator,
@@ -1,4 +1,4 @@
1
- import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-DuSkvE5x.js";
1
+ import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-CmHX15dh.js";
2
2
  export {
3
3
  A as Booking,
4
4
  R as CONFIRMATION_CHANNEL_ORDER,
@@ -1,4 +1,4 @@
1
- import { C as e, c as C } from "../../_chunks/care-plan-card-DiyK3Eys.js";
1
+ import { C as e, c as C } from "../../_chunks/care-plan-card-9tLgsDYY.js";
2
2
  export {
3
3
  e as CarePlanCard,
4
4
  C as carePlanCardAgent
@@ -1,4 +1,4 @@
1
- import { C as n, c as e } from "../../_chunks/care-plan-entry-card-6du8PYVk.js";
1
+ import { C as n, c as e } from "../../_chunks/care-plan-entry-card-CSan4h7A.js";
2
2
  export {
3
3
  n as CarePlanEntryCard,
4
4
  e as carePlanEntryCardAgent