@alfadocs/ui-kit 0.97.2 → 0.98.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 (35) hide show
  1. package/dist/_chunks/{booking-BSpSMmJ2.js → booking-Bhbvef95.js} +2 -2
  2. package/dist/_chunks/{document-preview-DXl9migE.js → document-preview-DXsCEj4U.js} +2 -2
  3. package/dist/_chunks/{link-cell-renderer-flfZh2qY.js → link-cell-renderer-Bt-mXeQY.js} +2 -2
  4. package/dist/_chunks/{multi-select-D5QLBJM1.js → multi-select-CC52Qws6.js} +275 -263
  5. package/dist/_chunks/{muscle-scheme-CFBE2dme.js → muscle-scheme-kgCX5qfO.js} +2 -2
  6. package/dist/_chunks/{notes-panel-BLjlYBt-.js → notes-panel-BKwd-bOV.js} +2 -2
  7. package/dist/_chunks/{patient-summary-card-vn1H4xWj.js → patient-summary-card-C-iVDo53.js} +4 -2
  8. package/dist/_chunks/{patient-table-CvZTIM2R.js → patient-table-QEVsFvwq.js} +2 -2
  9. package/dist/_chunks/{public-header.agent-rX_VA6hd.js → public-header.agent-_8W9biCO.js} +4 -2
  10. package/dist/_chunks/{rich-text-editor-RRkBN_WB.js → rich-text-editor-DHpV2q6d.js} +4 -4
  11. package/dist/_chunks/{sign-document-DI561d1C.js → sign-document-cH9CboWB.js} +2 -2
  12. package/dist/_chunks/{signature-capture-DN52VNKL.js → signature-capture-D6ut9_IR.js} +2 -2
  13. package/dist/_chunks/{tabs-CVTukWRD.js → tabs-CBb2AidH.js} +17 -17
  14. package/dist/_chunks/{warning-stack-CAHQ0xxS.js → warning-stack-DKeAfj5M.js} +3 -3
  15. package/dist/agent-catalog.json +291 -1
  16. package/dist/agent-i18n/en.json +23 -0
  17. package/dist/components/booking/index.js +1 -1
  18. package/dist/components/data-table/index.js +1 -1
  19. package/dist/components/document-preview/index.js +1 -1
  20. package/dist/components/multi-select/index.js +1 -1
  21. package/dist/components/muscle-scheme/index.js +1 -1
  22. package/dist/components/notes-panel/index.js +1 -1
  23. package/dist/components/patient-summary-card/index.js +1 -1
  24. package/dist/components/patient-table/index.js +1 -1
  25. package/dist/components/public-header/index.js +1 -1
  26. package/dist/components/rich-text-editor/index.js +1 -1
  27. package/dist/components/sign-document/index.js +1 -1
  28. package/dist/components/signature-capture/index.js +1 -1
  29. package/dist/components/skeleton-scheme/index.js +1 -1
  30. package/dist/components/tabs/index.js +1 -1
  31. package/dist/components/warning-stack/index.js +1 -1
  32. package/dist/host-compat.css +578 -0
  33. package/dist/index.js +14 -14
  34. package/dist/tokens.css +1 -1
  35. package/package.json +10 -3
@@ -5,7 +5,7 @@ import { c as x1 } from "./index-D2ZczOXr.js";
5
5
  import { useTranslation as Q1 } from "react-i18next";
6
6
  import { u as K1 } from "./registry-DvAUVLHh.js";
7
7
  import { m as k1, A as v1 } from "./annotation-marker-qt5R9WZX.js";
8
- import { T as _ } from "./tabs-CVTukWRD.js";
8
+ import { T as _ } from "./tabs-CBb2AidH.js";
9
9
  const x = {
10
10
  type: "string",
11
11
  description: "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
@@ -1703,4 +1703,4 @@ export {
1703
1703
  I1 as r,
1704
1704
  L1 as v
1705
1705
  };
1706
- //# sourceMappingURL=muscle-scheme-CFBE2dme.js.map
1706
+ //# sourceMappingURL=muscle-scheme-kgCX5qfO.js.map
@@ -3,7 +3,7 @@ import { forwardRef as ne, useRef as o, useState as V, useId as ie, useCallback
3
3
  import { useTranslation as oe } from "react-i18next";
4
4
  import { u as le } from "./registry-DvAUVLHh.js";
5
5
  import { C as ce } from "./clinical-note-card-C7F_24IC.js";
6
- import { R as de } from "./rich-text-editor-RRkBN_WB.js";
6
+ import { R as de } from "./rich-text-editor-DHpV2q6d.js";
7
7
  import { T as pe } from "./text-area-Bt3p7Pt0.js";
8
8
  import { B as ue } from "./button-CPGiR_bH.js";
9
9
  import { C as me } from "./checkbox-BuZ1u__2.js";
@@ -321,4 +321,4 @@ const _e = ne(
321
321
  export {
322
322
  _e as N
323
323
  };
324
- //# sourceMappingURL=notes-panel-BLjlYBt-.js.map
324
+ //# sourceMappingURL=notes-panel-BKwd-bOV.js.map
@@ -406,11 +406,13 @@ const aa = {
406
406
  // children already `col-span-3`; doubling the parent to six tracks
407
407
  // (`repeat(2, …)`) lets grid auto-flow place two fields per row while
408
408
  // each column keeps its own subgrid label/value alignment.
409
+ // 672px, not the `@2xl` rem alias: container-query `rem` follows the
410
+ // host root font-size, so a non-16px root moves the threshold.
409
411
  /* @__PURE__ */ e("div", { className: "ds:@container/pfields", children: /* @__PURE__ */ e(
410
412
  Fe,
411
413
  {
412
414
  rowGap: "sm",
413
- className: "ds:@2xl/pfields:grid-cols-[repeat(2,auto_auto_minmax(0,1fr))]",
415
+ className: "ds:@[672px]/pfields:grid-cols-[repeat(2,auto_auto_minmax(0,1fr))]",
414
416
  children: W.map((a) => /* @__PURE__ */ e(
415
417
  Le,
416
418
  {
@@ -449,4 +451,4 @@ export {
449
451
  sa as P,
450
452
  Xe as p
451
453
  };
452
- //# sourceMappingURL=patient-summary-card-vn1H4xWj.js.map
454
+ //# sourceMappingURL=patient-summary-card-C-iVDo53.js.map
@@ -4,7 +4,7 @@ import { useTranslation as $ } from "react-i18next";
4
4
  import { a as p, T as b, A as be, d as ne, D as P, e as ge } from "./actions-cell-renderer-DaL80uqL.js";
5
5
  import { S as Ce } from "./select-BW5ecXlX.js";
6
6
  import { u as ve } from "./registry-DvAUVLHh.js";
7
- import { I as Ne, L as we, b as L, a as _, c as U, N as H, d as F, S as R, T as ie, D as K, C as Te, g as Fe, f as Re, U as Ie, e as ye } from "./link-cell-renderer-flfZh2qY.js";
7
+ import { I as Ne, L as we, b as L, a as _, c as U, N as H, d as F, S as R, T as ie, D as K, C as Te, g as Fe, f as Re, U as Ie, e as ye } from "./link-cell-renderer-Bt-mXeQY.js";
8
8
  import { B as ae } from "./badge-DCOqV9mI.js";
9
9
  import { c as Pe } from "./index-D2ZczOXr.js";
10
10
  import { T as We } from "./timestamp-BV2lC-wV.js";
@@ -1097,4 +1097,4 @@ export {
1097
1097
  q as g,
1098
1098
  tt as u
1099
1099
  };
1100
- //# sourceMappingURL=patient-table-CvZTIM2R.js.map
1100
+ //# sourceMappingURL=patient-table-QEVsFvwq.js.map
@@ -168,7 +168,9 @@ const g = se("desktop"), ie = C(
168
168
  // Position the Viewport flush below the pill / nav row. Radix sets
169
169
  // `--radix-navigation-menu-viewport-width` and `…-height` so the
170
170
  // panel sizes itself to whichever Content is currently active.
171
- "ds:absolute ds:top-full ds:start-1/2 ds:-translate-x-1/2",
171
+ // Logical inset + physical translate: flip the shift in RTL, where
172
+ // `start-1/2` resolves to `right: 50%` (same idiom as CommandPalette).
173
+ "ds:absolute ds:top-full ds:start-1/2 ds:-translate-x-1/2 ds:rtl:translate-x-1/2",
172
174
  "ds:mt-[var(--spacing-sm)]",
173
175
  "ds:w-[var(--radix-navigation-menu-viewport-width)]",
174
176
  "ds:h-[var(--radix-navigation-menu-viewport-height)]",
@@ -598,4 +600,4 @@ export {
598
600
  Le as P,
599
601
  Pe as p
600
602
  };
601
- //# sourceMappingURL=public-header.agent-rX_VA6hd.js.map
603
+ //# sourceMappingURL=public-header.agent-_8W9biCO.js.map
@@ -922,7 +922,7 @@ function xn({
922
922
  m.label[1]
923
923
  )}`,
924
924
  onMouseDown: g,
925
- children: /* @__PURE__ */ e("span", { className: "ds:hidden ds:@md/toolbar:inline", children: c(m.label[0], m.label[1]) })
925
+ children: /* @__PURE__ */ e("span", { className: "ds:hidden ds:@[448px]/toolbar:inline", children: c(m.label[0], m.label[1]) })
926
926
  }
927
927
  ) }),
928
928
  /* @__PURE__ */ e(Ae.Content, { align: "start", children: Fe.map((d) => /* @__PURE__ */ e(
@@ -1812,8 +1812,8 @@ function Bn({
1812
1812
  A && x.length > 0 ? /* @__PURE__ */ e(f, {}) : null,
1813
1813
  x,
1814
1814
  K ? /* @__PURE__ */ v(ke, { children: [
1815
- /* @__PURE__ */ e("div", { className: "ds:hidden ds:@sm/toolbar:contents", children: U(S) }),
1816
- /* @__PURE__ */ v("div", { className: "ds:contents ds:@sm/toolbar:hidden", children: [
1815
+ /* @__PURE__ */ e("div", { className: "ds:hidden ds:@[384px]/toolbar:contents", children: U(S) }),
1816
+ /* @__PURE__ */ v("div", { className: "ds:contents ds:@[384px]/toolbar:hidden", children: [
1817
1817
  S ? /* @__PURE__ */ e(f, {}) : null,
1818
1818
  /* @__PURE__ */ v(q, { children: [
1819
1819
  /* @__PURE__ */ e(q.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
@@ -2618,4 +2618,4 @@ export {
2618
2618
  hn as r,
2619
2619
  Qn as w
2620
2620
  };
2621
- //# sourceMappingURL=rich-text-editor-RRkBN_WB.js.map
2621
+ //# sourceMappingURL=rich-text-editor-DHpV2q6d.js.map
@@ -3,7 +3,7 @@ import { forwardRef as ce, useId as le, useMemo as M, useRef as R, useState as x
3
3
  import { c as i } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as me } from "react-i18next";
5
5
  import { P as ge } from "./pdf-viewer-CcOuR2wj.js";
6
- import { S as pe } from "./signature-capture-DN52VNKL.js";
6
+ import { S as pe } from "./signature-capture-D6ut9_IR.js";
7
7
  import { u as fe } from "./registry-DvAUVLHh.js";
8
8
  import { C as Z } from "./circle-check-BN6rz4NV.js";
9
9
  const ve = {
@@ -367,4 +367,4 @@ export {
367
367
  je as S,
368
368
  ve as s
369
369
  };
370
- //# sourceMappingURL=sign-document-DI561d1C.js.map
370
+ //# sourceMappingURL=sign-document-cH9CboWB.js.map
@@ -132,7 +132,7 @@ const De = {
132
132
  "ds:@container/sigactions",
133
133
  "ds:flex ds:items-stretch ds:flex-wrap ds:gap-[var(--spacing-sm)]"
134
134
  ].join(" ")
135
- ), G = z("ds:hidden ds:@[30rem]/sigactions:inline"), de = z(
135
+ ), G = z("ds:hidden ds:@[480px]/sigactions:inline"), de = z(
136
136
  [
137
137
  "ds:inline-flex ds:flex-1 ds:items-center ds:justify-center",
138
138
  "ds:[min-block-size:var(--min-target-size)]",
@@ -567,4 +567,4 @@ export {
567
567
  Ze as S,
568
568
  De as s
569
569
  };
570
- //# sourceMappingURL=signature-capture-DN52VNKL.js.map
570
+ //# sourceMappingURL=signature-capture-D6ut9_IR.js.map
@@ -134,18 +134,18 @@ const re = {
134
134
  className: i,
135
135
  children: u,
136
136
  value: t,
137
- defaultValue: p,
137
+ defaultValue: m,
138
138
  onValueChange: l,
139
139
  id: f,
140
140
  ...b
141
141
  }, w) => {
142
- const g = O(null), v = Z(w, g), y = se(g), m = t !== void 0, [h, z] = B(
143
- p ?? ""
144
- ), r = m ? t ?? "" : h, e = U(
142
+ const g = O(null), v = Z(w, g), y = se(g), p = t !== void 0, [h, z] = B(
143
+ m ?? ""
144
+ ), r = p ? t ?? "" : h, e = U(
145
145
  (T) => {
146
- m || z(T), l == null || l(T);
146
+ p || z(T), l == null || l(T);
147
147
  },
148
- [m, l]
148
+ [p, l]
149
149
  ), x = _(
150
150
  () => ({ variant: o, size: s, orientation: d, overflow: n, value: r, setValue: e }),
151
151
  [o, s, d, n, r, e]
@@ -185,7 +185,7 @@ const re = {
185
185
  L.displayName = "Tabs";
186
186
  const $ = V(
187
187
  ({ className: o, children: s, "aria-label": d, ...n }, i) => {
188
- const { variant: u, size: t, orientation: p, overflow: l, value: f, setValue: b } = P(A), { t: w } = Y(), g = O(null), [v, y] = B([]), m = p === "horizontal", h = l === "dropdown" && m;
188
+ const { variant: u, size: t, orientation: m, overflow: l, value: f, setValue: b } = P(A), { t: w } = Y(), g = O(null), [v, y] = B([]), p = m === "horizontal", h = l === "dropdown" && p;
189
189
  H(() => {
190
190
  if (!h) {
191
191
  y([]);
@@ -217,8 +217,8 @@ const $ = V(
217
217
  const x = e.props.value, c = e.props.children, R = typeof c == "string" ? c : typeof c == "number" ? String(c) : x;
218
218
  return { value: x, label: R };
219
219
  }), [s, l]);
220
- return l === "select" && m ? /* @__PURE__ */ C("div", { className: "ds:@container/tabs ds:relative ds:w-full", children: [
221
- /* @__PURE__ */ a("div", { className: "ds:block ds:@md/tabs:hidden", children: /* @__PURE__ */ a(
220
+ return l === "select" && p ? /* @__PURE__ */ C("div", { className: "ds:@container/tabs ds:relative ds:w-full", children: [
221
+ /* @__PURE__ */ a("div", { className: "ds:block ds:@[448px]/tabs:hidden", children: /* @__PURE__ */ a(
222
222
  D,
223
223
  {
224
224
  options: r,
@@ -230,12 +230,12 @@ const $ = V(
230
230
  "aria-label": d ?? w("tabs.selectLabel")
231
231
  }
232
232
  ) }),
233
- /* @__PURE__ */ a("div", { className: "ds:hidden ds:@md/tabs:flex ds:relative ds:items-center", children: /* @__PURE__ */ a(
233
+ /* @__PURE__ */ a("div", { className: "ds:hidden ds:@[448px]/tabs:flex ds:relative ds:items-center", children: /* @__PURE__ */ a(
234
234
  j.List,
235
235
  {
236
236
  ref: z,
237
237
  "aria-label": d,
238
- className: q({ variant: u, orientation: p, className: o }),
238
+ className: q({ variant: u, orientation: m, className: o }),
239
239
  ...n,
240
240
  children: s
241
241
  }
@@ -246,7 +246,7 @@ const $ = V(
246
246
  {
247
247
  ref: z,
248
248
  "aria-label": d,
249
- className: q({ variant: u, orientation: p, className: o }),
249
+ className: q({ variant: u, orientation: m, className: o }),
250
250
  ...n,
251
251
  children: s
252
252
  }
@@ -324,13 +324,13 @@ const F = V(
324
324
  badge: i,
325
325
  dismissible: u = !1,
326
326
  onDismiss: t,
327
- className: p,
327
+ className: m,
328
328
  children: l,
329
329
  value: f,
330
330
  onKeyDown: b,
331
331
  ...w
332
332
  }, g) => {
333
- const v = P(A), y = o ?? v.variant, m = s ?? v.size, h = d ?? v.orientation, z = (r) => {
333
+ const v = P(A), y = o ?? v.variant, p = s ?? v.size, h = d ?? v.orientation, z = (r) => {
334
334
  u && (r.key === "Delete" || r.key === "Backspace") && (r.preventDefault(), t == null || t()), b == null || b(r);
335
335
  };
336
336
  return /* @__PURE__ */ C(
@@ -342,9 +342,9 @@ const F = V(
342
342
  "data-tab-id": f,
343
343
  className: X({
344
344
  variant: y,
345
- size: m,
345
+ size: p,
346
346
  orientation: h,
347
- className: p
347
+ className: m
348
348
  }),
349
349
  onKeyDown: z,
350
350
  ...w,
@@ -405,4 +405,4 @@ export {
405
405
  F as c,
406
406
  re as t
407
407
  };
408
- //# sourceMappingURL=tabs-CVTukWRD.js.map
408
+ //# sourceMappingURL=tabs-CBb2AidH.js.map
@@ -33,8 +33,8 @@ const pn = dn(
33
33
  }
34
34
  ), wn = [
35
35
  "ds:grid ds:grid-cols-1 ds:gap-[var(--spacing-md)]",
36
- "ds:@3xl/warning-stack:grid-cols-2",
37
- "ds:@3xl/warning-stack:[&>li:nth-child(odd):last-child]:col-span-full"
36
+ "ds:@[768px]/warning-stack:grid-cols-2",
37
+ "ds:@[768px]/warning-stack:[&>li:nth-child(odd):last-child]:col-span-full"
38
38
  ].join(" "), vn = [
39
39
  "ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)] ds:self-start"
40
40
  ].join(" "), Sn = 250;
@@ -265,4 +265,4 @@ Nn.displayName = "WarningStack";
265
265
  export {
266
266
  Nn as W
267
267
  };
268
- //# sourceMappingURL=warning-stack-CAHQ0xxS.js.map
268
+ //# sourceMappingURL=warning-stack-DKeAfj5M.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.97.2",
3
+ "packageVersion": "0.98.1",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -13299,6 +13299,193 @@
13299
13299
  }
13300
13300
  ]
13301
13301
  },
13302
+ {
13303
+ "kind": "pattern",
13304
+ "id": "anamnesis",
13305
+ "composes": [
13306
+ {
13307
+ "component": "tabs",
13308
+ "as": "recordViews"
13309
+ },
13310
+ {
13311
+ "component": "accordion",
13312
+ "as": "intakeSections"
13313
+ },
13314
+ {
13315
+ "component": "progress",
13316
+ "as": "intakeProgress"
13317
+ },
13318
+ {
13319
+ "component": "form-field",
13320
+ "as": "field",
13321
+ "entity": "answer"
13322
+ },
13323
+ {
13324
+ "component": "radio-group",
13325
+ "as": "yesNoAnswer"
13326
+ },
13327
+ {
13328
+ "component": "text-input",
13329
+ "as": "textAnswer"
13330
+ },
13331
+ {
13332
+ "component": "text-area",
13333
+ "as": "freeText"
13334
+ },
13335
+ {
13336
+ "component": "number-input",
13337
+ "as": "measurement",
13338
+ "entity": "parameter"
13339
+ },
13340
+ {
13341
+ "component": "time-picker",
13342
+ "as": "mealTime",
13343
+ "entity": "meal"
13344
+ },
13345
+ {
13346
+ "component": "select",
13347
+ "as": "picker"
13348
+ },
13349
+ {
13350
+ "component": "multi-select",
13351
+ "as": "pathologies",
13352
+ "entity": "pathology"
13353
+ },
13354
+ {
13355
+ "component": "collapsible",
13356
+ "as": "intakeReview"
13357
+ },
13358
+ {
13359
+ "component": "sparkline",
13360
+ "as": "trend",
13361
+ "entity": "parameter"
13362
+ },
13363
+ {
13364
+ "component": "description-list",
13365
+ "as": "readOnlyValues"
13366
+ },
13367
+ {
13368
+ "component": "card",
13369
+ "as": "block"
13370
+ },
13371
+ {
13372
+ "component": "badge",
13373
+ "as": "status"
13374
+ },
13375
+ {
13376
+ "component": "button",
13377
+ "as": "action"
13378
+ },
13379
+ {
13380
+ "component": "icon-button",
13381
+ "as": "removeAction"
13382
+ },
13383
+ {
13384
+ "component": "timestamp",
13385
+ "as": "visitDate"
13386
+ }
13387
+ ],
13388
+ "workflows": [
13389
+ {
13390
+ "name": "start_intake",
13391
+ "safety": "phi",
13392
+ "description": "Open a fresh pre-visit questionnaire for the patient to begin the intake interview.",
13393
+ "descriptionKey": "ui.agent.anamnesis.workflows.startIntake",
13394
+ "uiActions": [],
13395
+ "apiActions": [
13396
+ "anamnesis.create"
13397
+ ]
13398
+ },
13399
+ {
13400
+ "name": "navigate_section",
13401
+ "safety": "read",
13402
+ "description": "Move between questionnaire sections in the intake, reading the current section index.",
13403
+ "descriptionKey": "ui.agent.anamnesis.workflows.navigateSection",
13404
+ "uiActions": [
13405
+ "accordion.expand"
13406
+ ],
13407
+ "stateReads": [
13408
+ "accordion.openItems"
13409
+ ],
13410
+ "apiActions": []
13411
+ },
13412
+ {
13413
+ "name": "save_intake",
13414
+ "safety": "phi",
13415
+ "description": "Persist the patient's questionnaire answers. Writes patient-identifiable clinical history.",
13416
+ "descriptionKey": "ui.agent.anamnesis.workflows.saveIntake",
13417
+ "uiActions": [],
13418
+ "apiActions": [
13419
+ "anamnesis.updateAnswers"
13420
+ ]
13421
+ },
13422
+ {
13423
+ "name": "select_view",
13424
+ "safety": "read",
13425
+ "description": "Switch the diagnostic workspace between the current-visit compile view and the across-visits evolution view.",
13426
+ "descriptionKey": "ui.agent.anamnesis.workflows.selectView",
13427
+ "uiActions": [
13428
+ "tabs.select_tab"
13429
+ ],
13430
+ "stateReads": [
13431
+ "tabs.activeTab"
13432
+ ],
13433
+ "apiActions": []
13434
+ },
13435
+ {
13436
+ "name": "record_measurement",
13437
+ "safety": "phi",
13438
+ "description": "Record or correct an anthropometric or blood-test value for the current visit. Writes patient clinical data.",
13439
+ "descriptionKey": "ui.agent.anamnesis.workflows.recordMeasurement",
13440
+ "uiActions": [
13441
+ "number-input.set_value"
13442
+ ],
13443
+ "apiActions": [
13444
+ "anamnesis.updateVisit"
13445
+ ]
13446
+ },
13447
+ {
13448
+ "name": "assign_pathologies",
13449
+ "safety": "phi",
13450
+ "description": "Assign or remove coded pathologies for the current visit via the multi-select, reading the current assignments.",
13451
+ "descriptionKey": "ui.agent.anamnesis.workflows.assignPathologies",
13452
+ "uiActions": [
13453
+ "multi-select.set_selection"
13454
+ ],
13455
+ "stateReads": [
13456
+ "multi-select.selection"
13457
+ ],
13458
+ "apiActions": [
13459
+ "anamnesis.updatePathologies"
13460
+ ]
13461
+ },
13462
+ {
13463
+ "name": "compare_visits",
13464
+ "safety": "read",
13465
+ "description": "Pick two visits to compare, reading the selected visit ids, so the grid marks exactly what changed.",
13466
+ "descriptionKey": "ui.agent.anamnesis.workflows.compareVisits",
13467
+ "uiActions": [
13468
+ "select.set_value"
13469
+ ],
13470
+ "stateReads": [
13471
+ "select.value"
13472
+ ],
13473
+ "apiActions": []
13474
+ },
13475
+ {
13476
+ "name": "review_record",
13477
+ "safety": "read",
13478
+ "description": "Review a completed anamnesis in the care plan: expand the intake answers and read the record. No mutation.",
13479
+ "descriptionKey": "ui.agent.anamnesis.workflows.reviewRecord",
13480
+ "uiActions": [
13481
+ "collapsible.toggle"
13482
+ ],
13483
+ "apiActions": [
13484
+ "anamnesis.get"
13485
+ ]
13486
+ }
13487
+ ]
13488
+ },
13302
13489
  {
13303
13490
  "kind": "pattern",
13304
13491
  "id": "appointments",
@@ -13983,6 +14170,109 @@
13983
14170
  }
13984
14171
  ]
13985
14172
  },
14173
+ {
14174
+ "kind": "pattern",
14175
+ "id": "care-plan-editor-dietitian",
14176
+ "composes": [
14177
+ {
14178
+ "component": "care-plan-header",
14179
+ "as": "planHeader"
14180
+ },
14181
+ {
14182
+ "component": "data-table",
14183
+ "as": "servicesGrid",
14184
+ "entity": "treatment"
14185
+ },
14186
+ {
14187
+ "component": "control-room-rail",
14188
+ "as": "toolRail"
14189
+ },
14190
+ {
14191
+ "component": "entity-summary",
14192
+ "as": "planSummary"
14193
+ }
14194
+ ],
14195
+ "workflows": [
14196
+ {
14197
+ "name": "select_plan",
14198
+ "safety": "read",
14199
+ "description": "Open one of the patient's nutrition / weight-management care plans from the plan list.",
14200
+ "descriptionKey": "ui.agent.dietitianCarePlanEditor.workflows.selectPlan",
14201
+ "uiActions": [],
14202
+ "apiActions": [
14203
+ "carePlan.get"
14204
+ ]
14205
+ },
14206
+ {
14207
+ "name": "add_plan",
14208
+ "safety": "write",
14209
+ "description": "Create a new nutrition care plan for the patient.",
14210
+ "descriptionKey": "ui.agent.dietitianCarePlanEditor.workflows.addPlan",
14211
+ "uiActions": [],
14212
+ "apiActions": [
14213
+ "carePlan.create"
14214
+ ]
14215
+ },
14216
+ {
14217
+ "name": "mark_service_done",
14218
+ "safety": "write",
14219
+ "description": "Mark a planned service as delivered from its row action in the services grid.",
14220
+ "descriptionKey": "ui.agent.dietitianCarePlanEditor.workflows.markServiceDone",
14221
+ "uiActions": [],
14222
+ "stateReads": [
14223
+ "data-table.selection"
14224
+ ],
14225
+ "apiActions": [
14226
+ "carePlanTreatment.update"
14227
+ ]
14228
+ },
14229
+ {
14230
+ "name": "add_service",
14231
+ "safety": "write",
14232
+ "description": "Add a service row (consultation, meal plan, supplement, …) to the plan.",
14233
+ "descriptionKey": "ui.agent.dietitianCarePlanEditor.workflows.addService",
14234
+ "uiActions": [],
14235
+ "apiActions": [
14236
+ "carePlanTreatment.create"
14237
+ ]
14238
+ },
14239
+ {
14240
+ "name": "remove_service",
14241
+ "safety": "destructive",
14242
+ "description": "Remove the selected service(s) from the plan (read data-table.selection for the targets).",
14243
+ "descriptionKey": "ui.agent.dietitianCarePlanEditor.workflows.removeService",
14244
+ "uiActions": [],
14245
+ "stateReads": [
14246
+ "data-table.selection"
14247
+ ],
14248
+ "apiActions": [
14249
+ "carePlanTreatment.delete"
14250
+ ]
14251
+ },
14252
+ {
14253
+ "name": "save_plan",
14254
+ "safety": "write",
14255
+ "description": "Persist the current edits to the nutrition care plan.",
14256
+ "descriptionKey": "ui.agent.dietitianCarePlanEditor.workflows.savePlan",
14257
+ "uiActions": [],
14258
+ "apiActions": [
14259
+ "carePlan.update"
14260
+ ]
14261
+ },
14262
+ {
14263
+ "name": "regenerate_summary",
14264
+ "safety": "write",
14265
+ "description": "Regenerate the AI plan summary in the docked Plan summary tool.",
14266
+ "descriptionKey": "ui.agent.dietitianCarePlanEditor.workflows.regenerateSummary",
14267
+ "uiActions": [
14268
+ "entity-summary.regenerate"
14269
+ ],
14270
+ "apiActions": [
14271
+ "alia.summarise"
14272
+ ]
14273
+ }
14274
+ ]
14275
+ },
13986
14276
  {
13987
14277
  "kind": "pattern",
13988
14278
  "id": "care-plan-editor-ophthalmology",
@@ -1353,6 +1353,18 @@
1353
1353
  "reviewUsage": "Read the assistant usage meter; when the quota is full the composer locks behind an upgrade CTA."
1354
1354
  }
1355
1355
  },
1356
+ "anamnesis": {
1357
+ "workflows": {
1358
+ "startIntake": "Open a fresh pre-visit questionnaire for the patient to begin the intake interview.",
1359
+ "navigateSection": "Move between questionnaire sections in the intake, reading the current section index.",
1360
+ "saveIntake": "Persist the patient's questionnaire answers. Writes patient-identifiable clinical history.",
1361
+ "selectView": "Switch the diagnostic workspace between the current-visit compile view and the across-visits evolution view.",
1362
+ "recordMeasurement": "Record or correct an anthropometric or blood-test value for the current visit. Writes patient clinical data.",
1363
+ "assignPathologies": "Assign or remove coded pathologies for the current visit via the multi-select, reading the current assignments.",
1364
+ "compareVisits": "Pick two visits to compare, reading the selected visit ids, so the grid marks exactly what changed.",
1365
+ "reviewRecord": "Review a completed anamnesis in the care plan: expand the intake answers and read the record. No mutation."
1366
+ }
1367
+ },
1356
1368
  "appointments": {
1357
1369
  "workflows": {
1358
1370
  "filterAppointments": "Narrow the agenda by date range, patient, operator, chair, type, or status using the per-column filters.",
@@ -1396,6 +1408,17 @@
1396
1408
  "regenerateSummary": "Regenerate the AI plan summary in the docked Plan summary tool."
1397
1409
  }
1398
1410
  },
1411
+ "dietitianCarePlanEditor": {
1412
+ "workflows": {
1413
+ "selectPlan": "Open one of the patient's nutrition / weight-management care plans from the plan list.",
1414
+ "addPlan": "Create a new nutrition care plan for the patient.",
1415
+ "markServiceDone": "Mark a planned service as delivered from its row action in the services grid.",
1416
+ "addService": "Add a service row (consultation, meal plan, supplement, …) to the plan.",
1417
+ "removeService": "Remove the selected service(s) from the plan (read data-table.selection for the targets).",
1418
+ "savePlan": "Persist the current edits to the nutrition care plan.",
1419
+ "regenerateSummary": "Regenerate the AI plan summary in the docked Plan summary tool."
1420
+ }
1421
+ },
1399
1422
  "ophthalmologyCarePlanEditor": {
1400
1423
  "workflows": {
1401
1424
  "selectPlan": "Open one of the patient's optical / glasses care plans from the plan list.",
@@ -1,4 +1,4 @@
1
- import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-BSpSMmJ2.js";
1
+ import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-Bhbvef95.js";
2
2
  export {
3
3
  A as Booking,
4
4
  R as CONFIRMATION_CHANNEL_ORDER,
@@ -1,6 +1,6 @@
1
1
  import { A as r, D as l, T as t, a as s, b as n, c as o, d, e as i, f as C } from "../../_chunks/actions-cell-renderer-DaL80uqL.js";
2
2
  import { B as T, C as F, E as g, a as b, R as u, T as c, b as m, r as f, u as x } from "../../_chunks/editable-currency-cell-renderer-Dus_sBvX.js";
3
- import { C as p, D as h, a as y, b as E, I as S, L as A, N as L, c as N, S as B, d as I, e as P, T as U, f as W, g as k, U as v } from "../../_chunks/link-cell-renderer-flfZh2qY.js";
3
+ import { C as p, D as h, a as y, b as E, I as S, L as A, N as L, c as N, S as B, d as I, e as P, T as U, f as W, g as k, U as v } from "../../_chunks/link-cell-renderer-Bt-mXeQY.js";
4
4
  export {
5
5
  r as ActionsCellRenderer,
6
6
  T as BalanceCellRenderer,
@@ -1,4 +1,4 @@
1
- import { D as r, d as t } from "../../_chunks/document-preview-DXl9migE.js";
1
+ import { D as r, d as t } from "../../_chunks/document-preview-DXsCEj4U.js";
2
2
  export {
3
3
  r as DocumentPreview,
4
4
  t as documentPreviewAgent
@@ -1,4 +1,4 @@
1
- import { M as a, m as l, a as i } from "../../_chunks/multi-select-D5QLBJM1.js";
1
+ import { M as a, m as l, a as i } from "../../_chunks/multi-select-CC52Qws6.js";
2
2
  export {
3
3
  a as MultiSelect,
4
4
  l as multiSelectAgent,
@@ -1,4 +1,4 @@
1
- import { D as a, F as r, a as t, M as g, b as i, e as m, f as o, g as E, c as F, m as c, r as I, v as M } from "../../_chunks/muscle-scheme-CFBE2dme.js";
1
+ import { D as a, F as r, a as t, M as g, b as i, e as m, f as o, g as E, c as F, m as c, r as I, v as M } from "../../_chunks/muscle-scheme-kgCX5qfO.js";
2
2
  export {
3
3
  a as DEFAULT_MUSCLE_VIEW,
4
4
  r as FINDING_MARKER,
@@ -1,4 +1,4 @@
1
- import { N as a } from "../../_chunks/notes-panel-BLjlYBt-.js";
1
+ import { N as a } from "../../_chunks/notes-panel-BKwd-bOV.js";
2
2
  export {
3
3
  a as NotesPanel
4
4
  };