@arbidocs/blocks 0.4.129 → 0.4.130

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 (173) hide show
  1. package/README.md +4 -3
  2. package/dist/agents/index.cjs +216 -216
  3. package/dist/agents/index.js +5 -5
  4. package/dist/calendar/CalendarPrint.d.ts +25 -0
  5. package/dist/calendar/booking-slots.d.ts +21 -0
  6. package/dist/calendar/index.cjs +381 -97
  7. package/dist/calendar/index.cjs.map +1 -1
  8. package/dist/calendar/index.d.ts +4 -0
  9. package/dist/calendar/index.js +277 -3
  10. package/dist/calendar/index.js.map +1 -1
  11. package/dist/calendar/print-layout.d.ts +16 -0
  12. package/dist/calendar/printCalendar.d.ts +6 -0
  13. package/dist/calls/composite-canvas.d.ts +52 -0
  14. package/dist/calls/index.cjs +376 -3
  15. package/dist/calls/index.cjs.map +1 -1
  16. package/dist/calls/index.d.ts +3 -0
  17. package/dist/calls/index.js +360 -5
  18. package/dist/calls/index.js.map +1 -1
  19. package/dist/calls/ringtone.d.ts +16 -0
  20. package/dist/calls/voice-levels.d.ts +32 -0
  21. package/dist/chat/ThreadVisualizer.d.ts +28 -0
  22. package/dist/chat/index.cjs +93 -77
  23. package/dist/chat/index.d.ts +2 -0
  24. package/dist/chat/index.js +2 -2
  25. package/dist/chat/open-document.d.ts +5 -1
  26. package/dist/chat/thread-diagram.d.ts +26 -0
  27. package/dist/{chunk-DQCYCEDR.js → chunk-2Q7FDZAY.js} +3 -3
  28. package/dist/{chunk-DQCYCEDR.js.map → chunk-2Q7FDZAY.js.map} +1 -1
  29. package/dist/{chunk-S7PSMMRG.js → chunk-444XKG46.js} +3 -3
  30. package/dist/{chunk-S7PSMMRG.js.map → chunk-444XKG46.js.map} +1 -1
  31. package/dist/{chunk-7423V6RM.cjs → chunk-4QIIDXLF.cjs} +8 -8
  32. package/dist/{chunk-7423V6RM.cjs.map → chunk-4QIIDXLF.cjs.map} +1 -1
  33. package/dist/{chunk-OYMWV45N.js → chunk-4RLCRFZS.js} +63 -13
  34. package/dist/chunk-4RLCRFZS.js.map +1 -0
  35. package/dist/{chunk-DZYAAL4H.cjs → chunk-4S5IDT5F.cjs} +231 -2
  36. package/dist/chunk-4S5IDT5F.cjs.map +1 -0
  37. package/dist/{chunk-CJBN5HIS.js → chunk-4UMXQPNA.js} +20 -8
  38. package/dist/chunk-4UMXQPNA.js.map +1 -0
  39. package/dist/{chunk-IBZJYCYM.js → chunk-66TA5IBN.js} +17 -25
  40. package/dist/chunk-66TA5IBN.js.map +1 -0
  41. package/dist/{chunk-OR4CO743.cjs → chunk-AAFX64WD.cjs} +3 -3
  42. package/dist/{chunk-OR4CO743.cjs.map → chunk-AAFX64WD.cjs.map} +1 -1
  43. package/dist/{chunk-MUMH3Z6K.cjs → chunk-ARDHLU73.cjs} +61 -11
  44. package/dist/chunk-ARDHLU73.cjs.map +1 -0
  45. package/dist/{chunk-TGWTLNXW.cjs → chunk-BIXHB4LV.cjs} +3 -2
  46. package/dist/{chunk-TGWTLNXW.cjs.map → chunk-BIXHB4LV.cjs.map} +1 -1
  47. package/dist/chunk-C4WSHRR6.cjs +166 -0
  48. package/dist/chunk-C4WSHRR6.cjs.map +1 -0
  49. package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
  50. package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
  51. package/dist/{chunk-5HFPRI3W.js → chunk-FUTMU4FR.js} +3 -3
  52. package/dist/{chunk-5HFPRI3W.js.map → chunk-FUTMU4FR.js.map} +1 -1
  53. package/dist/{chunk-5Y7JRY7Y.js → chunk-GDBDHOI4.js} +3 -3
  54. package/dist/{chunk-5Y7JRY7Y.js.map → chunk-GDBDHOI4.js.map} +1 -1
  55. package/dist/{chunk-TGJNPKST.js → chunk-GTCC2VAR.js} +3 -3
  56. package/dist/{chunk-TGJNPKST.js.map → chunk-GTCC2VAR.js.map} +1 -1
  57. package/dist/{chunk-3BJLNKOB.cjs → chunk-GZPTWHP5.cjs} +22 -10
  58. package/dist/chunk-GZPTWHP5.cjs.map +1 -0
  59. package/dist/{chunk-OUW6G4O2.cjs → chunk-HFGXA5CL.cjs} +4 -4
  60. package/dist/{chunk-OUW6G4O2.cjs.map → chunk-HFGXA5CL.cjs.map} +1 -1
  61. package/dist/{chunk-SWQX6CTT.cjs → chunk-JKB7WT7L.cjs} +2 -2
  62. package/dist/chunk-JKB7WT7L.cjs.map +1 -0
  63. package/dist/{chunk-S6BOINC4.cjs → chunk-OGBXV326.cjs} +7 -7
  64. package/dist/{chunk-S6BOINC4.cjs.map → chunk-OGBXV326.cjs.map} +1 -1
  65. package/dist/{chunk-DJM7DLCT.cjs → chunk-OPTBQSCV.cjs} +3 -3
  66. package/dist/{chunk-DJM7DLCT.cjs.map → chunk-OPTBQSCV.cjs.map} +1 -1
  67. package/dist/{chunk-GFYGYME3.js → chunk-OQ7RUNOC.js} +3 -3
  68. package/dist/{chunk-GFYGYME3.js.map → chunk-OQ7RUNOC.js.map} +1 -1
  69. package/dist/{chunk-NYHGG2IA.cjs → chunk-QDEODGXE.cjs} +5 -5
  70. package/dist/{chunk-NYHGG2IA.cjs.map → chunk-QDEODGXE.cjs.map} +1 -1
  71. package/dist/{chunk-6BTCDKCK.js → chunk-QYTYW74G.js} +4 -4
  72. package/dist/{chunk-6BTCDKCK.js.map → chunk-QYTYW74G.js.map} +1 -1
  73. package/dist/{chunk-A7NCSZAP.cjs → chunk-QZTNTP75.cjs} +17 -25
  74. package/dist/chunk-QZTNTP75.cjs.map +1 -0
  75. package/dist/{chunk-OB5F4577.cjs → chunk-R26BK7YL.cjs} +4 -4
  76. package/dist/{chunk-OB5F4577.cjs.map → chunk-R26BK7YL.cjs.map} +1 -1
  77. package/dist/{chunk-A2YAC22G.js → chunk-RI6DZA5X.js} +3 -3
  78. package/dist/{chunk-A2YAC22G.js.map → chunk-RI6DZA5X.js.map} +1 -1
  79. package/dist/{chunk-H2KQ6OSU.js → chunk-SZX44LCT.js} +230 -5
  80. package/dist/chunk-SZX44LCT.js.map +1 -0
  81. package/dist/{chunk-7QDX2CO4.cjs → chunk-TP6PLDNM.cjs} +4 -4
  82. package/dist/{chunk-7QDX2CO4.cjs.map → chunk-TP6PLDNM.cjs.map} +1 -1
  83. package/dist/{chunk-JLTXVW25.cjs → chunk-TT6XV6WM.cjs} +17 -17
  84. package/dist/{chunk-JLTXVW25.cjs.map → chunk-TT6XV6WM.cjs.map} +1 -1
  85. package/dist/{chunk-HSFLEVZY.js → chunk-UMIY4SQS.js} +6 -6
  86. package/dist/{chunk-HSFLEVZY.js.map → chunk-UMIY4SQS.js.map} +1 -1
  87. package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
  88. package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
  89. package/dist/{chunk-D3N67Q4D.js → chunk-W3VYZXNS.js} +3 -3
  90. package/dist/{chunk-D3N67Q4D.js.map → chunk-W3VYZXNS.js.map} +1 -1
  91. package/dist/{chunk-JK45LSIH.cjs → chunk-WXYQ66KC.cjs} +5 -5
  92. package/dist/{chunk-JK45LSIH.cjs.map → chunk-WXYQ66KC.cjs.map} +1 -1
  93. package/dist/{chunk-ZCF2JJFA.js → chunk-Y3KA6X7B.js} +3 -3
  94. package/dist/{chunk-ZCF2JJFA.js.map → chunk-Y3KA6X7B.js.map} +1 -1
  95. package/dist/{chunk-GYCQ3FNL.js → chunk-YBLIKTJK.js} +2 -2
  96. package/dist/chunk-YBLIKTJK.js.map +1 -0
  97. package/dist/chunk-YNIBUKV5.js +163 -0
  98. package/dist/chunk-YNIBUKV5.js.map +1 -0
  99. package/dist/citations/index.cjs +12 -11
  100. package/dist/citations/index.js +3 -2
  101. package/dist/collaboration/index.cjs +42 -42
  102. package/dist/collaboration/index.js +2 -2
  103. package/dist/connect/docx.cjs +7 -5
  104. package/dist/connect/docx.cjs.map +1 -1
  105. package/dist/connect/docx.js +6 -4
  106. package/dist/connect/docx.js.map +1 -1
  107. package/dist/connect/index.cjs +237 -194
  108. package/dist/connect/index.cjs.map +1 -1
  109. package/dist/connect/index.d.ts +1 -1
  110. package/dist/connect/index.js +190 -147
  111. package/dist/connect/index.js.map +1 -1
  112. package/dist/connection/ConnectedSettings.d.ts +46 -20
  113. package/dist/connection/ConnectionProvider.d.ts +5 -0
  114. package/dist/connection/mail/ConnectedMailComposer.d.ts +2 -3
  115. package/dist/connection/mail/ConnectedMailbox.d.ts +2 -3
  116. package/dist/connection/mail/MailComposerForm.d.ts +2 -3
  117. package/dist/connection/mail/index.d.ts +2 -2
  118. package/dist/connection/mail/mailbox.d.ts +1 -4
  119. package/dist/connection/mail/types.d.ts +0 -8
  120. package/dist/facts/fact-citations.d.ts +56 -0
  121. package/dist/facts/fact-table-column-resize.d.ts +18 -0
  122. package/dist/facts/index.cjs +197 -10
  123. package/dist/facts/index.cjs.map +1 -1
  124. package/dist/facts/index.d.ts +2 -0
  125. package/dist/facts/index.js +182 -6
  126. package/dist/facts/index.js.map +1 -1
  127. package/dist/files/index.cjs +4 -4
  128. package/dist/files/index.js +3 -3
  129. package/dist/home/index.cjs +20 -19
  130. package/dist/home/index.cjs.map +1 -1
  131. package/dist/home/index.js +5 -4
  132. package/dist/home/index.js.map +1 -1
  133. package/dist/index.cjs +485 -469
  134. package/dist/index.d.ts +2 -1
  135. package/dist/index.js +13 -13
  136. package/dist/provider/BlocksProvider.d.ts +39 -4
  137. package/dist/provider/dialogs.d.ts +31 -0
  138. package/dist/retrieval/index.cjs +5 -4
  139. package/dist/retrieval/index.js +3 -2
  140. package/dist/settings/MoreInfo.d.ts +25 -0
  141. package/dist/settings/PlanCard.d.ts +1 -1
  142. package/dist/settings/index.cjs +106 -252
  143. package/dist/settings/index.cjs.map +1 -1
  144. package/dist/settings/index.d.ts +1 -1
  145. package/dist/settings/index.js +71 -216
  146. package/dist/settings/index.js.map +1 -1
  147. package/dist/shell/index.cjs +48 -47
  148. package/dist/shell/index.js +4 -3
  149. package/dist/studio/index.cjs +15 -14
  150. package/dist/studio/index.cjs.map +1 -1
  151. package/dist/studio/index.js +7 -6
  152. package/dist/studio/index.js.map +1 -1
  153. package/dist/workflow-canvas/index.cjs +14 -14
  154. package/dist/workflow-canvas/index.js +6 -6
  155. package/dist/workspaces/index.cjs +3 -3
  156. package/dist/workspaces/index.js +2 -2
  157. package/node_modules/@arbidocs/coedit/package.json +1 -1
  158. package/package.json +9 -4
  159. package/dist/chunk-3BJLNKOB.cjs.map +0 -1
  160. package/dist/chunk-76JDDMSP.js +0 -31
  161. package/dist/chunk-76JDDMSP.js.map +0 -1
  162. package/dist/chunk-A7NCSZAP.cjs.map +0 -1
  163. package/dist/chunk-C54XEN5T.cjs +0 -34
  164. package/dist/chunk-C54XEN5T.cjs.map +0 -1
  165. package/dist/chunk-CJBN5HIS.js.map +0 -1
  166. package/dist/chunk-DZYAAL4H.cjs.map +0 -1
  167. package/dist/chunk-GYCQ3FNL.js.map +0 -1
  168. package/dist/chunk-H2KQ6OSU.js.map +0 -1
  169. package/dist/chunk-IBZJYCYM.js.map +0 -1
  170. package/dist/chunk-MUMH3Z6K.cjs.map +0 -1
  171. package/dist/chunk-OYMWV45N.js.map +0 -1
  172. package/dist/chunk-SWQX6CTT.cjs.map +0 -1
  173. package/dist/settings/FirmPool.d.ts +0 -82
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkTGWTLNXW_cjs = require('../chunk-TGWTLNXW.cjs');
4
+ var chunkBIXHB4LV_cjs = require('../chunk-BIXHB4LV.cjs');
5
5
  require('../chunk-DES3K4SD.cjs');
6
6
  var react = require('react');
7
7
  var FullCalendar = require('@fullcalendar/react');
@@ -16,6 +16,8 @@ var jsxRuntime = require('react/jsx-runtime');
16
16
  var core = require('@fullcalendar/core');
17
17
  var internal = require('@fullcalendar/core/internal');
18
18
  var temporalPolyfill = require('temporal-polyfill');
19
+ var reactDom = require('react-dom');
20
+ var client = require('react-dom/client');
19
21
 
20
22
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
21
23
 
@@ -322,10 +324,10 @@ function getTemporalTimeZonePlugin() {
322
324
  if (!temporalZonePlugin) {
323
325
  class TemporalNamedTimeZone extends internal.NamedTimeZoneImpl {
324
326
  offsetForArray(a) {
325
- return chunkTGWTLNXW_cjs.wallArrayOffset(a, this.timeZoneName);
327
+ return chunkBIXHB4LV_cjs.wallArrayOffset(a, this.timeZoneName);
326
328
  }
327
329
  timestampToArray(ms) {
328
- return chunkTGWTLNXW_cjs.epochToWallArray(ms, this.timeZoneName);
330
+ return chunkBIXHB4LV_cjs.epochToWallArray(ms, this.timeZoneName);
329
331
  }
330
332
  }
331
333
  temporalZonePlugin = core.createPlugin({
@@ -411,9 +413,9 @@ function toEventInput(e, zone) {
411
413
  extendedProps: { grid: e }
412
414
  };
413
415
  if (e.allDay) {
414
- const start = e.startDate ?? chunkTGWTLNXW_cjs.utcToDate(e.startUtc, zone);
415
- const end = e.endDate ?? (e.endUtc ? chunkTGWTLNXW_cjs.utcToDate(e.endUtc, zone) : chunkTGWTLNXW_cjs.addDays(start, 1));
416
- return { ...base, allDay: true, start, end: end > start ? end : chunkTGWTLNXW_cjs.addDays(start, 1) };
416
+ const start = e.startDate ?? chunkBIXHB4LV_cjs.utcToDate(e.startUtc, zone);
417
+ const end = e.endDate ?? (e.endUtc ? chunkBIXHB4LV_cjs.utcToDate(e.endUtc, zone) : chunkBIXHB4LV_cjs.addDays(start, 1));
418
+ return { ...base, allDay: true, start, end: end > start ? end : chunkBIXHB4LV_cjs.addDays(start, 1) };
417
419
  }
418
420
  return { ...base, allDay: false, start: e.startUtc, end: e.endUtc };
419
421
  }
@@ -519,8 +521,8 @@ function CalendarGrid({
519
521
  keyboardShortcuts = true
520
522
  }) {
521
523
  const labels = react.useMemo(() => mergeLabels(labelOverrides), [labelOverrides]);
522
- const zone = chunkTGWTLNXW_cjs.safeZone(timeZone);
523
- const secondZone = secondaryTimeZone && secondaryTimeZone !== zone && chunkTGWTLNXW_cjs.isValidTimeZone(secondaryTimeZone) ? secondaryTimeZone : "";
524
+ const zone = chunkBIXHB4LV_cjs.safeZone(timeZone);
525
+ const secondZone = secondaryTimeZone && secondaryTimeZone !== zone && chunkBIXHB4LV_cjs.isValidTimeZone(secondaryTimeZone) ? secondaryTimeZone : "";
524
526
  const rootRef = react.useRef(null);
525
527
  const calRef = react.useRef(null);
526
528
  const [narrow, setNarrow] = react.useState(false);
@@ -563,7 +565,7 @@ function CalendarGrid({
563
565
  a.changeView(fcView, date);
564
566
  return;
565
567
  }
566
- if (chunkTGWTLNXW_cjs.utcToDate(a.getDate(), zone) !== date) a.gotoDate(date);
568
+ if (chunkBIXHB4LV_cjs.utcToDate(a.getDate(), zone) !== date) a.gotoDate(date);
567
569
  }, [api, effective, date, zone]);
568
570
  const fcEvents = react.useMemo(() => events.map((e) => toEventInput(e, zone)), [events, zone]);
569
571
  const changeView = react.useCallback(
@@ -580,7 +582,7 @@ function CalendarGrid({
580
582
  if (!a) return;
581
583
  if (dir === "prev") a.prev();
582
584
  else if (dir === "next") a.next();
583
- else a.gotoDate(chunkTGWTLNXW_cjs.utcToDate(Date.now(), zone));
585
+ else a.gotoDate(chunkBIXHB4LV_cjs.utcToDate(Date.now(), zone));
584
586
  },
585
587
  [api, zone]
586
588
  );
@@ -614,7 +616,7 @@ function CalendarGrid({
614
616
  const onDatesSet = react.useCallback(
615
617
  (arg) => {
616
618
  setTitle(arg.view.title);
617
- const anchor = chunkTGWTLNXW_cjs.utcToDate(arg.view.calendar.getDate(), zone);
619
+ const anchor = chunkBIXHB4LV_cjs.utcToDate(arg.view.calendar.getDate(), zone);
618
620
  const kind = VIEW_OF_FC[arg.view.type] ?? effective;
619
621
  const key = `${kind}|${arg.start.toISOString()}|${arg.end.toISOString()}|${anchor}`;
620
622
  if (key === lastRange.current) return;
@@ -655,7 +657,7 @@ function CalendarGrid({
655
657
  const start = event.start;
656
658
  if (event.allDay) {
657
659
  const startDate = event.startStr.slice(0, 10);
658
- const endDate = event.endStr ? event.endStr.slice(0, 10) : chunkTGWTLNXW_cjs.addDays(startDate, 1);
660
+ const endDate = event.endStr ? event.endStr.slice(0, 10) : chunkBIXHB4LV_cjs.addDays(startDate, 1);
659
661
  const end2 = event.end ?? new Date(start.getTime() + 864e5);
660
662
  cb.current.onEventChange({
661
663
  instanceId: g.instanceId,
@@ -684,7 +686,7 @@ function CalendarGrid({
684
686
  if (!secondZone) return arg.text;
685
687
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "arbi-cal-slot-labels", children: [
686
688
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-slot-secondary", children: (() => {
687
- const t = chunkTGWTLNXW_cjs.convertWall(`${date}T${chunkTGWTLNXW_cjs.utcToTime(arg.date, zone)}`, zone, secondZone).slice(
689
+ const t = chunkBIXHB4LV_cjs.convertWall(`${date}T${chunkBIXHB4LV_cjs.utcToTime(arg.date, zone)}`, zone, secondZone).slice(
688
690
  11,
689
691
  16
690
692
  );
@@ -699,8 +701,8 @@ function CalendarGrid({
699
701
  (arg) => {
700
702
  if (!secondZone) return arg.text;
701
703
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "arbi-cal-slot-labels arbi-cal-zone-labels", children: [
702
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-slot-secondary", title: secondZone, children: chunkTGWTLNXW_cjs.zoneOffsetLabel(secondZone) }),
703
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-slot-primary", title: zone, children: chunkTGWTLNXW_cjs.zoneOffsetLabel(zone) })
704
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-slot-secondary", title: secondZone, children: chunkBIXHB4LV_cjs.zoneOffsetLabel(secondZone) }),
705
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-slot-primary", title: zone, children: chunkBIXHB4LV_cjs.zoneOffsetLabel(zone) })
704
706
  ] });
705
707
  },
706
708
  [secondZone, zone]
@@ -710,8 +712,8 @@ function CalendarGrid({
710
712
  const t = arg.view.type;
711
713
  if (!t.startsWith("timeGrid") && t !== "arbiWorkWeek") return arg.text;
712
714
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("arbi-cal-dayhead", arg.isToday && "arbi-cal-dayhead-today"), children: [
713
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-dayhead-dow", children: chunkTGWTLNXW_cjs.formatInZone(arg.date, zone, { weekday: "short" }) }),
714
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-dayhead-num", children: chunkTGWTLNXW_cjs.formatInZone(arg.date, zone, { day: "numeric" }) })
715
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-dayhead-dow", children: chunkBIXHB4LV_cjs.formatInZone(arg.date, zone, { weekday: "short" }) }),
716
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "arbi-cal-dayhead-num", children: chunkBIXHB4LV_cjs.formatInZone(arg.date, zone, { day: "numeric" }) })
715
717
  ] });
716
718
  },
717
719
  [zone]
@@ -828,13 +830,13 @@ function CalendarGrid({
828
830
  className: "hidden text-xs text-muted-foreground md:inline",
829
831
  "data-testid": "calendar-zones",
830
832
  children: [
831
- chunkTGWTLNXW_cjs.zoneCity(zone),
833
+ chunkBIXHB4LV_cjs.zoneCity(zone),
832
834
  " ",
833
- chunkTGWTLNXW_cjs.zoneOffsetLabel(zone),
835
+ chunkBIXHB4LV_cjs.zoneOffsetLabel(zone),
834
836
  " \xB7 ",
835
- chunkTGWTLNXW_cjs.zoneCity(secondZone),
837
+ chunkBIXHB4LV_cjs.zoneCity(secondZone),
836
838
  " ",
837
- chunkTGWTLNXW_cjs.zoneOffsetLabel(secondZone)
839
+ chunkBIXHB4LV_cjs.zoneOffsetLabel(secondZone)
838
840
  ]
839
841
  }
840
842
  ),
@@ -962,13 +964,13 @@ function MiniMonth({
962
964
  if (view.for !== date) setView({ for: date, month: `${date.slice(0, 7)}-01` });
963
965
  const month = view.for === date ? view.month : `${date.slice(0, 7)}-01`;
964
966
  const setMonth = (m) => setView({ for: date, month: m });
965
- const today = chunkTGWTLNXW_cjs.todayInZone(timeZone);
967
+ const today = chunkBIXHB4LV_cjs.todayInZone(timeZone);
966
968
  const days = react.useMemo(() => {
967
- const first = chunkTGWTLNXW_cjs.startOfWeek(month, weekStart);
968
- return Array.from({ length: 42 }, (_, i) => chunkTGWTLNXW_cjs.addDays(first, i));
969
+ const first = chunkBIXHB4LV_cjs.startOfWeek(month, weekStart);
970
+ return Array.from({ length: 42 }, (_, i) => chunkBIXHB4LV_cjs.addDays(first, i));
969
971
  }, [month, weekStart]);
970
- const weekdays = days.slice(0, 7).map((d) => chunkTGWTLNXW_cjs.formatPlainDate(d, { weekday: "narrow" }));
971
- const monthTitle = chunkTGWTLNXW_cjs.formatPlainDate(month, { month: "long", year: "numeric" });
972
+ const weekdays = days.slice(0, 7).map((d) => chunkBIXHB4LV_cjs.formatPlainDate(d, { weekday: "narrow" }));
973
+ const monthTitle = chunkBIXHB4LV_cjs.formatPlainDate(month, { month: "long", year: "numeric" });
972
974
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("select-none text-xs", className), "data-testid": "calendar-mini-month", children: [
973
975
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between px-1", children: [
974
976
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", "aria-live": "polite", children: monthTitle }),
@@ -979,7 +981,7 @@ function MiniMonth({
979
981
  type: "button",
980
982
  className: "rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground",
981
983
  "aria-label": labels.previous,
982
- onClick: () => setMonth(chunkTGWTLNXW_cjs.addMonths(month, -1)),
984
+ onClick: () => setMonth(chunkBIXHB4LV_cjs.addMonths(month, -1)),
983
985
  "data-testid": "calendar-mini-prev",
984
986
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" })
985
987
  }
@@ -990,7 +992,7 @@ function MiniMonth({
990
992
  type: "button",
991
993
  className: "rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground",
992
994
  "aria-label": labels.next,
993
- onClick: () => setMonth(chunkTGWTLNXW_cjs.addMonths(month, 1)),
995
+ onClick: () => setMonth(chunkBIXHB4LV_cjs.addMonths(month, 1)),
994
996
  "data-testid": "calendar-mini-next",
995
997
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
996
998
  }
@@ -1026,7 +1028,7 @@ function MiniMonth({
1026
1028
  MiniDay,
1027
1029
  {
1028
1030
  d,
1029
- weekCell: showWeekNumbers && i % 7 === 0 ? chunkTGWTLNXW_cjs.isoWeekNumber(d) : null,
1031
+ weekCell: showWeekNumbers && i % 7 === 0 ? chunkBIXHB4LV_cjs.isoWeekNumber(d) : null,
1030
1032
  inMonth,
1031
1033
  inRange,
1032
1034
  selected,
@@ -1059,7 +1061,7 @@ function MiniDay({
1059
1061
  role: "gridcell",
1060
1062
  "aria-selected": selected,
1061
1063
  "aria-current": isToday ? "date" : void 0,
1062
- "aria-label": chunkTGWTLNXW_cjs.formatPlainDate(d, { dateStyle: "full" }),
1064
+ "aria-label": chunkBIXHB4LV_cjs.formatPlainDate(d, { dateStyle: "full" }),
1063
1065
  onClick: () => onSelect(d),
1064
1066
  "data-testid": `calendar-mini-day-${d}`,
1065
1067
  className: ui.cn(
@@ -1311,12 +1313,12 @@ function CalendarList({
1311
1313
  var isAllDayDraft = (d) => !!d.start.date;
1312
1314
  var datePart = (spec) => spec.date ?? (spec.date_time ?? "").slice(0, 10);
1313
1315
  var timePart = (spec) => (spec.date_time ?? "").slice(11, 16);
1314
- var specZone = (spec, defaultZone) => chunkTGWTLNXW_cjs.safeZone(spec.time_zone, defaultZone);
1316
+ var specZone = (spec, defaultZone) => chunkBIXHB4LV_cjs.safeZone(spec.time_zone, defaultZone);
1315
1317
  var specDate = datePart;
1316
1318
  var specTime = timePart;
1317
1319
  function specEpochMs(spec, defaultZone) {
1318
- if (spec.date) return chunkTGWTLNXW_cjs.wallToEpochMs(spec.date, defaultZone);
1319
- return chunkTGWTLNXW_cjs.wallToEpochMs(spec.date_time ?? "", specZone(spec, defaultZone));
1320
+ if (spec.date) return chunkBIXHB4LV_cjs.wallToEpochMs(spec.date, defaultZone);
1321
+ return chunkBIXHB4LV_cjs.wallToEpochMs(spec.date_time ?? "", specZone(spec, defaultZone));
1320
1322
  }
1321
1323
  function draftRangeUtc(d, defaultZone) {
1322
1324
  return { startMs: specEpochMs(d.start, defaultZone), endMs: specEpochMs(d.end, defaultZone) };
@@ -1324,7 +1326,7 @@ function draftRangeUtc(d, defaultZone) {
1324
1326
  function allDayInclusiveEnd(d) {
1325
1327
  const start = d.start.date ?? "";
1326
1328
  const end = d.end.date ?? start;
1327
- const last = chunkTGWTLNXW_cjs.addDays(end, -1);
1329
+ const last = chunkBIXHB4LV_cjs.addDays(end, -1);
1328
1330
  return last < start ? start : last;
1329
1331
  }
1330
1332
  function timedSpec(date, time, zone) {
@@ -1334,8 +1336,8 @@ function setDraftStart(d, change, defaultZone) {
1334
1336
  if (isAllDayDraft(d)) {
1335
1337
  const oldStart = d.start.date ?? change.date ?? "";
1336
1338
  const start2 = change.date ?? oldStart;
1337
- const days = Math.max(1, chunkTGWTLNXW_cjs.diffDays(oldStart, d.end.date ?? chunkTGWTLNXW_cjs.addDays(oldStart, 1)));
1338
- return { ...d, start: { date: start2 }, end: { date: chunkTGWTLNXW_cjs.addDays(start2, days) } };
1339
+ const days = Math.max(1, chunkBIXHB4LV_cjs.diffDays(oldStart, d.end.date ?? chunkBIXHB4LV_cjs.addDays(oldStart, 1)));
1340
+ return { ...d, start: { date: start2 }, end: { date: chunkBIXHB4LV_cjs.addDays(start2, days) } };
1339
1341
  }
1340
1342
  const { startMs, endMs } = draftRangeUtc(d, defaultZone);
1341
1343
  const duration = Math.max(0, endMs - startMs);
@@ -1347,7 +1349,7 @@ function setDraftStart(d, change, defaultZone) {
1347
1349
  );
1348
1350
  const newStartMs = specEpochMs(start, defaultZone);
1349
1351
  const endZone = specZone(d.end, defaultZone);
1350
- const endWall = chunkTGWTLNXW_cjs.utcToWall(newStartMs + duration, endZone);
1352
+ const endWall = chunkBIXHB4LV_cjs.utcToWall(newStartMs + duration, endZone);
1351
1353
  return {
1352
1354
  ...d,
1353
1355
  start,
@@ -1357,7 +1359,7 @@ function setDraftStart(d, change, defaultZone) {
1357
1359
  function setDraftEnd(d, change) {
1358
1360
  if (isAllDayDraft(d)) {
1359
1361
  const last = change.date ?? allDayInclusiveEnd(d);
1360
- return { ...d, end: { date: chunkTGWTLNXW_cjs.addDays(last, 1) } };
1362
+ return { ...d, end: { date: chunkBIXHB4LV_cjs.addDays(last, 1) } };
1361
1363
  }
1362
1364
  const zone = change.timeZone !== void 0 ? change.timeZone : d.end.time_zone ?? null;
1363
1365
  return {
@@ -1370,35 +1372,35 @@ function setDraftAllDay(d, allDay, defaultZone, defaultStartTime = "09:00", defa
1370
1372
  if (allDay) {
1371
1373
  const start2 = datePart(d.start);
1372
1374
  const endDay = datePart(d.end) || start2;
1373
- const lastDay = timePart(d.end) === "00:00" && endDay > start2 ? chunkTGWTLNXW_cjs.addDays(endDay, -1) : endDay;
1375
+ const lastDay = timePart(d.end) === "00:00" && endDay > start2 ? chunkBIXHB4LV_cjs.addDays(endDay, -1) : endDay;
1374
1376
  return {
1375
1377
  ...d,
1376
1378
  start: { date: start2 },
1377
- end: { date: chunkTGWTLNXW_cjs.addDays(lastDay < start2 ? start2 : lastDay, 1) }
1379
+ end: { date: chunkBIXHB4LV_cjs.addDays(lastDay < start2 ? start2 : lastDay, 1) }
1378
1380
  };
1379
1381
  }
1380
- const zone = chunkTGWTLNXW_cjs.safeZone(defaultZone);
1382
+ const zone = chunkBIXHB4LV_cjs.safeZone(defaultZone);
1381
1383
  const start = timedSpec(d.start.date ?? "", defaultStartTime, zone);
1382
1384
  const startMs = specEpochMs(start, zone);
1383
1385
  const end = {
1384
1386
  date: null,
1385
- date_time: chunkTGWTLNXW_cjs.utcToWall(startMs + defaultDurationMinutes * 6e4, zone),
1387
+ date_time: chunkBIXHB4LV_cjs.utcToWall(startMs + defaultDurationMinutes * 6e4, zone),
1386
1388
  time_zone: zone
1387
1389
  };
1388
1390
  return { ...d, start, end };
1389
1391
  }
1390
1392
  function draftFromSlot(slot, timeZone, calendarId, title = "") {
1391
- const zone = chunkTGWTLNXW_cjs.safeZone(timeZone);
1393
+ const zone = chunkBIXHB4LV_cjs.safeZone(timeZone);
1392
1394
  if (slot.allDay) {
1393
- const start = slot.startDate ?? chunkTGWTLNXW_cjs.utcToDate(slot.startUtc, zone);
1394
- const end = slot.endDate ?? chunkTGWTLNXW_cjs.addDays(start, 1);
1395
+ const start = slot.startDate ?? chunkBIXHB4LV_cjs.utcToDate(slot.startUtc, zone);
1396
+ const end = slot.endDate ?? chunkBIXHB4LV_cjs.addDays(start, 1);
1395
1397
  return { calendar_id: calendarId, title, start: { date: start }, end: { date: end } };
1396
1398
  }
1397
1399
  return {
1398
1400
  calendar_id: calendarId,
1399
1401
  title,
1400
- start: { date: null, date_time: chunkTGWTLNXW_cjs.utcToWall(slot.startUtc, zone), time_zone: zone },
1401
- end: { date: null, date_time: chunkTGWTLNXW_cjs.utcToWall(slot.endUtc, zone), time_zone: zone }
1402
+ start: { date: null, date_time: chunkBIXHB4LV_cjs.utcToWall(slot.startUtc, zone), time_zone: zone },
1403
+ end: { date: null, date_time: chunkBIXHB4LV_cjs.utcToWall(slot.endUtc, zone), time_zone: zone }
1402
1404
  };
1403
1405
  }
1404
1406
  function validateDraft(d, defaultZone) {
@@ -1446,7 +1448,7 @@ function defaultRecurrenceForm(startDate, freq = "none") {
1446
1448
  function untilValue(until, ctx) {
1447
1449
  if (ctx.allDay) return until.replace(/-/g, "");
1448
1450
  const zone = ctx.timeZone || "UTC";
1449
- const utc = chunkTGWTLNXW_cjs.wallToUtc(`${until}T23:59:59`, zone);
1451
+ const utc = chunkBIXHB4LV_cjs.wallToUtc(`${until}T23:59:59`, zone);
1450
1452
  const t = temporalPolyfill.Temporal.Instant.from(utc).toZonedDateTimeISO("UTC");
1451
1453
  const p = (n, w = 2) => String(n).padStart(w, "0");
1452
1454
  return `${p(t.year, 4)}${p(t.month)}${p(t.day)}T${p(t.hour)}${p(t.minute)}${p(t.second)}Z`;
@@ -1951,10 +1953,10 @@ function RecurrenceEditor({
1951
1953
 
1952
1954
  // src/calendar/format.ts
1953
1955
  function formatZoneLabel(zone, at = Date.now()) {
1954
- return `${chunkTGWTLNXW_cjs.zoneCity(zone)} (${chunkTGWTLNXW_cjs.zoneOffsetLabel(zone, at)})`;
1956
+ return `${chunkBIXHB4LV_cjs.zoneCity(zone)} (${chunkBIXHB4LV_cjs.zoneOffsetLabel(zone, at)})`;
1955
1957
  }
1956
1958
  function formatEventWhen(e, zone, locale) {
1957
- const z = chunkTGWTLNXW_cjs.safeZone(zone);
1959
+ const z = chunkBIXHB4LV_cjs.safeZone(zone);
1958
1960
  const dayFmt = {
1959
1961
  weekday: "short",
1960
1962
  day: "numeric",
@@ -1962,16 +1964,16 @@ function formatEventWhen(e, zone, locale) {
1962
1964
  year: "numeric"
1963
1965
  };
1964
1966
  if (e.all_day) {
1965
- const start = e.start.date ?? chunkTGWTLNXW_cjs.utcToDate(e.start_utc, z);
1966
- const endExcl = e.end.date ?? chunkTGWTLNXW_cjs.utcToDate(e.end_utc, z);
1967
- const last = endExcl > start ? chunkTGWTLNXW_cjs.addDays(endExcl, -1) : start;
1968
- const a2 = chunkTGWTLNXW_cjs.formatPlainDate(start, dayFmt, locale);
1969
- return last === start ? a2 : `${a2} \u2013 ${chunkTGWTLNXW_cjs.formatPlainDate(last, dayFmt, locale)}`;
1967
+ const start = e.start.date ?? chunkBIXHB4LV_cjs.utcToDate(e.start_utc, z);
1968
+ const endExcl = e.end.date ?? chunkBIXHB4LV_cjs.utcToDate(e.end_utc, z);
1969
+ const last = endExcl > start ? chunkBIXHB4LV_cjs.addDays(endExcl, -1) : start;
1970
+ const a2 = chunkBIXHB4LV_cjs.formatPlainDate(start, dayFmt, locale);
1971
+ return last === start ? a2 : `${a2} \u2013 ${chunkBIXHB4LV_cjs.formatPlainDate(last, dayFmt, locale)}`;
1970
1972
  }
1971
1973
  const timeFmt = { hour: "numeric", minute: "2-digit" };
1972
- const sameDay = chunkTGWTLNXW_cjs.utcToDate(e.start_utc, z) === chunkTGWTLNXW_cjs.utcToDate(e.end_utc, z);
1973
- const a = `${chunkTGWTLNXW_cjs.formatInZone(e.start_utc, z, dayFmt, locale)} \xB7 ${chunkTGWTLNXW_cjs.formatInZone(e.start_utc, z, timeFmt, locale)}`;
1974
- return sameDay ? `${a} \u2013 ${chunkTGWTLNXW_cjs.formatInZone(e.end_utc, z, timeFmt, locale)}` : `${a} \u2013 ${chunkTGWTLNXW_cjs.formatInZone(e.end_utc, z, dayFmt, locale)} \xB7 ${chunkTGWTLNXW_cjs.formatInZone(e.end_utc, z, timeFmt, locale)}`;
1974
+ const sameDay = chunkBIXHB4LV_cjs.utcToDate(e.start_utc, z) === chunkBIXHB4LV_cjs.utcToDate(e.end_utc, z);
1975
+ const a = `${chunkBIXHB4LV_cjs.formatInZone(e.start_utc, z, dayFmt, locale)} \xB7 ${chunkBIXHB4LV_cjs.formatInZone(e.start_utc, z, timeFmt, locale)}`;
1976
+ return sameDay ? `${a} \u2013 ${chunkBIXHB4LV_cjs.formatInZone(e.end_utc, z, timeFmt, locale)}` : `${a} \u2013 ${chunkBIXHB4LV_cjs.formatInZone(e.end_utc, z, dayFmt, locale)} \xB7 ${chunkBIXHB4LV_cjs.formatInZone(e.end_utc, z, timeFmt, locale)}`;
1975
1977
  }
1976
1978
  function TimeZonePicker({
1977
1979
  value,
@@ -1989,15 +1991,15 @@ function TimeZonePicker({
1989
1991
  const [open, setOpen] = react.useState(false);
1990
1992
  const options = react.useMemo(() => {
1991
1993
  const now = Date.now();
1992
- const list = zones?.length ? zones : chunkTGWTLNXW_cjs.listTimeZones();
1994
+ const list = zones?.length ? zones : chunkBIXHB4LV_cjs.listTimeZones();
1993
1995
  return list.map((z) => {
1994
1996
  let offset = 0;
1995
1997
  try {
1996
- offset = chunkTGWTLNXW_cjs.zoneOffsetMinutes(z, now);
1998
+ offset = chunkBIXHB4LV_cjs.zoneOffsetMinutes(z, now);
1997
1999
  } catch {
1998
2000
  return null;
1999
2001
  }
2000
- return { zone: z, offset, label: chunkTGWTLNXW_cjs.zoneOffsetLabel(z, now), city: chunkTGWTLNXW_cjs.zoneCity(z) };
2002
+ return { zone: z, offset, label: chunkBIXHB4LV_cjs.zoneOffsetLabel(z, now), city: chunkBIXHB4LV_cjs.zoneCity(z) };
2001
2003
  }).filter((o) => o !== null).sort((a, b) => a.offset - b.offset || a.zone.localeCompare(b.zone));
2002
2004
  }, [zones, open]);
2003
2005
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.Popover, { open, onOpenChange: setOpen, children: [
@@ -3048,12 +3050,12 @@ function EventDetails({
3048
3050
  className
3049
3051
  }) {
3050
3052
  const l = mergeLabels(labelOverrides);
3051
- const zone = chunkTGWTLNXW_cjs.safeZone(timeZone);
3053
+ const zone = chunkBIXHB4LV_cjs.safeZone(timeZone);
3052
3054
  const color = event.color || calendarColor || "#3b82f6";
3053
3055
  const restricted = !!event.restricted;
3054
3056
  const title = restricted ? l.busy : event.title?.trim() || l.noTitle;
3055
3057
  const eventZone = event.start.time_zone;
3056
- const otherZone = !event.all_day && eventZone && eventZone !== zone ? chunkTGWTLNXW_cjs.safeZone(eventZone, zone) : null;
3058
+ const otherZone = !event.all_day && eventZone && eventZone !== zone ? chunkBIXHB4LV_cjs.safeZone(eventZone, zone) : null;
3057
3059
  const attendees = event.attendees ?? [];
3058
3060
  const counts = attendees.reduce((acc, a) => {
3059
3061
  const k = a.partstat ?? "needs_action";
@@ -3087,14 +3089,14 @@ function EventDetails({
3087
3089
  ),
3088
3090
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", "data-testid": "calendar-details-when", children: formatEventWhen(event, zone) }),
3089
3091
  otherZone && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground", children: [
3090
- chunkTGWTLNXW_cjs.formatInZone(event.start_utc, otherZone, { hour: "numeric", minute: "2-digit" }),
3092
+ chunkBIXHB4LV_cjs.formatInZone(event.start_utc, otherZone, { hour: "numeric", minute: "2-digit" }),
3091
3093
  " \u2013",
3092
3094
  " ",
3093
- chunkTGWTLNXW_cjs.formatInZone(event.end_utc, otherZone, { hour: "numeric", minute: "2-digit" }),
3095
+ chunkBIXHB4LV_cjs.formatInZone(event.end_utc, otherZone, { hour: "numeric", minute: "2-digit" }),
3094
3096
  " ",
3095
- chunkTGWTLNXW_cjs.zoneCity(otherZone),
3097
+ chunkBIXHB4LV_cjs.zoneCity(otherZone),
3096
3098
  " (",
3097
- chunkTGWTLNXW_cjs.zoneOffsetLabel(otherZone, event.start_utc),
3099
+ chunkBIXHB4LV_cjs.zoneOffsetLabel(otherZone, event.start_utc),
3098
3100
  ")"
3099
3101
  ] })
3100
3102
  ] }),
@@ -3370,8 +3372,8 @@ function ScopeDialog({
3370
3372
  // src/calendar/scheduling.ts
3371
3373
  var pad2 = (n) => String(n).padStart(2, "0");
3372
3374
  function dayWindow(date, zone, startHour = 7, endHour = 20) {
3373
- const startMs = chunkTGWTLNXW_cjs.wallToEpochMs(`${date}T${pad2(startHour)}:00`, zone);
3374
- const endMs = endHour >= 24 ? chunkTGWTLNXW_cjs.wallToEpochMs(`${date}T23:59`, zone) + 6e4 : chunkTGWTLNXW_cjs.wallToEpochMs(`${date}T${pad2(endHour)}:00`, zone);
3375
+ const startMs = chunkBIXHB4LV_cjs.wallToEpochMs(`${date}T${pad2(startHour)}:00`, zone);
3376
+ const endMs = endHour >= 24 ? chunkBIXHB4LV_cjs.wallToEpochMs(`${date}T23:59`, zone) + 6e4 : chunkBIXHB4LV_cjs.wallToEpochMs(`${date}T${pad2(endHour)}:00`, zone);
3375
3377
  return { startMs, endMs };
3376
3378
  }
3377
3379
  function placeIntervals(intervals, win) {
@@ -3416,7 +3418,7 @@ function hourTicks(date, zone, startHour, endHour) {
3416
3418
  const span = win.endMs - win.startMs;
3417
3419
  const ticks = [];
3418
3420
  for (let h = startHour; h < endHour; h++) {
3419
- const ms = chunkTGWTLNXW_cjs.wallToEpochMs(`${date}T${pad2(h)}:00`, zone);
3421
+ const ms = chunkBIXHB4LV_cjs.wallToEpochMs(`${date}T${pad2(h)}:00`, zone);
3420
3422
  ticks.push({ hour: h, leftPct: (ms - win.startMs) / span * 100 });
3421
3423
  }
3422
3424
  return ticks;
@@ -3438,11 +3440,11 @@ function SchedulingAssistant({
3438
3440
  className
3439
3441
  }) {
3440
3442
  const l = mergeLabels(labelOverrides);
3441
- const zone = chunkTGWTLNXW_cjs.safeZone(timeZone);
3443
+ const zone = chunkBIXHB4LV_cjs.safeZone(timeZone);
3442
3444
  const win = dayWindow(date, zone, dayStartHour, dayEndHour);
3443
3445
  const ticks = hourTicks(date, zone, dayStartHour, dayEndHour);
3444
3446
  const sel = selection ? placeIntervals([selection], win)[0] : void 0;
3445
- const time = (iso) => chunkTGWTLNXW_cjs.formatInZone(iso, zone, { hour: "numeric", minute: "2-digit" });
3447
+ const time = (iso) => chunkBIXHB4LV_cjs.formatInZone(iso, zone, { hour: "numeric", minute: "2-digit" });
3446
3448
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("space-y-2", className), "data-testid": "calendar-scheduling", children: [
3447
3449
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3448
3450
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: l.schedulingAssistant }),
@@ -3455,11 +3457,11 @@ function SchedulingAssistant({
3455
3457
  size: "icon",
3456
3458
  className: "h-7 w-7",
3457
3459
  "aria-label": l.previous,
3458
- onClick: () => onDateChange(chunkTGWTLNXW_cjs.addDays(date, -1)),
3460
+ onClick: () => onDateChange(chunkBIXHB4LV_cjs.addDays(date, -1)),
3459
3461
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" })
3460
3462
  }
3461
3463
  ),
3462
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", "data-testid": "calendar-scheduling-date", children: chunkTGWTLNXW_cjs.formatPlainDate(date, { weekday: "short", day: "numeric", month: "short" }) }),
3464
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", "data-testid": "calendar-scheduling-date", children: chunkBIXHB4LV_cjs.formatPlainDate(date, { weekday: "short", day: "numeric", month: "short" }) }),
3463
3465
  /* @__PURE__ */ jsxRuntime.jsx(
3464
3466
  ui.Button,
3465
3467
  {
@@ -3468,7 +3470,7 @@ function SchedulingAssistant({
3468
3470
  size: "icon",
3469
3471
  className: "h-7 w-7",
3470
3472
  "aria-label": l.next,
3471
- onClick: () => onDateChange(chunkTGWTLNXW_cjs.addDays(date, 1)),
3473
+ onClick: () => onDateChange(chunkBIXHB4LV_cjs.addDays(date, 1)),
3472
3474
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
3473
3475
  }
3474
3476
  )
@@ -3584,7 +3586,7 @@ function SchedulingAssistant({
3584
3586
  "data-testid": "calendar-suggestion",
3585
3587
  children: [
3586
3588
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "font-medium", children: [
3587
- chunkTGWTLNXW_cjs.formatInZone(s.startUtc, zone, {
3589
+ chunkBIXHB4LV_cjs.formatInZone(s.startUtc, zone, {
3588
3590
  weekday: "short",
3589
3591
  day: "numeric",
3590
3592
  month: "short"
@@ -3709,8 +3711,8 @@ function RoomFinder({
3709
3711
  )
3710
3712
  ] });
3711
3713
  }
3712
- var mondayFirstName = (day) => chunkTGWTLNXW_cjs.formatPlainDate(`2024-01-0${day + 1}`, { weekday: "long" });
3713
- var sundayFirstName = (day) => chunkTGWTLNXW_cjs.formatPlainDate(day === 0 ? "2023-12-31" : `2024-01-0${day}`, { weekday: "long" });
3714
+ var mondayFirstName = (day) => chunkBIXHB4LV_cjs.formatPlainDate(`2024-01-0${day + 1}`, { weekday: "long" });
3715
+ var sundayFirstName = (day) => chunkBIXHB4LV_cjs.formatPlainDate(day === 0 ? "2023-12-31" : `2024-01-0${day}`, { weekday: "long" });
3714
3716
  var VIEWS = ["day", "work_week", "week", "month", "agenda", "year"];
3715
3717
  var DURATIONS = [15, 30, 45, 60, 90, 120];
3716
3718
  var viewName = (v, l) => ({
@@ -3963,81 +3965,353 @@ function CalendarSettingsForm({
3963
3965
  );
3964
3966
  }
3965
3967
 
3968
+ // src/calendar/print-layout.ts
3969
+ function printRange(view, date, weekStart = 1, agendaDays = 30) {
3970
+ if (view === "day") return { from: date, to: chunkBIXHB4LV_cjs.addDays(date, 1) };
3971
+ if (view === "agenda") return { from: date, to: chunkBIXHB4LV_cjs.addDays(date, agendaDays) };
3972
+ if (view === "week") {
3973
+ const from2 = chunkBIXHB4LV_cjs.startOfWeek(date, weekStart);
3974
+ return { from: from2, to: chunkBIXHB4LV_cjs.addDays(from2, 7) };
3975
+ }
3976
+ const first = `${date.slice(0, 8)}01`;
3977
+ const from = chunkBIXHB4LV_cjs.startOfWeek(first, weekStart);
3978
+ const nextMonth = chunkBIXHB4LV_cjs.addMonths(first, 1);
3979
+ const lead = (chunkBIXHB4LV_cjs.dayOfWeekSun0(nextMonth) - weekStart + 7) % 7;
3980
+ const to = lead === 0 ? nextMonth : chunkBIXHB4LV_cjs.addDays(nextMonth, 7 - lead);
3981
+ return { from, to };
3982
+ }
3983
+ function eachDay(from, to) {
3984
+ const out = [];
3985
+ for (let d = from; d < to; d = chunkBIXHB4LV_cjs.addDays(d, 1)) out.push(d);
3986
+ return out;
3987
+ }
3988
+ function eventDays(e, zone) {
3989
+ if (e.all_day) {
3990
+ const start = e.start.date ?? chunkBIXHB4LV_cjs.utcToDate(e.start_utc, "UTC");
3991
+ const endExcl = e.end.date ?? chunkBIXHB4LV_cjs.addDays(start, 1);
3992
+ return eachDay(start, endExcl > start ? endExcl : chunkBIXHB4LV_cjs.addDays(start, 1));
3993
+ }
3994
+ const startDay = chunkBIXHB4LV_cjs.utcToDate(e.start_utc, zone);
3995
+ const lastInstant = new Date(
3996
+ Math.max(new Date(e.start_utc).getTime(), new Date(e.end_utc).getTime() - 1)
3997
+ );
3998
+ const endDay = chunkBIXHB4LV_cjs.utcToDate(lastInstant, zone);
3999
+ return eachDay(startDay, chunkBIXHB4LV_cjs.addDays(endDay, 1));
4000
+ }
4001
+ function timeLabel(e, day, zone) {
4002
+ if (e.all_day) return "All day";
4003
+ const fmt = new Intl.DateTimeFormat(void 0, {
4004
+ timeZone: zone,
4005
+ hour: "numeric",
4006
+ minute: "2-digit"
4007
+ });
4008
+ const sDay = chunkBIXHB4LV_cjs.utcToDate(e.start_utc, zone);
4009
+ const eDay = chunkBIXHB4LV_cjs.utcToDate(new Date(new Date(e.end_utc).getTime() - 1), zone);
4010
+ const s = sDay === day ? fmt.format(new Date(e.start_utc)) : "\u2026";
4011
+ const en = eDay === day ? fmt.format(new Date(e.end_utc)) : "\u2026";
4012
+ return `${s} \u2013 ${en}`;
4013
+ }
4014
+ function eventsByDay(events, zone, from, to) {
4015
+ const map = /* @__PURE__ */ new Map();
4016
+ for (const e of events) {
4017
+ for (const d of eventDays(e, zone)) {
4018
+ if (d < from || d >= to) continue;
4019
+ const list = map.get(d) ?? [];
4020
+ list.push(e);
4021
+ map.set(d, list);
4022
+ }
4023
+ }
4024
+ for (const list of map.values())
4025
+ list.sort(
4026
+ (a, b) => Number(b.all_day) - Number(a.all_day) || new Date(a.start_utc).getTime() - new Date(b.start_utc).getTime() || a.title.localeCompare(b.title)
4027
+ );
4028
+ return map;
4029
+ }
4030
+ function heading(view, date, from, to) {
4031
+ const last = chunkBIXHB4LV_cjs.addDays(to, -1);
4032
+ if (view === "day")
4033
+ return chunkBIXHB4LV_cjs.formatPlainDate(from, {
4034
+ weekday: "long",
4035
+ year: "numeric",
4036
+ month: "long",
4037
+ day: "numeric"
4038
+ });
4039
+ if (view === "month")
4040
+ return chunkBIXHB4LV_cjs.formatPlainDate(`${date.slice(0, 7)}-15`, { year: "numeric", month: "long" });
4041
+ const opts = { year: "numeric", month: "short", day: "numeric" };
4042
+ return `${chunkBIXHB4LV_cjs.formatPlainDate(from, opts)} \u2013 ${chunkBIXHB4LV_cjs.formatPlainDate(last, opts)}`;
4043
+ }
4044
+ var STYLE = `
4045
+ .arbi-calendar-print { color: #111; background: #fff; font: 12px/1.4 system-ui, -apple-system, 'Segoe UI', sans-serif; }
4046
+ .arbi-calendar-print h1 { font-size: 18px; margin: 0 0 8px; }
4047
+ .arbi-calendar-print .acp-zone { color: #555; font-size: 11px; margin-bottom: 12px; }
4048
+ .arbi-calendar-print table { border-collapse: collapse; width: 100%; table-layout: fixed; }
4049
+ .arbi-calendar-print th, .arbi-calendar-print td { border: 1px solid #bbb; padding: 4px; vertical-align: top; text-align: left; }
4050
+ .arbi-calendar-print th { background: #f3f3f3; font-weight: 600; }
4051
+ .arbi-calendar-print .acp-day { break-inside: avoid; margin-bottom: 10px; }
4052
+ .arbi-calendar-print .acp-day h2 { font-size: 13px; margin: 0 0 4px; border-bottom: 1px solid #bbb; padding-bottom: 2px; }
4053
+ .arbi-calendar-print .acp-ev { display: flex; gap: 6px; margin: 2px 0; break-inside: avoid; }
4054
+ .arbi-calendar-print .acp-time { flex: 0 0 auto; min-width: 92px; color: #333; font-variant-numeric: tabular-nums; }
4055
+ .arbi-calendar-print .acp-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px; vertical-align: middle; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
4056
+ .arbi-calendar-print .acp-meta { color: #555; font-size: 11px; white-space: pre-line; }
4057
+ .arbi-calendar-print .acp-muted { color: #888; }
4058
+ .arbi-calendar-print .acp-cancelled { text-decoration: line-through; color: #888; }
4059
+ .arbi-calendar-print .acp-month td { height: 90px; }
4060
+ .arbi-calendar-print .acp-month .acp-out { color: #aaa; }
4061
+ .arbi-calendar-print .acp-cell-ev { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
4062
+ @media screen { .arbi-calendar-print[data-screen-hidden='true'] { display: none; } }
4063
+ @media print {
4064
+ @page { margin: 12mm; }
4065
+ body.arbi-printing-calendar > *:not(.arbi-calendar-print-host) { display: none !important; }
4066
+ body.arbi-printing-calendar .arbi-calendar-print-host { display: block !important; }
4067
+ body.arbi-printing-calendar .arbi-calendar-print { display: block !important; }
4068
+ }
4069
+ `;
4070
+ function CalendarPrint({
4071
+ events,
4072
+ view,
4073
+ date,
4074
+ timeZone,
4075
+ weekStart = 1,
4076
+ agendaDays = 30,
4077
+ title,
4078
+ calendars,
4079
+ screenHidden = false,
4080
+ showDetails = true
4081
+ }) {
4082
+ const zone = chunkBIXHB4LV_cjs.safeZone(timeZone, chunkBIXHB4LV_cjs.detectTimeZone());
4083
+ const { from, to } = printRange(view, date, weekStart, agendaDays);
4084
+ const byDay = eventsByDay(events, zone, from, to);
4085
+ const color = (e) => e.color || calendars?.find((c) => c.id === e.calendar_id)?.color || "#3b82f6";
4086
+ const label = (e) => e.restricted && !e.title ? "Busy" : e.title || "(no title)";
4087
+ const evLine = (e, day, details) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "acp-ev", "data-testid": "calendar-print-event", children: [
4088
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "acp-time", children: timeLabel(e, day, zone) }),
4089
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
4090
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "acp-dot", style: { background: color(e) } }),
4091
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: e.status === "cancelled" ? "acp-cancelled" : void 0, children: label(e) }),
4092
+ details && e.location && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "acp-meta", children: e.location }),
4093
+ details && e.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "acp-meta", children: e.description.slice(0, 500) })
4094
+ ] })
4095
+ ] }, `${e.instance_id}-${day}`);
4096
+ let body;
4097
+ if (view === "agenda" || view === "day") {
4098
+ const days = view === "day" ? [from] : eachDay(from, to).filter((d) => byDay.has(d));
4099
+ body = days.length ? days.map((d) => /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "acp-day", children: [
4100
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { children: chunkBIXHB4LV_cjs.formatPlainDate(d, { weekday: "long", month: "long", day: "numeric" }) }),
4101
+ (byDay.get(d) ?? []).map((e) => evLine(e, d, showDetails)),
4102
+ !byDay.get(d)?.length && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "acp-muted", children: "No events" })
4103
+ ] }, d)) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "acp-muted", children: "No events" });
4104
+ } else if (view === "week") {
4105
+ const days = eachDay(from, to);
4106
+ body = /* @__PURE__ */ jsxRuntime.jsxs("table", { children: [
4107
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: days.map((d) => /* @__PURE__ */ jsxRuntime.jsx("th", { children: chunkBIXHB4LV_cjs.formatPlainDate(d, { weekday: "short", day: "numeric", month: "short" }) }, d)) }) }),
4108
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: days.map((d) => /* @__PURE__ */ jsxRuntime.jsx("td", { style: { height: 480 }, children: (byDay.get(d) ?? []).map((e) => evLine(e, d, false)) }, d)) }) })
4109
+ ] });
4110
+ } else {
4111
+ const days = eachDay(from, to);
4112
+ const weeks = [];
4113
+ for (let i = 0; i < days.length; i += 7) weeks.push(days.slice(i, i + 7));
4114
+ const month = date.slice(0, 7);
4115
+ body = /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "acp-month", children: [
4116
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: weeks[0].map((d) => /* @__PURE__ */ jsxRuntime.jsx("th", { children: chunkBIXHB4LV_cjs.formatPlainDate(d, { weekday: "short" }) }, d)) }) }),
4117
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: weeks.map((w) => /* @__PURE__ */ jsxRuntime.jsx("tr", { children: w.map((d) => /* @__PURE__ */ jsxRuntime.jsxs("td", { className: d.slice(0, 7) === month ? void 0 : "acp-out", children: [
4118
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: Number(d.slice(8)) }),
4119
+ (byDay.get(d) ?? []).slice(0, 6).map((e) => /* @__PURE__ */ jsxRuntime.jsxs(
4120
+ "div",
4121
+ {
4122
+ className: "acp-cell-ev",
4123
+ "data-testid": "calendar-print-event",
4124
+ children: [
4125
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "acp-dot", style: { background: color(e) } }),
4126
+ !e.all_day && `${timeLabel(e, d, zone).split(" \u2013 ")[0]} `,
4127
+ label(e)
4128
+ ]
4129
+ },
4130
+ `${e.instance_id}-${d}`
4131
+ )),
4132
+ (byDay.get(d)?.length ?? 0) > 6 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "acp-cell-ev acp-muted", children: [
4133
+ "+",
4134
+ (byDay.get(d)?.length ?? 0) - 6,
4135
+ " more"
4136
+ ] })
4137
+ ] }, d)) }, w[0])) })
4138
+ ] });
4139
+ }
4140
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4141
+ "div",
4142
+ {
4143
+ className: "arbi-calendar-print",
4144
+ "data-screen-hidden": screenHidden ? "true" : "false",
4145
+ "data-testid": "calendar-print",
4146
+ children: [
4147
+ /* @__PURE__ */ jsxRuntime.jsx("style", { children: STYLE }),
4148
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { children: title ?? heading(view, date, from, to) }),
4149
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "acp-zone", children: [
4150
+ "Times in ",
4151
+ zone.replace(/_/g, " ")
4152
+ ] }),
4153
+ body
4154
+ ]
4155
+ }
4156
+ );
4157
+ }
4158
+ function printCalendar(props) {
4159
+ const host = document.createElement("div");
4160
+ host.className = "arbi-calendar-print-host";
4161
+ host.style.display = "none";
4162
+ document.body.appendChild(host);
4163
+ let unmount = null;
4164
+ if (props) {
4165
+ const root = client.createRoot(host);
4166
+ reactDom.flushSync(() => root.render(/* @__PURE__ */ jsxRuntime.jsx(CalendarPrint, { ...props, screenHidden: false })));
4167
+ unmount = () => root.unmount();
4168
+ } else {
4169
+ const existing = document.querySelector(".arbi-calendar-print");
4170
+ if (!existing) {
4171
+ host.remove();
4172
+ return;
4173
+ }
4174
+ const clone = existing.cloneNode(true);
4175
+ clone.setAttribute("data-screen-hidden", "false");
4176
+ host.appendChild(clone);
4177
+ }
4178
+ document.body.classList.add("arbi-printing-calendar");
4179
+ let done = false;
4180
+ const cleanup = () => {
4181
+ if (done) return;
4182
+ done = true;
4183
+ window.removeEventListener("afterprint", cleanup);
4184
+ document.body.classList.remove("arbi-printing-calendar");
4185
+ unmount?.();
4186
+ host.remove();
4187
+ };
4188
+ window.addEventListener("afterprint", cleanup);
4189
+ try {
4190
+ window.print();
4191
+ } finally {
4192
+ if (!("onafterprint" in window)) setTimeout(cleanup, 1e3);
4193
+ }
4194
+ }
4195
+
4196
+ // src/calendar/booking-slots.ts
4197
+ function formatSlotTime(instant, zone, locale) {
4198
+ return chunkBIXHB4LV_cjs.formatInZone(instant, zone, { hour: "numeric", minute: "2-digit" }, locale);
4199
+ }
4200
+ function formatDayLabel(date, locale) {
4201
+ return chunkBIXHB4LV_cjs.formatPlainDate(date, { weekday: "long", month: "long", day: "numeric" }, locale);
4202
+ }
4203
+ function groupSlotsByDay(slots, zone, locale) {
4204
+ const tz = chunkBIXHB4LV_cjs.safeZone(zone, chunkBIXHB4LV_cjs.detectTimeZone());
4205
+ const byDay = /* @__PURE__ */ new Map();
4206
+ const sorted = [...slots].sort((a, b) => new Date(a).getTime() - new Date(b).getTime());
4207
+ for (const start of sorted) {
4208
+ const date = chunkBIXHB4LV_cjs.utcToDate(start, tz);
4209
+ const list = byDay.get(date) ?? [];
4210
+ list.push({ start, label: formatSlotTime(start, tz, locale) });
4211
+ byDay.set(date, list);
4212
+ }
4213
+ return [...byDay.entries()].map(([date, list]) => ({
4214
+ date,
4215
+ label: formatDayLabel(date, locale),
4216
+ slots: list
4217
+ }));
4218
+ }
4219
+ function formatSlotRange(start, end, zone, locale) {
4220
+ const tz = chunkBIXHB4LV_cjs.safeZone(zone, chunkBIXHB4LV_cjs.detectTimeZone());
4221
+ const fmt = new Intl.DateTimeFormat(locale, {
4222
+ timeZone: tz,
4223
+ weekday: "long",
4224
+ month: "long",
4225
+ day: "numeric",
4226
+ hour: "numeric",
4227
+ minute: "2-digit"
4228
+ });
4229
+ const s = new Date(start);
4230
+ const e = new Date(end);
4231
+ const range = fmt.formatRange;
4232
+ const text = range ? range.call(fmt, s, e) : `${fmt.format(s)} \u2013 ${formatSlotTime(end, tz, locale)}`;
4233
+ return `${text} (${tz.replace(/_/g, " ")})`;
4234
+ }
4235
+ function zoneOptions(current) {
4236
+ const zones = chunkBIXHB4LV_cjs.listTimeZones();
4237
+ return zones.includes(current) ? zones : [current, ...zones];
4238
+ }
4239
+
3966
4240
  Object.defineProperty(exports, "addDays", {
3967
4241
  enumerable: true,
3968
- get: function () { return chunkTGWTLNXW_cjs.addDays; }
4242
+ get: function () { return chunkBIXHB4LV_cjs.addDays; }
3969
4243
  });
3970
4244
  Object.defineProperty(exports, "addMonths", {
3971
4245
  enumerable: true,
3972
- get: function () { return chunkTGWTLNXW_cjs.addMonths; }
4246
+ get: function () { return chunkBIXHB4LV_cjs.addMonths; }
3973
4247
  });
3974
4248
  Object.defineProperty(exports, "convertWall", {
3975
4249
  enumerable: true,
3976
- get: function () { return chunkTGWTLNXW_cjs.convertWall; }
4250
+ get: function () { return chunkBIXHB4LV_cjs.convertWall; }
3977
4251
  });
3978
4252
  Object.defineProperty(exports, "detectTimeZone", {
3979
4253
  enumerable: true,
3980
- get: function () { return chunkTGWTLNXW_cjs.detectTimeZone; }
4254
+ get: function () { return chunkBIXHB4LV_cjs.detectTimeZone; }
3981
4255
  });
3982
4256
  Object.defineProperty(exports, "diffDays", {
3983
4257
  enumerable: true,
3984
- get: function () { return chunkTGWTLNXW_cjs.diffDays; }
4258
+ get: function () { return chunkBIXHB4LV_cjs.diffDays; }
3985
4259
  });
3986
4260
  Object.defineProperty(exports, "formatInZone", {
3987
4261
  enumerable: true,
3988
- get: function () { return chunkTGWTLNXW_cjs.formatInZone; }
4262
+ get: function () { return chunkBIXHB4LV_cjs.formatInZone; }
3989
4263
  });
3990
4264
  Object.defineProperty(exports, "formatPlainDate", {
3991
4265
  enumerable: true,
3992
- get: function () { return chunkTGWTLNXW_cjs.formatPlainDate; }
4266
+ get: function () { return chunkBIXHB4LV_cjs.formatPlainDate; }
3993
4267
  });
3994
4268
  Object.defineProperty(exports, "isValidTimeZone", {
3995
4269
  enumerable: true,
3996
- get: function () { return chunkTGWTLNXW_cjs.isValidTimeZone; }
4270
+ get: function () { return chunkBIXHB4LV_cjs.isValidTimeZone; }
3997
4271
  });
3998
4272
  Object.defineProperty(exports, "listTimeZones", {
3999
4273
  enumerable: true,
4000
- get: function () { return chunkTGWTLNXW_cjs.listTimeZones; }
4274
+ get: function () { return chunkBIXHB4LV_cjs.listTimeZones; }
4001
4275
  });
4002
4276
  Object.defineProperty(exports, "safeZone", {
4003
4277
  enumerable: true,
4004
- get: function () { return chunkTGWTLNXW_cjs.safeZone; }
4278
+ get: function () { return chunkBIXHB4LV_cjs.safeZone; }
4005
4279
  });
4006
4280
  Object.defineProperty(exports, "startOfWeek", {
4007
4281
  enumerable: true,
4008
- get: function () { return chunkTGWTLNXW_cjs.startOfWeek; }
4282
+ get: function () { return chunkBIXHB4LV_cjs.startOfWeek; }
4009
4283
  });
4010
4284
  Object.defineProperty(exports, "todayInZone", {
4011
4285
  enumerable: true,
4012
- get: function () { return chunkTGWTLNXW_cjs.todayInZone; }
4286
+ get: function () { return chunkBIXHB4LV_cjs.todayInZone; }
4013
4287
  });
4014
4288
  Object.defineProperty(exports, "utcToDate", {
4015
4289
  enumerable: true,
4016
- get: function () { return chunkTGWTLNXW_cjs.utcToDate; }
4290
+ get: function () { return chunkBIXHB4LV_cjs.utcToDate; }
4017
4291
  });
4018
4292
  Object.defineProperty(exports, "utcToTime", {
4019
4293
  enumerable: true,
4020
- get: function () { return chunkTGWTLNXW_cjs.utcToTime; }
4294
+ get: function () { return chunkBIXHB4LV_cjs.utcToTime; }
4021
4295
  });
4022
4296
  Object.defineProperty(exports, "utcToWall", {
4023
4297
  enumerable: true,
4024
- get: function () { return chunkTGWTLNXW_cjs.utcToWall; }
4298
+ get: function () { return chunkBIXHB4LV_cjs.utcToWall; }
4025
4299
  });
4026
4300
  Object.defineProperty(exports, "wallToUtc", {
4027
4301
  enumerable: true,
4028
- get: function () { return chunkTGWTLNXW_cjs.wallToUtc; }
4302
+ get: function () { return chunkBIXHB4LV_cjs.wallToUtc; }
4029
4303
  });
4030
4304
  Object.defineProperty(exports, "zoneCity", {
4031
4305
  enumerable: true,
4032
- get: function () { return chunkTGWTLNXW_cjs.zoneCity; }
4306
+ get: function () { return chunkBIXHB4LV_cjs.zoneCity; }
4033
4307
  });
4034
4308
  Object.defineProperty(exports, "zoneOffsetLabel", {
4035
4309
  enumerable: true,
4036
- get: function () { return chunkTGWTLNXW_cjs.zoneOffsetLabel; }
4310
+ get: function () { return chunkBIXHB4LV_cjs.zoneOffsetLabel; }
4037
4311
  });
4038
4312
  Object.defineProperty(exports, "zoneOffsetMinutes", {
4039
4313
  enumerable: true,
4040
- get: function () { return chunkTGWTLNXW_cjs.zoneOffsetMinutes; }
4314
+ get: function () { return chunkBIXHB4LV_cjs.zoneOffsetMinutes; }
4041
4315
  });
4042
4316
  exports.ARBI_WEBINAR_LABEL = ARBI_WEBINAR_LABEL;
4043
4317
  exports.CALENDAR_COLORS = CALENDAR_COLORS;
@@ -4045,6 +4319,7 @@ exports.CALENDAR_DEFAULT_LABELS = CALENDAR_DEFAULT_LABELS;
4045
4319
  exports.CALENDAR_NARROW_WIDTH = CALENDAR_NARROW_WIDTH;
4046
4320
  exports.CalendarGrid = CalendarGrid;
4047
4321
  exports.CalendarList = CalendarList;
4322
+ exports.CalendarPrint = CalendarPrint;
4048
4323
  exports.CalendarSettingsForm = CalendarSettingsForm;
4049
4324
  exports.DEFAULT_RECURRENCE_DESCRIBE_LABELS = DEFAULT_RECURRENCE_DESCRIBE_LABELS;
4050
4325
  exports.DEFAULT_RECURRENCE_EDITOR_LABELS = DEFAULT_RECURRENCE_EDITOR_LABELS;
@@ -4069,17 +4344,25 @@ exports.describeRecurrence = describeRecurrence;
4069
4344
  exports.draftFromSlot = draftFromSlot;
4070
4345
  exports.draftRangeUtc = draftRangeUtc;
4071
4346
  exports.effectiveCalendarView = effectiveCalendarView;
4347
+ exports.eventDays = eventDays;
4072
4348
  exports.eventStateClasses = eventStateClasses;
4349
+ exports.eventsByDay = eventsByDay;
4350
+ exports.formatDayLabel = formatDayLabel;
4073
4351
  exports.formatEventWhen = formatEventWhen;
4074
4352
  exports.formatReminder = formatReminder;
4353
+ exports.formatSlotRange = formatSlotRange;
4354
+ exports.formatSlotTime = formatSlotTime;
4075
4355
  exports.formatZoneLabel = formatZoneLabel;
4076
4356
  exports.getTemporalTimeZonePlugin = getTemporalTimeZonePlugin;
4357
+ exports.groupSlotsByDay = groupSlotsByDay;
4077
4358
  exports.hourTicks = hourTicks;
4078
4359
  exports.isAllDayDraft = isAllDayDraft;
4079
4360
  exports.isWebinarConference = isWebinarConference;
4080
4361
  exports.outsideIntervals = outsideIntervals;
4081
4362
  exports.parseRRule = parseRRule;
4082
4363
  exports.placeIntervals = placeIntervals;
4364
+ exports.printCalendar = printCalendar;
4365
+ exports.printRange = printRange;
4083
4366
  exports.reminderToMinutes = reminderToMinutes;
4084
4367
  exports.setDraftAllDay = setDraftAllDay;
4085
4368
  exports.setDraftEnd = setDraftEnd;
@@ -4092,5 +4375,6 @@ exports.toBusinessHours = toBusinessHours;
4092
4375
  exports.validateDraft = validateDraft;
4093
4376
  exports.weekdayOf = weekdayOf;
4094
4377
  exports.workWeekHiddenDays = workWeekHiddenDays;
4378
+ exports.zoneOptions = zoneOptions;
4095
4379
  //# sourceMappingURL=index.cjs.map
4096
4380
  //# sourceMappingURL=index.cjs.map