@alfadocs/ui-kit 1.7.0 → 1.9.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 (142) hide show
  1. package/dist/_chunks/{actions-cell-renderer-ALEAGO3j.js → actions-cell-renderer-B2pw6iH8.js} +2 -2
  2. package/dist/_chunks/{anamnesis-summary-rows-F-cCmFAn.js → anamnesis-summary-rows-d44s_whc.js} +2 -2
  3. package/dist/_chunks/{antenatal-schedule-timeline-BjlF2rTz.js → antenatal-schedule-timeline-B1k8QkA6.js} +3 -3
  4. package/dist/_chunks/{appointment-card-BhcPJpXh.js → appointment-card-Dzr3GeVz.js} +73 -90
  5. package/dist/_chunks/{appointment-timeline-CMPvzlGZ.js → appointment-timeline-0mwtpErq.js} +3 -3
  6. package/dist/_chunks/{appointment-tray-3c_FLxXJ.js → appointment-tray-4FUu_5NX.js} +2 -2
  7. package/dist/_chunks/armchair-BaLDW6Hz.js +23 -0
  8. package/dist/_chunks/{booking-CQMJUFG-.js → booking-DHkKcUIl.js} +4 -4
  9. package/dist/_chunks/{calendar-4dXTvsCz.js → calendar-B4Gnyu1C.js} +553 -437
  10. package/dist/_chunks/calendar-event-card-Bjdbik8G.js +425 -0
  11. package/dist/_chunks/{care-plan-card-DQjVRDxO.js → care-plan-card-aDN4oem9.js} +3 -3
  12. package/dist/_chunks/{care-plan-entry-card-CMpoeNkb.js → care-plan-entry-card-BEhANdBE.js} +2 -2
  13. package/dist/_chunks/{care-plan-header-CxYoq23f.js → care-plan-header-CkpPyQqG.js} +2 -2
  14. package/dist/_chunks/{color-picker-D-tUwxxT.js → color-picker-oZ6zYks8.js} +164 -151
  15. package/dist/_chunks/control-room-rail-Cj2iX9h_.js +337 -0
  16. package/dist/_chunks/{cycle-calculator-DzgO1vzP.js → cycle-calculator-DmtYGhqq.js} +3 -3
  17. package/dist/_chunks/{date-picker-Bp64zk2p.js → date-picker-CepI_oI2.js} +77 -74
  18. package/dist/_chunks/{date-picker-variants-pKAJfnWr.js → date-picker-variants-DfuooXEK.js} +7 -2
  19. package/dist/_chunks/{date-range-picker-CDrZ8Zh0.js → date-range-picker-BD8P_rJq.js} +46 -45
  20. package/dist/_chunks/{date-time-picker-DVETwpzc.js → date-time-picker-3I2vVKGV.js} +2 -2
  21. package/dist/_chunks/{due-date-calculator-wK8Tajzz.js → due-date-calculator-BF_Ikofx.js} +4 -4
  22. package/dist/_chunks/{entity-card-9_62gY7l.js → entity-card-DmrgYSEX.js} +4 -4
  23. package/dist/_chunks/{file-manager-Cc_upjZX.js → file-manager-Crg5dKez.js} +2 -2
  24. package/dist/_chunks/{gestational-age-calculator-C_uDAeP_.js → gestational-age-calculator-CxZelpu2.js} +5 -5
  25. package/dist/_chunks/{hcg-doubling-BaXkJhT-.js → hcg-doubling-CpU7H5rQ.js} +3 -3
  26. package/dist/_chunks/{link-cell-renderer-DH4JYpKU.js → link-cell-renderer-BZQtsuFz.js} +2 -2
  27. package/dist/_chunks/{notes-panel-DlnENphf.js → notes-panel-e9cJWVRg.js} +2 -2
  28. package/dist/_chunks/{operator-hero-CCDnIa1S.js → operator-hero-BnFv-Uef.js} +2 -2
  29. package/dist/_chunks/{parse-JqixfsU0.js → parse-MN9bGkrY.js} +2 -2
  30. package/dist/_chunks/{patient-details-qnsqYBGQ.js → patient-details-xrqe13az.js} +160 -159
  31. package/dist/_chunks/{patient-table-DwshfVsQ.js → patient-table-ChXM2K7H.js} +11 -7
  32. package/dist/_chunks/{payment-automation-upsell-BBIG7NFL.js → payment-automation-upsell-DwQW2fRp.js} +52 -63
  33. package/dist/_chunks/{payment-request-card-BjjBMdsp.js → payment-request-card-YVCcCZ25.js} +2 -2
  34. package/dist/_chunks/{pregnancy-dating-BVS_9YU2.js → pregnancy-dating-DtToyMyc.js} +5 -5
  35. package/dist/_chunks/{radiograph-panel.agent-CiHwgISa.js → radiograph-panel.agent-C3trfWqB.js} +3 -3
  36. package/dist/_chunks/repeat-CvQa5rZt.js +17 -0
  37. package/dist/_chunks/resource-chip-DYTG0IQQ.js +83 -0
  38. package/dist/_chunks/{rich-text-editor-DARnq_6N.js → rich-text-editor-BDfFtK4H.js} +2 -2
  39. package/dist/_chunks/subDays-BLl3y3pd.js +8 -0
  40. package/dist/agent-catalog.json +2 -2
  41. package/dist/components/appointment-card/index.js +2 -2
  42. package/dist/components/appointment-timeline/index.js +1 -1
  43. package/dist/components/booking/index.js +1 -1
  44. package/dist/components/calendar/calendar.d.ts +138 -12
  45. package/dist/components/calendar/index.js +1 -1
  46. package/dist/components/calendar-event-card/calendar-event-card.d.ts +48 -11
  47. package/dist/components/calendar-event-card/index.js +1 -1
  48. package/dist/components/care-plan-card/index.js +1 -1
  49. package/dist/components/care-plan-entry-card/index.js +1 -1
  50. package/dist/components/care-plan-header/index.js +1 -1
  51. package/dist/components/color-picker/index.d.ts +1 -1
  52. package/dist/components/color-picker/index.js +4 -3
  53. package/dist/components/color-picker/palettes.d.ts +10 -0
  54. package/dist/components/control-room-rail/control-room-rail.d.ts +9 -0
  55. package/dist/components/control-room-rail/index.js +1 -1
  56. package/dist/components/cycle-calculator/index.js +1 -1
  57. package/dist/components/data-table/index.js +2 -2
  58. package/dist/components/date-picker/date-picker.d.ts +11 -0
  59. package/dist/components/date-picker/index.js +1 -1
  60. package/dist/components/date-range-picker/index.js +1 -1
  61. package/dist/components/date-time-picker/index.js +1 -1
  62. package/dist/components/due-date-calculator/index.js +2 -2
  63. package/dist/components/file-manager/index.js +1 -1
  64. package/dist/components/gestational-age-calculator/index.js +1 -1
  65. package/dist/components/hcg-doubling/index.js +1 -1
  66. package/dist/components/index.d.ts +1 -0
  67. package/dist/components/notes-panel/index.js +1 -1
  68. package/dist/components/operator-hero/index.js +1 -1
  69. package/dist/components/patient-details/index.js +1 -1
  70. package/dist/components/patient-details/patient-details.d.ts +8 -0
  71. package/dist/components/patient-table/index.js +1 -1
  72. package/dist/components/patient-table/patient-table.d.ts +5 -4
  73. package/dist/components/payment-card/index.js +1 -1
  74. package/dist/components/pregnancy-dating/index.js +1 -1
  75. package/dist/components/radiograph-panel/index.js +1 -1
  76. package/dist/components/resource-chip/index.d.ts +3 -0
  77. package/dist/components/resource-chip/index.js +5 -0
  78. package/dist/components/resource-chip/resource-chip.d.ts +26 -0
  79. package/dist/components/rich-text-editor/index.js +1 -1
  80. package/dist/host-compat.css +7 -1
  81. package/dist/i18n/locales/ar.d.ts +4 -0
  82. package/dist/i18n/locales/ar.js +4 -0
  83. package/dist/i18n/locales/de.d.ts +4 -0
  84. package/dist/i18n/locales/de.js +4 -0
  85. package/dist/i18n/locales/el.d.ts +4 -0
  86. package/dist/i18n/locales/el.js +4 -0
  87. package/dist/i18n/locales/en.d.ts +4 -0
  88. package/dist/i18n/locales/en.js +4 -0
  89. package/dist/i18n/locales/es.d.ts +4 -0
  90. package/dist/i18n/locales/es.js +4 -0
  91. package/dist/i18n/locales/fr.d.ts +4 -0
  92. package/dist/i18n/locales/fr.js +4 -0
  93. package/dist/i18n/locales/hi.d.ts +4 -0
  94. package/dist/i18n/locales/hi.js +4 -0
  95. package/dist/i18n/locales/it.d.ts +4 -0
  96. package/dist/i18n/locales/it.js +4 -0
  97. package/dist/i18n/locales/ja.d.ts +4 -0
  98. package/dist/i18n/locales/ja.js +4 -0
  99. package/dist/i18n/locales/nl.d.ts +4 -0
  100. package/dist/i18n/locales/nl.js +4 -0
  101. package/dist/i18n/locales/pl.d.ts +4 -0
  102. package/dist/i18n/locales/pl.js +4 -0
  103. package/dist/i18n/locales/pt.d.ts +4 -0
  104. package/dist/i18n/locales/pt.js +4 -0
  105. package/dist/i18n/locales/ro.d.ts +4 -0
  106. package/dist/i18n/locales/ro.js +4 -0
  107. package/dist/i18n/locales/ru.d.ts +4 -0
  108. package/dist/i18n/locales/ru.js +4 -0
  109. package/dist/i18n/locales/sq.d.ts +4 -0
  110. package/dist/i18n/locales/sq.js +4 -0
  111. package/dist/i18n/locales/sv.d.ts +4 -0
  112. package/dist/i18n/locales/sv.js +4 -0
  113. package/dist/i18n/locales/tr.d.ts +4 -0
  114. package/dist/i18n/locales/tr.js +4 -0
  115. package/dist/i18n/locales/zh.d.ts +4 -0
  116. package/dist/i18n/locales/zh.js +4 -0
  117. package/dist/index.js +961 -958
  118. package/dist/locales/ar.json +4 -0
  119. package/dist/locales/de.json +4 -0
  120. package/dist/locales/el.json +4 -0
  121. package/dist/locales/en.json +4 -0
  122. package/dist/locales/es.json +4 -0
  123. package/dist/locales/fr.json +4 -0
  124. package/dist/locales/hi.json +4 -0
  125. package/dist/locales/it.json +4 -0
  126. package/dist/locales/ja.json +4 -0
  127. package/dist/locales/nl.json +4 -0
  128. package/dist/locales/pl.json +4 -0
  129. package/dist/locales/pt.json +4 -0
  130. package/dist/locales/ro.json +4 -0
  131. package/dist/locales/ru.json +4 -0
  132. package/dist/locales/sq.json +4 -0
  133. package/dist/locales/sv.json +4 -0
  134. package/dist/locales/tr.json +4 -0
  135. package/dist/locales/zh.json +4 -0
  136. package/dist/patterns/anamnesis/index.js +1 -1
  137. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  138. package/dist/tokens.css +41 -24
  139. package/package.json +5 -1
  140. package/dist/_chunks/calendar-event-card-C6qGtywL.js +0 -257
  141. package/dist/_chunks/control-room-rail-IH1eBjrK.js +0 -333
  142. package/dist/_chunks/subDays-CAUv47M1.js +0 -8
@@ -0,0 +1,425 @@
1
+ import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as q } from "react";
3
+ import { useTranslation as G } from "react-i18next";
4
+ import { c as Z } from "./index-D2ZczOXr.js";
5
+ import { C as W } from "./clipboard-check-BeAGxDVT.js";
6
+ import { E } from "./eye-off-C_4xkbRP.js";
7
+ import { c as f } from "./createLucideIcon-DhHxpK9K.js";
8
+ import { C as Y } from "./check-DrFSN__t.js";
9
+ import { S as D } from "./stethoscope-sZXGC43m.js";
10
+ import { C as F } from "./clock-Drd4Wtis.js";
11
+ import { G as J } from "./globe-sHBW1JN5.js";
12
+ import { T as P } from "./triangle-alert-CBnO6nq_.js";
13
+ import { H as Q } from "./heart-pulse-BCppJyN2.js";
14
+ import { V as X } from "./video-BheNGvsu.js";
15
+ import { R as T } from "./repeat-CvQa5rZt.js";
16
+ /**
17
+ * @license lucide-react v1.22.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */
22
+ const ee = [
23
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
24
+ ["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }]
25
+ ], ne = f("ban", ee);
26
+ /**
27
+ * @license lucide-react v1.22.0 - ISC
28
+ *
29
+ * This source code is licensed under the ISC license.
30
+ * See the LICENSE file in the root directory of this source tree.
31
+ */
32
+ const ae = [
33
+ ["path", { d: "M4 10h12", key: "1y6xl8" }],
34
+ ["path", { d: "M4 14h9", key: "1loblj" }],
35
+ [
36
+ "path",
37
+ {
38
+ d: "M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2",
39
+ key: "1j6lzo"
40
+ }
41
+ ]
42
+ ], re = f("euro", ae);
43
+ /**
44
+ * @license lucide-react v1.22.0 - ISC
45
+ *
46
+ * This source code is licensed under the ISC license.
47
+ * See the LICENSE file in the root directory of this source tree.
48
+ */
49
+ const se = [
50
+ [
51
+ "path",
52
+ {
53
+ d: "M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",
54
+ key: "emmmcr"
55
+ }
56
+ ],
57
+ ["path", { d: "M7 10v12", key: "1qc93n" }]
58
+ ], te = f("thumbs-up", se);
59
+ /**
60
+ * @license lucide-react v1.22.0 - ISC
61
+ *
62
+ * This source code is licensed under the ISC license.
63
+ * See the LICENSE file in the root directory of this source tree.
64
+ */
65
+ const de = [
66
+ [
67
+ "path",
68
+ {
69
+ d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
70
+ key: "1xq2db"
71
+ }
72
+ ]
73
+ ], ie = f("zap", de);
74
+ function oe(a) {
75
+ if (typeof a != "string") return null;
76
+ const r = a.trim();
77
+ if (!r.startsWith("#")) return null;
78
+ const n = r.slice(1);
79
+ let t, d, s;
80
+ if (n.length === 3) {
81
+ if (!/^[0-9a-f]{3}$/i.test(n)) return null;
82
+ t = parseInt(n[0] + n[0], 16), d = parseInt(n[1] + n[1], 16), s = parseInt(n[2] + n[2], 16);
83
+ } else if (n.length === 6) {
84
+ if (!/^[0-9a-f]{6}$/i.test(n)) return null;
85
+ t = parseInt(n.slice(0, 2), 16), d = parseInt(n.slice(2, 4), 16), s = parseInt(n.slice(4, 6), 16);
86
+ } else
87
+ return null;
88
+ return [t / 255, d / 255, s / 255];
89
+ }
90
+ function le([a, r, n]) {
91
+ const t = (d) => d <= 0.03928 ? d / 12.92 : Math.pow((d + 0.055) / 1.055, 2.4);
92
+ return 0.2126 * t(a) + 0.7152 * t(r) + 0.0722 * t(n);
93
+ }
94
+ function Ae(a, r, n) {
95
+ }
96
+ function ce(a) {
97
+ const r = oe(a);
98
+ return r ? le(r) > 0.1791 ? "on-light" : "on-dark" : null;
99
+ }
100
+ const me = {
101
+ confirmed: te,
102
+ waiting: F,
103
+ in_care: D,
104
+ done: Y,
105
+ cancelled: ne,
106
+ absent: ie
107
+ }, i = "ds:inline-flex ds:size-4.5 ds:shrink-0 ds:items-center ds:justify-center ds:rounded-[var(--radius-full)] ds:bg-[color:var(--card)] ds:border ds:border-[color:var(--border)] ds:shadow-[var(--shadow-sm)]", m = {
108
+ success: "ds:text-[color:var(--success-foreground)]",
109
+ info: "ds:text-[color:var(--info-foreground)]",
110
+ warning: "ds:text-[color:var(--warning-foreground)]",
111
+ error: "ds:text-[color:var(--error-foreground)]",
112
+ // Same AA-clearing accent mix Badge's accentSoft uses for its ink.
113
+ accent: "ds:text-[color:color-mix(in_srgb,var(--accent)_40%,var(--foreground))]"
114
+ }, pe = {
115
+ confirmed: "success",
116
+ waiting: "info",
117
+ in_care: "accent",
118
+ done: "success",
119
+ cancelled: "error",
120
+ absent: "warning"
121
+ }, ue = {
122
+ confirmed: "calendar.status.confirmed",
123
+ waiting: "calendar.status.waiting",
124
+ in_care: "calendar.status.inCare",
125
+ done: "calendar.status.done",
126
+ cancelled: "calendar.status.cancelled",
127
+ absent: "calendar.status.absent"
128
+ }, ve = Z(
129
+ [
130
+ // Block root; the appointment content is a wrap-capable flex row
131
+ // (inline-flowing text cell beside the icon column — structurally
132
+ // overlap-safe). Tight padding and line-height so sliver-height
133
+ // harnesses show a full text line.
134
+ "ds:relative ds:block",
135
+ "ds:w-full ds:h-full",
136
+ "ds:ps-[var(--spacing-2xs)] ds:pe-[var(--spacing-2xs)]",
137
+ "ds:rounded-[var(--radius-sm)]",
138
+ "ds:text-[length:var(--font-size-sm)]",
139
+ "ds:font-[var(--font-weight-medium)]",
140
+ "ds:leading-tight ds:text-start",
141
+ "ds:overflow-hidden",
142
+ // kept verbatim from the former base (inert on a non-focusable div
143
+ // inside FC; harmless)
144
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)]",
145
+ "ds:focus-visible:outline-[var(--ring)]",
146
+ "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
147
+ // SINGLE PAINTED SURFACE — always present, never conditional. One
148
+ // declaration per paint channel; value chain = "caller custom prop,
149
+ // else token". This structurally eliminates the CVA-vs-override
150
+ // specificity race (the old double-paint bug) — stylesheet order
151
+ // becomes irrelevant.
152
+ "ds:[background-color:var(--calendar-event-bg,var(--primary))]",
153
+ "ds:[color:var(--calendar-event-text,var(--primary-foreground))]",
154
+ "ds:border ds:[border-color:var(--calendar-event-border,transparent)]"
155
+ ].join(" "),
156
+ {
157
+ variants: {
158
+ // Do not add colour classes to this axis — status is icon + aria
159
+ // only; a unit test asserts identical computed background
160
+ // across all six statuses.
161
+ status: {
162
+ none: "",
163
+ confirmed: "",
164
+ waiting: "",
165
+ in_care: "",
166
+ done: "",
167
+ cancelled: "ds:line-through",
168
+ absent: ""
169
+ },
170
+ bookedOnline: {
171
+ // class name kept as a stable inert DOM hook; the stripe paint
172
+ // lives here (moved from fullcalendar-theme.css) so it works in
173
+ // the card's own stories, outside .fc-theme-alfadocs.
174
+ // currentcolor = resolved ink, so stripes stay visible over any
175
+ // picker colour.
176
+ true: "event-booked-online ds:bg-[image:repeating-linear-gradient(45deg,transparent,transparent_4px,color-mix(in_srgb,currentcolor_10%,transparent)_4px,color-mix(in_srgb,currentcolor_10%,transparent)_8px)]",
177
+ false: ""
178
+ },
179
+ // Task treatment: CUSTOM-PROPERTY assignments only — the consuming
180
+ // background-color / color / border-color declarations stay in the
181
+ // base above, so this cannot re-open the CVA-vs-override specificity
182
+ // race, and a caller's inline picker hex (set as the same custom
183
+ // properties via `style`) still wins. `border-dashed` is a
184
+ // border-style declaration — no property collision either.
185
+ kind: {
186
+ // The appointment's COLOUR IDENTITY edge — a thick start border
187
+ // in the event colour, platform-agenda style, so the colour
188
+ // reads even on sliver-height cards. Tasks keep the 1px edge:
189
+ // muted to-dos carry no colour identity.
190
+ appointment: "ds:border-s-4",
191
+ // Draft treatment — an appointment being COMPOSED, not yet saved
192
+ // (the slot a user just picked, mirrored on the grid while the
193
+ // editor is open). Same custom-property-only discipline as
194
+ // `task`: dashed outline over a light primary tint, so the
195
+ // placeholder reads as pending rather than as a booked slot.
196
+ draft: [
197
+ "ds:border-dashed",
198
+ "ds:[--calendar-event-bg:color-mix(in_srgb,var(--primary)_10%,var(--card))]",
199
+ "ds:[--calendar-event-text:var(--foreground)]",
200
+ "ds:[--calendar-event-border:var(--primary)]"
201
+ ].join(" "),
202
+ task: [
203
+ "ds:border-dashed",
204
+ "ds:[--calendar-event-bg:var(--muted)]",
205
+ "ds:[--calendar-event-text:var(--muted-foreground)]",
206
+ "ds:[--calendar-event-border:color-mix(in_srgb,currentcolor_45%,transparent)]"
207
+ ].join(" ")
208
+ },
209
+ // Tinted colour scheme — the chip-family look: the picker colour
210
+ // becomes a SOLID BORDER over a light tint of itself (theme-aware
211
+ // via color-mix with --card), text on the theme's foreground
212
+ // tokens. Custom-property assignments only — the painted
213
+ // declarations stay in the base. The runtime hex arrives as
214
+ // `--calendar-event-accent` (inline). Never combined with the task
215
+ // variant: the component forces `solid` for tasks so exactly one
216
+ // class-level assignment of each property exists per render.
217
+ colorStyle: {
218
+ solid: "",
219
+ tinted: [
220
+ "ds:[--calendar-event-bg:color-mix(in_srgb,var(--calendar-event-accent,var(--primary))_12%,var(--card))]",
221
+ "ds:[--calendar-event-text:var(--foreground)]",
222
+ "ds:[--calendar-event-border:var(--calendar-event-accent,var(--primary))]"
223
+ ].join(" ")
224
+ }
225
+ },
226
+ defaultVariants: {
227
+ status: "none",
228
+ bookedOnline: !1,
229
+ kind: "appointment",
230
+ colorStyle: "solid"
231
+ }
232
+ }
233
+ ), fe = q(
234
+ ({
235
+ title: a,
236
+ suffix: r,
237
+ rangeText: n,
238
+ showTime: t = !0,
239
+ allDay: d = !1,
240
+ status: s,
241
+ backgroundColor: o,
242
+ textColor: p,
243
+ borderColor: h,
244
+ isBookedOnline: g = !1,
245
+ hasUnassignedPatient: N,
246
+ hasHighlightedAnamnesis: w,
247
+ hasBillableAmount: k,
248
+ isTelehealth: y,
249
+ isRecurring: z,
250
+ isTask: l = !1,
251
+ isDraft: u = !1,
252
+ colorStyle: j = "solid",
253
+ resourceLabel: A,
254
+ privacyMasked: $ = !1,
255
+ eventId: L,
256
+ className: C,
257
+ style: I,
258
+ "aria-label": B,
259
+ ...O
260
+ }, M) => {
261
+ const { t: b } = G(), x = s ? me[s] : null, H = !!x || !!g || !!N || !!w || !!k || !!y || !!z, R = s ? b(ue[s]) : void 0, V = u ? b("calendar.eventKind.draft") : l ? b("calendar.eventKind.task") : void 0, K = B ?? [a, n, A, R, V].filter(Boolean).join(", "), v = !l && !u && j === "tinted", _ = !v && !p && o ? ce(o) : null, S = v ? o ? { "--calendar-event-accent": o } : void 0 : o || p || h ? {
262
+ ...o ? { "--calendar-event-bg": o } : {},
263
+ ...p ? { "--calendar-event-text": p } : _ === "on-light" ? { "--calendar-event-text": "var(--event-ink-on-light)" } : _ === "on-dark" ? { "--calendar-event-text": "var(--event-ink-on-dark)" } : {},
264
+ ...h ? { "--calendar-event-border": h } : {}
265
+ } : void 0, U = I || S ? { ...I, ...S } : void 0;
266
+ return /* @__PURE__ */ c(
267
+ "div",
268
+ {
269
+ ref: M,
270
+ ...O,
271
+ className: ve({
272
+ status: s ?? "none",
273
+ bookedOnline: g,
274
+ kind: u ? "draft" : l ? "task" : "appointment",
275
+ colorStyle: v ? "tinted" : "solid",
276
+ className: C
277
+ }),
278
+ style: U,
279
+ "aria-label": K,
280
+ "data-component": "calendar-event-card",
281
+ "data-event-id": L,
282
+ "data-kind": u ? "draft" : l ? "task" : "appointment",
283
+ "data-status": s ?? "none",
284
+ "data-contrast": v ? "tinted" : p ? "custom" : _ ?? "default",
285
+ children: [
286
+ l ? (
287
+ /* Task cards lead with ONE line — glyph + title inline. A task is
288
+ typically a 30-min block whose visible height fits a single
289
+ line; the appointment layout below would spend that line on the
290
+ indicator row and clip the title entirely. Tasks carry none of
291
+ the appointment flags, so the row loses nothing. */
292
+ /* @__PURE__ */ c("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
293
+ /* @__PURE__ */ e(
294
+ "span",
295
+ {
296
+ "aria-hidden": "true",
297
+ className: `${i} ds:text-[color:var(--muted-foreground)]`,
298
+ children: /* @__PURE__ */ e(W, { size: 11, "aria-hidden": "true" })
299
+ }
300
+ ),
301
+ t && !d && n ? /* @__PURE__ */ e("span", { className: "ds:whitespace-nowrap ds:text-[length:var(--font-size-xs)]", children: n }) : null,
302
+ /* @__PURE__ */ e("span", { className: "ds:[min-inline-size:0] ds:font-[var(--font-weight-semibold)] ds:truncate ds:text-start", children: $ ? /* @__PURE__ */ c("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
303
+ /* @__PURE__ */ e(E, { size: 12, "aria-hidden": "true" }),
304
+ a
305
+ ] }) : a })
306
+ ] })
307
+ ) : (
308
+ /* Platform-density layout with STRUCTURAL overlap-safety: the
309
+ first row is a flex pair — an inline-flowing text cell (time,
310
+ then the semibold name; wraps when taller cards allow) beside
311
+ a fixed icon column. Flex cells cannot paint over each other,
312
+ unlike a float (inline text paints ABOVE floats, which
313
+ produced glyphs-through-icons in sliver-width columns). A
314
+ one-line sliver still reads "09:15 Name" plus icons. */
315
+ /* @__PURE__ */ c("span", { className: "ds:flex ds:h-full ds:items-stretch ds:gap-[var(--spacing-2xs)]", children: [
316
+ /* @__PURE__ */ c("span", { className: "ds:min-w-0 ds:flex-1 ds:overflow-hidden ds:break-normal", children: [
317
+ t && !d && n ? (
318
+ // No opacity here — composing 70% over saturated bgs drops
319
+ // effective contrast below WCAG AA. The smaller
320
+ // font-size-xs vs the title's font-weight-semibold provides
321
+ // sufficient visual hierarchy.
322
+ /* @__PURE__ */ e("span", { className: "ds:me-[var(--spacing-2xs)] ds:whitespace-nowrap ds:text-[length:var(--font-size-xs)]", children: n })
323
+ ) : null,
324
+ /* @__PURE__ */ e("span", { className: "ds:font-[var(--font-weight-semibold)]", children: $ ? (
325
+ /* The eye + mask get their own start padding so the
326
+ redaction doesn't crowd the time. */
327
+ /* @__PURE__ */ c("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)] ds:ps-[var(--spacing-2xs)] ds:align-middle", children: [
328
+ /* @__PURE__ */ e(E, { size: 12, "aria-hidden": "true" }),
329
+ a
330
+ ] })
331
+ ) : a }),
332
+ r ? (
333
+ /* Second line inside the text cell — beside the plate,
334
+ never beneath it. */
335
+ /* @__PURE__ */ e("span", { className: "ds:block ds:truncate ds:text-[length:var(--font-size-xs)]", children: r })
336
+ ) : null
337
+ ] }),
338
+ /* @__PURE__ */ c(
339
+ "span",
340
+ {
341
+ className: H ? (
342
+ /* Vertically CENTRED indicator column — each disc is
343
+ its own card-surface circle, so no plate and no
344
+ colour-on-colour. */
345
+ "ds:flex ds:shrink-0 ds:items-center ds:gap-[var(--spacing-2xs)] ds:self-center"
346
+ ) : "ds:hidden",
347
+ children: [
348
+ x && s ? /* @__PURE__ */ e(
349
+ "span",
350
+ {
351
+ "aria-hidden": "true",
352
+ className: `${i} ${m[pe[s]]}`,
353
+ children: /* @__PURE__ */ e(x, { size: 11, "aria-hidden": "true" })
354
+ }
355
+ ) : null,
356
+ g ? /* @__PURE__ */ e(
357
+ "span",
358
+ {
359
+ "aria-hidden": "true",
360
+ className: `${i} ${m.info}`,
361
+ children: /* @__PURE__ */ e(J, { size: 11, "aria-hidden": "true" })
362
+ }
363
+ ) : null,
364
+ N ? /* @__PURE__ */ e(
365
+ "span",
366
+ {
367
+ "aria-hidden": "true",
368
+ className: `${i} ${m.warning}`,
369
+ children: /* @__PURE__ */ e(P, { size: 11, "aria-hidden": "true" })
370
+ }
371
+ ) : null,
372
+ w ? /* @__PURE__ */ e(
373
+ "span",
374
+ {
375
+ "aria-hidden": "true",
376
+ className: `${i} ${m.accent}`,
377
+ children: /* @__PURE__ */ e(Q, { size: 11, "aria-hidden": "true" })
378
+ }
379
+ ) : null,
380
+ k ? /* @__PURE__ */ e(
381
+ "span",
382
+ {
383
+ "aria-hidden": "true",
384
+ className: `${i} ${m.warning}`,
385
+ children: /* @__PURE__ */ e(re, { size: 11, "aria-hidden": "true" })
386
+ }
387
+ ) : null,
388
+ y ? /* @__PURE__ */ e(
389
+ "span",
390
+ {
391
+ "aria-hidden": "true",
392
+ className: `${i} ${m.info}`,
393
+ children: /* @__PURE__ */ e(X, { size: 11, "aria-hidden": "true" })
394
+ }
395
+ ) : null,
396
+ z ? /* @__PURE__ */ e(
397
+ "span",
398
+ {
399
+ "aria-hidden": "true",
400
+ className: `${i} ${m.info}`,
401
+ children: /* @__PURE__ */ e(T, { size: 11, "aria-hidden": "true" })
402
+ }
403
+ ) : null
404
+ ]
405
+ }
406
+ )
407
+ ] })
408
+ ),
409
+ l && t && !d && n ? /* @__PURE__ */ e("span", { className: "ds:text-[length:var(--font-size-xs)]", children: n }) : null,
410
+ l && r ? (
411
+ /* Task cards keep the below-row suffix (their branch has no
412
+ text cell / plate split). */
413
+ /* @__PURE__ */ e("span", { className: "ds:block ds:truncate ds:text-[length:var(--font-size-xs)]", children: r })
414
+ ) : null
415
+ ]
416
+ }
417
+ );
418
+ }
419
+ );
420
+ fe.displayName = "CalendarEventCard";
421
+ export {
422
+ fe as C,
423
+ Ae as w
424
+ };
425
+ //# sourceMappingURL=calendar-event-card-Bjdbik8G.js.map
@@ -7,9 +7,9 @@ import { P as A } from "./progress-CK8otcQ-.js";
7
7
  import { T as C } from "./timestamp-BV2lC-wV.js";
8
8
  import { T as L } from "./transaction-chip-DJCstquX.js";
9
9
  import { A as O, b as G, c as Y, a as $ } from "./accordion-C11v9ouP.js";
10
- import { C as q } from "./care-plan-entry-card-CMpoeNkb.js";
10
+ import { C as q } from "./care-plan-entry-card-BEhANdBE.js";
11
11
  import { u as J } from "./registry-DvAUVLHh.js";
12
- import { C as Q, e as W } from "./entity-card-9_62gY7l.js";
12
+ import { C as Q, e as W } from "./entity-card-DmrgYSEX.js";
13
13
  import { i as X } from "./is-safe-url-DkETxeHz.js";
14
14
  const Z = {
15
15
  id: "care-plan-card",
@@ -253,4 +253,4 @@ export {
253
253
  de as C,
254
254
  Z as c
255
255
  };
256
- //# sourceMappingURL=care-plan-card-DQjVRDxO.js.map
256
+ //# sourceMappingURL=care-plan-card-aDN4oem9.js.map
@@ -10,7 +10,7 @@ import { T as J } from "./tooth-scheme-WdyVymQ1.js";
10
10
  import { C as Q, b as X, a as Z } from "./collapsible-CTjxzGuF.js";
11
11
  import { u as ee } from "./registry-DvAUVLHh.js";
12
12
  import { C as ae } from "./chevron-down-DWE7GSq9.js";
13
- import { e as te } from "./entity-card-9_62gY7l.js";
13
+ import { e as te } from "./entity-card-DmrgYSEX.js";
14
14
  const re = {
15
15
  id: "care-plan-entry-card",
16
16
  // `expand` is host-delegated: the per-phase breakdown is an in-component
@@ -319,4 +319,4 @@ export {
319
319
  le as C,
320
320
  re as c
321
321
  };
322
- //# sourceMappingURL=care-plan-entry-card-CMpoeNkb.js.map
322
+ //# sourceMappingURL=care-plan-entry-card-BEhANdBE.js.map
@@ -7,7 +7,7 @@ import { L as O } from "./link-CPb_pZPr.js";
7
7
  import { S as $ } from "./separator-CYU_bGFn.js";
8
8
  import { T as A } from "./timestamp-BV2lC-wV.js";
9
9
  import { u as q } from "./registry-DvAUVLHh.js";
10
- import { C as J, e as Q } from "./entity-card-9_62gY7l.js";
10
+ import { C as J, e as Q } from "./entity-card-DmrgYSEX.js";
11
11
  import { i as W } from "./is-safe-url-DkETxeHz.js";
12
12
  const X = {
13
13
  id: "care-plan-header",
@@ -195,4 +195,4 @@ export {
195
195
  ee as C,
196
196
  X as c
197
197
  };
198
- //# sourceMappingURL=care-plan-header-CxYoq23f.js.map
198
+ //# sourceMappingURL=care-plan-header-CkpPyQqG.js.map