@alfadocs/ui-kit 0.69.0 → 0.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/dist/_chunks/{agenda-card-BxSFkqgY.js → agenda-card-BQ-IKAru.js} +2 -2
  2. package/dist/_chunks/{agenda-tray-g0kg7HwB.js → agenda-tray-CGXRk58j.js} +2 -2
  3. package/dist/_chunks/{ai-consent-banner-CXlsNX1c.js → ai-consent-banner-Be-h9mRI.js} +3 -3
  4. package/dist/_chunks/ai-tools-rail-B5NEghsp.js +511 -0
  5. package/dist/_chunks/{alert-_mUKLmwA.js → alert-CHYZ96tR.js} +150 -96
  6. package/dist/_chunks/{anamnesis-card-DRmE24OQ.js → anamnesis-card-DvYCa16e.js} +2 -2
  7. package/dist/_chunks/anatomy-scheme-CJB6dI6p.js +2445 -0
  8. package/dist/_chunks/annotation-marker-qt5R9WZX.js +120 -0
  9. package/dist/_chunks/{antenatal-schedule-timeline-35ebkcZT.js → antenatal-schedule-timeline-CwXrQRm1.js} +2 -2
  10. package/dist/_chunks/appointment-card-C06aZqA7.js +310 -0
  11. package/dist/_chunks/appointment-timeline-BJM0S_Fg.js +386 -0
  12. package/dist/_chunks/appointment-tray-DRRw5ROi.js +193 -0
  13. package/dist/_chunks/{audio-recorder-DYXXnGug.js → audio-recorder-Cpdk5qpQ.js} +2 -2
  14. package/dist/_chunks/{badge-CqGsX32l.js → badge-DCOqV9mI.js} +32 -27
  15. package/dist/_chunks/{bishop-score-PJI3AXzA.js → bishop-score-DnYWtZa_.js} +2 -2
  16. package/dist/_chunks/{bmi-calculator-BZtIJ53x.js → bmi-calculator-zjeY4E7J.js} +2 -2
  17. package/dist/_chunks/{booking-C3VqFReX.js → booking-DUBI0oqt.js} +4 -4
  18. package/dist/_chunks/{care-plan-card-CvFGXa2z.js → care-plan-card-C5sTfY9G.js} +5 -5
  19. package/dist/_chunks/{care-plan-entry-card-C3E_gClk.js → care-plan-entry-card-CXnxGCWA.js} +5 -5
  20. package/dist/_chunks/care-plan-header-BUwqDTtz.js +206 -0
  21. package/dist/_chunks/clinical-note-card-BUvNMNGL.js +436 -0
  22. package/dist/_chunks/{contact-profile-card-Dramqa9C.js → contact-profile-card-DDPwRFiP.js} +2 -2
  23. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +229 -0
  24. package/dist/_chunks/{cycle-calculator-DmRGJNaT.js → cycle-calculator-CCmPwcBl.js} +2 -2
  25. package/dist/_chunks/{dependent-selector-CG_FOHya.js → dependent-selector-DUV4thxX.js} +2 -2
  26. package/dist/_chunks/{document-scanner-CTubA0-N.js → document-scanner-C_AxLooF.js} +3 -3
  27. package/dist/_chunks/{due-date-calculator-BTmsIQqD.js → due-date-calculator-Brdj-euS.js} +3 -3
  28. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +328 -0
  29. package/dist/_chunks/email-input-DJ7EXklP.js +397 -0
  30. package/dist/_chunks/{entity-card-COhmqHly.js → entity-card-9_62gY7l.js} +38 -20
  31. package/dist/_chunks/entity-summary-BxRjFh_4.js +138 -0
  32. package/dist/_chunks/{fetal-weight-CRz7KE2D.js → fetal-weight-DNCkyeVo.js} +2 -2
  33. package/dist/_chunks/field-value-NXYczdpO.js +415 -0
  34. package/dist/_chunks/{file-upload-5ScQd4fE.js → file-upload-DwZcAK8D.js} +2 -1
  35. package/dist/_chunks/{freemium-paywall-DZ2mBS3w.js → freemium-paywall-WYlNO7yT.js} +2 -2
  36. package/dist/_chunks/{gestational-age-calculator-BleUdhbI.js → gestational-age-calculator-CF2ISaYQ.js} +3 -3
  37. package/dist/_chunks/hash-CysBBS_N.js +17 -0
  38. package/dist/_chunks/{hcg-doubling-CnjDXX6U.js → hcg-doubling-C7bmuaU3.js} +2 -2
  39. package/dist/_chunks/{actions-cell-renderer-DrcaxB0w.js → link-cell-renderer-CTXqtXV-.js} +715 -592
  40. package/dist/_chunks/lock-CKOIn0IK.js +15 -0
  41. package/dist/_chunks/{marketplace-app-shell-6T9W4Knl.js → marketplace-app-shell-Skhfp6vK.js} +3 -3
  42. package/dist/_chunks/notes-panel-ay8_lPrA.js +158 -0
  43. package/dist/_chunks/{notification-card-BiESdm8q.js → notification-card-D2jiKSJJ.js} +27 -23
  44. package/dist/_chunks/{notification-tray-Btb9oQeZ.js → notification-tray-AEun6DN2.js} +2 -2
  45. package/dist/_chunks/{operator-hero-CP2Nhupm.js → operator-hero-CR0Rqh4-.js} +3 -3
  46. package/dist/_chunks/patient-details-Dlhqb5ig.js +675 -0
  47. package/dist/_chunks/{patient-search-CBC_ySF6.js → patient-search-Be6cLrHR.js} +2 -2
  48. package/dist/_chunks/patient-summary-card-WySCMwwA.js +437 -0
  49. package/dist/_chunks/patient-table-CHxf3Oqk.js +1110 -0
  50. package/dist/_chunks/{payment-form-DvjwYVIT.js → payment-form-CxqIXqw7.js} +2 -2
  51. package/dist/_chunks/{payment-request-card-DioWKBUq.js → payment-request-card-BcZJwu9z.js} +125 -136
  52. package/dist/_chunks/{pdf-viewer-D6BPfW2D.js → pdf-viewer-QfebdLOd.js} +192 -214
  53. package/dist/_chunks/{periodontal-chart-card-BuDEMbHE.js → periodontal-chart-card-hRRJY1NN.js} +2 -2
  54. package/dist/_chunks/{practice-results-KrTHqZua.js → practice-results-C6qDfxos.js} +3 -3
  55. package/dist/_chunks/{pregnancy-dating-DORUAOHB.js → pregnancy-dating-CRVWswD-.js} +3 -3
  56. package/dist/_chunks/{pregnancy-weight-gain-DVz4rr7-.js → pregnancy-weight-gain-BUNpTsH-.js} +2 -2
  57. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +558 -0
  58. package/dist/_chunks/{rich-text-editor-BsV7zUdg.js → rich-text-editor-DlCqPixb.js} +410 -394
  59. package/dist/_chunks/{sign-document-B4DeRhTe.js → sign-document-By6hMOra.js} +2 -2
  60. package/dist/_chunks/{stepper-accordion-Dki6r9ZE.js → stepper-accordion-DC-H-8v4.js} +38 -48
  61. package/dist/_chunks/tab-bar-Bv9nGNdO.js +262 -0
  62. package/dist/_chunks/tooth-scheme-BhQoPNBD.js +2131 -0
  63. package/dist/_chunks/{transaction-chip-DK84XCBU.js → transaction-chip-CscoQbxF.js} +88 -61
  64. package/dist/_chunks/use-clamp-overflow-DQE2kwZ9.js +20 -0
  65. package/dist/_chunks/use-overflow-collapse-BIOzKbni.js +32 -0
  66. package/dist/_chunks/use-persistent-state-nZwZAnE9.js +24 -0
  67. package/dist/_chunks/{warning-stack-BsgaEbL8.js → warning-stack--sTrrBDA.js} +86 -101
  68. package/dist/_chunks/{workflow-map-Bdam9pGp.js → workflow-map-Dy8mLCqF.js} +3 -3
  69. package/dist/_chunks/zoom-out-CgVtf2Wx.js +29 -0
  70. package/dist/agent/index.js +5 -4
  71. package/dist/agent/types.d.ts +19 -2
  72. package/dist/agent-catalog.json +1253 -86
  73. package/dist/agent-i18n/en.json +108 -6
  74. package/dist/components/_shared/entity-card/entity-card.d.ts +6 -0
  75. package/dist/components/_shared/entity-card/index.d.ts +1 -1
  76. package/dist/components/_shared/field-value.d.ts +21 -0
  77. package/dist/components/_shared/field-visibility-cog.d.ts +20 -0
  78. package/dist/components/_shared/field-visibility.d.ts +36 -0
  79. package/dist/components/_shared/patient-fields.d.ts +119 -0
  80. package/dist/components/agenda-card/index.js +1 -1
  81. package/dist/components/agenda-tray/index.js +1 -1
  82. package/dist/components/ai-consent-banner/index.js +1 -1
  83. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +75 -0
  84. package/dist/components/ai-tools-rail/index.js +1 -1
  85. package/dist/components/alert/alert.d.ts +5 -0
  86. package/dist/components/alert/index.js +1 -1
  87. package/dist/components/anamnesis-card/index.js +1 -1
  88. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +15 -0
  89. package/dist/components/anatomy-scheme/anatomy-muscle-paths.d.ts +20 -0
  90. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +121 -0
  91. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +6 -0
  92. package/dist/components/anatomy-scheme/anatomy-scheme.d.ts +69 -0
  93. package/dist/components/anatomy-scheme/index.d.ts +6 -0
  94. package/dist/components/anatomy-scheme/index.js +17 -0
  95. package/dist/components/annotation-marker/annotation-marker.d.ts +33 -0
  96. package/dist/components/annotation-marker/index.d.ts +3 -0
  97. package/dist/components/annotation-marker/index.js +7 -0
  98. package/dist/components/appointment-card/appointment-card.d.ts +25 -1
  99. package/dist/components/appointment-card/index.js +6 -5
  100. package/dist/components/appointment-timeline/appointment-timeline.agent.d.ts +4 -0
  101. package/dist/components/appointment-timeline/appointment-timeline.d.ts +66 -0
  102. package/dist/components/appointment-timeline/index.d.ts +4 -0
  103. package/dist/components/appointment-timeline/index.js +6 -0
  104. package/dist/components/audio-recorder/index.js +1 -1
  105. package/dist/components/badge/badge.d.ts +6 -2
  106. package/dist/components/badge/index.js +1 -1
  107. package/dist/components/bishop-score/index.js +1 -1
  108. package/dist/components/bmi-calculator/index.js +1 -1
  109. package/dist/components/booking/index.js +1 -1
  110. package/dist/components/care-plan-card/index.js +1 -1
  111. package/dist/components/care-plan-entry-card/index.js +1 -1
  112. package/dist/components/care-plan-header/care-plan-header.agent.d.ts +4 -0
  113. package/dist/components/care-plan-header/care-plan-header.d.ts +100 -0
  114. package/dist/components/care-plan-header/index.d.ts +4 -0
  115. package/dist/components/care-plan-header/index.js +6 -0
  116. package/dist/components/clinical-note-card/clinical-note-card.d.ts +21 -1
  117. package/dist/components/clinical-note-card/index.js +1 -1
  118. package/dist/components/contact-profile-card/index.js +1 -1
  119. package/dist/components/control-room-rail/control-room-context.d.ts +53 -0
  120. package/dist/components/control-room-rail/control-room-rail.d.ts +35 -0
  121. package/dist/components/control-room-rail/index.d.ts +5 -0
  122. package/dist/components/control-room-rail/index.js +9 -0
  123. package/dist/components/cycle-calculator/index.js +1 -1
  124. package/dist/components/data-table/cell-renderers/actions-cell-renderer.d.ts +18 -0
  125. package/dist/components/data-table/index.d.ts +1 -1
  126. package/dist/components/data-table/index.js +32 -31
  127. package/dist/components/dependent-selector/index.js +1 -1
  128. package/dist/components/document-scanner/index.js +1 -1
  129. package/dist/components/due-date-calculator/index.js +2 -2
  130. package/dist/components/email-input/index.js +1 -1
  131. package/dist/components/entity-summary/entity-summary.d.ts +43 -0
  132. package/dist/components/entity-summary/index.d.ts +3 -0
  133. package/dist/components/entity-summary/index.js +5 -0
  134. package/dist/components/fetal-weight/index.js +1 -1
  135. package/dist/components/file-upload/index.js +1 -1
  136. package/dist/components/freemium-paywall/index.js +1 -1
  137. package/dist/components/gestational-age-calculator/index.js +1 -1
  138. package/dist/components/hcg-doubling/index.js +1 -1
  139. package/dist/components/index.d.ts +9 -0
  140. package/dist/components/notes-panel/index.d.ts +3 -0
  141. package/dist/components/notes-panel/index.js +5 -0
  142. package/dist/components/notes-panel/notes-panel.d.ts +64 -0
  143. package/dist/components/notification-card/index.js +1 -1
  144. package/dist/components/notification-tray/index.js +1 -1
  145. package/dist/components/operator-hero/index.js +1 -1
  146. package/dist/components/patient-details/index.d.ts +5 -0
  147. package/dist/components/patient-details/index.js +6 -0
  148. package/dist/components/patient-details/patient-details.agent.d.ts +4 -0
  149. package/dist/components/patient-details/patient-details.d.ts +96 -0
  150. package/dist/components/patient-search/index.js +1 -1
  151. package/dist/components/patient-summary-card/index.js +1 -1
  152. package/dist/components/patient-summary-card/patient-summary-card.d.ts +40 -1
  153. package/dist/components/patient-table/columns.d.ts +69 -40
  154. package/dist/components/patient-table/index.d.ts +2 -6
  155. package/dist/components/patient-table/index.js +8 -9
  156. package/dist/components/patient-table/patient-table.d.ts +38 -4
  157. package/dist/components/patient-table/types.d.ts +52 -2
  158. package/dist/components/patient-table/use-responsive-columns.d.ts +8 -6
  159. package/dist/components/payment-card/index.js +1 -1
  160. package/dist/components/payment-form/index.js +1 -1
  161. package/dist/components/pdf-viewer/index.js +1 -1
  162. package/dist/components/periodontal-chart-card/index.js +1 -1
  163. package/dist/components/practice-results/index.js +1 -1
  164. package/dist/components/pregnancy-dating/index.js +1 -1
  165. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  166. package/dist/components/radiograph-panel/index.d.ts +4 -0
  167. package/dist/components/radiograph-panel/index.js +7 -0
  168. package/dist/components/radiograph-panel/radiograph-panel.agent.d.ts +13 -0
  169. package/dist/components/radiograph-panel/radiograph-panel.d.ts +36 -0
  170. package/dist/components/rich-text-editor/index.js +1 -1
  171. package/dist/components/sidebar/index.js +1 -1
  172. package/dist/components/sign-document/index.js +1 -1
  173. package/dist/components/stepper-accordion/index.js +1 -1
  174. package/dist/components/tab-bar/index.js +1 -1
  175. package/dist/components/tab-bar/tab-bar.d.ts +18 -1
  176. package/dist/components/tooth-scheme/index.d.ts +2 -2
  177. package/dist/components/tooth-scheme/index.js +30 -23
  178. package/dist/components/tooth-scheme/tooth-data.d.ts +112 -1
  179. package/dist/components/tooth-scheme/tooth-scheme.agent.d.ts +2 -2
  180. package/dist/components/tooth-scheme/tooth-scheme.d.ts +75 -11
  181. package/dist/components/transaction-chip/index.js +1 -1
  182. package/dist/components/transaction-chip/transaction-chip.d.ts +2 -2
  183. package/dist/components/warning-stack/index.js +1 -1
  184. package/dist/components/warning-stack/warning-stack.d.ts +10 -7
  185. package/dist/components/workflow/index.js +1 -1
  186. package/dist/hooks/index.d.ts +1 -0
  187. package/dist/hooks/index.js +24 -22
  188. package/dist/hooks/use-clamp-overflow.d.ts +19 -0
  189. package/dist/hooks/use-overflow-collapse.d.ts +46 -0
  190. package/dist/hooks/use-persistent-state.d.ts +7 -1
  191. package/dist/hooks/use-scroll-overflow.d.ts +36 -0
  192. package/dist/i18n/locales/ar.d.ts +308 -24
  193. package/dist/i18n/locales/ar.js +322 -27
  194. package/dist/i18n/locales/de.d.ts +308 -24
  195. package/dist/i18n/locales/de.js +322 -27
  196. package/dist/i18n/locales/el.d.ts +308 -24
  197. package/dist/i18n/locales/el.js +322 -27
  198. package/dist/i18n/locales/en.d.ts +309 -32
  199. package/dist/i18n/locales/en.js +323 -35
  200. package/dist/i18n/locales/es.d.ts +308 -24
  201. package/dist/i18n/locales/es.js +322 -27
  202. package/dist/i18n/locales/fr.d.ts +308 -24
  203. package/dist/i18n/locales/fr.js +322 -27
  204. package/dist/i18n/locales/hi.d.ts +308 -24
  205. package/dist/i18n/locales/hi.js +322 -27
  206. package/dist/i18n/locales/it.d.ts +308 -24
  207. package/dist/i18n/locales/it.js +322 -27
  208. package/dist/i18n/locales/ja.d.ts +308 -24
  209. package/dist/i18n/locales/ja.js +322 -27
  210. package/dist/i18n/locales/nl.d.ts +308 -24
  211. package/dist/i18n/locales/nl.js +322 -27
  212. package/dist/i18n/locales/pl.d.ts +308 -24
  213. package/dist/i18n/locales/pl.js +322 -27
  214. package/dist/i18n/locales/pt.d.ts +308 -24
  215. package/dist/i18n/locales/pt.js +322 -27
  216. package/dist/i18n/locales/ro.d.ts +308 -24
  217. package/dist/i18n/locales/ro.js +322 -27
  218. package/dist/i18n/locales/ru.d.ts +308 -24
  219. package/dist/i18n/locales/ru.js +322 -27
  220. package/dist/i18n/locales/sq.d.ts +308 -24
  221. package/dist/i18n/locales/sq.js +322 -27
  222. package/dist/i18n/locales/sv.d.ts +308 -24
  223. package/dist/i18n/locales/sv.js +322 -27
  224. package/dist/i18n/locales/tr.d.ts +308 -24
  225. package/dist/i18n/locales/tr.js +322 -27
  226. package/dist/i18n/locales/zh.d.ts +308 -24
  227. package/dist/i18n/locales/zh.js +322 -27
  228. package/dist/index.js +672 -623
  229. package/dist/locales/ar.json +311 -27
  230. package/dist/locales/de.json +311 -27
  231. package/dist/locales/el.json +311 -27
  232. package/dist/locales/en.json +311 -27
  233. package/dist/locales/es.json +311 -27
  234. package/dist/locales/fr.json +311 -27
  235. package/dist/locales/hi.json +311 -27
  236. package/dist/locales/it.json +311 -27
  237. package/dist/locales/ja.json +311 -27
  238. package/dist/locales/nl.json +311 -27
  239. package/dist/locales/pl.json +311 -27
  240. package/dist/locales/pt.json +311 -27
  241. package/dist/locales/ro.json +311 -27
  242. package/dist/locales/ru.json +311 -27
  243. package/dist/locales/sq.json +311 -27
  244. package/dist/locales/sv.json +311 -27
  245. package/dist/locales/tr.json +311 -27
  246. package/dist/locales/zh.json +311 -27
  247. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  248. package/dist/tokens.css +1 -1
  249. package/package.json +37 -1
  250. package/dist/_chunks/ai-tools-rail-BA_sqy1A.js +0 -373
  251. package/dist/_chunks/appointment-tray-CZtvtaH-.js +0 -431
  252. package/dist/_chunks/clinical-note-card-DqQYf_D4.js +0 -333
  253. package/dist/_chunks/editable-currency-cell-renderer-kgqp_mIw.js +0 -448
  254. package/dist/_chunks/email-input-B_Y55f5G.js +0 -396
  255. package/dist/_chunks/patient-summary-card-B836_fDB.js +0 -435
  256. package/dist/_chunks/patient-table-CDuosVru.js +0 -889
  257. package/dist/_chunks/tab-bar-B1ovILzh.js +0 -105
  258. package/dist/_chunks/tooth-scheme-yBr53cvv.js +0 -1330
  259. package/dist/_chunks/use-persistent-state-i23OWy6G.js +0 -24
  260. package/dist/components/patient-table/cell-renderers/contact-cell.d.ts +0 -45
  261. package/dist/components/patient-table/cell-renderers/patient-identity-cell.d.ts +0 -26
@@ -0,0 +1,121 @@
1
+ import type { MarkerShape, MarkerTone } from '../annotation-marker';
2
+ /** Whole-body silhouette variant a body/muscular/skeletal view is drawn on. */
3
+ export type FigureVariant = 'adult-male' | 'adult-female' | 'child';
4
+ /** Organ / surface system a view belongs to — drives the practice-type fit. */
5
+ export type AnatomySystem = 'body' | 'face' | 'female-reproductive' | 'male-reproductive' | 'urinary' | 'muscular' | 'skeletal';
6
+ export type AnatomyViewId = string;
7
+ export type AnatomyMode = 'interactive' | 'display';
8
+ export type AnatomySide = 'left' | 'right' | 'midline';
9
+ /**
10
+ * Generic, specialty-agnostic finding type. Each maps to a distinct
11
+ * AnnotationMarker SHAPE so the chart never relies on colour alone; the tone is
12
+ * decorative reinforcement. Consumers label these per specialty (a "lesion" is
13
+ * a derm lesion, an ortho fracture site, a gynae cyst, …).
14
+ */
15
+ export type FindingType = 'observation' | 'lesion' | 'pain' | 'treatment' | 'note';
16
+ export declare const FINDING_TYPES: FindingType[];
17
+ export declare const FINDING_MARKER: Record<FindingType, {
18
+ shape: MarkerShape;
19
+ tone: MarkerTone;
20
+ }>;
21
+ export interface AnatomyFinding {
22
+ type: FindingType;
23
+ /** Optional free-text clinical note. PHI — never bundle real notes in stories. */
24
+ note?: string;
25
+ }
26
+ /** Findings keyed by region id. */
27
+ export type AnatomyChart = Record<string, AnatomyFinding[]>;
28
+ export type RegionShape = {
29
+ kind: 'ellipse';
30
+ cx: number;
31
+ cy: number;
32
+ rx: number;
33
+ ry: number;
34
+ } | {
35
+ kind: 'rect';
36
+ x: number;
37
+ y: number;
38
+ w: number;
39
+ h: number;
40
+ r?: number;
41
+ } | {
42
+ kind: 'polygon';
43
+ points: Array<[number, number]>;
44
+ } | {
45
+ kind: 'path';
46
+ d: string;
47
+ fillRule?: 'evenodd';
48
+ };
49
+ export interface AnatomyRegion {
50
+ /** Stable id, unique within a view — the finding key + `data-region`. */
51
+ id: string;
52
+ /** i18n key suffix under `anatomyScheme.region.*`. */
53
+ labelKey: string;
54
+ system: AnatomySystem;
55
+ shape: RegionShape;
56
+ /** Bilateral side, where meaningful (drives "left/right" in the label). */
57
+ side?: AnatomySide;
58
+ /** Optional grouping (e.g. 'upper-limb', 'internal', 'external'). */
59
+ group?: string;
60
+ /** Marker anchor; defaults to the shape centroid. */
61
+ marker?: {
62
+ x: number;
63
+ y: number;
64
+ };
65
+ }
66
+ export interface AnatomyView {
67
+ id: AnatomyViewId;
68
+ system: AnatomySystem;
69
+ /** i18n key suffix under `anatomyScheme.view.*`. */
70
+ labelKey: string;
71
+ /** Body silhouette this view is drawn on, when applicable. */
72
+ figure?: FigureVariant;
73
+ viewBox: string;
74
+ /** Decorative silhouette/outline drawn behind the regions (`aria-hidden`). */
75
+ silhouette?: string;
76
+ /** Optional SVG transform applied to the regions group (and the silhouette,
77
+ * unless `silhouetteTransform` overrides it). */
78
+ transform?: string;
79
+ /** Optional separate transform for the silhouette (head) group — lets the
80
+ * child figure carry a proportionally larger head than its scaled-down body. */
81
+ silhouetteTransform?: string;
82
+ /** Filled feature layer drawn over the silhouette, under the stroke detail
83
+ * (`aria-hidden`): the solid brows / eyelids / irises / lips that give a drawn
84
+ * face its weight. Painted with `--muted-foreground`. Shares the silhouette's
85
+ * transform group. */
86
+ silhouetteInk?: string;
87
+ /** Stroke-only feature layer drawn over the filled silhouette (`aria-hidden`):
88
+ * the line-art hairline / nose / ears / lower-lids of a drawn face. Shares the
89
+ * silhouette's transform group. */
90
+ silhouetteDetail?: string;
91
+ /** When true, the view's regions render as transparent click hotspots (tinting
92
+ * only on hover / focus / finding) rather than filled schematic shapes — used
93
+ * when a detailed `silhouette` already carries the drawing, so the zones don't
94
+ * cover it. Implied when a realistic illustration is loaded. */
95
+ hotspotZones?: boolean;
96
+ regions: AnatomyRegion[];
97
+ }
98
+ export declare function regionCentroid(region: AnatomyRegion): {
99
+ x: number;
100
+ y: number;
101
+ };
102
+ export declare const ANATOMY_VIEWS: Record<AnatomyViewId, AnatomyView>;
103
+ export declare function getView(id: AnatomyViewId): AnatomyView | undefined;
104
+ export declare function viewsForSystem(system: AnatomySystem): AnatomyView[];
105
+ export declare function getRegion(viewId: AnatomyViewId, regionId: string): AnatomyRegion | undefined;
106
+ /** Default view shown when only a `system` is given. */
107
+ export declare const DEFAULT_VIEW_FOR_SYSTEM: Record<AnatomySystem, AnatomyViewId>;
108
+ /**
109
+ * Pick a body figure from patient demographics — mirrors the platform's
110
+ * `getDefaultFigureVariant(gender, age)`. Pure heuristic; the host can override
111
+ * with the explicit `figure` prop.
112
+ */
113
+ export declare function figureFromPatient(sex: 'm' | 'f' | 'x' | undefined, ageYears: number | undefined): FigureVariant;
114
+ /**
115
+ * Practice-branch → the systems whose views that branch typically charts.
116
+ * Mirrors `PracticeBranch.php`; consumed by demos and the (future) preset
117
+ * editor to seed the available views. Not exhaustive — a branch can enable any.
118
+ */
119
+ export declare const SYSTEMS_FOR_BRANCH: Record<string, AnatomySystem[]>;
120
+ export declare function emptyChart(): AnatomyChart;
121
+ //# sourceMappingURL=anatomy-scheme-data.d.ts.map
@@ -0,0 +1,6 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { AnatomySchemeHandle } from './anatomy-scheme';
3
+ import type { FindingType } from './anatomy-scheme-data';
4
+ export declare const anatomySchemeAgent: AgentAdapter<AnatomySchemeHandle>;
5
+ export type { FindingType };
6
+ //# sourceMappingURL=anatomy-scheme.agent.d.ts.map
@@ -0,0 +1,69 @@
1
+ import { type AnatomyChart, type AnatomyFinding, type AnatomyMode, type AnatomySystem, type AnatomyViewId, type FigureVariant, type FindingType } from './anatomy-scheme-data';
2
+ export interface AnatomySchemeProps {
3
+ /** Opaque instance id — emitted as `data-component-id` for the agent registry. */
4
+ id?: string;
5
+ /** Organ / surface system to chart. Default `'body'`. */
6
+ system?: AnatomySystem;
7
+ /** Body silhouette variant (body/muscular/skeletal systems). */
8
+ figure?: FigureVariant;
9
+ /**
10
+ * Explicit view ids to expose. When more than one, they render as tabs.
11
+ * Defaults to every view of `system` (filtered to `figure` for body systems).
12
+ */
13
+ views?: AnatomyViewId[];
14
+ /** `'interactive'` enables region selection + finding edits; `'display'` is read-only. */
15
+ mode?: AnatomyMode;
16
+ /** Controlled findings — `Record<regionId, AnatomyFinding[]>`. */
17
+ value?: AnatomyChart;
18
+ /** Uncontrolled initial findings. */
19
+ defaultValue?: AnatomyChart;
20
+ /** Fired whenever the chart changes. */
21
+ onChange?: (next: AnatomyChart) => void;
22
+ /** Fired when a region is activated (click / Enter / Space / focus-select). */
23
+ onSelectRegion?: (regionId: string, viewId: AnatomyViewId) => void;
24
+ /**
25
+ * The finding type a region-click applies in interactive mode (the selected
26
+ * tool in a finding picker). Clicking a region toggles this finding.
27
+ */
28
+ activeFinding?: FindingType;
29
+ /** Show the finding-type legend below the figure. Default `false`. */
30
+ legend?: boolean;
31
+ /**
32
+ * Base URL for realistic anatomical illustrations, served per-view as
33
+ * `${illustrationBaseUrl}/${viewId}.svg` (e.g. `…/female-reproductive.svg`).
34
+ * When set, each view renders that illustration as the figure and the regions
35
+ * become transparent CLICK HOTSPOTS layered over it; when unset, the kit's
36
+ * built-in schematic silhouette is the fallback. The art is NOT bundled in
37
+ * the kit — host it (CDN) and pass the base here, mirroring `ToothScheme`'s
38
+ * `assetBaseUrl`. Trusted developer-controlled value, interpolated into an SVG
39
+ * `<image href>` (which cannot execute scripts). Sourcing + licensing +
40
+ * attribution live in `ANATOMY-ASSETS.md`.
41
+ */
42
+ illustrationBaseUrl?: string;
43
+ /** Accessible label override for the chart region. */
44
+ ariaLabel?: string;
45
+ /** Extra class names on the wrapper. */
46
+ className?: string;
47
+ }
48
+ export interface AnatomySchemeHandle {
49
+ /** Programmatically focus a region by id (in the active view). */
50
+ focusRegion: (regionId: string) => void;
51
+ /** Read the current chart state. */
52
+ getChart: () => AnatomyChart;
53
+ /** Read the findings recorded on one region (empty array if none). */
54
+ getRegion: (regionId: string) => AnatomyFinding[];
55
+ /** Read the region ids carrying a given finding type. */
56
+ regionsWith: (type: FindingType) => string[];
57
+ /** Add a finding to a region (no-op if already present). */
58
+ setFinding: (regionId: string, type: FindingType, note?: string) => void;
59
+ /** Remove a finding type from a region (no-op if absent). */
60
+ removeFinding: (regionId: string, type: FindingType) => void;
61
+ /** Clear every finding from a region. */
62
+ clearRegion: (regionId: string) => void;
63
+ /** Switch the active view. */
64
+ setView: (viewId: AnatomyViewId) => void;
65
+ /** Read the active view id. */
66
+ getView: () => AnatomyViewId;
67
+ }
68
+ export declare const AnatomyScheme: import("react").ForwardRefExoticComponent<AnatomySchemeProps & import("react").RefAttributes<AnatomySchemeHandle>>;
69
+ //# sourceMappingURL=anatomy-scheme.d.ts.map
@@ -0,0 +1,6 @@
1
+ export { AnatomyScheme } from './anatomy-scheme';
2
+ export type { AnatomySchemeProps, AnatomySchemeHandle } from './anatomy-scheme';
3
+ export { ANATOMY_VIEWS, DEFAULT_VIEW_FOR_SYSTEM, SYSTEMS_FOR_BRANCH, FINDING_TYPES, FINDING_MARKER, getView, viewsForSystem, getRegion, regionCentroid, figureFromPatient, emptyChart as emptyAnatomyChart, } from './anatomy-scheme-data';
4
+ export type { AnatomySystem, AnatomyViewId, AnatomyView, AnatomyRegion, AnatomyChart, AnatomyFinding, AnatomyMode, AnatomySide, FigureVariant, FindingType, RegionShape, } from './anatomy-scheme-data';
5
+ export { anatomySchemeAgent } from './anatomy-scheme.agent';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { A as s, a as t, D as S, F as o, b as m, S as r, c as A, e as n, f as F, g as _, d as g, r as i, v as E } from "../../_chunks/anatomy-scheme-CJB6dI6p.js";
2
+ export {
3
+ s as ANATOMY_VIEWS,
4
+ t as AnatomyScheme,
5
+ S as DEFAULT_VIEW_FOR_SYSTEM,
6
+ o as FINDING_MARKER,
7
+ m as FINDING_TYPES,
8
+ r as SYSTEMS_FOR_BRANCH,
9
+ A as anatomySchemeAgent,
10
+ n as emptyAnatomyChart,
11
+ F as figureFromPatient,
12
+ _ as getRegion,
13
+ g as getView,
14
+ i as regionCentroid,
15
+ E as viewsForSystem
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,33 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ export type MarkerShape = 'circle' | 'square' | 'triangle' | 'diamond' | 'cross';
4
+ export type MarkerTone = 'neutral' | 'info' | 'success' | 'warning' | 'error' | 'accent';
5
+ export declare const MARKER_SHAPES: MarkerShape[];
6
+ /**
7
+ * SVG path `d` for a marker shape centred at `(cx, cy)` with radius `r`,
8
+ * in the parent SVG's own user units. Pure — no React, no DOM. AnatomyScheme
9
+ * draws its finding overlay with this exact function so the figure overlay and
10
+ * the standalone glyph stay visually identical.
11
+ */
12
+ export declare function markerPath(shape: MarkerShape, cx: number, cy: number, r: number): string;
13
+ declare const wrapperVariants: (props?: ({
14
+ size?: "sm" | "md" | "lg" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ export interface AnnotationMarkerProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'>, VariantProps<typeof wrapperVariants> {
17
+ /** Shape of the marker — the accessible channel (never colour alone). */
18
+ shape: MarkerShape;
19
+ /** Semantic tone. Decorative reinforcement of the shape, not the meaning. */
20
+ tone?: MarkerTone;
21
+ /** Fill the shape (default) or draw it as an outline. */
22
+ filled?: boolean;
23
+ /**
24
+ * Accessible name. Required for an icon-only marker (no `label`); when `label`
25
+ * text is shown, this overrides the visible text for assistive tech.
26
+ */
27
+ 'aria-label'?: string;
28
+ /** Optional visible label rendered after the glyph (e.g. in a legend). */
29
+ label?: ReactNode;
30
+ }
31
+ export declare const AnnotationMarker: import("react").ForwardRefExoticComponent<AnnotationMarkerProps & import("react").RefAttributes<HTMLSpanElement>>;
32
+ export {};
33
+ //# sourceMappingURL=annotation-marker.d.ts.map
@@ -0,0 +1,3 @@
1
+ export { AnnotationMarker, markerPath, MARKER_SHAPES, } from './annotation-marker';
2
+ export type { AnnotationMarkerProps, MarkerShape, MarkerTone, } from './annotation-marker';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { A as o, M as t, m as A } from "../../_chunks/annotation-marker-qt5R9WZX.js";
2
+ export {
3
+ o as AnnotationMarker,
4
+ t as MARKER_SHAPES,
5
+ A as markerPath
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -60,8 +60,18 @@ export interface AppointmentItem {
60
60
  firstVisit?: AppointmentFirstVisit;
61
61
  /** Assigned operator. */
62
62
  operator?: AppointmentOperator;
63
- /** Chair / room label. */
63
+ /** Chair / room label — surfaced as a chip. */
64
64
  chair?: string;
65
+ /**
66
+ * The care plan this appointment belongs to, when any — surfaced as a chip
67
+ * (`Care plan {number}`). `url` is the deep link the consumer may use for
68
+ * navigation; the chip itself is non-interactive so it never nests an anchor
69
+ * inside the row's own stretched link.
70
+ */
71
+ carePlan?: {
72
+ number: string;
73
+ url?: string;
74
+ };
65
75
  /** Patient identity. */
66
76
  patient?: AppointmentPatient;
67
77
  /** Treatment lines. */
@@ -76,16 +86,30 @@ export interface AppointmentItem {
76
86
  declare const appointmentCardVariants: (props?: ({
77
87
  size?: "sm" | "md" | null | undefined;
78
88
  interactive?: boolean | null | undefined;
89
+ surface?: "flat" | "elevated" | null | undefined;
79
90
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
80
91
  export interface AppointmentCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'role' | 'title'>, VariantProps<typeof appointmentCardVariants> {
81
92
  /** The appointment to render. */
82
93
  item: AppointmentItem;
83
94
  /** Visual density. */
84
95
  size?: 'sm' | 'md';
96
+ /**
97
+ * `'flat'` (default) — chrome-less row for use inside a bordered
98
+ * `AppointmentTray`. `'elevated'` — each row carries its own card chrome
99
+ * (border + shadow), for placing rows directly on a rail (AppointmentTimeline).
100
+ */
101
+ surface?: 'flat' | 'elevated';
85
102
  /** BCP-47 locale override for the timestamp + currency. */
86
103
  locale?: string;
87
104
  /** ISO-4217 currency code for the advance-deposit chip. Defaults to `EUR`. */
88
105
  currency?: string;
106
+ /**
107
+ * Show the patient identity (avatar + name as the row title). Default `true`.
108
+ * Set `false` in single-patient surfaces (e.g. a patient's own
109
+ * `AppointmentTimeline`) where repeating the name is redundant — the row then
110
+ * leads with the operator as its title, falling back to a generic label.
111
+ */
112
+ showPatient?: boolean;
89
113
  /** Fires when the row is activated. */
90
114
  onActivate?: (item: AppointmentItem) => void;
91
115
  }
@@ -1,10 +1,11 @@
1
- import { A as n, a as p, b as e, c as o } from "../../_chunks/appointment-tray-CZtvtaH-.js";
1
+ import { A as p } from "../../_chunks/appointment-card-C06aZqA7.js";
2
+ import { A as e, a as o, b as r } from "../../_chunks/appointment-tray-DRRw5ROi.js";
2
3
  import { i } from "../../_chunks/is-safe-url-DkETxeHz.js";
3
4
  export {
4
- n as AppointmentCard,
5
- p as AppointmentTray,
6
- e as appointmentCardAgent,
7
- o as appointmentTrayAgent,
5
+ p as AppointmentCard,
6
+ e as AppointmentTray,
7
+ o as appointmentCardAgent,
8
+ r as appointmentTrayAgent,
8
9
  i as isSafeAppointmentUrl
9
10
  };
10
11
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { AppointmentTimelineHandle } from './appointment-timeline';
3
+ export declare const appointmentTimelineAgent: AgentAdapter<AppointmentTimelineHandle>;
4
+ //# sourceMappingURL=appointment-timeline.agent.d.ts.map
@@ -0,0 +1,66 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import { type AppointmentItem } from '../appointment-card';
4
+ /** Curated imperative handle — identifiers + lifecycle state only. */
5
+ export interface AppointmentTimelineHandle {
6
+ getItems: () => Array<{
7
+ id: string;
8
+ state: string;
9
+ }>;
10
+ selectItem: (id: string) => void;
11
+ jumpToToday: () => void;
12
+ }
13
+ export interface AppointmentTimelineProps extends Omit<HTMLAttributes<HTMLElement>, 'onClick' | 'id' | 'title'> {
14
+ /** Stable instance id, surfaced as `data-component-id`. */
15
+ id?: string;
16
+ /** Appointments to render — any order; grouped + sorted internally. */
17
+ items: AppointmentItem[];
18
+ /**
19
+ * ISO-8601 "now" anchor — the timeline scrolls to this day on mount and the
20
+ * "Today" preset returns to it. Defaults to the current instant. Stories pass
21
+ * a fixed value for deterministic snapshots.
22
+ */
23
+ nowIso?: string;
24
+ /** Panel heading. Defaults to the localised "Appointments". */
25
+ title?: string;
26
+ /** BCP-47 locale override for day headers + each AppointmentCard. */
27
+ locale?: string;
28
+ /** ISO-4217 currency code passed to each AppointmentCard. */
29
+ currency?: string;
30
+ /** Visual density passed to each AppointmentCard. */
31
+ size?: 'sm' | 'md';
32
+ /** Fires when a row is activated. */
33
+ onOpenAppointment?: (item: AppointmentItem) => void;
34
+ /** Load earlier (past) appointments — fired when the top edge is reached. */
35
+ onLoadEarlier?: () => void;
36
+ /** Load later (future) appointments — fired when the bottom edge is reached. */
37
+ onLoadLater?: () => void;
38
+ /** Whether more past appointments exist. Defaults to `true` when `onLoadEarlier` is set. */
39
+ hasMoreEarlier?: boolean;
40
+ /** Whether more future appointments exist. Defaults to `true` when `onLoadLater` is set. */
41
+ hasMoreLater?: boolean;
42
+ /** Show a loading row at the top edge. */
43
+ loadingEarlier?: boolean;
44
+ /** Show a loading row at the bottom edge. */
45
+ loadingLater?: boolean;
46
+ /** Show the date-filter row (presets + jump-to-date). Default `true`. */
47
+ showFilters?: boolean;
48
+ /**
49
+ * Fired when a jump-to-date / preset targets a day outside the loaded range,
50
+ * so the consumer can load it. The timeline scrolls to the nearest rendered
51
+ * day until then.
52
+ */
53
+ onJumpToDate?: (dateIso: string) => void;
54
+ emptyTitle?: string;
55
+ emptyDescription?: string;
56
+ /** Accessible name for the panel region (defaults to `title`). */
57
+ 'aria-label'?: string;
58
+ }
59
+ declare const rootVariants: (props?: ({
60
+ size?: "sm" | "md" | null | undefined;
61
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
62
+ export declare const AppointmentTimeline: import("react").ForwardRefExoticComponent<AppointmentTimelineProps & import("react").RefAttributes<HTMLElement>>;
63
+ /** Re-export of the size variant union for downstream typing. */
64
+ export type AppointmentTimelineSize = NonNullable<VariantProps<typeof rootVariants>['size']>;
65
+ export {};
66
+ //# sourceMappingURL=appointment-timeline.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { AppointmentTimeline } from './appointment-timeline';
2
+ export type { AppointmentTimelineProps, AppointmentTimelineHandle, AppointmentTimelineSize, } from './appointment-timeline';
3
+ export { appointmentTimelineAgent } from './appointment-timeline.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { A as i, a as t } from "../../_chunks/appointment-timeline-BJM0S_Fg.js";
2
+ export {
3
+ i as AppointmentTimeline,
4
+ t as appointmentTimelineAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { A as r, a } from "../../_chunks/audio-recorder-DYXXnGug.js";
1
+ import { A as r, a } from "../../_chunks/audio-recorder-Cpdk5qpQ.js";
2
2
  export {
3
3
  r as AudioRecorder,
4
4
  a as audioRecorderAgent
@@ -1,7 +1,7 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "error" | "neutral" | "info" | "success" | "warning" | "brand" | "accent" | null | undefined;
4
+ variant?: "error" | "neutral" | "info" | "success" | "warning" | "brand" | "accent" | "accentSoft" | null | undefined;
5
5
  size?: "sm" | "md" | "lg" | null | undefined;
6
6
  shape?: "pill" | "rectangular" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -12,7 +12,11 @@ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, Varia
12
12
  withDot?: boolean;
13
13
  /** Truncate long text with ellipsis + tooltip showing full text */
14
14
  truncate?: boolean;
15
- /** For icon-only badges — provides the accessible name */
15
+ /**
16
+ * For icon-only badges, provides the accessible name. For count (numeric)
17
+ * badges, overrides the default "{count} notifications" screen-reader label
18
+ * so a non-notification count reads correctly (e.g. `aria-label="4 treatments"`).
19
+ */
16
20
  'aria-label'?: string;
17
21
  }
18
22
  export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLSpanElement>>;
@@ -1,4 +1,4 @@
1
- import { B as o } from "../../_chunks/badge-CqGsX32l.js";
1
+ import { B as o } from "../../_chunks/badge-DCOqV9mI.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-PJI3AXzA.js";
1
+ import { B as O, a as S, b as o, c as B, d as P, e } from "../../_chunks/bishop-score-DnYWtZa_.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-BZtIJ53x.js";
1
+ import { B as m } from "../../_chunks/bmi-calculator-zjeY4E7J.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-C3VqFReX.js";
1
+ import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-DUBI0oqt.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-CvFGXa2z.js";
1
+ import { C as e, c as C } from "../../_chunks/care-plan-card-C5sTfY9G.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-C3E_gClk.js";
1
+ import { C as n, c as e } from "../../_chunks/care-plan-entry-card-CXnxGCWA.js";
2
2
  export {
3
3
  n as CarePlanEntryCard,
4
4
  e as carePlanEntryCardAgent
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { CarePlanHeaderHandle } from './care-plan-header';
3
+ export declare const carePlanHeaderAgent: AgentAdapter<CarePlanHeaderHandle>;
4
+ //# sourceMappingURL=care-plan-header.agent.d.ts.map
@@ -0,0 +1,100 @@
1
+ import { type HTMLAttributes, type ReactElement, type ReactNode } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import { entitySurfaceVariants, type CarePlanState } from '../_shared/entity-card';
4
+ export type { CarePlanState } from '../_shared/entity-card';
5
+ /** Heading element the plan name / number renders as. */
6
+ export type CarePlanHeaderHeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
7
+ /** Tone of an attention alert chip → the Badge variant it paints with. */
8
+ export type CarePlanHeaderAlertTone = 'warning' | 'error' | 'info';
9
+ /**
10
+ * One attention alert shown as a chip beneath the heading — e.g. a missing
11
+ * signature, an expired estimate. The kit owns the chip; the consumer owns the
12
+ * (already-localised) label and the meaning.
13
+ */
14
+ export interface CarePlanHeaderAlert {
15
+ /** Stable key — identifier only, never PHI. Keys the chip + agent count. */
16
+ id: string;
17
+ /** Already-localised label (consumer-provided). */
18
+ label: ReactNode;
19
+ /** Severity tone. Defaults to `warning`. */
20
+ tone?: CarePlanHeaderAlertTone;
21
+ /** Optional leading glyph (a single lucide element). */
22
+ icon?: ReactElement;
23
+ }
24
+ /**
25
+ * One meta fact in the footer strip — operator, price list, referrer, …. The
26
+ * label is consumer-localised; the value is any node (text, an Avatar + name,
27
+ * a Link). Rendered through the shared `KeyValuePair`.
28
+ */
29
+ export interface CarePlanHeaderMetaItem {
30
+ /** Stable key — identifier only, never PHI. */
31
+ id: string;
32
+ /** Already-localised label (consumer-provided). */
33
+ label: string;
34
+ /** Value node. */
35
+ value: ReactNode;
36
+ /** Optional leading glyph for the pair (a single lucide element). */
37
+ icon?: ReactElement | null;
38
+ }
39
+ /** Lifecycle dates — each an ISO-8601 string, rendered via `Timestamp`. */
40
+ export interface CarePlanHeaderDates {
41
+ /** Acceptance date. */
42
+ acceptedIso?: string;
43
+ /** Closure date. */
44
+ closedIso?: string;
45
+ /** Discard date. */
46
+ discardedIso?: string;
47
+ }
48
+ /**
49
+ * Imperative handle the agent adapter drives. Reads only structural state —
50
+ * the lifecycle enum and the count of alerts. Never the plan name, the meta
51
+ * values, or any patient identity.
52
+ */
53
+ export interface CarePlanHeaderHandle {
54
+ /** The plan lifecycle state (enum, never the localised label). */
55
+ getState: () => CarePlanState;
56
+ /** How many attention alerts are showing. */
57
+ getAlertCount: () => number;
58
+ }
59
+ export interface CarePlanHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
60
+ /** Agent-readiness instance id, surfaced as `data-component-id`. */
61
+ id?: string;
62
+ /** Plan number — rendered in the eyebrow (or as the heading when no `name`). */
63
+ number: string | number;
64
+ /**
65
+ * Override the eyebrow's plan-number label (e.g. a consumer's own
66
+ * `Plan #15`). Defaults to the localised `Care plan {{number}}` shared with
67
+ * `CarePlanCard`, so the two surfaces read alike unless a consumer opts out.
68
+ */
69
+ numberLabel?: ReactNode;
70
+ /** Plan name — the title heading. Omit for a number-only header. */
71
+ name?: ReactNode;
72
+ /** Lifecycle state — drives the badge variant + localised label. */
73
+ state: CarePlanState;
74
+ /** Deep link for the heading. Rendered only when it passes the safe-URL gate. */
75
+ url?: string;
76
+ /** Attention alerts (e.g. signature missing) shown as chips under the heading. */
77
+ alerts?: CarePlanHeaderAlert[];
78
+ /** Consumer-labelled meta facts (operator, price list, …) in the footer. */
79
+ meta?: CarePlanHeaderMetaItem[];
80
+ /** Lifecycle dates rendered as a muted `Timestamp` line. */
81
+ dates?: CarePlanHeaderDates;
82
+ /** Inline-end actions slot (e.g. Share / Print). */
83
+ actions?: ReactNode;
84
+ /** Heading element the name / number renders as. Defaults to `h3`. */
85
+ headingTag?: CarePlanHeaderHeadingTag;
86
+ /** `elevated` (default) paints the kit card chrome; `flat` drops it. */
87
+ surface?: 'flat' | 'elevated';
88
+ /** Internal padding density. Defaults to `comfortable`. */
89
+ density?: 'comfortable' | 'compact';
90
+ /** BCP-47 locale override for the dates. Defaults to `i18n.language`. */
91
+ locale?: string;
92
+ /** Fires when the plan deep link / heading is activated. */
93
+ onActivate?: () => void;
94
+ /** Accessible name override for the plan region (defaults to the heading). */
95
+ 'aria-label'?: string;
96
+ }
97
+ export declare const CarePlanHeader: import("react").ForwardRefExoticComponent<CarePlanHeaderProps & import("react").RefAttributes<HTMLElement>>;
98
+ /** Surface variant union re-exported for downstream typing. */
99
+ export type CarePlanHeaderSurface = NonNullable<VariantProps<typeof entitySurfaceVariants>['surface']>;
100
+ //# sourceMappingURL=care-plan-header.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { CarePlanHeader } from './care-plan-header';
2
+ export type { CarePlanHeaderProps, CarePlanHeaderHandle, CarePlanHeaderSurface, CarePlanHeaderHeadingTag, CarePlanHeaderAlert, CarePlanHeaderAlertTone, CarePlanHeaderMetaItem, CarePlanHeaderDates, } from './care-plan-header';
3
+ export { carePlanHeaderAgent } from './care-plan-header.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { C as r, c as n } from "../../_chunks/care-plan-header-BUwqDTtz.js";
2
+ export {
3
+ r as CarePlanHeader,
4
+ n as carePlanHeaderAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map