@alfadocs/ui-kit-debug 0.78.0 → 0.80.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 (50) hide show
  1. package/dist/_chunks/{alia-sidebar-w6B0TEx7.js → alia-sidebar-DzNz1gDf.js} +2 -2
  2. package/dist/_chunks/{alia-sidebar-w6B0TEx7.js.map → alia-sidebar-DzNz1gDf.js.map} +1 -1
  3. package/dist/_chunks/calendar-4dXTvsCz.js +1136 -0
  4. package/dist/_chunks/calendar-4dXTvsCz.js.map +1 -0
  5. package/dist/_chunks/calendar-event-card-C6qGtywL.js +257 -0
  6. package/dist/_chunks/calendar-event-card-C6qGtywL.js.map +1 -0
  7. package/dist/_chunks/{chat-input-BTCDqUDX.js → chat-input-QpHxBEnN.js} +32 -31
  8. package/dist/_chunks/chat-input-QpHxBEnN.js.map +1 -0
  9. package/dist/_chunks/{fiscal-code-input-DWA6C8x8.js → fiscal-code-input-QP9gkyDE.js} +2 -2
  10. package/dist/_chunks/fiscal-code-input-QP9gkyDE.js.map +1 -0
  11. package/dist/_chunks/{patient-details-zy76MRh7.js → patient-details-COvYWp2e.js} +2 -2
  12. package/dist/_chunks/{patient-details-zy76MRh7.js.map → patient-details-COvYWp2e.js.map} +1 -1
  13. package/dist/_chunks/signature-request-CEOrCDyk.js +341 -0
  14. package/dist/_chunks/signature-request-CEOrCDyk.js.map +1 -0
  15. package/dist/agent-catalog.json +1 -1
  16. package/dist/components/_shared/contrast-warning.d.ts +46 -0
  17. package/dist/components/_shared/contrast-warning.d.ts.map +1 -0
  18. package/dist/components/calendar/calendar.d.ts +284 -7
  19. package/dist/components/calendar/calendar.d.ts.map +1 -1
  20. package/dist/components/calendar/index.d.ts +1 -1
  21. package/dist/components/calendar/index.d.ts.map +1 -1
  22. package/dist/components/calendar/index.js +1 -1
  23. package/dist/components/calendar-event-card/calendar-event-card.d.ts +103 -0
  24. package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -0
  25. package/dist/components/calendar-event-card/index.d.ts +3 -0
  26. package/dist/components/calendar-event-card/index.d.ts.map +1 -0
  27. package/dist/components/calendar-event-card/index.js +5 -0
  28. package/dist/components/calendar-event-card/index.js.map +1 -0
  29. package/dist/components/chat-input/chat-input.d.ts.map +1 -1
  30. package/dist/components/chat-input/index.js +1 -1
  31. package/dist/components/fiscal-code-input/index.js +1 -1
  32. package/dist/components/index.d.ts +1 -0
  33. package/dist/components/index.d.ts.map +1 -1
  34. package/dist/components/patient-details/index.js +1 -1
  35. package/dist/index.js +252 -250
  36. package/dist/index.js.map +1 -1
  37. package/dist/patterns/alia-assistant/index.js +1 -1
  38. package/dist/patterns/signature-request/index.js +1 -1
  39. package/dist/patterns/signature-request/signature-request.d.ts +7 -0
  40. package/dist/patterns/signature-request/signature-request.d.ts.map +1 -1
  41. package/dist/tokens.css +8 -5
  42. package/package.json +5 -1
  43. package/dist/_chunks/calendar-DeAlFPsF.js +0 -1050
  44. package/dist/_chunks/calendar-DeAlFPsF.js.map +0 -1
  45. package/dist/_chunks/chat-input-BTCDqUDX.js.map +0 -1
  46. package/dist/_chunks/fiscal-code-input-DWA6C8x8.js.map +0 -1
  47. package/dist/_chunks/signature-request-C-mskXwi.js +0 -318
  48. package/dist/_chunks/signature-request-C-mskXwi.js.map +0 -1
  49. package/dist/components/calendar/contrast-warning.d.ts +0 -20
  50. package/dist/components/calendar/contrast-warning.d.ts.map +0 -1
@@ -0,0 +1,1136 @@
1
+ import { jsxs as G, jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as Se, useRef as p, useEffect as h, useState as te, useMemo as u, useImperativeHandle as Pt, useCallback as y } from "react";
3
+ import { useTranslation as me } from "react-i18next";
4
+ import Mt from "@fullcalendar/react";
5
+ import Gt from "@fullcalendar/daygrid";
6
+ import Bt from "@fullcalendar/timegrid";
7
+ import Lt from "@fullcalendar/list";
8
+ import Ot from "@fullcalendar/resource";
9
+ import Wt from "@fullcalendar/resource-timegrid";
10
+ import jt from "@fullcalendar/resource-timeline";
11
+ import _t from "@fullcalendar/timeline";
12
+ import Ft from "@fullcalendar/interaction";
13
+ import { u as Vt } from "./use-prefers-reduced-motion-BMwIQRjB.js";
14
+ import { u as Ht } from "./registry-DvAUVLHh.js";
15
+ import { w as ke, C as $t } from "./calendar-event-card-C6qGtywL.js";
16
+ import { C as Ee } from "./chevron-right-I9AeSxH2.js";
17
+ import { C as Ne } from "./chevron-left-B8cOyH-V.js";
18
+ const zt = {
19
+ id: "calendar",
20
+ capabilities: ["view_change", "range_navigate", "pick"],
21
+ state: {
22
+ currentView: {
23
+ type: "CalendarView",
24
+ descriptionKey: "ui.agent.calendar.state.currentView",
25
+ description: "Active view name (e.g. dayGridMonth, timeGridWeek).",
26
+ read: (n) => n.getCurrentView() ?? null
27
+ },
28
+ currentDate: {
29
+ type: "iso-date",
30
+ descriptionKey: "ui.agent.calendar.state.currentDate",
31
+ description: "ISO date anchor of the visible range.",
32
+ read: (n) => {
33
+ var o;
34
+ return ((o = n.getCurrentDate()) == null ? void 0 : o.toISOString()) ?? null;
35
+ }
36
+ },
37
+ currentTitle: {
38
+ type: "string",
39
+ descriptionKey: "ui.agent.calendar.state.currentTitle",
40
+ description: 'Human title of the current range (e.g. "April 2026").',
41
+ read: (n) => n.getTitle()
42
+ }
43
+ },
44
+ actions: {
45
+ today: {
46
+ safety: "read",
47
+ idempotent: !0,
48
+ descriptionKey: "ui.agent.calendar.actions.today",
49
+ description: "Jump to the current day.",
50
+ invoke: (n) => {
51
+ n.today();
52
+ }
53
+ },
54
+ prev: {
55
+ // Not idempotent: each call steps one range further back.
56
+ safety: "read",
57
+ descriptionKey: "ui.agent.calendar.actions.prev",
58
+ description: "Move to the previous range.",
59
+ invoke: (n) => {
60
+ n.prev();
61
+ }
62
+ },
63
+ next: {
64
+ // Not idempotent: each call steps one range further forward.
65
+ safety: "read",
66
+ descriptionKey: "ui.agent.calendar.actions.next",
67
+ description: "Move to the next range.",
68
+ invoke: (n) => {
69
+ n.next();
70
+ }
71
+ },
72
+ goto_date: {
73
+ safety: "read",
74
+ argsType: "{ date: string | Date }",
75
+ argsSchema: {
76
+ type: "object",
77
+ properties: {
78
+ date: {
79
+ type: "string",
80
+ format: "date",
81
+ description: "Target date — ISO 8601 string (or Date at runtime)."
82
+ }
83
+ },
84
+ required: ["date"]
85
+ },
86
+ idempotent: !0,
87
+ descriptionKey: "ui.agent.calendar.actions.gotoDate",
88
+ description: "Navigate to a specific date.",
89
+ examples: [
90
+ { args: { date: "2026-04-15" }, note: "Jump to 15 April 2026." }
91
+ ],
92
+ invoke: (n, o) => {
93
+ n.gotoDate(o.date);
94
+ }
95
+ },
96
+ change_view: {
97
+ safety: "read",
98
+ argsType: "{ view: CalendarView }",
99
+ argsSchema: {
100
+ type: "object",
101
+ properties: {
102
+ view: {
103
+ type: "string",
104
+ enum: [
105
+ "dayGridMonth",
106
+ "timeGridWeek",
107
+ "timeGridDay",
108
+ "listWeek",
109
+ "resourceTimeGridDayChair",
110
+ "resourceTimeGridThreeDaysChair",
111
+ "resourceTimeGridWeekChair",
112
+ "resourceTimeGridDayOperator",
113
+ "resourceTimeGridThreeDaysOperator",
114
+ "resourceTimeGridWeekOperator"
115
+ ],
116
+ description: "Target view name."
117
+ }
118
+ },
119
+ required: ["view"]
120
+ },
121
+ idempotent: !0,
122
+ descriptionKey: "ui.agent.calendar.actions.changeView",
123
+ description: "Switch the calendar to the given view.",
124
+ examples: [
125
+ { args: { view: "timeGridWeek" }, note: "Switch to the week view." }
126
+ ],
127
+ invoke: (n, o) => {
128
+ n.changeView(o.view);
129
+ }
130
+ },
131
+ focus_event: {
132
+ // pick: transient focus + highlight of an event — no persisted selection.
133
+ // Not idempotent: each call re-triggers the flash highlight.
134
+ safety: "read",
135
+ argsType: "{ eventId: string }",
136
+ argsSchema: {
137
+ type: "object",
138
+ properties: {
139
+ eventId: {
140
+ type: "string",
141
+ description: "Stable event id (matches a data-event-id node)."
142
+ }
143
+ },
144
+ required: ["eventId"]
145
+ },
146
+ descriptionKey: "ui.agent.calendar.actions.focusEvent",
147
+ description: "Scroll an event into view and briefly highlight it.",
148
+ errors: ["No DOM node matches the given event id — no-op."],
149
+ invoke: (n, o) => {
150
+ n.focusEvent(o.eventId);
151
+ }
152
+ }
153
+ },
154
+ domHooks: {
155
+ root: {
156
+ attr: "data-component",
157
+ value: "calendar",
158
+ description: "Marks the Calendar wrapper."
159
+ },
160
+ instanceId: {
161
+ attr: "data-component-id",
162
+ sourceProp: "id",
163
+ description: "Sourced from the id prop."
164
+ },
165
+ item: {
166
+ attr: "data-event-id",
167
+ description: "Emitted on every rendered FullCalendar event by the kit event renderer. Used by focusEvent."
168
+ }
169
+ }
170
+ }, qt = {
171
+ vertical: {
172
+ Day: "resourceTimeGridDay",
173
+ ThreeDays: "resourceTimeGridThreeDays",
174
+ Week: "resourceTimeGridWeek"
175
+ },
176
+ horizontal: {
177
+ Day: "resourceTimelineDay",
178
+ ThreeDays: "resourceTimelineThreeDays",
179
+ Week: "resourceTimelineWeek"
180
+ }
181
+ }, Kt = /* @__PURE__ */ new Set([
182
+ "dayGridMonth",
183
+ "timeGridWeek",
184
+ "timeGridDay",
185
+ "listWeek"
186
+ ]), Ut = {
187
+ timeGridDay: "timelineDay",
188
+ timeGridWeek: "timelineWeek"
189
+ };
190
+ function de(n, o = "vertical") {
191
+ if (Kt.has(n))
192
+ return o === "horizontal" ? Ut[n] ?? n : n;
193
+ const d = n.replace(/^resourceTimeGrid/, "").replace(
194
+ /(Chair|Operator)$/,
195
+ ""
196
+ );
197
+ return qt[o][d];
198
+ }
199
+ const ee = {
200
+ weekday: "long",
201
+ day: "numeric",
202
+ month: "long",
203
+ year: "numeric"
204
+ }, Yt = [
205
+ { weekday: "short", day: "numeric", month: "short" },
206
+ { hour: "numeric", minute: "2-digit" }
207
+ ], Xt = {
208
+ resourceTimeGridThreeDays: {
209
+ type: "resourceTimeGrid",
210
+ duration: { days: 3 }
211
+ },
212
+ resourceTimelineThreeDays: {
213
+ type: "resourceTimeline",
214
+ duration: { days: 3 }
215
+ },
216
+ timeline: { slotLabelFormat: Yt },
217
+ timeGridDay: { titleFormat: ee },
218
+ resourceTimeGridDay: { titleFormat: ee },
219
+ timelineDay: { titleFormat: ee },
220
+ resourceTimelineDay: { titleFormat: ee }
221
+ }, ce = 5, Jt = {
222
+ create: "calendar.modeBanner.create",
223
+ move: "calendar.modeBanner.move",
224
+ copy: "calendar.modeBanner.copy"
225
+ };
226
+ function Zt(n) {
227
+ try {
228
+ const o = new Intl.Locale(n), s = typeof o.getWeekInfo == "function" ? o.getWeekInfo() : o.weekInfo;
229
+ if (s && typeof s.firstDay == "number")
230
+ return s.firstDay % 7;
231
+ } catch {
232
+ }
233
+ return n.startsWith("en-US") || n.startsWith("he") || n.startsWith("ar-SA") ? 0 : 1;
234
+ }
235
+ const le = "calendar-col-hidden";
236
+ function ue(n) {
237
+ const o = n.getFullYear(), s = String(n.getMonth() + 1).padStart(2, "0"), d = String(n.getDate()).padStart(2, "0");
238
+ return `${o}-${s}-${d}`;
239
+ }
240
+ function Qt(n, o) {
241
+ const s = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Map(), f = (n == null ? void 0 : n.length) ?? 0;
242
+ if (n && o) {
243
+ for (const b of n)
244
+ if (b.hiddenDates)
245
+ for (const v of b.hiddenDates) {
246
+ const w = `${b.id}:${v}`;
247
+ s.has(w) || (s.add(w), d.set(v, (d.get(v) ?? 0) + 1));
248
+ }
249
+ }
250
+ return {
251
+ hiddenCells: s,
252
+ hiddenCountByDate: d,
253
+ resourceCount: f,
254
+ active: s.size > 0
255
+ };
256
+ }
257
+ function er() {
258
+ const { i18n: n } = me(), [o, s] = te(() => {
259
+ if (typeof document > "u") return !1;
260
+ const d = document.documentElement.getAttribute("dir"), f = typeof n.dir == "function" ? n.dir() : "ltr";
261
+ return d === "rtl" || f === "rtl";
262
+ });
263
+ return h(() => {
264
+ if (typeof document > "u") return;
265
+ const d = new MutationObserver(() => {
266
+ const f = document.documentElement.getAttribute("dir"), b = typeof n.dir == "function" ? n.dir() : "ltr";
267
+ s(f === "rtl" || b === "rtl");
268
+ });
269
+ return d.observe(document.documentElement, {
270
+ attributes: !0,
271
+ attributeFilter: ["dir", "lang"]
272
+ }), () => d.disconnect();
273
+ }, [n]), o;
274
+ }
275
+ function tr(n, o) {
276
+ const s = n.event.start, d = n.event.end ?? n.event.start;
277
+ if (!(!s || !d))
278
+ try {
279
+ const f = new Intl.DateTimeFormat(o, {
280
+ hour: "2-digit",
281
+ minute: "2-digit",
282
+ hour12: !1
283
+ });
284
+ return typeof f.formatRange == "function" ? f.formatRange(s, d) : `${f.format(s)} – ${f.format(d)}`;
285
+ } catch {
286
+ return;
287
+ }
288
+ }
289
+ const Re = [
290
+ "ds:inline-flex ds:items-center ds:justify-center",
291
+ "ds:min-h-[var(--min-target-size)]",
292
+ "ds:bg-[var(--background)] ds:text-[var(--foreground)]",
293
+ "ds:border ds:border-[var(--border)]",
294
+ "ds:rounded-[var(--radius-full)]",
295
+ "ds:font-[var(--font-weight-medium)] ds:text-[length:var(--font-size-sm)]",
296
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]",
297
+ "ds:hover:bg-[var(--muted)]",
298
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)]",
299
+ "ds:focus-visible:outline-[var(--ring)]",
300
+ "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
301
+ "ds:motion-reduce:transition-none"
302
+ ].join(" "), rr = [
303
+ Re,
304
+ "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]"
305
+ ].join(" "), nr = [
306
+ Re,
307
+ "ds:min-w-[var(--min-target-size)]"
308
+ ].join(" "), fe = Se(
309
+ ({ title: n, onToday: o, onPrev: s, onNext: d, end: f, className: b, maskClassName: v }, w) => {
310
+ const { t: B } = me(), V = er(), T = V ? Ee : Ne, L = V ? Ne : Ee, k = [
311
+ "ds:calendar-toolbar",
312
+ "ds:sticky ds:top-0 ds:z-20",
313
+ "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
314
+ "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
315
+ "ds:py-[var(--spacing-sm)]",
316
+ "ds:bg-[var(--background)]",
317
+ "ds:border-b ds:border-[var(--border)]",
318
+ b
319
+ ].filter(Boolean).join(" "), x = [rr, v].filter(Boolean).join(" "), E = [nr, v].filter(Boolean).join(" "), re = [
320
+ "ds:flex-1 ds:text-center ds:truncate type-title-card",
321
+ v
322
+ ].filter(Boolean).join(" "), ne = ["ds:flex-1 ds:text-center", v].filter(Boolean).join(" ");
323
+ return /* @__PURE__ */ G("div", { ref: w, className: k, children: [
324
+ /* @__PURE__ */ G("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
325
+ /* @__PURE__ */ l(
326
+ "button",
327
+ {
328
+ type: "button",
329
+ onClick: o,
330
+ className: x,
331
+ children: B("calendar.today")
332
+ }
333
+ ),
334
+ /* @__PURE__ */ l(
335
+ "button",
336
+ {
337
+ type: "button",
338
+ onClick: s,
339
+ "aria-label": B("calendar.previousPeriod"),
340
+ className: E,
341
+ children: /* @__PURE__ */ l(T, { size: 16, "aria-hidden": "true" })
342
+ }
343
+ ),
344
+ /* @__PURE__ */ l(
345
+ "button",
346
+ {
347
+ type: "button",
348
+ onClick: d,
349
+ "aria-label": B("calendar.nextPeriod"),
350
+ className: E,
351
+ children: /* @__PURE__ */ l(L, { size: 16, "aria-hidden": "true" })
352
+ }
353
+ )
354
+ ] }),
355
+ n ? /* @__PURE__ */ l("h2", { "aria-live": "polite", className: re, children: n }) : (
356
+ /* Keep the centering slot stable even before the first
357
+ `datesSet` populates the title — an empty <h2> would trip
358
+ axe's `empty-heading` rule, so we substitute a decorative
359
+ spacer that matches the h2's flex sizing. Once `title` is
360
+ non-empty the h2 renders in the same slot. */
361
+ /* @__PURE__ */ l("div", { "aria-hidden": "true", className: ne })
362
+ ),
363
+ f ? /* @__PURE__ */ l("div", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: f }) : null
364
+ ] });
365
+ }
366
+ );
367
+ fe.displayName = "Calendar.Toolbar";
368
+ const Pe = Se(
369
+ ({
370
+ id: n,
371
+ events: o,
372
+ resources: s,
373
+ view: d = "dayGridMonth",
374
+ initialDate: f,
375
+ locale: b,
376
+ onEventDrop: v,
377
+ onEventResize: w,
378
+ onEventDragStart: B,
379
+ onEventResizeStart: V,
380
+ onEventClick: T,
381
+ onDateSelect: L,
382
+ onDatesSet: k,
383
+ onDateClick: x,
384
+ editable: E = !1,
385
+ eventDurationEditable: re,
386
+ selectable: ne = !1,
387
+ height: Me,
388
+ className: Ge,
389
+ privacyMode: D = !1,
390
+ eventStatusAccent: Be = !0,
391
+ mode: H = "default",
392
+ modeLabel: Le,
393
+ modeBannerColor: $,
394
+ modeBannerTextColor: z,
395
+ onModeCancel: pe,
396
+ alertBanner: Oe,
397
+ hiddenDays: ve,
398
+ slotMinTime: We,
399
+ slotMaxTime: je,
400
+ slotDuration: _e,
401
+ showTime: Fe = !0,
402
+ datesAboveResources: ie = !0,
403
+ slotEventOverlap: Ve = !1,
404
+ stickyHeaderDates: He = !0,
405
+ nowIndicator: $e = !0,
406
+ dayMaxEvents: ze = !0,
407
+ schedulerLicenseKey: qe = void 0,
408
+ toolbar: Ke = !0,
409
+ toolbarEnd: Ue,
410
+ resourceLayout: O = "vertical",
411
+ showResourceInitials: he = !1,
412
+ resourceAreaWidth: Ye,
413
+ resourceAreaHeader: W,
414
+ defaultTimedEventDuration: j,
415
+ zebraRows: Xe = !1,
416
+ maskClassName: N
417
+ }, Je) => {
418
+ const { t: m, i18n: S } = me(), I = p(null), R = p(null), C = p(null), A = p(null), P = p(null), ge = p(null), q = p({
419
+ id: 0,
420
+ x: 0,
421
+ y: 0
422
+ }), ye = p(0), be = p(0), K = b ?? S.language ?? "en";
423
+ h(() => {
424
+ }, [ve]), h(() => {
425
+ }, [j]);
426
+ const [Ze, Qe] = te(() => {
427
+ if (typeof document > "u") return "ltr";
428
+ const e = document.documentElement.getAttribute("dir"), t = typeof S.dir == "function" ? S.dir() : "ltr";
429
+ return e === "rtl" || t === "rtl" ? "rtl" : "ltr";
430
+ });
431
+ h(() => {
432
+ if (typeof document > "u") return;
433
+ const e = new MutationObserver(() => {
434
+ const t = document.documentElement.getAttribute("dir"), r = typeof S.dir == "function" ? S.dir() : "ltr";
435
+ Qe(t === "rtl" || r === "rtl" ? "rtl" : "ltr");
436
+ });
437
+ return e.observe(document.documentElement, {
438
+ attributes: !0,
439
+ attributeFilter: ["dir", "lang"]
440
+ }), () => e.disconnect();
441
+ }, [S]), h(() => {
442
+ if (typeof document > "u") return;
443
+ let e;
444
+ const t = new MutationObserver(() => {
445
+ clearTimeout(e), e = setTimeout(() => {
446
+ var a;
447
+ const r = (a = I.current) == null ? void 0 : a.getApi();
448
+ r && typeof r.render == "function" && r.render();
449
+ }, 50);
450
+ });
451
+ return t.observe(document.documentElement, {
452
+ attributes: !0,
453
+ attributeFilter: ["class"]
454
+ }), () => {
455
+ clearTimeout(e), t.disconnect();
456
+ };
457
+ }, []), h(() => {
458
+ if (typeof document > "u") return;
459
+ const e = R.current;
460
+ if (!e) return;
461
+ const t = () => {
462
+ e.querySelectorAll(".fc-daygrid-more-link").forEach((a) => {
463
+ a.getAttribute("role") || a.setAttribute("role", "button");
464
+ }), e.querySelectorAll('[aria-hidden="true"]').forEach((a) => {
465
+ a.querySelectorAll(
466
+ 'a[href], button, [tabindex]:not([tabindex="-1"])'
467
+ ).forEach((i) => {
468
+ i.setAttribute("tabindex", "-1");
469
+ });
470
+ });
471
+ };
472
+ t();
473
+ const r = new MutationObserver(t);
474
+ return r.observe(e, {
475
+ childList: !0,
476
+ subtree: !0,
477
+ attributes: !0,
478
+ attributeFilter: ["aria-hidden"]
479
+ }), () => r.disconnect();
480
+ }, [m]);
481
+ const U = Vt(), [et, tt] = te(""), [_, rt] = te(
482
+ () => de(d, O)
483
+ ), Te = p(_);
484
+ Te.current = _;
485
+ const ae = u(() => {
486
+ const e = () => {
487
+ var t;
488
+ return (t = I.current) == null ? void 0 : t.getApi();
489
+ };
490
+ return {
491
+ getApi: () => {
492
+ var t;
493
+ return (t = I.current) == null ? void 0 : t.getApi();
494
+ },
495
+ today: () => {
496
+ var t;
497
+ (t = e()) == null || t.today();
498
+ },
499
+ prev: () => {
500
+ var t;
501
+ (t = e()) == null || t.prev();
502
+ },
503
+ next: () => {
504
+ var t;
505
+ (t = e()) == null || t.next();
506
+ },
507
+ gotoDate: (t) => {
508
+ var r;
509
+ (r = e()) == null || r.gotoDate(t);
510
+ },
511
+ changeView: (t) => {
512
+ var r;
513
+ (r = e()) == null || r.changeView(
514
+ de(t, O)
515
+ );
516
+ },
517
+ getTitle: () => {
518
+ var t;
519
+ return ((t = e()) == null ? void 0 : t.view.title) ?? "";
520
+ },
521
+ getCurrentView: () => {
522
+ var r;
523
+ return (r = e()) == null ? void 0 : r.view.type;
524
+ },
525
+ getCurrentDate: () => {
526
+ var t;
527
+ return (t = e()) == null ? void 0 : t.getDate();
528
+ },
529
+ focusEvent: (t) => {
530
+ const r = R.current;
531
+ if (!r) return;
532
+ const a = `[data-event-id="${CSS.escape(t)}"]`, i = r.querySelector(a);
533
+ if (i) {
534
+ if (A.current && (clearTimeout(A.current), A.current = null), P.current && P.current !== i && P.current.classList.remove("calendar-event-focused"), i.scrollIntoView({
535
+ behavior: U ? "auto" : "smooth",
536
+ block: "center"
537
+ }), i.classList.add("calendar-event-focused"), P.current = i, C.current) {
538
+ const c = i.getAttribute("aria-label") ?? t, g = D ? "•••" : c;
539
+ C.current.textContent = m("calendar.focusedEvent", {
540
+ title: g
541
+ });
542
+ }
543
+ A.current = setTimeout(() => {
544
+ i.classList.remove("calendar-event-focused"), P.current === i && (P.current = null), A.current = null;
545
+ }, 3e3);
546
+ }
547
+ }
548
+ };
549
+ }, [U, D, m, O]);
550
+ Pt(Je, () => ae, [ae]), Ht(zt, ae, n), h(
551
+ () => () => {
552
+ A.current && (clearTimeout(A.current), A.current = null);
553
+ },
554
+ []
555
+ );
556
+ const xe = p(!0);
557
+ h(() => {
558
+ if (xe.current) {
559
+ xe.current = !1;
560
+ return;
561
+ }
562
+ C.current && (C.current.textContent = m(D ? "calendar.privacyModeOn" : "calendar.privacyModeOff"));
563
+ }, [D, m]);
564
+ const nt = u(
565
+ () => o.map((e) => ({
566
+ id: e.id,
567
+ title: e.title,
568
+ start: e.start,
569
+ end: e.end,
570
+ /* Conditional spreads — FC refines PRESENT-but-undefined keys
571
+ (`'propName' in input`), so undefined must mean ABSENT:
572
+ - editable: Boolean(undefined) === false would pin every
573
+ ordinary event non-draggable;
574
+ - display: String(undefined) === 'undefined' breaks month-
575
+ view dot/block classification and leaks via EventApi;
576
+ - allDay: Boolean(undefined) === false disables FC's
577
+ all-day inference for date-only starts;
578
+ - resourceId: String(undefined) puts 'undefined' into
579
+ def.resourceIds → getResources() returns [null]. */
580
+ ...e.allDay !== void 0 ? { allDay: e.allDay } : {},
581
+ ...e.resourceId !== void 0 ? { resourceId: e.resourceId } : {},
582
+ ...e.isInternal ? { display: "background" } : {},
583
+ ...e.editable !== void 0 ? { editable: e.editable } : {},
584
+ ...e.startEditable !== void 0 ? { startEditable: e.startEditable } : {},
585
+ extendedProps: {
586
+ status: e.status,
587
+ resourceId: e.resourceId,
588
+ /* Mirror the raw per-event editability values so adaptEvent
589
+ can round-trip them — EventImpl's `startEditable` getter
590
+ resolves the COMBINED ui (incl. calendar-level fallback)
591
+ and must not be used for round-tripping. */
592
+ editable: e.editable,
593
+ startEditable: e.startEditable,
594
+ backgroundColor: e.backgroundColor,
595
+ textColor: e.textColor,
596
+ borderColor: e.borderColor,
597
+ suffix: e.suffix,
598
+ privacyModeTitle: e.privacyModeTitle,
599
+ isBookedOnline: e.isBookedOnline ?? !1,
600
+ hasUnassignedPatient: e.hasUnassignedPatient ?? !1,
601
+ hasHighlightedAnamnesis: e.hasHighlightedAnamnesis ?? !1,
602
+ hasBillableAmount: e.hasBillableAmount ?? !1,
603
+ isTelehealth: e.isTelehealth ?? !1,
604
+ isRecurrenceParent: e.isRecurrenceParent ?? !1,
605
+ isInternal: e.isInternal ?? !1,
606
+ patientId: e.patientId,
607
+ operatorId: e.operatorId
608
+ }
609
+ })),
610
+ [o]
611
+ ), it = u(
612
+ () => ({
613
+ year: "numeric",
614
+ month: "long"
615
+ }),
616
+ []
617
+ ), at = u(
618
+ () => ({
619
+ weekday: "short"
620
+ }),
621
+ []
622
+ ), ot = u(
623
+ () => ({
624
+ hour: "numeric",
625
+ minute: "2-digit"
626
+ }),
627
+ []
628
+ ), st = u(
629
+ () => ({
630
+ hour: "numeric",
631
+ minute: "2-digit"
632
+ }),
633
+ []
634
+ ), De = u(
635
+ () => typeof j == "number" ? { minutes: j } : j,
636
+ [j]
637
+ ), Y = u(
638
+ () => N ? N.split(/\s+/).filter(Boolean) : void 0,
639
+ [N]
640
+ ), dt = u(() => {
641
+ if (W !== void 0)
642
+ return W === "chairs" ? m("calendar.resourceLabel.chairs") : W === "operators" ? m("calendar.resourceLabel.operators") : W;
643
+ }, [W, m]), X = u(
644
+ () => Qt(s, ie),
645
+ [s, ie]
646
+ ), M = p(X);
647
+ M.current = X;
648
+ const oe = p(!1), ct = y(
649
+ (e) => {
650
+ const t = M.current;
651
+ if (!t.active || !e.view.type.startsWith("resourceTimeGrid"))
652
+ return [];
653
+ const r = e.resource;
654
+ return r != null && r.id ? t.hiddenCells.has(
655
+ `${r.id}:${ue(e.date)}`
656
+ ) ? [le] : [] : [];
657
+ },
658
+ []
659
+ ), lt = y(
660
+ (e) => {
661
+ const t = M.current;
662
+ if (!t.active || !e.view.type.startsWith("resourceTimeGrid"))
663
+ return [];
664
+ const r = e.date ?? e.view.currentStart;
665
+ return t.hiddenCells.has(
666
+ `${e.resource.id}:${ue(r)}`
667
+ ) ? [le] : [];
668
+ },
669
+ []
670
+ ), ut = y(
671
+ (e) => {
672
+ const t = M.current;
673
+ return !t.active || !e.view.type.startsWith("resourceTimeGrid") ? [] : (t.hiddenCountByDate.get(ue(e.date)) ?? 0) >= t.resourceCount ? [le] : [];
674
+ },
675
+ []
676
+ ), mt = y((e) => {
677
+ const t = M.current;
678
+ if (!t.active || !e.view.type.startsWith("resourceTimeGrid"))
679
+ return;
680
+ const r = e.el;
681
+ if (!(r instanceof HTMLTableCellElement) || !r.classList.contains("fc-day")) return;
682
+ const a = r.getAttribute("data-date");
683
+ if (!a) return;
684
+ const i = t.hiddenCountByDate.get(a) ?? 0, c = Math.max(1, t.resourceCount - i);
685
+ r.colSpan !== c && (r.colSpan = c, oe.current = !0);
686
+ }, []), F = y(() => {
687
+ const e = R.current;
688
+ if (!e || !Te.current.startsWith("resourceTimeGrid")) return;
689
+ const t = M.current;
690
+ !t.active && !oe.current || (e.querySelectorAll(
691
+ "th.fc-col-header-cell.fc-day[data-date]"
692
+ ).forEach((r) => {
693
+ const a = r.getAttribute("data-date");
694
+ if (!a) return;
695
+ const i = t.active ? t.hiddenCountByDate.get(a) ?? 0 : 0, c = Math.max(1, t.resourceCount - i);
696
+ r.colSpan !== c && (r.colSpan = c);
697
+ }), oe.current = t.active);
698
+ }, []);
699
+ h(() => {
700
+ }, [o, X]);
701
+ const J = (e) => {
702
+ const t = e.extendedProps ?? {};
703
+ return {
704
+ id: e.id,
705
+ title: e.title,
706
+ start: e.start ?? /* @__PURE__ */ new Date(),
707
+ end: e.end ?? void 0,
708
+ resourceId: t.resourceId,
709
+ status: t.status,
710
+ allDay: e.allDay,
711
+ backgroundColor: t.backgroundColor,
712
+ textColor: t.textColor,
713
+ borderColor: t.borderColor,
714
+ suffix: t.suffix,
715
+ privacyModeTitle: t.privacyModeTitle,
716
+ isBookedOnline: t.isBookedOnline,
717
+ hasUnassignedPatient: t.hasUnassignedPatient,
718
+ hasHighlightedAnamnesis: t.hasHighlightedAnamnesis,
719
+ hasBillableAmount: t.hasBillableAmount,
720
+ isTelehealth: t.isTelehealth,
721
+ isRecurrenceParent: t.isRecurrenceParent,
722
+ isInternal: t.isInternal,
723
+ editable: t.editable,
724
+ startEditable: t.startEditable,
725
+ patientId: t.patientId,
726
+ operatorId: t.operatorId
727
+ };
728
+ }, ft = u(() => {
729
+ if (v)
730
+ return (e) => {
731
+ if (!e.event.start) return;
732
+ const t = e.oldEvent.start;
733
+ if (t && (v({
734
+ event: J(e.event),
735
+ oldStart: t,
736
+ newStart: e.event.start,
737
+ revert: e.revert
738
+ }), C.current)) {
739
+ const r = e.event.extendedProps ?? {}, a = D ? r.privacyModeTitle ?? "•••" : e.event.title;
740
+ C.current.textContent = m("calendar.eventMoved", {
741
+ title: a
742
+ });
743
+ }
744
+ };
745
+ }, [v, D, m]), pt = u(() => {
746
+ if (w)
747
+ return (e) => {
748
+ if (!e.event.end) return;
749
+ const t = e.oldEvent.end;
750
+ if (!t)
751
+ return;
752
+ const r = e.event.end, a = e.event.start ?? e.oldEvent.start ?? t;
753
+ if (w({
754
+ event: J(e.event),
755
+ oldEnd: t,
756
+ newEnd: r,
757
+ revert: e.revert
758
+ }), C.current) {
759
+ const i = Math.round(
760
+ (r.getTime() - a.getTime()) / 6e4
761
+ ), c = e.event.extendedProps ?? {}, g = D ? c.privacyModeTitle ?? "•••" : e.event.title;
762
+ C.current.textContent = m("calendar.eventResized", {
763
+ title: g,
764
+ duration: i
765
+ });
766
+ }
767
+ };
768
+ }, [w, D, m]), vt = u(() => {
769
+ if (T)
770
+ return (e) => {
771
+ e.event.start && (ge.current = e.jsEvent, T(J(e.event), {
772
+ el: e.el,
773
+ jsEvent: e.jsEvent
774
+ }));
775
+ };
776
+ }, [T]), ht = u(() => {
777
+ if (L)
778
+ return (e) => {
779
+ var t;
780
+ L({
781
+ start: e.start,
782
+ end: e.end,
783
+ allDay: e.allDay,
784
+ resourceId: (t = e.resource) == null ? void 0 : t.id
785
+ });
786
+ };
787
+ }, [L]), gt = u(() => {
788
+ if (x)
789
+ return (e) => {
790
+ var r;
791
+ const t = q.current.id;
792
+ t !== 0 && be.current === t || (t !== 0 && (ye.current = t), x({
793
+ date: e.date,
794
+ allDay: e.allDay,
795
+ resourceId: (r = e.resource) == null ? void 0 : r.id
796
+ }));
797
+ };
798
+ }, [x]), yt = y(
799
+ (e) => {
800
+ tt(e.view.title), rt(e.view.type), k == null || k({
801
+ view: d,
802
+ internalView: e.view.type,
803
+ start: e.start,
804
+ end: e.end,
805
+ /* info.view.calendar is available even on the very first datesSet
806
+ tick, which fires before fcRef is guaranteed to be assigned. */
807
+ currentDate: e.view.calendar.getDate(),
808
+ title: e.view.title
809
+ }), F();
810
+ },
811
+ [k, d, F]
812
+ ), bt = u(() => Zt(K), [K]), Tt = u(
813
+ () => [
814
+ Gt,
815
+ Bt,
816
+ Lt,
817
+ Ft,
818
+ Ot,
819
+ Wt,
820
+ jt,
821
+ _t
822
+ ],
823
+ []
824
+ ), xt = u(
825
+ () => de(d, O),
826
+ [d, O]
827
+ );
828
+ h(() => {
829
+ const e = R.current;
830
+ if (!e) return;
831
+ const t = (r) => {
832
+ q.current = {
833
+ id: q.current.id + 1,
834
+ x: r.clientX,
835
+ y: r.clientY
836
+ };
837
+ };
838
+ return e.addEventListener("pointerdown", t, !0), () => e.removeEventListener("pointerdown", t, !0);
839
+ }, []), h(() => {
840
+ const e = R.current;
841
+ if (!e || !_.startsWith("resourceTimeGrid") || !x && !T) return;
842
+ const t = (r) => {
843
+ var Ie;
844
+ if (r === ge.current) return;
845
+ const a = r.target;
846
+ if (!(a instanceof Element) || a.closest(
847
+ ".fc-more-link, a[data-navlink], .fc-popover, .fc-event-mirror"
848
+ ))
849
+ return;
850
+ const i = q.current;
851
+ if (i.id !== 0 && (Math.abs(r.clientX - i.x) > ce || Math.abs(r.clientY - i.y) > ce))
852
+ return;
853
+ const c = a.closest("td.fc-daygrid-day[data-date]");
854
+ if (!c) return;
855
+ const g = a.closest("[data-event-id]");
856
+ if (g) {
857
+ if (!T) return;
858
+ const Ae = g.getAttribute("data-event-id"), se = (Ie = I.current) == null ? void 0 : Ie.getApi(), Q = Ae ? se == null ? void 0 : se.getEventById(Ae) : null;
859
+ if (!Q || !Q.start || (Q.extendedProps ?? {}).isInternal) return;
860
+ const Rt = a.closest(".fc-event") ?? g;
861
+ T(J(Q), { el: Rt, jsEvent: r });
862
+ return;
863
+ }
864
+ if (!x || i.id !== 0 && ye.current === i.id)
865
+ return;
866
+ const Z = c.getAttribute("data-date");
867
+ if (!Z) return;
868
+ const we = /* @__PURE__ */ new Date(`${Z}T00:00:00`);
869
+ Number.isNaN(we.getTime()) || (i.id !== 0 && (be.current = i.id), x({
870
+ date: we,
871
+ allDay: !0,
872
+ resourceId: c.getAttribute("data-resource-id") ?? void 0
873
+ }));
874
+ };
875
+ return e.addEventListener("click", t), () => e.removeEventListener("click", t);
876
+ }, [_, x, T]);
877
+ const Dt = y(
878
+ (e) => {
879
+ const t = e.resource.extendedProps, r = e.resource.title, a = t.shortTitle, i = t.color, c = t.shortTitleTextColor, g = i || c ? {
880
+ ...i ? { "--resource-color": i } : {},
881
+ ...c ? {
882
+ "--resource-initials-text-color": c
883
+ } : {}
884
+ } : void 0;
885
+ if (he && a && i) {
886
+ ke(i, c, `resource ${e.resource.id}`);
887
+ const Z = [
888
+ "resource-initials",
889
+ "ds:[background-color:var(--resource-color)]",
890
+ c ? "ds:[color:var(--resource-initials-text-color)]" : null
891
+ ].filter(Boolean).join(" ");
892
+ return /* @__PURE__ */ G("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
893
+ /* @__PURE__ */ l(
894
+ "span",
895
+ {
896
+ className: Z,
897
+ style: g,
898
+ "aria-hidden": "true",
899
+ children: a
900
+ }
901
+ ),
902
+ /* @__PURE__ */ l("span", { className: "ds:truncate ds:text-start", children: r })
903
+ ] });
904
+ }
905
+ return i ? (i && c && ke(i, c, `resource ${e.resource.id}`), /* @__PURE__ */ G("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
906
+ /* @__PURE__ */ l(
907
+ "span",
908
+ {
909
+ className: "resource-dot ds:[background-color:var(--resource-color)]",
910
+ style: g,
911
+ "aria-hidden": "true"
912
+ }
913
+ ),
914
+ /* @__PURE__ */ l("span", { className: "ds:truncate ds:text-start", children: r })
915
+ ] })) : /* @__PURE__ */ l("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)]", children: /* @__PURE__ */ l("span", { className: "ds:truncate ds:text-start", children: r }) });
916
+ },
917
+ [he]
918
+ ), Ce = u(
919
+ () => s == null ? void 0 : s.map((e) => ({
920
+ id: e.id,
921
+ title: e.title,
922
+ sequenceNumber: e.sequenceNumber,
923
+ extendedProps: {
924
+ shortTitle: e.shortTitle,
925
+ color: e.color,
926
+ shortTitleTextColor: e.shortTitleTextColor,
927
+ sequenceNumber: e.sequenceNumber
928
+ }
929
+ })),
930
+ [s]
931
+ );
932
+ h(() => {
933
+ F();
934
+ const e = requestAnimationFrame(F);
935
+ return () => cancelAnimationFrame(e);
936
+ }, [X, Ce, _, F]);
937
+ const Ct = y(() => {
938
+ var e, t;
939
+ (t = (e = I.current) == null ? void 0 : e.getApi()) == null || t.today();
940
+ }, []), wt = y(() => {
941
+ var e, t;
942
+ (t = (e = I.current) == null ? void 0 : e.getApi()) == null || t.prev();
943
+ }, []), It = y(() => {
944
+ var e, t;
945
+ (t = (e = I.current) == null ? void 0 : e.getApi()) == null || t.next();
946
+ }, []), At = [
947
+ "fc-theme-alfadocs",
948
+ Xe ? "calendar-zebra-rows" : null,
949
+ "ds:bg-background ds:text-foreground",
950
+ "ds:rounded-[var(--radius-md)]",
951
+ Ge
952
+ ].filter(Boolean).join(" "), kt = $ || z ? {
953
+ ...$ ? { "--calendar-mode-bg": $ } : {},
954
+ ...z ? { "--calendar-mode-fg": z } : {}
955
+ } : void 0, Et = H !== "default" ? Le ?? m(Jt[H]) : "", Nt = [
956
+ "ds:sticky ds:top-0 ds:z-10",
957
+ "ds:flex ds:items-center ds:gap-[var(--spacing-sm)]",
958
+ "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
959
+ "ds:py-[var(--spacing-sm)]",
960
+ /* Caller-supplied colours flow through CSS custom properties set
961
+ in `modeBannerStyle`; fallback tokens apply when the caller
962
+ doesn't supply a hex. */
963
+ $ ? "ds:[background-color:var(--calendar-mode-bg)]" : "ds:bg-[var(--muted)]",
964
+ z ? "ds:[color:var(--calendar-mode-fg)]" : "ds:text-[var(--muted-foreground)]"
965
+ ].filter(Boolean).join(" "), St = [
966
+ "ds:inline-flex ds:items-center ds:justify-center",
967
+ "ds:min-h-[var(--min-target-size)]",
968
+ "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-md)]",
969
+ "ds:rounded-[var(--radius-full)]",
970
+ "ds:bg-[var(--background)] ds:text-[var(--foreground)]",
971
+ "ds:border ds:border-[var(--border)]",
972
+ "ds:font-[var(--font-weight-medium)] ds:text-[length:var(--font-size-sm)]",
973
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:ease-[var(--ease-out)]",
974
+ "ds:hover:bg-[var(--muted)]",
975
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)]",
976
+ "ds:focus-visible:outline-[var(--ring)]",
977
+ "ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
978
+ "ds:motion-reduce:transition-none"
979
+ ].join(" ");
980
+ return /* @__PURE__ */ G(
981
+ "div",
982
+ {
983
+ ref: R,
984
+ className: At,
985
+ role: "region",
986
+ "aria-label": m("calendar.ariaLabel"),
987
+ "data-component": "calendar",
988
+ "data-component-id": n,
989
+ "data-mode": H,
990
+ children: [
991
+ /* @__PURE__ */ l(
992
+ "div",
993
+ {
994
+ ref: C,
995
+ "aria-live": "polite",
996
+ "aria-atomic": "true",
997
+ className: ["ds:sr-only", N].filter(Boolean).join(" ")
998
+ }
999
+ ),
1000
+ Oe,
1001
+ H !== "default" ? /* @__PURE__ */ G(
1002
+ "div",
1003
+ {
1004
+ className: Nt,
1005
+ style: kt,
1006
+ role: "status",
1007
+ children: [
1008
+ /* @__PURE__ */ l(
1009
+ "span",
1010
+ {
1011
+ className: ["ds:flex-1 ds:text-start", N].filter(Boolean).join(" "),
1012
+ children: Et
1013
+ }
1014
+ ),
1015
+ pe ? /* @__PURE__ */ l(
1016
+ "button",
1017
+ {
1018
+ type: "button",
1019
+ onClick: pe,
1020
+ className: St,
1021
+ children: m("calendar.modeBanner.cancel")
1022
+ }
1023
+ ) : null
1024
+ ]
1025
+ }
1026
+ ) : null,
1027
+ Ke !== !1 ? /* @__PURE__ */ l(
1028
+ fe,
1029
+ {
1030
+ title: et,
1031
+ onToday: Ct,
1032
+ onPrev: wt,
1033
+ onNext: It,
1034
+ end: Ue,
1035
+ maskClassName: N
1036
+ }
1037
+ ) : null,
1038
+ /* @__PURE__ */ l(
1039
+ Mt,
1040
+ {
1041
+ ref: I,
1042
+ plugins: Tt,
1043
+ schedulerLicenseKey: qe,
1044
+ initialView: xt,
1045
+ views: Xt,
1046
+ initialDate: f,
1047
+ locale: K,
1048
+ direction: Ze,
1049
+ firstDay: bt,
1050
+ editable: E,
1051
+ eventDurationEditable: re ?? E,
1052
+ selectable: ne,
1053
+ droppable: E,
1054
+ dayMaxEvents: ze,
1055
+ height: Me,
1056
+ events: nt,
1057
+ resources: Ce,
1058
+ resourceOrder: "sequenceNumber",
1059
+ resourceLabelContent: Dt,
1060
+ resourceAreaWidth: Ye,
1061
+ resourceAreaHeaderContent: dt,
1062
+ dayCellClassNames: ct,
1063
+ dayHeaderClassNames: ut,
1064
+ resourceLabelClassNames: lt,
1065
+ dayHeaderDidMount: mt,
1066
+ ...Y ? { slotLaneClassNames: Y } : {},
1067
+ ...Y ? { eventClassNames: Y } : {},
1068
+ headerToolbar: !1,
1069
+ allDayText: m("calendar.allDay"),
1070
+ noEventsText: m("calendar.noEvents"),
1071
+ titleFormat: it,
1072
+ dayHeaderFormat: at,
1073
+ eventTimeFormat: ot,
1074
+ slotLabelFormat: st,
1075
+ slotMinTime: We ?? "00:00:00",
1076
+ slotMaxTime: je ?? "24:00:00",
1077
+ slotDuration: _e ?? "00:30:00",
1078
+ slotLabelInterval: "01:00:00",
1079
+ ...De !== void 0 ? { defaultTimedEventDuration: De } : {},
1080
+ hiddenDays: ve,
1081
+ datesAboveResources: ie,
1082
+ slotEventOverlap: Ve,
1083
+ stickyHeaderDates: He,
1084
+ nowIndicator: $e,
1085
+ eventLongPressDelay: U ? 0 : 1e3,
1086
+ eventDragMinDistance: U ? 0 : ce,
1087
+ eventContent: (e) => {
1088
+ var r;
1089
+ const t = e.event.extendedProps ?? {};
1090
+ return /* @__PURE__ */ l(
1091
+ $t,
1092
+ {
1093
+ eventId: e.event.id,
1094
+ title: D ? t.privacyModeTitle ?? "•••" : e.event.title,
1095
+ suffix: t.suffix,
1096
+ rangeText: tr(e, K),
1097
+ showTime: Fe,
1098
+ allDay: e.event.allDay,
1099
+ status: t.status,
1100
+ statusAccent: Be,
1101
+ backgroundColor: t.backgroundColor,
1102
+ textColor: t.textColor,
1103
+ borderColor: t.borderColor,
1104
+ isBookedOnline: t.isBookedOnline,
1105
+ hasUnassignedPatient: t.hasUnassignedPatient,
1106
+ hasHighlightedAnamnesis: t.hasHighlightedAnamnesis,
1107
+ hasBillableAmount: t.hasBillableAmount,
1108
+ isTelehealth: t.isTelehealth,
1109
+ resourceLabel: t.resourceId ? (r = (s ?? []).find((a) => a.id === t.resourceId)) == null ? void 0 : r.title : void 0
1110
+ }
1111
+ );
1112
+ },
1113
+ eventClick: vt,
1114
+ eventDrop: ft,
1115
+ eventResize: pt,
1116
+ eventDragStart: B,
1117
+ eventResizeStart: V,
1118
+ select: ht,
1119
+ dateClick: gt,
1120
+ datesSet: yt
1121
+ }
1122
+ )
1123
+ ]
1124
+ }
1125
+ );
1126
+ }
1127
+ );
1128
+ Pe.displayName = "Calendar";
1129
+ const ir = Pe;
1130
+ ir.Toolbar = fe;
1131
+ export {
1132
+ ir as C,
1133
+ zt as c,
1134
+ de as r
1135
+ };
1136
+ //# sourceMappingURL=calendar-4dXTvsCz.js.map