@alfadocs/ui-kit 1.3.13 → 1.4.1

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 (185) hide show
  1. package/dist/_chunks/agenda-card.agent-Cb5tuEh3.js +28 -0
  2. package/dist/_chunks/{alia-sidebar-DzNz1gDf.js → alia-sidebar-DSBZMick.js} +3 -3
  3. package/dist/_chunks/{anamnesis-i18n-CfC0qYzy.js → anamnesis-i18n-DZcrt8dP.js} +2141 -2069
  4. package/dist/_chunks/{antenatal-schedule-timeline-BMMpi2lb.js → antenatal-schedule-timeline-u8TsS2QJ.js} +27 -26
  5. package/dist/_chunks/{appointment-timeline-B630OT_J.js → appointment-timeline-Bqf1sTU5.js} +2 -2
  6. package/dist/_chunks/{ar-THMLfSoN.js → ar-BR1FGFP2.js} +14 -14
  7. package/dist/_chunks/{bmi-calculator-CM0-G2mg.js → bmi-calculator-CpyY13MV.js} +2 -2
  8. package/dist/_chunks/{booking-DjNbd7C1.js → booking-BjsA7j1-.js} +699 -688
  9. package/dist/_chunks/calculator-dialog-12d3Sxaz.js +48 -0
  10. package/dist/_chunks/{care-plan-card-1G_f4I5s.js → care-plan-card-BvQy366X.js} +3 -3
  11. package/dist/_chunks/{care-plan-entry-card-DmBsffHS.js → care-plan-entry-card-apk_5B3O.js} +2 -2
  12. package/dist/_chunks/{chat-container-HlFnoEIl.js → chat-container-CYYego1W.js} +105 -81
  13. package/dist/_chunks/cycle-calculator-B7fyH-h4.js +425 -0
  14. package/dist/_chunks/{date-picker-ZHejTVAJ.js → date-picker-Bp64zk2p.js} +19 -19
  15. package/dist/_chunks/date-picker-variants-pKAJfnWr.js +2089 -0
  16. package/dist/_chunks/{date-range-picker-pEG3Ln3i.js → date-range-picker-CDrZ8Zh0.js} +27 -27
  17. package/dist/_chunks/{date-time-picker-695QvBGj.js → date-time-picker-DafkGDGO.js} +10 -10
  18. package/dist/_chunks/{de-DmZ-8rTN.js → de-3iM4rGqo.js} +7 -7
  19. package/dist/_chunks/{document-preview-D3gg4MXB.js → document-preview-DOrsqiN1.js} +2 -2
  20. package/dist/_chunks/due-date-calculator-CnkbbAej.js +571 -0
  21. package/dist/_chunks/{editor-overlay-DE3esyio.js → editor-overlay-B1tr2i7B.js} +22 -21
  22. package/dist/_chunks/{el-Bela9mxs.js → el-C96rGJvU.js} +2 -2
  23. package/dist/_chunks/{es-BNncHKex.js → es-Cxiqjx8r.js} +12 -12
  24. package/dist/_chunks/fetal-weight-avlj-l-S.js +223 -0
  25. package/dist/_chunks/format-4HNwNGrN.js +1315 -0
  26. package/dist/_chunks/{fr-CH8ADfhN.js → fr-Bhr6SYKj.js} +21 -21
  27. package/dist/_chunks/{freemium-paywall-C_Ue6wxU.js → freemium-paywall-DRDdWuOg.js} +3 -3
  28. package/dist/_chunks/gestational-age-calculator-BljY_DVJ.js +488 -0
  29. package/dist/_chunks/hcg-doubling-Cv_vH61p.js +312 -0
  30. package/dist/_chunks/header-settings-Cn5fPXCE.js +335 -0
  31. package/dist/_chunks/{hi-Bppfxp8l.js → hi-BxXX26d_.js} +12 -12
  32. package/dist/_chunks/isSameWeek-B73MagWB.js +13 -0
  33. package/dist/_chunks/{it-B4ySaRyK.js → it-Xmjomvyj.js} +24 -24
  34. package/dist/_chunks/{ja-CGF6Io9P.js → ja-mfZvt1ZV.js} +16 -16
  35. package/dist/_chunks/{link-cell-renderer-C5XLwVXQ.js → link-cell-renderer-CJ_gk7gl.js} +3 -3
  36. package/dist/_chunks/{locale-picker-BfBUdT1m.js → locale-picker-D9Kv2zrK.js} +153 -132
  37. package/dist/_chunks/map-view-2yZCQW2l.js +445 -0
  38. package/dist/_chunks/{marketplace-app-shell-DwcFMxzp.js → marketplace-app-shell-BLRvg-M0.js} +49 -40
  39. package/dist/_chunks/{nl-DuShqwuV.js → nl-DDs-KEnD.js} +15 -15
  40. package/dist/_chunks/{notes-panel-DPsgB4Mv.js → notes-panel-CiFN3sLW.js} +2 -2
  41. package/dist/_chunks/{number-input-DrozbZAU.js → number-input-DOe5VYei.js} +64 -64
  42. package/dist/_chunks/{optical-prescription-BDHJr8Zz.js → optical-prescription-CRemE8fL.js} +2 -2
  43. package/dist/_chunks/{parse-DvA97ro9.js → parse-JqixfsU0.js} +43 -43
  44. package/dist/_chunks/parseISO-fOGpHKXm.js +120 -0
  45. package/dist/_chunks/{patient-details-DqjjwPmt.js → patient-details-CpunD0qx.js} +3 -3
  46. package/dist/_chunks/{patient-table-BmIDrLIS.js → patient-table-2eWx-Rrk.js} +2 -2
  47. package/dist/_chunks/{payment-form-h-BZ8onk.js → payment-form-Ds1I9KqB.js} +308 -231
  48. package/dist/_chunks/{pdf-viewer-Ddx-T053.js → pdf-viewer-DUIsV9s5.js} +429 -369
  49. package/dist/_chunks/{pl-CKQwX9Fk.js → pl-BYYMnEWP.js} +18 -18
  50. package/dist/_chunks/{practice-results-B-HPc13W.js → practice-results-SjCniMd2.js} +2 -2
  51. package/dist/_chunks/pregnancy-dating-BmpHScZ0.js +770 -0
  52. package/dist/_chunks/pregnancy-weight-gain-B5KSJzdc.js +553 -0
  53. package/dist/_chunks/progress-CK8otcQ-.js +343 -0
  54. package/dist/_chunks/{pt-_njpXyOZ.js → pt-BSPnVrQ7.js} +20 -20
  55. package/dist/_chunks/{radiograph-panel.agent-BQZ64Riy.js → radiograph-panel.agent-CtFtNMzk.js} +3 -3
  56. package/dist/_chunks/{rich-text-editor-CfeXPPWs.js → rich-text-editor-BedTpWzL.js} +2 -2
  57. package/dist/_chunks/{ro-3X6_4FcN.js → ro-BbiylGmG.js} +14 -14
  58. package/dist/_chunks/{ru-bAcgmnS-.js → ru-BX_qsV67.js} +14 -14
  59. package/dist/_chunks/{session-countdown-Bc70VXN1.js → session-countdown-BL-Psg8u.js} +2 -2
  60. package/dist/_chunks/{sign-document-CW_ByDUh.js → sign-document-jF4fZDJ5.js} +2 -2
  61. package/dist/_chunks/slot-grid-DNiUcXy2.js +640 -0
  62. package/dist/_chunks/{sparkline-BTY4B5tv.js → sparkline-BmGcEyZO.js} +209 -164
  63. package/dist/_chunks/{sq-jYFqr4Ga.js → sq-i9UOk4P7.js} +10 -10
  64. package/dist/_chunks/subDays-CAUv47M1.js +8 -0
  65. package/dist/_chunks/{sv-BSGEJ-8B.js → sv-CpTdtmDQ.js} +8 -8
  66. package/dist/_chunks/{tab-bar-Axhk6xzx.js → tab-bar-BYESZINM.js} +83 -77
  67. package/dist/_chunks/task-card.agent-CF2N_uu4.js +29 -0
  68. package/dist/_chunks/{tr-CTpgUtw6.js → tr-DXG2QN1K.js} +17 -17
  69. package/dist/_chunks/{unit-converter-COgkN7YP.js → unit-converter-CHPDuV7W.js} +2 -2
  70. package/dist/_chunks/{warning-stack-BtjmJChC.js → warning-stack-B7t_8jRE.js} +42 -37
  71. package/dist/_chunks/{zh-CN-BgM0Io2O.js → zh-CN-vPkPEK6H.js} +18 -18
  72. package/dist/agent-catalog.json +6426 -3382
  73. package/dist/agent-i18n/en.json +234 -15
  74. package/dist/components/agenda-card/index.js +1 -1
  75. package/dist/components/appointment-timeline/index.js +1 -1
  76. package/dist/components/bmi-calculator/index.js +1 -1
  77. package/dist/components/booking/index.js +1 -1
  78. package/dist/components/calculator-dialog/index.js +1 -1
  79. package/dist/components/care-plan-card/index.js +1 -1
  80. package/dist/components/care-plan-entry-card/index.js +1 -1
  81. package/dist/components/chat-container/chat-container.d.ts +14 -0
  82. package/dist/components/chat-container/index.js +1 -1
  83. package/dist/components/cycle-calculator/cycle-calculator.agent.d.ts +4 -0
  84. package/dist/components/cycle-calculator/cycle-calculator.d.ts +42 -0
  85. package/dist/components/cycle-calculator/index.d.ts +1 -1
  86. package/dist/components/cycle-calculator/index.js +1 -1
  87. package/dist/components/data-table/index.js +1 -1
  88. package/dist/components/date-picker/index.js +1 -1
  89. package/dist/components/date-range-picker/index.js +1 -1
  90. package/dist/components/date-time-picker/index.js +1 -1
  91. package/dist/components/document-preview/index.js +1 -1
  92. package/dist/components/due-date-calculator/due-date-calculator.agent.d.ts +4 -0
  93. package/dist/components/due-date-calculator/due-date-calculator.d.ts +61 -1
  94. package/dist/components/due-date-calculator/index.d.ts +1 -1
  95. package/dist/components/due-date-calculator/index.js +2 -2
  96. package/dist/components/editor-overlay/editor-overlay.d.ts +7 -1
  97. package/dist/components/editor-overlay/index.js +1 -1
  98. package/dist/components/fetal-weight/fetal-weight.agent.d.ts +4 -0
  99. package/dist/components/fetal-weight/fetal-weight.d.ts +26 -0
  100. package/dist/components/fetal-weight/index.d.ts +1 -1
  101. package/dist/components/fetal-weight/index.js +1 -1
  102. package/dist/components/freemium-paywall/index.js +1 -1
  103. package/dist/components/gestational-age-calculator/gestational-age-calculator.agent.d.ts +4 -0
  104. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +44 -2
  105. package/dist/components/gestational-age-calculator/index.d.ts +1 -1
  106. package/dist/components/gestational-age-calculator/index.js +1 -1
  107. package/dist/components/hcg-doubling/hcg-doubling.agent.d.ts +4 -0
  108. package/dist/components/hcg-doubling/hcg-doubling.d.ts +30 -0
  109. package/dist/components/hcg-doubling/index.d.ts +1 -1
  110. package/dist/components/hcg-doubling/index.js +1 -1
  111. package/dist/components/header-settings/header-settings.d.ts +13 -1
  112. package/dist/components/header-settings/index.js +1 -1
  113. package/dist/components/locale-picker/index.js +1 -1
  114. package/dist/components/locale-picker/locale-picker.d.ts +9 -0
  115. package/dist/components/map-view/index.js +1 -1
  116. package/dist/components/map-view/map-view.d.ts +22 -0
  117. package/dist/components/notes-panel/index.js +1 -1
  118. package/dist/components/number-input/index.js +1 -1
  119. package/dist/components/number-input/number-input.d.ts +2 -1
  120. package/dist/components/optical-prescription/index.js +1 -1
  121. package/dist/components/patient-details/index.js +1 -1
  122. package/dist/components/patient-table/index.js +1 -1
  123. package/dist/components/payment-form/index.d.ts +1 -1
  124. package/dist/components/payment-form/index.js +1 -1
  125. package/dist/components/payment-form/payment-form.d.ts +32 -1
  126. package/dist/components/pdf-viewer/index.js +1 -1
  127. package/dist/components/pdf-viewer/pdf-viewer.d.ts +13 -0
  128. package/dist/components/practice-results/index.js +1 -1
  129. package/dist/components/pregnancy-dating/index.d.ts +1 -1
  130. package/dist/components/pregnancy-dating/index.js +1 -1
  131. package/dist/components/pregnancy-dating/pregnancy-dating.agent.d.ts +4 -0
  132. package/dist/components/pregnancy-dating/pregnancy-dating.d.ts +65 -1
  133. package/dist/components/pregnancy-weight-gain/index.d.ts +2 -1
  134. package/dist/components/pregnancy-weight-gain/index.js +6 -5
  135. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.agent.d.ts +4 -0
  136. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +35 -0
  137. package/dist/components/progress/index.js +1 -1
  138. package/dist/components/progress/progress.d.ts +13 -0
  139. package/dist/components/radiograph-panel/index.js +1 -1
  140. package/dist/components/rich-text-editor/index.js +1 -1
  141. package/dist/components/session-countdown/index.js +1 -1
  142. package/dist/components/sign-document/index.js +1 -1
  143. package/dist/components/slot-grid/index.d.ts +2 -1
  144. package/dist/components/slot-grid/index.js +5 -4
  145. package/dist/components/slot-grid/slot-grid.agent.d.ts +4 -0
  146. package/dist/components/slot-grid/slot-grid.d.ts +34 -0
  147. package/dist/components/sparkline/index.js +1 -1
  148. package/dist/components/sparkline/sparkline.d.ts +10 -0
  149. package/dist/components/tab-bar/index.js +1 -1
  150. package/dist/components/tab-bar/tab-bar.d.ts +13 -0
  151. package/dist/components/task-card/index.js +1 -1
  152. package/dist/components/unit-converter/index.js +1 -1
  153. package/dist/components/warning-stack/index.js +1 -1
  154. package/dist/index.js +630 -627
  155. package/dist/patterns/alia-assistant/index.js +1 -1
  156. package/dist/patterns/anamnesis/anamnesis-derive.d.ts +27 -8
  157. package/dist/patterns/anamnesis/anamnesis-format.d.ts +11 -3
  158. package/dist/patterns/anamnesis/anamnesis-highlight.d.ts +6 -0
  159. package/dist/patterns/anamnesis/anamnesis-questionnaire.d.ts +23 -9
  160. package/dist/patterns/anamnesis/anamnesis-types.d.ts +7 -0
  161. package/dist/patterns/anamnesis/anamnesis.d.ts +16 -7
  162. package/dist/patterns/anamnesis/index.d.ts +3 -2
  163. package/dist/patterns/anamnesis/index.js +7 -6
  164. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  165. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +6 -0
  166. package/dist/tokens.css +1 -1
  167. package/package.json +1 -1
  168. package/dist/_chunks/agenda-card.agent-mTCrkKSZ.js +0 -27
  169. package/dist/_chunks/calculator-dialog-DuXMQSdm.js +0 -40
  170. package/dist/_chunks/cycle-calculator-BwqYVPB4.js +0 -252
  171. package/dist/_chunks/date-picker-variants-eL6HjWvw.js +0 -3363
  172. package/dist/_chunks/due-date-calculator-CwfsFd3T.js +0 -256
  173. package/dist/_chunks/fetal-weight-ePlLjJPc.js +0 -122
  174. package/dist/_chunks/gestational-age-calculator-DdgbH69Z.js +0 -311
  175. package/dist/_chunks/hcg-doubling-BBqD2wI2.js +0 -170
  176. package/dist/_chunks/header-settings--pjYOe6g.js +0 -284
  177. package/dist/_chunks/isSameDay-DUEiAT0G.js +0 -39
  178. package/dist/_chunks/isSameWeek-CK4HS9lH.js +0 -14
  179. package/dist/_chunks/map-view-CsaHfoo6.js +0 -378
  180. package/dist/_chunks/pregnancy-dating-DzYTlBkT.js +0 -421
  181. package/dist/_chunks/pregnancy-weight-gain-O6J0sUIi.js +0 -322
  182. package/dist/_chunks/progress-DA413-zn.js +0 -299
  183. package/dist/_chunks/slot-grid-CQSULZjd.js +0 -502
  184. package/dist/_chunks/subDays-BcNi04uf.js +0 -8
  185. package/dist/_chunks/task-card.agent-Bt14CzUd.js +0 -25
@@ -1,4 +1,4 @@
1
- import { A as i, a as A, b as d, c as l } from "../../_chunks/alia-sidebar-DzNz1gDf.js";
1
+ import { A as i, a as A, b as d, c as l } from "../../_chunks/alia-sidebar-DSBZMick.js";
2
2
  export {
3
3
  i as AliaChatSurface,
4
4
  A as AliaEmbedded,
@@ -11,6 +11,19 @@ export declare const ANTHRO_FIELD_BY_KEY: Record<string, keyof Visit['anthropome
11
11
  * render as written, identically in every timezone (and so deterministically
12
12
  * in Chromatic). */
13
13
  export declare const CALENDAR_DATE_FORMAT: Intl.DateTimeFormatOptions;
14
+ /** `Timestamp` options for a visit stamped with a clock time
15
+ * (`YYYY-MM-DDTHH:mm`, no zone suffix). `Date` parses that form as LOCAL
16
+ * time, so the zone is deliberately NOT pinned here: the UTC pin above would
17
+ * move a 00:30 visit onto the previous day everywhere east of Greenwich. */
18
+ export declare const CALENDAR_DATETIME_FORMAT: Intl.DateTimeFormatOptions;
19
+ /** Whether a stored ISO string carries a clock time (`YYYY-MM-DDTHH:mm…`).
20
+ * A visit is now an interview with a time stamp, and two interviews of one
21
+ * module on the same day are two visits — the time is what tells them apart. */
22
+ export declare function hasClockTime(iso: string | null | undefined): boolean;
23
+ /** The `Timestamp` options that render a stored date AS WRITTEN: the UTC pin
24
+ * for a date-only string, local time for a datetime string. One helper, so a
25
+ * header cannot pin a datetime to UTC and print the wrong day. */
26
+ export declare function calendarFormatFor(iso: string): Intl.DateTimeFormatOptions;
14
27
  /** BMI = kg / m². Thin `undefined`-tolerant wrapper over the kit's canonical
15
28
  * BMI maths — the anthropometric set leaves unmeasured fields `undefined`,
16
29
  * which `bmi-calculator/bmi` (a form-backed component) does not model. The
@@ -187,11 +200,12 @@ export declare function latestVisit(record: AnamnesisRecord): Visit | undefined;
187
200
  /** The one string every absent value renders as. Never a bare hyphen, never a
188
201
  * blank, never "NaN". */
189
202
  export declare const ABSENT_VALUE = "\u2014";
190
- /** Format a numeric value to its parameter precision, or an em dash when
191
- * absent. `0` formats as a value; a non-finite number is absent, because
192
- * `NaN.toFixed(1)` is the string "NaN" and that must never reach a cell.
193
- * Callers append the unit separately. */
194
- export declare function formatValue(value: number | null, precision?: number): string;
203
+ /** Format a numeric value to its parameter precision in the app locale (a
204
+ * comma decimal under `it`), or an em dash when absent. `0` formats as a
205
+ * value; a non-finite number is absent, because `Intl` would print "NaN" and
206
+ * that must never reach a cell. No grouping: "1234,5" is a lab value, not a
207
+ * sum of money. Callers append the unit separately. */
208
+ export declare function formatValue(value: number | null, precision?: number, locale?: string): string;
195
209
  /** Localised medium date (e.g. "12 May 2025") from an ISO date string.
196
210
  * @deprecated Pins neither timezone nor locale. Use `visitDateLabel`
197
211
  * (anamnesis-format.ts) for anything date-only; it is the reason this has no
@@ -204,7 +218,12 @@ export declare function formatDateMedium(iso: string): string;
204
218
  * An unreadable date renders the em dash: `Intl` THROWS on one, which would
205
219
  * take down the whole evolution surface rather than blank one label. */
206
220
  export declare function formatCalendarDate(iso: string, locale?: string): string;
207
- /** Signed, precision-formatted delta string (e.g. "+2.4", "−1.0"). Uses a
208
- * real minus sign for the negative case. */
209
- export declare function formatDelta(abs: number, precision?: number): string;
221
+ /** Localised calendar date + short time from a `YYYY-MM-DDTHH:mm` string
222
+ * (e.g. "25 ago 2026, 15:27" under `it`). Parsed as LOCAL time and rendered
223
+ * in the viewer's zone — never through the UTC pin, which is for date-only
224
+ * strings. Same em-dash rule as `formatCalendarDate`. */
225
+ export declare function formatCalendarDateTime(iso: string, locale?: string): string;
226
+ /** Signed, precision-formatted delta string (e.g. "+2.4", "−1.0"; "+2,4"
227
+ * under `it`). Uses a real minus sign for the negative case. */
228
+ export declare function formatDelta(abs: number, precision?: number, locale?: string): string;
210
229
  //# sourceMappingURL=anamnesis-derive.d.ts.map
@@ -7,13 +7,21 @@ export declare function fieldVisible(def: IntakeFieldDef, sex: PatientSex): bool
7
7
  /** The locale a `t` is fixed to. Both `useTranslation()` and a locale-pinned
8
8
  * `getFixedT(lng, ns)` set it, so this is the app language on every surface. */
9
9
  export declare function localeOf(t: TFunction): string | undefined;
10
- /** Every stored date rendered outside a JSX `<Timestamp>`. Pins UTC AND the
11
- * app locale, so one visit cannot render two ways on one screen. */
10
+ /** Every stored date rendered outside a JSX `<Timestamp>`, in the app locale
11
+ * so one visit cannot render two ways on one screen. A date-only string is
12
+ * pinned to UTC and renders as written; a `YYYY-MM-DDTHH:mm` string is a
13
+ * LOCAL instant and renders as date + short time — never through the UTC
14
+ * pin, which would print the wrong day for an early-morning visit. */
12
15
  export declare function visitDateLabel(iso: string, t: TFunction): string;
13
16
  /** A stored `YYYY-MM-DD` as a LOCAL calendar date. `new Date(iso)` would parse
14
17
  * it as UTC midnight and render the previous day west of Greenwich — the
15
- * off-by-one this pattern has already had to fix once. */
18
+ * off-by-one this pattern has already had to fix once. A datetime string
19
+ * yields its calendar day: the day is what a date control edits. */
16
20
  export declare function parseCalendarDate(iso: string): Date | undefined;
21
+ /** The `THH:mm` tail of a datetime string, or `''` for a date-only one — so a
22
+ * control that edits only the calendar day writes the day back without
23
+ * discarding the time the visit was stamped with. */
24
+ export declare function clockSuffix(iso: string): string;
17
25
  /** A local calendar date back to `YYYY-MM-DD`. `toISOString()` would convert to
18
26
  * UTC first and can land on the wrong day; these are the local components. */
19
27
  export declare function toCalendarIso(date: Date): string;
@@ -0,0 +1,6 @@
1
+ import type { IntakeAnswer, IntakeFieldDef } from './anamnesis-types';
2
+ /** Whether `answer` satisfies the field's highlight rule. An absent rule or
3
+ * a blank answer is never highlighted: the marker flags what the patient
4
+ * SAID, not what they were asked — so `always` still waits for an answer. */
5
+ export declare function isHighlightedAnswer(def: IntakeFieldDef, answer: IntakeAnswer | undefined): boolean;
6
+ //# sourceMappingURL=anamnesis-highlight.d.ts.map
@@ -24,17 +24,31 @@ export interface AnamnesisQuestionnaireProps {
24
24
  /** Omit the goals strip above the card. Default false: it renders whenever
25
25
  * the vocabulary marks at least one parameter as a goal. */
26
26
  hideTargetStrip?: boolean;
27
- /** The reader may not change answers at all (no write grant). The Edit
28
- * affordance is then absent, not merely disabled an action a user can
29
- * never complete should not be offered. */
30
- canEdit?: boolean;
31
- /** Mount on this tab instead of the questionnaire. Demo/story hook only —
32
- * Chromatic skips play functions, so a click-selected tab is never
33
- * snapshotted. */
27
+ /** Host tabs rendered BEFORE the built-in questionnaire and trend tabs,
28
+ * inside the same tab strip. Each value must be unique and must not
29
+ * collide with `questionnaire` / `trend`. */
30
+ leadingTabs?: ReadonlyArray<AnamnesisLeadingTab>;
31
+ /** Controlled selected tab a leading tab's value, `questionnaire` or
32
+ * `trend`. Pair with `onTabChange`; omit for uncontrolled. */
33
+ tab?: AnamnesisQuestionnaireTab;
34
+ /** The user picked another tab. Fires in both modes, so an uncontrolled
35
+ * host can still observe the selection. */
36
+ onTabChange?: (tab: AnamnesisQuestionnaireTab) => void;
37
+ /** Uncontrolled initial tab. Defaults to the first leading tab when there
38
+ * is one, else the questionnaire. Demo/story hook too — Chromatic skips
39
+ * play functions, so a click-selected tab is never snapshotted. */
34
40
  defaultTab?: AnamnesisQuestionnaireTab;
35
41
  }
36
- export type AnamnesisQuestionnaireTab = 'questionnaire' | 'trend';
37
- export declare function AnamnesisQuestionnaire({ record, t, config, onSubmit, jumpToField, statusSlot, onTargetChange, hideTargetStrip, canEdit, defaultTab, }: AnamnesisQuestionnaireProps): import("react/jsx-runtime").JSX.Element;
42
+ /** A host-supplied tab that precedes the built-in ones. */
43
+ export interface AnamnesisLeadingTab {
44
+ value: string;
45
+ label: string;
46
+ content: ReactNode;
47
+ }
48
+ /** The built-in tab values, widened so a host's leading-tab values type
49
+ * without a cast. */
50
+ export type AnamnesisQuestionnaireTab = 'questionnaire' | 'trend' | (string & {});
51
+ export declare function AnamnesisQuestionnaire({ record, t, config, onSubmit, jumpToField, statusSlot, onTargetChange, hideTargetStrip, leadingTabs, tab: tabProp, onTabChange, defaultTab, }: AnamnesisQuestionnaireProps): import("react/jsx-runtime").JSX.Element;
38
52
  export declare namespace AnamnesisQuestionnaire {
39
53
  var displayName: string;
40
54
  }
@@ -125,7 +125,14 @@ export interface IntakeFieldDef extends ConfigurableDescriptor {
125
125
  * compile gaps block asks for it. Practice-configurable like `enabled`
126
126
  * and `order` — replaces the old kit-constant mandatory set. */
127
127
  required?: boolean;
128
+ /** Which answers the practice wants flagged for the clinician's attention
129
+ * (the platform's per-question highlight rule). Omitted = never. See
130
+ * `isHighlightedAnswer` for the evaluation. */
131
+ highlight?: IntakeHighlightRule;
128
132
  }
133
+ /** `always` flags any non-blank answer; the other two flag a yes/no question
134
+ * answered that way. */
135
+ export type IntakeHighlightRule = 'always' | 'whenYes' | 'whenNo';
129
136
  export interface IntakeSectionDef extends ConfigurableDescriptor {
130
137
  key: string;
131
138
  fields: IntakeFieldDef[];
@@ -5,7 +5,7 @@ import { type AnamnesisCompileView } from './anamnesis-compile';
5
5
  import type { DisclosureAudience } from './anamnesis-disclosure';
6
6
  import { type IntakeAnswerMap } from './anamnesis-intake';
7
7
  import type { MissingAnswer } from './anamnesis-digest';
8
- import type { AnamnesisQuestionnaireTab } from './anamnesis-questionnaire';
8
+ import type { AnamnesisLeadingTab, AnamnesisQuestionnaireTab } from './anamnesis-questionnaire';
9
9
  import type { AnamnesisMode, AnamnesisRecord, OpenAnamnesisNote, PractitionerOption } from './anamnesis-types';
10
10
  export interface AnamnesisProps {
11
11
  /** Which host context to render. */
@@ -44,17 +44,26 @@ export interface AnamnesisProps {
44
44
  /** Intake mode only: open the section containing this field key and move
45
45
  * focus to it on mount — the landing half of `onMissingAnswerJump`. */
46
46
  intakeJumpToField?: string;
47
+ /** Intake mode only: render the answers without letting them be changed
48
+ * and drop the submit footer — a host's read of a past interview. */
49
+ readOnly?: boolean;
47
50
  /** Compile mode only: route the Summary's missing-answer jump to a host
48
51
  * questionnaire surface instead of the internal Compila gaps block. */
49
52
  onMissingAnswerJump?: (missing: MissingAnswer) => void;
50
53
  /** Compile mode only: every edit to the working record — the visit-data
51
54
  * persistence seam (hosts debounce + diff). See `AnamnesisCompileProps`. */
52
55
  onRecordChange?: (record: AnamnesisRecord) => void;
53
- /** Questionnaire mode only: the reader may not change answers at all. The
54
- * Edit affordance is then absent rather than disabled. Default true. */
55
- canEdit?: boolean;
56
- /** Questionnaire mode only: mount on this tab instead of the questionnaire.
57
- * Demo/story hook only Chromatic skips play functions. */
56
+ /** Questionnaire mode only: host tabs rendered before the built-in
57
+ * questionnaire and trend tabs, in the same strip. When given and no tab
58
+ * is selected, the first one is the default. */
59
+ leadingTabs?: ReadonlyArray<AnamnesisLeadingTab>;
60
+ /** Questionnaire mode only: controlled selected tab a leading tab's
61
+ * value, `questionnaire` or `trend`. Pair with `onQuestionnaireTabChange`. */
62
+ questionnaireTab?: AnamnesisQuestionnaireTab;
63
+ /** Questionnaire mode only: the user picked another tab. */
64
+ onQuestionnaireTabChange?: (tab: AnamnesisQuestionnaireTab) => void;
65
+ /** Questionnaire mode only: uncontrolled initial tab. Demo/story hook
66
+ * too — Chromatic skips play functions. */
58
67
  defaultQuestionnaireTab?: AnamnesisQuestionnaireTab;
59
68
  /** Compile mode only: the practice's operators, offered in the visit's
60
69
  * Practitioner select. Omitted or empty keeps the free-text input. */
@@ -72,5 +81,5 @@ export interface AnamnesisProps {
72
81
  defaultShareOpen?: boolean;
73
82
  defaultExportAudience?: DisclosureAudience;
74
83
  }
75
- export declare function Anamnesis({ mode, record, t, dataComponent, embedded, config, onTargetChange, hideTargetStrip, statusSlot, onOpenNote, onIntakeSubmit, intakeJumpToField, onMissingAnswerJump, onRecordChange, canEdit, defaultQuestionnaireTab, practitioners, newVisitDateIso, defaultView, defaultExportMenuOpen, defaultShareOpen, defaultExportAudience, }: AnamnesisProps): import("react/jsx-runtime").JSX.Element;
84
+ export declare function Anamnesis({ mode, record, t, dataComponent, embedded, config, onTargetChange, hideTargetStrip, statusSlot, onOpenNote, onIntakeSubmit, intakeJumpToField, readOnly, onMissingAnswerJump, onRecordChange, leadingTabs, questionnaireTab, onQuestionnaireTabChange, defaultQuestionnaireTab, practitioners, newVisitDateIso, defaultView, defaultExportMenuOpen, defaultShareOpen, defaultExportAudience, }: AnamnesisProps): import("react/jsx-runtime").JSX.Element;
76
85
  //# sourceMappingURL=anamnesis.d.ts.map
@@ -1,11 +1,12 @@
1
1
  export { Anamnesis, type AnamnesisProps } from './anamnesis';
2
2
  export type { IntakeAnswerMap } from './anamnesis-intake';
3
- export type { AnamnesisQuestionnaireTab } from './anamnesis-questionnaire';
3
+ export type { AnamnesisLeadingTab, AnamnesisQuestionnaireTab, } from './anamnesis-questionnaire';
4
+ export { isHighlightedAnswer } from './anamnesis-highlight';
4
5
  export type { MissingAnswer } from './anamnesis-digest';
5
6
  export { AnamnesisConfigEditor, keyFromLabel, seededConfigDraft, type AnamnesisConfigEditorProps, } from './anamnesis-config-editor';
6
7
  export { LOCKED_PARAMETER_KEYS, SEEDED_ANAMNESIS_CONFIG, TARGETABLE_PARAMETER_KEYS, allParametersIncludingArchived, allPathologiesIncludingArchived, allSectionsIncludingArchived, assignablePathologyCodes, configuredParameters, configuredPathologies, configuredSections, isParameterLocked, isParameterTargetable, resolveConfig, type PracticeAnamnesisConfig, } from './anamnesis-config';
7
8
  export { anamnesisNoteId, anamnesisNotes } from './anamnesis-notes';
8
9
  export { stripParameters } from './anamnesis-targets';
9
10
  export { PATTERN_NS, registerAnamnesisBundles } from './anamnesis-i18n';
10
- export type { AnamnesisMode, AnamnesisNoteTarget, AnamnesisRecord, BetterDirection, ClinicalEvent, ConfigurableDescriptor, IntakeAnswer, IntakeFieldDef, IntakeFieldType, IntakeResponse, IntakeSectionDef, NumericParameterDef, OpenAnamnesisNote, ParameterGroup, PathologyCode, PractitionerOption, Visit, } from './anamnesis-types';
11
+ export type { AnamnesisMode, AnamnesisNoteTarget, AnamnesisRecord, BetterDirection, ClinicalEvent, ConfigurableDescriptor, IntakeAnswer, IntakeFieldDef, IntakeFieldType, IntakeHighlightRule, IntakeResponse, IntakeSectionDef, NumericParameterDef, OpenAnamnesisNote, ParameterGroup, PathologyCode, PractitionerOption, Visit, } from './anamnesis-types';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { A as e, a as i, L as n, P as r, S as o, T as l, b as t, c as d, d as g, e as A, f as E, g as c, h as m, i as P, j as f, k as S, l as T, m as h, r as u, n as N, s as _, o as C } from "../../_chunks/anamnesis-i18n-CfC0qYzy.js";
1
+ import { A as e, a as i, L as n, P as r, S as o, T as l, b as t, c as d, d as g, e as A, f as E, g as c, h as m, i as P, j as f, k as h, l as S, m as T, n as u, r as N, o as _, s as C, p as I } from "../../_chunks/anamnesis-i18n-DZcrt8dP.js";
2
2
  export {
3
3
  e as Anamnesis,
4
4
  i as AnamnesisConfigEditor,
@@ -15,12 +15,13 @@ export {
15
15
  m as configuredParameters,
16
16
  P as configuredPathologies,
17
17
  f as configuredSections,
18
+ h as isHighlightedAnswer,
18
19
  S as isParameterLocked,
19
20
  T as isParameterTargetable,
20
- h as keyFromLabel,
21
- u as registerAnamnesisBundles,
22
- N as resolveConfig,
23
- _ as seededConfigDraft,
24
- C as stripParameters
21
+ u as keyFromLabel,
22
+ N as registerAnamnesisBundles,
23
+ _ as resolveConfig,
24
+ C as seededConfigDraft,
25
+ I as stripParameters
25
26
  };
26
27
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { C as l, M as o } from "../../_chunks/marketplace-app-shell-DwcFMxzp.js";
1
+ import { C as l, M as o } from "../../_chunks/marketplace-app-shell-BLRvg-M0.js";
2
2
  export {
3
3
  l as ConnectWithAlfadocs,
4
4
  o as MarketplaceAppShell
@@ -63,6 +63,12 @@ export interface MarketplaceRenderLinkProps {
63
63
  children: ReactNode;
64
64
  /** `'page'` on the active item, otherwise omitted — forward to the link. */
65
65
  'aria-current'?: 'page';
66
+ /**
67
+ * The item's stable id, as the agent / automation DOM hook. Spread it onto
68
+ * your router link so the item stays addressable by `[data-tab-id]` — see
69
+ * PRS §26 §6. Only supplied on the bottom-tab-bar path.
70
+ */
71
+ 'data-tab-id'?: string;
66
72
  }
67
73
  /**
68
74
  * Render a nav item through the consumer's router instead of the kit's own