@alfadocs/ui-kit 0.47.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 (186) 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-CVIPrdc9.js → alia-sidebar-DlvyXgVC.js} +3 -2
  6. package/dist/_chunks/anamnesis-card-CmkBVAln.js +156 -0
  7. package/dist/_chunks/appointment-tray-BwDHhWWC.js +419 -0
  8. package/dist/_chunks/{bmi-calculator-CQqXTVNL.js → bmi-calculator-DdylQzT6.js} +2 -2
  9. package/dist/_chunks/{booking-DlDVuWMd.js → booking-WV2GSru5.js} +291 -303
  10. package/dist/_chunks/{calculator-dialog-D-nfvteH.js → calculator-dialog-CFk4I91b.js} +2 -2
  11. package/dist/_chunks/calendar-days-C4BmpCZg.js +23 -0
  12. package/dist/_chunks/{calendar-YHFknAGv.js → calendar-oYWOCrnf.js} +195 -210
  13. package/dist/_chunks/care-plan-card-QmNpGggC.js +252 -0
  14. package/dist/_chunks/care-plan-entry-card-Cnra7vUc.js +318 -0
  15. package/dist/_chunks/{chat-message-B5JpFj0F.js → chat-message-Dm8U2RY1.js} +36 -35
  16. package/dist/_chunks/clinical-note-card-BYo437dU.js +333 -0
  17. package/dist/_chunks/{contact-profile-card-DHyuAPXM.js → contact-profile-card-DvvVfAA2.js} +102 -115
  18. package/dist/_chunks/{cycle-calculator-KxA8dqDf.js → cycle-calculator-DYvGm_m1.js} +2 -2
  19. package/dist/_chunks/{dialog-BTpZV6It.js → dialog-DMGnSelc.js} +55 -55
  20. package/dist/_chunks/{due-date-calculator-mFxpHLml.js → due-date-calculator-BXd3ANj7.js} +2 -2
  21. package/dist/_chunks/entity-card-COhmqHly.js +69 -0
  22. package/dist/_chunks/{gestational-age-calculator-gWI_uRA1.js → gestational-age-calculator-Crj6FgZw.js} +2 -2
  23. package/dist/_chunks/{insert-result-C5ABnzDl.js → insert-result-DNdi_JYW.js} +140 -168
  24. package/dist/_chunks/is-safe-url-DkETxeHz.js +7 -0
  25. package/dist/_chunks/languages-DsVf_WzT.js +19 -0
  26. package/dist/_chunks/layers-pzGcbLPj.js +34 -0
  27. package/dist/_chunks/{message-card-DSPw5ghw.js → message-card-Dvl1TgaN.js} +15 -19
  28. package/dist/_chunks/{message-tray-hSQff9u4.js → message-tray-Dl6GQaaV.js} +2 -2
  29. package/dist/_chunks/operator-hero-CM8949Hd.js +198 -0
  30. package/dist/_chunks/patient-summary-card-BnTqxcTr.js +443 -0
  31. package/dist/_chunks/payment-request-card-B_lyobd0.js +478 -0
  32. package/dist/_chunks/{pdf-viewer-CWEXTlwq.js → pdf-viewer-G8SU6Azw.js} +3 -3
  33. package/dist/_chunks/periodontal-chart-card-BYs9hax1.js +455 -0
  34. package/dist/_chunks/phone-Bi5yUm4I.js +20 -0
  35. package/dist/_chunks/{practice-results-DDi-kvaD.js → practice-results-BFL_mcDW.js} +3 -2
  36. package/dist/_chunks/{pregnancy-weight-gain-BtEHaSqy.js → pregnancy-weight-gain-C7dK89jE.js} +2 -2
  37. package/dist/_chunks/scan-line-lGioFwLC.js +18 -0
  38. package/dist/_chunks/shield-check-BjCGH_Sr.js +21 -0
  39. package/dist/_chunks/{sign-document-BCyLpFHJ.js → sign-document-DPI2pY9V.js} +2 -2
  40. package/dist/_chunks/{transaction-chip-B8ujzowA.js → transaction-chip-BZCa6XDn.js} +8 -6
  41. package/dist/_chunks/{unit-converter-u3CwNDpP.js → unit-converter-jWp3Z85y.js} +2 -2
  42. package/dist/_chunks/user-cog-BS_qc8nA.js +24 -0
  43. package/dist/_chunks/video-BAeICxCT.js +21 -0
  44. package/dist/_chunks/{workflow-map-Djn1QMJc.js → workflow-map-ZXw-zsZ8.js} +138 -156
  45. package/dist/agent-catalog.json +324 -1
  46. package/dist/components/_shared/entity-card/entity-card.d.ts +40 -0
  47. package/dist/components/_shared/entity-card/index.d.ts +3 -0
  48. package/dist/components/_shared/index.d.ts +2 -0
  49. package/dist/components/_shared/is-safe-url.d.ts +13 -0
  50. package/dist/components/agenda-card/agenda-card.d.ts +1 -2
  51. package/dist/components/agenda-card/index.d.ts +2 -1
  52. package/dist/components/agenda-card/index.js +6 -5
  53. package/dist/components/agenda-tray/index.js +1 -1
  54. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts +4 -0
  55. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts +45 -0
  56. package/dist/components/ai-consent-banner/index.d.ts +4 -0
  57. package/dist/components/ai-consent-banner/index.js +6 -0
  58. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +4 -0
  59. package/dist/components/ai-tools-rail/ai-tools-rail.d.ts +60 -0
  60. package/dist/components/ai-tools-rail/index.d.ts +4 -0
  61. package/dist/components/ai-tools-rail/index.js +6 -0
  62. package/dist/components/anamnesis-card/anamnesis-card.d.ts +68 -0
  63. package/dist/components/anamnesis-card/index.d.ts +3 -0
  64. package/dist/components/anamnesis-card/index.js +5 -0
  65. package/dist/components/appointment-card/appointment-card.agent.d.ts +3 -0
  66. package/dist/components/appointment-card/appointment-card.d.ts +93 -0
  67. package/dist/components/appointment-card/appointment-tray.agent.d.ts +4 -0
  68. package/dist/components/appointment-card/appointment-tray.d.ts +48 -0
  69. package/dist/components/appointment-card/index.d.ts +8 -0
  70. package/dist/components/appointment-card/index.js +10 -0
  71. package/dist/components/badge/badge.d.ts +1 -1
  72. package/dist/components/bmi-calculator/index.js +1 -1
  73. package/dist/components/booking/index.js +1 -1
  74. package/dist/components/calculator-dialog/index.js +1 -1
  75. package/dist/components/calendar/index.js +1 -1
  76. package/dist/components/card/card.d.ts +1 -1
  77. package/dist/components/care-plan-card/care-plan-card.agent.d.ts +4 -0
  78. package/dist/components/care-plan-card/care-plan-card.d.ts +102 -0
  79. package/dist/components/care-plan-card/index.d.ts +4 -0
  80. package/dist/components/care-plan-card/index.js +6 -0
  81. package/dist/components/care-plan-entry-card/care-plan-entry-card.agent.d.ts +4 -0
  82. package/dist/components/care-plan-entry-card/care-plan-entry-card.d.ts +110 -0
  83. package/dist/components/care-plan-entry-card/index.d.ts +4 -0
  84. package/dist/components/care-plan-entry-card/index.js +6 -0
  85. package/dist/components/chat-message/chat-message.d.ts +7 -0
  86. package/dist/components/chat-message/index.js +1 -1
  87. package/dist/components/clinical-note-card/clinical-note-card.agent.d.ts +4 -0
  88. package/dist/components/clinical-note-card/clinical-note-card.d.ts +98 -0
  89. package/dist/components/clinical-note-card/index.d.ts +4 -0
  90. package/dist/components/clinical-note-card/index.js +6 -0
  91. package/dist/components/contact-profile-card/index.js +1 -1
  92. package/dist/components/cycle-calculator/index.js +1 -1
  93. package/dist/components/dialog/dialog.d.ts +7 -0
  94. package/dist/components/dialog/index.js +1 -1
  95. package/dist/components/due-date-calculator/index.js +1 -1
  96. package/dist/components/gestational-age-calculator/index.js +1 -1
  97. package/dist/components/index.d.ts +10 -0
  98. package/dist/components/message-card/index.js +5 -4
  99. package/dist/components/message-card/message-card.d.ts +1 -2
  100. package/dist/components/message-tray/index.js +1 -1
  101. package/dist/components/operator-hero/index.js +1 -1
  102. package/dist/components/operator-hero/operator-hero.d.ts +9 -0
  103. package/dist/components/patient-summary-card/index.d.ts +4 -0
  104. package/dist/components/patient-summary-card/index.js +6 -0
  105. package/dist/components/patient-summary-card/patient-summary-card.agent.d.ts +4 -0
  106. package/dist/components/patient-summary-card/patient-summary-card.d.ts +120 -0
  107. package/dist/components/payment-card/index.d.ts +7 -0
  108. package/dist/components/payment-card/index.js +8 -0
  109. package/dist/components/payment-card/payment-card.agent.d.ts +4 -0
  110. package/dist/components/payment-card/payment-card.d.ts +71 -0
  111. package/dist/components/payment-card/payment-request-card.agent.d.ts +4 -0
  112. package/dist/components/payment-card/payment-request-card.d.ts +43 -0
  113. package/dist/components/pdf-viewer/index.js +1 -1
  114. package/dist/components/periodontal-chart-card/index.d.ts +4 -0
  115. package/dist/components/periodontal-chart-card/index.js +7 -0
  116. package/dist/components/periodontal-chart-card/periodontal-chart-card.agent.d.ts +4 -0
  117. package/dist/components/periodontal-chart-card/periodontal-chart-card.d.ts +74 -0
  118. package/dist/components/practice-results/index.js +1 -1
  119. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  120. package/dist/components/public-header/public-header.d.ts +1 -1
  121. package/dist/components/sign-document/index.js +1 -1
  122. package/dist/components/stat/stat.d.ts +1 -1
  123. package/dist/components/transaction-chip/index.js +1 -1
  124. package/dist/components/unit-converter/index.js +1 -1
  125. package/dist/components/workflow/index.js +1 -1
  126. package/dist/i18n/locales/ar.d.ts +351 -0
  127. package/dist/i18n/locales/ar.js +351 -0
  128. package/dist/i18n/locales/de.d.ts +351 -0
  129. package/dist/i18n/locales/de.js +351 -0
  130. package/dist/i18n/locales/el.d.ts +351 -0
  131. package/dist/i18n/locales/el.js +351 -0
  132. package/dist/i18n/locales/en.d.ts +351 -0
  133. package/dist/i18n/locales/en.js +351 -0
  134. package/dist/i18n/locales/es.d.ts +351 -0
  135. package/dist/i18n/locales/es.js +351 -0
  136. package/dist/i18n/locales/fr.d.ts +351 -0
  137. package/dist/i18n/locales/fr.js +351 -0
  138. package/dist/i18n/locales/hi.d.ts +351 -0
  139. package/dist/i18n/locales/hi.js +351 -0
  140. package/dist/i18n/locales/it.d.ts +351 -0
  141. package/dist/i18n/locales/it.js +351 -0
  142. package/dist/i18n/locales/ja.d.ts +351 -0
  143. package/dist/i18n/locales/ja.js +351 -0
  144. package/dist/i18n/locales/nl.d.ts +351 -0
  145. package/dist/i18n/locales/nl.js +351 -0
  146. package/dist/i18n/locales/pl.d.ts +351 -0
  147. package/dist/i18n/locales/pl.js +351 -0
  148. package/dist/i18n/locales/pt.d.ts +351 -0
  149. package/dist/i18n/locales/pt.js +351 -0
  150. package/dist/i18n/locales/ro.d.ts +351 -0
  151. package/dist/i18n/locales/ro.js +351 -0
  152. package/dist/i18n/locales/ru.d.ts +351 -0
  153. package/dist/i18n/locales/ru.js +351 -0
  154. package/dist/i18n/locales/sq.d.ts +351 -0
  155. package/dist/i18n/locales/sq.js +351 -0
  156. package/dist/i18n/locales/sv.d.ts +351 -0
  157. package/dist/i18n/locales/sv.js +351 -0
  158. package/dist/i18n/locales/tr.d.ts +351 -0
  159. package/dist/i18n/locales/tr.js +351 -0
  160. package/dist/i18n/locales/zh.d.ts +351 -0
  161. package/dist/i18n/locales/zh.js +351 -0
  162. package/dist/index.js +527 -491
  163. package/dist/locales/ar.json +351 -0
  164. package/dist/locales/de.json +351 -0
  165. package/dist/locales/el.json +351 -0
  166. package/dist/locales/en.json +351 -0
  167. package/dist/locales/es.json +351 -0
  168. package/dist/locales/fr.json +351 -0
  169. package/dist/locales/hi.json +351 -0
  170. package/dist/locales/it.json +351 -0
  171. package/dist/locales/ja.json +351 -0
  172. package/dist/locales/nl.json +351 -0
  173. package/dist/locales/pl.json +351 -0
  174. package/dist/locales/pt.json +351 -0
  175. package/dist/locales/ro.json +351 -0
  176. package/dist/locales/ru.json +351 -0
  177. package/dist/locales/sq.json +351 -0
  178. package/dist/locales/sv.json +351 -0
  179. package/dist/locales/tr.json +351 -0
  180. package/dist/locales/zh.json +351 -0
  181. package/dist/patterns/alia-assistant/alia-types.d.ts +15 -0
  182. package/dist/patterns/alia-assistant/index.js +1 -1
  183. package/dist/tokens.css +1 -1
  184. package/package.json +42 -1
  185. package/dist/_chunks/operator-hero-7LiiP7zi.js +0 -171
  186. package/dist/_chunks/shield-check-C73ma9Cs.js +0 -36
@@ -1,17 +1,17 @@
1
1
  import { jsxs as d, jsx as a } from "react/jsx-runtime";
2
- import { forwardRef as j, useMemo as T, Fragment as l } from "react";
2
+ import { forwardRef as T, useMemo as z, Fragment as l } from "react";
3
3
  import { c as h } from "./index-D2ZczOXr.js";
4
- import { useTranslation as z } from "react-i18next";
4
+ import { useTranslation as B } from "react-i18next";
5
5
  import { B as F } from "./button-DD_0Xdmr.js";
6
6
  import { A as I } from "./avatar-BNQNhoyL.js";
7
7
  import { T as A } from "./timestamp-BV2lC-wV.js";
8
- import { s as B, C as M } from "./code-block-HoddNOKJ.js";
9
- import { s as S } from "./safe-image-src-DstKgCo7.js";
10
- import { R as V } from "./rotate-ccw-BWANpitO.js";
11
- import { C as D } from "./clock-21AGPWJ5.js";
12
- import { C as E } from "./check-DPdL_Sm7.js";
13
- import { C as L } from "./circle-alert-ChA9opNA.js";
14
- const R = h(
8
+ import { s as M, C as S } from "./code-block-HoddNOKJ.js";
9
+ import { s as V } from "./safe-image-src-DstKgCo7.js";
10
+ import { R as D } from "./rotate-ccw-BWANpitO.js";
11
+ import { C as E } from "./clock-21AGPWJ5.js";
12
+ import { C as L } from "./check-DPdL_Sm7.js";
13
+ import { C as R } from "./circle-alert-ChA9opNA.js";
14
+ const _ = h(
15
15
  "ds:flex ds:w-full ds:items-start ds:gap-[var(--spacing-sm)]",
16
16
  {
17
17
  variants: {
@@ -23,7 +23,7 @@ const R = h(
23
23
  },
24
24
  defaultVariants: { role: "assistant" }
25
25
  }
26
- ), _ = h(
26
+ ), $ = h(
27
27
  [
28
28
  // Cap at 42rem on wide surfaces; on narrow docks (Alia sidebar ≈22rem)
29
29
  // leave room for the avatar column (size-8 = 32px = --spacing-xl) +
@@ -45,8 +45,8 @@ const R = h(
45
45
  },
46
46
  defaultVariants: { role: "assistant" }
47
47
  }
48
- ), $ = /^(https?:|mailto:)/i;
49
- function k(n) {
48
+ ), k = /^(https?:|mailto:)/i;
49
+ function H(n) {
50
50
  const e = [];
51
51
  let s = n;
52
52
  const t = /\*\*([^*]+)\*\*|`([^`]+)`|\[([^\]]+)\]\(([^)]+)\)|\n/;
@@ -60,8 +60,8 @@ function k(n) {
60
60
  }
61
61
  return e;
62
62
  }
63
- function H(n) {
64
- return k(n).map((e, s) => e.type === "bold" ? /* @__PURE__ */ a("strong", { children: e.value }, s) : e.type === "code" ? /* @__PURE__ */ a(
63
+ function q(n) {
64
+ return H(n).map((e, s) => e.type === "bold" ? /* @__PURE__ */ a("strong", { children: e.value }, s) : e.type === "code" ? /* @__PURE__ */ a(
65
65
  "code",
66
66
  {
67
67
  dir: "ltr",
@@ -69,7 +69,7 @@ function H(n) {
69
69
  children: e.value
70
70
  },
71
71
  s
72
- ) : e.type === "br" ? /* @__PURE__ */ a("br", {}, s) : e.type === "link" ? $.test(e.href) ? /* @__PURE__ */ a(
72
+ ) : e.type === "br" ? /* @__PURE__ */ a("br", {}, s) : e.type === "link" ? k.test(e.href) ? /* @__PURE__ */ a(
73
73
  "a",
74
74
  {
75
75
  href: e.href,
@@ -81,10 +81,10 @@ function H(n) {
81
81
  s
82
82
  ) : /* @__PURE__ */ a(l, { children: e.label }, s) : /* @__PURE__ */ a(l, { children: e.value }, s));
83
83
  }
84
- function q(n) {
85
- return B(n).map((e, s) => e.type === "code" ? /* @__PURE__ */ a(M, { code: e.value, language: e.lang }, s) : /* @__PURE__ */ a(l, { children: H(e.value) }, s));
84
+ function G(n) {
85
+ return M(n).map((e, s) => e.type === "code" ? /* @__PURE__ */ a(S, { code: e.value, language: e.lang }, s) : /* @__PURE__ */ a(l, { children: q(e.value) }, s));
86
86
  }
87
- const G = j(
87
+ const J = T(
88
88
  ({
89
89
  role: n,
90
90
  content: e,
@@ -94,18 +94,19 @@ const G = j(
94
94
  renderMarkdown: x = !1,
95
95
  onRetry: m,
96
96
  actions: c,
97
- className: b,
98
- ...y
99
- }, N) => {
100
- const { t: i, i18n: u } = z(), o = T(() => {
97
+ body: b,
98
+ className: y,
99
+ ...N
100
+ }, w) => {
101
+ const { t: i, i18n: u } = B(), o = z(() => {
101
102
  if (!t) return null;
102
103
  const v = t instanceof Date ? t : new Date(t);
103
104
  return Number.isNaN(v.getTime()) ? null : new Intl.DateTimeFormat(u.language, {
104
105
  hour: "2-digit",
105
106
  minute: "2-digit"
106
107
  }).format(v);
107
- }, [t, u.language]), f = i(`chat.message.role.${n}`), w = o ? i("chat.message.label", { role: f, time: o }) : i("chat.message.labelNoTime", { role: f }), C = x ? q(e) : e, p = !r || r === "edited" ? null : r === "sending" ? /* @__PURE__ */ a(D, { "aria-hidden": "true", className: "ds:size-3.5" }) : r === "sent" ? /* @__PURE__ */ a(E, { "aria-hidden": "true", className: "ds:size-3.5" }) : /* @__PURE__ */ a(
108
- L,
108
+ }, [t, u.language]), f = i(`chat.message.role.${n}`), C = o ? i("chat.message.label", { role: f, time: o }) : i("chat.message.labelNoTime", { role: f }), j = b ?? (x ? G(e) : e), p = !r || r === "edited" ? null : r === "sending" ? /* @__PURE__ */ a(E, { "aria-hidden": "true", className: "ds:size-3.5" }) : r === "sent" ? /* @__PURE__ */ a(L, { "aria-hidden": "true", className: "ds:size-3.5" }) : /* @__PURE__ */ a(
109
+ R,
109
110
  {
110
111
  "aria-hidden": "true",
111
112
  className: "ds:size-3.5 ds:text-[color:var(--destructive)]"
@@ -114,18 +115,18 @@ const G = j(
114
115
  return /* @__PURE__ */ d(
115
116
  "article",
116
117
  {
117
- ref: N,
118
- "aria-label": w,
118
+ ref: w,
119
+ "aria-label": C,
119
120
  "data-component": "chat-message",
120
121
  className: [
121
- R({ role: n, className: b }),
122
+ _({ role: n, className: y }),
122
123
  // Entrance: fade + slide up on mount. `--animation-duration` is 0ms
123
124
  // under `prefers-reduced-motion` and `.theme-accessible`, so both
124
125
  // collapse the animation to an instant state change automatically.
125
126
  "ds:motion-safe:animate-in ds:motion-safe:fade-in-0 ds:motion-safe:slide-in-from-bottom-2",
126
127
  "ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]"
127
128
  ].join(" "),
128
- ...y,
129
+ ...N,
129
130
  children: [
130
131
  n !== "system" && s ? s.slot ? (
131
132
  // Consumer-supplied avatar node (e.g. Alia's Sparkles tile).
@@ -138,7 +139,7 @@ const G = j(
138
139
  I,
139
140
  {
140
141
  name: s.name,
141
- src: S(s.src),
142
+ src: V(s.src),
142
143
  size: "sm"
143
144
  }
144
145
  )
@@ -160,14 +161,14 @@ const G = j(
160
161
  {
161
162
  dir: "auto",
162
163
  className: [
163
- _({ role: n }),
164
+ $({ role: n }),
164
165
  // `break-words` (from bubbleVariants) handles soft hyphens;
165
166
  // `overflow-wrap: anywhere` is the last-resort break for
166
167
  // URLs, hashes, or CJK runs that would otherwise push the
167
168
  // bubble wider than its parent in narrow docks like Alia.
168
169
  "ds:[overflow-wrap:anywhere]"
169
170
  ].join(" "),
170
- children: C
171
+ children: j
171
172
  }
172
173
  ),
173
174
  (o || g) && n !== "system" ? /* @__PURE__ */ d(
@@ -213,7 +214,7 @@ const G = j(
213
214
  intent: "ghost",
214
215
  size: "sm",
215
216
  onClick: m,
216
- startIcon: /* @__PURE__ */ a(V, {}),
217
+ startIcon: /* @__PURE__ */ a(D, {}),
217
218
  children: i("chat.message.retry")
218
219
  }
219
220
  ) : null
@@ -229,8 +230,8 @@ const G = j(
229
230
  );
230
231
  }
231
232
  );
232
- G.displayName = "ChatMessage";
233
+ J.displayName = "ChatMessage";
233
234
  export {
234
- G as C
235
+ J as C
235
236
  };
236
- //# sourceMappingURL=chat-message-B5JpFj0F.js.map
237
+ //# sourceMappingURL=chat-message-Dm8U2RY1.js.map
@@ -0,0 +1,333 @@
1
+ import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
+ import { forwardRef as K, useId as H, useMemo as I } from "react";
3
+ import { c as _ } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as S } from "react-i18next";
5
+ import { A as V } from "./avatar-BNQNhoyL.js";
6
+ import { B as d } from "./badge-zsf5i5bH.js";
7
+ import { C as k } from "./card-DPmk26CL.js";
8
+ import { L as E } from "./link-DrD_cRUg.js";
9
+ import { T as C } from "./timestamp-BV2lC-wV.js";
10
+ import { SafeHtml as F } from "../safe-html/index.js";
11
+ import { i as M } from "./is-safe-url-DkETxeHz.js";
12
+ import { u as U } from "./registry-nPAVE19X.js";
13
+ import { S as W } from "./scan-line-lGioFwLC.js";
14
+ import { L as q } from "./layers-pzGcbLPj.js";
15
+ import { F as h } from "./file-text-DSNuv2B8.js";
16
+ import { U as B } from "./user-CPxpqFjJ.js";
17
+ import { c as w } from "./createLucideIcon-CrFbzy84.js";
18
+ /**
19
+ * @license lucide-react v1.8.0 - ISC
20
+ *
21
+ * This source code is licensed under the ISC license.
22
+ * See the LICENSE file in the root directory of this source tree.
23
+ */
24
+ const R = [
25
+ [
26
+ "path",
27
+ {
28
+ d: "M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",
29
+ key: "1jaruq"
30
+ }
31
+ ]
32
+ ], O = w("flag", R);
33
+ /**
34
+ * @license lucide-react v1.8.0 - ISC
35
+ *
36
+ * This source code is licensed under the ISC license.
37
+ * See the LICENSE file in the root directory of this source tree.
38
+ */
39
+ const D = [
40
+ ["path", { d: "M12 17v5", key: "bb1du9" }],
41
+ [
42
+ "path",
43
+ {
44
+ d: "M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",
45
+ key: "1nkz8b"
46
+ }
47
+ ]
48
+ ], G = w("pin", D), J = {
49
+ id: "clinical-note-card",
50
+ capabilities: [],
51
+ state: {
52
+ noteId: {
53
+ type: "string | undefined",
54
+ descriptionKey: "ui.agent.clinicalNoteCard.state.noteId",
55
+ description: "Stable identifier of the rendered note, when supplied.",
56
+ read: (n) => n.getNoteId()
57
+ },
58
+ pinned: {
59
+ type: "boolean",
60
+ descriptionKey: "ui.agent.clinicalNoteCard.state.pinned",
61
+ description: "Whether the note is pinned to the top of the timeline.",
62
+ read: (n) => n.isPinned()
63
+ },
64
+ flagged: {
65
+ type: "boolean",
66
+ descriptionKey: "ui.agent.clinicalNoteCard.state.flagged",
67
+ description: "Whether the note is flagged for follow-up.",
68
+ read: (n) => n.isFlagged()
69
+ },
70
+ attachmentKind: {
71
+ type: "'patient' | 'carePlan' | 'carePlanEntry' | 'phase' | 'xray' | undefined",
72
+ descriptionKey: "ui.agent.clinicalNoteCard.state.attachmentKind",
73
+ description: "Structural kind the note is attached to. Never the attachment identity or content.",
74
+ read: (n) => n.getAttachmentKind()
75
+ }
76
+ },
77
+ actions: {},
78
+ domHooks: {
79
+ root: {
80
+ attr: "data-component",
81
+ value: "clinical-note-card",
82
+ description: "Marks the ClinicalNoteCard root. Also emits data-pinned / data-flagged / data-attached-to structural hooks."
83
+ },
84
+ instanceId: {
85
+ attr: "data-component-id",
86
+ sourceProp: "id",
87
+ description: "Sourced from the id prop — addresses a specific note."
88
+ }
89
+ }
90
+ }, Q = _("ds:w-full ds:text-[color:var(--foreground)]", {
91
+ variants: {
92
+ surface: { flat: "", elevated: "" }
93
+ },
94
+ defaultVariants: { surface: "elevated" }
95
+ }), X = _(
96
+ [
97
+ "type-body-sm ds:text-[color:var(--foreground)]",
98
+ "ds:break-words",
99
+ "[&_a]:ds:underline [&_a]:ds:underline-offset-2",
100
+ "[&_code]:ds:rounded-[var(--radius-sm)] [&_code]:ds:bg-muted/30 [&_code]:ds:ps-[var(--spacing-xs)] [&_code]:ds:pe-[var(--spacing-xs)] [&_code]:ds:font-[family-name:var(--font-mono)]",
101
+ "[&_p]:ds:m-0 [&_p+p]:ds:mt-[var(--spacing-sm)]",
102
+ "[&_ul]:ds:m-0 [&_ul]:ds:ps-[var(--spacing-md)] [&_ol]:ds:m-0 [&_ol]:ds:ps-[var(--spacing-md)]"
103
+ ].join(" "),
104
+ {
105
+ variants: {
106
+ truncate: {
107
+ true: "ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:4]",
108
+ false: ""
109
+ }
110
+ },
111
+ defaultVariants: { truncate: !1 }
112
+ }
113
+ );
114
+ function v(n) {
115
+ return n.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
116
+ }
117
+ function b(n) {
118
+ let r = n;
119
+ return r = r.replace(/`([^`]+)`/g, "<code>$1</code>"), r = r.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>"), r = r.replace(/\*([^*]+)\*/g, "<em>$1</em>"), r = r.replace(
120
+ /\[([^\]]+)\]\(([^)\s]+)\)/g,
121
+ '<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'
122
+ ), r;
123
+ }
124
+ function Y(n) {
125
+ return n.split(/\n{2,}/).map((o) => {
126
+ const t = o.split(`
127
+ `), p = t.every((l) => /^\s*[-*]\s+/.test(l)), a = t.every((l) => /^\s*\d+\.\s+/.test(l));
128
+ return p && t.length > 0 ? `<ul>${t.map((i) => i.replace(/^\s*[-*]\s+/, "")).map((i) => `<li>${b(v(i))}</li>`).join("")}</ul>` : a && t.length > 0 ? `<ol>${t.map((i) => i.replace(/^\s*\d+\.\s+/, "")).map((i) => `<li>${b(v(i))}</li>`).join("")}</ol>` : `<p>${b(v(o)).replace(
129
+ /\n/g,
130
+ "<br />"
131
+ )}</p>`;
132
+ }).join("");
133
+ }
134
+ const Z = K(
135
+ ({
136
+ id: n,
137
+ dateIso: r,
138
+ createdAtIso: o,
139
+ author: t,
140
+ clinical: p,
141
+ attachedTo: a,
142
+ content: f,
143
+ pinned: l,
144
+ flagged: i,
145
+ truncate: z = !1,
146
+ surface: N = "elevated",
147
+ "aria-label": A,
148
+ className: P,
149
+ ...$
150
+ }, j) => {
151
+ const { t: s } = S(), g = H(), L = I(() => Y(f), [f]), y = A ?? s("clinicalNoteCard.regionLabel");
152
+ U(
153
+ J,
154
+ {
155
+ getNoteId: () => n,
156
+ isPinned: () => !!l,
157
+ isFlagged: () => !!i,
158
+ getAttachmentKind: () => a == null ? void 0 : a.kind
159
+ },
160
+ n
161
+ );
162
+ let c = null;
163
+ if (a)
164
+ switch (a.kind) {
165
+ case "patient":
166
+ c = /* @__PURE__ */ e(
167
+ d,
168
+ {
169
+ variant: "neutral",
170
+ size: "sm",
171
+ leading: /* @__PURE__ */ e(B, { "aria-hidden": "true" }),
172
+ children: s("clinicalNoteCard.attachment.patient")
173
+ }
174
+ );
175
+ break;
176
+ case "carePlan": {
177
+ const u = s("clinicalNoteCard.attachment.carePlan", {
178
+ number: a.number
179
+ });
180
+ c = a.url && M(a.url) ? /* @__PURE__ */ e(
181
+ E,
182
+ {
183
+ href: a.url,
184
+ intent: "default",
185
+ startIcon: /* @__PURE__ */ e(h, { "aria-hidden": "true" }),
186
+ children: u
187
+ }
188
+ ) : /* @__PURE__ */ e(
189
+ d,
190
+ {
191
+ variant: "info",
192
+ size: "sm",
193
+ leading: /* @__PURE__ */ e(h, { "aria-hidden": "true" }),
194
+ children: u
195
+ }
196
+ );
197
+ break;
198
+ }
199
+ case "carePlanEntry": {
200
+ const u = a.elements && a.elements.length > 0 ? s("clinicalNoteCard.attachment.carePlanEntryWithElements", {
201
+ care: a.careName,
202
+ elements: a.elements.join(", ")
203
+ }) : s("clinicalNoteCard.attachment.carePlanEntry", {
204
+ care: a.careName
205
+ });
206
+ c = /* @__PURE__ */ e(
207
+ d,
208
+ {
209
+ variant: "info",
210
+ size: "sm",
211
+ leading: /* @__PURE__ */ e(h, { "aria-hidden": "true" }),
212
+ children: u
213
+ }
214
+ );
215
+ break;
216
+ }
217
+ case "phase":
218
+ c = /* @__PURE__ */ e(
219
+ d,
220
+ {
221
+ variant: "neutral",
222
+ size: "sm",
223
+ leading: /* @__PURE__ */ e(q, { "aria-hidden": "true" }),
224
+ children: s("clinicalNoteCard.attachment.phase", {
225
+ label: a.label
226
+ })
227
+ }
228
+ );
229
+ break;
230
+ case "xray":
231
+ c = /* @__PURE__ */ e(
232
+ d,
233
+ {
234
+ variant: "neutral",
235
+ size: "sm",
236
+ leading: /* @__PURE__ */ e(W, { "aria-hidden": "true" }),
237
+ children: a.label ? s("clinicalNoteCard.attachment.xrayWithLabel", {
238
+ label: a.label
239
+ }) : s("clinicalNoteCard.attachment.xray")
240
+ }
241
+ );
242
+ break;
243
+ }
244
+ const x = /* @__PURE__ */ m("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
245
+ /* @__PURE__ */ m("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-sm)]", children: [
246
+ t ? /* @__PURE__ */ e(
247
+ V,
248
+ {
249
+ name: t.name,
250
+ src: t.avatarUrl,
251
+ size: "sm",
252
+ className: "ds:shrink-0",
253
+ "aria-hidden": "true",
254
+ role: "presentation",
255
+ "aria-label": void 0
256
+ }
257
+ ) : null,
258
+ /* @__PURE__ */ m("div", { className: "ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]", children: [
259
+ t ? /* @__PURE__ */ e(
260
+ "span",
261
+ {
262
+ id: g,
263
+ className: "type-title-item ds:text-[color:var(--foreground)] ds:truncate",
264
+ children: t.name
265
+ }
266
+ ) : /* @__PURE__ */ e("span", { id: g, className: "ds:sr-only", children: y }),
267
+ /* @__PURE__ */ m("span", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-x-[var(--spacing-xs)] ds:gap-y-[var(--spacing-2xs)]", children: [
268
+ /* @__PURE__ */ e(C, { value: r, shape: "bare", size: "sm" }),
269
+ o && o !== r ? /* @__PURE__ */ m("span", { className: "type-meta ds:text-[color:var(--muted-foreground)]", children: [
270
+ s("clinicalNoteCard.added"),
271
+ " ",
272
+ /* @__PURE__ */ e(C, { value: o, shape: "bare", size: "sm" })
273
+ ] }) : null
274
+ ] })
275
+ ] }),
276
+ l || i || p ? /* @__PURE__ */ m("span", { className: "ds:ms-auto ds:flex ds:shrink-0 ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-2xs)]", children: [
277
+ p ? /* @__PURE__ */ e(d, { variant: "brand", size: "sm", children: s("clinicalNoteCard.clinical") }) : null,
278
+ l ? /* @__PURE__ */ e(
279
+ d,
280
+ {
281
+ variant: "accent",
282
+ size: "sm",
283
+ leading: /* @__PURE__ */ e(G, { "aria-hidden": "true" }),
284
+ children: s("clinicalNoteCard.pinned")
285
+ }
286
+ ) : null,
287
+ i ? /* @__PURE__ */ e(
288
+ d,
289
+ {
290
+ variant: "warning",
291
+ size: "sm",
292
+ leading: /* @__PURE__ */ e(O, { "aria-hidden": "true" }),
293
+ children: s("clinicalNoteCard.flagged")
294
+ }
295
+ ) : null
296
+ ] }) : null
297
+ ] }),
298
+ /* @__PURE__ */ e(
299
+ F,
300
+ {
301
+ html: L,
302
+ profile: "markdown",
303
+ className: X({ truncate: z })
304
+ }
305
+ ),
306
+ c ? /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]", children: c }) : null
307
+ ] });
308
+ return /* @__PURE__ */ e(
309
+ "div",
310
+ {
311
+ ref: j,
312
+ role: "article",
313
+ "aria-label": y,
314
+ "aria-labelledby": g,
315
+ "data-component": "clinical-note-card",
316
+ "data-component-id": n,
317
+ "data-pinned": l ? "true" : void 0,
318
+ "data-flagged": i ? "true" : void 0,
319
+ "data-attached-to": a == null ? void 0 : a.kind,
320
+ id: n,
321
+ className: Q({ surface: N, className: P }),
322
+ ...$,
323
+ children: N === "elevated" ? /* @__PURE__ */ e(k, { variant: "elevated", children: /* @__PURE__ */ e(k.Body, { children: x }) }) : x
324
+ }
325
+ );
326
+ }
327
+ );
328
+ Z.displayName = "ClinicalNoteCard";
329
+ export {
330
+ Z as C,
331
+ J as c
332
+ };
333
+ //# sourceMappingURL=clinical-note-card-BYo437dU.js.map