@arbidocs/blocks 0.4.128 → 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 (236) hide show
  1. package/README.md +25 -10
  2. package/dist/{StreamedArtifactEditor-EEYAXJ4H.cjs → StreamedArtifactEditor-TQAND4H5.cjs} +6 -5
  3. package/dist/StreamedArtifactEditor-TQAND4H5.cjs.map +1 -0
  4. package/dist/{StreamedArtifactEditor-TDATDYD2.js → StreamedArtifactEditor-XQNANTWM.js} +4 -3
  5. package/dist/StreamedArtifactEditor-XQNANTWM.js.map +1 -0
  6. package/dist/agents/index.cjs +304 -304
  7. package/dist/agents/index.js +12 -12
  8. package/dist/artifacts/ArtifactCodeView.d.ts +6 -0
  9. package/dist/artifacts/ArtifactPreview.d.ts +22 -0
  10. package/dist/artifacts/index.cjs +50 -21
  11. package/dist/artifacts/index.d.ts +3 -0
  12. package/dist/artifacts/index.js +2 -1
  13. package/dist/artifacts/sandbox-policy.d.ts +34 -0
  14. package/dist/artifacts/sandboxDocument.d.ts +7 -0
  15. package/dist/calendar/CalendarPrint.d.ts +25 -0
  16. package/dist/calendar/booking-slots.d.ts +21 -0
  17. package/dist/calendar/index.cjs +440 -243
  18. package/dist/calendar/index.cjs.map +1 -1
  19. package/dist/calendar/index.d.ts +4 -0
  20. package/dist/calendar/index.js +282 -151
  21. package/dist/calendar/index.js.map +1 -1
  22. package/dist/calendar/print-layout.d.ts +16 -0
  23. package/dist/calendar/printCalendar.d.ts +6 -0
  24. package/dist/calls/composite-canvas.d.ts +52 -0
  25. package/dist/calls/index.cjs +376 -3
  26. package/dist/calls/index.cjs.map +1 -1
  27. package/dist/calls/index.d.ts +3 -0
  28. package/dist/calls/index.js +360 -5
  29. package/dist/calls/index.js.map +1 -1
  30. package/dist/calls/ringtone.d.ts +16 -0
  31. package/dist/calls/voice-levels.d.ts +32 -0
  32. package/dist/chat/ThreadVisualizer.d.ts +28 -0
  33. package/dist/chat/index.cjs +156 -140
  34. package/dist/chat/index.d.ts +2 -0
  35. package/dist/chat/index.js +5 -5
  36. package/dist/chat/open-document.d.ts +5 -1
  37. package/dist/chat/thread-diagram.d.ts +26 -0
  38. package/dist/{chunk-7HAM7Y5U.js → chunk-2DFDFOM7.js} +3 -3
  39. package/dist/{chunk-7HAM7Y5U.js.map → chunk-2DFDFOM7.js.map} +1 -1
  40. package/dist/{chunk-54ANPPMV.js → chunk-2PNNCEPH.js} +4 -4
  41. package/dist/{chunk-54ANPPMV.js.map → chunk-2PNNCEPH.js.map} +1 -1
  42. package/dist/{chunk-DQCYCEDR.js → chunk-2Q7FDZAY.js} +3 -3
  43. package/dist/{chunk-DQCYCEDR.js.map → chunk-2Q7FDZAY.js.map} +1 -1
  44. package/dist/{chunk-INW76PEL.cjs → chunk-2YV7FBLO.cjs} +175 -2
  45. package/dist/chunk-2YV7FBLO.cjs.map +1 -0
  46. package/dist/{chunk-S7PSMMRG.js → chunk-444XKG46.js} +3 -3
  47. package/dist/{chunk-S7PSMMRG.js.map → chunk-444XKG46.js.map} +1 -1
  48. package/dist/{chunk-FSBY2S4V.cjs → chunk-4QIIDXLF.cjs} +10 -10
  49. package/dist/{chunk-FSBY2S4V.cjs.map → chunk-4QIIDXLF.cjs.map} +1 -1
  50. package/dist/{chunk-OYMWV45N.js → chunk-4RLCRFZS.js} +63 -13
  51. package/dist/chunk-4RLCRFZS.js.map +1 -0
  52. package/dist/{chunk-NZUQFF35.cjs → chunk-4S5IDT5F.cjs} +234 -5
  53. package/dist/chunk-4S5IDT5F.cjs.map +1 -0
  54. package/dist/{chunk-CJBN5HIS.js → chunk-4UMXQPNA.js} +20 -8
  55. package/dist/chunk-4UMXQPNA.js.map +1 -0
  56. package/dist/{chunk-KELGOCJA.js → chunk-65S53MZK.js} +174 -5
  57. package/dist/chunk-65S53MZK.js.map +1 -0
  58. package/dist/{chunk-IBZJYCYM.js → chunk-66TA5IBN.js} +17 -25
  59. package/dist/chunk-66TA5IBN.js.map +1 -0
  60. package/dist/{chunk-HM23LXUP.cjs → chunk-6AALMYPS.cjs} +3 -3
  61. package/dist/{chunk-HM23LXUP.cjs.map → chunk-6AALMYPS.cjs.map} +1 -1
  62. package/dist/{chunk-OR4CO743.cjs → chunk-AAFX64WD.cjs} +3 -3
  63. package/dist/{chunk-OR4CO743.cjs.map → chunk-AAFX64WD.cjs.map} +1 -1
  64. package/dist/{chunk-MUMH3Z6K.cjs → chunk-ARDHLU73.cjs} +61 -11
  65. package/dist/chunk-ARDHLU73.cjs.map +1 -0
  66. package/dist/chunk-BIXHB4LV.cjs +178 -0
  67. package/dist/chunk-BIXHB4LV.cjs.map +1 -0
  68. package/dist/chunk-C4WSHRR6.cjs +166 -0
  69. package/dist/chunk-C4WSHRR6.cjs.map +1 -0
  70. package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
  71. package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
  72. package/dist/{chunk-VW2C2AZL.js → chunk-ENDP7JER.js} +3 -3
  73. package/dist/{chunk-VW2C2AZL.js.map → chunk-ENDP7JER.js.map} +1 -1
  74. package/dist/{chunk-5HFPRI3W.js → chunk-FUTMU4FR.js} +3 -3
  75. package/dist/{chunk-5HFPRI3W.js.map → chunk-FUTMU4FR.js.map} +1 -1
  76. package/dist/{chunk-P5ST47VY.js → chunk-GDBDHOI4.js} +3 -3
  77. package/dist/{chunk-P5ST47VY.js.map → chunk-GDBDHOI4.js.map} +1 -1
  78. package/dist/chunk-GTCC2VAR.js +153 -0
  79. package/dist/chunk-GTCC2VAR.js.map +1 -0
  80. package/dist/{chunk-3BJLNKOB.cjs → chunk-GZPTWHP5.cjs} +22 -10
  81. package/dist/chunk-GZPTWHP5.cjs.map +1 -0
  82. package/dist/{chunk-OUW6G4O2.cjs → chunk-HFGXA5CL.cjs} +4 -4
  83. package/dist/{chunk-OUW6G4O2.cjs.map → chunk-HFGXA5CL.cjs.map} +1 -1
  84. package/dist/{chunk-SWQX6CTT.cjs → chunk-JKB7WT7L.cjs} +2 -2
  85. package/dist/chunk-JKB7WT7L.cjs.map +1 -0
  86. package/dist/{chunk-D4YR56FV.cjs → chunk-KYDRUFWT.cjs} +5 -5
  87. package/dist/{chunk-D4YR56FV.cjs.map → chunk-KYDRUFWT.cjs.map} +1 -1
  88. package/dist/chunk-NS4JD2VR.js +22 -0
  89. package/dist/chunk-NS4JD2VR.js.map +1 -0
  90. package/dist/{chunk-S6BOINC4.cjs → chunk-OGBXV326.cjs} +7 -7
  91. package/dist/{chunk-S6BOINC4.cjs.map → chunk-OGBXV326.cjs.map} +1 -1
  92. package/dist/{chunk-DJM7DLCT.cjs → chunk-OPTBQSCV.cjs} +3 -3
  93. package/dist/{chunk-DJM7DLCT.cjs.map → chunk-OPTBQSCV.cjs.map} +1 -1
  94. package/dist/{chunk-GFYGYME3.js → chunk-OQ7RUNOC.js} +3 -3
  95. package/dist/{chunk-GFYGYME3.js.map → chunk-OQ7RUNOC.js.map} +1 -1
  96. package/dist/{chunk-WV4IDVDQ.cjs → chunk-PJJY6CYL.cjs} +11 -11
  97. package/dist/{chunk-WV4IDVDQ.cjs.map → chunk-PJJY6CYL.cjs.map} +1 -1
  98. package/dist/{chunk-CXLVI3SB.js → chunk-PUCY3UXN.js} +3 -3
  99. package/dist/{chunk-CXLVI3SB.js.map → chunk-PUCY3UXN.js.map} +1 -1
  100. package/dist/{chunk-ZV3BKLFY.cjs → chunk-QDEODGXE.cjs} +5 -5
  101. package/dist/{chunk-ZV3BKLFY.cjs.map → chunk-QDEODGXE.cjs.map} +1 -1
  102. package/dist/{chunk-7BJRLP3U.js → chunk-QYTYW74G.js} +5 -5
  103. package/dist/{chunk-7BJRLP3U.js.map → chunk-QYTYW74G.js.map} +1 -1
  104. package/dist/{chunk-A7NCSZAP.cjs → chunk-QZTNTP75.cjs} +17 -25
  105. package/dist/chunk-QZTNTP75.cjs.map +1 -0
  106. package/dist/{chunk-OB5F4577.cjs → chunk-R26BK7YL.cjs} +4 -4
  107. package/dist/{chunk-OB5F4577.cjs.map → chunk-R26BK7YL.cjs.map} +1 -1
  108. package/dist/{chunk-A2YAC22G.js → chunk-RI6DZA5X.js} +3 -3
  109. package/dist/{chunk-A2YAC22G.js.map → chunk-RI6DZA5X.js.map} +1 -1
  110. package/dist/{chunk-LC2KJSUS.cjs → chunk-SARREDFP.cjs} +46 -46
  111. package/dist/{chunk-LC2KJSUS.cjs.map → chunk-SARREDFP.cjs.map} +1 -1
  112. package/dist/{chunk-ZCHSJUCI.js → chunk-SZX44LCT.js} +231 -6
  113. package/dist/chunk-SZX44LCT.js.map +1 -0
  114. package/dist/{chunk-7QDX2CO4.cjs → chunk-TP6PLDNM.cjs} +4 -4
  115. package/dist/{chunk-7QDX2CO4.cjs.map → chunk-TP6PLDNM.cjs.map} +1 -1
  116. package/dist/{chunk-W27VK32R.cjs → chunk-TT6XV6WM.cjs} +84 -84
  117. package/dist/{chunk-W27VK32R.cjs.map → chunk-TT6XV6WM.cjs.map} +1 -1
  118. package/dist/{chunk-KLOSOT26.js → chunk-UMIY4SQS.js} +11 -11
  119. package/dist/{chunk-KLOSOT26.js.map → chunk-UMIY4SQS.js.map} +1 -1
  120. package/dist/chunk-VG24E4JJ.cjs +26 -0
  121. package/dist/chunk-VG24E4JJ.cjs.map +1 -0
  122. package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
  123. package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
  124. package/dist/{chunk-D3N67Q4D.js → chunk-W3VYZXNS.js} +3 -3
  125. package/dist/{chunk-D3N67Q4D.js.map → chunk-W3VYZXNS.js.map} +1 -1
  126. package/dist/{chunk-JK45LSIH.cjs → chunk-WXYQ66KC.cjs} +5 -5
  127. package/dist/{chunk-JK45LSIH.cjs.map → chunk-WXYQ66KC.cjs.map} +1 -1
  128. package/dist/{chunk-ZCF2JJFA.js → chunk-Y3KA6X7B.js} +3 -3
  129. package/dist/{chunk-ZCF2JJFA.js.map → chunk-Y3KA6X7B.js.map} +1 -1
  130. package/dist/{chunk-GYCQ3FNL.js → chunk-YBLIKTJK.js} +2 -2
  131. package/dist/chunk-YBLIKTJK.js.map +1 -0
  132. package/dist/chunk-YNIBUKV5.js +163 -0
  133. package/dist/chunk-YNIBUKV5.js.map +1 -0
  134. package/dist/citations/index.cjs +12 -11
  135. package/dist/citations/index.js +3 -2
  136. package/dist/collaboration/index.cjs +51 -51
  137. package/dist/collaboration/index.js +3 -3
  138. package/dist/components/DroppableContainer.d.ts +6 -0
  139. package/dist/components/GridRowNavigator.d.ts +29 -0
  140. package/dist/components/LoadingIndicator.d.ts +21 -0
  141. package/dist/components/RowNavigatorControls.d.ts +29 -0
  142. package/dist/components/SharedCell.d.ts +27 -0
  143. package/dist/connect/docx.cjs +7 -5
  144. package/dist/connect/docx.cjs.map +1 -1
  145. package/dist/connect/docx.js +6 -4
  146. package/dist/connect/docx.js.map +1 -1
  147. package/dist/connect/index.cjs +270 -227
  148. package/dist/connect/index.cjs.map +1 -1
  149. package/dist/connect/index.d.ts +1 -1
  150. package/dist/connect/index.js +199 -156
  151. package/dist/connect/index.js.map +1 -1
  152. package/dist/connection/ConnectedSettings.d.ts +46 -20
  153. package/dist/connection/ConnectionProvider.d.ts +5 -0
  154. package/dist/connection/mail/ConnectedMailComposer.d.ts +2 -3
  155. package/dist/connection/mail/ConnectedMailbox.d.ts +2 -3
  156. package/dist/connection/mail/MailComposerForm.d.ts +2 -3
  157. package/dist/connection/mail/index.d.ts +2 -2
  158. package/dist/connection/mail/mailbox.d.ts +1 -4
  159. package/dist/connection/mail/types.d.ts +0 -8
  160. package/dist/document-tools/index.cjs +1 -1
  161. package/dist/document-tools/index.js +1 -1
  162. package/dist/facts/fact-citations.d.ts +56 -0
  163. package/dist/facts/fact-table-column-resize.d.ts +18 -0
  164. package/dist/facts/index.cjs +198 -29
  165. package/dist/facts/index.cjs.map +1 -1
  166. package/dist/facts/index.d.ts +2 -1
  167. package/dist/facts/index.js +187 -27
  168. package/dist/facts/index.js.map +1 -1
  169. package/dist/files/index.cjs +4 -4
  170. package/dist/files/index.js +3 -3
  171. package/dist/home/index.cjs +20 -19
  172. package/dist/home/index.cjs.map +1 -1
  173. package/dist/home/index.js +5 -4
  174. package/dist/home/index.js.map +1 -1
  175. package/dist/index.cjs +877 -679
  176. package/dist/index.cjs.map +1 -1
  177. package/dist/index.d.ts +7 -1
  178. package/dist/index.js +207 -30
  179. package/dist/index.js.map +1 -1
  180. package/dist/provider/BlocksProvider.d.ts +39 -4
  181. package/dist/provider/dialogs.d.ts +31 -0
  182. package/dist/retrieval/index.cjs +5 -4
  183. package/dist/retrieval/index.js +3 -2
  184. package/dist/sandboxDocument-JLEETIWW.js +71 -0
  185. package/dist/sandboxDocument-JLEETIWW.js.map +1 -0
  186. package/dist/sandboxDocument-WQUNODSC.cjs +76 -0
  187. package/dist/sandboxDocument-WQUNODSC.cjs.map +1 -0
  188. package/dist/settings/DraggableHeader.d.ts +10 -0
  189. package/dist/settings/FilterChip.d.ts +15 -0
  190. package/dist/settings/MessageJsonTree.d.ts +7 -0
  191. package/dist/settings/MoreInfo.d.ts +25 -0
  192. package/dist/settings/PlanCard.d.ts +1 -1
  193. package/dist/settings/index.cjs +363 -266
  194. package/dist/settings/index.cjs.map +1 -1
  195. package/dist/settings/index.d.ts +4 -1
  196. package/dist/settings/index.js +317 -222
  197. package/dist/settings/index.js.map +1 -1
  198. package/dist/settings/message-schema-hints.d.ts +19 -0
  199. package/dist/shell/index.cjs +48 -47
  200. package/dist/shell/index.js +4 -3
  201. package/dist/site/index.cjs +5 -5
  202. package/dist/site/index.js +1 -1
  203. package/dist/studio/index.cjs +19 -18
  204. package/dist/studio/index.cjs.map +1 -1
  205. package/dist/studio/index.js +11 -10
  206. package/dist/studio/index.js.map +1 -1
  207. package/dist/workflow-canvas/index.cjs +65 -65
  208. package/dist/workflow-canvas/index.js +13 -13
  209. package/dist/workspaces/index.cjs +42 -3
  210. package/dist/workspaces/index.cjs.map +1 -1
  211. package/dist/workspaces/index.d.ts +1 -0
  212. package/dist/workspaces/index.js +38 -3
  213. package/dist/workspaces/index.js.map +1 -1
  214. package/dist/workspaces/workspace-type.d.ts +29 -0
  215. package/node_modules/@arbidocs/coedit/package.json +1 -1
  216. package/package.json +10 -4
  217. package/dist/StreamedArtifactEditor-EEYAXJ4H.cjs.map +0 -1
  218. package/dist/StreamedArtifactEditor-TDATDYD2.js.map +0 -1
  219. package/dist/chunk-3BJLNKOB.cjs.map +0 -1
  220. package/dist/chunk-76JDDMSP.js +0 -31
  221. package/dist/chunk-76JDDMSP.js.map +0 -1
  222. package/dist/chunk-A7NCSZAP.cjs.map +0 -1
  223. package/dist/chunk-C54XEN5T.cjs +0 -34
  224. package/dist/chunk-C54XEN5T.cjs.map +0 -1
  225. package/dist/chunk-CJBN5HIS.js.map +0 -1
  226. package/dist/chunk-GYCQ3FNL.js.map +0 -1
  227. package/dist/chunk-IBZJYCYM.js.map +0 -1
  228. package/dist/chunk-INW76PEL.cjs.map +0 -1
  229. package/dist/chunk-KELGOCJA.js.map +0 -1
  230. package/dist/chunk-MUMH3Z6K.cjs.map +0 -1
  231. package/dist/chunk-NZUQFF35.cjs.map +0 -1
  232. package/dist/chunk-OYMWV45N.js.map +0 -1
  233. package/dist/chunk-SWQX6CTT.cjs.map +0 -1
  234. package/dist/chunk-ZCHSJUCI.js.map +0 -1
  235. package/dist/facts/timezone.d.ts +0 -4
  236. package/dist/settings/FirmPool.d.ts +0 -82
@@ -28,3 +28,7 @@ export { formatReminder, splitReminderMinutes, reminderToMinutes, REMINDER_PRESE
28
28
  export { ARBI_WEBINAR_LABEL, attendeeKey, isWebinarConference, isAllDayDraft, allDayInclusiveEnd, draftFromSlot, draftRangeUtc, setDraftAllDay, setDraftEnd, setDraftStart, specDate, specTime, validateDraft, type DraftError, } from './draft';
29
29
  export { addDays, addMonths, convertWall, detectTimeZone, diffDays, formatInZone, formatPlainDate, isValidTimeZone, listTimeZones, safeZone, startOfWeek, todayInZone, utcToDate, utcToTime, utcToWall, wallToUtc, zoneCity, zoneOffsetLabel, zoneOffsetMinutes, } from './zone';
30
30
  export { CALENDAR_COLORS, contrastText } from './colors';
31
+ export { CalendarPrint, type CalendarPrintProps, type PrintCalendarInfo } from './CalendarPrint';
32
+ export { printCalendar } from './printCalendar';
33
+ export { printRange, eventDays, eventsByDay, type CalendarEvent as PrintableCalendarEvent, type PrintView, } from './print-layout';
34
+ export { formatSlotTime, formatDayLabel, groupSlotsByDay, formatSlotRange, zoneOptions, type SlotView, type SlotDay, } from './booking-slots';
@@ -1,4 +1,6 @@
1
1
  "use client";
2
+ import { safeZone, isValidTimeZone, utcToDate, addDays, convertWall, utcToTime, zoneOffsetLabel, formatInZone, zoneCity, todayInZone, startOfWeek, formatPlainDate, addMonths, isoWeekNumber, diffDays, utcToWall, listTimeZones, zoneOffsetMinutes, wallToEpochMs, dayOfWeekSun0, detectTimeZone, wallArrayOffset, epochToWallArray, wallToUtc } from '../chunk-GTCC2VAR.js';
3
+ export { addDays, addMonths, convertWall, detectTimeZone, diffDays, formatInZone, formatPlainDate, isValidTimeZone, listTimeZones, safeZone, startOfWeek, todayInZone, utcToDate, utcToTime, utcToWall, wallToUtc, zoneCity, zoneOffsetLabel, zoneOffsetMinutes } from '../chunk-GTCC2VAR.js';
2
4
  import '../chunk-VUNV25KB.js';
3
5
  import { forwardRef, useMemo, useRef, useState, useCallback, useEffect, useId } from 'react';
4
6
  import FullCalendar from '@fullcalendar/react';
@@ -10,9 +12,11 @@ import multiMonthPlugin from '@fullcalendar/multimonth';
10
12
  import { ChevronLeft, ChevronRight, Plus, Lightbulb, Workflow, ListTodo, Lock, EllipsisVertical, Globe, ChevronDown, Check, Clock, Repeat, CalendarDays, X, Video, MapPin, Users, TextAlignStart, Bell, Tag, Palette, Paperclip, Trash2, Pencil, CircleCheck, CircleX, DoorOpen, User, Sparkles } from 'lucide-react';
11
13
  import { cn, Button, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, Input, Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Switch, Textarea, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from '@arbidocs/react/ui';
12
14
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
13
- import { Temporal } from 'temporal-polyfill';
14
15
  import { createPlugin } from '@fullcalendar/core';
15
16
  import { NamedTimeZoneImpl } from '@fullcalendar/core/internal';
17
+ import { Temporal } from 'temporal-polyfill';
18
+ import { flushSync } from 'react-dom';
19
+ import { createRoot } from 'react-dom/client';
16
20
 
17
21
  // src/calendar/labels.ts
18
22
  var CALENDAR_DEFAULT_LABELS = {
@@ -305,151 +309,6 @@ function ColorSwatches({
305
309
  ))
306
310
  ] });
307
311
  }
308
- var pad2 = (n) => String(n).padStart(2, "0");
309
- var pad4 = (n) => String(n).padStart(4, "0");
310
- function isValidTimeZone(zone) {
311
- if (!zone) return false;
312
- try {
313
- Temporal.Now.instant().toZonedDateTimeISO(zone);
314
- return true;
315
- } catch {
316
- return false;
317
- }
318
- }
319
- function safeZone(zone, fallback = "UTC") {
320
- if (isValidTimeZone(zone)) return zone;
321
- return isValidTimeZone(fallback) ? fallback : "UTC";
322
- }
323
- function toPlainDateTime(wall) {
324
- return /^\d{4}-\d{2}-\d{2}$/.test(wall) ? Temporal.PlainDate.from(wall).toPlainDateTime() : Temporal.PlainDateTime.from(wall);
325
- }
326
- function wallToUtc(wall, zone) {
327
- const zdt = toPlainDateTime(wall).toZonedDateTime(safeZone(zone), {
328
- disambiguation: "compatible"
329
- });
330
- return zdt.toInstant().toString();
331
- }
332
- function wallToEpochMs(wall, zone) {
333
- return toPlainDateTime(wall).toZonedDateTime(safeZone(zone), { disambiguation: "compatible" }).epochMilliseconds;
334
- }
335
- function instantOf(utc) {
336
- if (typeof utc === "number") return Temporal.Instant.fromEpochMilliseconds(utc);
337
- if (utc instanceof Date) return Temporal.Instant.fromEpochMilliseconds(utc.getTime());
338
- return Temporal.Instant.from(utc);
339
- }
340
- function zoned(utc, zone) {
341
- return instantOf(utc).toZonedDateTimeISO(safeZone(zone));
342
- }
343
- function utcToWall(utc, zone) {
344
- const z = zoned(utc, zone);
345
- return `${pad4(z.year)}-${pad2(z.month)}-${pad2(z.day)}T${pad2(z.hour)}:${pad2(z.minute)}`;
346
- }
347
- function utcToDate(utc, zone) {
348
- const z = zoned(utc, zone);
349
- return `${pad4(z.year)}-${pad2(z.month)}-${pad2(z.day)}`;
350
- }
351
- function utcToTime(utc, zone) {
352
- const z = zoned(utc, zone);
353
- return `${pad2(z.hour)}:${pad2(z.minute)}`;
354
- }
355
- function convertWall(wall, fromZone, toZone) {
356
- return utcToWall(wallToUtc(wall, fromZone), toZone);
357
- }
358
- function todayInZone(zone, now = Date.now()) {
359
- return utcToDate(now, zone);
360
- }
361
- function addDays(date, days) {
362
- return Temporal.PlainDate.from(date).add({ days }).toString();
363
- }
364
- function addMonths(date, months) {
365
- return Temporal.PlainDate.from(date).add({ months }).toString();
366
- }
367
- function diffDays(a, b) {
368
- return Temporal.PlainDate.from(a).until(Temporal.PlainDate.from(b), { largestUnit: "days" }).days;
369
- }
370
- function dayOfWeekSun0(date) {
371
- return Temporal.PlainDate.from(date).dayOfWeek % 7;
372
- }
373
- function startOfWeek(date, weekStart) {
374
- const back = (dayOfWeekSun0(date) - weekStart + 7) % 7;
375
- return addDays(date, -back);
376
- }
377
- function isoWeekNumber(date) {
378
- return Temporal.PlainDate.from(date).weekOfYear ?? 1;
379
- }
380
- function zoneOffsetMinutes(zone, at = Date.now()) {
381
- return Math.round(zoned(at, zone).offsetNanoseconds / 6e10);
382
- }
383
- function zoneOffsetLabel(zone, at = Date.now()) {
384
- const total = zoneOffsetMinutes(zone, at);
385
- if (total === 0) return "GMT";
386
- const sign = total > 0 ? "+" : "-";
387
- const abs = Math.abs(total);
388
- const h = Math.floor(abs / 60);
389
- const m = abs % 60;
390
- return `GMT${sign}${h}${m ? `:${pad2(m)}` : ""}`;
391
- }
392
- function zoneCity(zone) {
393
- const last = zone.split("/").pop() ?? zone;
394
- return last.replace(/_/g, " ");
395
- }
396
- function listTimeZones() {
397
- try {
398
- const fn = Intl.supportedValuesOf;
399
- const zones = fn ? fn("timeZone") : [];
400
- if (zones.length) return zones.includes("UTC") ? zones : ["UTC", ...zones];
401
- } catch {
402
- }
403
- return [
404
- "UTC",
405
- "Europe/London",
406
- "Europe/Paris",
407
- "Europe/Berlin",
408
- "America/New_York",
409
- "America/Chicago",
410
- "America/Denver",
411
- "America/Los_Angeles",
412
- "Asia/Tokyo",
413
- "Asia/Singapore",
414
- "Australia/Sydney"
415
- ];
416
- }
417
- function detectTimeZone() {
418
- try {
419
- return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
420
- } catch {
421
- return "UTC";
422
- }
423
- }
424
- function formatInZone(utc, zone, options, locale) {
425
- const ms = instantOf(utc).epochMilliseconds;
426
- return new Intl.DateTimeFormat(locale, { ...options, timeZone: safeZone(zone) }).format(ms);
427
- }
428
- function formatPlainDate(date, options, locale) {
429
- return new Intl.DateTimeFormat(locale, { ...options, timeZone: "UTC" }).format(
430
- Date.parse(`${date}T12:00:00Z`)
431
- );
432
- }
433
- function epochToWallArray(ms, zone) {
434
- const z = Temporal.Instant.fromEpochMilliseconds(ms).toZonedDateTimeISO(zone);
435
- return [z.year, z.month - 1, z.day, z.hour, z.minute, z.second, z.millisecond];
436
- }
437
- function wallArrayOffset(a, zone) {
438
- const norm = new Date(
439
- Date.UTC(a[0], a[1] ?? 0, a[2] ?? 1, a[3] ?? 0, a[4] ?? 0, a[5] ?? 0, a[6] ?? 0)
440
- );
441
- const pdt = new Temporal.PlainDateTime(
442
- norm.getUTCFullYear(),
443
- norm.getUTCMonth() + 1,
444
- norm.getUTCDate(),
445
- norm.getUTCHours(),
446
- norm.getUTCMinutes(),
447
- norm.getUTCSeconds(),
448
- norm.getUTCMilliseconds()
449
- );
450
- const zdt = pdt.toZonedDateTime(zone, { disambiguation: "compatible" });
451
- return Math.round(zdt.offsetNanoseconds / 6e10);
452
- }
453
312
  var temporalZonePlugin = null;
454
313
  function getTemporalTimeZonePlugin() {
455
314
  if (!temporalZonePlugin) {
@@ -3501,10 +3360,10 @@ function ScopeDialog({
3501
3360
  }
3502
3361
 
3503
3362
  // src/calendar/scheduling.ts
3504
- var pad22 = (n) => String(n).padStart(2, "0");
3363
+ var pad2 = (n) => String(n).padStart(2, "0");
3505
3364
  function dayWindow(date, zone, startHour = 7, endHour = 20) {
3506
- const startMs = wallToEpochMs(`${date}T${pad22(startHour)}:00`, zone);
3507
- const endMs = endHour >= 24 ? wallToEpochMs(`${date}T23:59`, zone) + 6e4 : wallToEpochMs(`${date}T${pad22(endHour)}:00`, zone);
3365
+ const startMs = wallToEpochMs(`${date}T${pad2(startHour)}:00`, zone);
3366
+ const endMs = endHour >= 24 ? wallToEpochMs(`${date}T23:59`, zone) + 6e4 : wallToEpochMs(`${date}T${pad2(endHour)}:00`, zone);
3508
3367
  return { startMs, endMs };
3509
3368
  }
3510
3369
  function placeIntervals(intervals, win) {
@@ -3549,7 +3408,7 @@ function hourTicks(date, zone, startHour, endHour) {
3549
3408
  const span = win.endMs - win.startMs;
3550
3409
  const ticks = [];
3551
3410
  for (let h = startHour; h < endHour; h++) {
3552
- const ms = wallToEpochMs(`${date}T${pad22(h)}:00`, zone);
3411
+ const ms = wallToEpochMs(`${date}T${pad2(h)}:00`, zone);
3553
3412
  ticks.push({ hour: h, leftPct: (ms - win.startMs) / span * 100 });
3554
3413
  }
3555
3414
  return ticks;
@@ -4096,6 +3955,278 @@ function CalendarSettingsForm({
4096
3955
  );
4097
3956
  }
4098
3957
 
4099
- export { ARBI_WEBINAR_LABEL, CALENDAR_COLORS, CALENDAR_DEFAULT_LABELS, CALENDAR_NARROW_WIDTH, CalendarGrid, CalendarList, CalendarSettingsForm, DEFAULT_RECURRENCE_DESCRIBE_LABELS, DEFAULT_RECURRENCE_EDITOR_LABELS, DEFAULT_REMINDER_FORMAT_LABELS, EventDetails, EventEditor, MiniMonth, REMINDER_PRESETS, RRULE_WEEKDAYS, RecurrenceEditor, RoomFinder, SchedulingAssistant, ScopeDialog, TimeZonePicker, addDays, addMonths, allDayInclusiveEnd, attendeeKey, buildRRule, contrastText, convertWall, dayWindow, defaultRecurrenceForm, describeRecurrence, detectTimeZone, diffDays, draftFromSlot, draftRangeUtc, effectiveCalendarView, eventStateClasses, formatEventWhen, formatInZone, formatPlainDate, formatReminder, formatZoneLabel, getTemporalTimeZonePlugin, hourTicks, isAllDayDraft, isValidTimeZone, isWebinarConference, listTimeZones, outsideIntervals, parseRRule, placeIntervals, reminderToMinutes, safeZone, setDraftAllDay, setDraftEnd, setDraftStart, setPosOf, specDate, specTime, splitReminderMinutes, startOfWeek, toBusinessHours, todayInZone, utcToDate, utcToTime, utcToWall, validateDraft, wallToUtc, weekdayOf, workWeekHiddenDays, zoneCity, zoneOffsetLabel, zoneOffsetMinutes };
3958
+ // src/calendar/print-layout.ts
3959
+ function printRange(view, date, weekStart = 1, agendaDays = 30) {
3960
+ if (view === "day") return { from: date, to: addDays(date, 1) };
3961
+ if (view === "agenda") return { from: date, to: addDays(date, agendaDays) };
3962
+ if (view === "week") {
3963
+ const from2 = startOfWeek(date, weekStart);
3964
+ return { from: from2, to: addDays(from2, 7) };
3965
+ }
3966
+ const first = `${date.slice(0, 8)}01`;
3967
+ const from = startOfWeek(first, weekStart);
3968
+ const nextMonth = addMonths(first, 1);
3969
+ const lead = (dayOfWeekSun0(nextMonth) - weekStart + 7) % 7;
3970
+ const to = lead === 0 ? nextMonth : addDays(nextMonth, 7 - lead);
3971
+ return { from, to };
3972
+ }
3973
+ function eachDay(from, to) {
3974
+ const out = [];
3975
+ for (let d = from; d < to; d = addDays(d, 1)) out.push(d);
3976
+ return out;
3977
+ }
3978
+ function eventDays(e, zone) {
3979
+ if (e.all_day) {
3980
+ const start = e.start.date ?? utcToDate(e.start_utc, "UTC");
3981
+ const endExcl = e.end.date ?? addDays(start, 1);
3982
+ return eachDay(start, endExcl > start ? endExcl : addDays(start, 1));
3983
+ }
3984
+ const startDay = utcToDate(e.start_utc, zone);
3985
+ const lastInstant = new Date(
3986
+ Math.max(new Date(e.start_utc).getTime(), new Date(e.end_utc).getTime() - 1)
3987
+ );
3988
+ const endDay = utcToDate(lastInstant, zone);
3989
+ return eachDay(startDay, addDays(endDay, 1));
3990
+ }
3991
+ function timeLabel(e, day, zone) {
3992
+ if (e.all_day) return "All day";
3993
+ const fmt = new Intl.DateTimeFormat(void 0, {
3994
+ timeZone: zone,
3995
+ hour: "numeric",
3996
+ minute: "2-digit"
3997
+ });
3998
+ const sDay = utcToDate(e.start_utc, zone);
3999
+ const eDay = utcToDate(new Date(new Date(e.end_utc).getTime() - 1), zone);
4000
+ const s = sDay === day ? fmt.format(new Date(e.start_utc)) : "\u2026";
4001
+ const en = eDay === day ? fmt.format(new Date(e.end_utc)) : "\u2026";
4002
+ return `${s} \u2013 ${en}`;
4003
+ }
4004
+ function eventsByDay(events, zone, from, to) {
4005
+ const map = /* @__PURE__ */ new Map();
4006
+ for (const e of events) {
4007
+ for (const d of eventDays(e, zone)) {
4008
+ if (d < from || d >= to) continue;
4009
+ const list = map.get(d) ?? [];
4010
+ list.push(e);
4011
+ map.set(d, list);
4012
+ }
4013
+ }
4014
+ for (const list of map.values())
4015
+ list.sort(
4016
+ (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)
4017
+ );
4018
+ return map;
4019
+ }
4020
+ function heading(view, date, from, to) {
4021
+ const last = addDays(to, -1);
4022
+ if (view === "day")
4023
+ return formatPlainDate(from, {
4024
+ weekday: "long",
4025
+ year: "numeric",
4026
+ month: "long",
4027
+ day: "numeric"
4028
+ });
4029
+ if (view === "month")
4030
+ return formatPlainDate(`${date.slice(0, 7)}-15`, { year: "numeric", month: "long" });
4031
+ const opts = { year: "numeric", month: "short", day: "numeric" };
4032
+ return `${formatPlainDate(from, opts)} \u2013 ${formatPlainDate(last, opts)}`;
4033
+ }
4034
+ var STYLE = `
4035
+ .arbi-calendar-print { color: #111; background: #fff; font: 12px/1.4 system-ui, -apple-system, 'Segoe UI', sans-serif; }
4036
+ .arbi-calendar-print h1 { font-size: 18px; margin: 0 0 8px; }
4037
+ .arbi-calendar-print .acp-zone { color: #555; font-size: 11px; margin-bottom: 12px; }
4038
+ .arbi-calendar-print table { border-collapse: collapse; width: 100%; table-layout: fixed; }
4039
+ .arbi-calendar-print th, .arbi-calendar-print td { border: 1px solid #bbb; padding: 4px; vertical-align: top; text-align: left; }
4040
+ .arbi-calendar-print th { background: #f3f3f3; font-weight: 600; }
4041
+ .arbi-calendar-print .acp-day { break-inside: avoid; margin-bottom: 10px; }
4042
+ .arbi-calendar-print .acp-day h2 { font-size: 13px; margin: 0 0 4px; border-bottom: 1px solid #bbb; padding-bottom: 2px; }
4043
+ .arbi-calendar-print .acp-ev { display: flex; gap: 6px; margin: 2px 0; break-inside: avoid; }
4044
+ .arbi-calendar-print .acp-time { flex: 0 0 auto; min-width: 92px; color: #333; font-variant-numeric: tabular-nums; }
4045
+ .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; }
4046
+ .arbi-calendar-print .acp-meta { color: #555; font-size: 11px; white-space: pre-line; }
4047
+ .arbi-calendar-print .acp-muted { color: #888; }
4048
+ .arbi-calendar-print .acp-cancelled { text-decoration: line-through; color: #888; }
4049
+ .arbi-calendar-print .acp-month td { height: 90px; }
4050
+ .arbi-calendar-print .acp-month .acp-out { color: #aaa; }
4051
+ .arbi-calendar-print .acp-cell-ev { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
4052
+ @media screen { .arbi-calendar-print[data-screen-hidden='true'] { display: none; } }
4053
+ @media print {
4054
+ @page { margin: 12mm; }
4055
+ body.arbi-printing-calendar > *:not(.arbi-calendar-print-host) { display: none !important; }
4056
+ body.arbi-printing-calendar .arbi-calendar-print-host { display: block !important; }
4057
+ body.arbi-printing-calendar .arbi-calendar-print { display: block !important; }
4058
+ }
4059
+ `;
4060
+ function CalendarPrint({
4061
+ events,
4062
+ view,
4063
+ date,
4064
+ timeZone,
4065
+ weekStart = 1,
4066
+ agendaDays = 30,
4067
+ title,
4068
+ calendars,
4069
+ screenHidden = false,
4070
+ showDetails = true
4071
+ }) {
4072
+ const zone = safeZone(timeZone, detectTimeZone());
4073
+ const { from, to } = printRange(view, date, weekStart, agendaDays);
4074
+ const byDay = eventsByDay(events, zone, from, to);
4075
+ const color = (e) => e.color || calendars?.find((c) => c.id === e.calendar_id)?.color || "#3b82f6";
4076
+ const label = (e) => e.restricted && !e.title ? "Busy" : e.title || "(no title)";
4077
+ const evLine = (e, day, details) => /* @__PURE__ */ jsxs("div", { className: "acp-ev", "data-testid": "calendar-print-event", children: [
4078
+ /* @__PURE__ */ jsx("span", { className: "acp-time", children: timeLabel(e, day, zone) }),
4079
+ /* @__PURE__ */ jsxs("span", { children: [
4080
+ /* @__PURE__ */ jsx("span", { className: "acp-dot", style: { background: color(e) } }),
4081
+ /* @__PURE__ */ jsx("span", { className: e.status === "cancelled" ? "acp-cancelled" : void 0, children: label(e) }),
4082
+ details && e.location && /* @__PURE__ */ jsx("div", { className: "acp-meta", children: e.location }),
4083
+ details && e.description && /* @__PURE__ */ jsx("div", { className: "acp-meta", children: e.description.slice(0, 500) })
4084
+ ] })
4085
+ ] }, `${e.instance_id}-${day}`);
4086
+ let body;
4087
+ if (view === "agenda" || view === "day") {
4088
+ const days = view === "day" ? [from] : eachDay(from, to).filter((d) => byDay.has(d));
4089
+ body = days.length ? days.map((d) => /* @__PURE__ */ jsxs("section", { className: "acp-day", children: [
4090
+ /* @__PURE__ */ jsx("h2", { children: formatPlainDate(d, { weekday: "long", month: "long", day: "numeric" }) }),
4091
+ (byDay.get(d) ?? []).map((e) => evLine(e, d, showDetails)),
4092
+ !byDay.get(d)?.length && /* @__PURE__ */ jsx("div", { className: "acp-muted", children: "No events" })
4093
+ ] }, d)) : /* @__PURE__ */ jsx("p", { className: "acp-muted", children: "No events" });
4094
+ } else if (view === "week") {
4095
+ const days = eachDay(from, to);
4096
+ body = /* @__PURE__ */ jsxs("table", { children: [
4097
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { children: days.map((d) => /* @__PURE__ */ jsx("th", { children: formatPlainDate(d, { weekday: "short", day: "numeric", month: "short" }) }, d)) }) }),
4098
+ /* @__PURE__ */ jsx("tbody", { children: /* @__PURE__ */ jsx("tr", { children: days.map((d) => /* @__PURE__ */ jsx("td", { style: { height: 480 }, children: (byDay.get(d) ?? []).map((e) => evLine(e, d, false)) }, d)) }) })
4099
+ ] });
4100
+ } else {
4101
+ const days = eachDay(from, to);
4102
+ const weeks = [];
4103
+ for (let i = 0; i < days.length; i += 7) weeks.push(days.slice(i, i + 7));
4104
+ const month = date.slice(0, 7);
4105
+ body = /* @__PURE__ */ jsxs("table", { className: "acp-month", children: [
4106
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { children: weeks[0].map((d) => /* @__PURE__ */ jsx("th", { children: formatPlainDate(d, { weekday: "short" }) }, d)) }) }),
4107
+ /* @__PURE__ */ jsx("tbody", { children: weeks.map((w) => /* @__PURE__ */ jsx("tr", { children: w.map((d) => /* @__PURE__ */ jsxs("td", { className: d.slice(0, 7) === month ? void 0 : "acp-out", children: [
4108
+ /* @__PURE__ */ jsx("div", { children: Number(d.slice(8)) }),
4109
+ (byDay.get(d) ?? []).slice(0, 6).map((e) => /* @__PURE__ */ jsxs(
4110
+ "div",
4111
+ {
4112
+ className: "acp-cell-ev",
4113
+ "data-testid": "calendar-print-event",
4114
+ children: [
4115
+ /* @__PURE__ */ jsx("span", { className: "acp-dot", style: { background: color(e) } }),
4116
+ !e.all_day && `${timeLabel(e, d, zone).split(" \u2013 ")[0]} `,
4117
+ label(e)
4118
+ ]
4119
+ },
4120
+ `${e.instance_id}-${d}`
4121
+ )),
4122
+ (byDay.get(d)?.length ?? 0) > 6 && /* @__PURE__ */ jsxs("div", { className: "acp-cell-ev acp-muted", children: [
4123
+ "+",
4124
+ (byDay.get(d)?.length ?? 0) - 6,
4125
+ " more"
4126
+ ] })
4127
+ ] }, d)) }, w[0])) })
4128
+ ] });
4129
+ }
4130
+ return /* @__PURE__ */ jsxs(
4131
+ "div",
4132
+ {
4133
+ className: "arbi-calendar-print",
4134
+ "data-screen-hidden": screenHidden ? "true" : "false",
4135
+ "data-testid": "calendar-print",
4136
+ children: [
4137
+ /* @__PURE__ */ jsx("style", { children: STYLE }),
4138
+ /* @__PURE__ */ jsx("h1", { children: title ?? heading(view, date, from, to) }),
4139
+ /* @__PURE__ */ jsxs("div", { className: "acp-zone", children: [
4140
+ "Times in ",
4141
+ zone.replace(/_/g, " ")
4142
+ ] }),
4143
+ body
4144
+ ]
4145
+ }
4146
+ );
4147
+ }
4148
+ function printCalendar(props) {
4149
+ const host = document.createElement("div");
4150
+ host.className = "arbi-calendar-print-host";
4151
+ host.style.display = "none";
4152
+ document.body.appendChild(host);
4153
+ let unmount = null;
4154
+ if (props) {
4155
+ const root = createRoot(host);
4156
+ flushSync(() => root.render(/* @__PURE__ */ jsx(CalendarPrint, { ...props, screenHidden: false })));
4157
+ unmount = () => root.unmount();
4158
+ } else {
4159
+ const existing = document.querySelector(".arbi-calendar-print");
4160
+ if (!existing) {
4161
+ host.remove();
4162
+ return;
4163
+ }
4164
+ const clone = existing.cloneNode(true);
4165
+ clone.setAttribute("data-screen-hidden", "false");
4166
+ host.appendChild(clone);
4167
+ }
4168
+ document.body.classList.add("arbi-printing-calendar");
4169
+ let done = false;
4170
+ const cleanup = () => {
4171
+ if (done) return;
4172
+ done = true;
4173
+ window.removeEventListener("afterprint", cleanup);
4174
+ document.body.classList.remove("arbi-printing-calendar");
4175
+ unmount?.();
4176
+ host.remove();
4177
+ };
4178
+ window.addEventListener("afterprint", cleanup);
4179
+ try {
4180
+ window.print();
4181
+ } finally {
4182
+ if (!("onafterprint" in window)) setTimeout(cleanup, 1e3);
4183
+ }
4184
+ }
4185
+
4186
+ // src/calendar/booking-slots.ts
4187
+ function formatSlotTime(instant, zone, locale) {
4188
+ return formatInZone(instant, zone, { hour: "numeric", minute: "2-digit" }, locale);
4189
+ }
4190
+ function formatDayLabel(date, locale) {
4191
+ return formatPlainDate(date, { weekday: "long", month: "long", day: "numeric" }, locale);
4192
+ }
4193
+ function groupSlotsByDay(slots, zone, locale) {
4194
+ const tz = safeZone(zone, detectTimeZone());
4195
+ const byDay = /* @__PURE__ */ new Map();
4196
+ const sorted = [...slots].sort((a, b) => new Date(a).getTime() - new Date(b).getTime());
4197
+ for (const start of sorted) {
4198
+ const date = utcToDate(start, tz);
4199
+ const list = byDay.get(date) ?? [];
4200
+ list.push({ start, label: formatSlotTime(start, tz, locale) });
4201
+ byDay.set(date, list);
4202
+ }
4203
+ return [...byDay.entries()].map(([date, list]) => ({
4204
+ date,
4205
+ label: formatDayLabel(date, locale),
4206
+ slots: list
4207
+ }));
4208
+ }
4209
+ function formatSlotRange(start, end, zone, locale) {
4210
+ const tz = safeZone(zone, detectTimeZone());
4211
+ const fmt = new Intl.DateTimeFormat(locale, {
4212
+ timeZone: tz,
4213
+ weekday: "long",
4214
+ month: "long",
4215
+ day: "numeric",
4216
+ hour: "numeric",
4217
+ minute: "2-digit"
4218
+ });
4219
+ const s = new Date(start);
4220
+ const e = new Date(end);
4221
+ const range = fmt.formatRange;
4222
+ const text = range ? range.call(fmt, s, e) : `${fmt.format(s)} \u2013 ${formatSlotTime(end, tz, locale)}`;
4223
+ return `${text} (${tz.replace(/_/g, " ")})`;
4224
+ }
4225
+ function zoneOptions(current) {
4226
+ const zones = listTimeZones();
4227
+ return zones.includes(current) ? zones : [current, ...zones];
4228
+ }
4229
+
4230
+ export { ARBI_WEBINAR_LABEL, CALENDAR_COLORS, CALENDAR_DEFAULT_LABELS, CALENDAR_NARROW_WIDTH, CalendarGrid, CalendarList, CalendarPrint, CalendarSettingsForm, DEFAULT_RECURRENCE_DESCRIBE_LABELS, DEFAULT_RECURRENCE_EDITOR_LABELS, DEFAULT_REMINDER_FORMAT_LABELS, EventDetails, EventEditor, MiniMonth, REMINDER_PRESETS, RRULE_WEEKDAYS, RecurrenceEditor, RoomFinder, SchedulingAssistant, ScopeDialog, TimeZonePicker, allDayInclusiveEnd, attendeeKey, buildRRule, contrastText, dayWindow, defaultRecurrenceForm, describeRecurrence, draftFromSlot, draftRangeUtc, effectiveCalendarView, eventDays, eventStateClasses, eventsByDay, formatDayLabel, formatEventWhen, formatReminder, formatSlotRange, formatSlotTime, formatZoneLabel, getTemporalTimeZonePlugin, groupSlotsByDay, hourTicks, isAllDayDraft, isWebinarConference, outsideIntervals, parseRRule, placeIntervals, printCalendar, printRange, reminderToMinutes, setDraftAllDay, setDraftEnd, setDraftStart, setPosOf, specDate, specTime, splitReminderMinutes, toBusinessHours, validateDraft, weekdayOf, workWeekHiddenDays, zoneOptions };
4100
4231
  //# sourceMappingURL=index.js.map
4101
4232
  //# sourceMappingURL=index.js.map