@alfadocs/ui-kit 1.44.0 → 1.46.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 (156) hide show
  1. package/dist/_chunks/{actions-cell-renderer-BXBy9c0f.js → actions-cell-renderer-B5m9lwgC.js} +2 -2
  2. package/dist/_chunks/ai-credits-notice-xszqOZTC.js +90 -0
  3. package/dist/_chunks/ai-credits-notice.agent-C9L7orrP.js +17 -0
  4. package/dist/_chunks/{ai-consent-banner-D7I2U-cz.js → ai-permission-notice-D7I2U-cz.js} +1 -1
  5. package/dist/_chunks/ai-sparkle-D23NT8Z_.js +45 -0
  6. package/dist/_chunks/{anamnesis-summary-rows-DQUqwWc1.js → anamnesis-summary-rows-DI-UX5r6.js} +2 -2
  7. package/dist/_chunks/{appointment-card-TgR_2GKS.js → appointment-card-DluZy8Iv.js} +2 -2
  8. package/dist/_chunks/{appointment-peek-abiR0T9e.js → appointment-peek-BsfCpiJs.js} +3 -3
  9. package/dist/_chunks/{appointment-timeline-CCnyUYKz.js → appointment-timeline-Cs5f9viN.js} +3 -3
  10. package/dist/_chunks/{appointment-tray-N0yEI8UF.js → appointment-tray-CLrGGnKR.js} +2 -2
  11. package/dist/_chunks/baby-Dku-Xvg9.js +23 -0
  12. package/dist/_chunks/{balance-badge-cell-o6LldMUA.js → balance-badge-cell-YGrYdrvR.js} +3 -3
  13. package/dist/_chunks/{booking-D43ASl8y.js → booking-B7gA9gFB.js} +279 -296
  14. package/dist/_chunks/button-group-CA1tmu39.js +325 -0
  15. package/dist/_chunks/{calendar-U6N0F99w.js → calendar-OzSeTb4V.js} +2 -2
  16. package/dist/_chunks/{calendar-event-card-DKUnT9Be.js → calendar-event-card-B6N5h1dO.js} +57 -48
  17. package/dist/_chunks/{calendar-workspace-DBYAtdyd.js → calendar-workspace-BB-BZT7W.js} +3002 -2912
  18. package/dist/_chunks/{chart-PF2krCZC.js → chart-D8ucl8hH.js} +2 -2
  19. package/dist/_chunks/{data-table-CcAx_I1w.js → data-table-DnKOmEVw.js} +2 -2
  20. package/dist/_chunks/{editable-currency-cell-renderer-Psb6XKHR.js → editable-currency-cell-renderer-OUkUv7U4.js} +2 -2
  21. package/dist/_chunks/{face-scheme-Bm6pe7R8.js → face-scheme-mIhwrQXt.js} +3 -3
  22. package/dist/_chunks/{file-manager-BfLQxF5t.js → file-manager-DOcJGIx2.js} +4 -4
  23. package/dist/_chunks/{header-settings-CTe45iDy.js → header-settings-BEfx_-TF.js} +2 -2
  24. package/dist/_chunks/{help-me-write-templates-GUeEn3Ff.js → help-me-write-templates-DHIwa4xR.js} +205 -199
  25. package/dist/_chunks/{hover-card-BMJBVqIf.js → hover-card-nUae8NPJ.js} +67 -62
  26. package/dist/_chunks/{icon-button-group-DkkdIygu.js → icon-button-group-DZKC6KGf.js} +181 -168
  27. package/dist/_chunks/kit-extensions-DuoFF1R3.js +94 -0
  28. package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js → marketplace-app-shell-PB89Dkk_.js} +2 -2
  29. package/dist/_chunks/{notes-panel-CY4KmDo-.js → notes-panel-CHbDDMx8.js} +83 -73
  30. package/dist/_chunks/{patient-details-C8ImUrVg.js → patient-details-DUj1htsH.js} +2 -2
  31. package/dist/_chunks/{patient-field-row-BRSOKvme.js → patient-field-row-CO0WR7yA.js} +2 -2
  32. package/dist/_chunks/{patient-summary-card-BhmKB2KR.js → patient-summary-card-DNzdYjxE.js} +59 -45
  33. package/dist/_chunks/rich-text-editor-BwDV2XkZ.js +4153 -0
  34. package/dist/_chunks/{tasks-panel-CpcikOeY.js → tasks-panel-DncuBPIZ.js} +2 -2
  35. package/dist/_chunks/{theme-toggle-bI0pgDDv.js → theme-toggle-BP0XRGMM.js} +2 -2
  36. package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js +76 -0
  37. package/dist/_chunks/{workflow-status-xeaJTzD3.js → workflow-status-CuJAOuKL.js} +43 -42
  38. package/dist/agent-catalog.json +32 -4
  39. package/dist/agent-i18n/en.json +1 -1
  40. package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts +3 -0
  41. package/dist/components/ai-credits-notice/ai-credits-notice.d.ts +48 -0
  42. package/dist/components/ai-credits-notice/index.d.ts +4 -0
  43. package/dist/components/ai-credits-notice/index.js +7 -0
  44. package/dist/components/{ai-consent-banner/ai-consent-banner.agent.d.ts → ai-permission-notice/ai-permission-notice.agent.d.ts} +2 -2
  45. package/dist/components/{ai-consent-banner/ai-consent-banner.d.ts → ai-permission-notice/ai-permission-notice.d.ts} +1 -1
  46. package/dist/components/ai-permission-notice/index.d.ts +4 -0
  47. package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js +1 -1
  48. package/dist/components/ai-sparkle/ai-sparkle.d.ts +24 -0
  49. package/dist/components/ai-sparkle/index.d.ts +3 -0
  50. package/dist/components/ai-sparkle/index.js +5 -0
  51. package/dist/components/appointment-card/index.js +2 -2
  52. package/dist/components/appointment-peek/index.js +1 -1
  53. package/dist/components/appointment-timeline/index.js +1 -1
  54. package/dist/components/booking/index.js +1 -1
  55. package/dist/components/button-group/index.js +1 -1
  56. package/dist/components/calendar/index.js +1 -1
  57. package/dist/components/calendar-event-card/index.js +1 -1
  58. package/dist/components/chart/index.js +1 -1
  59. package/dist/components/data-table/index.js +3 -3
  60. package/dist/components/face-scheme/index.js +1 -1
  61. package/dist/components/file-manager/index.js +1 -1
  62. package/dist/components/header-settings/index.js +1 -1
  63. package/dist/components/hover-card/hover-card.d.ts +4 -0
  64. package/dist/components/hover-card/index.d.ts +1 -1
  65. package/dist/components/hover-card/index.js +3 -2
  66. package/dist/components/icon-button-group/index.js +1 -1
  67. package/dist/components/index.d.ts +5 -3
  68. package/dist/components/notes-panel/index.js +1 -1
  69. package/dist/components/notes-panel/notes-panel.d.ts +10 -0
  70. package/dist/components/patient-details/index.js +1 -1
  71. package/dist/components/patient-summary-card/index.js +1 -1
  72. package/dist/components/patient-table/index.js +1 -1
  73. package/dist/components/rich-text-editor/editor-extensions.d.ts +54 -0
  74. package/dist/components/rich-text-editor/editor-toolbar.d.ts +2 -1
  75. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts +4 -0
  76. package/dist/components/rich-text-editor/index.d.ts +2 -0
  77. package/dist/components/rich-text-editor/index.js +6 -4
  78. package/dist/components/rich-text-editor/kit-extensions.d.ts +4 -0
  79. package/dist/components/rich-text-editor/rich-text-editor.d.ts +18 -2
  80. package/dist/components/tasks-panel/index.js +1 -1
  81. package/dist/components/theme-toggle/index.js +1 -1
  82. package/dist/components/workflow-status/index.js +1 -1
  83. package/dist/hooks/index.d.ts +1 -0
  84. package/dist/hooks/index.js +54 -48
  85. package/dist/hooks/use-ai-sparkle.d.ts +91 -0
  86. package/dist/host-compat.css +2 -2
  87. package/dist/i18n/locales/ar.d.ts +31 -0
  88. package/dist/i18n/locales/ar.js +33 -2
  89. package/dist/i18n/locales/de.d.ts +31 -0
  90. package/dist/i18n/locales/de.js +33 -2
  91. package/dist/i18n/locales/el.d.ts +31 -0
  92. package/dist/i18n/locales/el.js +33 -2
  93. package/dist/i18n/locales/en.d.ts +31 -0
  94. package/dist/i18n/locales/en.js +33 -2
  95. package/dist/i18n/locales/es.d.ts +31 -0
  96. package/dist/i18n/locales/es.js +33 -2
  97. package/dist/i18n/locales/fr.d.ts +31 -0
  98. package/dist/i18n/locales/fr.js +33 -2
  99. package/dist/i18n/locales/hi.d.ts +31 -0
  100. package/dist/i18n/locales/hi.js +33 -2
  101. package/dist/i18n/locales/it.d.ts +31 -0
  102. package/dist/i18n/locales/it.js +33 -2
  103. package/dist/i18n/locales/ja.d.ts +31 -0
  104. package/dist/i18n/locales/ja.js +33 -2
  105. package/dist/i18n/locales/nl.d.ts +31 -0
  106. package/dist/i18n/locales/nl.js +33 -2
  107. package/dist/i18n/locales/pl.d.ts +31 -0
  108. package/dist/i18n/locales/pl.js +33 -2
  109. package/dist/i18n/locales/pt.d.ts +31 -0
  110. package/dist/i18n/locales/pt.js +33 -2
  111. package/dist/i18n/locales/ro.d.ts +31 -0
  112. package/dist/i18n/locales/ro.js +33 -2
  113. package/dist/i18n/locales/ru.d.ts +31 -0
  114. package/dist/i18n/locales/ru.js +33 -2
  115. package/dist/i18n/locales/sq.d.ts +31 -0
  116. package/dist/i18n/locales/sq.js +33 -2
  117. package/dist/i18n/locales/sv.d.ts +31 -0
  118. package/dist/i18n/locales/sv.js +33 -2
  119. package/dist/i18n/locales/tr.d.ts +31 -0
  120. package/dist/i18n/locales/tr.js +33 -2
  121. package/dist/i18n/locales/zh.d.ts +31 -0
  122. package/dist/i18n/locales/zh.js +33 -2
  123. package/dist/index.js +1113 -1102
  124. package/dist/locales/ar.json +33 -2
  125. package/dist/locales/de.json +33 -2
  126. package/dist/locales/el.json +33 -2
  127. package/dist/locales/en.json +33 -2
  128. package/dist/locales/es.json +33 -2
  129. package/dist/locales/fr.json +33 -2
  130. package/dist/locales/hi.json +33 -2
  131. package/dist/locales/it.json +33 -2
  132. package/dist/locales/ja.json +33 -2
  133. package/dist/locales/nl.json +33 -2
  134. package/dist/locales/pl.json +33 -2
  135. package/dist/locales/pt.json +33 -2
  136. package/dist/locales/ro.json +33 -2
  137. package/dist/locales/ru.json +33 -2
  138. package/dist/locales/sq.json +33 -2
  139. package/dist/locales/sv.json +33 -2
  140. package/dist/locales/tr.json +33 -2
  141. package/dist/locales/zh.json +33 -2
  142. package/dist/patterns/anamnesis/index.js +1 -1
  143. package/dist/patterns/calendar/calendar-workspace.d.ts +6 -4
  144. package/dist/patterns/calendar/calendar.data.d.ts +9 -0
  145. package/dist/patterns/calendar/calendar.journey.d.ts +1 -1
  146. package/dist/patterns/calendar/calendar.sheets.d.ts +16 -5
  147. package/dist/patterns/calendar/calendar.types.d.ts +3 -1
  148. package/dist/patterns/calendar/index.js +1 -1
  149. package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +11 -2
  150. package/dist/patterns/help-me-write-templates/index.js +1 -1
  151. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  152. package/dist/tokens.css +1 -1
  153. package/package.json +14 -4
  154. package/dist/_chunks/button-group-R32U7SyV.js +0 -307
  155. package/dist/_chunks/rich-text-editor-BYE6kK4u.js +0 -3839
  156. package/dist/components/ai-consent-banner/index.d.ts +0 -4
@@ -0,0 +1,325 @@
1
+ import { jsx as s, jsxs as G } from "react/jsx-runtime";
2
+ import { forwardRef as Re, useRef as C, useState as se, useCallback as A, Children as K, isValidElement as ie, useEffect as Ie, cloneElement as $ } from "react";
3
+ import { c as he } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as xe } from "react-i18next";
5
+ import { I as ae } from "./icon-button-CehAeZoP.js";
6
+ import { D as N } from "./dropdown-menu-DU-Hrf33.js";
7
+ import { T as ke } from "./tooltip-Cp-PLePW.js";
8
+ import { u as Le } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
9
+ import { u as Ce } from "./use-priority-overflow-c9SjxZkZ.js";
10
+ import { E as le } from "./ellipsis-dRo9ouSU.js";
11
+ function V(g) {
12
+ g && (g.inert = !0);
13
+ }
14
+ const ue = he(
15
+ "ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10",
16
+ {
17
+ variants: {
18
+ orientation: {
19
+ horizontal: [
20
+ "ds:flex-row",
21
+ "ds:[&>*:not(:first-child)]:rounded-s-none",
22
+ "ds:[&>*:not(:last-child)]:rounded-e-none",
23
+ "ds:[&>*:not(:first-child)]:-ms-px"
24
+ ].join(" "),
25
+ vertical: [
26
+ "ds:flex-col",
27
+ "ds:[&>*:not(:first-child)]:rounded-t-none",
28
+ "ds:[&>*:not(:last-child)]:rounded-b-none",
29
+ "ds:[&>*:not(:first-child)]:-mt-px"
30
+ ].join(" ")
31
+ },
32
+ separator: {
33
+ true: "",
34
+ false: ""
35
+ }
36
+ },
37
+ compoundVariants: [
38
+ {
39
+ orientation: "horizontal",
40
+ separator: !0,
41
+ class: "ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border"
42
+ },
43
+ {
44
+ orientation: "vertical",
45
+ separator: !0,
46
+ class: "ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border"
47
+ }
48
+ ],
49
+ defaultVariants: {
50
+ orientation: "horizontal",
51
+ separator: !1
52
+ }
53
+ }
54
+ ), M = "ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none", Ae = Re(
55
+ ({
56
+ className: g,
57
+ orientation: f = "horizontal",
58
+ separator: P = !1,
59
+ toolbar: w = !1,
60
+ intent: v = "outline",
61
+ background: y = "transparent",
62
+ size: l,
63
+ label: ce,
64
+ overflow: pe = "none",
65
+ collapseToIcons: S = !1,
66
+ children: j,
67
+ ...O
68
+ }, R) => {
69
+ const { t: U } = xe(), _ = ce ?? U("buttonGroup.label", "Button group"), H = U("buttonGroup.more", "More options"), u = pe === "menu" && f !== "vertical", c = w, m = C([]), [p, I] = se(0), W = C(null), [B, de] = se(!1);
70
+ Le(() => {
71
+ if (typeof window > "u") return;
72
+ const e = W.current;
73
+ e && de(window.getComputedStyle(e).direction === "rtl");
74
+ }, []);
75
+ const q = A(
76
+ (e) => {
77
+ var h;
78
+ if (!c) return;
79
+ const r = m.current.filter(Boolean).length;
80
+ if (r === 0) return;
81
+ const t = f === "vertical" ? "ArrowDown" : B ? "ArrowLeft" : "ArrowRight", o = f === "vertical" ? "ArrowUp" : B ? "ArrowRight" : "ArrowLeft";
82
+ let n = null;
83
+ if (e.key === t ? n = (p + 1) % r : e.key === o ? n = (p - 1 + r) % r : e.key === "Home" ? n = 0 : e.key === "End" && (n = r - 1), n === null) return;
84
+ const a = r;
85
+ let i = 0, d = n;
86
+ for (; i < a; ) {
87
+ const x = m.current[d];
88
+ if (x && x.getAttribute("aria-disabled") !== "true" && !x.disabled)
89
+ break;
90
+ d = e.key === o || e.key === "End" ? (d - 1 + r) % r : (d + 1) % r, i += 1;
91
+ }
92
+ e.preventDefault(), I(d), (h = m.current[d]) == null || h.focus();
93
+ },
94
+ [c, f, B, p]
95
+ ), b = u ? K.toArray(j).filter(ie) : [], D = (e) => {
96
+ if (typeof e.props.children == "string") return e.props.children;
97
+ const r = e.props["aria-label"];
98
+ return typeof r == "string" ? r : null;
99
+ };
100
+ C(!1);
101
+ const fe = b.map((e) => {
102
+ const r = e.props["data-overflow-pin"] !== void 0, t = D(e) !== null;
103
+ return r || !t;
104
+ }), {
105
+ containerRef: me,
106
+ fullRowRef: J,
107
+ iconRowRef: Q,
108
+ triggerProbeRef: X,
109
+ stage: be,
110
+ visible: F,
111
+ overflowing: k
112
+ } = Ce({
113
+ enabled: u,
114
+ count: b.length,
115
+ twoStage: S,
116
+ pinned: fe
117
+ }), ge = A(
118
+ (e) => {
119
+ V(e), J(e);
120
+ },
121
+ [J]
122
+ ), we = A(
123
+ (e) => {
124
+ V(e), Q(e);
125
+ },
126
+ [Q]
127
+ ), ve = A(
128
+ (e) => {
129
+ V(e), X(e);
130
+ },
131
+ [X]
132
+ ), Y = C(null), L = u ? F.filter(Boolean).length : K.count(j);
133
+ Ie(() => {
134
+ var r;
135
+ if (!c || !u) return;
136
+ const e = L + (k ? 1 : 0);
137
+ e > 0 && p >= e && (I(e - 1), document.activeElement === document.body && ((r = Y.current) == null || r.focus()));
138
+ }, [
139
+ c,
140
+ u,
141
+ L,
142
+ k,
143
+ p
144
+ ]);
145
+ const Z = (e, r) => (t) => {
146
+ m.current[r] = t;
147
+ const o = e.ref;
148
+ typeof o == "function" ? o(t) : o != null && typeof o == "object" && (o.current = t);
149
+ }, ye = u ? null : K.map(j, (e, r) => {
150
+ if (!ie(e)) return e;
151
+ const t = e, o = {
152
+ intent: t.props.intent ?? v,
153
+ background: t.props.background ?? y,
154
+ ...l ? { size: t.props.size ?? l } : null
155
+ };
156
+ return c && (o.tabIndex = r === p ? 0 : -1, o.onFocus = (n) => {
157
+ var a, i;
158
+ I(r), (i = (a = t.props).onFocus) == null || i.call(a, n);
159
+ }, o.ref = Z(t, r)), $(
160
+ t,
161
+ o
162
+ );
163
+ });
164
+ let E = null, ee = null;
165
+ if (u) {
166
+ m.current.length = L + (k ? 1 : 0);
167
+ let e = -1;
168
+ E = b.map((r, t) => {
169
+ if (!F[t]) return null;
170
+ e += 1;
171
+ const o = e, n = {
172
+ intent: r.props.intent ?? v,
173
+ background: r.props.background ?? y,
174
+ ...l ? { size: r.props.size ?? l } : null
175
+ };
176
+ S && be === "icons" && r.props.children && (r.props.startIcon || r.props.endIcon) && (n.hideLabel = !0), c && (n.tabIndex = o === p ? 0 : -1, n.onFocus = (x) => {
177
+ var oe, ne;
178
+ I(o), (ne = (oe = r.props).onFocus) == null || ne.call(oe, x);
179
+ }, n.ref = Z(r, o));
180
+ const a = n.hideLabel === !0, i = $(
181
+ r,
182
+ n
183
+ ), d = r.props["data-overflow-tip"] === !1 || r.props["data-overflow-tip"] === "false", h = a && !d ? D(r) : null;
184
+ return h ? /* @__PURE__ */ s(ke, { label: h, children: i }, r.key ?? t) : i;
185
+ }), ee = b.map((r, t) => {
186
+ if (F[t]) return null;
187
+ const o = D(r);
188
+ return o === null ? null : /* @__PURE__ */ s(
189
+ N.Item,
190
+ {
191
+ startIcon: r.props.startIcon,
192
+ disabled: r.props.disabled === !0 || r.props.loading === !0,
193
+ onSelect: (n) => {
194
+ var a, i;
195
+ (i = (a = r.props).onClick) == null || i.call(
196
+ a,
197
+ n
198
+ );
199
+ },
200
+ children: o
201
+ },
202
+ r.key ?? t
203
+ );
204
+ });
205
+ }
206
+ const re = (e) => {
207
+ W.current = e, typeof R == "function" ? R(e) : R && typeof R == "object" && (R.current = e);
208
+ };
209
+ if (!u)
210
+ return /* @__PURE__ */ s(
211
+ "div",
212
+ {
213
+ ref: re,
214
+ role: w ? "toolbar" : "group",
215
+ "aria-label": _,
216
+ "aria-orientation": w ? f ?? "horizontal" : void 0,
217
+ "data-component": "button-group",
218
+ onKeyDown: q,
219
+ className: ue({ orientation: f, separator: P, className: g }),
220
+ ...O,
221
+ children: ye
222
+ }
223
+ );
224
+ const z = ue({ orientation: f, separator: P }), T = L, te = (e, r, t) => $(e, {
225
+ key: e.key ?? r,
226
+ intent: e.props.intent ?? v,
227
+ background: e.props.background ?? y,
228
+ ...l ? { size: e.props.size ?? l } : null,
229
+ tabIndex: -1,
230
+ // Same rule as the live strip: icon-only children never hideLabel.
231
+ ...t && e.props.children && (e.props.startIcon || e.props.endIcon) ? { hideLabel: !0 } : null,
232
+ ref: null
233
+ });
234
+ return /* @__PURE__ */ s(
235
+ "div",
236
+ {
237
+ ref: re,
238
+ "data-component": "button-group",
239
+ className: [
240
+ "ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip",
241
+ g ?? ""
242
+ ].join(" ").trim(),
243
+ ...O,
244
+ children: /* @__PURE__ */ G("div", { ref: me, className: "ds:block ds:w-full ds:min-w-0", children: [
245
+ /* @__PURE__ */ s(
246
+ "div",
247
+ {
248
+ ref: ge,
249
+ "aria-hidden": "true",
250
+ inert: !0,
251
+ className: `${M} ${z}`,
252
+ children: b.map((e, r) => te(e, r, !1))
253
+ }
254
+ ),
255
+ S ? /* @__PURE__ */ s(
256
+ "div",
257
+ {
258
+ ref: we,
259
+ "aria-hidden": "true",
260
+ inert: !0,
261
+ className: `${M} ${z}`,
262
+ children: b.map((e, r) => te(e, r, !0))
263
+ }
264
+ ) : null,
265
+ /* @__PURE__ */ s(
266
+ "span",
267
+ {
268
+ ref: ve,
269
+ "aria-hidden": "true",
270
+ inert: !0,
271
+ className: M,
272
+ children: /* @__PURE__ */ s(
273
+ ae,
274
+ {
275
+ icon: /* @__PURE__ */ s(le, {}),
276
+ intent: v,
277
+ background: y,
278
+ size: l,
279
+ "aria-label": H,
280
+ tabIndex: -1
281
+ }
282
+ )
283
+ }
284
+ ),
285
+ /* @__PURE__ */ G(
286
+ "div",
287
+ {
288
+ role: w ? "toolbar" : "group",
289
+ "aria-label": _,
290
+ "aria-orientation": w ? "horizontal" : void 0,
291
+ onKeyDown: q,
292
+ className: `${z} ds:max-w-full ds:align-top`,
293
+ children: [
294
+ E,
295
+ k ? /* @__PURE__ */ G(N.Root, { children: [
296
+ /* @__PURE__ */ s(N.Trigger, { asChild: !0, children: /* @__PURE__ */ s(
297
+ ae,
298
+ {
299
+ icon: /* @__PURE__ */ s(le, {}),
300
+ intent: v,
301
+ background: y,
302
+ size: l,
303
+ "aria-label": H,
304
+ ref: (e) => {
305
+ Y.current = e, m.current[T] = e;
306
+ },
307
+ tabIndex: c ? p === T ? 0 : -1 : void 0,
308
+ onFocus: c ? () => I(T) : void 0
309
+ }
310
+ ) }),
311
+ /* @__PURE__ */ s(N.Content, { align: "end", children: ee })
312
+ ] }) : null
313
+ ]
314
+ }
315
+ )
316
+ ] })
317
+ }
318
+ );
319
+ }
320
+ );
321
+ Ae.displayName = "ButtonGroup";
322
+ export {
323
+ Ae as B
324
+ };
325
+ //# sourceMappingURL=button-group-CA1tmu39.js.map
@@ -12,7 +12,7 @@ import cr from "@fullcalendar/timeline";
12
12
  import ur from "@fullcalendar/interaction";
13
13
  import { u as fr } from "./use-prefers-reduced-motion-BMwIQRjB.js";
14
14
  import { u as mr } from "./registry-DvAUVLHh.js";
15
- import { w as pr, C as vr } from "./calendar-event-card-DKUnT9Be.js";
15
+ import { w as pr, C as vr } from "./calendar-event-card-B6N5h1dO.js";
16
16
  import { A as hr } from "./avatar-CkDeQOSI.js";
17
17
  import { B as gr } from "./button-CaUe1uyd.js";
18
18
  import { R as yr } from "./resource-chip-DYTG0IQQ.js";
@@ -1342,4 +1342,4 @@ export {
1342
1342
  Tr as c,
1343
1343
  be as r
1344
1344
  };
1345
- //# sourceMappingURL=calendar-U6N0F99w.js.map
1345
+ //# sourceMappingURL=calendar-OzSeTb4V.js.map
@@ -1,4 +1,4 @@
1
- import { jsxs as l, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
2
  import { forwardRef as M } from "react";
3
3
  import { useTranslation as T } from "react-i18next";
4
4
  import { c as W } from "./index-D2ZczOXr.js";
@@ -64,7 +64,7 @@ const ce = {
64
64
  done: J,
65
65
  cancelled: q,
66
66
  absent: Y
67
- }, 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)]", ue = "ds:inline-block ds:h-3 ds:w-[6ch] ds:align-middle ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)] ds:animate-[skeleton-pulse_calc(var(--animation-duration)*8)_ease-in-out_infinite] ds:motion-reduce:animate-none ds:forced-colors:bg-[GrayText] ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText] ds:forced-colors:animate-none", c = {
67
+ }, o = "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)]", ue = "ds:inline-block ds:h-3 ds:w-[6ch] ds:align-middle ds:rounded-[var(--radius-sm)] ds:bg-[var(--muted)] ds:animate-[skeleton-pulse_calc(var(--animation-duration)*8)_ease-in-out_infinite] ds:motion-reduce:animate-none ds:forced-colors:bg-[GrayText] ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText] ds:forced-colors:animate-none", c = {
68
68
  success: "ds:text-[color:var(--success-foreground)]",
69
69
  info: "ds:text-[color:var(--info-foreground)]",
70
70
  warning: "ds:text-[color:var(--warning-foreground)]",
@@ -78,14 +78,14 @@ const ce = {
78
78
  done: "success",
79
79
  cancelled: "error",
80
80
  absent: "warning"
81
- }, ve = {
81
+ }, pe = {
82
82
  confirmed: "calendar.status.confirmed",
83
83
  waiting: "calendar.status.waiting",
84
84
  in_care: "calendar.status.inCare",
85
85
  done: "calendar.status.done",
86
86
  cancelled: "calendar.status.cancelled",
87
87
  absent: "calendar.status.absent"
88
- }, pe = W(
88
+ }, fe = W(
89
89
  [
90
90
  // Block root; the appointment content is a wrap-capable flex row
91
91
  // (inline-flowing text cell beside the icon column — structurally
@@ -203,7 +203,7 @@ const ce = {
203
203
  colorStyle: "solid"
204
204
  }
205
205
  }
206
- ), fe = M(
206
+ ), ve = M(
207
207
  ({
208
208
  title: a,
209
209
  suffix: r,
@@ -211,7 +211,7 @@ const ce = {
211
211
  showTime: d = !0,
212
212
  allDay: t = !1,
213
213
  status: s,
214
- backgroundColor: o,
214
+ backgroundColor: l,
215
215
  textColor: m,
216
216
  borderColor: h,
217
217
  isBookedOnline: g = !1,
@@ -222,7 +222,7 @@ const ce = {
222
222
  isRecurring: z,
223
223
  isTask: u = !1,
224
224
  isDraft: b = !1,
225
- detailsPending: v = !1,
225
+ detailsPending: p = !1,
226
226
  colorStyle: j = "solid",
227
227
  resourceLabel: B,
228
228
  privacyMasked: I = !1,
@@ -232,21 +232,21 @@ const ce = {
232
232
  "aria-label": O,
233
233
  ...R
234
234
  }, U) => {
235
- const { t: p } = T(), x = s ? ce[s] : null, G = !!x || !!g || !!N || !!w || !!k || !!S || !!z, H = s ? p(ve[s]) : void 0, K = v ? p("calendar.eventKind.pendingDetails") : b ? p("calendar.eventKind.draft") : u ? p("calendar.eventKind.task") : void 0, V = O ?? [a, n, B, H, K].filter(Boolean).join(", "), $ = v ? "pending-details" : b ? "draft" : u ? "task" : "appointment", f = !u && !b && j === "tinted", _ = !f && !m && o ? le(o) : null, E = f ? o ? { "--calendar-event-accent": o } : void 0 : o || m || h ? {
236
- ...o ? { "--calendar-event-bg": o } : {},
235
+ const { t: f } = T(), x = s ? ce[s] : null, G = !!x || !!g || !!N || !!w || !!k || !!S || !!z, H = s ? f(pe[s]) : void 0, K = p ? f("calendar.eventKind.pendingDetails") : b ? f("calendar.eventKind.draft") : u ? f("calendar.eventKind.task") : void 0, V = O ?? [a, n, B, H, K].filter(Boolean).join(", "), $ = p ? "pending-details" : b ? "draft" : u ? "task" : "appointment", v = !u && !b && j === "tinted", _ = !v && !m && l ? le(l) : null, E = v ? l ? { "--calendar-event-accent": l } : void 0 : l || m || h ? {
236
+ ...l ? { "--calendar-event-bg": l } : {},
237
237
  ...m ? { "--calendar-event-text": m } : _ === "on-light" ? { "--calendar-event-text": "var(--event-ink-on-light)" } : _ === "on-dark" ? { "--calendar-event-text": "var(--event-ink-on-dark)" } : {},
238
238
  ...h ? { "--calendar-event-border": h } : {}
239
239
  } : void 0, D = y || E ? { ...y, ...E } : void 0;
240
- return /* @__PURE__ */ l(
240
+ return /* @__PURE__ */ i(
241
241
  "div",
242
242
  {
243
243
  ref: U,
244
244
  ...R,
245
- className: pe({
245
+ className: fe({
246
246
  status: s ?? "none",
247
247
  bookedOnline: g,
248
248
  kind: $,
249
- colorStyle: f ? "tinted" : "solid",
249
+ colorStyle: v ? "tinted" : "solid",
250
250
  className: A
251
251
  }),
252
252
  style: D,
@@ -255,25 +255,25 @@ const ce = {
255
255
  "data-event-id": L,
256
256
  "data-kind": $,
257
257
  "data-status": s ?? "none",
258
- "data-contrast": f ? "tinted" : m ? "custom" : _ ?? "default",
258
+ "data-contrast": v ? "tinted" : m ? "custom" : _ ?? "default",
259
259
  children: [
260
- u && !v ? (
260
+ u && !p ? (
261
261
  /* Task cards lead with ONE line — glyph + title inline. A task is
262
262
  typically a 30-min block whose visible height fits a single
263
263
  line; the appointment layout below would spend that line on the
264
264
  indicator row and clip the title entirely. Tasks carry none of
265
265
  the appointment flags, so the row loses nothing. */
266
- /* @__PURE__ */ l("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
266
+ /* @__PURE__ */ i("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
267
267
  /* @__PURE__ */ e(
268
268
  "span",
269
269
  {
270
270
  "aria-hidden": "true",
271
- className: `${i} ds:text-[color:var(--muted-foreground)]`,
271
+ className: `${o} ds:text-[color:var(--muted-foreground)]`,
272
272
  children: /* @__PURE__ */ e(X, { size: 11, "aria-hidden": "true" })
273
273
  }
274
274
  ),
275
275
  d && !t && n ? /* @__PURE__ */ e("span", { className: "ds:whitespace-nowrap ds:text-[length:var(--font-size-xs)]", children: n }) : null,
276
- /* @__PURE__ */ e("span", { className: "ds:[min-inline-size:0] ds:font-[var(--font-weight-semibold)] ds:truncate ds:text-start", children: I ? /* @__PURE__ */ l("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
276
+ /* @__PURE__ */ e("span", { className: "ds:[min-inline-size:0] ds:font-[var(--font-weight-semibold)] ds:truncate ds:text-start", children: I ? /* @__PURE__ */ i("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)]", children: [
277
277
  /* @__PURE__ */ e(C, { size: 12, "aria-hidden": "true" }),
278
278
  a
279
279
  ] }) : a })
@@ -286,33 +286,42 @@ const ce = {
286
286
  unlike a float (inline text paints ABOVE floats, which
287
287
  produced glyphs-through-icons in sliver-width columns). A
288
288
  one-line sliver still reads "09:15 Name" plus icons. */
289
- /* @__PURE__ */ l("span", { className: "ds:flex ds:h-full ds:items-stretch ds:gap-[var(--spacing-2xs)]", children: [
290
- /* @__PURE__ */ l("span", { className: "ds:min-w-[var(--spacing-2xl)] ds:flex-1 ds:overflow-hidden ds:break-normal", children: [
291
- d && !t && n ? (
292
- // No opacity here — composing 70% over saturated bgs drops
293
- // effective contrast below WCAG AA. The smaller
294
- // font-size-xs vs the title's font-weight-semibold provides
295
- // sufficient visual hierarchy.
296
- /* @__PURE__ */ e("span", { className: "ds:me-[var(--spacing-2xs)] ds:whitespace-nowrap ds:text-[length:var(--font-size-xs)]", children: n })
297
- ) : null,
298
- /* @__PURE__ */ e("span", { className: "ds:font-[var(--font-weight-semibold)]", children: v ? (
299
- /* No name yet — and nothing invented in its place. */
300
- /* @__PURE__ */ e("span", { "aria-hidden": "true", className: ue })
301
- ) : I ? (
302
- /* The eye + mask get their own start padding so the
303
- redaction doesn't crowd the time. */
304
- /* @__PURE__ */ l("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)] ds:ps-[var(--spacing-2xs)] ds:align-middle", children: [
305
- /* @__PURE__ */ e(C, { size: 12, "aria-hidden": "true" }),
306
- a
307
- ] })
308
- ) : a }),
289
+ /* @__PURE__ */ i("span", { className: "ds:flex ds:h-full ds:items-stretch ds:gap-[var(--spacing-2xs)]", children: [
290
+ /* @__PURE__ */ i("span", { className: "ds:min-w-[var(--spacing-2xl)] ds:flex-1 ds:overflow-hidden ds:break-normal", children: [
291
+ /* @__PURE__ */ i("span", { className: "ds:flex ds:min-w-0 ds:items-baseline ds:gap-[var(--spacing-2xs)]", children: [
292
+ d && !t && n ? (
293
+ // No opacity here — composing 70% over saturated bgs drops
294
+ // effective contrast below WCAG AA. The smaller
295
+ // font-size-xs vs the title's font-weight-semibold provides
296
+ // sufficient visual hierarchy.
297
+ /* @__PURE__ */ e(
298
+ "span",
299
+ {
300
+ className: "ds:max-w-[55%] ds:shrink-0 ds:truncate ds:whitespace-nowrap ds:text-[length:var(--font-size-xs)]",
301
+ title: n,
302
+ children: n
303
+ }
304
+ )
305
+ ) : null,
306
+ /* @__PURE__ */ e("span", { className: "ds:min-w-0 ds:flex-1 ds:truncate ds:font-[var(--font-weight-semibold)]", children: p ? (
307
+ /* No name yet — and nothing invented in its place. */
308
+ /* @__PURE__ */ e("span", { "aria-hidden": "true", className: ue })
309
+ ) : I ? (
310
+ /* The eye + mask get their own start padding so the
311
+ redaction doesn't crowd the time. */
312
+ /* @__PURE__ */ i("span", { className: "ds:inline-flex ds:items-center ds:gap-[var(--spacing-2xs)] ds:ps-[var(--spacing-2xs)] ds:align-middle", children: [
313
+ /* @__PURE__ */ e(C, { size: 12, "aria-hidden": "true" }),
314
+ a
315
+ ] })
316
+ ) : a })
317
+ ] }),
309
318
  r ? (
310
319
  /* Second line inside the text cell — beside the plate,
311
320
  never beneath it. */
312
321
  /* @__PURE__ */ e("span", { className: "ds:block ds:truncate ds:text-[length:var(--font-size-xs)]", children: r })
313
322
  ) : null
314
323
  ] }),
315
- /* @__PURE__ */ l(
324
+ /* @__PURE__ */ i(
316
325
  "span",
317
326
  {
318
327
  className: G ? (
@@ -335,7 +344,7 @@ const ce = {
335
344
  "span",
336
345
  {
337
346
  "aria-hidden": "true",
338
- className: `${i} ${c[me[s]]}`,
347
+ className: `${o} ${c[me[s]]}`,
339
348
  children: /* @__PURE__ */ e(x, { size: 11, "aria-hidden": "true" })
340
349
  }
341
350
  ) : null,
@@ -343,7 +352,7 @@ const ce = {
343
352
  "span",
344
353
  {
345
354
  "aria-hidden": "true",
346
- className: `${i} ${c.info}`,
355
+ className: `${o} ${c.info}`,
347
356
  children: /* @__PURE__ */ e(P, { size: 11, "aria-hidden": "true" })
348
357
  }
349
358
  ) : null,
@@ -351,7 +360,7 @@ const ce = {
351
360
  "span",
352
361
  {
353
362
  "aria-hidden": "true",
354
- className: `${i} ${c.warning}`,
363
+ className: `${o} ${c.warning}`,
355
364
  children: /* @__PURE__ */ e(ee, { size: 11, "aria-hidden": "true" })
356
365
  }
357
366
  ) : null,
@@ -359,7 +368,7 @@ const ce = {
359
368
  "span",
360
369
  {
361
370
  "aria-hidden": "true",
362
- className: `${i} ${c.accent}`,
371
+ className: `${o} ${c.accent}`,
363
372
  children: /* @__PURE__ */ e(ne, { size: 11, "aria-hidden": "true" })
364
373
  }
365
374
  ) : null,
@@ -367,7 +376,7 @@ const ce = {
367
376
  "span",
368
377
  {
369
378
  "aria-hidden": "true",
370
- className: `${i} ${c.warning}`,
379
+ className: `${o} ${c.warning}`,
371
380
  children: /* @__PURE__ */ e(te, { size: 11, "aria-hidden": "true" })
372
381
  }
373
382
  ) : null,
@@ -375,7 +384,7 @@ const ce = {
375
384
  "span",
376
385
  {
377
386
  "aria-hidden": "true",
378
- className: `${i} ${c.info}`,
387
+ className: `${o} ${c.info}`,
379
388
  children: /* @__PURE__ */ e(re, { size: 11, "aria-hidden": "true" })
380
389
  }
381
390
  ) : null,
@@ -383,7 +392,7 @@ const ce = {
383
392
  "span",
384
393
  {
385
394
  "aria-hidden": "true",
386
- className: `${i} ${c.info}`,
395
+ className: `${o} ${c.info}`,
387
396
  children: /* @__PURE__ */ e(se, { size: 11, "aria-hidden": "true" })
388
397
  }
389
398
  ) : null
@@ -403,10 +412,10 @@ const ce = {
403
412
  );
404
413
  }
405
414
  );
406
- fe.displayName = "CalendarEventCard";
415
+ ve.displayName = "CalendarEventCard";
407
416
  export {
408
- fe as C,
417
+ ve as C,
409
418
  te as E,
410
419
  Be as w
411
420
  };
412
- //# sourceMappingURL=calendar-event-card-DKUnT9Be.js.map
421
+ //# sourceMappingURL=calendar-event-card-B6N5h1dO.js.map