@alfadocs/ui-kit-debug 1.33.0 → 1.35.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.
- package/dist/_chunks/appointment-card-Bh_CIlc6.js +431 -0
- package/dist/_chunks/appointment-card-Bh_CIlc6.js.map +1 -0
- package/dist/_chunks/appointment-timeline-De-Wqdkw.js +449 -0
- package/dist/_chunks/appointment-timeline-De-Wqdkw.js.map +1 -0
- package/dist/_chunks/{appointment-tray-DCk8gHod.js → appointment-tray-4I9wTAi4.js} +2 -2
- package/dist/_chunks/{appointment-tray-DCk8gHod.js.map → appointment-tray-4I9wTAi4.js.map} +1 -1
- package/dist/_chunks/{calendar-workspace-BX-zDyVR.js → calendar-workspace-UywR5gUl.js} +7 -7
- package/dist/_chunks/{calendar-workspace-BX-zDyVR.js.map → calendar-workspace-UywR5gUl.js.map} +1 -1
- package/dist/_chunks/{care-plan-card-CZW476Kg.js → care-plan-card-DHVhBcvs.js} +3 -3
- package/dist/_chunks/{care-plan-card-CZW476Kg.js.map → care-plan-card-DHVhBcvs.js.map} +1 -1
- package/dist/_chunks/{care-plan-entry-card-BMUYagEw.js → care-plan-entry-card-Dx6IdTcR.js} +2 -2
- package/dist/_chunks/{care-plan-entry-card-BMUYagEw.js.map → care-plan-entry-card-Dx6IdTcR.js.map} +1 -1
- package/dist/_chunks/{care-plan-header-B5CBE0zu.js → care-plan-header-UTX5ZD74.js} +2 -2
- package/dist/_chunks/{care-plan-header-B5CBE0zu.js.map → care-plan-header-UTX5ZD74.js.map} +1 -1
- package/dist/_chunks/{clinical-note-card-D2WTV2CO.js → clinical-note-card-CTRzmqvv.js} +83 -81
- package/dist/_chunks/clinical-note-card-CTRzmqvv.js.map +1 -0
- package/dist/_chunks/{contact-profile-card-BZqi8Hck.js → contact-profile-card-DSI9uumA.js} +17 -16
- package/dist/_chunks/{contact-profile-card-BZqi8Hck.js.map → contact-profile-card-DSI9uumA.js.map} +1 -1
- package/dist/_chunks/{control-room-rail-iO_BCaq1.js → control-room-rail-5MbhjsxN.js} +2 -2
- package/dist/_chunks/{control-room-rail-iO_BCaq1.js.map → control-room-rail-5MbhjsxN.js.map} +1 -1
- package/dist/_chunks/{entity-card-DmrgYSEX.js → entity-card-9_62gY7l.js} +4 -4
- package/dist/_chunks/{entity-card-DmrgYSEX.js.map → entity-card-9_62gY7l.js.map} +1 -1
- package/dist/_chunks/format-price-BkMEbeW3.js +47 -0
- package/dist/_chunks/format-price-BkMEbeW3.js.map +1 -0
- package/dist/_chunks/{format-price-DNqXPa_q.js → languages-CZqBaPwI.js} +8 -38
- package/dist/_chunks/languages-CZqBaPwI.js.map +1 -0
- package/dist/_chunks/money.agent-Dw55UxUA.js +116 -0
- package/dist/_chunks/money.agent-Dw55UxUA.js.map +1 -0
- package/dist/_chunks/notes-panel-BjLt-kiP.js +469 -0
- package/dist/_chunks/notes-panel-BjLt-kiP.js.map +1 -0
- package/dist/_chunks/{operator-hero-D7-iiFQ9.js → operator-hero-aG_qyn6g.js} +2 -2
- package/dist/_chunks/{operator-hero-D7-iiFQ9.js.map → operator-hero-aG_qyn6g.js.map} +1 -1
- package/dist/_chunks/{payment-request-card-lmKLwsDs.js → payment-request-card-DvEsWEkC.js} +2 -2
- package/dist/_chunks/{payment-request-card-lmKLwsDs.js.map → payment-request-card-DvEsWEkC.js.map} +1 -1
- package/dist/_chunks/{practice-results-DjEzPgAK.js → practice-results-kayDEorM.js} +15 -14
- package/dist/_chunks/{practice-results-DjEzPgAK.js.map → practice-results-kayDEorM.js.map} +1 -1
- package/dist/_chunks/{rich-text-editor-CQ7yZdG3.js → rich-text-editor-CCI-Y3DN.js} +3 -5
- package/dist/_chunks/rich-text-editor-CCI-Y3DN.js.map +1 -0
- package/dist/_chunks/{task-card-BUgK6yZT.js → task-card-BalrLkSz.js} +41 -40
- package/dist/_chunks/task-card-BalrLkSz.js.map +1 -0
- package/dist/_chunks/{task-tray-CYG6rj2s.js → task-tray-COo-RlDv.js} +2 -2
- package/dist/_chunks/{task-tray-CYG6rj2s.js.map → task-tray-COo-RlDv.js.map} +1 -1
- package/dist/_chunks/tasks-panel-DLKpSNoE.js +844 -0
- package/dist/_chunks/tasks-panel-DLKpSNoE.js.map +1 -0
- package/dist/_chunks/tool-rail-ONaV-Nzz.js +588 -0
- package/dist/_chunks/tool-rail-ONaV-Nzz.js.map +1 -0
- package/dist/_chunks/use-check-animation--I3cS00X.js +28 -0
- package/dist/_chunks/use-check-animation--I3cS00X.js.map +1 -0
- package/dist/_chunks/use-list-reflow-Cw43nxw5.js +100 -0
- package/dist/_chunks/use-list-reflow-Cw43nxw5.js.map +1 -0
- package/dist/agent-catalog.json +15 -1
- package/dist/components/_shared/format-price.d.ts +15 -0
- package/dist/components/_shared/format-price.d.ts.map +1 -1
- package/dist/components/appointment-card/appointment-card.d.ts +36 -1
- package/dist/components/appointment-card/appointment-card.d.ts.map +1 -1
- package/dist/components/appointment-card/index.js +2 -2
- package/dist/components/appointment-timeline/appointment-timeline.d.ts +6 -0
- package/dist/components/appointment-timeline/appointment-timeline.d.ts.map +1 -1
- package/dist/components/appointment-timeline/index.js +1 -1
- package/dist/components/care-plan-card/index.js +1 -1
- package/dist/components/care-plan-entry-card/index.js +1 -1
- package/dist/components/care-plan-header/index.js +1 -1
- package/dist/components/clinical-note-card/clinical-note-card.d.ts +8 -1
- package/dist/components/clinical-note-card/clinical-note-card.d.ts.map +1 -1
- package/dist/components/clinical-note-card/index.js +1 -1
- package/dist/components/command-palette/command-palette.d.ts +7 -7
- package/dist/components/contact-profile-card/index.js +1 -1
- package/dist/components/control-room-rail/index.js +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/money/index.d.ts +4 -0
- package/dist/components/money/index.d.ts.map +1 -0
- package/dist/components/money/index.js +6 -0
- package/dist/components/money/index.js.map +1 -0
- package/dist/components/money/money.agent.d.ts +3 -0
- package/dist/components/money/money.agent.d.ts.map +1 -0
- package/dist/components/money/money.d.ts +38 -0
- package/dist/components/money/money.d.ts.map +1 -0
- package/dist/components/notes-panel/index.js +1 -1
- package/dist/components/notes-panel/notes-panel.d.ts +16 -1
- package/dist/components/notes-panel/notes-panel.d.ts.map +1 -1
- package/dist/components/operator-hero/index.js +1 -1
- package/dist/components/payment-card/index.js +1 -1
- package/dist/components/practice-results/index.js +1 -1
- package/dist/components/rich-text-editor/help-me-write-overlay.d.ts.map +1 -1
- package/dist/components/rich-text-editor/index.js +1 -1
- package/dist/components/rich-text-editor/rich-text-editor.d.ts +1 -1
- package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
- package/dist/components/task-card/index.js +1 -1
- package/dist/components/task-card/task-card.d.ts +11 -3
- package/dist/components/task-card/task-card.d.ts.map +1 -1
- package/dist/components/task-tray/index.js +1 -1
- package/dist/components/tasks-panel/index.js +1 -1
- package/dist/components/tasks-panel/tasks-panel.d.ts +1 -1
- package/dist/components/tasks-panel/tasks-panel.d.ts.map +1 -1
- package/dist/components/tool-rail/index.js +1 -1
- package/dist/components/tool-rail/tool-rail.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +43 -37
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-check-animation.d.ts +53 -0
- package/dist/hooks/use-check-animation.d.ts.map +1 -0
- package/dist/hooks/use-exit-transition.d.ts +48 -0
- package/dist/hooks/use-exit-transition.d.ts.map +1 -0
- package/dist/hooks/use-list-reflow.d.ts +47 -0
- package/dist/hooks/use-list-reflow.d.ts.map +1 -0
- package/dist/host-compat.css +8 -2
- package/dist/i18n/locales/ar.d.ts +10 -0
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +12 -2
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/de.d.ts +10 -0
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +12 -2
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts +10 -0
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +12 -2
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +10 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +12 -2
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +10 -0
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +12 -2
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +10 -0
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +12 -2
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts +10 -0
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +12 -2
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +13 -3
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +14 -4
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts +10 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +12 -2
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts +10 -0
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +12 -2
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts +10 -0
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +12 -2
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts +10 -0
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +12 -2
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts +10 -0
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +12 -2
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts +10 -0
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +12 -2
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sq.d.ts +10 -0
- package/dist/i18n/locales/sq.d.ts.map +1 -1
- package/dist/i18n/locales/sq.js +12 -2
- package/dist/i18n/locales/sq.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts +10 -0
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +12 -2
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts +10 -0
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +12 -2
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +10 -0
- package/dist/i18n/locales/zh.d.ts.map +1 -1
- package/dist/i18n/locales/zh.js +12 -2
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/index.js +919 -916
- package/dist/index.js.map +1 -1
- package/dist/locales/ar.json +12 -2
- package/dist/locales/de.json +12 -2
- package/dist/locales/el.json +12 -2
- package/dist/locales/en.json +12 -2
- package/dist/locales/es.json +12 -2
- package/dist/locales/fr.json +12 -2
- package/dist/locales/hi.json +12 -2
- package/dist/locales/it.json +14 -4
- package/dist/locales/ja.json +12 -2
- package/dist/locales/nl.json +12 -2
- package/dist/locales/pl.json +12 -2
- package/dist/locales/pt.json +12 -2
- package/dist/locales/ro.json +12 -2
- package/dist/locales/ru.json +12 -2
- package/dist/locales/sq.json +12 -2
- package/dist/locales/sv.json +12 -2
- package/dist/locales/tr.json +12 -2
- package/dist/locales/zh.json +12 -2
- package/dist/patterns/calendar/index.js +1 -1
- package/dist/tokens.css +2 -1
- package/package.json +5 -1
- package/dist/_chunks/appointment-card-D-oj_ugh.js +0 -296
- package/dist/_chunks/appointment-card-D-oj_ugh.js.map +0 -1
- package/dist/_chunks/appointment-timeline-CymGHyIP.js +0 -403
- package/dist/_chunks/appointment-timeline-CymGHyIP.js.map +0 -1
- package/dist/_chunks/clinical-note-card-D2WTV2CO.js.map +0 -1
- package/dist/_chunks/format-price-DNqXPa_q.js.map +0 -1
- package/dist/_chunks/notes-panel-C4G-mhZ9.js +0 -380
- package/dist/_chunks/notes-panel-C4G-mhZ9.js.map +0 -1
- package/dist/_chunks/rich-text-editor-CQ7yZdG3.js.map +0 -1
- package/dist/_chunks/task-card-BUgK6yZT.js.map +0 -1
- package/dist/_chunks/tasks-panel-DQuaVvl5.js +0 -757
- package/dist/_chunks/tasks-panel-DQuaVvl5.js.map +0 -1
- package/dist/_chunks/tool-rail-8Scslq3X.js +0 -524
- package/dist/_chunks/tool-rail-8Scslq3X.js.map +0 -1
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { jsx as e, jsxs as p } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as
|
|
2
|
+
import { forwardRef as te, useId as V, useState as $, useMemo as ne } from "react";
|
|
3
3
|
import { c as P } from "./index-D2ZczOXr.js";
|
|
4
|
-
import { useTranslation as
|
|
5
|
-
import { A as
|
|
4
|
+
import { useTranslation as le } from "react-i18next";
|
|
5
|
+
import { A as de } from "./avatar-CkDeQOSI.js";
|
|
6
6
|
import { B as v } from "./badge-sTusUqZD.js";
|
|
7
|
-
import { C as
|
|
8
|
-
import { L as
|
|
9
|
-
import { T as
|
|
10
|
-
import { SafeHtml as
|
|
11
|
-
import { i as
|
|
12
|
-
import { u as
|
|
13
|
-
import { u as
|
|
14
|
-
import { S as
|
|
15
|
-
import { L as
|
|
16
|
-
import { F as
|
|
17
|
-
import { U as
|
|
18
|
-
import { c as
|
|
7
|
+
import { C as D } from "./card-DPmk26CL.js";
|
|
8
|
+
import { L as oe } from "./link-CPb_pZPr.js";
|
|
9
|
+
import { T as O } from "./timestamp-BV2lC-wV.js";
|
|
10
|
+
import { SafeHtml as ce } from "../safe-html/index.js";
|
|
11
|
+
import { i as me } from "./is-safe-url-DkETxeHz.js";
|
|
12
|
+
import { u as pe } from "./use-clamp-overflow-DQE2kwZ9.js";
|
|
13
|
+
import { u as ue } from "./registry-DvAUVLHh.js";
|
|
14
|
+
import { S as fe } from "./scan-line-CNseIHQ0.js";
|
|
15
|
+
import { L as ve } from "./layers-DcAENmsZ.js";
|
|
16
|
+
import { F as U } from "./file-text-5yv6r2ls.js";
|
|
17
|
+
import { U as ge } from "./user-B12p7bVF.js";
|
|
18
|
+
import { c as q } from "./createLucideIcon-DhHxpK9K.js";
|
|
19
19
|
/**
|
|
20
20
|
* @license lucide-react v1.22.0 - ISC
|
|
21
21
|
*
|
|
22
22
|
* This source code is licensed under the ISC license.
|
|
23
23
|
* See the LICENSE file in the root directory of this source tree.
|
|
24
24
|
*/
|
|
25
|
-
const
|
|
25
|
+
const he = [
|
|
26
26
|
[
|
|
27
27
|
"path",
|
|
28
28
|
{
|
|
@@ -30,14 +30,14 @@ const ge = [
|
|
|
30
30
|
key: "1jaruq"
|
|
31
31
|
}
|
|
32
32
|
]
|
|
33
|
-
],
|
|
33
|
+
], B = q("flag", he);
|
|
34
34
|
/**
|
|
35
35
|
* @license lucide-react v1.22.0 - ISC
|
|
36
36
|
*
|
|
37
37
|
* This source code is licensed under the ISC license.
|
|
38
38
|
* See the LICENSE file in the root directory of this source tree.
|
|
39
39
|
*/
|
|
40
|
-
const
|
|
40
|
+
const be = [
|
|
41
41
|
["path", { d: "M12 17v5", key: "bb1du9" }],
|
|
42
42
|
[
|
|
43
43
|
"path",
|
|
@@ -46,7 +46,7 @@ const he = [
|
|
|
46
46
|
key: "1nkz8b"
|
|
47
47
|
}
|
|
48
48
|
]
|
|
49
|
-
],
|
|
49
|
+
], R = q("pin", be), xe = {
|
|
50
50
|
id: "clinical-note-card",
|
|
51
51
|
capabilities: [],
|
|
52
52
|
state: {
|
|
@@ -88,12 +88,12 @@ const he = [
|
|
|
88
88
|
description: "Sourced from the id prop — addresses a specific note."
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
-
},
|
|
91
|
+
}, Ne = P("ds:w-full ds:text-[color:var(--foreground)]", {
|
|
92
92
|
variants: {
|
|
93
93
|
surface: { flat: "", elevated: "" }
|
|
94
94
|
},
|
|
95
95
|
defaultVariants: { surface: "elevated" }
|
|
96
|
-
}),
|
|
96
|
+
}), ye = P(
|
|
97
97
|
[
|
|
98
98
|
"type-body-sm ds:text-[color:var(--foreground)]",
|
|
99
99
|
"ds:break-words",
|
|
@@ -121,7 +121,7 @@ const he = [
|
|
|
121
121
|
},
|
|
122
122
|
defaultVariants: { truncate: !1 }
|
|
123
123
|
}
|
|
124
|
-
),
|
|
124
|
+
), Ce = [
|
|
125
125
|
"ds:relative ds:inline-flex ds:items-center ds:justify-center ds:shrink-0",
|
|
126
126
|
"ds:size-7 ds:rounded-[var(--radius-sm)]",
|
|
127
127
|
'ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[""] ds:sm:before:hidden',
|
|
@@ -131,7 +131,7 @@ const he = [
|
|
|
131
131
|
"ds:forced-colors:focus-visible:outline-[CanvasText]",
|
|
132
132
|
"ds:transition-[color,background-color] ds:duration-[var(--animation-duration)]",
|
|
133
133
|
"ds:motion-reduce:transition-none"
|
|
134
|
-
].join(" "),
|
|
134
|
+
].join(" "), F = [
|
|
135
135
|
"ds:mt-[var(--spacing-2xs)] ds:inline-flex ds:items-center ds:self-start",
|
|
136
136
|
"ds:text-[length:var(--font-size-xs)] ds:font-semibold",
|
|
137
137
|
"ds:underline ds:underline-offset-2 ds:text-[color:var(--primary)] ds:hover:no-underline",
|
|
@@ -139,11 +139,11 @@ const he = [
|
|
|
139
139
|
"ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
|
|
140
140
|
"ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
|
|
141
141
|
"ds:forced-colors:focus-visible:outline-[CanvasText]"
|
|
142
|
-
].join(" "),
|
|
143
|
-
|
|
142
|
+
].join(" "), _e = P([
|
|
143
|
+
F,
|
|
144
144
|
"ds:[min-block-size:var(--min-target-size)] ds:[min-inline-size:var(--min-target-size)]"
|
|
145
145
|
]);
|
|
146
|
-
function
|
|
146
|
+
function W({
|
|
147
147
|
icon: r,
|
|
148
148
|
pressed: i,
|
|
149
149
|
label: d,
|
|
@@ -158,14 +158,14 @@ function R({
|
|
|
158
158
|
"aria-label": d,
|
|
159
159
|
onClick: u,
|
|
160
160
|
className: [
|
|
161
|
-
|
|
161
|
+
Ce,
|
|
162
162
|
i ? t : "ds:text-[color:var(--muted-foreground)] ds:hover:text-[color:var(--foreground)]"
|
|
163
163
|
].join(" "),
|
|
164
164
|
children: r
|
|
165
165
|
}
|
|
166
166
|
);
|
|
167
167
|
}
|
|
168
|
-
function
|
|
168
|
+
function A(r) {
|
|
169
169
|
return r.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
170
170
|
}
|
|
171
171
|
function L(r) {
|
|
@@ -175,17 +175,17 @@ function L(r) {
|
|
|
175
175
|
'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'
|
|
176
176
|
), i;
|
|
177
177
|
}
|
|
178
|
-
function
|
|
178
|
+
function ke(r) {
|
|
179
179
|
return r.split(/\n{2,}/).map((d) => {
|
|
180
180
|
const t = d.split(`
|
|
181
181
|
`), u = t.every((a) => /^\s*[-*]\s+/.test(a)), n = t.every((a) => /^\s*\d+\.\s+/.test(a));
|
|
182
|
-
return u && t.length > 0 ? `<ul>${t.map((l) => l.replace(/^\s*[-*]\s+/, "")).map((l) => `<li>${L(
|
|
182
|
+
return u && t.length > 0 ? `<ul>${t.map((l) => l.replace(/^\s*[-*]\s+/, "")).map((l) => `<li>${L(A(l))}</li>`).join("")}</ul>` : n && t.length > 0 ? `<ol>${t.map((l) => l.replace(/^\s*\d+\.\s+/, "")).map((l) => `<li>${L(A(l))}</li>`).join("")}</ol>` : `<p>${L(A(d)).replace(
|
|
183
183
|
/\n/g,
|
|
184
184
|
"<br />"
|
|
185
185
|
)}</p>`;
|
|
186
186
|
}).join("");
|
|
187
187
|
}
|
|
188
|
-
const
|
|
188
|
+
const we = te(
|
|
189
189
|
({
|
|
190
190
|
id: r,
|
|
191
191
|
dateIso: i,
|
|
@@ -199,24 +199,25 @@ const ke = ie(
|
|
|
199
199
|
contentFormat: _ = "markdown",
|
|
200
200
|
pinned: o,
|
|
201
201
|
flagged: c,
|
|
202
|
+
headerActions: H,
|
|
202
203
|
onTogglePin: h,
|
|
203
204
|
onToggleFlag: b,
|
|
204
205
|
truncate: x = !1,
|
|
205
|
-
surface:
|
|
206
|
-
"aria-label":
|
|
207
|
-
className:
|
|
208
|
-
...
|
|
209
|
-
},
|
|
210
|
-
const { t: s } =
|
|
211
|
-
|
|
212
|
-
const N = !!n && !z, { ref:
|
|
206
|
+
surface: K = "elevated",
|
|
207
|
+
"aria-label": G,
|
|
208
|
+
className: J,
|
|
209
|
+
...Q
|
|
210
|
+
}, X) => {
|
|
211
|
+
const { t: s } = le(), k = V(), w = V(), [g, Y] = $(!1), [z, M] = $(!1), [Z, T] = $(!!n);
|
|
212
|
+
Z !== !!n && (T(!!n), M(!1));
|
|
213
|
+
const N = !!n && !z, { ref: ee, isOverflowing: ae } = pe(
|
|
213
214
|
x && !g && !N
|
|
214
|
-
),
|
|
215
|
-
() => _ === "html" ? l :
|
|
215
|
+
), se = x && !N && (ae || g), re = ne(
|
|
216
|
+
() => _ === "html" ? l : ke(l),
|
|
216
217
|
[l, _]
|
|
217
|
-
),
|
|
218
|
-
|
|
219
|
-
|
|
218
|
+
), S = G ?? s("clinicalNoteCard.regionLabel");
|
|
219
|
+
ue(
|
|
220
|
+
xe,
|
|
220
221
|
{
|
|
221
222
|
getNoteId: () => r,
|
|
222
223
|
isPinned: () => !!o,
|
|
@@ -225,7 +226,7 @@ const ke = ie(
|
|
|
225
226
|
},
|
|
226
227
|
r
|
|
227
228
|
);
|
|
228
|
-
const y = (f,
|
|
229
|
+
const y = (f, I, ie, j) => j && me(j) ? /* @__PURE__ */ e(oe, { href: j, intent: "default", startIcon: I, children: f }) : /* @__PURE__ */ e(v, { variant: ie, size: "sm", leading: I, children: f });
|
|
229
230
|
let m = null;
|
|
230
231
|
if (a)
|
|
231
232
|
switch (a.kind) {
|
|
@@ -235,7 +236,7 @@ const ke = ie(
|
|
|
235
236
|
{
|
|
236
237
|
variant: "neutral",
|
|
237
238
|
size: "sm",
|
|
238
|
-
leading: /* @__PURE__ */ e(
|
|
239
|
+
leading: /* @__PURE__ */ e(ge, { "aria-hidden": "true" }),
|
|
239
240
|
children: s("clinicalNoteCard.attachment.patient")
|
|
240
241
|
}
|
|
241
242
|
);
|
|
@@ -245,7 +246,7 @@ const ke = ie(
|
|
|
245
246
|
s("clinicalNoteCard.attachment.carePlan", {
|
|
246
247
|
number: a.number
|
|
247
248
|
}),
|
|
248
|
-
/* @__PURE__ */ e(
|
|
249
|
+
/* @__PURE__ */ e(U, { "aria-hidden": "true" }),
|
|
249
250
|
"info",
|
|
250
251
|
a.url
|
|
251
252
|
);
|
|
@@ -258,7 +259,7 @@ const ke = ie(
|
|
|
258
259
|
}) : s("clinicalNoteCard.attachment.carePlanEntry", {
|
|
259
260
|
care: a.careName
|
|
260
261
|
}),
|
|
261
|
-
/* @__PURE__ */ e(
|
|
262
|
+
/* @__PURE__ */ e(U, { "aria-hidden": "true" }),
|
|
262
263
|
"info",
|
|
263
264
|
a.url
|
|
264
265
|
);
|
|
@@ -266,7 +267,7 @@ const ke = ie(
|
|
|
266
267
|
case "phase":
|
|
267
268
|
m = y(
|
|
268
269
|
s("clinicalNoteCard.attachment.phase", { label: a.label }),
|
|
269
|
-
/* @__PURE__ */ e(
|
|
270
|
+
/* @__PURE__ */ e(ve, { "aria-hidden": "true" }),
|
|
270
271
|
"neutral",
|
|
271
272
|
a.url
|
|
272
273
|
);
|
|
@@ -276,16 +277,16 @@ const ke = ie(
|
|
|
276
277
|
a.label ? s("clinicalNoteCard.attachment.xrayWithLabel", {
|
|
277
278
|
label: a.label
|
|
278
279
|
}) : s("clinicalNoteCard.attachment.xray"),
|
|
279
|
-
/* @__PURE__ */ e(
|
|
280
|
+
/* @__PURE__ */ e(fe, { "aria-hidden": "true" }),
|
|
280
281
|
"neutral",
|
|
281
282
|
a.url
|
|
282
283
|
);
|
|
283
284
|
break;
|
|
284
285
|
}
|
|
285
|
-
const
|
|
286
|
+
const E = /* @__PURE__ */ p("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]", children: [
|
|
286
287
|
/* @__PURE__ */ p("div", { className: "ds:flex ds:items-start ds:gap-[var(--spacing-sm)]", children: [
|
|
287
288
|
t ? /* @__PURE__ */ e(
|
|
288
|
-
|
|
289
|
+
de,
|
|
289
290
|
{
|
|
290
291
|
name: t.name,
|
|
291
292
|
src: t.avatarUrl,
|
|
@@ -304,30 +305,30 @@ const ke = ie(
|
|
|
304
305
|
className: "type-title-item ds:text-[color:var(--foreground)] ds:truncate",
|
|
305
306
|
children: t.name
|
|
306
307
|
}
|
|
307
|
-
) : /* @__PURE__ */ e("span", { id: k, className: "ds:sr-only", children:
|
|
308
|
+
) : /* @__PURE__ */ e("span", { id: k, className: "ds:sr-only", children: S }),
|
|
308
309
|
u ? /* @__PURE__ */ e("span", { className: "type-meta ds:text-[color:var(--muted-foreground)] ds:break-words", children: s("clinicalNoteCard.operator", { name: u }) }) : null,
|
|
309
310
|
/* @__PURE__ */ p("span", { className: "ds:flex ds:flex-wrap ds:items-center ds:gap-x-[var(--spacing-xs)] ds:gap-y-[var(--spacing-2xs)] ds:empty:hidden", children: [
|
|
310
|
-
i ? /* @__PURE__ */ e(
|
|
311
|
+
i ? /* @__PURE__ */ e(O, { value: i, shape: "bare", size: "sm" }) : null,
|
|
311
312
|
d && d !== i ? /* @__PURE__ */ p("span", { className: "type-meta ds:text-[color:var(--muted-foreground)]", children: [
|
|
312
313
|
s("clinicalNoteCard.added"),
|
|
313
314
|
" ",
|
|
314
|
-
/* @__PURE__ */ e(
|
|
315
|
+
/* @__PURE__ */ e(O, { value: d, shape: "bare", size: "sm" })
|
|
315
316
|
] }) : null
|
|
316
317
|
] })
|
|
317
318
|
] }),
|
|
318
|
-
n || C || h || b || o || c ? /* @__PURE__ */ p("span", { className: "ds:ms-auto ds:flex ds:shrink-0 ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)]", children: [
|
|
319
|
+
n || C || H || h || b || o || c ? /* @__PURE__ */ p("span", { className: "ds:ms-auto ds:flex ds:shrink-0 ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)]", children: [
|
|
319
320
|
n ? /* @__PURE__ */ e(v, { variant: "error", size: "sm", children: s("clinicalNoteCard.deleted") }) : null,
|
|
320
321
|
C ? /* @__PURE__ */ e(v, { variant: "brand", size: "sm", children: s("clinicalNoteCard.clinical") }) : null,
|
|
321
322
|
h || b || o || c ? /* @__PURE__ */ p("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
|
|
322
323
|
h ? /* @__PURE__ */ e(
|
|
323
|
-
|
|
324
|
+
W,
|
|
324
325
|
{
|
|
325
326
|
pressed: !!o,
|
|
326
327
|
onToggle: h,
|
|
327
328
|
label: s(o ? "clinicalNoteCard.unpin" : "clinicalNoteCard.pin"),
|
|
328
329
|
activeClassName: "ds:text-[color:var(--accent)]",
|
|
329
330
|
icon: /* @__PURE__ */ e(
|
|
330
|
-
|
|
331
|
+
R,
|
|
331
332
|
{
|
|
332
333
|
"aria-hidden": "true",
|
|
333
334
|
className: "ds:size-4",
|
|
@@ -340,19 +341,19 @@ const ke = ie(
|
|
|
340
341
|
{
|
|
341
342
|
variant: "accent",
|
|
342
343
|
size: "sm",
|
|
343
|
-
leading: /* @__PURE__ */ e(
|
|
344
|
+
leading: /* @__PURE__ */ e(R, { "aria-hidden": "true" }),
|
|
344
345
|
children: s("clinicalNoteCard.pinned")
|
|
345
346
|
}
|
|
346
347
|
) : null,
|
|
347
348
|
b ? /* @__PURE__ */ e(
|
|
348
|
-
|
|
349
|
+
W,
|
|
349
350
|
{
|
|
350
351
|
pressed: !!c,
|
|
351
352
|
onToggle: b,
|
|
352
353
|
label: s(c ? "clinicalNoteCard.unflag" : "clinicalNoteCard.flag"),
|
|
353
354
|
activeClassName: "ds:text-[color:var(--warning-readable)]",
|
|
354
355
|
icon: /* @__PURE__ */ e(
|
|
355
|
-
|
|
356
|
+
B,
|
|
356
357
|
{
|
|
357
358
|
"aria-hidden": "true",
|
|
358
359
|
className: "ds:size-4",
|
|
@@ -365,11 +366,12 @@ const ke = ie(
|
|
|
365
366
|
{
|
|
366
367
|
variant: "warning",
|
|
367
368
|
size: "sm",
|
|
368
|
-
leading: /* @__PURE__ */ e(
|
|
369
|
+
leading: /* @__PURE__ */ e(B, { "aria-hidden": "true" }),
|
|
369
370
|
children: s("clinicalNoteCard.flagged")
|
|
370
371
|
}
|
|
371
372
|
) : null
|
|
372
|
-
] }) : null
|
|
373
|
+
] }) : null,
|
|
374
|
+
H
|
|
373
375
|
] }) : null
|
|
374
376
|
] }),
|
|
375
377
|
n ? /* @__PURE__ */ e(
|
|
@@ -378,30 +380,30 @@ const ke = ie(
|
|
|
378
380
|
type: "button",
|
|
379
381
|
"aria-expanded": z,
|
|
380
382
|
"aria-controls": w,
|
|
381
|
-
onClick: () =>
|
|
382
|
-
className:
|
|
383
|
+
onClick: () => M((f) => !f),
|
|
384
|
+
className: _e(),
|
|
383
385
|
children: s(z ? "clinicalNoteCard.hideDeleted" : "clinicalNoteCard.showDeleted")
|
|
384
386
|
}
|
|
385
387
|
) : null,
|
|
386
388
|
/* @__PURE__ */ e(
|
|
387
|
-
|
|
389
|
+
ce,
|
|
388
390
|
{
|
|
389
|
-
ref:
|
|
391
|
+
ref: ee,
|
|
390
392
|
id: x || n ? w : void 0,
|
|
391
393
|
hidden: N,
|
|
392
|
-
html: N ? "" :
|
|
394
|
+
html: N ? "" : re,
|
|
393
395
|
profile: _ === "html" ? "rich-text" : "markdown",
|
|
394
|
-
className:
|
|
396
|
+
className: ye({ truncate: x && !g })
|
|
395
397
|
}
|
|
396
398
|
),
|
|
397
|
-
|
|
399
|
+
se ? /* @__PURE__ */ e(
|
|
398
400
|
"button",
|
|
399
401
|
{
|
|
400
402
|
type: "button",
|
|
401
403
|
"aria-expanded": g,
|
|
402
404
|
"aria-controls": w,
|
|
403
|
-
onClick: () =>
|
|
404
|
-
className:
|
|
405
|
+
onClick: () => Y((f) => !f),
|
|
406
|
+
className: F,
|
|
405
407
|
children: s(g ? "clinicalNoteCard.readLess" : "clinicalNoteCard.readMore")
|
|
406
408
|
}
|
|
407
409
|
) : null,
|
|
@@ -410,9 +412,9 @@ const ke = ie(
|
|
|
410
412
|
return /* @__PURE__ */ e(
|
|
411
413
|
"div",
|
|
412
414
|
{
|
|
413
|
-
ref:
|
|
415
|
+
ref: X,
|
|
414
416
|
role: "article",
|
|
415
|
-
"aria-label":
|
|
417
|
+
"aria-label": S,
|
|
416
418
|
"aria-labelledby": k,
|
|
417
419
|
"data-component": "clinical-note-card",
|
|
418
420
|
"data-component-id": r,
|
|
@@ -421,16 +423,16 @@ const ke = ie(
|
|
|
421
423
|
"data-deleted": n ? "true" : void 0,
|
|
422
424
|
"data-attached-to": a == null ? void 0 : a.kind,
|
|
423
425
|
id: r,
|
|
424
|
-
className:
|
|
425
|
-
...
|
|
426
|
-
children:
|
|
426
|
+
className: Ne({ surface: K, className: J }),
|
|
427
|
+
...Q,
|
|
428
|
+
children: K === "elevated" ? /* @__PURE__ */ e(D, { variant: "elevated", children: /* @__PURE__ */ e(D.Body, { children: E }) }) : E
|
|
427
429
|
}
|
|
428
430
|
);
|
|
429
431
|
}
|
|
430
432
|
);
|
|
431
|
-
|
|
433
|
+
we.displayName = "ClinicalNoteCard";
|
|
432
434
|
export {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
+
we as C,
|
|
436
|
+
xe as c
|
|
435
437
|
};
|
|
436
|
-
//# sourceMappingURL=clinical-note-card-
|
|
438
|
+
//# sourceMappingURL=clinical-note-card-CTRzmqvv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clinical-note-card-CTRzmqvv.js","sources":["../../node_modules/lucide-react/dist/esm/icons/flag.mjs","../../node_modules/lucide-react/dist/esm/icons/pin.mjs","../../src/components/clinical-note-card/clinical-note-card.agent.ts","../../src/components/clinical-note-card/clinical-note-card.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n 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\",\n key: \"1jaruq\"\n }\n ]\n];\nconst Flag = createLucideIcon(\"flag\", __iconNode);\n\nexport { __iconNode, Flag as default };\n//# sourceMappingURL=flag.mjs.map\n","/**\n * @license lucide-react v1.22.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 17v5\", key: \"bb1du9\" }],\n [\n \"path\",\n {\n 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\",\n key: \"1nkz8b\"\n }\n ]\n];\nconst Pin = createLucideIcon(\"pin\", __iconNode);\n\nexport { __iconNode, Pin as default };\n//# sourceMappingURL=pin.mjs.map\n","/* -------------------------------------------------------------------- */\n/* Agent adapter — ClinicalNoteCard. */\n/* */\n/* Read-only presentation surface. Exposes the note's id + structural */\n/* flags (pinned / flagged / attachment kind) so a future MCP UI bridge */\n/* can locate and describe a rendered note. NEVER reads the note body or */\n/* any author identity — those are PHI and stay out of the agent layer. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ClinicalNoteCardHandle } from './clinical-note-card';\n\nexport const clinicalNoteCardAgent: AgentAdapter<ClinicalNoteCardHandle> = {\n id: 'clinical-note-card',\n capabilities: [],\n state: {\n noteId: {\n type: 'string | undefined',\n descriptionKey: 'ui.agent.clinicalNoteCard.state.noteId',\n description: 'Stable identifier of the rendered note, when supplied.',\n read: (handle) => handle.getNoteId(),\n },\n pinned: {\n type: 'boolean',\n descriptionKey: 'ui.agent.clinicalNoteCard.state.pinned',\n description: 'Whether the note is pinned to the top of the timeline.',\n read: (handle) => handle.isPinned(),\n },\n flagged: {\n type: 'boolean',\n descriptionKey: 'ui.agent.clinicalNoteCard.state.flagged',\n description: 'Whether the note is flagged for follow-up.',\n read: (handle) => handle.isFlagged(),\n },\n attachmentKind: {\n type: \"'patient' | 'carePlan' | 'carePlanEntry' | 'phase' | 'xray' | undefined\",\n descriptionKey: 'ui.agent.clinicalNoteCard.state.attachmentKind',\n description:\n 'Structural kind the note is attached to. Never the attachment identity or content.',\n read: (handle) => handle.getAttachmentKind(),\n },\n },\n actions: {},\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'clinical-note-card',\n description:\n 'Marks the ClinicalNoteCard root. Also emits data-pinned / data-flagged / data-attached-to structural hooks.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop — addresses a specific note.',\n },\n },\n};\n","import {\n forwardRef,\n useId,\n useMemo,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Flag, Pin, FileText, Layers, ScanLine, User } from 'lucide-react';\nimport { Avatar } from '../avatar/avatar';\nimport { Badge } from '../badge/badge';\nimport { Card } from '../card/card';\nimport { Link } from '../link/link';\nimport { Timestamp } from '../timestamp';\nimport { SafeHtml } from '../_shared/safe-html';\nimport { isSafeEntityUrl } from '../_shared/is-safe-url';\nimport { useClampOverflow } from '../../hooks/use-clamp-overflow';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { clinicalNoteCardAgent } from './clinical-note-card.agent';\n\n/* -------------------------------------------------------------------- */\n/* ClinicalNoteCard */\n/* */\n/* A single clinical note — the free-text annotation an operator writes */\n/* against a patient, care plan, treatment phase, or x-ray. Replaces the */\n/* bespoke \"nota clinica\" rows scattered across the platform patient */\n/* timeline. Composes Card + Avatar (author) + Timestamp + Badge/Tag */\n/* (clinical / pinned / flagged) + Link (attachment) and renders the */\n/* markdown body through the shared SafeHtml helper — the only sanctioned */\n/* carrier of dangerouslySetInnerHTML (constraint §8). */\n/* */\n/* All visible text flows through useTranslation('ui') against the */\n/* `clinicalNoteCard.*` namespace. No PHI is read by the agent adapter — */\n/* only the note id and structural flags are exposed. */\n/* -------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------- */\n/* Public types */\n/* -------------------------------------------------------------------- */\n\n/** Author identity — drives the avatar + visible byline. */\nexport interface ClinicalNoteAuthor {\n /** Display name. */\n name: string;\n /** Optional avatar image URL. */\n avatarUrl?: string;\n}\n\n/**\n * What the note is attached to. Discriminated by `kind`:\n * - `patient` — a free-standing note on the patient record.\n * - `carePlan` — attached to a care plan (estimate / treatment plan),\n * identified by its number, with an optional deep link.\n * - `carePlanEntry` — attached to one entry inside a care plan, naming the\n * care and (optionally) the listed elements.\n * - `phase` — attached to a treatment phase, labelled.\n * - `xray` — attached to an x-ray / radiograph, optionally labelled.\n *\n * Every non-patient kind takes an optional `url`: a safe one turns the chip\n * into a link, an unsafe one keeps the chip.\n */\nexport type NoteAttachment =\n | { kind: 'patient' }\n | { kind: 'carePlan'; number: string; url?: string }\n | {\n kind: 'carePlanEntry';\n careName: string;\n elements?: string[];\n url?: string;\n }\n | { kind: 'phase'; label: string; url?: string }\n | { kind: 'xray'; label?: string; url?: string };\n\n/** Imperative handle exposed to the agent runtime — identifiers / flags only. */\nexport interface ClinicalNoteCardHandle {\n /** The note's stable id, when supplied. */\n getNoteId: () => string | undefined;\n /** Whether the note is currently pinned. */\n isPinned: () => boolean;\n /** Whether the note is currently flagged. */\n isFlagged: () => boolean;\n /** The attachment kind the note is bound to. */\n getAttachmentKind: () => NoteAttachment['kind'] | undefined;\n}\n\nexport interface ClinicalNoteCardProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'aria-label' | 'children' | 'content' | 'title'\n> {\n /** Agent-readiness consumer id, surfaced as `data-component-id`. */\n id?: string;\n /**\n * ISO-8601 timestamp the note refers to (the clinical date). Drives the\n * primary `<Timestamp>`. An empty string renders no timestamp (an undated\n * imported note).\n */\n dateIso: string;\n /**\n * ISO-8601 timestamp the note was authored, when it differs from\n * `dateIso`. Rendered as a secondary \"added\" line.\n */\n createdAtIso?: string;\n /** Author identity — avatar + byline. Optional for system notes. */\n author?: ClinicalNoteAuthor;\n /** The operator the note is credited to: a secondary \"Operator: …\" byline. */\n operatorName?: string;\n /**\n * A deleted note kept for the record. Shows a \"Deleted\" badge and keeps the\n * body out of the DOM until the reader presses \"Show deleted note\". Not an\n * access control: the body is one press away.\n */\n deleted?: boolean;\n /**\n * Whether this is a clinical note (vs. an administrative one). When true a\n * \"Clinical\" badge is shown so the note's nature is unambiguous at a glance.\n */\n clinical?: boolean;\n /** What the note is attached to — drives a contextual chip + optional link. */\n attachedTo?: NoteAttachment;\n /**\n * The note body, authored in a small, safe subset of Markdown (bold,\n * italic, inline code, links, line breaks, simple lists). Rendered through\n * the shared `SafeHtml` helper with the `markdown` sanitiser profile —\n * raw HTML and unsafe link schemes are stripped.\n */\n content: string;\n /**\n * How `content` is authored. `'markdown'` (default) runs the small Markdown\n * subset through the converter; `'html'` treats `content` as rich HTML\n * (e.g. Redactor output) and renders it through SafeHtml's `rich-text`\n * profile, so colours, sizes, tables and images survive sanitisation.\n */\n contentFormat?: 'markdown' | 'html';\n /** Pin the note to the top of a timeline — shows a \"Pinned\" chip. */\n pinned?: boolean;\n /** Flag the note for follow-up / attention — shows a \"Flagged\" chip. */\n flagged?: boolean;\n /**\n * When provided, the pinned chip becomes an `aria-pressed` toggle button so\n * the note can be (un)pinned in place — the pin glyph fills and tints to the\n * accent when pinned (no button fill). Omit for a static, display-only card.\n */\n /**\n * Host-owned actions for this note (edit, delete, share …), rendered\n * beside the pin and flag. They belong in the same cluster: a reader\n * looking for what they can do to a note should find every affordance\n * in one place, not some in the card and the rest below it.\n */\n headerActions?: ReactNode;\n onTogglePin?: () => void;\n /** As `onTogglePin`, for the flagged state (warning-tinted when flagged). */\n onToggleFlag?: () => void;\n /**\n * Clamp the rendered body to five lines. When the body is taller than the\n * clamp, a \"Read more\" / \"Read less\" disclosure toggles the full text in\n * place — the note stays a read-only display surface, so this is the\n * sighted-user escape hatch (assistive tech reads the full body regardless).\n */\n truncate?: boolean;\n /**\n * `'elevated'` (default) wraps the note in `<Card variant=\"elevated\">`.\n * `'flat'` drops the chrome for use inside an existing Card / timeline rail.\n */\n surface?: 'flat' | 'elevated';\n /** Override the default region aria-label. */\n 'aria-label'?: string;\n}\n\n/* -------------------------------------------------------------------- */\n/* CVA — root */\n/* -------------------------------------------------------------------- */\n\nconst rootVariants = cva('ds:w-full ds:text-[color:var(--foreground)]', {\n variants: {\n surface: { flat: '', elevated: '' },\n },\n defaultVariants: { surface: 'elevated' },\n});\n\n/* Body clamp — applied only when `truncate` is set. Logical-safe. */\nconst bodyVariants = cva(\n [\n 'type-body-sm ds:text-[color:var(--foreground)]',\n 'ds:break-words',\n '[&_a]:ds:underline [&_a]:ds:underline-offset-2',\n '[&_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)]',\n '[&_p]:ds:m-0 [&_p+p]:ds:mt-[var(--spacing-sm)]',\n // `list-disc` / `list-decimal` are load-bearing: the card renders host\n // HTML inside `[data-component]`, where preflight's `list-style: none`\n // still applies. Without them the indent lands but the markers do not.\n 'ds:[&_ul]:m-0 ds:[&_ul]:ps-[var(--spacing-md)] ds:[&_ul]:list-disc ds:[&_ol]:m-0 ds:[&_ol]:ps-[var(--spacing-md)] ds:[&_ol]:list-decimal',\n // Rich-text (Redactor) extras — harmless on markdown notes, which carry\n // none of these tags. Headings, inline images and tables stay readable.\n '[&_h2]:type-title-item [&_h3]:type-title-item [&_h2]:ds:m-0 [&_h3]:ds:m-0',\n '[&_img]:ds:max-w-full [&_img]:ds:h-auto [&_img]:ds:rounded-[var(--radius-sm)]',\n '[&_table]:ds:my-[var(--spacing-sm)] [&_table]:ds:w-full [&_table]:ds:border-collapse',\n '[&_th]:ds:border [&_th]:ds:border-[color:var(--border)] [&_th]:ds:ps-[var(--spacing-xs)] [&_th]:ds:pe-[var(--spacing-xs)] [&_th]:ds:py-[var(--spacing-2xs)] [&_th]:ds:text-start',\n '[&_td]:ds:border [&_td]:ds:border-[color:var(--border)] [&_td]:ds:ps-[var(--spacing-xs)] [&_td]:ds:pe-[var(--spacing-xs)] [&_td]:ds:py-[var(--spacing-2xs)]',\n ].join(' '),\n {\n variants: {\n truncate: {\n true: 'ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:5]',\n false: '',\n },\n },\n defaultVariants: { truncate: false },\n },\n);\n\n/* -------------------------------------------------------------------- */\n/* Inline affordances — pin / flag toggle + read-more disclosure */\n/* -------------------------------------------------------------------- */\n\n/* Pin / flag toggle. A raw button (not IconButton) so the pressed state\n reads as a FILLED glyph + colour tint rather than a filled button — the\n same treatment as the Sidebar favourite star. The compact box keeps a\n --min-target-size hit area on touch via the ::before expansion. */\nconst noteToggleBase = [\n 'ds:relative ds:inline-flex ds:items-center ds:justify-center ds:shrink-0',\n 'ds:size-7 ds:rounded-[var(--radius-sm)]',\n 'ds:before:absolute ds:before:inset-x-[calc((var(--min-target-size)-100%)/-2)] ds:before:inset-y-[calc((var(--min-target-size)-100%)/-2)] ds:before:content-[\"\"] ds:sm:before:hidden',\n 'ds:hover:bg-[color:var(--muted)]/20',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:transition-[color,background-color] ds:duration-[var(--animation-duration)]',\n 'ds:motion-reduce:transition-none',\n].join(' ');\n\n/* Read-more / read-less disclosure — an inline text toggle in the flow of\n the body copy (exempt from target-size the same way an inline link is). */\nconst readMoreClasses = [\n 'ds:mt-[var(--spacing-2xs)] ds:inline-flex ds:items-center ds:self-start',\n 'ds:text-[length:var(--font-size-xs)] ds:font-semibold',\n 'ds:underline ds:underline-offset-2 ds:text-[color:var(--primary)] ds:hover:no-underline',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[color:var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n].join(' ');\n\nconst deletedDisclosure = cva([\n readMoreClasses,\n 'ds:[min-block-size:var(--min-target-size)] ds:[min-inline-size:var(--min-target-size)]',\n]);\n\ninterface NoteToggleProps {\n /** The lucide glyph, pre-configured with `fill` + size by the caller. */\n icon: ReactNode;\n /** Current pressed state. */\n pressed: boolean;\n /** Accessible label (flips between the on / off verb). */\n label: string;\n /** Colour class applied while pressed (accent for pin, warning for flag). */\n activeClassName: string;\n onToggle: () => void;\n}\n\nfunction NoteToggle({\n icon,\n pressed,\n label,\n activeClassName,\n onToggle,\n}: NoteToggleProps) {\n return (\n <button\n type=\"button\"\n aria-pressed={pressed}\n aria-label={label}\n onClick={onToggle}\n className={[\n noteToggleBase,\n pressed\n ? activeClassName\n : 'ds:text-[color:var(--muted-foreground)] ds:hover:text-[color:var(--foreground)]',\n ].join(' ')}\n >\n {icon}\n </button>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* Markdown → safe HTML */\n/* */\n/* A dependency-free converter for the small Markdown subset the note */\n/* body supports. The output is then passed to `SafeHtml` (markdown */\n/* profile) which strips everything outside the allow-list — so even a */\n/* hostile note can only ever emit the sanitised tag set. We never call */\n/* dangerouslySetInnerHTML ourselves; SafeHtml is the single carrier. */\n/* -------------------------------------------------------------------- */\n\n/** HTML-escape a raw text run before re-inserting our own safe markup. */\nfunction escapeHtml(input: string): string {\n return input\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n}\n\n/** Apply inline markdown (bold, italic, code, links) to an escaped run. */\nfunction renderInlineHtml(escaped: string): string {\n let out = escaped;\n // Inline code first so its contents aren't re-processed.\n out = out.replace(/`([^`]+)`/g, '<code>$1</code>');\n out = out.replace(/\\*\\*([^*]+)\\*\\*/g, '<strong>$1</strong>');\n out = out.replace(/\\*([^*]+)\\*/g, '<em>$1</em>');\n // Links — the href is left as-authored; SafeHtml's markdown profile\n // rejects any scheme outside http(s)/mailto/tel at sanitise time.\n out = out.replace(\n /\\[([^\\]]+)\\]\\(([^)\\s]+)\\)/g,\n '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>',\n );\n return out;\n}\n\n/** Convert the supported Markdown subset into an HTML string. */\nfunction markdownToHtml(input: string): string {\n const blocks = input.split(/\\n{2,}/);\n return blocks\n .map((block) => {\n const lines = block.split('\\n');\n const isUnordered = lines.every((l) => /^\\s*[-*]\\s+/.test(l));\n const isOrdered = lines.every((l) => /^\\s*\\d+\\.\\s+/.test(l));\n if (isUnordered && lines.length > 0) {\n const items = lines\n .map((l) => l.replace(/^\\s*[-*]\\s+/, ''))\n .map((l) => `<li>${renderInlineHtml(escapeHtml(l))}</li>`)\n .join('');\n return `<ul>${items}</ul>`;\n }\n if (isOrdered && lines.length > 0) {\n const items = lines\n .map((l) => l.replace(/^\\s*\\d+\\.\\s+/, ''))\n .map((l) => `<li>${renderInlineHtml(escapeHtml(l))}</li>`)\n .join('');\n return `<ol>${items}</ol>`;\n }\n const paragraph = renderInlineHtml(escapeHtml(block)).replace(\n /\\n/g,\n '<br />',\n );\n return `<p>${paragraph}</p>`;\n })\n .join('');\n}\n\n/* -------------------------------------------------------------------- */\n/* Component */\n/* -------------------------------------------------------------------- */\n\nexport const ClinicalNoteCard = forwardRef<\n HTMLDivElement,\n ClinicalNoteCardProps\n>(\n (\n {\n id,\n dateIso,\n createdAtIso,\n author,\n operatorName,\n deleted,\n clinical,\n attachedTo,\n content,\n contentFormat = 'markdown',\n pinned,\n flagged,\n headerActions,\n onTogglePin,\n onToggleFlag,\n truncate = false,\n surface = 'elevated',\n 'aria-label': ariaLabel,\n className,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const headingId = useId();\n const bodyId = useId();\n const [expanded, setExpanded] = useState(false);\n const [deletedOpen, setDeletedOpen] = useState(false);\n const [previousDeleted, setPreviousDeleted] = useState(!!deleted);\n if (previousDeleted !== !!deleted) {\n setPreviousDeleted(!!deleted);\n setDeletedOpen(false);\n }\n // A deleted note's body stays empty and hidden until the reader reveals it.\n const bodyHidden = !!deleted && !deletedOpen;\n\n // Only measure while clamped — once expanded there's nothing to clip.\n const { ref: clampRef, isOverflowing } = useClampOverflow<HTMLDivElement>(\n truncate && !expanded && !bodyHidden,\n );\n // Show the disclosure once the body overflows; keep it while expanded so\n // the user can collapse again.\n const showReadMore = truncate && !bodyHidden && (isOverflowing || expanded);\n\n // Markdown notes are converted to a safe HTML subset; rich-text (Redactor)\n // notes are passed through verbatim and sanitised by SafeHtml's broader\n // `rich-text` profile at render. Either way SafeHtml is the only carrier.\n const bodyHtml = useMemo(\n () => (contentFormat === 'html' ? content : markdownToHtml(content)),\n [content, contentFormat],\n );\n\n const resolvedAriaLabel = ariaLabel ?? t('clinicalNoteCard.regionLabel');\n\n useAgentRegistration(\n clinicalNoteCardAgent,\n {\n getNoteId: () => id,\n isPinned: () => !!pinned,\n isFlagged: () => !!flagged,\n getAttachmentKind: () => attachedTo?.kind,\n },\n id,\n );\n\n /* ----- Attachment chip / link ----- */\n // A safe host url turns the chip into a link; otherwise it stays a chip.\n const linkOrChip = (\n label: string,\n icon: ReactNode,\n variant: 'info' | 'neutral',\n url: string | undefined,\n ): ReactNode =>\n url && isSafeEntityUrl(url) ? (\n <Link href={url} intent=\"default\" startIcon={icon}>\n {label}\n </Link>\n ) : (\n <Badge variant={variant} size=\"sm\" leading={icon}>\n {label}\n </Badge>\n );\n\n let attachmentNode: ReactNode = null;\n if (attachedTo) {\n switch (attachedTo.kind) {\n case 'patient':\n attachmentNode = (\n <Badge\n variant=\"neutral\"\n size=\"sm\"\n leading={<User aria-hidden=\"true\" />}\n >\n {t('clinicalNoteCard.attachment.patient')}\n </Badge>\n );\n break;\n case 'carePlan':\n attachmentNode = linkOrChip(\n t('clinicalNoteCard.attachment.carePlan', {\n number: attachedTo.number,\n }),\n <FileText aria-hidden=\"true\" />,\n 'info',\n attachedTo.url,\n );\n break;\n case 'carePlanEntry':\n attachmentNode = linkOrChip(\n attachedTo.elements && attachedTo.elements.length > 0\n ? t('clinicalNoteCard.attachment.carePlanEntryWithElements', {\n care: attachedTo.careName,\n elements: attachedTo.elements.join(', '),\n })\n : t('clinicalNoteCard.attachment.carePlanEntry', {\n care: attachedTo.careName,\n }),\n <FileText aria-hidden=\"true\" />,\n 'info',\n attachedTo.url,\n );\n break;\n case 'phase':\n attachmentNode = linkOrChip(\n t('clinicalNoteCard.attachment.phase', { label: attachedTo.label }),\n <Layers aria-hidden=\"true\" />,\n 'neutral',\n attachedTo.url,\n );\n break;\n case 'xray':\n attachmentNode = linkOrChip(\n attachedTo.label\n ? t('clinicalNoteCard.attachment.xrayWithLabel', {\n label: attachedTo.label,\n })\n : t('clinicalNoteCard.attachment.xray'),\n <ScanLine aria-hidden=\"true\" />,\n 'neutral',\n attachedTo.url,\n );\n break;\n }\n }\n\n const inner = (\n <div className=\"ds:flex ds:flex-col ds:gap-[var(--spacing-sm)]\">\n {/* Header: author + date + status chips */}\n <div className=\"ds:flex ds:items-start ds:gap-[var(--spacing-sm)]\">\n {author ? (\n <Avatar\n name={author.name}\n src={author.avatarUrl}\n size=\"sm\"\n className=\"ds:shrink-0\"\n aria-hidden=\"true\"\n role=\"presentation\"\n aria-label={undefined}\n />\n ) : null}\n <div className=\"ds:flex-1 ds:min-w-0 ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)]\">\n {author ? (\n <span\n id={headingId}\n className=\"type-title-item ds:text-[color:var(--foreground)] ds:truncate\"\n >\n {author.name}\n </span>\n ) : (\n <span id={headingId} className=\"ds:sr-only\">\n {resolvedAriaLabel}\n </span>\n )}\n {operatorName ? (\n <span className=\"type-meta ds:text-[color:var(--muted-foreground)] ds:break-words\">\n {t('clinicalNoteCard.operator', { name: operatorName })}\n </span>\n ) : null}\n <span className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-x-[var(--spacing-xs)] ds:gap-y-[var(--spacing-2xs)] ds:empty:hidden\">\n {dateIso ? (\n <Timestamp value={dateIso} shape=\"bare\" size=\"sm\" />\n ) : null}\n {createdAtIso && createdAtIso !== dateIso ? (\n <span className=\"type-meta ds:text-[color:var(--muted-foreground)]\">\n {t('clinicalNoteCard.added')}{' '}\n <Timestamp value={createdAtIso} shape=\"bare\" size=\"sm\" />\n </span>\n ) : null}\n </span>\n </div>\n {deleted ||\n clinical ||\n headerActions ||\n onTogglePin ||\n onToggleFlag ||\n pinned ||\n flagged ? (\n <span className=\"ds:ms-auto ds:flex ds:shrink-0 ds:flex-wrap ds:items-center ds:justify-end ds:gap-[var(--spacing-xs)]\">\n {deleted ? (\n <Badge variant=\"error\" size=\"sm\">\n {t('clinicalNoteCard.deleted')}\n </Badge>\n ) : null}\n {clinical ? (\n <Badge variant=\"brand\" size=\"sm\">\n {t('clinicalNoteCard.clinical')}\n </Badge>\n ) : null}\n {/* Pin + flag — grouped tightly together, kept clear of the\n clinical badge by the cluster's larger gap. Each is an\n interactive toggle when a handler is supplied (filled glyph +\n tint when active, no button fill), else a static chip. */}\n {onTogglePin || onToggleFlag || pinned || flagged ? (\n <span className=\"ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]\">\n {onTogglePin ? (\n <NoteToggle\n pressed={!!pinned}\n onToggle={onTogglePin}\n label={\n pinned\n ? t('clinicalNoteCard.unpin')\n : t('clinicalNoteCard.pin')\n }\n activeClassName=\"ds:text-[color:var(--accent)]\"\n icon={\n <Pin\n aria-hidden=\"true\"\n className=\"ds:size-4\"\n fill={pinned ? 'currentColor' : 'none'}\n />\n }\n />\n ) : pinned ? (\n <Badge\n variant=\"accent\"\n size=\"sm\"\n leading={<Pin aria-hidden=\"true\" />}\n >\n {t('clinicalNoteCard.pinned')}\n </Badge>\n ) : null}\n {onToggleFlag ? (\n <NoteToggle\n pressed={!!flagged}\n onToggle={onToggleFlag}\n label={\n flagged\n ? t('clinicalNoteCard.unflag')\n : t('clinicalNoteCard.flag')\n }\n activeClassName=\"ds:text-[color:var(--warning-readable)]\"\n icon={\n <Flag\n aria-hidden=\"true\"\n className=\"ds:size-4\"\n fill={flagged ? 'currentColor' : 'none'}\n />\n }\n />\n ) : flagged ? (\n <Badge\n variant=\"warning\"\n size=\"sm\"\n leading={<Flag aria-hidden=\"true\" />}\n >\n {t('clinicalNoteCard.flagged')}\n </Badge>\n ) : null}\n </span>\n ) : null}\n {/* Sibling of the pin/flag cluster, not inside it: a note with\n neither would otherwise drop the host's actions entirely. */}\n {headerActions}\n </span>\n ) : null}\n </div>\n\n {deleted ? (\n <button\n type=\"button\"\n aria-expanded={deletedOpen}\n aria-controls={bodyId}\n onClick={() => setDeletedOpen((prev) => !prev)}\n className={deletedDisclosure()}\n >\n {deletedOpen\n ? t('clinicalNoteCard.hideDeleted')\n : t('clinicalNoteCard.showDeleted')}\n </button>\n ) : null}\n {/* Body — rendered via the sanctioned SafeHtml carrier. Markdown notes\n use the tight markdown profile; rich-text notes the broader one.\n When `truncate`, the body clamps to five lines with a read-more\n disclosure once it overflows. */}\n <SafeHtml\n ref={clampRef}\n id={truncate || deleted ? bodyId : undefined}\n hidden={bodyHidden}\n html={bodyHidden ? '' : bodyHtml}\n profile={contentFormat === 'html' ? 'rich-text' : 'markdown'}\n className={bodyVariants({ truncate: truncate && !expanded })}\n />\n {showReadMore ? (\n <button\n type=\"button\"\n aria-expanded={expanded}\n aria-controls={bodyId}\n onClick={() => setExpanded((prev) => !prev)}\n className={readMoreClasses}\n >\n {expanded\n ? t('clinicalNoteCard.readLess')\n : t('clinicalNoteCard.readMore')}\n </button>\n ) : null}\n\n {/* Attachment context */}\n {attachmentNode ? (\n <div className=\"ds:flex ds:flex-wrap ds:items-center ds:gap-[var(--spacing-xs)]\">\n {attachmentNode}\n </div>\n ) : null}\n </div>\n );\n\n return (\n <div\n ref={ref}\n role=\"article\"\n aria-label={resolvedAriaLabel}\n aria-labelledby={headingId}\n data-component=\"clinical-note-card\"\n data-component-id={id}\n data-pinned={pinned ? 'true' : undefined}\n data-flagged={flagged ? 'true' : undefined}\n data-deleted={deleted ? 'true' : undefined}\n data-attached-to={attachedTo?.kind}\n id={id}\n className={rootVariants({ surface, className })}\n {...rest}\n >\n {surface === 'elevated' ? (\n <Card variant=\"elevated\">\n <Card.Body>{inner}</Card.Body>\n </Card>\n ) : (\n inner\n )}\n </div>\n );\n },\n);\n\nClinicalNoteCard.displayName = 'ClinicalNoteCard';\n\n/** Re-export of the surface variant union for downstream typing. */\nexport type ClinicalNoteCardSurface = NonNullable<\n VariantProps<typeof rootVariants>['surface']\n>;\n"],"names":["__iconNode","Flag","createLucideIcon","Pin","clinicalNoteCardAgent","handle","rootVariants","cva","bodyVariants","noteToggleBase","readMoreClasses","deletedDisclosure","NoteToggle","icon","pressed","label","activeClassName","onToggle","jsx","escapeHtml","input","renderInlineHtml","escaped","out","markdownToHtml","block","lines","isUnordered","l","isOrdered","ClinicalNoteCard","forwardRef","id","dateIso","createdAtIso","author","operatorName","deleted","clinical","attachedTo","content","contentFormat","pinned","flagged","headerActions","onTogglePin","onToggleFlag","truncate","surface","ariaLabel","className","rest","ref","t","useTranslation","headingId","useId","bodyId","expanded","setExpanded","useState","deletedOpen","setDeletedOpen","previousDeleted","setPreviousDeleted","bodyHidden","clampRef","isOverflowing","useClampOverflow","showReadMore","bodyHtml","useMemo","resolvedAriaLabel","useAgentRegistration","linkOrChip","variant","url","isSafeEntityUrl","Link","Badge","attachmentNode","User","FileText","Layers","ScanLine","inner","jsxs","Avatar","Timestamp","prev","SafeHtml","Card"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AACA,GACMC,IAAOC,EAAiB,QAAQF,EAAU;AClBhD;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,KAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,KAAK;AAAA,IACX;AAAA,EACA;AACA,GACMG,IAAMD,EAAiB,OAAOF,EAAU,GCPjCI,KAA8D;AAAA,EACzE,IAAI;AAAA,EACJ,cAAc,CAAA;AAAA,EACd,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACC,MAAWA,EAAO,UAAA;AAAA,IAAU;AAAA,IAErC,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACA,MAAWA,EAAO,SAAA;AAAA,IAAS;AAAA,IAEpC,SAAS;AAAA,MACP,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,MAAM,CAACA,MAAWA,EAAO,UAAA;AAAA,IAAU;AAAA,IAErC,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,aACE;AAAA,MACF,MAAM,CAACA,MAAWA,EAAO,kBAAA;AAAA,IAAkB;AAAA,EAC7C;AAAA,EAEF,SAAS,CAAA;AAAA,EACT,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aACE;AAAA,IAAA;AAAA,IAEJ,YAAY;AAAA,MACV,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GCsHMC,KAAeC,EAAI,+CAA+C;AAAA,EACtE,UAAU;AAAA,IACR,SAAS,EAAE,MAAM,IAAI,UAAU,GAAA;AAAA,EAAG;AAAA,EAEpC,iBAAiB,EAAE,SAAS,WAAA;AAC9B,CAAC,GAGKC,KAAeD;AAAA,EACnB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,EACA,KAAK,GAAG;AAAA,EACV;AAAA,IACE,UAAU;AAAA,MACR,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB,EAAE,UAAU,GAAA;AAAA,EAAM;AAEvC,GAUME,KAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAIJC,IAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG,GAEJC,KAAoBJ,EAAI;AAAA,EAC5BG;AAAA,EACA;AACF,CAAC;AAcD,SAASE,EAAW;AAAA,EAClB,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AACF,GAAoB;AAClB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,gBAAcJ;AAAA,MACd,cAAYC;AAAA,MACZ,SAASE;AAAA,MACT,WAAW;AAAA,QACTR;AAAA,QACAK,IACIE,IACA;AAAA,MAAA,EACJ,KAAK,GAAG;AAAA,MAET,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGP;AAaA,SAASM,EAAWC,GAAuB;AACzC,SAAOA,EACJ,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ;AAC3B;AAGA,SAASC,EAAiBC,GAAyB;AACjD,MAAIC,IAAMD;AAEV,SAAAC,IAAMA,EAAI,QAAQ,cAAc,iBAAiB,GACjDA,IAAMA,EAAI,QAAQ,oBAAoB,qBAAqB,GAC3DA,IAAMA,EAAI,QAAQ,gBAAgB,aAAa,GAG/CA,IAAMA,EAAI;AAAA,IACR;AAAA,IACA;AAAA,EAAA,GAEKA;AACT;AAGA,SAASC,GAAeJ,GAAuB;AAE7C,SADeA,EAAM,MAAM,QAAQ,EAEhC,IAAI,CAACK,MAAU;AACd,UAAMC,IAAQD,EAAM,MAAM;AAAA,CAAI,GACxBE,IAAcD,EAAM,MAAM,CAACE,MAAM,cAAc,KAAKA,CAAC,CAAC,GACtDC,IAAYH,EAAM,MAAM,CAACE,MAAM,eAAe,KAAKA,CAAC,CAAC;AAC3D,WAAID,KAAeD,EAAM,SAAS,IAKzB,OAJOA,EACX,IAAI,CAAC,MAAM,EAAE,QAAQ,eAAe,EAAE,CAAC,EACvC,IAAI,CAAC,MAAM,OAAOL,EAAiBF,EAAW,CAAC,CAAC,CAAC,OAAO,EACxD,KAAK,EAAE,CACS,UAEjBU,KAAaH,EAAM,SAAS,IAKvB,OAJOA,EACX,IAAI,CAAC,MAAM,EAAE,QAAQ,gBAAgB,EAAE,CAAC,EACxC,IAAI,CAAC,MAAM,OAAOL,EAAiBF,EAAW,CAAC,CAAC,CAAC,OAAO,EACxD,KAAK,EAAE,CACS,UAMd,MAJWE,EAAiBF,EAAWM,CAAK,CAAC,EAAE;AAAA,MACpD;AAAA,MACA;AAAA,IAAA,CAEoB;AAAA,EACxB,CAAC,EACA,KAAK,EAAE;AACZ;AAMO,MAAMK,KAAmBC;AAAA,EAI9B,CACE;AAAA,IACE,IAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC,IAAgB;AAAA,IAChB,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,SAAAC,IAAU;AAAA,IACV,cAAcC;AAAA,IACd,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,EAAE,GAAAC,EAAA,IAAMC,GAAA,GACRC,IAAYC,EAAA,GACZC,IAASD,EAAA,GACT,CAACE,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxC,CAACC,GAAaC,CAAc,IAAIF,EAAS,EAAK,GAC9C,CAACG,GAAiBC,CAAkB,IAAIJ,EAAS,CAAC,CAACvB,CAAO;AAChE,IAAI0B,MAAoB,CAAC,CAAC1B,MACxB2B,EAAmB,CAAC,CAAC3B,CAAO,GAC5ByB,EAAe,EAAK;AAGtB,UAAMG,IAAa,CAAC,CAAC5B,KAAW,CAACwB,GAG3B,EAAE,KAAKK,IAAU,eAAAC,GAAA,IAAkBC;AAAA,MACvCrB,KAAY,CAACW,KAAY,CAACO;AAAA,IAAA,GAItBI,KAAetB,KAAY,CAACkB,MAAeE,MAAiBT,IAK5DY,KAAWC;AAAA,MACf,MAAO9B,MAAkB,SAASD,IAAUhB,GAAegB,CAAO;AAAA,MAClE,CAACA,GAASC,CAAa;AAAA,IAAA,GAGnB+B,IAAoBvB,KAAaI,EAAE,8BAA8B;AAEvE,IAAAoB;AAAA,MACErE;AAAA,MACA;AAAA,QACE,WAAW,MAAM4B;AAAA,QACjB,UAAU,MAAM,CAAC,CAACU;AAAA,QAClB,WAAW,MAAM,CAAC,CAACC;AAAA,QACnB,mBAAmB,MAAMJ,KAAA,gBAAAA,EAAY;AAAA,MAAA;AAAA,MAEvCP;AAAA,IAAA;AAKF,UAAM0C,IAAa,CACjB3D,GACAF,GACA8D,IACAC,MAEAA,KAAOC,GAAgBD,CAAG,IACxB,gBAAA1D,EAAC4D,IAAA,EAAK,MAAMF,GAAK,QAAO,WAAU,WAAW/D,GAC1C,UAAAE,EAAA,CACH,IAEA,gBAAAG,EAAC6D,GAAA,EAAM,SAAAJ,IAAkB,MAAK,MAAK,SAAS9D,GACzC,UAAAE,GACH;AAGJ,QAAIiE,IAA4B;AAChC,QAAIzC;AACF,cAAQA,EAAW,MAAA;AAAA,QACjB,KAAK;AACH,UAAAyC,IACE,gBAAA9D;AAAA,YAAC6D;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,SAAS,gBAAA7D,EAAC+D,IAAA,EAAK,eAAY,OAAA,CAAO;AAAA,cAEjC,YAAE,qCAAqC;AAAA,YAAA;AAAA,UAAA;AAG5C;AAAA,QACF,KAAK;AACH,UAAAD,IAAiBN;AAAA,YACfrB,EAAE,wCAAwC;AAAA,cACxC,QAAQd,EAAW;AAAA,YAAA,CACpB;AAAA,YACD,gBAAArB,EAACgE,GAAA,EAAS,eAAY,OAAA,CAAO;AAAA,YAC7B;AAAA,YACA3C,EAAW;AAAA,UAAA;AAEb;AAAA,QACF,KAAK;AACH,UAAAyC,IAAiBN;AAAA,YACfnC,EAAW,YAAYA,EAAW,SAAS,SAAS,IAChDc,EAAE,yDAAyD;AAAA,cACzD,MAAMd,EAAW;AAAA,cACjB,UAAUA,EAAW,SAAS,KAAK,IAAI;AAAA,YAAA,CACxC,IACDc,EAAE,6CAA6C;AAAA,cAC7C,MAAMd,EAAW;AAAA,YAAA,CAClB;AAAA,YACL,gBAAArB,EAACgE,GAAA,EAAS,eAAY,OAAA,CAAO;AAAA,YAC7B;AAAA,YACA3C,EAAW;AAAA,UAAA;AAEb;AAAA,QACF,KAAK;AACH,UAAAyC,IAAiBN;AAAA,YACfrB,EAAE,qCAAqC,EAAE,OAAOd,EAAW,OAAO;AAAA,YAClE,gBAAArB,EAACiE,IAAA,EAAO,eAAY,OAAA,CAAO;AAAA,YAC3B;AAAA,YACA5C,EAAW;AAAA,UAAA;AAEb;AAAA,QACF,KAAK;AACH,UAAAyC,IAAiBN;AAAA,YACfnC,EAAW,QACPc,EAAE,6CAA6C;AAAA,cAC7C,OAAOd,EAAW;AAAA,YAAA,CACnB,IACDc,EAAE,kCAAkC;AAAA,YACxC,gBAAAnC,EAACkE,IAAA,EAAS,eAAY,OAAA,CAAO;AAAA,YAC7B;AAAA,YACA7C,EAAW;AAAA,UAAA;AAEb;AAAA,MAAA;AAIN,UAAM8C,IACJ,gBAAAC,EAAC,OAAA,EAAI,WAAU,kDAEb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qDACZ,UAAA;AAAA,QAAAnD,IACC,gBAAAjB;AAAA,UAACqE;AAAA,UAAA;AAAA,YACC,MAAMpD,EAAO;AAAA,YACb,KAAKA,EAAO;AAAA,YACZ,MAAK;AAAA,YACL,WAAU;AAAA,YACV,eAAY;AAAA,YACZ,MAAK;AAAA,YACL,cAAY;AAAA,UAAA;AAAA,QAAA,IAEZ;AAAA,QACJ,gBAAAmD,EAAC,OAAA,EAAI,WAAU,wEACZ,UAAA;AAAA,UAAAnD,IACC,gBAAAjB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIqC;AAAA,cACJ,WAAU;AAAA,cAET,UAAApB,EAAO;AAAA,YAAA;AAAA,UAAA,IAGV,gBAAAjB,EAAC,QAAA,EAAK,IAAIqC,GAAW,WAAU,cAC5B,UAAAiB,GACH;AAAA,UAEDpC,IACC,gBAAAlB,EAAC,QAAA,EAAK,WAAU,oEACb,UAAAmC,EAAE,6BAA6B,EAAE,MAAMjB,EAAA,CAAc,EAAA,CACxD,IACE;AAAA,UACJ,gBAAAkD,EAAC,QAAA,EAAK,WAAU,mHACb,UAAA;AAAA,YAAArD,IACC,gBAAAf,EAACsE,KAAU,OAAOvD,GAAS,OAAM,QAAO,MAAK,MAAK,IAChD;AAAA,YACHC,KAAgBA,MAAiBD,IAChC,gBAAAqD,EAAC,QAAA,EAAK,WAAU,qDACb,UAAA;AAAA,cAAAjC,EAAE,wBAAwB;AAAA,cAAG;AAAA,gCAC7BmC,GAAA,EAAU,OAAOtD,GAAc,OAAM,QAAO,MAAK,KAAA,CAAK;AAAA,YAAA,EAAA,CACzD,IACE;AAAA,UAAA,EAAA,CACN;AAAA,QAAA,GACF;AAAA,QACCG,KACDC,KACAM,KACAC,KACAC,KACAJ,KACAC,IACE,gBAAA2C,EAAC,QAAA,EAAK,WAAU,yGACb,UAAA;AAAA,UAAAjD,IACC,gBAAAnB,EAAC6D,KAAM,SAAQ,SAAQ,MAAK,MACzB,UAAA1B,EAAE,0BAA0B,EAAA,CAC/B,IACE;AAAA,UACHf,IACC,gBAAApB,EAAC6D,GAAA,EAAM,SAAQ,SAAQ,MAAK,MACzB,UAAA1B,EAAE,2BAA2B,EAAA,CAChC,IACE;AAAA,UAKHR,KAAeC,KAAgBJ,KAAUC,IACxC,gBAAA2C,EAAC,QAAA,EAAK,WAAU,uDACb,UAAA;AAAA,YAAAzC,IACC,gBAAA3B;AAAA,cAACN;AAAA,cAAA;AAAA,gBACC,SAAS,CAAC,CAAC8B;AAAA,gBACX,UAAUG;AAAA,gBACV,OAEMQ,EADJX,IACM,2BACA,sBADwB;AAAA,gBAGhC,iBAAgB;AAAA,gBAChB,MACE,gBAAAxB;AAAA,kBAACf;AAAA,kBAAA;AAAA,oBACC,eAAY;AAAA,oBACZ,WAAU;AAAA,oBACV,MAAMuC,IAAS,iBAAiB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAClC;AAAA,YAAA,IAGFA,IACF,gBAAAxB;AAAA,cAAC6D;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,SAAS,gBAAA7D,EAACf,GAAA,EAAI,eAAY,OAAA,CAAO;AAAA,gBAEhC,YAAE,yBAAyB;AAAA,cAAA;AAAA,YAAA,IAE5B;AAAA,YACH2C,IACC,gBAAA5B;AAAA,cAACN;AAAA,cAAA;AAAA,gBACC,SAAS,CAAC,CAAC+B;AAAA,gBACX,UAAUG;AAAA,gBACV,OAEMO,EADJV,IACM,4BACA,uBADyB;AAAA,gBAGjC,iBAAgB;AAAA,gBAChB,MACE,gBAAAzB;AAAA,kBAACjB;AAAA,kBAAA;AAAA,oBACC,eAAY;AAAA,oBACZ,WAAU;AAAA,oBACV,MAAM0C,IAAU,iBAAiB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACnC;AAAA,YAAA,IAGFA,IACF,gBAAAzB;AAAA,cAAC6D;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,SAAS,gBAAA7D,EAACjB,GAAA,EAAK,eAAY,OAAA,CAAO;AAAA,gBAEjC,YAAE,0BAA0B;AAAA,cAAA;AAAA,YAAA,IAE7B;AAAA,UAAA,EAAA,CACN,IACE;AAAA,UAGH2C;AAAA,QAAA,EAAA,CACH,IACE;AAAA,MAAA,GACN;AAAA,MAECP,IACC,gBAAAnB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,iBAAe2C;AAAA,UACf,iBAAeJ;AAAA,UACf,SAAS,MAAMK,EAAe,CAAC2B,MAAS,CAACA,CAAI;AAAA,UAC7C,WAAW9E,GAAA;AAAA,UAEV,UACG0C,EADHQ,IACK,iCACA,8BAD8B;AAAA,QACA;AAAA,MAAA,IAEpC;AAAA,MAKJ,gBAAA3C;AAAA,QAACwE;AAAA,QAAA;AAAA,UACC,KAAKxB;AAAA,UACL,IAAInB,KAAYV,IAAUoB,IAAS;AAAA,UACnC,QAAQQ;AAAA,UACR,MAAMA,IAAa,KAAKK;AAAA,UACxB,SAAS7B,MAAkB,SAAS,cAAc;AAAA,UAClD,WAAWjC,GAAa,EAAE,UAAUuC,KAAY,CAACW,GAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAE5DW,KACC,gBAAAnD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,iBAAewC;AAAA,UACf,iBAAeD;AAAA,UACf,SAAS,MAAME,EAAY,CAAC8B,MAAS,CAACA,CAAI;AAAA,UAC1C,WAAW/E;AAAA,UAEV,UACG2C,EADHK,IACK,8BACA,2BAD2B;AAAA,QACA;AAAA,MAAA,IAEjC;AAAA,MAGHsB,IACC,gBAAA9D,EAAC,OAAA,EAAI,WAAU,mEACZ,aACH,IACE;AAAA,IAAA,GACN;AAGF,WACE,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAkC;AAAA,QACA,MAAK;AAAA,QACL,cAAYoB;AAAA,QACZ,mBAAiBjB;AAAA,QACjB,kBAAe;AAAA,QACf,qBAAmBvB;AAAA,QACnB,eAAaU,IAAS,SAAS;AAAA,QAC/B,gBAAcC,IAAU,SAAS;AAAA,QACjC,gBAAcN,IAAU,SAAS;AAAA,QACjC,oBAAkBE,KAAA,gBAAAA,EAAY;AAAA,QAC9B,IAAAP;AAAA,QACA,WAAW1B,GAAa,EAAE,SAAA0C,GAAS,WAAAE,GAAW;AAAA,QAC7C,GAAGC;AAAA,QAEH,UAAAH,MAAY,aACX,gBAAA9B,EAACyE,GAAA,EAAK,SAAQ,YACZ,UAAA,gBAAAzE,EAACyE,EAAK,MAAL,EAAW,UAAAN,EAAA,CAAM,EAAA,CACpB,IAEAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEAvD,GAAiB,cAAc;","x_google_ignoreList":[0,1]}
|
|
@@ -6,10 +6,11 @@ import { B as b } from "./badge-sTusUqZD.js";
|
|
|
6
6
|
import { C as T } from "./card-DPmk26CL.js";
|
|
7
7
|
import { K as fe, a as ue } from "./key-value-pair-BIBdZBLg.js";
|
|
8
8
|
import { L as d } from "./link-CPb_pZPr.js";
|
|
9
|
-
import {
|
|
9
|
+
import { a as me } from "./format-price-BkMEbeW3.js";
|
|
10
10
|
import { u as he } from "./registry-DvAUVLHh.js";
|
|
11
|
-
import { S as
|
|
12
|
-
import { H
|
|
11
|
+
import { S as F } from "./stethoscope-sZXGC43m.js";
|
|
12
|
+
import { H } from "./heart--qCA4ffe.js";
|
|
13
|
+
import { B as _, L as z } from "./languages-CZqBaPwI.js";
|
|
13
14
|
import { S as O } from "./shield-check-DCJALLVh.js";
|
|
14
15
|
import { G as B } from "./globe-sHBW1JN5.js";
|
|
15
16
|
import { M as E } from "./mail-BqXVF2zH.js";
|
|
@@ -194,7 +195,7 @@ const ke = le(
|
|
|
194
195
|
};
|
|
195
196
|
o.push({
|
|
196
197
|
key: "languages",
|
|
197
|
-
icon: /* @__PURE__ */ e(
|
|
198
|
+
icon: /* @__PURE__ */ e(z, { "aria-hidden": "true" }),
|
|
198
199
|
label: t("contactProfileCard.label.languages"),
|
|
199
200
|
value: /* @__PURE__ */ e("span", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: g.map((l) => /* @__PURE__ */ e(b, { variant: "neutral", children: i(l) }, l)) })
|
|
200
201
|
});
|
|
@@ -206,18 +207,18 @@ const ke = le(
|
|
|
206
207
|
value: /* @__PURE__ */ e("span", { className: "ds:flex ds:flex-wrap ds:gap-[var(--spacing-2xs)]", children: v.map((i) => /* @__PURE__ */ e(b, { variant: "info", children: i }, i)) })
|
|
207
208
|
}), R && o.push({
|
|
208
209
|
key: "firstVisitPrice",
|
|
209
|
-
icon: /* @__PURE__ */ e(
|
|
210
|
+
icon: /* @__PURE__ */ e(_, { "aria-hidden": "true" }),
|
|
210
211
|
label: t("contactProfileCard.label.firstVisitPrice"),
|
|
211
212
|
value: /* @__PURE__ */ e(b, { variant: "accentSoft", size: "lg", children: R }),
|
|
212
213
|
alignValue: "end"
|
|
213
214
|
}), L && o.push({
|
|
214
215
|
key: "expertForAnxiousPatients",
|
|
215
|
-
icon: /* @__PURE__ */ e(
|
|
216
|
+
icon: /* @__PURE__ */ e(H, { "aria-hidden": "true" }),
|
|
216
217
|
label: t("contactProfileCard.label.expertForAnxiousPatients"),
|
|
217
218
|
value: t("contactProfileCard.value.yesShort")
|
|
218
219
|
}), x && o.push({
|
|
219
220
|
key: "profession",
|
|
220
|
-
icon: /* @__PURE__ */ e(
|
|
221
|
+
icon: /* @__PURE__ */ e(F, { "aria-hidden": "true" }),
|
|
221
222
|
label: t("contactProfileCard.label.profession"),
|
|
222
223
|
value: x
|
|
223
224
|
}), he(
|
|
@@ -282,7 +283,7 @@ const ke = le(
|
|
|
282
283
|
}
|
|
283
284
|
);
|
|
284
285
|
ke.displayName = "ContactProfileCard";
|
|
285
|
-
const
|
|
286
|
+
const Le = [
|
|
286
287
|
"address",
|
|
287
288
|
"phone",
|
|
288
289
|
"whatsapp",
|
|
@@ -293,22 +294,22 @@ const Ge = [
|
|
|
293
294
|
"firstVisitPrice",
|
|
294
295
|
"expertForAnxiousPatients",
|
|
295
296
|
"profession"
|
|
296
|
-
],
|
|
297
|
+
], je = {
|
|
297
298
|
address: G,
|
|
298
299
|
phone: U,
|
|
299
300
|
whatsapp: K,
|
|
300
301
|
email: E,
|
|
301
302
|
website: B,
|
|
302
|
-
languages:
|
|
303
|
+
languages: z,
|
|
303
304
|
insurances: O,
|
|
304
|
-
firstVisitPrice:
|
|
305
|
-
expertForAnxiousPatients:
|
|
306
|
-
profession:
|
|
305
|
+
firstVisitPrice: _,
|
|
306
|
+
expertForAnxiousPatients: H,
|
|
307
|
+
profession: F
|
|
307
308
|
};
|
|
308
309
|
export {
|
|
309
|
-
|
|
310
|
-
|
|
310
|
+
je as C,
|
|
311
|
+
Le as a,
|
|
311
312
|
ke as b,
|
|
312
313
|
ge as c
|
|
313
314
|
};
|
|
314
|
-
//# sourceMappingURL=contact-profile-card-
|
|
315
|
+
//# sourceMappingURL=contact-profile-card-DSI9uumA.js.map
|