@alfadocs/ui-kit 0.46.0 → 0.48.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 (200) hide show
  1. package/dist/_chunks/{agenda-card-CFyWSX7Z.js → agenda-card-BaSfVfrL.js} +25 -29
  2. package/dist/_chunks/{agenda-tray-Dyj9ChHC.js → agenda-tray-DQayYmQ0.js} +50 -67
  3. package/dist/_chunks/ai-consent-banner-DO5ingMq.js +169 -0
  4. package/dist/_chunks/ai-tools-rail-CxYG04cw.js +280 -0
  5. package/dist/_chunks/alia-sidebar-DlvyXgVC.js +1126 -0
  6. package/dist/_chunks/anamnesis-card-CmkBVAln.js +156 -0
  7. package/dist/_chunks/appointment-tray-BwDHhWWC.js +419 -0
  8. package/dist/_chunks/{audio-recorder-C1rhKhSN.js → audio-recorder-DC-v9YFW.js} +81 -91
  9. package/dist/_chunks/{bmi-calculator-CQqXTVNL.js → bmi-calculator-DdylQzT6.js} +2 -2
  10. package/dist/_chunks/{booking-DlDVuWMd.js → booking-WV2GSru5.js} +291 -303
  11. package/dist/_chunks/{calculator-dialog-D-nfvteH.js → calculator-dialog-CFk4I91b.js} +2 -2
  12. package/dist/_chunks/calendar-days-C4BmpCZg.js +23 -0
  13. package/dist/_chunks/{calendar-YHFknAGv.js → calendar-oYWOCrnf.js} +195 -210
  14. package/dist/_chunks/care-plan-card-QmNpGggC.js +252 -0
  15. package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js +318 -0
  16. package/dist/_chunks/{chat-input-CQe7nR_v.js → chat-input-CFwc7JxL.js} +2 -1
  17. package/dist/_chunks/{chat-message-ASgGtj-L.js → chat-message-Dm8U2RY1.js} +81 -74
  18. package/dist/_chunks/clinical-note-card-BYo437dU.js +333 -0
  19. package/dist/_chunks/code-block-HoddNOKJ.js +106 -0
  20. package/dist/_chunks/{contact-profile-card-DHyuAPXM.js → contact-profile-card-DvvVfAA2.js} +102 -115
  21. package/dist/_chunks/{cycle-calculator-KxA8dqDf.js → cycle-calculator-DYvGm_m1.js} +2 -2
  22. package/dist/_chunks/{dialog-BTpZV6It.js → dialog-DMGnSelc.js} +55 -55
  23. package/dist/_chunks/download-CDF1sbL9.js +16 -0
  24. package/dist/_chunks/{due-date-calculator-mFxpHLml.js → due-date-calculator-BXd3ANj7.js} +2 -2
  25. package/dist/_chunks/{editable-currency-cell-renderer-BEBUQl9P.js → editable-currency-cell-renderer-CLil9B29.js} +283 -293
  26. package/dist/_chunks/entity-card-COhmqHly.js +69 -0
  27. package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js → gestational-age-calculator-Crj6FgZw.js} +2 -2
  28. package/dist/_chunks/{insert-result-C5ABnzDl.js → insert-result-DNdi_JYW.js} +140 -168
  29. package/dist/_chunks/is-safe-url-DkETxeHz.js +7 -0
  30. package/dist/_chunks/languages-DsVf_WzT.js +19 -0
  31. package/dist/_chunks/layers-pzGcbLPj.js +34 -0
  32. package/dist/_chunks/{message-card-DSPw5ghw.js → message-card-Dvl1TgaN.js} +15 -19
  33. package/dist/_chunks/{message-tray-hSQff9u4.js → message-tray-Dl6GQaaV.js} +2 -2
  34. package/dist/_chunks/mic-B4Gog3Gi.js +16 -0
  35. package/dist/_chunks/operator-hero-CM8949Hd.js +198 -0
  36. package/dist/_chunks/patient-summary-card-BnTqxcTr.js +443 -0
  37. package/dist/_chunks/payment-request-card-B_lyobd0.js +478 -0
  38. package/dist/_chunks/{pdf-viewer-CWEXTlwq.js → pdf-viewer-G8SU6Azw.js} +3 -3
  39. package/dist/_chunks/pencil-CfQX-0Qc.js +21 -0
  40. package/dist/_chunks/periodontal-chart-card-BYs9hax1.js +455 -0
  41. package/dist/_chunks/phone-Bi5yUm4I.js +20 -0
  42. package/dist/_chunks/{practice-results-DDi-kvaD.js → practice-results-BFL_mcDW.js} +3 -2
  43. package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js → pregnancy-weight-gain-C7dK89jE.js} +2 -2
  44. package/dist/_chunks/scan-line-lGioFwLC.js +18 -0
  45. package/dist/_chunks/shield-check-BjCGH_Sr.js +21 -0
  46. package/dist/_chunks/{sign-document-BCyLpFHJ.js → sign-document-DPI2pY9V.js} +2 -2
  47. package/dist/_chunks/{streaming-text-GH07yIYh.js → streaming-text-CfhDqtIT.js} +49 -45
  48. package/dist/_chunks/{transaction-chip-B8ujzowA.js → transaction-chip-BZCa6XDn.js} +8 -6
  49. package/dist/_chunks/{unit-converter-u3CwNDpP.js → unit-converter-jWp3Z85y.js} +2 -2
  50. package/dist/_chunks/user-cog-BS_qc8nA.js +24 -0
  51. package/dist/_chunks/video-BAeICxCT.js +21 -0
  52. package/dist/_chunks/{workflow-map-BFNpzTiw.js → workflow-map-ZXw-zsZ8.js} +186 -219
  53. package/dist/agent-catalog.json +324 -1
  54. package/dist/components/_shared/code-block.d.ts +39 -0
  55. package/dist/components/_shared/entity-card/entity-card.d.ts +40 -0
  56. package/dist/components/_shared/entity-card/index.d.ts +3 -0
  57. package/dist/components/_shared/index.d.ts +2 -0
  58. package/dist/components/_shared/is-safe-url.d.ts +13 -0
  59. package/dist/components/agenda-card/agenda-card.d.ts +1 -2
  60. package/dist/components/agenda-card/index.d.ts +2 -1
  61. package/dist/components/agenda-card/index.js +6 -5
  62. package/dist/components/agenda-tray/index.js +1 -1
  63. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts +4 -0
  64. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts +45 -0
  65. package/dist/components/ai-consent-banner/index.d.ts +4 -0
  66. package/dist/components/ai-consent-banner/index.js +6 -0
  67. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +4 -0
  68. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +60 -0
  69. package/dist/components/ai-tools-rail/index.d.ts +4 -0
  70. package/dist/components/ai-tools-rail/index.js +6 -0
  71. package/dist/components/anamnesis-card/anamnesis-card.d.ts +68 -0
  72. package/dist/components/anamnesis-card/index.d.ts +3 -0
  73. package/dist/components/anamnesis-card/index.js +5 -0
  74. package/dist/components/appointment-card/appointment-card.agent.d.ts +3 -0
  75. package/dist/components/appointment-card/appointment-card.d.ts +93 -0
  76. package/dist/components/appointment-card/appointment-tray.agent.d.ts +4 -0
  77. package/dist/components/appointment-card/appointment-tray.d.ts +48 -0
  78. package/dist/components/appointment-card/index.d.ts +8 -0
  79. package/dist/components/appointment-card/index.js +10 -0
  80. package/dist/components/audio-recorder/index.js +1 -1
  81. package/dist/components/badge/badge.d.ts +1 -1
  82. package/dist/components/bmi-calculator/index.js +1 -1
  83. package/dist/components/booking/index.js +1 -1
  84. package/dist/components/calculator-dialog/index.js +1 -1
  85. package/dist/components/calendar/index.js +1 -1
  86. package/dist/components/card/card.d.ts +1 -1
  87. package/dist/components/care-plan-card/care-plan-card.agent.d.ts +4 -0
  88. package/dist/components/care-plan-card/care-plan-card.d.ts +102 -0
  89. package/dist/components/care-plan-card/index.d.ts +4 -0
  90. package/dist/components/care-plan-card/index.js +6 -0
  91. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts +4 -0
  92. package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts +110 -0
  93. package/dist/components/care-plan-entry-card/index.d.ts +4 -0
  94. package/dist/components/care-plan-entry-card/index.js +6 -0
  95. package/dist/components/chat-input/index.js +1 -1
  96. package/dist/components/chat-message/chat-message.d.ts +13 -0
  97. package/dist/components/chat-message/index.js +1 -1
  98. package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts +4 -0
  99. package/dist/components/clinical-note-card/clinical-note-card.d.ts +98 -0
  100. package/dist/components/clinical-note-card/index.d.ts +4 -0
  101. package/dist/components/clinical-note-card/index.js +6 -0
  102. package/dist/components/contact-profile-card/index.js +1 -1
  103. package/dist/components/cycle-calculator/index.js +1 -1
  104. package/dist/components/data-table/index.js +1 -1
  105. package/dist/components/dialog/dialog.d.ts +7 -0
  106. package/dist/components/dialog/index.js +1 -1
  107. package/dist/components/due-date-calculator/index.js +1 -1
  108. package/dist/components/gestational-age-calculator/index.js +1 -1
  109. package/dist/components/index.d.ts +10 -0
  110. package/dist/components/message-card/index.js +5 -4
  111. package/dist/components/message-card/message-card.d.ts +1 -2
  112. package/dist/components/message-tray/index.js +1 -1
  113. package/dist/components/operator-hero/index.js +1 -1
  114. package/dist/components/operator-hero/operator-hero.d.ts +9 -0
  115. package/dist/components/patient-summary-card/index.d.ts +4 -0
  116. package/dist/components/patient-summary-card/index.js +6 -0
  117. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts +4 -0
  118. package/dist/components/patient-summary-card/patient-summary-card.d.ts +120 -0
  119. package/dist/components/payment-card/index.d.ts +7 -0
  120. package/dist/components/payment-card/index.js +8 -0
  121. package/dist/components/payment-card/payment-card.agent.d.ts +4 -0
  122. package/dist/components/payment-card/payment-card.d.ts +71 -0
  123. package/dist/components/payment-card/payment-request-card.agent.d.ts +4 -0
  124. package/dist/components/payment-card/payment-request-card.d.ts +43 -0
  125. package/dist/components/pdf-viewer/index.js +1 -1
  126. package/dist/components/periodontal-chart-card/index.d.ts +4 -0
  127. package/dist/components/periodontal-chart-card/index.js +7 -0
  128. package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts +4 -0
  129. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +74 -0
  130. package/dist/components/practice-results/index.js +1 -1
  131. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  132. package/dist/components/public-header/public-header.d.ts +1 -1
  133. package/dist/components/sign-document/index.js +1 -1
  134. package/dist/components/stat/stat.d.ts +1 -1
  135. package/dist/components/streaming-text/index.js +1 -1
  136. package/dist/components/transaction-chip/index.js +1 -1
  137. package/dist/components/unit-converter/index.js +1 -1
  138. package/dist/components/workflow/index.js +1 -1
  139. package/dist/i18n/locales/ar.d.ts +366 -0
  140. package/dist/i18n/locales/ar.js +367 -1
  141. package/dist/i18n/locales/de.d.ts +366 -0
  142. package/dist/i18n/locales/de.js +367 -1
  143. package/dist/i18n/locales/el.d.ts +366 -0
  144. package/dist/i18n/locales/el.js +367 -1
  145. package/dist/i18n/locales/en.d.ts +366 -0
  146. package/dist/i18n/locales/en.js +367 -1
  147. package/dist/i18n/locales/es.d.ts +366 -0
  148. package/dist/i18n/locales/es.js +367 -1
  149. package/dist/i18n/locales/fr.d.ts +366 -0
  150. package/dist/i18n/locales/fr.js +367 -1
  151. package/dist/i18n/locales/hi.d.ts +366 -0
  152. package/dist/i18n/locales/hi.js +367 -1
  153. package/dist/i18n/locales/it.d.ts +366 -0
  154. package/dist/i18n/locales/it.js +367 -1
  155. package/dist/i18n/locales/ja.d.ts +366 -0
  156. package/dist/i18n/locales/ja.js +367 -1
  157. package/dist/i18n/locales/nl.d.ts +366 -0
  158. package/dist/i18n/locales/nl.js +367 -1
  159. package/dist/i18n/locales/pl.d.ts +366 -0
  160. package/dist/i18n/locales/pl.js +367 -1
  161. package/dist/i18n/locales/pt.d.ts +366 -0
  162. package/dist/i18n/locales/pt.js +367 -1
  163. package/dist/i18n/locales/ro.d.ts +366 -0
  164. package/dist/i18n/locales/ro.js +367 -1
  165. package/dist/i18n/locales/ru.d.ts +366 -0
  166. package/dist/i18n/locales/ru.js +367 -1
  167. package/dist/i18n/locales/sq.d.ts +366 -0
  168. package/dist/i18n/locales/sq.js +367 -1
  169. package/dist/i18n/locales/sv.d.ts +366 -0
  170. package/dist/i18n/locales/sv.js +367 -1
  171. package/dist/i18n/locales/tr.d.ts +366 -0
  172. package/dist/i18n/locales/tr.js +367 -1
  173. package/dist/i18n/locales/zh.d.ts +366 -0
  174. package/dist/i18n/locales/zh.js +367 -1
  175. package/dist/index.js +527 -491
  176. package/dist/locales/ar.json +367 -1
  177. package/dist/locales/de.json +367 -1
  178. package/dist/locales/el.json +367 -1
  179. package/dist/locales/en.json +367 -1
  180. package/dist/locales/es.json +367 -1
  181. package/dist/locales/fr.json +367 -1
  182. package/dist/locales/hi.json +367 -1
  183. package/dist/locales/it.json +367 -1
  184. package/dist/locales/ja.json +367 -1
  185. package/dist/locales/nl.json +367 -1
  186. package/dist/locales/pl.json +367 -1
  187. package/dist/locales/pt.json +367 -1
  188. package/dist/locales/ro.json +367 -1
  189. package/dist/locales/ru.json +367 -1
  190. package/dist/locales/sq.json +367 -1
  191. package/dist/locales/sv.json +367 -1
  192. package/dist/locales/tr.json +367 -1
  193. package/dist/locales/zh.json +367 -1
  194. package/dist/patterns/alia-assistant/alia-types.d.ts +76 -0
  195. package/dist/patterns/alia-assistant/index.js +1 -1
  196. package/dist/tokens.css +1 -1
  197. package/package.json +42 -1
  198. package/dist/_chunks/alia-sidebar-Be8FhKYd.js +0 -837
  199. package/dist/_chunks/operator-hero-7LiiP7zi.js +0 -171
  200. package/dist/_chunks/shield-check-C73ma9Cs.js +0 -36
@@ -30,6 +30,19 @@ export interface ChatMessageProps extends NativeProps, VariantProps<typeof bubbl
30
30
  renderMarkdown?: boolean;
31
31
  /** Invoked when the retry button is activated (error status only). */
32
32
  onRetry?: () => void;
33
+ /**
34
+ * Optional action row rendered beneath the message body + timestamp,
35
+ * aligned with the message (e.g. the Alia pattern's Copy / Download
36
+ * buttons on assistant messages). Default off → renders nothing.
37
+ */
38
+ actions?: ReactNode;
39
+ /**
40
+ * Custom body node rendered verbatim INSTEAD of `content`. When set, the
41
+ * markdown tokenizer (`renderBody`) is skipped and the node is rendered
42
+ * directly inside the bubble. `content` is still required (used for the
43
+ * aria-label context and consumer copy / download). Default off.
44
+ */
45
+ body?: ReactNode;
33
46
  }
34
47
  export declare const ChatMessage: import("react").ForwardRefExoticComponent<ChatMessageProps & import("react").RefAttributes<HTMLElement>>;
35
48
  export {};
@@ -1,4 +1,4 @@
1
- import { C as s } from "../../_chunks/chat-message-ASgGtj-L.js";
1
+ import { C as s } from "../../_chunks/chat-message-Dm8U2RY1.js";
2
2
  export {
3
3
  s as ChatMessage
4
4
  };
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { ClinicalNoteCardHandle } from './clinical-note-card';
3
+ export declare const clinicalNoteCardAgent: AgentAdapter<ClinicalNoteCardHandle>;
4
+ //# sourceMappingURL=clinical-note-card.agent.d.ts.map
@@ -0,0 +1,98 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ /** Author identity — drives the avatar + visible byline. */
4
+ export interface ClinicalNoteAuthor {
5
+ /** Display name. */
6
+ name: string;
7
+ /** Optional avatar image URL. */
8
+ avatarUrl?: string;
9
+ }
10
+ /**
11
+ * What the note is attached to. Discriminated by `kind`:
12
+ * - `patient` — a free-standing note on the patient record.
13
+ * - `carePlan` — attached to a care plan (estimate / treatment plan),
14
+ * identified by its number, with an optional deep link.
15
+ * - `carePlanEntry` — attached to one entry inside a care plan, naming the
16
+ * care and (optionally) the listed elements.
17
+ * - `phase` — attached to a treatment phase, labelled.
18
+ * - `xray` — attached to an x-ray / radiograph, optionally labelled.
19
+ */
20
+ export type NoteAttachment = {
21
+ kind: 'patient';
22
+ } | {
23
+ kind: 'carePlan';
24
+ number: string;
25
+ url?: string;
26
+ } | {
27
+ kind: 'carePlanEntry';
28
+ careName: string;
29
+ elements?: string[];
30
+ } | {
31
+ kind: 'phase';
32
+ label: string;
33
+ } | {
34
+ kind: 'xray';
35
+ label?: string;
36
+ };
37
+ /** Imperative handle exposed to the agent runtime — identifiers / flags only. */
38
+ export interface ClinicalNoteCardHandle {
39
+ /** The note's stable id, when supplied. */
40
+ getNoteId: () => string | undefined;
41
+ /** Whether the note is currently pinned. */
42
+ isPinned: () => boolean;
43
+ /** Whether the note is currently flagged. */
44
+ isFlagged: () => boolean;
45
+ /** The attachment kind the note is bound to. */
46
+ getAttachmentKind: () => NoteAttachment['kind'] | undefined;
47
+ }
48
+ export interface ClinicalNoteCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'aria-label' | 'children' | 'content' | 'title'> {
49
+ /** Agent-readiness consumer id, surfaced as `data-component-id`. */
50
+ id?: string;
51
+ /**
52
+ * ISO-8601 timestamp the note refers to (the clinical date). Drives the
53
+ * primary `<Timestamp>`.
54
+ */
55
+ dateIso: string;
56
+ /**
57
+ * ISO-8601 timestamp the note was authored, when it differs from
58
+ * `dateIso`. Rendered as a secondary "added" line.
59
+ */
60
+ createdAtIso?: string;
61
+ /** Author identity — avatar + byline. Optional for system notes. */
62
+ author?: ClinicalNoteAuthor;
63
+ /**
64
+ * Whether this is a clinical note (vs. an administrative one). When true a
65
+ * "Clinical" badge is shown so the note's nature is unambiguous at a glance.
66
+ */
67
+ clinical?: boolean;
68
+ /** What the note is attached to — drives a contextual chip + optional link. */
69
+ attachedTo?: NoteAttachment;
70
+ /**
71
+ * The note body, authored in a small, safe subset of Markdown (bold,
72
+ * italic, inline code, links, line breaks, simple lists). Rendered through
73
+ * the shared `SafeHtml` helper with the `markdown` sanitiser profile —
74
+ * raw HTML and unsafe link schemes are stripped.
75
+ */
76
+ content: string;
77
+ /** Pin the note to the top of a timeline — shows a "Pinned" chip. */
78
+ pinned?: boolean;
79
+ /** Flag the note for follow-up / attention — shows a "Flagged" chip. */
80
+ flagged?: boolean;
81
+ /** Clamp the rendered body to a few lines. */
82
+ truncate?: boolean;
83
+ /**
84
+ * `'elevated'` (default) wraps the note in `<Card variant="elevated">`.
85
+ * `'flat'` drops the chrome for use inside an existing Card / timeline rail.
86
+ */
87
+ surface?: 'flat' | 'elevated';
88
+ /** Override the default region aria-label. */
89
+ 'aria-label'?: string;
90
+ }
91
+ declare const rootVariants: (props?: ({
92
+ surface?: "flat" | "elevated" | null | undefined;
93
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
94
+ export declare const ClinicalNoteCard: import("react").ForwardRefExoticComponent<ClinicalNoteCardProps & import("react").RefAttributes<HTMLDivElement>>;
95
+ /** Re-export of the surface variant union for downstream typing. */
96
+ export type ClinicalNoteCardSurface = NonNullable<VariantProps<typeof rootVariants>['surface']>;
97
+ export {};
98
+ //# sourceMappingURL=clinical-note-card.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { ClinicalNoteCard } from './clinical-note-card';
2
+ export type { ClinicalNoteCardProps, ClinicalNoteCardHandle, ClinicalNoteCardSurface, ClinicalNoteAuthor, NoteAttachment, } from './clinical-note-card';
3
+ export { clinicalNoteCardAgent } from './clinical-note-card.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { C as e, c as i } from "../../_chunks/clinical-note-card-BYo437dU.js";
2
+ export {
3
+ e as ClinicalNoteCard,
4
+ i as clinicalNoteCardAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-DHyuAPXM.js";
1
+ import { C as _, a as O, b as o, c as r } from "../../_chunks/contact-profile-card-DvvVfAA2.js";
2
2
  export {
3
3
  _ as CONTACT_PROFILE_CARD_ROW_ICONS,
4
4
  O as CONTACT_PROFILE_CARD_ROW_KEYS,
@@ -1,4 +1,4 @@
1
- import { C as e, L as l, p as r } from "../../_chunks/cycle-calculator-KxA8dqDf.js";
1
+ import { C as e, L as l, p as r } from "../../_chunks/cycle-calculator-DYvGm_m1.js";
2
2
  export {
3
3
  e as CycleCalculator,
4
4
  l as LUTEAL_PHASE_DAYS,
@@ -1,4 +1,4 @@
1
- import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-BEBUQl9P.js";
1
+ import { A as l, B as r, C as t, a as s, D as n, b as d, c as i, d as o, E as C, e as R, I as F, L as g, N as T, f as b, S as u, g as c, h as D, T as m, i as p, j as x, k as f, l as y, m as E, n as S, o as h, U as A, p as L, q as N, u as k } from "../../_chunks/editable-currency-cell-renderer-CLil9B29.js";
2
2
  export {
3
3
  l as ActionsCellRenderer,
4
4
  r as BalanceCellRenderer,
@@ -16,6 +16,13 @@ export interface DialogRootProps extends ComponentPropsWithoutRef<typeof RadixDi
16
16
  export interface DialogContentProps extends Omit<ComponentPropsWithoutRef<typeof RadixDialog.Content>, 'role'>, VariantProps<typeof contentVariants> {
17
17
  size?: 'sm' | 'md' | 'lg' | 'fullscreen';
18
18
  variant?: 'default' | 'alert' | 'confirmation';
19
+ /**
20
+ * Hide the top-right dismiss "X". The default is **variant-aware**: the X is
21
+ * shown for `variant="default"` and hidden for `variant="alert"` /
22
+ * `"confirmation"` (forced-choice surfaces, where the decision is made via
23
+ * the explicit footer actions). An explicit value always wins — pass `false`
24
+ * to force the X onto an alert, or `true` to suppress it on a default dialog.
25
+ */
19
26
  hideCloseButton?: boolean;
20
27
  className?: string;
21
28
  children: ReactNode;
@@ -1,4 +1,4 @@
1
- import { D as g, d } from "../../_chunks/dialog-BTpZV6It.js";
1
+ import { D as g, d } from "../../_chunks/dialog-DMGnSelc.js";
2
2
  export {
3
3
  g as Dialog,
4
4
  d as dialogAgent
@@ -1,4 +1,4 @@
1
- import { D as s } from "../../_chunks/due-date-calculator-mFxpHLml.js";
1
+ import { D as s } from "../../_chunks/due-date-calculator-BXd3ANj7.js";
2
2
  import { D as E, G as o, M as D, T as r, c as T, g as _, t as C } from "../../_chunks/gestation-mWF4AXea.js";
3
3
  export {
4
4
  E as DEFAULT_CYCLE_LENGTH,
@@ -1,4 +1,4 @@
1
- import { G as t } from "../../_chunks/gestational-age-calculator-gWI_uRA1.js";
1
+ import { G as t } from "../../_chunks/gestational-age-calculator-Crj6FgZw.js";
2
2
  export {
3
3
  t as GestationalAgeCalculator
4
4
  };
@@ -51,6 +51,7 @@ export * from './card';
51
51
  export * from './carousel';
52
52
  export * from './contact-card';
53
53
  export * from './data-table';
54
+ export * from './clinical-note-card';
54
55
  export * from './description-list';
55
56
  export * from './empty-state';
56
57
  export * from './flag';
@@ -67,6 +68,7 @@ export * from './stat';
67
68
  export * from './tag';
68
69
  export * from './timeline';
69
70
  export * from './timestamp';
71
+ export * from './ai-tools-rail';
70
72
  export * from './breadcrumb';
71
73
  export * from './command-palette';
72
74
  export * from './header';
@@ -85,7 +87,9 @@ export * from './tabs';
85
87
  export * from './theme-toggle';
86
88
  export * from './agenda-card';
87
89
  export * from './agenda-tray';
90
+ export * from './ai-consent-banner';
88
91
  export * from './alert';
92
+ export * from './appointment-card';
89
93
  export * from './dialog';
90
94
  export * from './dropdown-menu';
91
95
  export * from './live-region';
@@ -126,12 +130,18 @@ export * from './streaming-text';
126
130
  export * from './suggestion-chip';
127
131
  export * from './transcript-panel';
128
132
  export * from './typing-indicator';
133
+ export * from './anamnesis-card';
129
134
  export * from './booking';
130
135
  export * from './calendar';
136
+ export * from './care-plan-card';
137
+ export * from './care-plan-entry-card';
131
138
  export * from './operator-hero';
132
139
  export * from './patient-search';
140
+ export * from './patient-summary-card';
141
+ export * from './periodontal-chart-card';
133
142
  export * from './contact-profile-card';
134
143
  export * from './practice-results';
144
+ export * from './payment-card';
135
145
  export * from './payment-form';
136
146
  export * from './pdf-viewer';
137
147
  export * from './reviews-panel';
@@ -1,8 +1,9 @@
1
- import { M as a, i as r } from "../../_chunks/message-card-DSPw5ghw.js";
2
- import { m } from "../../_chunks/message-card.agent-4IeIgrnJ.js";
1
+ import { M as a } from "../../_chunks/message-card-Dvl1TgaN.js";
2
+ import { m as o } from "../../_chunks/message-card.agent-4IeIgrnJ.js";
3
+ import { i as f } from "../../_chunks/is-safe-url-DkETxeHz.js";
3
4
  export {
4
5
  a as MessageCard,
5
- r as isSafeMessageUrl,
6
- m as messageCardAgent
6
+ f as isSafeMessageUrl,
7
+ o as messageCardAgent
7
8
  };
8
9
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,6 @@
1
1
  import { type HTMLAttributes } from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
+ export { isSafeEntityUrl as isSafeMessageUrl } from '../_shared/is-safe-url';
3
4
  export interface MessageSender {
4
5
  /** Display name — drives the avatar's deterministic colour + initials. */
5
6
  name: string;
@@ -67,7 +68,5 @@ declare const cardVariants: (props?: ({
67
68
  size?: "sm" | "md" | null | undefined;
68
69
  state?: "read" | "unread" | null | undefined;
69
70
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
70
- export declare function isSafeMessageUrl(url: string): boolean;
71
71
  export declare const MessageCard: import("react").ForwardRefExoticComponent<MessageCardProps & import("react").RefAttributes<HTMLDivElement>>;
72
- export {};
73
72
  //# sourceMappingURL=message-card.d.ts.map
@@ -1,4 +1,4 @@
1
- import { M as s, m as r } from "../../_chunks/message-tray-hSQff9u4.js";
1
+ import { M as s, m as r } from "../../_chunks/message-tray-Dl6GQaaV.js";
2
2
  export {
3
3
  s as MessageTray,
4
4
  r as messageTrayAgent
@@ -1,4 +1,4 @@
1
- import { O as e, o as a } from "../../_chunks/operator-hero-7LiiP7zi.js";
1
+ import { O as e, o as a } from "../../_chunks/operator-hero-CM8949Hd.js";
2
2
  export {
3
3
  e as OperatorHero,
4
4
  a as operatorHeroAgent
@@ -20,10 +20,19 @@ export interface OperatorHeroRating {
20
20
  }
21
21
  export interface OperatorHeroHandle {
22
22
  getName: () => string;
23
+ /** Structural flag — whether a calendar-colour dot is rendered. No PHI. */
24
+ getHasColor: () => boolean;
23
25
  }
24
26
  export interface OperatorHeroProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'children'> {
25
27
  /** Operator's display name. Rendered as the H1 heading. */
26
28
  name: string;
29
+ /**
30
+ * Optional calendar-colour identity for the operator. AlfaDocs assigns each
31
+ * operator a numeric colour id; when present, a small colour dot is rendered
32
+ * next to the name, tinted via `colorIdToToken(colorId)` (a `var(--…)` palette
33
+ * token — never a literal). The id itself is a structural identifier, not PHI.
34
+ */
35
+ colorId?: string;
27
36
  /** Specialty / tagline subtitle (e.g. "Dermatologa · 12 anni di esperienza"). */
28
37
  tagline?: string;
29
38
  /**
@@ -0,0 +1,4 @@
1
+ export { PatientSummaryCard } from './patient-summary-card';
2
+ export type { PatientSummaryCardProps, PatientSummaryCardHandle, PatientSummaryCardPhone, PatientSummaryCardFamilyRelation, PatientSummaryCardAssignee, PatientSummaryCardAiConsent, PatientSummaryCardFlags, PatientSummaryCardMarketingConsent, PatientSummaryCardSurface, PatientSummaryCardDensity, } from './patient-summary-card';
3
+ export { patientSummaryCardAgent } from './patient-summary-card.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { P as t, p as m } from "../../_chunks/patient-summary-card-BnTqxcTr.js";
2
+ export {
3
+ t as PatientSummaryCard,
4
+ m as patientSummaryCardAgent
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { PatientSummaryCardHandle } from './patient-summary-card';
3
+ export declare const patientSummaryCardAgent: AgentAdapter<PatientSummaryCardHandle>;
4
+ //# sourceMappingURL=patient-summary-card.agent.d.ts.map
@@ -0,0 +1,120 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ declare const rootVariants: (props?: ({
4
+ surface?: "flat" | "elevated" | null | undefined;
5
+ density?: "compact" | "comfortable" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ /** Patient phone number — already formatted for display by the consumer. */
8
+ export interface PatientSummaryCardPhone {
9
+ /** Display string, e.g. `"+39 055 123 4567"`. Compiled into a `tel:` link. */
10
+ prefixAndNumber: string;
11
+ /** Optional label that distinguishes this number (e.g. "Mobile"). */
12
+ label?: string;
13
+ /** Whether SMS is enabled for this number — shows a small "SMS" chip. */
14
+ smsEnabled?: boolean;
15
+ }
16
+ /** A family relation row — links one patient to another. */
17
+ export interface PatientSummaryCardFamilyRelation {
18
+ /** Localised relation label, consumer-supplied (e.g. "Mother", "Child"). */
19
+ relation: string;
20
+ /** The related patient — name + optional in-app profile URL. */
21
+ relatedPatient: {
22
+ name: string;
23
+ url?: string;
24
+ };
25
+ }
26
+ /** Operator the patient is assigned to. */
27
+ export interface PatientSummaryCardAssignee {
28
+ name: string;
29
+ avatarUrl?: string;
30
+ }
31
+ /** AI-consent grant metadata — structural only, never the consented content. */
32
+ export interface PatientSummaryCardAiConsent {
33
+ /** ISO-8601 / display string of when consent was granted. */
34
+ grantedAt: string;
35
+ /** Optional name of who recorded the grant. */
36
+ grantedBy?: string;
37
+ }
38
+ /** Status flags rendered as glyph badges (counts / amounts only — no PHI). */
39
+ export interface PatientSummaryCardFlags {
40
+ /** Number of anamnesis answers highlighted for clinical attention. */
41
+ highlightedAnamnesisCount?: number;
42
+ /** Outstanding balance in the smallest currency unit (cents). */
43
+ unpaidAmountCents?: number;
44
+ /** Number of documents awaiting the patient's signature. */
45
+ unsignedDocumentsCount?: number;
46
+ }
47
+ /** Marketing-consent tri-state. */
48
+ export type PatientSummaryCardMarketingConsent = 'no' | 'yes' | 'not_specified';
49
+ export interface PatientSummaryCardHandle {
50
+ /** Structural snapshot — identifiers and counts only, never patient identity. */
51
+ getSummary: () => {
52
+ id?: string;
53
+ hasUnpaid: boolean;
54
+ unsignedDocumentsCount: number;
55
+ highlightedAnamnesisCount: number;
56
+ aiConsentGranted: boolean;
57
+ };
58
+ }
59
+ export interface PatientSummaryCardProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'children'> {
60
+ /** Patient display name. Rendered as the heading. */
61
+ name: string;
62
+ /** Honorific — `'mr'` / `'ms'`. Prepended to the name in the heading. */
63
+ title?: 'mr' | 'ms';
64
+ /** Patient age in whole years — rendered in the identity line. */
65
+ ageYears?: number;
66
+ /** Date of birth — already formatted for display by the consumer. */
67
+ dateOfBirth?: string;
68
+ /** Biological sex marker — `'m'` / `'f'`. Drives the identity-line glyph copy. */
69
+ gender?: 'm' | 'f';
70
+ /** Optional avatar / photo URL. Falls back to initials. */
71
+ avatarUrl?: string;
72
+ /**
73
+ * In-app patient profile URL. When safe, the heading becomes a link.
74
+ * Guarded by the shared `isSafeEntityUrl` allow-list — unsafe URLs are
75
+ * dropped and the heading renders as plain text.
76
+ */
77
+ patientUrl?: string;
78
+ /** Patient email. Compiled into a `mailto:` link when `emailEnabled`. */
79
+ email?: string;
80
+ /** Whether email contact is enabled — gates the `mailto:` link. */
81
+ emailEnabled?: boolean;
82
+ /** Phone number block. Compiled into a `tel:` link. */
83
+ phone?: PatientSummaryCardPhone;
84
+ /** City / province display string. */
85
+ cityProvince?: string;
86
+ /** Marketing-consent tri-state. */
87
+ marketingConsent?: PatientSummaryCardMarketingConsent;
88
+ /** AI-consent grant metadata. When present, an "AI consent" row renders. */
89
+ aiConsent?: PatientSummaryCardAiConsent;
90
+ /** Counts / amounts surfaced as glyph badges. */
91
+ flags?: PatientSummaryCardFlags;
92
+ /** Family relations — rendered as `<Tag>` chips, optionally linked. */
93
+ familyRelations?: PatientSummaryCardFamilyRelation[];
94
+ /** Operator the patient is assigned to. */
95
+ assignedTo?: PatientSummaryCardAssignee;
96
+ /** ISO-4217 currency code for the unpaid-amount chip. Defaults to `EUR`. */
97
+ currency?: string;
98
+ /** BCP-47 locale override. Defaults to the active i18next language. */
99
+ locale?: string;
100
+ /** Render the skeleton loading placeholder. */
101
+ loading?: boolean;
102
+ /** Rendered at the inline-end of the heading row (e.g. an action menu). */
103
+ actionSlot?: ReactNode;
104
+ /** Fires when the whole card / heading is activated. */
105
+ onActivate?: () => void;
106
+ /** `'elevated'` (default) wraps in `<Card>`; `'flat'` drops the chrome. */
107
+ surface?: 'flat' | 'elevated';
108
+ /** `'comfortable'` (default) reads as a header; `'compact'` for asides. */
109
+ density?: 'comfortable' | 'compact';
110
+ /** Override the default region aria-label. */
111
+ 'aria-label'?: string;
112
+ /** Agent-readiness consumer id, surfaced as `data-component-id`. */
113
+ id?: string;
114
+ }
115
+ export declare const PatientSummaryCard: import("react").ForwardRefExoticComponent<PatientSummaryCardProps & import("react").RefAttributes<HTMLDivElement>>;
116
+ /** Variant unions re-exported for downstream typing. */
117
+ export type PatientSummaryCardSurface = NonNullable<VariantProps<typeof rootVariants>['surface']>;
118
+ export type PatientSummaryCardDensity = NonNullable<VariantProps<typeof rootVariants>['density']>;
119
+ export {};
120
+ //# sourceMappingURL=patient-summary-card.d.ts.map
@@ -0,0 +1,7 @@
1
+ export { PaymentCard } from './payment-card';
2
+ export type { PaymentCardProps, PaymentCardHandle, PaymentCardRelations, PaymentLineItem, PaymentType, PaymentDirection, PaymentCardSurface, } from './payment-card';
3
+ export { paymentCardAgent } from './payment-card.agent';
4
+ export { PaymentRequestCard } from './payment-request-card';
5
+ export type { PaymentRequestCardProps, PaymentRequestCardHandle, PaymentRequestStatus, PaymentRequestCardSurface, } from './payment-request-card';
6
+ export { paymentRequestCardAgent } from './payment-request-card.agent';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { P as t, a as n, p as r, b as s } from "../../_chunks/payment-request-card-B_lyobd0.js";
2
+ export {
3
+ t as PaymentCard,
4
+ n as PaymentRequestCard,
5
+ r as paymentCardAgent,
6
+ s as paymentRequestCardAgent
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { PaymentCardHandle } from './payment-card';
3
+ export declare const paymentCardAgent: AgentAdapter<PaymentCardHandle>;
4
+ //# sourceMappingURL=payment-card.agent.d.ts.map
@@ -0,0 +1,71 @@
1
+ import { type ComponentPropsWithoutRef } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ /** Payment type → translation-key segment + Badge variant. */
4
+ export type PaymentType = 'full' | 'partial' | 'credit' | 'proforma' | 'other';
5
+ export type PaymentDirection = 'incoming' | 'outgoing';
6
+ declare const rootVariants: (props?: ({
7
+ surface?: "flat" | "elevated" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ export interface PaymentLineItem {
10
+ /** Human-readable description of the line. */
11
+ description: string;
12
+ /** Amount in the smallest currency unit (cents / centesimi). */
13
+ amountCents: number;
14
+ /** Optional VAT percentage (e.g. `22` for 22%). */
15
+ vatPercentage?: number;
16
+ }
17
+ export interface PaymentCardRelations {
18
+ /** Care-plan / treatment-plan number this payment belongs to. */
19
+ carePlanNumber?: string;
20
+ /** Patient display name — rendered, but never exposed to the agent. */
21
+ patientName?: string;
22
+ /** Operator display name — rendered, but never exposed to the agent. */
23
+ operatorName?: string;
24
+ }
25
+ export interface PaymentCardHandle {
26
+ /** Stable payment number currently rendered. Identifier only — no PHI. */
27
+ getNumber: () => string;
28
+ /** Resolved headline financial state. Structural state only. */
29
+ getState: () => TransactionStateValue;
30
+ }
31
+ /** The TransactionChip state this card resolves the payment to. */
32
+ type TransactionStateValue = 'debt' | 'to-invoice' | 'settled';
33
+ export interface PaymentCardProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'children'> {
34
+ /** Agent-readiness consumer id, surfaced as `data-component-id`. */
35
+ id?: string;
36
+ /** Human-readable payment number / reference. Rendered as the heading. */
37
+ number: string;
38
+ /** ISO-8601 date string for the payment date. */
39
+ dateIso?: string;
40
+ /** Payment type — drives the type Badge + label. */
41
+ type: PaymentType;
42
+ /** Money flow direction — incoming (patient → practice) or outgoing. */
43
+ direction: PaymentDirection;
44
+ /** Gross total in the smallest currency unit (cents). */
45
+ grossCents?: number;
46
+ /** Amount already paid, in cents. */
47
+ paidCents?: number;
48
+ /** Amount still outstanding, in cents. */
49
+ unpaidCents?: number;
50
+ /** Marks the record as written-off — renders a neutral chip. */
51
+ writtenOff?: boolean;
52
+ /** Linked entities (care plan / patient / operator). */
53
+ relations?: PaymentCardRelations;
54
+ /** Itemised breakdown rendered as a DescriptionList. */
55
+ lineItems?: PaymentLineItem[];
56
+ /** BCP-47 locale override. Falls back to the active i18next language. */
57
+ locale?: string;
58
+ /** ISO-4217 currency code. Defaults to `EUR`. */
59
+ currency?: string;
60
+ /**
61
+ * `'elevated'` (default) wraps in `<Card variant="elevated">`. `'flat'`
62
+ * drops the Card — use inside an existing card / sheet.
63
+ */
64
+ surface?: 'flat' | 'elevated';
65
+ /** Override the default region aria-label. */
66
+ 'aria-label'?: string;
67
+ }
68
+ export declare const PaymentCard: import("react").ForwardRefExoticComponent<PaymentCardProps & import("react").RefAttributes<HTMLDivElement>>;
69
+ export type PaymentCardSurface = NonNullable<VariantProps<typeof rootVariants>['surface']>;
70
+ export {};
71
+ //# sourceMappingURL=payment-card.d.ts.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { PaymentRequestCardHandle } from './payment-request-card';
3
+ export declare const paymentRequestCardAgent: AgentAdapter<PaymentRequestCardHandle>;
4
+ //# sourceMappingURL=payment-request-card.agent.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { type ComponentPropsWithoutRef } from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ export type PaymentRequestStatus = 'new' | 'authorization_requested' | 'authorized' | 'paid' | 'failed' | 'cancelled';
4
+ declare const rootVariants: (props?: ({
5
+ surface?: "flat" | "elevated" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface PaymentRequestCardHandle {
8
+ /** Current lifecycle status. Structural state only — no PHI. */
9
+ getStatus: () => PaymentRequestStatus;
10
+ }
11
+ export interface PaymentRequestCardProps extends Omit<ComponentPropsWithoutRef<'div'>, 'aria-label' | 'children' | 'title'> {
12
+ /** Agent-readiness consumer id, surfaced as `data-component-id`. */
13
+ id?: string;
14
+ /** Heading for the request. Falls back to a localised default. */
15
+ title?: string;
16
+ /** Optional supporting copy rendered beneath the heading. */
17
+ description?: string;
18
+ /** Requested amount in the smallest currency unit (cents). */
19
+ amountCents: number;
20
+ /** ISO-8601 due date. */
21
+ dueDateIso?: string;
22
+ /** Lifecycle status — drives the status Badge and pay-link gating. */
23
+ status: PaymentRequestStatus;
24
+ /** Hosted payment URL. Only rendered when it passes the URL allow-list. */
25
+ paymentUrl?: string;
26
+ /** Care-plan / treatment-plan number this request relates to. */
27
+ carePlanNumber?: string;
28
+ /** BCP-47 locale override. Falls back to the active i18next language. */
29
+ locale?: string;
30
+ /** ISO-4217 currency code. Defaults to `EUR`. */
31
+ currency?: string;
32
+ /**
33
+ * `'elevated'` (default) wraps in `<Card variant="elevated">`. `'flat'`
34
+ * drops the Card — use inside an existing card / sheet.
35
+ */
36
+ surface?: 'flat' | 'elevated';
37
+ /** Override the default region aria-label. */
38
+ 'aria-label'?: string;
39
+ }
40
+ export declare const PaymentRequestCard: import("react").ForwardRefExoticComponent<PaymentRequestCardProps & import("react").RefAttributes<HTMLDivElement>>;
41
+ export type PaymentRequestCardSurface = NonNullable<VariantProps<typeof rootVariants>['surface']>;
42
+ export {};
43
+ //# sourceMappingURL=payment-request-card.d.ts.map
@@ -1,4 +1,4 @@
1
- import { P as p, p as a } from "../../_chunks/pdf-viewer-CWEXTlwq.js";
1
+ import { P as p, p as a } from "../../_chunks/pdf-viewer-G8SU6Azw.js";
2
2
  export {
3
3
  p as PDFViewer,
4
4
  a as pdfViewerAgent
@@ -0,0 +1,4 @@
1
+ export { PeriodontalChartCard, PERIODONTAL_SITE_ORDER, } from './periodontal-chart-card';
2
+ export type { PeriodontalChartCardProps, PeriodontalChartCardHandle, PeriodontalChartCardSurface, PeriodontalSite, PeriodontalSiteId, PeriodontalChartSummary, PeriodontalMobility, } from './periodontal-chart-card';
3
+ export { periodontalChartCardAgent } from './periodontal-chart-card.agent';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { P as o, a as t, p as d } from "../../_chunks/periodontal-chart-card-BYs9hax1.js";
2
+ export {
3
+ o as PERIODONTAL_SITE_ORDER,
4
+ t as PeriodontalChartCard,
5
+ d as periodontalChartCardAgent
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import type { AgentAdapter } from '../../agent/types';
2
+ import type { PeriodontalChartCardHandle } from './periodontal-chart-card';
3
+ export declare const periodontalChartCardAgent: AgentAdapter<PeriodontalChartCardHandle>;
4
+ //# sourceMappingURL=periodontal-chart-card.agent.d.ts.map