@nomideusz/svelte-calendar 0.7.5 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +33 -5
  2. package/dist/calendar/Calendar.svelte +379 -497
  3. package/dist/calendar/Calendar.svelte.d.ts +13 -2
  4. package/dist/core/clock.svelte.d.ts +1 -1
  5. package/dist/core/clock.svelte.js +20 -9
  6. package/dist/core/locale.d.ts +4 -0
  7. package/dist/core/locale.js +4 -0
  8. package/dist/core/timezone.d.ts +12 -0
  9. package/dist/core/timezone.js +31 -0
  10. package/dist/engine/view-state.svelte.d.ts +2 -2
  11. package/dist/engine/view-state.svelte.js +20 -0
  12. package/dist/headless/create-calendar.svelte.js +29 -7
  13. package/dist/headless/types.d.ts +8 -6
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.js +4 -0
  16. package/dist/primitives/DayHeader.svelte +9 -25
  17. package/dist/primitives/EmptySlot.svelte +15 -31
  18. package/dist/primitives/EventBlock.svelte +33 -61
  19. package/dist/primitives/NowIndicator.svelte +16 -42
  20. package/dist/primitives/TimeGutter.svelte +9 -23
  21. package/dist/views/agenda/Agenda.svelte +3 -10
  22. package/dist/views/agenda/AgendaDay.svelte +195 -167
  23. package/dist/views/agenda/AgendaWeek.svelte +141 -195
  24. package/dist/views/mobile/Mobile.svelte +3 -10
  25. package/dist/views/mobile/MobileDay.svelte +422 -266
  26. package/dist/views/mobile/MobileWeek.svelte +131 -186
  27. package/dist/views/month/MonthGrid.svelte +334 -0
  28. package/dist/views/month/MonthGrid.svelte.d.ts +15 -0
  29. package/dist/views/planner/Planner.svelte +3 -10
  30. package/dist/views/planner/PlannerDay.svelte +636 -546
  31. package/dist/views/planner/PlannerWeek.svelte +299 -412
  32. package/dist/views/shared/EventContent.svelte +16 -0
  33. package/dist/views/shared/EventContent.svelte.d.ts +9 -0
  34. package/dist/views/shared/context.svelte.d.ts +2 -0
  35. package/dist/views/shared/context.svelte.js +2 -0
  36. package/dist/widget/CalendarWidget.svelte +79 -116
  37. package/package.json +3 -2
  38. package/widget/svelte-calendar.css +321 -10
  39. package/widget/widget.js +2508 -1056
package/widget/widget.js CHANGED
@@ -5358,11 +5358,11 @@
5358
5358
  if (date instanceof Date) return new date.constructor(value);
5359
5359
  return new Date(value);
5360
5360
  }
5361
- function toDate(argument, context) {
5361
+ function toDate$1(argument, context) {
5362
5362
  return constructFrom(context || argument, argument);
5363
5363
  }
5364
5364
  function addDays(date, amount, options) {
5365
- const _date = toDate(date, options?.in);
5365
+ const _date = toDate$1(date, options?.in);
5366
5366
  if (isNaN(amount)) return constructFrom(date, NaN);
5367
5367
  if (!amount) return _date;
5368
5368
  _date.setDate(_date.getDate() + amount);
@@ -5375,7 +5375,7 @@
5375
5375
  function startOfWeek$1(date, options) {
5376
5376
  const defaultOptions2 = getDefaultOptions();
5377
5377
  const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0;
5378
- const _date = toDate(date, options?.in);
5378
+ const _date = toDate$1(date, options?.in);
5379
5379
  const day = _date.getDay();
5380
5380
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
5381
5381
  _date.setDate(_date.getDate() - diff);
@@ -5383,21 +5383,21 @@
5383
5383
  return _date;
5384
5384
  }
5385
5385
  function startOfDay(date, options) {
5386
- const _date = toDate(date, options?.in);
5386
+ const _date = toDate$1(date, options?.in);
5387
5387
  _date.setHours(0, 0, 0, 0);
5388
5388
  return _date;
5389
5389
  }
5390
5390
  function getDate(date, options) {
5391
- return toDate(date, options?.in).getDate();
5391
+ return toDate$1(date, options?.in).getDate();
5392
5392
  }
5393
5393
  function getHours(date, options) {
5394
- return toDate(date, options?.in).getHours();
5394
+ return toDate$1(date, options?.in).getHours();
5395
5395
  }
5396
5396
  function getMinutes(date, options) {
5397
- return toDate(date, options?.in).getMinutes();
5397
+ return toDate$1(date, options?.in).getMinutes();
5398
5398
  }
5399
5399
  function getSeconds(date) {
5400
- return toDate(date).getSeconds();
5400
+ return toDate$1(date).getSeconds();
5401
5401
  }
5402
5402
  const DAY_MS = 864e5;
5403
5403
  const HOUR_MS = 36e5;
@@ -5567,6 +5567,7 @@
5567
5567
  }
5568
5568
  function inferMode(view) {
5569
5569
  if (view.startsWith("day")) return "day";
5570
+ if (view.startsWith("month")) return "month";
5570
5571
  return "week";
5571
5572
  }
5572
5573
  function computeRange(focus, mode, mondayStart, dayCount = 7) {
@@ -5576,6 +5577,13 @@
5576
5577
  const end = new Date(start2.getTime() + DAY_MS);
5577
5578
  return { start: start2, end };
5578
5579
  }
5580
+ if (mode === "month") {
5581
+ const first = new Date(focus.getFullYear(), focus.getMonth(), 1);
5582
+ const last = new Date(focus.getFullYear(), focus.getMonth() + 1, 0);
5583
+ const gridStart = startOfWeek(first.getTime(), mondayStart);
5584
+ const gridEnd = addDaysMs(startOfWeek(last.getTime(), mondayStart), 7);
5585
+ return { start: new Date(gridStart), end: new Date(gridEnd) };
5586
+ }
5579
5587
  if (dayCount === 7) {
5580
5588
  const ws = startOfWeek(focus.getTime(), mondayStart);
5581
5589
  return { start: new Date(ws), end: new Date(addDaysMs(ws, 7)) };
@@ -5628,10 +5636,18 @@
5628
5636
  set(dayCount, n, true);
5629
5637
  },
5630
5638
  next() {
5639
+ if (get(mode) === "month") {
5640
+ set(focusDate, new Date(get(focusDate).getFullYear(), get(focusDate).getMonth() + 1, 1), true);
5641
+ return;
5642
+ }
5631
5643
  const days = get(mode) === "day" ? 1 : get(dayCount);
5632
5644
  set(focusDate, new Date(addDaysMs(get(focusDate).getTime(), days)), true);
5633
5645
  },
5634
5646
  prev() {
5647
+ if (get(mode) === "month") {
5648
+ set(focusDate, new Date(get(focusDate).getFullYear(), get(focusDate).getMonth() - 1, 1), true);
5649
+ return;
5650
+ }
5635
5651
  const days = get(mode) === "day" ? -1 : -get(dayCount);
5636
5652
  set(focusDate, new Date(addDaysMs(get(focusDate).getTime(), days)), true);
5637
5653
  },
@@ -5744,6 +5760,7 @@
5744
5760
  tomorrow: "Tomorrow",
5745
5761
  day: "Day",
5746
5762
  week: "Week",
5763
+ month: "Month",
5747
5764
  planner: "Planner",
5748
5765
  agenda: "Agenda",
5749
5766
  now: "now",
@@ -5761,7 +5778,9 @@
5761
5778
  previousDay: "Previous day",
5762
5779
  nextDay: "Next day",
5763
5780
  previousWeek: "Previous week",
5781
+ previousMonth: "Previous month",
5764
5782
  nextWeek: "Next week",
5783
+ nextMonth: "Next month",
5765
5784
  calendar: "Calendar",
5766
5785
  viewMode: "View mode",
5767
5786
  dayNavigation: "Day navigation",
@@ -5780,6 +5799,7 @@
5780
5799
  nMore: (n) => `+${n} more`,
5781
5800
  nEvents: (n) => `${n} event${n === 1 ? "" : "s"}`,
5782
5801
  nCompleted: (n) => `${n} completed`,
5802
+ showLess: "Show less",
5783
5803
  dayNOfTotal: (current, total) => `day ${current} of ${total}`,
5784
5804
  percentComplete: (pct) => `${pct}% complete`
5785
5805
  };
@@ -6284,6 +6304,12 @@
6284
6304
  get oneventhover() {
6285
6305
  return raw?.oneventhover;
6286
6306
  },
6307
+ get ondayclick() {
6308
+ return raw?.ondayclick;
6309
+ },
6310
+ get timezone() {
6311
+ return raw?.timezone;
6312
+ },
6287
6313
  get disabledDates() {
6288
6314
  return raw?.disabledDates;
6289
6315
  },
@@ -6307,6 +6333,33 @@
6307
6333
  }
6308
6334
  };
6309
6335
  }
6336
+ function EventContent($$anchor, $$props) {
6337
+ push($$props, true);
6338
+ const ctx = useCalendarContext();
6339
+ const eventSnippet = /* @__PURE__ */ user_derived(() => ctx.eventSnippet);
6340
+ var fragment = comment();
6341
+ var node = first_child(fragment);
6342
+ {
6343
+ var consequent = ($$anchor2) => {
6344
+ var fragment_1 = comment();
6345
+ var node_1 = first_child(fragment_1);
6346
+ snippet(node_1, () => get(eventSnippet), () => $$props.event);
6347
+ append($$anchor2, fragment_1);
6348
+ };
6349
+ var alternate = ($$anchor2) => {
6350
+ var fragment_2 = comment();
6351
+ var node_2 = first_child(fragment_2);
6352
+ snippet(node_2, () => $$props.children);
6353
+ append($$anchor2, fragment_2);
6354
+ };
6355
+ if_block(node, ($$render) => {
6356
+ if (get(eventSnippet)) $$render(consequent);
6357
+ else $$render(alternate, -1);
6358
+ });
6359
+ }
6360
+ append($$anchor, fragment);
6361
+ pop();
6362
+ }
6310
6363
  function cubic_out(t) {
6311
6364
  const f = t - 1;
6312
6365
  return f * f * f + 1;
@@ -6372,14 +6425,543 @@
6372
6425
  }
6373
6426
  return [transition2(to_send, to_receive, false), transition2(to_receive, to_send, true)];
6374
6427
  }
6375
- function createClock() {
6376
- let tick2 = /* @__PURE__ */ state(proxy(Date.now()));
6377
- let today = /* @__PURE__ */ state(proxy(sod(Date.now())));
6428
+ function tzTokenizeDate(date, timeZone) {
6429
+ const dtf = getDateTimeFormat(timeZone);
6430
+ return "formatToParts" in dtf ? partsOffset(dtf, date) : hackyOffset(dtf, date);
6431
+ }
6432
+ const typeToPos = {
6433
+ year: 0,
6434
+ month: 1,
6435
+ day: 2,
6436
+ hour: 3,
6437
+ minute: 4,
6438
+ second: 5
6439
+ };
6440
+ function partsOffset(dtf, date) {
6441
+ try {
6442
+ const formatted = dtf.formatToParts(date);
6443
+ const filled = [];
6444
+ for (let i = 0; i < formatted.length; i++) {
6445
+ const pos = typeToPos[formatted[i].type];
6446
+ if (pos !== void 0) {
6447
+ filled[pos] = parseInt(formatted[i].value, 10);
6448
+ }
6449
+ }
6450
+ return filled;
6451
+ } catch (error) {
6452
+ if (error instanceof RangeError) {
6453
+ return [NaN];
6454
+ }
6455
+ throw error;
6456
+ }
6457
+ }
6458
+ function hackyOffset(dtf, date) {
6459
+ const formatted = dtf.format(date);
6460
+ const parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted);
6461
+ return [
6462
+ parseInt(parsed[3], 10),
6463
+ parseInt(parsed[1], 10),
6464
+ parseInt(parsed[2], 10),
6465
+ parseInt(parsed[4], 10),
6466
+ parseInt(parsed[5], 10),
6467
+ parseInt(parsed[6], 10)
6468
+ ];
6469
+ }
6470
+ const dtfCache = {};
6471
+ const testDateFormatted = new Intl.DateTimeFormat("en-US", {
6472
+ hourCycle: "h23",
6473
+ timeZone: "America/New_York",
6474
+ year: "numeric",
6475
+ month: "2-digit",
6476
+ day: "2-digit",
6477
+ hour: "2-digit",
6478
+ minute: "2-digit",
6479
+ second: "2-digit"
6480
+ }).format(/* @__PURE__ */ new Date("2014-06-25T04:00:00.123Z"));
6481
+ const hourCycleSupported = testDateFormatted === "06/25/2014, 00:00:00" || testDateFormatted === "‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";
6482
+ function getDateTimeFormat(timeZone) {
6483
+ if (!dtfCache[timeZone]) {
6484
+ dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat("en-US", {
6485
+ hourCycle: "h23",
6486
+ timeZone,
6487
+ year: "numeric",
6488
+ month: "numeric",
6489
+ day: "2-digit",
6490
+ hour: "2-digit",
6491
+ minute: "2-digit",
6492
+ second: "2-digit"
6493
+ }) : new Intl.DateTimeFormat("en-US", {
6494
+ hour12: false,
6495
+ timeZone,
6496
+ year: "numeric",
6497
+ month: "numeric",
6498
+ day: "2-digit",
6499
+ hour: "2-digit",
6500
+ minute: "2-digit",
6501
+ second: "2-digit"
6502
+ });
6503
+ }
6504
+ return dtfCache[timeZone];
6505
+ }
6506
+ function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {
6507
+ const utcDate = /* @__PURE__ */ new Date(0);
6508
+ utcDate.setUTCFullYear(fullYear, month, day);
6509
+ utcDate.setUTCHours(hour, minute, second, millisecond);
6510
+ return utcDate;
6511
+ }
6512
+ const MILLISECONDS_IN_HOUR$1 = 36e5;
6513
+ const MILLISECONDS_IN_MINUTE$1 = 6e4;
6514
+ const patterns$1 = {
6515
+ timezoneZ: /^(Z)$/,
6516
+ timezoneHH: /^([+-]\d{2})$/,
6517
+ timezoneHHMM: /^([+-])(\d{2}):?(\d{2})$/
6518
+ };
6519
+ function tzParseTimezone(timezoneString, date, isUtcDate) {
6520
+ if (!timezoneString) {
6521
+ return 0;
6522
+ }
6523
+ let token = patterns$1.timezoneZ.exec(timezoneString);
6524
+ if (token) {
6525
+ return 0;
6526
+ }
6527
+ let hours;
6528
+ let absoluteOffset;
6529
+ token = patterns$1.timezoneHH.exec(timezoneString);
6530
+ if (token) {
6531
+ hours = parseInt(token[1], 10);
6532
+ if (!validateTimezone(hours)) {
6533
+ return NaN;
6534
+ }
6535
+ return -(hours * MILLISECONDS_IN_HOUR$1);
6536
+ }
6537
+ token = patterns$1.timezoneHHMM.exec(timezoneString);
6538
+ if (token) {
6539
+ hours = parseInt(token[2], 10);
6540
+ const minutes = parseInt(token[3], 10);
6541
+ if (!validateTimezone(hours, minutes)) {
6542
+ return NaN;
6543
+ }
6544
+ absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR$1 + minutes * MILLISECONDS_IN_MINUTE$1;
6545
+ return token[1] === "+" ? -absoluteOffset : absoluteOffset;
6546
+ }
6547
+ if (isValidTimezoneIANAString(timezoneString)) {
6548
+ date = new Date(date || Date.now());
6549
+ const utcDate = isUtcDate ? date : toUtcDate(date);
6550
+ const offset = calcOffset(utcDate, timezoneString);
6551
+ const fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);
6552
+ return -fixedOffset;
6553
+ }
6554
+ return NaN;
6555
+ }
6556
+ function toUtcDate(date) {
6557
+ return newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
6558
+ }
6559
+ function calcOffset(date, timezoneString) {
6560
+ const tokens = tzTokenizeDate(date, timezoneString);
6561
+ const asUTC = newDateUTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5], 0).getTime();
6562
+ let asTS = date.getTime();
6563
+ const over = asTS % 1e3;
6564
+ asTS -= over >= 0 ? over : 1e3 + over;
6565
+ return asUTC - asTS;
6566
+ }
6567
+ function fixOffset(date, offset, timezoneString) {
6568
+ const localTS = date.getTime();
6569
+ let utcGuess = localTS - offset;
6570
+ const o2 = calcOffset(new Date(utcGuess), timezoneString);
6571
+ if (offset === o2) {
6572
+ return offset;
6573
+ }
6574
+ utcGuess -= o2 - offset;
6575
+ const o3 = calcOffset(new Date(utcGuess), timezoneString);
6576
+ if (o2 === o3) {
6577
+ return o2;
6578
+ }
6579
+ return Math.max(o2, o3);
6580
+ }
6581
+ function validateTimezone(hours, minutes) {
6582
+ return -23 <= hours && hours <= 23 && (minutes == null || 0 <= minutes && minutes <= 59);
6583
+ }
6584
+ const validIANATimezoneCache = {};
6585
+ function isValidTimezoneIANAString(timeZoneString) {
6586
+ if (validIANATimezoneCache[timeZoneString])
6587
+ return true;
6588
+ try {
6589
+ new Intl.DateTimeFormat(void 0, { timeZone: timeZoneString });
6590
+ validIANATimezoneCache[timeZoneString] = true;
6591
+ return true;
6592
+ } catch (error) {
6593
+ return false;
6594
+ }
6595
+ }
6596
+ function getTimezoneOffsetInMilliseconds(date) {
6597
+ const utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
6598
+ utcDate.setUTCFullYear(date.getFullYear());
6599
+ return +date - +utcDate;
6600
+ }
6601
+ const tzPattern = /(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/;
6602
+ const MILLISECONDS_IN_HOUR = 36e5;
6603
+ const MILLISECONDS_IN_MINUTE = 6e4;
6604
+ const DEFAULT_ADDITIONAL_DIGITS = 2;
6605
+ const patterns = {
6606
+ dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,
6607
+ datePattern: /^([0-9W+-]+)(.*)/,
6608
+ // year tokens
6609
+ YY: /^(\d{2})$/,
6610
+ YYY: [
6611
+ /^([+-]\d{2})$/,
6612
+ // 0 additional digits
6613
+ /^([+-]\d{3})$/,
6614
+ // 1 additional digit
6615
+ /^([+-]\d{4})$/
6616
+ // 2 additional digits
6617
+ ],
6618
+ YYYY: /^(\d{4})/,
6619
+ YYYYY: [
6620
+ /^([+-]\d{4})/,
6621
+ // 0 additional digits
6622
+ /^([+-]\d{5})/,
6623
+ // 1 additional digit
6624
+ /^([+-]\d{6})/
6625
+ // 2 additional digits
6626
+ ],
6627
+ // date tokens
6628
+ MM: /^-(\d{2})$/,
6629
+ DDD: /^-?(\d{3})$/,
6630
+ MMDD: /^-?(\d{2})-?(\d{2})$/,
6631
+ Www: /^-?W(\d{2})$/,
6632
+ WwwD: /^-?W(\d{2})-?(\d{1})$/,
6633
+ HH: /^(\d{2}([.,]\d*)?)$/,
6634
+ HHMM: /^(\d{2}):?(\d{2}([.,]\d*)?)$/,
6635
+ HHMMSS: /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,
6636
+ // time zone tokens (to identify the presence of a tz)
6637
+ timeZone: tzPattern
6638
+ };
6639
+ function toDate(argument, options = {}) {
6640
+ if (arguments.length < 1) {
6641
+ throw new TypeError("1 argument required, but only " + arguments.length + " present");
6642
+ }
6643
+ if (argument === null) {
6644
+ return /* @__PURE__ */ new Date(NaN);
6645
+ }
6646
+ const additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : Number(options.additionalDigits);
6647
+ if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {
6648
+ throw new RangeError("additionalDigits must be 0, 1 or 2");
6649
+ }
6650
+ if (argument instanceof Date || typeof argument === "object" && Object.prototype.toString.call(argument) === "[object Date]") {
6651
+ return new Date(argument.getTime());
6652
+ } else if (typeof argument === "number" || Object.prototype.toString.call(argument) === "[object Number]") {
6653
+ return new Date(argument);
6654
+ } else if (!(Object.prototype.toString.call(argument) === "[object String]")) {
6655
+ return /* @__PURE__ */ new Date(NaN);
6656
+ }
6657
+ const dateStrings = splitDateString(argument);
6658
+ const { year, restDateString } = parseYear(dateStrings.date, additionalDigits);
6659
+ const date = parseDate(restDateString, year);
6660
+ if (date === null || isNaN(date.getTime())) {
6661
+ return /* @__PURE__ */ new Date(NaN);
6662
+ }
6663
+ if (date) {
6664
+ const timestamp = date.getTime();
6665
+ let time = 0;
6666
+ let offset;
6667
+ if (dateStrings.time) {
6668
+ time = parseTime(dateStrings.time);
6669
+ if (time === null || isNaN(time)) {
6670
+ return /* @__PURE__ */ new Date(NaN);
6671
+ }
6672
+ }
6673
+ if (dateStrings.timeZone || options.timeZone) {
6674
+ offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));
6675
+ if (isNaN(offset)) {
6676
+ return /* @__PURE__ */ new Date(NaN);
6677
+ }
6678
+ } else {
6679
+ offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));
6680
+ offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));
6681
+ }
6682
+ return new Date(timestamp + time + offset);
6683
+ } else {
6684
+ return /* @__PURE__ */ new Date(NaN);
6685
+ }
6686
+ }
6687
+ function splitDateString(dateString) {
6688
+ const dateStrings = {};
6689
+ let parts = patterns.dateTimePattern.exec(dateString);
6690
+ let timeString;
6691
+ if (!parts) {
6692
+ parts = patterns.datePattern.exec(dateString);
6693
+ if (parts) {
6694
+ dateStrings.date = parts[1];
6695
+ timeString = parts[2];
6696
+ } else {
6697
+ dateStrings.date = null;
6698
+ timeString = dateString;
6699
+ }
6700
+ } else {
6701
+ dateStrings.date = parts[1];
6702
+ timeString = parts[3];
6703
+ }
6704
+ if (timeString) {
6705
+ const token = patterns.timeZone.exec(timeString);
6706
+ if (token) {
6707
+ dateStrings.time = timeString.replace(token[1], "");
6708
+ dateStrings.timeZone = token[1].trim();
6709
+ } else {
6710
+ dateStrings.time = timeString;
6711
+ }
6712
+ }
6713
+ return dateStrings;
6714
+ }
6715
+ function parseYear(dateString, additionalDigits) {
6716
+ if (dateString) {
6717
+ const patternYYY = patterns.YYY[additionalDigits];
6718
+ const patternYYYYY = patterns.YYYYY[additionalDigits];
6719
+ let token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);
6720
+ if (token) {
6721
+ const yearString = token[1];
6722
+ return {
6723
+ year: parseInt(yearString, 10),
6724
+ restDateString: dateString.slice(yearString.length)
6725
+ };
6726
+ }
6727
+ token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);
6728
+ if (token) {
6729
+ const centuryString = token[1];
6730
+ return {
6731
+ year: parseInt(centuryString, 10) * 100,
6732
+ restDateString: dateString.slice(centuryString.length)
6733
+ };
6734
+ }
6735
+ }
6736
+ return {
6737
+ year: null
6738
+ };
6739
+ }
6740
+ function parseDate(dateString, year) {
6741
+ if (year === null) {
6742
+ return null;
6743
+ }
6744
+ let date;
6745
+ let month;
6746
+ let week;
6747
+ if (!dateString || !dateString.length) {
6748
+ date = /* @__PURE__ */ new Date(0);
6749
+ date.setUTCFullYear(year);
6750
+ return date;
6751
+ }
6752
+ let token = patterns.MM.exec(dateString);
6753
+ if (token) {
6754
+ date = /* @__PURE__ */ new Date(0);
6755
+ month = parseInt(token[1], 10) - 1;
6756
+ if (!validateDate(year, month)) {
6757
+ return /* @__PURE__ */ new Date(NaN);
6758
+ }
6759
+ date.setUTCFullYear(year, month);
6760
+ return date;
6761
+ }
6762
+ token = patterns.DDD.exec(dateString);
6763
+ if (token) {
6764
+ date = /* @__PURE__ */ new Date(0);
6765
+ const dayOfYear = parseInt(token[1], 10);
6766
+ if (!validateDayOfYearDate(year, dayOfYear)) {
6767
+ return /* @__PURE__ */ new Date(NaN);
6768
+ }
6769
+ date.setUTCFullYear(year, 0, dayOfYear);
6770
+ return date;
6771
+ }
6772
+ token = patterns.MMDD.exec(dateString);
6773
+ if (token) {
6774
+ date = /* @__PURE__ */ new Date(0);
6775
+ month = parseInt(token[1], 10) - 1;
6776
+ const day = parseInt(token[2], 10);
6777
+ if (!validateDate(year, month, day)) {
6778
+ return /* @__PURE__ */ new Date(NaN);
6779
+ }
6780
+ date.setUTCFullYear(year, month, day);
6781
+ return date;
6782
+ }
6783
+ token = patterns.Www.exec(dateString);
6784
+ if (token) {
6785
+ week = parseInt(token[1], 10) - 1;
6786
+ if (!validateWeekDate(week)) {
6787
+ return /* @__PURE__ */ new Date(NaN);
6788
+ }
6789
+ return dayOfISOWeekYear(year, week);
6790
+ }
6791
+ token = patterns.WwwD.exec(dateString);
6792
+ if (token) {
6793
+ week = parseInt(token[1], 10) - 1;
6794
+ const dayOfWeek = parseInt(token[2], 10) - 1;
6795
+ if (!validateWeekDate(week, dayOfWeek)) {
6796
+ return /* @__PURE__ */ new Date(NaN);
6797
+ }
6798
+ return dayOfISOWeekYear(year, week, dayOfWeek);
6799
+ }
6800
+ return null;
6801
+ }
6802
+ function parseTime(timeString) {
6803
+ let hours;
6804
+ let minutes;
6805
+ let token = patterns.HH.exec(timeString);
6806
+ if (token) {
6807
+ hours = parseFloat(token[1].replace(",", "."));
6808
+ if (!validateTime(hours)) {
6809
+ return NaN;
6810
+ }
6811
+ return hours % 24 * MILLISECONDS_IN_HOUR;
6812
+ }
6813
+ token = patterns.HHMM.exec(timeString);
6814
+ if (token) {
6815
+ hours = parseInt(token[1], 10);
6816
+ minutes = parseFloat(token[2].replace(",", "."));
6817
+ if (!validateTime(hours, minutes)) {
6818
+ return NaN;
6819
+ }
6820
+ return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;
6821
+ }
6822
+ token = patterns.HHMMSS.exec(timeString);
6823
+ if (token) {
6824
+ hours = parseInt(token[1], 10);
6825
+ minutes = parseInt(token[2], 10);
6826
+ const seconds = parseFloat(token[3].replace(",", "."));
6827
+ if (!validateTime(hours, minutes, seconds)) {
6828
+ return NaN;
6829
+ }
6830
+ return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1e3;
6831
+ }
6832
+ return null;
6833
+ }
6834
+ function dayOfISOWeekYear(isoWeekYear, week, day) {
6835
+ week = week || 0;
6836
+ day = day || 0;
6837
+ const date = /* @__PURE__ */ new Date(0);
6838
+ date.setUTCFullYear(isoWeekYear, 0, 4);
6839
+ const fourthOfJanuaryDay = date.getUTCDay() || 7;
6840
+ const diff = week * 7 + day + 1 - fourthOfJanuaryDay;
6841
+ date.setUTCDate(date.getUTCDate() + diff);
6842
+ return date;
6843
+ }
6844
+ const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
6845
+ const DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
6846
+ function isLeapYearIndex(year) {
6847
+ return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
6848
+ }
6849
+ function validateDate(year, month, date) {
6850
+ if (month < 0 || month > 11) {
6851
+ return false;
6852
+ }
6853
+ if (date != null) {
6854
+ if (date < 1) {
6855
+ return false;
6856
+ }
6857
+ const isLeapYear = isLeapYearIndex(year);
6858
+ if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {
6859
+ return false;
6860
+ }
6861
+ if (!isLeapYear && date > DAYS_IN_MONTH[month]) {
6862
+ return false;
6863
+ }
6864
+ }
6865
+ return true;
6866
+ }
6867
+ function validateDayOfYearDate(year, dayOfYear) {
6868
+ if (dayOfYear < 1) {
6869
+ return false;
6870
+ }
6871
+ const isLeapYear = isLeapYearIndex(year);
6872
+ if (isLeapYear && dayOfYear > 366) {
6873
+ return false;
6874
+ }
6875
+ if (!isLeapYear && dayOfYear > 365) {
6876
+ return false;
6877
+ }
6878
+ return true;
6879
+ }
6880
+ function validateWeekDate(week, day) {
6881
+ if (week < 0 || week > 52) {
6882
+ return false;
6883
+ }
6884
+ if (day != null && (day < 0 || day > 6)) {
6885
+ return false;
6886
+ }
6887
+ return true;
6888
+ }
6889
+ function validateTime(hours, minutes, seconds) {
6890
+ if (hours < 0 || hours >= 25) {
6891
+ return false;
6892
+ }
6893
+ if (minutes != null && (minutes < 0 || minutes >= 60)) {
6894
+ return false;
6895
+ }
6896
+ if (seconds != null && (seconds < 0 || seconds >= 60)) {
6897
+ return false;
6898
+ }
6899
+ return true;
6900
+ }
6901
+ function toZonedTime$1(date, timeZone, options) {
6902
+ date = toDate(date, options);
6903
+ const offsetMilliseconds = tzParseTimezone(timeZone, date, true);
6904
+ const d = new Date(date.getTime() - offsetMilliseconds);
6905
+ const resultDate = /* @__PURE__ */ new Date(0);
6906
+ resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
6907
+ resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());
6908
+ return resultDate;
6909
+ }
6910
+ function fromZonedTime$1(date, timeZone, options) {
6911
+ if (typeof date === "string" && !date.match(tzPattern)) {
6912
+ return toDate(date, { ...options, timeZone });
6913
+ }
6914
+ date = toDate(date, options);
6915
+ const utc = newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()).getTime();
6916
+ const offsetMilliseconds = tzParseTimezone(timeZone, new Date(utc));
6917
+ return new Date(utc + offsetMilliseconds);
6918
+ }
6919
+ function toZonedTime(date, timezone) {
6920
+ return toZonedTime$1(date, timezone);
6921
+ }
6922
+ function fromZonedTime(date, timezone) {
6923
+ return fromZonedTime$1(date, timezone);
6924
+ }
6925
+ function wrapAdapterWithTimezone(adapter, timezone) {
6926
+ const zoneEvent = (ev) => ({
6927
+ ...ev,
6928
+ start: toZonedTime(ev.start, timezone),
6929
+ end: toZonedTime(ev.end, timezone)
6930
+ });
6931
+ const unzonePartial = (obj) => ({
6932
+ ...obj,
6933
+ ...obj.start instanceof Date ? { start: fromZonedTime(obj.start, timezone) } : {},
6934
+ ...obj.end instanceof Date ? { end: fromZonedTime(obj.end, timezone) } : {}
6935
+ });
6936
+ const wrapped = {
6937
+ async fetchEvents(range) {
6938
+ const events = await adapter.fetchEvents({
6939
+ start: fromZonedTime(range.start, timezone),
6940
+ end: fromZonedTime(range.end, timezone)
6941
+ });
6942
+ return events.map(zoneEvent);
6943
+ }
6944
+ };
6945
+ if (adapter.createEvent) {
6946
+ wrapped.createEvent = async (event2) => zoneEvent(await adapter.createEvent(unzonePartial(event2)));
6947
+ }
6948
+ if (adapter.updateEvent) {
6949
+ wrapped.updateEvent = async (id, patch) => zoneEvent(await adapter.updateEvent(id, unzonePartial(patch)));
6950
+ }
6951
+ if (adapter.deleteEvent) {
6952
+ wrapped.deleteEvent = (id) => adapter.deleteEvent(id);
6953
+ }
6954
+ return wrapped;
6955
+ }
6956
+ function createClock(timezone) {
6957
+ const now2 = () => timezone ? toZonedTime(Date.now(), timezone).getTime() : Date.now();
6958
+ let tick2 = /* @__PURE__ */ state(proxy(now2()));
6959
+ let today = /* @__PURE__ */ state(proxy(sod(get(tick2))));
6378
6960
  let intervalId = null;
6379
6961
  function start() {
6380
6962
  intervalId = setInterval(
6381
6963
  () => {
6382
- set(tick2, Date.now(), true);
6964
+ set(tick2, now2(), true);
6383
6965
  const sd = sod(get(tick2));
6384
6966
  if (sd !== get(today)) set(today, sd, true);
6385
6967
  },
@@ -6392,10 +6974,13 @@
6392
6974
  intervalId = null;
6393
6975
  }
6394
6976
  }
6395
- onMount(() => {
6396
- start();
6397
- return destroy;
6398
- });
6977
+ try {
6978
+ onMount(() => {
6979
+ start();
6980
+ return destroy;
6981
+ });
6982
+ } catch {
6983
+ }
6399
6984
  return {
6400
6985
  get tick() {
6401
6986
  return get(tick2);
@@ -6555,29 +7140,32 @@
6555
7140
  }
6556
7141
  };
6557
7142
  }
6558
- var root_1$6 = /* @__PURE__ */ from_html(`<div class="fs-tick svelte-mrwdy7"><span class="fs-tick-lb svelte-mrwdy7"> </span></div> <div class="fs-tick fs-tick--half svelte-mrwdy7"></div>`, 1);
6559
- var root_2$6 = /* @__PURE__ */ from_html(`<span class="fs-blocked-label svelte-mrwdy7"> </span>`);
6560
- var root_3$6 = /* @__PURE__ */ from_html(`<div class="fs-blocked svelte-mrwdy7"><!></div>`);
6561
- var root_4$6 = /* @__PURE__ */ from_html(`<div class="fs-day-header-custom svelte-mrwdy7"><!></div>`);
6562
- var root_5$6 = /* @__PURE__ */ from_html(`<div><!> <!> <!></div>`);
6563
- var root_6$6 = /* @__PURE__ */ from_html(`<span class="fs-ev-live svelte-mrwdy7" aria-hidden="true"></span>`);
7143
+ var root_1$7 = /* @__PURE__ */ from_html(`<div class="fs-tick svelte-mrwdy7"><span class="fs-tick-lb svelte-mrwdy7"> </span></div> <div class="fs-tick fs-tick--half svelte-mrwdy7"></div>`, 1);
7144
+ var root_2$7 = /* @__PURE__ */ from_html(`<span class="fs-blocked-label svelte-mrwdy7"> </span>`);
7145
+ var root_3$7 = /* @__PURE__ */ from_html(`<div class="fs-blocked svelte-mrwdy7"><!></div>`);
7146
+ var root_4$7 = /* @__PURE__ */ from_html(`<div class="fs-day-header-custom svelte-mrwdy7"><!></div>`);
7147
+ var root_5$7 = /* @__PURE__ */ from_html(`<div><!> <!> <!></div>`);
7148
+ var root_6$7 = /* @__PURE__ */ from_html(`<span class="fs-ev-live svelte-mrwdy7" aria-hidden="true"></span>`);
6564
7149
  var root_7$6 = /* @__PURE__ */ from_html(`<span class="fs-ev-next-badge svelte-mrwdy7" aria-hidden="true"> </span>`);
6565
- var root_8$5 = /* @__PURE__ */ from_html(`<span class="fs-ev-time svelte-mrwdy7"> </span>`);
7150
+ var root_8$6 = /* @__PURE__ */ from_html(`<span class="fs-ev-time svelte-mrwdy7"> </span>`);
6566
7151
  var root_9$5 = /* @__PURE__ */ from_html(`<span class="fs-ev-sub svelte-mrwdy7"> </span>`);
6567
7152
  var root_10$5 = /* @__PURE__ */ from_html(`<span class="fs-ev-loc svelte-mrwdy7"> </span>`);
6568
7153
  var root_11$5 = /* @__PURE__ */ from_html(`<span class="fs-ev-tag svelte-mrwdy7"> </span>`);
6569
7154
  var root_12$5 = /* @__PURE__ */ from_html(`<span class="fs-ev-tags svelte-mrwdy7"></span>`);
6570
- var root_13$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="fs-ev-inner svelte-mrwdy7"><!> <!> <span class="fs-ev-title svelte-mrwdy7"> </span> <!> <!> <!></div></div>`);
6571
- var root_14$4 = /* @__PURE__ */ from_html(`<span class="fs-ad-span svelte-mrwdy7"> </span>`);
6572
- var root_15$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="fs-ad-dot svelte-mrwdy7" aria-hidden="true"></span> <span class="fs-ad-title svelte-mrwdy7"> </span> <!></div>`);
6573
- var root_16$4 = /* @__PURE__ */ from_html(`<div class="fs-allday svelte-mrwdy7"></div>`);
6574
- var root_17$3 = /* @__PURE__ */ from_html(`<div role="region"><div role="application"><div class="fs-track svelte-mrwdy7" role="none"><!> <div class="fs-now svelte-mrwdy7"><span class="fs-now-tag svelte-mrwdy7"> <span class="fs-now-sec svelte-mrwdy7"> </span></span> <div class="fs-now-line svelte-mrwdy7"></div></div> <!></div></div> <!></div>`);
7155
+ var root_13$4 = /* @__PURE__ */ from_html(`<!> <span class="fs-ev-title svelte-mrwdy7"> </span> <!> <!> <!>`, 1);
7156
+ var root_14$4 = /* @__PURE__ */ from_html(`<div class="fs-ev-handle fs-ev-handle--start svelte-mrwdy7" aria-hidden="true"></div> <div class="fs-ev-handle fs-ev-handle--end svelte-mrwdy7" aria-hidden="true"></div>`, 1);
7157
+ var root_15$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="fs-ev-inner svelte-mrwdy7"><!> <!></div> <!></div>`);
7158
+ var root_16$4 = /* @__PURE__ */ from_html(`<div class="fs-create-ghost svelte-mrwdy7" aria-hidden="true"><span class="fs-create-ghost-time svelte-mrwdy7"> </span></div>`);
7159
+ var root_17$4 = /* @__PURE__ */ from_html(`<span class="fs-ad-span svelte-mrwdy7"> </span>`);
7160
+ var root_18$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="fs-ad-dot svelte-mrwdy7" aria-hidden="true"></span> <span class="fs-ad-title svelte-mrwdy7"> </span> <!></div>`);
7161
+ var root_19$3 = /* @__PURE__ */ from_html(`<div class="fs-allday svelte-mrwdy7"></div>`);
7162
+ var root_20$2 = /* @__PURE__ */ from_html(`<div role="region"><div role="application"><div class="fs-track svelte-mrwdy7" role="none"><!> <div class="fs-now svelte-mrwdy7"><span class="fs-now-tag svelte-mrwdy7"> <span class="fs-now-sec svelte-mrwdy7"> </span></span> <div class="fs-now-line svelte-mrwdy7"></div></div> <!> <!></div></div> <!></div>`);
6575
7163
  function PlannerDay($$anchor, $$props) {
6576
7164
  push($$props, true);
6577
7165
  const L = /* @__PURE__ */ user_derived(getLabels);
6578
7166
  let height = prop($$props, "height", 3, 520), events = prop($$props, "events", 19, () => []), style = prop($$props, "style", 3, ""), selectedEventId = prop($$props, "selectedEventId", 3, null), readOnly = prop($$props, "readOnly", 3, false);
6579
7167
  const ctx = useCalendarContext();
6580
- const clock = createClock();
7168
+ const clock = createClock(ctx.timezone);
6581
7169
  const drag = /* @__PURE__ */ user_derived(() => ctx.drag);
6582
7170
  const commitDragCtx = /* @__PURE__ */ user_derived(() => ctx.commitDrag);
6583
7171
  const viewState = /* @__PURE__ */ user_derived(() => ctx.viewState);
@@ -6676,7 +7264,7 @@
6676
7264
  });
6677
7265
  const positionedEvents = /* @__PURE__ */ user_derived(() => {
6678
7266
  const now2 = clock.tick;
6679
- const dragP = get(drag)?.active && get(drag).mode === "move" ? get(drag).payload : null;
7267
+ const dragP = get(drag)?.active && (get(drag).mode === "move" || get(drag).mode === "resize-start" || get(drag).mode === "resize-end") ? get(drag).payload : null;
6680
7268
  const staticEvents = [];
6681
7269
  let draggedEv = null;
6682
7270
  for (const ev of get(timedEvents)) {
@@ -6880,13 +7468,16 @@
6880
7468
  const SCROLL_THRESHOLD = 3;
6881
7469
  function onPointerDown(e) {
6882
7470
  if (e.button !== 0) return;
6883
- if (!readOnly()) return;
6884
7471
  if (e.target.closest(".fs-event")) return;
6885
- dragStartX = e.clientX;
6886
- dragScrollStart = el.scrollLeft;
6887
- window.addEventListener("pointermove", onScrollMove);
6888
- window.addEventListener("pointerup", onScrollUp, { once: true });
6889
- window.addEventListener("pointercancel", onScrollUp, { once: true });
7472
+ if (readOnly()) {
7473
+ dragStartX = e.clientX;
7474
+ dragScrollStart = el.scrollLeft;
7475
+ window.addEventListener("pointermove", onScrollMove);
7476
+ window.addEventListener("pointerup", onScrollUp, { once: true });
7477
+ window.addEventListener("pointercancel", onScrollUp, { once: true });
7478
+ return;
7479
+ }
7480
+ onCreatePointerDown(e);
6890
7481
  }
6891
7482
  function onScrollMove(e) {
6892
7483
  const dx = e.clientX - dragStartX;
@@ -6936,6 +7527,65 @@
6936
7527
  }
6937
7528
  }
6938
7529
  }
7530
+ const CREATE_THRESHOLD = 4;
7531
+ let createStartX = 0;
7532
+ let createAnchorMs = 0;
7533
+ let createStarted = false;
7534
+ function trackX(e) {
7535
+ return e.clientX - el.getBoundingClientRect().left + el.scrollLeft;
7536
+ }
7537
+ function onCreatePointerDown(e) {
7538
+ if (!get(drag) || !$$props.oneventcreate) return;
7539
+ createStartX = e.clientX;
7540
+ createAnchorMs = pxToTime(trackX(e));
7541
+ createStarted = false;
7542
+ window.addEventListener("pointermove", onCreateMove);
7543
+ window.addEventListener("pointerup", onCreateUp, { once: true });
7544
+ window.addEventListener("pointercancel", onCreateCancel, { once: true });
7545
+ }
7546
+ function onCreateMove(e) {
7547
+ if (!get(drag)) return;
7548
+ if (!createStarted) {
7549
+ if (Math.abs(e.clientX - createStartX) < CREATE_THRESHOLD) return;
7550
+ if (get(disabledSet).has(sod(createAnchorMs))) return;
7551
+ createStarted = true;
7552
+ wasDragging = true;
7553
+ createAnchorMs = Math.floor(createAnchorMs / get(SNAP_MS)) * get(SNAP_MS);
7554
+ get(drag).beginCreate(new Date(createAnchorMs), new Date(createAnchorMs + get(SNAP_MS)));
7555
+ }
7556
+ const snapped = Math.round(pxToTime(trackX(e)) / get(SNAP_MS)) * get(SNAP_MS);
7557
+ get(drag).updatePointer(new Date(Math.min(createAnchorMs, snapped)), new Date(Math.max(createAnchorMs + get(SNAP_MS), snapped)));
7558
+ }
7559
+ function cleanupCreateDrag() {
7560
+ window.removeEventListener("pointermove", onCreateMove);
7561
+ window.removeEventListener("pointerup", onCreateUp);
7562
+ window.removeEventListener("pointercancel", onCreateCancel);
7563
+ createStarted = false;
7564
+ }
7565
+ function onCreateUp() {
7566
+ if (get(drag) && createStarted) {
7567
+ get(commitDragCtx)?.();
7568
+ setTimeout(
7569
+ () => {
7570
+ wasDragging = false;
7571
+ },
7572
+ 0
7573
+ );
7574
+ }
7575
+ cleanupCreateDrag();
7576
+ }
7577
+ function onCreateCancel() {
7578
+ if (get(drag) && createStarted) {
7579
+ get(drag).cancel();
7580
+ setTimeout(
7581
+ () => {
7582
+ wasDragging = false;
7583
+ },
7584
+ 0
7585
+ );
7586
+ }
7587
+ cleanupCreateDrag();
7588
+ }
6939
7589
  const DRAG_THRESHOLD = 5;
6940
7590
  let evDragStartX = 0;
6941
7591
  let evDragOriginPx = 0;
@@ -6992,7 +7642,65 @@
6992
7642
  if (get(drag) && evDragStarted) get(drag).cancel();
6993
7643
  cleanupEvDrag();
6994
7644
  }
6995
- var div = root_17$3();
7645
+ let rsStartX = 0;
7646
+ let rsStarted = false;
7647
+ let rsEdge = "end";
7648
+ let rsEvent = null;
7649
+ function onResizePointerDown(e, ev, edge) {
7650
+ if (e.button !== 0 || !get(drag) || readOnly() || ev.data?.readOnly) return;
7651
+ e.stopPropagation();
7652
+ rsStartX = e.clientX;
7653
+ rsStarted = false;
7654
+ rsEdge = edge;
7655
+ rsEvent = ev;
7656
+ window.addEventListener("pointermove", onResizeMove);
7657
+ window.addEventListener("pointerup", onResizeUp, { once: true });
7658
+ window.addEventListener("pointercancel", onResizeCancel, { once: true });
7659
+ }
7660
+ function onResizeMove(e) {
7661
+ const ev = rsEvent;
7662
+ if (!get(drag) || !ev) return;
7663
+ if (!rsStarted) {
7664
+ if (Math.abs(e.clientX - rsStartX) < CREATE_THRESHOLD) return;
7665
+ rsStarted = true;
7666
+ get(drag).beginResize(ev.id, rsEdge, ev.start, ev.end);
7667
+ }
7668
+ const snapped = Math.round(pxToTime(trackX(e)) / get(SNAP_MS)) * get(SNAP_MS);
7669
+ if (rsEdge === "end") {
7670
+ const end = Math.max(snapped, ev.start.getTime() + get(SNAP_MS));
7671
+ get(drag).updatePointer(ev.start, new Date(end));
7672
+ } else {
7673
+ const start = Math.min(snapped, ev.end.getTime() - get(SNAP_MS));
7674
+ get(drag).updatePointer(new Date(start), ev.end);
7675
+ }
7676
+ }
7677
+ function cleanupResize() {
7678
+ window.removeEventListener("pointermove", onResizeMove);
7679
+ window.removeEventListener("pointerup", onResizeUp);
7680
+ window.removeEventListener("pointercancel", onResizeCancel);
7681
+ rsStarted = false;
7682
+ rsEvent = null;
7683
+ }
7684
+ function onResizeUp() {
7685
+ if (get(drag) && rsStarted) {
7686
+ wasDragging = true;
7687
+ get(commitDragCtx)?.();
7688
+ setTimeout(
7689
+ () => {
7690
+ wasDragging = false;
7691
+ },
7692
+ 0
7693
+ );
7694
+ } else if (rsEvent && !rsStarted) {
7695
+ $$props.oneventclick?.(rsEvent);
7696
+ }
7697
+ cleanupResize();
7698
+ }
7699
+ function onResizeCancel() {
7700
+ if (get(drag) && rsStarted) get(drag).cancel();
7701
+ cleanupResize();
7702
+ }
7703
+ var div = root_20$2();
6996
7704
  let classes;
6997
7705
  let styles;
6998
7706
  var div_1 = child(div);
@@ -7001,14 +7709,14 @@
7001
7709
  let styles_1;
7002
7710
  var node = child(div_2);
7003
7711
  each(node, 17, () => get(days), (d) => d.ms, ($$anchor2, d) => {
7004
- var div_3 = root_5$6();
7712
+ var div_3 = root_5$7();
7005
7713
  let classes_2;
7006
7714
  let styles_2;
7007
7715
  var node_1 = child(div_3);
7008
7716
  each(node_1, 17, () => ({ length: get(hourCount) }), index, ($$anchor3, _, h) => {
7009
7717
  const hour = /* @__PURE__ */ user_derived(() => get(startHour) + h);
7010
7718
  const x = /* @__PURE__ */ user_derived(() => h * get(hourWidth));
7011
- var fragment = root_1$6();
7719
+ var fragment = root_1$7();
7012
7720
  var div_4 = first_child(fragment);
7013
7721
  let styles_3;
7014
7722
  var span = child(div_4);
@@ -7045,12 +7753,12 @@
7045
7753
  var node_5 = first_child(fragment_3);
7046
7754
  {
7047
7755
  var consequent_1 = ($$anchor6) => {
7048
- var div_6 = root_3$6();
7756
+ var div_6 = root_3$7();
7049
7757
  let styles_5;
7050
7758
  var node_6 = child(div_6);
7051
7759
  {
7052
7760
  var consequent = ($$anchor7) => {
7053
- var span_1 = root_2$6();
7761
+ var span_1 = root_2$7();
7054
7762
  var text_1 = child(span_1, true);
7055
7763
  reset(span_1);
7056
7764
  template_effect(() => set_text(text_1, get(slot).label));
@@ -7091,7 +7799,7 @@
7091
7799
  var node_7 = sibling(node_2, 2);
7092
7800
  {
7093
7801
  var consequent_4 = ($$anchor3) => {
7094
- var div_7 = root_4$6();
7802
+ var div_7 = root_4$7();
7095
7803
  var node_8 = child(div_7);
7096
7804
  {
7097
7805
  let $0 = /* @__PURE__ */ user_derived(() => ({
@@ -7139,14 +7847,14 @@
7139
7847
  reset(div_8);
7140
7848
  var node_9 = sibling(div_8, 2);
7141
7849
  each(node_9, 17, () => get(positionedEvents), (p) => p.ev.id, ($$anchor2, p) => {
7142
- var div_9 = root_13$4();
7850
+ var div_9 = root_15$4();
7143
7851
  let classes_3;
7144
7852
  let styles_7;
7145
7853
  var div_10 = child(div_9);
7146
7854
  var node_10 = child(div_10);
7147
7855
  {
7148
7856
  var consequent_5 = ($$anchor3) => {
7149
- var span_4 = root_6$6();
7857
+ var span_4 = root_6$7();
7150
7858
  append($$anchor3, span_4);
7151
7859
  };
7152
7860
  var consequent_6 = ($$anchor3) => {
@@ -7162,69 +7870,95 @@
7162
7870
  });
7163
7871
  }
7164
7872
  var node_11 = sibling(node_10, 2);
7873
+ EventContent(node_11, {
7874
+ get event() {
7875
+ return get(p).ev;
7876
+ },
7877
+ children: ($$anchor3, $$slotProps) => {
7878
+ var fragment_4 = root_13$4();
7879
+ var node_12 = first_child(fragment_4);
7880
+ {
7881
+ var consequent_7 = ($$anchor4) => {
7882
+ var span_6 = root_8$6();
7883
+ var text_5 = child(span_6);
7884
+ reset(span_6);
7885
+ template_effect(($0, $1) => set_text(text_5, `${$0 ?? ""} – ${$1 ?? ""}`), [
7886
+ () => fmtTime$1(get(p).ev.start, $$props.locale),
7887
+ () => fmtTime$1(get(p).ev.end, $$props.locale)
7888
+ ]);
7889
+ append($$anchor4, span_6);
7890
+ };
7891
+ if_block(node_12, ($$render) => {
7892
+ if (get(p).fit.time) $$render(consequent_7);
7893
+ });
7894
+ }
7895
+ var span_7 = sibling(node_12, 2);
7896
+ var text_6 = child(span_7, true);
7897
+ reset(span_7);
7898
+ var node_13 = sibling(span_7, 2);
7899
+ {
7900
+ var consequent_8 = ($$anchor4) => {
7901
+ var span_8 = root_9$5();
7902
+ var text_7 = child(span_8, true);
7903
+ reset(span_8);
7904
+ template_effect(() => set_text(text_7, get(p).ev.subtitle));
7905
+ append($$anchor4, span_8);
7906
+ };
7907
+ if_block(node_13, ($$render) => {
7908
+ if (get(p).ev.subtitle && get(p).fit.subtitle) $$render(consequent_8);
7909
+ });
7910
+ }
7911
+ var node_14 = sibling(node_13, 2);
7912
+ {
7913
+ var consequent_9 = ($$anchor4) => {
7914
+ var span_9 = root_10$5();
7915
+ var text_8 = child(span_9, true);
7916
+ reset(span_9);
7917
+ template_effect(() => set_text(text_8, get(p).ev.location));
7918
+ append($$anchor4, span_9);
7919
+ };
7920
+ if_block(node_14, ($$render) => {
7921
+ if (get(p).ev.location && get(p).fit.location) $$render(consequent_9);
7922
+ });
7923
+ }
7924
+ var node_15 = sibling(node_14, 2);
7925
+ {
7926
+ var consequent_10 = ($$anchor4) => {
7927
+ var span_10 = root_12$5();
7928
+ each(span_10, 21, () => get(p).ev.tags, index, ($$anchor5, tag) => {
7929
+ var span_11 = root_11$5();
7930
+ var text_9 = child(span_11, true);
7931
+ reset(span_11);
7932
+ template_effect(() => set_text(text_9, get(tag)));
7933
+ append($$anchor5, span_11);
7934
+ });
7935
+ reset(span_10);
7936
+ append($$anchor4, span_10);
7937
+ };
7938
+ if_block(node_15, ($$render) => {
7939
+ if (get(p).ev.tags?.length && get(p).fit.tags) $$render(consequent_10);
7940
+ });
7941
+ }
7942
+ template_effect(() => set_text(text_6, get(p).ev.title));
7943
+ append($$anchor3, fragment_4);
7944
+ },
7945
+ $$slots: { default: true }
7946
+ });
7947
+ reset(div_10);
7948
+ var node_16 = sibling(div_10, 2);
7165
7949
  {
7166
- var consequent_7 = ($$anchor3) => {
7167
- var span_6 = root_8$5();
7168
- var text_5 = child(span_6);
7169
- reset(span_6);
7170
- template_effect(($0, $1) => set_text(text_5, `${$0 ?? ""} – ${$1 ?? ""}`), [
7171
- () => fmtTime$1(get(p).ev.start, $$props.locale),
7172
- () => fmtTime$1(get(p).ev.end, $$props.locale)
7173
- ]);
7174
- append($$anchor3, span_6);
7175
- };
7176
- if_block(node_11, ($$render) => {
7177
- if (get(p).fit.time) $$render(consequent_7);
7178
- });
7179
- }
7180
- var span_7 = sibling(node_11, 2);
7181
- var text_6 = child(span_7, true);
7182
- reset(span_7);
7183
- var node_12 = sibling(span_7, 2);
7184
- {
7185
- var consequent_8 = ($$anchor3) => {
7186
- var span_8 = root_9$5();
7187
- var text_7 = child(span_8, true);
7188
- reset(span_8);
7189
- template_effect(() => set_text(text_7, get(p).ev.subtitle));
7190
- append($$anchor3, span_8);
7191
- };
7192
- if_block(node_12, ($$render) => {
7193
- if (get(p).ev.subtitle && get(p).fit.subtitle) $$render(consequent_8);
7194
- });
7195
- }
7196
- var node_13 = sibling(node_12, 2);
7197
- {
7198
- var consequent_9 = ($$anchor3) => {
7199
- var span_9 = root_10$5();
7200
- var text_8 = child(span_9, true);
7201
- reset(span_9);
7202
- template_effect(() => set_text(text_8, get(p).ev.location));
7203
- append($$anchor3, span_9);
7204
- };
7205
- if_block(node_13, ($$render) => {
7206
- if (get(p).ev.location && get(p).fit.location) $$render(consequent_9);
7207
- });
7208
- }
7209
- var node_14 = sibling(node_13, 2);
7210
- {
7211
- var consequent_10 = ($$anchor3) => {
7212
- var span_10 = root_12$5();
7213
- each(span_10, 21, () => get(p).ev.tags, index, ($$anchor4, tag) => {
7214
- var span_11 = root_11$5();
7215
- var text_9 = child(span_11, true);
7216
- reset(span_11);
7217
- template_effect(() => set_text(text_9, get(tag)));
7218
- append($$anchor4, span_11);
7219
- });
7220
- reset(span_10);
7221
- append($$anchor3, span_10);
7950
+ var consequent_11 = ($$anchor3) => {
7951
+ var fragment_5 = root_14$4();
7952
+ var div_11 = first_child(fragment_5);
7953
+ var div_12 = sibling(div_11, 2);
7954
+ delegated("pointerdown", div_11, (e) => onResizePointerDown(e, get(p).ev, "start"));
7955
+ delegated("pointerdown", div_12, (e) => onResizePointerDown(e, get(p).ev, "end"));
7956
+ append($$anchor3, fragment_5);
7222
7957
  };
7223
- if_block(node_14, ($$render) => {
7224
- if (get(p).ev.tags?.length && get(p).fit.tags) $$render(consequent_10);
7958
+ if_block(node_16, ($$render) => {
7959
+ if (!readOnly() && !get(p).ev.data?.readOnly && !get(p).isDragged) $$render(consequent_11);
7225
7960
  });
7226
7961
  }
7227
- reset(div_10);
7228
7962
  reset(div_9);
7229
7963
  template_effect(() => {
7230
7964
  classes_3 = set_class(div_9, 1, "fs-event svelte-mrwdy7", null, classes_3, {
@@ -7232,6 +7966,7 @@
7232
7966
  "fs-event--current": get(p).isCurrent,
7233
7967
  "fs-event--next": get(p).isNext,
7234
7968
  "fs-event--dragging": get(p).isDragged,
7969
+ "fs-event--resizing": get(p).isDragged && get(drag)?.mode !== "move",
7235
7970
  "fs-event--readonly": get(p).ev.data?.readOnly,
7236
7971
  "fs-event--cancelled": get(p).ev.status === "cancelled",
7237
7972
  "fs-event--tentative": get(p).ev.status === "tentative",
@@ -7247,7 +7982,6 @@
7247
7982
  height: `${get(p).heightPx ?? ""}px`,
7248
7983
  "--ev-color": get(p).ev.color ?? "var(--dt-accent)"
7249
7984
  });
7250
- set_text(text_6, get(p).ev.title);
7251
7985
  });
7252
7986
  delegated("pointerdown", div_9, (e) => onEventPointerDown(e, get(p).ev));
7253
7987
  event("pointerenter", div_9, () => get(oneventhover)?.(get(p).ev));
@@ -7259,71 +7993,104 @@
7259
7993
  });
7260
7994
  append($$anchor2, div_9);
7261
7995
  });
7996
+ var node_17 = sibling(node_9, 2);
7997
+ {
7998
+ var consequent_12 = ($$anchor2) => {
7999
+ const gx = /* @__PURE__ */ user_derived(() => timeToPx(get(drag).payload.start.getTime()));
8000
+ const gw = /* @__PURE__ */ user_derived(() => Math.max(timeToPx(get(drag).payload.end.getTime()) - get(gx), 8));
8001
+ const gh = /* @__PURE__ */ user_derived(() => Math.max(MIN_EVENT_H, get(containerH) - get(contentTop) - 8 - EVENT_GAP));
8002
+ var div_13 = root_16$4();
8003
+ let styles_8;
8004
+ var span_12 = child(div_13);
8005
+ var text_10 = child(span_12);
8006
+ reset(span_12);
8007
+ reset(div_13);
8008
+ template_effect(
8009
+ ($0, $1) => {
8010
+ styles_8 = set_style(div_13, "", styles_8, {
8011
+ left: `${get(gx) ?? ""}px`,
8012
+ width: `${get(gw) ?? ""}px`,
8013
+ top: `${get(contentTop) ?? ""}px`,
8014
+ height: `${get(gh) ?? ""}px`
8015
+ });
8016
+ set_text(text_10, `${$0 ?? ""} – ${$1 ?? ""}`);
8017
+ },
8018
+ [
8019
+ () => fmtTime$1(get(drag).payload.start, $$props.locale),
8020
+ () => fmtTime$1(get(drag).payload.end, $$props.locale)
8021
+ ]
8022
+ );
8023
+ append($$anchor2, div_13);
8024
+ };
8025
+ if_block(node_17, ($$render) => {
8026
+ if (!readOnly() && get(drag)?.active && get(drag).mode === "create" && get(drag).payload) $$render(consequent_12);
8027
+ });
8028
+ }
7262
8029
  reset(div_2);
7263
8030
  reset(div_1);
7264
8031
  bind_this(div_1, ($$value) => el = $$value, () => el);
7265
- var node_15 = sibling(div_1, 2);
8032
+ var node_18 = sibling(div_1, 2);
7266
8033
  {
7267
- var consequent_12 = ($$anchor2) => {
7268
- var div_11 = root_16$4();
7269
- set_style(div_11, "", {}, { top: "56px" });
7270
- each(div_11, 21, () => get(allDayEvents), (seg) => seg.ev.id, ($$anchor3, seg) => {
7271
- var div_12 = root_15$4();
8034
+ var consequent_14 = ($$anchor2) => {
8035
+ var div_14 = root_19$3();
8036
+ set_style(div_14, "", {}, { top: "56px" });
8037
+ each(div_14, 21, () => get(allDayEvents), (seg) => seg.ev.id, ($$anchor3, seg) => {
8038
+ var div_15 = root_18$4();
7272
8039
  let classes_4;
7273
- let styles_8;
7274
- var span_12 = sibling(child(div_12), 2);
7275
- var text_10 = child(span_12, true);
7276
- reset(span_12);
7277
- var node_16 = sibling(span_12, 2);
8040
+ let styles_9;
8041
+ var span_13 = sibling(child(div_15), 2);
8042
+ var text_11 = child(span_13, true);
8043
+ reset(span_13);
8044
+ var node_19 = sibling(span_13, 2);
7278
8045
  {
7279
- var consequent_11 = ($$anchor4) => {
7280
- var span_13 = root_14$4();
7281
- var text_11 = child(span_13);
7282
- reset(span_13);
7283
- template_effect(() => set_text(text_11, `${get(L).day ?? ""} ${get(seg).dayIndex ?? ""}/${get(seg).totalDays ?? ""}`));
7284
- append($$anchor4, span_13);
7285
- };
7286
- var alternate = ($$anchor4) => {
7287
- var span_14 = root_14$4();
7288
- var text_12 = child(span_14, true);
8046
+ var consequent_13 = ($$anchor4) => {
8047
+ var span_14 = root_17$4();
8048
+ var text_12 = child(span_14);
7289
8049
  reset(span_14);
7290
- template_effect(() => set_text(text_12, get(L).allDay));
8050
+ template_effect(() => set_text(text_12, `${get(L).day ?? ""} ${get(seg).dayIndex ?? ""}/${get(seg).totalDays ?? ""}`));
7291
8051
  append($$anchor4, span_14);
7292
8052
  };
7293
- if_block(node_16, ($$render) => {
7294
- if (get(seg).totalDays > 1) $$render(consequent_11);
8053
+ var alternate = ($$anchor4) => {
8054
+ var span_15 = root_17$4();
8055
+ var text_13 = child(span_15, true);
8056
+ reset(span_15);
8057
+ template_effect(() => set_text(text_13, get(L).allDay));
8058
+ append($$anchor4, span_15);
8059
+ };
8060
+ if_block(node_19, ($$render) => {
8061
+ if (get(seg).totalDays > 1) $$render(consequent_13);
7295
8062
  else $$render(alternate, -1);
7296
8063
  });
7297
8064
  }
7298
- reset(div_12);
8065
+ reset(div_15);
7299
8066
  template_effect(
7300
8067
  ($0) => {
7301
- classes_4 = set_class(div_12, 1, "fs-ad svelte-mrwdy7", null, classes_4, {
8068
+ classes_4 = set_class(div_15, 1, "fs-ad svelte-mrwdy7", null, classes_4, {
7302
8069
  "fs-ad--start": get(seg).isStart,
7303
8070
  "fs-ad--selected": selectedEventId() === get(seg).ev.id
7304
8071
  });
7305
- set_attribute(div_12, "aria-label", `${get(seg).ev.title ?? ""}${$0 ?? ""}`);
7306
- styles_8 = set_style(div_12, "", styles_8, { "--ev-color": get(seg).ev.color ?? "var(--dt-accent)" });
7307
- set_text(text_10, get(seg).ev.title);
8072
+ set_attribute(div_15, "aria-label", `${get(seg).ev.title ?? ""}${$0 ?? ""}`);
8073
+ styles_9 = set_style(div_15, "", styles_9, { "--ev-color": get(seg).ev.color ?? "var(--dt-accent)" });
8074
+ set_text(text_11, get(seg).ev.title);
7308
8075
  },
7309
8076
  [
7310
8077
  () => get(seg).totalDays > 1 ? `, ${get(L).dayNOfTotal(get(seg).dayIndex, get(seg).totalDays)}` : `, ${get(L).allDay}`
7311
8078
  ]
7312
8079
  );
7313
- delegated("click", div_12, () => $$props.oneventclick?.(get(seg).ev));
7314
- delegated("keydown", div_12, (e) => {
8080
+ delegated("click", div_15, () => $$props.oneventclick?.(get(seg).ev));
8081
+ delegated("keydown", div_15, (e) => {
7315
8082
  if (e.key === "Enter" || e.key === " ") {
7316
8083
  e.preventDefault();
7317
8084
  $$props.oneventclick?.(get(seg).ev);
7318
8085
  }
7319
8086
  });
7320
- append($$anchor3, div_12);
8087
+ append($$anchor3, div_15);
7321
8088
  });
7322
- reset(div_11);
7323
- append($$anchor2, div_11);
8089
+ reset(div_14);
8090
+ append($$anchor2, div_14);
7324
8091
  };
7325
- if_block(node_15, ($$render) => {
7326
- if (get(allDayEvents).length > 0) $$render(consequent_12);
8092
+ if_block(node_18, ($$render) => {
8093
+ if (get(allDayEvents).length > 0) $$render(consequent_14);
7327
8094
  });
7328
8095
  }
7329
8096
  reset(div);
@@ -7409,18 +8176,18 @@
7409
8176
  "(prefers-reduced-motion: reduce)"
7410
8177
  );
7411
8178
  const allDaySegmentContent = ($$anchor, seg = noop) => {
7412
- var fragment = root_3$5();
8179
+ var fragment = root_3$6();
7413
8180
  var node = first_child(fragment);
7414
8181
  {
7415
8182
  var consequent = ($$anchor2) => {
7416
- var span = root$4();
8183
+ var span = root$5();
7417
8184
  var text2 = child(span, true);
7418
8185
  reset(span);
7419
8186
  template_effect(() => set_text(text2, seg().ev.title));
7420
8187
  append($$anchor2, span);
7421
8188
  };
7422
8189
  var alternate = ($$anchor2) => {
7423
- var fragment_1 = root_1$5();
8190
+ var fragment_1 = root_1$6();
7424
8191
  var span_1 = sibling(first_child(fragment_1), 2);
7425
8192
  var text_1 = child(span_1, true);
7426
8193
  reset(span_1);
@@ -7435,7 +8202,7 @@
7435
8202
  var node_1 = sibling(node, 2);
7436
8203
  {
7437
8204
  var consequent_1 = ($$anchor2) => {
7438
- var span_2 = root_2$5();
8205
+ var span_2 = root_2$6();
7439
8206
  append($$anchor2, span_2);
7440
8207
  };
7441
8208
  if_block(node_1, ($$render) => {
@@ -7444,15 +8211,15 @@
7444
8211
  }
7445
8212
  append($$anchor, fragment);
7446
8213
  };
7447
- var root$4 = /* @__PURE__ */ from_html(`<span class="wg-ad-title svelte-j4rvbp"> </span>`);
7448
- var root_1$5 = /* @__PURE__ */ from_html(`<span class="wg-ad-cont svelte-j4rvbp" aria-hidden="true">◂</span> <span class="wg-ad-title svelte-j4rvbp"> </span>`, 1);
7449
- var root_2$5 = /* @__PURE__ */ from_html(`<span class="wg-ad-arrow svelte-j4rvbp" aria-hidden="true">▸</span>`);
7450
- var root_3$5 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
7451
- var root_4$5 = /* @__PURE__ */ from_html(`<span class="wg-ev-loc svelte-j4rvbp"> </span>`);
7452
- var root_5$5 = /* @__PURE__ */ from_html(`<span class="wg-ev-time svelte-j4rvbp"> </span> <span class="wg-ev-title svelte-j4rvbp"> </span> <!>`, 1);
7453
- var root_6$5 = /* @__PURE__ */ from_html(`<span> </span>`);
8214
+ var root$5 = /* @__PURE__ */ from_html(`<span class="wg-ad-title svelte-j4rvbp"> </span>`);
8215
+ var root_1$6 = /* @__PURE__ */ from_html(`<span class="wg-ad-cont svelte-j4rvbp" aria-hidden="true">◂</span> <span class="wg-ad-title svelte-j4rvbp"> </span>`, 1);
8216
+ var root_2$6 = /* @__PURE__ */ from_html(`<span class="wg-ad-arrow svelte-j4rvbp" aria-hidden="true">▸</span>`);
8217
+ var root_3$6 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
8218
+ var root_4$6 = /* @__PURE__ */ from_html(`<span class="wg-ev-loc svelte-j4rvbp"> </span>`);
8219
+ var root_5$6 = /* @__PURE__ */ from_html(`<span class="wg-ev-time svelte-j4rvbp"> </span> <span class="wg-ev-title svelte-j4rvbp"> </span> <!>`, 1);
8220
+ var root_6$6 = /* @__PURE__ */ from_html(`<span> </span>`);
7454
8221
  var root_7$5 = /* @__PURE__ */ from_html(`<span class="wg-cell-month svelte-j4rvbp"> </span>`);
7455
- var root_8$4 = /* @__PURE__ */ from_html(`<div class="wg-cell-custom-header svelte-j4rvbp"><!></div>`);
8222
+ var root_8$5 = /* @__PURE__ */ from_html(`<div class="wg-cell-custom-header svelte-j4rvbp"><!></div>`);
7456
8223
  var root_9$4 = /* @__PURE__ */ from_html(`<span class="wg-blocked-label svelte-j4rvbp"> </span>`);
7457
8224
  var root_10$4 = /* @__PURE__ */ from_html(`<div class="wg-blocked svelte-j4rvbp"><!></div>`);
7458
8225
  var root_11$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><!></div>`);
@@ -7461,44 +8228,52 @@
7461
8228
  var root_14$3 = /* @__PURE__ */ from_html(`<div class="wg-ev wg-ev--drag-preview svelte-j4rvbp" aria-hidden="true"><!></div>`);
7462
8229
  var root_15$3 = /* @__PURE__ */ from_html(`<div class="wg-ev-more svelte-j4rvbp"> </div>`);
7463
8230
  var root_16$3 = /* @__PURE__ */ from_html(`<div role="gridcell" tabindex="0"><div><!> <span class="wg-day-wd svelte-j4rvbp"> </span></div> <!> <!> <!> <!> <div class="wg-cell-events svelte-j4rvbp"><!> <!> <!></div></div>`);
7464
- var root_17$2 = /* @__PURE__ */ from_html(`<div><div class="wg-week-body svelte-j4rvbp"><div class="wg-days svelte-j4rvbp"></div></div></div>`);
7465
- var root_18$2 = /* @__PURE__ */ from_html(`<div><div class="wg-body svelte-j4rvbp" role="grid"></div></div>`);
8231
+ var root_17$3 = /* @__PURE__ */ from_html(`<div><div class="wg-week-body svelte-j4rvbp"><div class="wg-days svelte-j4rvbp"></div></div></div>`);
8232
+ var root_18$3 = /* @__PURE__ */ from_html(`<div><div class="wg-body svelte-j4rvbp" role="grid"></div></div>`);
7466
8233
  function PlannerWeek($$anchor, $$props) {
7467
8234
  push($$props, true);
7468
8235
  const timedEventContent = ($$anchor2, ev = noop) => {
7469
- var fragment_2 = root_5$5();
7470
- var span_3 = first_child(fragment_2);
7471
- var text_2 = child(span_3, true);
7472
- reset(span_3);
7473
- var span_4 = sibling(span_3, 2);
7474
- var text_3 = child(span_4, true);
7475
- reset(span_4);
7476
- var node_2 = sibling(span_4, 2);
7477
- {
7478
- var consequent_2 = ($$anchor3) => {
7479
- var span_5 = root_4$5();
7480
- var text_4 = child(span_5, true);
7481
- reset(span_5);
7482
- template_effect(() => set_text(text_4, ev().location));
7483
- append($$anchor3, span_5);
7484
- };
7485
- if_block(node_2, ($$render) => {
7486
- if (ev().location) $$render(consequent_2);
7487
- });
7488
- }
7489
- template_effect(
7490
- ($0) => {
7491
- set_text(text_2, $0);
7492
- set_text(text_3, ev().title);
8236
+ EventContent($$anchor2, {
8237
+ get event() {
8238
+ return ev();
7493
8239
  },
7494
- [() => fmtAmPm(ev().start)]
7495
- );
7496
- append($$anchor2, fragment_2);
8240
+ children: ($$anchor3, $$slotProps) => {
8241
+ var fragment_3 = root_5$6();
8242
+ var span_3 = first_child(fragment_3);
8243
+ var text_2 = child(span_3, true);
8244
+ reset(span_3);
8245
+ var span_4 = sibling(span_3, 2);
8246
+ var text_3 = child(span_4, true);
8247
+ reset(span_4);
8248
+ var node_2 = sibling(span_4, 2);
8249
+ {
8250
+ var consequent_2 = ($$anchor4) => {
8251
+ var span_5 = root_4$6();
8252
+ var text_4 = child(span_5, true);
8253
+ reset(span_5);
8254
+ template_effect(() => set_text(text_4, ev().location));
8255
+ append($$anchor4, span_5);
8256
+ };
8257
+ if_block(node_2, ($$render) => {
8258
+ if (ev().location) $$render(consequent_2);
8259
+ });
8260
+ }
8261
+ template_effect(
8262
+ ($0) => {
8263
+ set_text(text_2, $0);
8264
+ set_text(text_3, ev().title);
8265
+ },
8266
+ [() => fmtAmPm(ev().start)]
8267
+ );
8268
+ append($$anchor3, fragment_3);
8269
+ },
8270
+ $$slots: { default: true }
8271
+ });
7497
8272
  };
7498
8273
  const L = /* @__PURE__ */ user_derived(getLabels);
7499
8274
  let mondayStart = prop($$props, "mondayStart", 3, true), height = prop($$props, "height", 3, 520), events = prop($$props, "events", 19, () => []), style = prop($$props, "style", 3, ""), selectedEventId = prop($$props, "selectedEventId", 3, null), readOnly = prop($$props, "readOnly", 3, false);
7500
8275
  const ctx = useCalendarContext();
7501
- const clock = createClock();
8276
+ const clock = createClock(ctx.timezone);
7502
8277
  const ANIM = /* @__PURE__ */ user_derived(() => prefersReducedMotion.current ? 0 : 180);
7503
8278
  const [previewSend, previewReceive] = crossfade({ duration: () => prefersReducedMotion.current ? 0 : 160 });
7504
8279
  const drag = /* @__PURE__ */ user_derived(() => ctx.drag);
@@ -7767,12 +8542,12 @@
7767
8542
  if (get(drag) && evDragStarted) get(drag).cancel();
7768
8543
  cleanupEvDrag();
7769
8544
  }
7770
- var div = root_18$2();
8545
+ var div = root_18$3();
7771
8546
  let classes;
7772
8547
  let styles;
7773
8548
  var div_1 = child(div);
7774
8549
  each(div_1, 21, () => get(weeks), (week) => week.weekStart, ($$anchor2, week) => {
7775
- var div_2 = root_17$2();
8550
+ var div_2 = root_17$3();
7776
8551
  let classes_1;
7777
8552
  var div_3 = child(div_2);
7778
8553
  var div_4 = child(div_3);
@@ -7788,7 +8563,7 @@
7788
8563
  var node_3 = child(div_6);
7789
8564
  {
7790
8565
  var consequent_3 = ($$anchor4) => {
7791
- var span_6 = root_6$5();
8566
+ var span_6 = root_6$6();
7792
8567
  let classes_4;
7793
8568
  var text_5 = child(span_6, true);
7794
8569
  reset(span_6);
@@ -7822,7 +8597,7 @@
7822
8597
  var node_5 = sibling(node_4, 2);
7823
8598
  {
7824
8599
  var consequent_5 = ($$anchor4) => {
7825
- var div_7 = root_8$4();
8600
+ var div_7 = root_8$5();
7826
8601
  var node_6 = child(div_7);
7827
8602
  {
7828
8603
  let $0 = /* @__PURE__ */ user_derived(() => ({
@@ -7844,11 +8619,11 @@
7844
8619
  var consequent_8 = ($$anchor4) => {
7845
8620
  const jsDay = /* @__PURE__ */ user_derived(() => new Date(get(day).ms).getDay());
7846
8621
  const isoDay = /* @__PURE__ */ user_derived(() => get(jsDay) === 0 ? 7 : get(jsDay));
7847
- var fragment_3 = comment();
7848
- var node_8 = first_child(fragment_3);
8622
+ var fragment_4 = comment();
8623
+ var node_8 = first_child(fragment_4);
7849
8624
  each(node_8, 17, () => get(blockedSlots), index, ($$anchor5, slot) => {
7850
- var fragment_4 = comment();
7851
- var node_9 = first_child(fragment_4);
8625
+ var fragment_5 = comment();
8626
+ var node_9 = first_child(fragment_5);
7852
8627
  {
7853
8628
  var consequent_7 = ($$anchor6) => {
7854
8629
  var div_8 = root_10$4();
@@ -7873,9 +8648,9 @@
7873
8648
  if (!get(slot).day || get(slot).day === get(isoDay)) $$render(consequent_7);
7874
8649
  });
7875
8650
  }
7876
- append($$anchor5, fragment_4);
8651
+ append($$anchor5, fragment_5);
7877
8652
  });
7878
- append($$anchor4, fragment_3);
8653
+ append($$anchor4, fragment_4);
7879
8654
  };
7880
8655
  if_block(node_7, ($$render) => {
7881
8656
  if (get(blockedSlots)?.length) $$render(consequent_8);
@@ -8147,34 +8922,41 @@
8147
8922
  }
8148
8923
  return slots;
8149
8924
  }
8150
- var root$3 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-allday-dot svelte-n8lbn1"></span> <span class="ag-allday-title svelte-n8lbn1"> </span></div>`);
8151
- var root_1$4 = /* @__PURE__ */ from_html(`<div class="ag-allday svelte-n8lbn1"><div class="ag-allday-label svelte-n8lbn1"> </div> <div class="ag-allday-items svelte-n8lbn1"></div></div>`);
8152
- var root_2$4 = /* @__PURE__ */ from_html(`<div class="ag-q-empty svelte-n8lbn1"> </div>`);
8153
- var root_3$4 = /* @__PURE__ */ from_html(`<span class="ag-compact-row-sub svelte-n8lbn1"> </span>`);
8154
- var root_4$4 = /* @__PURE__ */ from_html(`<span class="ag-compact-row-tag svelte-n8lbn1"> </span>`);
8155
- var root_5$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-compact-row-dot svelte-n8lbn1"></span> <span class="ag-compact-row-time svelte-n8lbn1"> </span> <span class="ag-compact-row-title svelte-n8lbn1"> </span> <!> <!> <span class="ag-compact-row-dur svelte-n8lbn1"> </span></div>`);
8156
- var root_6$4 = /* @__PURE__ */ from_html(`<div class="ag-compact-list svelte-n8lbn1"><!></div>`);
8157
- var root_7$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-q-done-check svelte-n8lbn1">✓</span> <span class="ag-q-done-title svelte-n8lbn1"> </span></div>`);
8158
- var root_8$3 = /* @__PURE__ */ from_html(`<div class="ag-q-done-section svelte-n8lbn1"><div class="ag-q-label svelte-n8lbn1"> </div> <!></div>`);
8159
- var root_9$3 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="ag-q-now-dot svelte-n8lbn1"></div> <div class="ag-q-now-title svelte-n8lbn1"> </div> <div class="ag-q-now-time svelte-n8lbn1"> </div> <div class="ag-q-now-track svelte-n8lbn1"><div class="ag-q-now-fill svelte-n8lbn1"></div></div></div>`);
8925
+ var root$4 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-allday-dot svelte-n8lbn1"></span> <span class="ag-allday-title svelte-n8lbn1"> </span></div>`);
8926
+ var root_1$5 = /* @__PURE__ */ from_html(`<div class="ag-allday svelte-n8lbn1"><div class="ag-allday-label svelte-n8lbn1"> </div> <div class="ag-allday-items svelte-n8lbn1"></div></div>`);
8927
+ var root_2$5 = /* @__PURE__ */ from_html(`<div class="ag-q-empty svelte-n8lbn1"><!></div>`);
8928
+ var root_3$5 = /* @__PURE__ */ from_html(`<span class="ag-compact-row-sub svelte-n8lbn1"> </span>`);
8929
+ var root_4$5 = /* @__PURE__ */ from_html(`<span class="ag-compact-row-tag svelte-n8lbn1"> </span>`);
8930
+ var root_5$5 = /* @__PURE__ */ from_html(`<span class="ag-compact-row-dot svelte-n8lbn1"></span> <span class="ag-compact-row-time svelte-n8lbn1"> </span> <span class="ag-compact-row-title svelte-n8lbn1"> </span> <!> <!> <span class="ag-compact-row-dur svelte-n8lbn1"> </span>`, 1);
8931
+ var root_6$5 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><!></div>`);
8932
+ var root_7$4 = /* @__PURE__ */ from_html(`<div class="ag-compact-list svelte-n8lbn1"><!></div>`);
8933
+ var root_8$4 = /* @__PURE__ */ from_html(`<div class="ag-q-now-sub svelte-n8lbn1"> </div>`);
8934
+ var root_9$3 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="ag-q-now-dot svelte-n8lbn1"></div> <div class="ag-q-now-title svelte-n8lbn1"> </div> <!> <div class="ag-q-now-time svelte-n8lbn1"> </div> <div class="ag-q-now-track svelte-n8lbn1"><div class="ag-q-now-fill svelte-n8lbn1"></div></div></div>`);
8160
8935
  var root_10$3 = /* @__PURE__ */ from_html(`<div class="ag-q-free svelte-n8lbn1"><div class="ag-q-free-label svelte-n8lbn1"> </div></div>`);
8161
- var root_11$3 = /* @__PURE__ */ from_html(`<span class="ag-card-sub svelte-n8lbn1"> </span>`);
8162
- var root_12$3 = /* @__PURE__ */ from_html(`<span class="ag-card-tag svelte-n8lbn1"> </span>`);
8163
- var root_13$2 = /* @__PURE__ */ from_html(`<div class="ag-card-tags svelte-n8lbn1"></div>`);
8164
- var root_14$2 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="ag-card-body svelte-n8lbn1"><div class="ag-card-top svelte-n8lbn1"><span class="ag-card-title svelte-n8lbn1"> </span> <span class="ag-card-eta svelte-n8lbn1"> </span></div> <!> <div class="ag-card-meta svelte-n8lbn1"> <span class="ag-card-dur svelte-n8lbn1"> </span></div> <!></div></div>`);
8165
- var root_15$2 = /* @__PURE__ */ from_html(`<div class="ag-q svelte-n8lbn1"><div class="ag-q-status svelte-n8lbn1"><!> <div class="ag-q-label svelte-n8lbn1"> <span class="ag-q-clock svelte-n8lbn1"> </span></div> <!></div> <div class="ag-q-queue svelte-n8lbn1"><div class="ag-q-label svelte-n8lbn1"> </div> <!></div></div>`);
8166
- var root_16$2 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-log-check svelte-n8lbn1">✓</span> <span class="ag-log-time svelte-n8lbn1"> </span> <span class="ag-log-dot svelte-n8lbn1"></span> <span class="ag-log-title svelte-n8lbn1"> </span> <span class="ag-log-dur svelte-n8lbn1"> </span></div>`);
8167
- var root_17$1 = /* @__PURE__ */ from_html(`<div class="ag-log svelte-n8lbn1"><!></div>`);
8168
- var root_18$1 = /* @__PURE__ */ from_html(`<span class="ag-card-loc svelte-n8lbn1"> </span>`);
8169
- var root_19$1 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="ag-card-body svelte-n8lbn1"><div class="ag-card-top svelte-n8lbn1"><span class="ag-card-order svelte-n8lbn1"> </span> <span class="ag-card-title svelte-n8lbn1"> </span></div> <!> <!> <div class="ag-card-meta svelte-n8lbn1"> <span class="ag-card-dur svelte-n8lbn1"> </span></div> <!></div></div>`);
8170
- var root_20$1 = /* @__PURE__ */ from_html(`<div class="ag-plan svelte-n8lbn1"><!></div>`);
8171
- var root_21$1 = /* @__PURE__ */ from_html(`<div><div class="ag-body svelte-n8lbn1" role="list"><!> <!></div></div>`);
8936
+ var root_11$3 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-q-done-check svelte-n8lbn1">✓</span> <span class="ag-q-done-title svelte-n8lbn1"> </span></div>`);
8937
+ var root_12$3 = /* @__PURE__ */ from_html(`<button class="ag-q-done-toggle svelte-n8lbn1"> </button>`);
8938
+ var root_13$2 = /* @__PURE__ */ from_html(`<div class="ag-q-done-section svelte-n8lbn1"><div class="ag-q-label svelte-n8lbn1"> </div> <!> <!></div>`);
8939
+ var root_14$2 = /* @__PURE__ */ from_html(`<div class="ag-q-empty svelte-n8lbn1"> </div>`);
8940
+ var root_15$2 = /* @__PURE__ */ from_html(`<span class="ag-compact-row-dot svelte-n8lbn1"></span> <span class="ag-compact-row-time svelte-n8lbn1"> </span> <span class="ag-compact-row-title svelte-n8lbn1"> </span> <!>`, 1);
8941
+ var root_16$2 = /* @__PURE__ */ from_html(`<span class="ag-card-sub svelte-n8lbn1"> </span>`);
8942
+ var root_17$2 = /* @__PURE__ */ from_html(`<span class="ag-card-tag svelte-n8lbn1"> </span>`);
8943
+ var root_18$2 = /* @__PURE__ */ from_html(`<div class="ag-card-tags svelte-n8lbn1"></div>`);
8944
+ var root_19$2 = /* @__PURE__ */ from_html(`<div class="ag-card-top svelte-n8lbn1"><span class="ag-card-title svelte-n8lbn1"> </span> <span class="ag-card-eta svelte-n8lbn1"> </span></div> <!> <div class="ag-card-meta svelte-n8lbn1"> <span class="ag-card-dur svelte-n8lbn1"> </span></div> <!>`, 1);
8945
+ var root_20$1 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="ag-card-body svelte-n8lbn1"><!></div></div>`);
8946
+ var root_21$1 = /* @__PURE__ */ from_html(`<div class="ag-q svelte-n8lbn1"><div class="ag-q-status svelte-n8lbn1"><div class="ag-q-label svelte-n8lbn1"> <span class="ag-q-clock svelte-n8lbn1"> </span></div> <!> <!></div> <div class="ag-q-queue svelte-n8lbn1"><div class="ag-q-label svelte-n8lbn1"> </div> <!></div></div>`);
8947
+ var root_22$1 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-log-check svelte-n8lbn1">✓</span> <span class="ag-log-time svelte-n8lbn1"> </span> <span class="ag-log-dot svelte-n8lbn1"></span> <span class="ag-log-title svelte-n8lbn1"> </span> <span class="ag-log-dur svelte-n8lbn1"> </span></div>`);
8948
+ var root_23$1 = /* @__PURE__ */ from_html(`<div class="ag-log svelte-n8lbn1"><!></div>`);
8949
+ var root_24$1 = /* @__PURE__ */ from_html(`<span class="ag-card-loc svelte-n8lbn1"> </span>`);
8950
+ var root_25$1 = /* @__PURE__ */ from_html(`<div class="ag-card-top svelte-n8lbn1"><span class="ag-card-order svelte-n8lbn1"> </span> <span class="ag-card-title svelte-n8lbn1"> </span></div> <!> <!> <div class="ag-card-meta svelte-n8lbn1"> <span class="ag-card-dur svelte-n8lbn1"> </span></div> <!>`, 1);
8951
+ var root_26$1 = /* @__PURE__ */ from_html(`<div class="ag-plan svelte-n8lbn1"><!></div>`);
8952
+ var root_27$1 = /* @__PURE__ */ from_html(`<div><div class="ag-body svelte-n8lbn1" role="list"><!> <!></div></div>`);
8172
8953
  function AgendaDay($$anchor, $$props) {
8173
8954
  push($$props, true);
8174
8955
  const L = /* @__PURE__ */ user_derived(getLabels);
8175
8956
  const ctx = useCalendarContext();
8957
+ const emptySnippet = /* @__PURE__ */ user_derived(() => ctx.emptySnippet);
8176
8958
  let events = prop($$props, "events", 19, () => []), style = prop($$props, "style", 3, ""), selectedEventId = prop($$props, "selectedEventId", 3, null);
8177
- const clock = createClock();
8959
+ const clock = createClock(ctx.timezone);
8178
8960
  const viewState = /* @__PURE__ */ user_derived(() => ctx.viewState);
8179
8961
  const equalDays = /* @__PURE__ */ user_derived(() => ctx.equalDays);
8180
8962
  const isMobile = /* @__PURE__ */ user_derived(() => ctx.isMobile);
@@ -8242,27 +9024,29 @@
8242
9024
  const upcomingNext = /* @__PURE__ */ user_derived(() => {
8243
9025
  const all = [];
8244
9026
  for (const slot of get(dayCat).upcomingSlots) {
8245
- for (const ev of slot.events) {
8246
- all.push(ev);
8247
- if (all.length >= 5) return all;
8248
- }
9027
+ for (const ev of slot.events) all.push(ev);
8249
9028
  }
8250
9029
  return all;
8251
9030
  });
8252
- var div = root_21$1();
9031
+ const UPCOMING_CARDS = 4;
9032
+ const DONE_VISIBLE = 3;
9033
+ let showAllDone = /* @__PURE__ */ state(false);
9034
+ const visibleDone = /* @__PURE__ */ user_derived(() => get(showAllDone) ? get(dayCat).past : get(dayCat).past.slice(-DONE_VISIBLE));
9035
+ const hiddenDoneCount = /* @__PURE__ */ user_derived(() => get(showAllDone) ? 0 : Math.max(0, get(dayCat).past.length - DONE_VISIBLE));
9036
+ var div = root_27$1();
8253
9037
  let classes;
8254
9038
  let styles;
8255
9039
  var div_1 = child(div);
8256
9040
  var node = child(div_1);
8257
9041
  {
8258
9042
  var consequent = ($$anchor2) => {
8259
- var div_2 = root_1$4();
9043
+ var div_2 = root_1$5();
8260
9044
  var div_3 = child(div_2);
8261
9045
  var text2 = child(div_3, true);
8262
9046
  reset(div_3);
8263
9047
  var div_4 = sibling(div_3, 2);
8264
9048
  each(div_4, 21, () => get(allDayBanner), (ev) => ev.id, ($$anchor3, ev) => {
8265
- var div_5 = root$3();
9049
+ var div_5 = root$4();
8266
9050
  let classes_1;
8267
9051
  let styles_1;
8268
9052
  var span = sibling(child(div_5), 2);
@@ -8293,67 +9077,102 @@
8293
9077
  }
8294
9078
  var node_1 = sibling(node, 2);
8295
9079
  {
8296
- var consequent_4 = ($$anchor2) => {
8297
- var div_6 = root_6$4();
9080
+ var consequent_5 = ($$anchor2) => {
9081
+ var div_6 = root_7$4();
8298
9082
  var node_2 = child(div_6);
8299
9083
  {
8300
- var consequent_1 = ($$anchor3) => {
8301
- var div_7 = root_2$4();
8302
- var text_2 = child(div_7, true);
9084
+ var consequent_2 = ($$anchor3) => {
9085
+ var div_7 = root_2$5();
9086
+ var node_3 = child(div_7);
9087
+ {
9088
+ var consequent_1 = ($$anchor4) => {
9089
+ var fragment = comment();
9090
+ var node_4 = first_child(fragment);
9091
+ snippet(node_4, () => get(emptySnippet));
9092
+ append($$anchor4, fragment);
9093
+ };
9094
+ var alternate = ($$anchor4) => {
9095
+ var text_2 = text();
9096
+ template_effect(() => set_text(text_2, get(L).nothingScheduledYet));
9097
+ append($$anchor4, text_2);
9098
+ };
9099
+ if_block(node_3, ($$render) => {
9100
+ if (get(emptySnippet)) $$render(consequent_1);
9101
+ else $$render(alternate, -1);
9102
+ });
9103
+ }
8303
9104
  reset(div_7);
8304
- template_effect(() => set_text(text_2, get(L).nothingScheduledYet));
8305
9105
  append($$anchor3, div_7);
8306
9106
  };
8307
- var alternate = ($$anchor3) => {
8308
- var fragment = comment();
8309
- var node_3 = first_child(fragment);
8310
- each(node_3, 17, () => get(timedDayEvents), (ev) => ev.id, ($$anchor4, ev) => {
8311
- var div_8 = root_5$4();
9107
+ var alternate_1 = ($$anchor3) => {
9108
+ var fragment_2 = comment();
9109
+ var node_5 = first_child(fragment_2);
9110
+ each(node_5, 17, () => get(timedDayEvents), (ev) => ev.id, ($$anchor4, ev) => {
9111
+ var div_8 = root_6$5();
8312
9112
  let classes_2;
8313
9113
  let styles_2;
8314
- var span_1 = sibling(child(div_8), 2);
8315
- var text_3 = child(span_1, true);
8316
- reset(span_1);
8317
- var span_2 = sibling(span_1, 2);
8318
- var text_4 = child(span_2, true);
8319
- reset(span_2);
8320
- var node_4 = sibling(span_2, 2);
8321
- {
8322
- var consequent_2 = ($$anchor5) => {
8323
- var span_3 = root_3$4();
8324
- var text_5 = child(span_3, true);
8325
- reset(span_3);
8326
- template_effect(() => set_text(text_5, get(ev).subtitle));
8327
- append($$anchor5, span_3);
8328
- };
8329
- if_block(node_4, ($$render) => {
8330
- if (get(ev).subtitle) $$render(consequent_2);
8331
- });
8332
- }
8333
- var node_5 = sibling(node_4, 2);
8334
- {
8335
- var consequent_3 = ($$anchor5) => {
8336
- var fragment_1 = comment();
8337
- var node_6 = first_child(fragment_1);
8338
- each(node_6, 17, () => get(ev).tags, index, ($$anchor6, tag) => {
8339
- var span_4 = root_4$4();
8340
- var text_6 = child(span_4, true);
8341
- reset(span_4);
8342
- template_effect(() => set_text(text_6, get(tag)));
8343
- append($$anchor6, span_4);
8344
- });
8345
- append($$anchor5, fragment_1);
8346
- };
8347
- if_block(node_5, ($$render) => {
8348
- if (get(ev).tags?.length) $$render(consequent_3);
8349
- });
8350
- }
8351
- var span_5 = sibling(node_5, 2);
8352
- var text_7 = child(span_5, true);
8353
- reset(span_5);
9114
+ var node_6 = child(div_8);
9115
+ EventContent(node_6, {
9116
+ get event() {
9117
+ return get(ev);
9118
+ },
9119
+ children: ($$anchor5, $$slotProps) => {
9120
+ var fragment_3 = root_5$5();
9121
+ var span_1 = sibling(first_child(fragment_3), 2);
9122
+ var text_3 = child(span_1, true);
9123
+ reset(span_1);
9124
+ var span_2 = sibling(span_1, 2);
9125
+ var text_4 = child(span_2, true);
9126
+ reset(span_2);
9127
+ var node_7 = sibling(span_2, 2);
9128
+ {
9129
+ var consequent_3 = ($$anchor6) => {
9130
+ var span_3 = root_3$5();
9131
+ var text_5 = child(span_3, true);
9132
+ reset(span_3);
9133
+ template_effect(() => set_text(text_5, get(ev).subtitle));
9134
+ append($$anchor6, span_3);
9135
+ };
9136
+ if_block(node_7, ($$render) => {
9137
+ if (get(ev).subtitle) $$render(consequent_3);
9138
+ });
9139
+ }
9140
+ var node_8 = sibling(node_7, 2);
9141
+ {
9142
+ var consequent_4 = ($$anchor6) => {
9143
+ var fragment_4 = comment();
9144
+ var node_9 = first_child(fragment_4);
9145
+ each(node_9, 17, () => get(ev).tags, index, ($$anchor7, tag) => {
9146
+ var span_4 = root_4$5();
9147
+ var text_6 = child(span_4, true);
9148
+ reset(span_4);
9149
+ template_effect(() => set_text(text_6, get(tag)));
9150
+ append($$anchor7, span_4);
9151
+ });
9152
+ append($$anchor6, fragment_4);
9153
+ };
9154
+ if_block(node_8, ($$render) => {
9155
+ if (get(ev).tags?.length) $$render(consequent_4);
9156
+ });
9157
+ }
9158
+ var span_5 = sibling(node_8, 2);
9159
+ var text_7 = child(span_5, true);
9160
+ reset(span_5);
9161
+ template_effect(
9162
+ ($0, $1) => {
9163
+ set_text(text_3, $0);
9164
+ set_text(text_4, get(ev).title);
9165
+ set_text(text_7, $1);
9166
+ },
9167
+ [() => fmt(get(ev).start), () => duration(get(ev))]
9168
+ );
9169
+ append($$anchor5, fragment_3);
9170
+ },
9171
+ $$slots: { default: true }
9172
+ });
8354
9173
  reset(div_8);
8355
9174
  template_effect(
8356
- ($0, $1, $2, $3) => {
9175
+ ($0, $1) => {
8357
9176
  classes_2 = set_class(div_8, 1, "ag-compact-row svelte-n8lbn1", null, classes_2, {
8358
9177
  "ag-compact-row--selected": selectedEventId() === get(ev).id,
8359
9178
  "ag-compact-row--cancelled": get(ev).status === "cancelled",
@@ -8361,106 +9180,74 @@
8361
9180
  });
8362
9181
  set_attribute(div_8, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""}, ${$1 ?? ""}`);
8363
9182
  styles_2 = set_style(div_8, "", styles_2, { "--ev-color": get(ev).color || "var(--dt-accent)" });
8364
- set_text(text_3, $2);
8365
- set_text(text_4, get(ev).title);
8366
- set_text(text_7, $3);
8367
9183
  },
8368
- [
8369
- () => fmt(get(ev).start),
8370
- () => duration(get(ev)),
8371
- () => fmt(get(ev).start),
8372
- () => duration(get(ev))
8373
- ]
9184
+ [() => fmt(get(ev).start), () => duration(get(ev))]
8374
9185
  );
8375
9186
  delegated("click", div_8, () => handleClick(get(ev)));
8376
9187
  event("pointerenter", div_8, () => get(oneventhover)?.(get(ev)));
8377
9188
  delegated("keydown", div_8, (e) => handleKeydown(e, get(ev)));
8378
9189
  append($$anchor4, div_8);
8379
9190
  });
8380
- append($$anchor3, fragment);
9191
+ append($$anchor3, fragment_2);
8381
9192
  };
8382
9193
  if_block(node_2, ($$render) => {
8383
- if (get(timedDayEvents).length === 0 && get(allDayBanner).length === 0) $$render(consequent_1);
8384
- else $$render(alternate, -1);
9194
+ if (get(timedDayEvents).length === 0 && get(allDayBanner).length === 0) $$render(consequent_2);
9195
+ else $$render(alternate_1, -1);
8385
9196
  });
8386
9197
  }
8387
9198
  reset(div_6);
8388
9199
  append($$anchor2, div_6);
8389
9200
  };
8390
- var consequent_10 = ($$anchor2) => {
8391
- var div_9 = root_15$2();
9201
+ var consequent_15 = ($$anchor2) => {
9202
+ var div_9 = root_21$1();
8392
9203
  var div_10 = child(div_9);
8393
- var node_7 = child(div_10);
9204
+ var div_11 = child(div_10);
9205
+ var text_8 = child(div_11);
9206
+ var span_6 = sibling(text_8);
9207
+ var text_9 = child(span_6, true);
9208
+ reset(span_6);
9209
+ reset(div_11);
9210
+ var node_10 = sibling(div_11, 2);
8394
9211
  {
8395
- var consequent_5 = ($$anchor3) => {
8396
- var div_11 = root_8$3();
8397
- var div_12 = child(div_11);
8398
- var text_8 = child(div_12, true);
8399
- reset(div_12);
8400
- var node_8 = sibling(div_12, 2);
8401
- each(node_8, 17, () => get(dayCat).past, (ev) => ev.id, ($$anchor4, ev) => {
8402
- var div_13 = root_7$4();
9212
+ var consequent_7 = ($$anchor3) => {
9213
+ var fragment_5 = comment();
9214
+ var node_11 = first_child(fragment_5);
9215
+ each(node_11, 17, () => get(dayCat).current, (ev) => ev.id, ($$anchor4, ev) => {
9216
+ var div_12 = root_9$3();
8403
9217
  let classes_3;
8404
- var span_6 = sibling(child(div_13), 2);
8405
- var text_9 = child(span_6, true);
8406
- reset(span_6);
8407
- reset(div_13);
8408
- template_effect(
8409
- ($0) => {
8410
- classes_3 = set_class(div_13, 1, "ag-q-done-item svelte-n8lbn1", null, classes_3, {
8411
- "ag-q-done-item--selected": selectedEventId() === get(ev).id
8412
- });
8413
- set_attribute(div_13, "aria-label", `${get(ev).title ?? ""}, ${get(L).completed ?? ""}, ${$0 ?? ""}`);
8414
- set_text(text_9, get(ev).title);
8415
- },
8416
- [() => fmt(get(ev).start)]
8417
- );
8418
- delegated("click", div_13, () => handleClick(get(ev)));
8419
- delegated("keydown", div_13, (e) => handleKeydown(e, get(ev)));
8420
- append($$anchor4, div_13);
8421
- });
8422
- reset(div_11);
8423
- template_effect(() => set_text(text_8, get(L).done));
8424
- append($$anchor3, div_11);
8425
- };
8426
- if_block(node_7, ($$render) => {
8427
- if (get(dayCat).past.length > 0) $$render(consequent_5);
8428
- });
8429
- }
8430
- var div_14 = sibling(node_7, 2);
8431
- var text_10 = child(div_14);
8432
- var span_7 = sibling(text_10);
8433
- var text_11 = child(span_7, true);
8434
- reset(span_7);
8435
- reset(div_14);
8436
- var node_9 = sibling(div_14, 2);
8437
- {
8438
- var consequent_6 = ($$anchor3) => {
8439
- var fragment_2 = comment();
8440
- var node_10 = first_child(fragment_2);
8441
- each(node_10, 17, () => get(dayCat).current, (ev) => ev.id, ($$anchor4, ev) => {
8442
- var div_15 = root_9$3();
8443
- let classes_4;
8444
9218
  let styles_3;
8445
- var div_16 = sibling(child(div_15), 2);
8446
- var text_12 = child(div_16, true);
8447
- reset(div_16);
8448
- var div_17 = sibling(div_16, 2);
8449
- var text_13 = child(div_17);
8450
- reset(div_17);
8451
- var div_18 = sibling(div_17, 2);
8452
- var div_19 = child(div_18);
8453
- let styles_4;
8454
- reset(div_18);
9219
+ var div_13 = sibling(child(div_12), 2);
9220
+ var text_10 = child(div_13, true);
9221
+ reset(div_13);
9222
+ var node_12 = sibling(div_13, 2);
9223
+ {
9224
+ var consequent_6 = ($$anchor5) => {
9225
+ var div_14 = root_8$4();
9226
+ var text_11 = child(div_14, true);
9227
+ reset(div_14);
9228
+ template_effect(() => set_text(text_11, get(ev).subtitle));
9229
+ append($$anchor5, div_14);
9230
+ };
9231
+ if_block(node_12, ($$render) => {
9232
+ if (get(ev).subtitle) $$render(consequent_6);
9233
+ });
9234
+ }
9235
+ var div_15 = sibling(node_12, 2);
9236
+ var text_12 = child(div_15);
8455
9237
  reset(div_15);
9238
+ var div_16 = sibling(div_15, 2);
9239
+ var div_17 = child(div_16);
9240
+ let styles_4;
9241
+ reset(div_16);
9242
+ reset(div_12);
8456
9243
  template_effect(
8457
9244
  ($0, $1, $2) => {
8458
- classes_4 = set_class(div_15, 1, "ag-q-now svelte-n8lbn1", null, classes_4, { "ag-q-now--selected": selectedEventId() === get(ev).id });
8459
- set_attribute(div_15, "aria-label", `${get(ev).title ?? ""}, ${get(L).happeningNow ?? ""}, ${$0 ?? ""}`);
8460
- styles_3 = set_style(div_15, "", styles_3, { "--ev-color": get(ev).color || "var(--dt-accent)" });
8461
- set_text(text_12, get(ev).title);
8462
- set_text(text_13, `${get(L).until ?? ""} ${$1 ?? ""}`);
8463
- styles_4 = set_style(div_19, "", styles_4, $2);
9245
+ classes_3 = set_class(div_12, 1, "ag-q-now svelte-n8lbn1", null, classes_3, { "ag-q-now--selected": selectedEventId() === get(ev).id });
9246
+ set_attribute(div_12, "aria-label", `${get(ev).title ?? ""}, ${get(L).happeningNow ?? ""}, ${$0 ?? ""}`);
9247
+ styles_3 = set_style(div_12, "", styles_3, { "--ev-color": get(ev).color || "var(--dt-accent)" });
9248
+ set_text(text_10, get(ev).title);
9249
+ set_text(text_12, `${get(L).until ?? ""} ${$1 ?? ""}`);
9250
+ styles_4 = set_style(div_17, "", styles_4, $2);
8464
9251
  },
8465
9252
  [
8466
9253
  () => get(L).percentComplete(Math.round(prog(get(ev)) * 100)),
@@ -8468,178 +9255,313 @@
8468
9255
  () => ({ width: `${prog(get(ev)) * 100}%` })
8469
9256
  ]
8470
9257
  );
8471
- delegated("click", div_15, () => handleClick(get(ev)));
8472
- event("pointerenter", div_15, () => get(oneventhover)?.(get(ev)));
8473
- delegated("keydown", div_15, (e) => handleKeydown(e, get(ev)));
8474
- append($$anchor4, div_15);
9258
+ delegated("click", div_12, () => handleClick(get(ev)));
9259
+ event("pointerenter", div_12, () => get(oneventhover)?.(get(ev)));
9260
+ delegated("keydown", div_12, (e) => handleKeydown(e, get(ev)));
9261
+ append($$anchor4, div_12);
8475
9262
  });
8476
- append($$anchor3, fragment_2);
9263
+ append($$anchor3, fragment_5);
8477
9264
  };
8478
- var alternate_1 = ($$anchor3) => {
8479
- var div_20 = root_10$3();
9265
+ var alternate_2 = ($$anchor3) => {
9266
+ var div_18 = root_10$3();
9267
+ var div_19 = child(div_18);
9268
+ var text_13 = child(div_19, true);
9269
+ reset(div_19);
9270
+ reset(div_18);
9271
+ template_effect(() => set_text(text_13, get(L).free));
9272
+ append($$anchor3, div_18);
9273
+ };
9274
+ if_block(node_10, ($$render) => {
9275
+ if (get(dayCat).current.length > 0) $$render(consequent_7);
9276
+ else $$render(alternate_2, -1);
9277
+ });
9278
+ }
9279
+ var node_13 = sibling(node_10, 2);
9280
+ {
9281
+ var consequent_9 = ($$anchor3) => {
9282
+ var div_20 = root_13$2();
8480
9283
  var div_21 = child(div_20);
8481
9284
  var text_14 = child(div_21, true);
8482
9285
  reset(div_21);
9286
+ var node_14 = sibling(div_21, 2);
9287
+ each(node_14, 17, () => get(visibleDone), (ev) => ev.id, ($$anchor4, ev) => {
9288
+ var div_22 = root_11$3();
9289
+ let classes_4;
9290
+ var span_7 = sibling(child(div_22), 2);
9291
+ var text_15 = child(span_7, true);
9292
+ reset(span_7);
9293
+ reset(div_22);
9294
+ template_effect(
9295
+ ($0) => {
9296
+ classes_4 = set_class(div_22, 1, "ag-q-done-item svelte-n8lbn1", null, classes_4, {
9297
+ "ag-q-done-item--selected": selectedEventId() === get(ev).id
9298
+ });
9299
+ set_attribute(div_22, "aria-label", `${get(ev).title ?? ""}, ${get(L).completed ?? ""}, ${$0 ?? ""}`);
9300
+ set_text(text_15, get(ev).title);
9301
+ },
9302
+ [() => fmt(get(ev).start)]
9303
+ );
9304
+ delegated("click", div_22, () => handleClick(get(ev)));
9305
+ delegated("keydown", div_22, (e) => handleKeydown(e, get(ev)));
9306
+ append($$anchor4, div_22);
9307
+ });
9308
+ var node_15 = sibling(node_14, 2);
9309
+ {
9310
+ var consequent_8 = ($$anchor4) => {
9311
+ var button = root_12$3();
9312
+ var text_16 = child(button, true);
9313
+ reset(button);
9314
+ template_effect(($0) => set_text(text_16, $0), [
9315
+ () => get(showAllDone) ? get(L).showLess : get(L).nCompleted(get(hiddenDoneCount))
9316
+ ]);
9317
+ delegated("click", button, () => set(showAllDone, !get(showAllDone)));
9318
+ append($$anchor4, button);
9319
+ };
9320
+ if_block(node_15, ($$render) => {
9321
+ if (get(hiddenDoneCount) > 0) $$render(consequent_8);
9322
+ });
9323
+ }
8483
9324
  reset(div_20);
8484
- template_effect(() => set_text(text_14, get(L).free));
9325
+ template_effect(() => set_text(text_14, get(L).done));
8485
9326
  append($$anchor3, div_20);
8486
9327
  };
8487
- if_block(node_9, ($$render) => {
8488
- if (get(dayCat).current.length > 0) $$render(consequent_6);
8489
- else $$render(alternate_1, -1);
9328
+ if_block(node_13, ($$render) => {
9329
+ if (get(dayCat).past.length > 0) $$render(consequent_9);
8490
9330
  });
8491
9331
  }
8492
9332
  reset(div_10);
8493
- var div_22 = sibling(div_10, 2);
8494
- var div_23 = child(div_22);
8495
- var text_15 = child(div_23, true);
8496
- reset(div_23);
8497
- var node_11 = sibling(div_23, 2);
9333
+ var div_23 = sibling(div_10, 2);
9334
+ var div_24 = child(div_23);
9335
+ var text_17 = child(div_24, true);
9336
+ reset(div_24);
9337
+ var node_16 = sibling(div_24, 2);
8498
9338
  {
8499
- var consequent_7 = ($$anchor3) => {
8500
- var div_24 = root_2$4();
8501
- var text_16 = child(div_24, true);
8502
- reset(div_24);
8503
- template_effect(() => set_text(text_16, get(dayCat).past.length > 0 ? get(L).allDoneForToday : get(L).nothingScheduled));
8504
- append($$anchor3, div_24);
9339
+ var consequent_10 = ($$anchor3) => {
9340
+ var div_25 = root_14$2();
9341
+ var text_18 = child(div_25, true);
9342
+ reset(div_25);
9343
+ template_effect(() => set_text(text_18, get(dayCat).past.length > 0 ? get(L).allDoneForToday : get(L).nothingScheduled));
9344
+ append($$anchor3, div_25);
8505
9345
  };
8506
- var alternate_2 = ($$anchor3) => {
8507
- var fragment_3 = comment();
8508
- var node_12 = first_child(fragment_3);
8509
- each(node_12, 19, () => get(upcomingNext), (ev) => ev.id, ($$anchor4, ev, i) => {
8510
- var div_25 = root_14$2();
8511
- let classes_5;
8512
- let styles_5;
8513
- var div_26 = child(div_25);
8514
- var div_27 = child(div_26);
8515
- var span_8 = child(div_27);
8516
- var text_17 = child(span_8, true);
8517
- reset(span_8);
8518
- var span_9 = sibling(span_8, 2);
8519
- var text_18 = child(span_9, true);
8520
- reset(span_9);
8521
- reset(div_27);
8522
- var node_13 = sibling(div_27, 2);
9346
+ var alternate_4 = ($$anchor3) => {
9347
+ var fragment_6 = comment();
9348
+ var node_17 = first_child(fragment_6);
9349
+ each(node_17, 19, () => get(upcomingNext), (ev) => ev.id, ($$anchor4, ev, i) => {
9350
+ var fragment_7 = comment();
9351
+ var node_18 = first_child(fragment_7);
8523
9352
  {
8524
- var consequent_8 = ($$anchor5) => {
8525
- var span_10 = root_11$3();
8526
- var text_19 = child(span_10, true);
8527
- reset(span_10);
8528
- template_effect(() => set_text(text_19, get(ev).subtitle));
8529
- append($$anchor5, span_10);
9353
+ var consequent_12 = ($$anchor5) => {
9354
+ var div_26 = root_6$5();
9355
+ let classes_5;
9356
+ let styles_5;
9357
+ var node_19 = child(div_26);
9358
+ EventContent(node_19, {
9359
+ get event() {
9360
+ return get(ev);
9361
+ },
9362
+ children: ($$anchor6, $$slotProps) => {
9363
+ var fragment_8 = root_15$2();
9364
+ var span_8 = sibling(first_child(fragment_8), 2);
9365
+ var text_19 = child(span_8, true);
9366
+ reset(span_8);
9367
+ var span_9 = sibling(span_8, 2);
9368
+ var text_20 = child(span_9, true);
9369
+ reset(span_9);
9370
+ var node_20 = sibling(span_9, 2);
9371
+ {
9372
+ var consequent_11 = ($$anchor7) => {
9373
+ var span_10 = root_3$5();
9374
+ var text_21 = child(span_10, true);
9375
+ reset(span_10);
9376
+ template_effect(() => set_text(text_21, get(ev).subtitle));
9377
+ append($$anchor7, span_10);
9378
+ };
9379
+ if_block(node_20, ($$render) => {
9380
+ if (get(ev).subtitle) $$render(consequent_11);
9381
+ });
9382
+ }
9383
+ template_effect(
9384
+ ($0) => {
9385
+ set_text(text_19, $0);
9386
+ set_text(text_20, get(ev).title);
9387
+ },
9388
+ [() => fmt(get(ev).start)]
9389
+ );
9390
+ append($$anchor6, fragment_8);
9391
+ },
9392
+ $$slots: { default: true }
9393
+ });
9394
+ reset(div_26);
9395
+ template_effect(
9396
+ ($0, $1) => {
9397
+ classes_5 = set_class(div_26, 1, "ag-compact-row ag-compact-row--queue svelte-n8lbn1", null, classes_5, {
9398
+ "ag-compact-row--selected": selectedEventId() === get(ev).id
9399
+ });
9400
+ set_attribute(div_26, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""}, ${$1 ?? ""}`);
9401
+ styles_5 = set_style(div_26, "", styles_5, { "--ev-color": get(ev).color || "var(--dt-accent)" });
9402
+ },
9403
+ [() => fmt(get(ev).start), () => duration(get(ev))]
9404
+ );
9405
+ delegated("click", div_26, () => handleClick(get(ev)));
9406
+ event("pointerenter", div_26, () => get(oneventhover)?.(get(ev)));
9407
+ delegated("keydown", div_26, (e) => handleKeydown(e, get(ev)));
9408
+ append($$anchor5, div_26);
8530
9409
  };
8531
- if_block(node_13, ($$render) => {
8532
- if (get(ev).subtitle) $$render(consequent_8);
8533
- });
8534
- }
8535
- var div_28 = sibling(node_13, 2);
8536
- var text_20 = child(div_28);
8537
- var span_11 = sibling(text_20);
8538
- var text_21 = child(span_11, true);
8539
- reset(span_11);
8540
- reset(div_28);
8541
- var node_14 = sibling(div_28, 2);
8542
- {
8543
- var consequent_9 = ($$anchor5) => {
8544
- var div_29 = root_13$2();
8545
- each(div_29, 21, () => get(ev).tags, index, ($$anchor6, tag) => {
8546
- var span_12 = root_12$3();
8547
- var text_22 = child(span_12, true);
8548
- reset(span_12);
8549
- template_effect(() => set_text(text_22, get(tag)));
8550
- append($$anchor6, span_12);
9410
+ var alternate_3 = ($$anchor5) => {
9411
+ var div_27 = root_20$1();
9412
+ let classes_6;
9413
+ let styles_6;
9414
+ var div_28 = child(div_27);
9415
+ var node_21 = child(div_28);
9416
+ EventContent(node_21, {
9417
+ get event() {
9418
+ return get(ev);
9419
+ },
9420
+ children: ($$anchor6, $$slotProps) => {
9421
+ var fragment_9 = root_19$2();
9422
+ var div_29 = first_child(fragment_9);
9423
+ var span_11 = child(div_29);
9424
+ var text_22 = child(span_11, true);
9425
+ reset(span_11);
9426
+ var span_12 = sibling(span_11, 2);
9427
+ var text_23 = child(span_12, true);
9428
+ reset(span_12);
9429
+ reset(div_29);
9430
+ var node_22 = sibling(div_29, 2);
9431
+ {
9432
+ var consequent_13 = ($$anchor7) => {
9433
+ var span_13 = root_16$2();
9434
+ var text_24 = child(span_13, true);
9435
+ reset(span_13);
9436
+ template_effect(() => set_text(text_24, get(ev).subtitle));
9437
+ append($$anchor7, span_13);
9438
+ };
9439
+ if_block(node_22, ($$render) => {
9440
+ if (get(ev).subtitle) $$render(consequent_13);
9441
+ });
9442
+ }
9443
+ var div_30 = sibling(node_22, 2);
9444
+ var text_25 = child(div_30);
9445
+ var span_14 = sibling(text_25);
9446
+ var text_26 = child(span_14, true);
9447
+ reset(span_14);
9448
+ reset(div_30);
9449
+ var node_23 = sibling(div_30, 2);
9450
+ {
9451
+ var consequent_14 = ($$anchor7) => {
9452
+ var div_31 = root_18$2();
9453
+ each(div_31, 21, () => get(ev).tags, index, ($$anchor8, tag) => {
9454
+ var span_15 = root_17$2();
9455
+ var text_27 = child(span_15, true);
9456
+ reset(span_15);
9457
+ template_effect(() => set_text(text_27, get(tag)));
9458
+ append($$anchor8, span_15);
9459
+ });
9460
+ reset(div_31);
9461
+ append($$anchor7, div_31);
9462
+ };
9463
+ if_block(node_23, ($$render) => {
9464
+ if (get(ev).tags?.length) $$render(consequent_14);
9465
+ });
9466
+ }
9467
+ template_effect(
9468
+ ($0, $1, $2, $3) => {
9469
+ set_text(text_22, get(ev).title);
9470
+ set_text(text_23, $0);
9471
+ set_text(text_25, `${$1 ?? ""} – ${$2 ?? ""} `);
9472
+ set_text(text_26, $3);
9473
+ },
9474
+ [
9475
+ () => eta(get(ev).start.getTime()),
9476
+ () => fmt(get(ev).start),
9477
+ () => fmt(get(ev).end),
9478
+ () => duration(get(ev))
9479
+ ]
9480
+ );
9481
+ append($$anchor6, fragment_9);
9482
+ },
9483
+ $$slots: { default: true }
8551
9484
  });
8552
- reset(div_29);
8553
- append($$anchor5, div_29);
9485
+ reset(div_28);
9486
+ reset(div_27);
9487
+ template_effect(
9488
+ ($0, $1) => {
9489
+ classes_6 = set_class(div_27, 1, "ag-card ag-card--q svelte-n8lbn1", null, classes_6, {
9490
+ "ag-card--hero": get(i) === 0,
9491
+ "ag-card--selected": selectedEventId() === get(ev).id
9492
+ });
9493
+ set_attribute(div_27, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""}, ${$1 ?? ""}`);
9494
+ styles_6 = set_style(div_27, "", styles_6, { "--ev-color": get(ev).color || "var(--dt-accent)" });
9495
+ },
9496
+ [() => fmt(get(ev).start), () => duration(get(ev))]
9497
+ );
9498
+ delegated("click", div_27, () => handleClick(get(ev)));
9499
+ event("pointerenter", div_27, () => get(oneventhover)?.(get(ev)));
9500
+ delegated("keydown", div_27, (e) => handleKeydown(e, get(ev)));
9501
+ append($$anchor5, div_27);
8554
9502
  };
8555
- if_block(node_14, ($$render) => {
8556
- if (get(ev).tags?.length) $$render(consequent_9);
9503
+ if_block(node_18, ($$render) => {
9504
+ if (get(i) >= UPCOMING_CARDS) $$render(consequent_12);
9505
+ else $$render(alternate_3, -1);
8557
9506
  });
8558
9507
  }
8559
- reset(div_26);
8560
- reset(div_25);
8561
- template_effect(
8562
- ($0, $1, $2, $3, $4, $5) => {
8563
- classes_5 = set_class(div_25, 1, "ag-card ag-card--q svelte-n8lbn1", null, classes_5, {
8564
- "ag-card--hero": get(i) === 0,
8565
- "ag-card--selected": selectedEventId() === get(ev).id
8566
- });
8567
- set_attribute(div_25, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""}, ${$1 ?? ""}`);
8568
- styles_5 = set_style(div_25, "", styles_5, { "--ev-color": get(ev).color || "var(--dt-accent)" });
8569
- set_text(text_17, get(ev).title);
8570
- set_text(text_18, $2);
8571
- set_text(text_20, `${$3 ?? ""} – ${$4 ?? ""} `);
8572
- set_text(text_21, $5);
8573
- },
8574
- [
8575
- () => fmt(get(ev).start),
8576
- () => duration(get(ev)),
8577
- () => eta(get(ev).start.getTime()),
8578
- () => fmt(get(ev).start),
8579
- () => fmt(get(ev).end),
8580
- () => duration(get(ev))
8581
- ]
8582
- );
8583
- delegated("click", div_25, () => handleClick(get(ev)));
8584
- event("pointerenter", div_25, () => get(oneventhover)?.(get(ev)));
8585
- delegated("keydown", div_25, (e) => handleKeydown(e, get(ev)));
8586
- append($$anchor4, div_25);
9508
+ append($$anchor4, fragment_7);
8587
9509
  });
8588
- append($$anchor3, fragment_3);
9510
+ append($$anchor3, fragment_6);
8589
9511
  };
8590
- if_block(node_11, ($$render) => {
8591
- if (get(upcomingNext).length === 0) $$render(consequent_7);
8592
- else $$render(alternate_2, -1);
9512
+ if_block(node_16, ($$render) => {
9513
+ if (get(upcomingNext).length === 0) $$render(consequent_10);
9514
+ else $$render(alternate_4, -1);
8593
9515
  });
8594
9516
  }
8595
- reset(div_22);
9517
+ reset(div_23);
8596
9518
  reset(div_9);
8597
9519
  template_effect(() => {
8598
- set_text(text_10, `${get(L).now ?? ""} `);
8599
- set_text(text_11, clock.hm);
8600
- set_text(text_15, get(L).upNext);
9520
+ set_text(text_8, `${get(L).now ?? ""} `);
9521
+ set_text(text_9, clock.hm);
9522
+ set_text(text_17, get(L).upNext);
8601
9523
  });
8602
9524
  append($$anchor2, div_9);
8603
9525
  };
8604
- var consequent_12 = ($$anchor2) => {
8605
- var div_30 = root_17$1();
8606
- var node_15 = child(div_30);
9526
+ var consequent_17 = ($$anchor2) => {
9527
+ var div_32 = root_23$1();
9528
+ var node_24 = child(div_32);
8607
9529
  {
8608
- var consequent_11 = ($$anchor3) => {
8609
- var div_31 = root_2$4();
8610
- var text_23 = child(div_31, true);
8611
- reset(div_31);
8612
- template_effect(() => set_text(text_23, get(L).nothingWasScheduled));
8613
- append($$anchor3, div_31);
9530
+ var consequent_16 = ($$anchor3) => {
9531
+ var div_33 = root_14$2();
9532
+ var text_28 = child(div_33, true);
9533
+ reset(div_33);
9534
+ template_effect(() => set_text(text_28, get(L).nothingWasScheduled));
9535
+ append($$anchor3, div_33);
8614
9536
  };
8615
- var alternate_3 = ($$anchor3) => {
8616
- var fragment_4 = comment();
8617
- var node_16 = first_child(fragment_4);
8618
- each(node_16, 17, () => get(timedDayEvents), (ev) => ev.id, ($$anchor4, ev) => {
8619
- var div_32 = root_16$2();
8620
- let classes_6;
8621
- let styles_6;
8622
- var span_13 = sibling(child(div_32), 2);
8623
- var text_24 = child(span_13, true);
8624
- reset(span_13);
8625
- var span_14 = sibling(span_13, 2);
9537
+ var alternate_5 = ($$anchor3) => {
9538
+ var fragment_10 = comment();
9539
+ var node_25 = first_child(fragment_10);
9540
+ each(node_25, 17, () => get(timedDayEvents), (ev) => ev.id, ($$anchor4, ev) => {
9541
+ var div_34 = root_22$1();
9542
+ let classes_7;
8626
9543
  let styles_7;
8627
- var span_15 = sibling(span_14, 2);
8628
- var text_25 = child(span_15, true);
8629
- reset(span_15);
8630
- var span_16 = sibling(span_15, 2);
8631
- var text_26 = child(span_16, true);
9544
+ var span_16 = sibling(child(div_34), 2);
9545
+ var text_29 = child(span_16, true);
8632
9546
  reset(span_16);
8633
- reset(div_32);
9547
+ var span_17 = sibling(span_16, 2);
9548
+ let styles_8;
9549
+ var span_18 = sibling(span_17, 2);
9550
+ var text_30 = child(span_18, true);
9551
+ reset(span_18);
9552
+ var span_19 = sibling(span_18, 2);
9553
+ var text_31 = child(span_19, true);
9554
+ reset(span_19);
9555
+ reset(div_34);
8634
9556
  template_effect(
8635
9557
  ($0, $1, $2, $3) => {
8636
- classes_6 = set_class(div_32, 1, "ag-log-row svelte-n8lbn1", null, classes_6, { "ag-log-row--selected": selectedEventId() === get(ev).id });
8637
- set_attribute(div_32, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""} to ${$1 ?? ""}`);
8638
- styles_6 = set_style(div_32, "", styles_6, { "--ev-color": get(ev).color || "var(--dt-accent)" });
8639
- set_text(text_24, $2);
8640
- styles_7 = set_style(span_14, "", styles_7, { background: get(ev).color || "var(--dt-accent)" });
8641
- set_text(text_25, get(ev).title);
8642
- set_text(text_26, $3);
9558
+ classes_7 = set_class(div_34, 1, "ag-log-row svelte-n8lbn1", null, classes_7, { "ag-log-row--selected": selectedEventId() === get(ev).id });
9559
+ set_attribute(div_34, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""} to ${$1 ?? ""}`);
9560
+ styles_7 = set_style(div_34, "", styles_7, { "--ev-color": get(ev).color || "var(--dt-accent)" });
9561
+ set_text(text_29, $2);
9562
+ styles_8 = set_style(span_17, "", styles_8, { background: get(ev).color || "var(--dt-accent)" });
9563
+ set_text(text_30, get(ev).title);
9564
+ set_text(text_31, $3);
8643
9565
  },
8644
9566
  [
8645
9567
  () => fmt(get(ev).start),
@@ -8648,103 +9570,143 @@
8648
9570
  () => duration(get(ev))
8649
9571
  ]
8650
9572
  );
8651
- delegated("click", div_32, () => handleClick(get(ev)));
8652
- event("pointerenter", div_32, () => get(oneventhover)?.(get(ev)));
8653
- delegated("keydown", div_32, (e) => handleKeydown(e, get(ev)));
8654
- append($$anchor4, div_32);
9573
+ delegated("click", div_34, () => handleClick(get(ev)));
9574
+ event("pointerenter", div_34, () => get(oneventhover)?.(get(ev)));
9575
+ delegated("keydown", div_34, (e) => handleKeydown(e, get(ev)));
9576
+ append($$anchor4, div_34);
8655
9577
  });
8656
- append($$anchor3, fragment_4);
9578
+ append($$anchor3, fragment_10);
8657
9579
  };
8658
- if_block(node_15, ($$render) => {
8659
- if (get(timedDayEvents).length === 0 && get(allDayBanner).length === 0) $$render(consequent_11);
8660
- else $$render(alternate_3, -1);
9580
+ if_block(node_24, ($$render) => {
9581
+ if (get(timedDayEvents).length === 0 && get(allDayBanner).length === 0) $$render(consequent_16);
9582
+ else $$render(alternate_5, -1);
8661
9583
  });
8662
9584
  }
8663
- reset(div_30);
8664
- append($$anchor2, div_30);
9585
+ reset(div_32);
9586
+ append($$anchor2, div_32);
8665
9587
  };
8666
- var alternate_5 = ($$anchor2) => {
8667
- var div_33 = root_20$1();
8668
- var node_17 = child(div_33);
9588
+ var alternate_8 = ($$anchor2) => {
9589
+ var div_35 = root_26$1();
9590
+ var node_26 = child(div_35);
8669
9591
  {
8670
- var consequent_13 = ($$anchor3) => {
8671
- var div_34 = root_2$4();
8672
- var text_27 = child(div_34, true);
8673
- reset(div_34);
8674
- template_effect(() => set_text(text_27, get(L).nothingScheduledYet));
8675
- append($$anchor3, div_34);
9592
+ var consequent_19 = ($$anchor3) => {
9593
+ var div_36 = root_2$5();
9594
+ var node_27 = child(div_36);
9595
+ {
9596
+ var consequent_18 = ($$anchor4) => {
9597
+ var fragment_11 = comment();
9598
+ var node_28 = first_child(fragment_11);
9599
+ snippet(node_28, () => get(emptySnippet));
9600
+ append($$anchor4, fragment_11);
9601
+ };
9602
+ var alternate_6 = ($$anchor4) => {
9603
+ var text_32 = text();
9604
+ template_effect(() => set_text(text_32, get(L).nothingScheduledYet));
9605
+ append($$anchor4, text_32);
9606
+ };
9607
+ if_block(node_27, ($$render) => {
9608
+ if (get(emptySnippet)) $$render(consequent_18);
9609
+ else $$render(alternate_6, -1);
9610
+ });
9611
+ }
9612
+ reset(div_36);
9613
+ append($$anchor3, div_36);
8676
9614
  };
8677
- var alternate_4 = ($$anchor3) => {
8678
- var fragment_5 = comment();
8679
- var node_18 = first_child(fragment_5);
8680
- each(node_18, 19, () => get(timedDayEvents), (ev) => ev.id, ($$anchor4, ev, i) => {
8681
- var div_35 = root_19$1();
8682
- let classes_7;
8683
- let styles_8;
8684
- var div_36 = child(div_35);
8685
- var div_37 = child(div_36);
8686
- var span_17 = child(div_37);
8687
- var text_28 = child(span_17, true);
8688
- reset(span_17);
8689
- var span_18 = sibling(span_17, 2);
8690
- var text_29 = child(span_18, true);
8691
- reset(span_18);
8692
- reset(div_37);
8693
- var node_19 = sibling(div_37, 2);
8694
- {
8695
- var consequent_14 = ($$anchor5) => {
8696
- var span_19 = root_11$3();
8697
- var text_30 = child(span_19, true);
8698
- reset(span_19);
8699
- template_effect(() => set_text(text_30, get(ev).subtitle));
8700
- append($$anchor5, span_19);
8701
- };
8702
- if_block(node_19, ($$render) => {
8703
- if (get(ev).subtitle) $$render(consequent_14);
8704
- });
8705
- }
8706
- var node_20 = sibling(node_19, 2);
8707
- {
8708
- var consequent_15 = ($$anchor5) => {
8709
- var span_20 = root_18$1();
8710
- var text_31 = child(span_20, true);
9615
+ var alternate_7 = ($$anchor3) => {
9616
+ var fragment_13 = comment();
9617
+ var node_29 = first_child(fragment_13);
9618
+ each(node_29, 19, () => get(timedDayEvents), (ev) => ev.id, ($$anchor4, ev, i) => {
9619
+ var div_37 = root_20$1();
9620
+ let classes_8;
9621
+ let styles_9;
9622
+ var div_38 = child(div_37);
9623
+ var node_30 = child(div_38);
9624
+ EventContent(node_30, {
9625
+ get event() {
9626
+ return get(ev);
9627
+ },
9628
+ children: ($$anchor5, $$slotProps) => {
9629
+ var fragment_14 = root_25$1();
9630
+ var div_39 = first_child(fragment_14);
9631
+ var span_20 = child(div_39);
9632
+ var text_33 = child(span_20, true);
8711
9633
  reset(span_20);
8712
- template_effect(() => set_text(text_31, get(ev).location));
8713
- append($$anchor5, span_20);
8714
- };
8715
- if_block(node_20, ($$render) => {
8716
- if (get(ev).location) $$render(consequent_15);
8717
- });
8718
- }
8719
- var div_38 = sibling(node_20, 2);
8720
- var text_32 = child(div_38);
8721
- var span_21 = sibling(text_32);
8722
- var text_33 = child(span_21, true);
8723
- reset(span_21);
8724
- reset(div_38);
8725
- var node_21 = sibling(div_38, 2);
8726
- {
8727
- var consequent_16 = ($$anchor5) => {
8728
- var div_39 = root_13$2();
8729
- each(div_39, 21, () => get(ev).tags, index, ($$anchor6, tag) => {
8730
- var span_22 = root_12$3();
8731
- var text_34 = child(span_22, true);
8732
- reset(span_22);
8733
- template_effect(() => set_text(text_34, get(tag)));
8734
- append($$anchor6, span_22);
8735
- });
9634
+ var span_21 = sibling(span_20, 2);
9635
+ var text_34 = child(span_21, true);
9636
+ reset(span_21);
8736
9637
  reset(div_39);
8737
- append($$anchor5, div_39);
8738
- };
8739
- if_block(node_21, ($$render) => {
8740
- if (get(ev).tags?.length) $$render(consequent_16);
8741
- });
8742
- }
8743
- reset(div_36);
8744
- reset(div_35);
9638
+ var node_31 = sibling(div_39, 2);
9639
+ {
9640
+ var consequent_20 = ($$anchor6) => {
9641
+ var span_22 = root_16$2();
9642
+ var text_35 = child(span_22, true);
9643
+ reset(span_22);
9644
+ template_effect(() => set_text(text_35, get(ev).subtitle));
9645
+ append($$anchor6, span_22);
9646
+ };
9647
+ if_block(node_31, ($$render) => {
9648
+ if (get(ev).subtitle) $$render(consequent_20);
9649
+ });
9650
+ }
9651
+ var node_32 = sibling(node_31, 2);
9652
+ {
9653
+ var consequent_21 = ($$anchor6) => {
9654
+ var span_23 = root_24$1();
9655
+ var text_36 = child(span_23, true);
9656
+ reset(span_23);
9657
+ template_effect(() => set_text(text_36, get(ev).location));
9658
+ append($$anchor6, span_23);
9659
+ };
9660
+ if_block(node_32, ($$render) => {
9661
+ if (get(ev).location) $$render(consequent_21);
9662
+ });
9663
+ }
9664
+ var div_40 = sibling(node_32, 2);
9665
+ var text_37 = child(div_40);
9666
+ var span_24 = sibling(text_37);
9667
+ var text_38 = child(span_24, true);
9668
+ reset(span_24);
9669
+ reset(div_40);
9670
+ var node_33 = sibling(div_40, 2);
9671
+ {
9672
+ var consequent_22 = ($$anchor6) => {
9673
+ var div_41 = root_18$2();
9674
+ each(div_41, 21, () => get(ev).tags, index, ($$anchor7, tag) => {
9675
+ var span_25 = root_17$2();
9676
+ var text_39 = child(span_25, true);
9677
+ reset(span_25);
9678
+ template_effect(() => set_text(text_39, get(tag)));
9679
+ append($$anchor7, span_25);
9680
+ });
9681
+ reset(div_41);
9682
+ append($$anchor6, div_41);
9683
+ };
9684
+ if_block(node_33, ($$render) => {
9685
+ if (get(ev).tags?.length) $$render(consequent_22);
9686
+ });
9687
+ }
9688
+ template_effect(
9689
+ ($0, $1, $2) => {
9690
+ set_text(text_33, get(i) + 1);
9691
+ set_text(text_34, get(ev).title);
9692
+ set_text(text_37, `${$0 ?? ""} – ${$1 ?? ""} `);
9693
+ set_text(text_38, $2);
9694
+ },
9695
+ [
9696
+ () => fmt(get(ev).start),
9697
+ () => fmt(get(ev).end),
9698
+ () => duration(get(ev))
9699
+ ]
9700
+ );
9701
+ append($$anchor5, fragment_14);
9702
+ },
9703
+ $$slots: { default: true }
9704
+ });
9705
+ reset(div_38);
9706
+ reset(div_37);
8745
9707
  template_effect(
8746
- ($0, $1, $2, $3, $4, $5) => {
8747
- classes_7 = set_class(div_35, 1, "ag-card ag-card--plan svelte-n8lbn1", null, classes_7, {
9708
+ ($0, $1, $2) => {
9709
+ classes_8 = set_class(div_37, 1, "ag-card ag-card--plan svelte-n8lbn1", null, classes_8, {
8748
9710
  "ag-card--first": get(i) === 0,
8749
9711
  "ag-card--selected": selectedEventId() === get(ev).id,
8750
9712
  "ag-card--cancelled": get(ev).status === "cancelled",
@@ -8752,42 +9714,35 @@
8752
9714
  "ag-card--full": get(ev).status === "full",
8753
9715
  "ag-card--limited": get(ev).status === "limited"
8754
9716
  });
8755
- set_attribute(div_35, "aria-label", `${get(ev).title ?? ""}${get(ev).status === "cancelled" ? " (cancelled)" : ""}${get(ev).status === "tentative" ? " (tentative)" : ""}${get(ev).status === "full" ? " (full)" : ""}${get(ev).status === "limited" ? " (limited)" : ""}, ${$0 ?? ""} to ${$1 ?? ""}, ${$2 ?? ""}`);
8756
- styles_8 = set_style(div_35, "", styles_8, { "--ev-color": get(ev).color || "var(--dt-accent)" });
8757
- set_text(text_28, get(i) + 1);
8758
- set_text(text_29, get(ev).title);
8759
- set_text(text_32, `${$3 ?? ""} – ${$4 ?? ""} `);
8760
- set_text(text_33, $5);
9717
+ set_attribute(div_37, "aria-label", `${get(ev).title ?? ""}${get(ev).status === "cancelled" ? " (cancelled)" : ""}${get(ev).status === "tentative" ? " (tentative)" : ""}${get(ev).status === "full" ? " (full)" : ""}${get(ev).status === "limited" ? " (limited)" : ""}, ${$0 ?? ""} to ${$1 ?? ""}, ${$2 ?? ""}`);
9718
+ styles_9 = set_style(div_37, "", styles_9, { "--ev-color": get(ev).color || "var(--dt-accent)" });
8761
9719
  },
8762
9720
  [
8763
- () => fmt(get(ev).start),
8764
- () => fmt(get(ev).end),
8765
- () => duration(get(ev)),
8766
9721
  () => fmt(get(ev).start),
8767
9722
  () => fmt(get(ev).end),
8768
9723
  () => duration(get(ev))
8769
9724
  ]
8770
9725
  );
8771
- delegated("click", div_35, () => handleClick(get(ev)));
8772
- event("pointerenter", div_35, () => get(oneventhover)?.(get(ev)));
8773
- delegated("keydown", div_35, (e) => handleKeydown(e, get(ev)));
8774
- append($$anchor4, div_35);
9726
+ delegated("click", div_37, () => handleClick(get(ev)));
9727
+ event("pointerenter", div_37, () => get(oneventhover)?.(get(ev)));
9728
+ delegated("keydown", div_37, (e) => handleKeydown(e, get(ev)));
9729
+ append($$anchor4, div_37);
8775
9730
  });
8776
- append($$anchor3, fragment_5);
9731
+ append($$anchor3, fragment_13);
8777
9732
  };
8778
- if_block(node_17, ($$render) => {
8779
- if (get(timedDayEvents).length === 0 && get(allDayBanner).length === 0) $$render(consequent_13);
8780
- else $$render(alternate_4, -1);
9733
+ if_block(node_26, ($$render) => {
9734
+ if (get(timedDayEvents).length === 0 && get(allDayBanner).length === 0) $$render(consequent_19);
9735
+ else $$render(alternate_7, -1);
8781
9736
  });
8782
9737
  }
8783
- reset(div_33);
8784
- append($$anchor2, div_33);
9738
+ reset(div_35);
9739
+ append($$anchor2, div_35);
8785
9740
  };
8786
9741
  if_block(node_1, ($$render) => {
8787
- if (get(compact)) $$render(consequent_4);
8788
- else if (get(isToday)) $$render(consequent_10, 1);
8789
- else if (get(isPastDay)) $$render(consequent_12, 2);
8790
- else $$render(alternate_5, -1);
9742
+ if (get(compact)) $$render(consequent_5);
9743
+ else if (get(isToday)) $$render(consequent_15, 1);
9744
+ else if (get(isPastDay)) $$render(consequent_17, 2);
9745
+ else $$render(alternate_8, -1);
8791
9746
  });
8792
9747
  }
8793
9748
  reset(div_1);
@@ -8812,143 +9767,163 @@
8812
9767
  pop();
8813
9768
  }
8814
9769
  delegate(["pointerdown", "pointerup", "click", "keydown"]);
8815
- var root$2 = /* @__PURE__ */ from_html(`<span class="ag-card-sub svelte-uhwfyj"> </span>`);
8816
- var root_1$3 = /* @__PURE__ */ from_html(`<span class="ag-card-loc svelte-uhwfyj"> </span>`);
8817
- var root_2$3 = /* @__PURE__ */ from_html(`<span class="ag-card-eta svelte-uhwfyj"> </span>`);
8818
- var root_3$3 = /* @__PURE__ */ from_html(`<span class="ag-card-tag svelte-uhwfyj"> </span>`);
8819
- var root_4$3 = /* @__PURE__ */ from_html(`<div class="ag-card-tags svelte-uhwfyj"></div>`);
8820
- var root_5$3 = /* @__PURE__ */ from_html(`<div class="ag-card-progress svelte-uhwfyj"><div class="ag-card-progress-fill svelte-uhwfyj"></div></div>`);
8821
- var root_6$3 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="ag-card-body svelte-uhwfyj"><span class="ag-card-title svelte-uhwfyj"> </span> <!> <!> <span class="ag-card-meta svelte-uhwfyj"><!> <span class="ag-card-dur svelte-uhwfyj"> </span> <!></span> <!> <!></div></div>`);
8822
- var root_7$3 = /* @__PURE__ */ from_html(`<span class="ag-wday-date svelte-uhwfyj"> </span>`);
8823
- var root_8$2 = /* @__PURE__ */ from_html(`<div class="ag-wday-custom-header svelte-uhwfyj"><!></div>`);
8824
- var root_9$2 = /* @__PURE__ */ from_html(`<div role="listitem"><div class="ag-wday-head svelte-uhwfyj"><div class="ag-wday-head-left svelte-uhwfyj"><span class="ag-wday-name svelte-uhwfyj"> </span> <!></div> <!></div></div>`);
8825
- var root_10$2 = /* @__PURE__ */ from_html(`<span class="ag-wday-badge svelte-uhwfyj"> </span>`);
8826
- var root_11$2 = /* @__PURE__ */ from_html(`<span class="ag-wday-badge ag-wday-badge--muted svelte-uhwfyj"> </span>`);
8827
- var root_12$2 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-allday-dot svelte-uhwfyj"></span> <span class="ag-allday-title svelte-uhwfyj"> </span></div>`);
8828
- var root_13$1 = /* @__PURE__ */ from_html(`<div class="ag-allday svelte-uhwfyj"></div>`);
8829
- var root_14$1 = /* @__PURE__ */ from_html(`<div class="ag-wday-empty svelte-uhwfyj"> </div>`);
8830
- var root_15$1 = /* @__PURE__ */ from_html(`<span class="ag-compact-sub svelte-uhwfyj"> </span>`);
8831
- var root_16$1 = /* @__PURE__ */ from_html(`<span class="ag-compact-tag svelte-uhwfyj"> </span>`);
8832
- var root_17 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-compact-dot svelte-uhwfyj"></span> <span class="ag-compact-time svelte-uhwfyj"> </span> <span class="ag-compact-title svelte-uhwfyj"> </span> <!> <!> <span class="ag-compact-dur svelte-uhwfyj"> </span></div>`);
8833
- var root_18 = /* @__PURE__ */ from_html(`<div class="ag-wday-compact svelte-uhwfyj"></div>`);
8834
- var root_19 = /* @__PURE__ */ from_html(`<div class="ag-wslot svelte-uhwfyj"><div></div></div>`);
8835
- var root_20 = /* @__PURE__ */ from_html(`<div class="ag-wday-expanded svelte-uhwfyj"></div>`);
8836
- var root_21 = /* @__PURE__ */ from_html(`<div class="ag-wslot svelte-uhwfyj"><div class="ag-wslot-header svelte-uhwfyj"><span class="ag-wslot-now svelte-uhwfyj"> </span></div> <!></div>`);
8837
- var root_22 = /* @__PURE__ */ from_html(`<div class="ag-wday-past-line svelte-uhwfyj"> </div>`);
8838
- var root_23 = /* @__PURE__ */ from_html(`<div class="ag-wday-expanded svelte-uhwfyj"><!> <!> <!></div>`);
8839
- var root_24 = /* @__PURE__ */ from_html(`<span class="ag-compact-loc svelte-uhwfyj"> </span>`);
8840
- var root_25 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-compact-dot svelte-uhwfyj"></span> <span class="ag-compact-time svelte-uhwfyj"> </span> <span class="ag-compact-title svelte-uhwfyj"> </span> <!> <!> <!> <span class="ag-compact-dur svelte-uhwfyj"> </span></div>`);
8841
- var root_26 = /* @__PURE__ */ from_html(`<div class="ag-compact-more svelte-uhwfyj"> </div>`);
8842
- var root_27 = /* @__PURE__ */ from_html(`<div class="ag-wday-compact svelte-uhwfyj"><!> <!></div>`);
8843
- var root_28 = /* @__PURE__ */ from_html(`<div role="listitem"><div class="ag-wday-head svelte-uhwfyj"><div class="ag-wday-head-left svelte-uhwfyj"><!> <span class="ag-wday-name svelte-uhwfyj"> </span> <!></div> <!></div> <!> <!></div>`);
8844
- var root_29 = /* @__PURE__ */ from_html(`<div><div class="ag-body svelte-uhwfyj" role="list"></div></div>`);
9770
+ var root$3 = /* @__PURE__ */ from_html(`<span class="ag-card-sub svelte-uhwfyj"> </span>`);
9771
+ var root_1$4 = /* @__PURE__ */ from_html(`<span class="ag-card-loc svelte-uhwfyj"> </span>`);
9772
+ var root_2$4 = /* @__PURE__ */ from_html(`<span class="ag-card-eta svelte-uhwfyj"> </span>`);
9773
+ var root_3$4 = /* @__PURE__ */ from_html(`<span class="ag-card-tag svelte-uhwfyj"> </span>`);
9774
+ var root_4$4 = /* @__PURE__ */ from_html(`<div class="ag-card-tags svelte-uhwfyj"></div>`);
9775
+ var root_5$4 = /* @__PURE__ */ from_html(`<span class="ag-card-title svelte-uhwfyj"> </span> <!> <!> <span class="ag-card-meta svelte-uhwfyj"><!> <span class="ag-card-dur svelte-uhwfyj"> </span> <!></span> <!>`, 1);
9776
+ var root_6$4 = /* @__PURE__ */ from_html(`<div class="ag-card-progress svelte-uhwfyj"><div class="ag-card-progress-fill svelte-uhwfyj"></div></div>`);
9777
+ var root_7$3 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="ag-card-body svelte-uhwfyj"><!> <!></div></div>`);
9778
+ var root_8$3 = /* @__PURE__ */ from_html(`<span class="ag-wday-date svelte-uhwfyj"> </span>`);
9779
+ var root_9$2 = /* @__PURE__ */ from_html(`<div class="ag-wday-custom-header svelte-uhwfyj"><!></div>`);
9780
+ var root_10$2 = /* @__PURE__ */ from_html(`<div role="listitem"><div class="ag-wday-head svelte-uhwfyj"><div class="ag-wday-head-left svelte-uhwfyj"><span class="ag-wday-name svelte-uhwfyj"> </span> <!></div> <!></div></div>`);
9781
+ var root_11$2 = /* @__PURE__ */ from_html(`<span class="ag-wday-badge svelte-uhwfyj"> </span>`);
9782
+ var root_12$2 = /* @__PURE__ */ from_html(`<span class="ag-wday-badge ag-wday-badge--muted svelte-uhwfyj"> </span>`);
9783
+ var root_13$1 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><span class="ag-allday-dot svelte-uhwfyj"></span> <span class="ag-allday-title svelte-uhwfyj"> </span></div>`);
9784
+ var root_14$1 = /* @__PURE__ */ from_html(`<div class="ag-allday svelte-uhwfyj"></div>`);
9785
+ var root_15$1 = /* @__PURE__ */ from_html(`<div class="ag-wday-empty svelte-uhwfyj"> </div>`);
9786
+ var root_16$1 = /* @__PURE__ */ from_html(`<span class="ag-compact-sub svelte-uhwfyj"> </span>`);
9787
+ var root_17$1 = /* @__PURE__ */ from_html(`<span class="ag-compact-tag svelte-uhwfyj"> </span>`);
9788
+ var root_18$1 = /* @__PURE__ */ from_html(`<span class="ag-compact-dot svelte-uhwfyj"></span> <span class="ag-compact-time svelte-uhwfyj"> </span> <span class="ag-compact-title svelte-uhwfyj"> </span> <!> <!> <span class="ag-compact-dur svelte-uhwfyj"> </span>`, 1);
9789
+ var root_19$1 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><!></div>`);
9790
+ var root_20 = /* @__PURE__ */ from_html(`<div class="ag-wday-compact svelte-uhwfyj"></div>`);
9791
+ var root_21 = /* @__PURE__ */ from_html(`<div class="ag-wslot svelte-uhwfyj"><div></div></div>`);
9792
+ var root_22 = /* @__PURE__ */ from_html(`<div class="ag-wday-expanded svelte-uhwfyj"></div>`);
9793
+ var root_23 = /* @__PURE__ */ from_html(`<div class="ag-wslot svelte-uhwfyj"><div class="ag-wslot-header svelte-uhwfyj"><span class="ag-wslot-now svelte-uhwfyj"> </span></div> <!></div>`);
9794
+ var root_24 = /* @__PURE__ */ from_html(`<div class="ag-wday-past-line svelte-uhwfyj"> </div>`);
9795
+ var root_25 = /* @__PURE__ */ from_html(`<div class="ag-wday-expanded svelte-uhwfyj"><!> <!> <!></div>`);
9796
+ var root_26 = /* @__PURE__ */ from_html(`<span class="ag-compact-loc svelte-uhwfyj"> </span>`);
9797
+ var root_27 = /* @__PURE__ */ from_html(`<span class="ag-compact-dot svelte-uhwfyj"></span> <span class="ag-compact-time svelte-uhwfyj"> </span> <span class="ag-compact-title svelte-uhwfyj"> </span> <!> <!> <!> <span class="ag-compact-dur svelte-uhwfyj"> </span>`, 1);
9798
+ var root_28 = /* @__PURE__ */ from_html(`<div class="ag-compact-more svelte-uhwfyj"> </div>`);
9799
+ var root_29 = /* @__PURE__ */ from_html(`<div class="ag-wday-compact svelte-uhwfyj"><!> <!></div>`);
9800
+ var root_30 = /* @__PURE__ */ from_html(`<div role="listitem"><div class="ag-wday-head svelte-uhwfyj"><div class="ag-wday-head-left svelte-uhwfyj"><!> <span class="ag-wday-name svelte-uhwfyj"> </span> <!></div> <!></div> <!> <!></div>`);
9801
+ var root_31 = /* @__PURE__ */ from_html(`<div><div class="ag-body svelte-uhwfyj" role="list"></div></div>`);
8845
9802
  function AgendaWeek($$anchor, $$props) {
8846
9803
  push($$props, true);
8847
9804
  const eventCard = ($$anchor2, ev = noop, isNow = noop, eta2 = noop) => {
8848
- var div = root_6$3();
9805
+ var div = root_7$3();
8849
9806
  let classes;
8850
9807
  let styles;
8851
9808
  var div_1 = child(div);
8852
- var span = child(div_1);
8853
- var text$1 = child(span, true);
8854
- reset(span);
8855
- var node = sibling(span, 2);
8856
- {
8857
- var consequent = ($$anchor3) => {
8858
- var span_1 = root$2();
8859
- var text_1 = child(span_1, true);
8860
- reset(span_1);
8861
- template_effect(() => set_text(text_1, ev().subtitle));
8862
- append($$anchor3, span_1);
8863
- };
8864
- if_block(node, ($$render) => {
8865
- if (ev().subtitle) $$render(consequent);
8866
- });
8867
- }
8868
- var node_1 = sibling(node, 2);
8869
- {
8870
- var consequent_1 = ($$anchor3) => {
8871
- var span_2 = root_1$3();
8872
- var text_2 = child(span_2, true);
8873
- reset(span_2);
8874
- template_effect(() => set_text(text_2, ev().location));
8875
- append($$anchor3, span_2);
8876
- };
8877
- if_block(node_1, ($$render) => {
8878
- if (ev().location) $$render(consequent_1);
8879
- });
8880
- }
8881
- var span_3 = sibling(node_1, 2);
8882
- var node_2 = child(span_3);
8883
- {
8884
- var consequent_2 = ($$anchor3) => {
8885
- var text_3 = text();
8886
- template_effect(($0) => set_text(text_3, `${get(L).until ?? ""} ${$0 ?? ""}`), [() => fmt(ev().end)]);
8887
- append($$anchor3, text_3);
8888
- };
8889
- var alternate = ($$anchor3) => {
8890
- var text_4 = text();
8891
- template_effect(($0, $1) => set_text(text_4, `${$0 ?? ""} – ${$1 ?? ""}`), [() => fmt(ev().start), () => fmt(ev().end)]);
8892
- append($$anchor3, text_4);
8893
- };
8894
- if_block(node_2, ($$render) => {
8895
- if (isNow()) $$render(consequent_2);
8896
- else $$render(alternate, -1);
8897
- });
8898
- }
8899
- var span_4 = sibling(node_2, 2);
8900
- var text_5 = child(span_4, true);
8901
- reset(span_4);
8902
- var node_3 = sibling(span_4, 2);
8903
- {
8904
- var consequent_3 = ($$anchor3) => {
8905
- var span_5 = root_2$3();
8906
- var text_6 = child(span_5, true);
8907
- reset(span_5);
8908
- template_effect(() => set_text(text_6, eta2()));
8909
- append($$anchor3, span_5);
8910
- };
8911
- if_block(node_3, ($$render) => {
8912
- if (eta2()) $$render(consequent_3);
8913
- });
8914
- }
8915
- reset(span_3);
8916
- var node_4 = sibling(span_3, 2);
8917
- {
8918
- var consequent_4 = ($$anchor3) => {
8919
- var div_2 = root_4$3();
8920
- each(div_2, 21, () => ev().tags, index, ($$anchor4, tag) => {
8921
- var span_6 = root_3$3();
8922
- var text_7 = child(span_6, true);
8923
- reset(span_6);
8924
- template_effect(() => set_text(text_7, get(tag)));
8925
- append($$anchor4, span_6);
8926
- });
8927
- reset(div_2);
8928
- append($$anchor3, div_2);
8929
- };
8930
- if_block(node_4, ($$render) => {
8931
- if (ev().tags?.length) $$render(consequent_4);
8932
- });
8933
- }
8934
- var node_5 = sibling(node_4, 2);
9809
+ var node = child(div_1);
9810
+ EventContent(node, {
9811
+ get event() {
9812
+ return ev();
9813
+ },
9814
+ children: ($$anchor3, $$slotProps) => {
9815
+ var fragment = root_5$4();
9816
+ var span = first_child(fragment);
9817
+ var text$1 = child(span, true);
9818
+ reset(span);
9819
+ var node_1 = sibling(span, 2);
9820
+ {
9821
+ var consequent = ($$anchor4) => {
9822
+ var span_1 = root$3();
9823
+ var text_1 = child(span_1, true);
9824
+ reset(span_1);
9825
+ template_effect(() => set_text(text_1, ev().subtitle));
9826
+ append($$anchor4, span_1);
9827
+ };
9828
+ if_block(node_1, ($$render) => {
9829
+ if (ev().subtitle) $$render(consequent);
9830
+ });
9831
+ }
9832
+ var node_2 = sibling(node_1, 2);
9833
+ {
9834
+ var consequent_1 = ($$anchor4) => {
9835
+ var span_2 = root_1$4();
9836
+ var text_2 = child(span_2, true);
9837
+ reset(span_2);
9838
+ template_effect(() => set_text(text_2, ev().location));
9839
+ append($$anchor4, span_2);
9840
+ };
9841
+ if_block(node_2, ($$render) => {
9842
+ if (ev().location) $$render(consequent_1);
9843
+ });
9844
+ }
9845
+ var span_3 = sibling(node_2, 2);
9846
+ var node_3 = child(span_3);
9847
+ {
9848
+ var consequent_2 = ($$anchor4) => {
9849
+ var text_3 = text();
9850
+ template_effect(($0) => set_text(text_3, `${get(L).until ?? ""} ${$0 ?? ""}`), [() => fmt(ev().end)]);
9851
+ append($$anchor4, text_3);
9852
+ };
9853
+ var alternate = ($$anchor4) => {
9854
+ var text_4 = text();
9855
+ template_effect(($0, $1) => set_text(text_4, `${$0 ?? ""} – ${$1 ?? ""}`), [() => fmt(ev().start), () => fmt(ev().end)]);
9856
+ append($$anchor4, text_4);
9857
+ };
9858
+ if_block(node_3, ($$render) => {
9859
+ if (isNow()) $$render(consequent_2);
9860
+ else $$render(alternate, -1);
9861
+ });
9862
+ }
9863
+ var span_4 = sibling(node_3, 2);
9864
+ var text_5 = child(span_4, true);
9865
+ reset(span_4);
9866
+ var node_4 = sibling(span_4, 2);
9867
+ {
9868
+ var consequent_3 = ($$anchor4) => {
9869
+ var span_5 = root_2$4();
9870
+ var text_6 = child(span_5, true);
9871
+ reset(span_5);
9872
+ template_effect(() => set_text(text_6, eta2()));
9873
+ append($$anchor4, span_5);
9874
+ };
9875
+ if_block(node_4, ($$render) => {
9876
+ if (eta2()) $$render(consequent_3);
9877
+ });
9878
+ }
9879
+ reset(span_3);
9880
+ var node_5 = sibling(span_3, 2);
9881
+ {
9882
+ var consequent_4 = ($$anchor4) => {
9883
+ var div_2 = root_4$4();
9884
+ each(div_2, 21, () => ev().tags, index, ($$anchor5, tag) => {
9885
+ var span_6 = root_3$4();
9886
+ var text_7 = child(span_6, true);
9887
+ reset(span_6);
9888
+ template_effect(() => set_text(text_7, get(tag)));
9889
+ append($$anchor5, span_6);
9890
+ });
9891
+ reset(div_2);
9892
+ append($$anchor4, div_2);
9893
+ };
9894
+ if_block(node_5, ($$render) => {
9895
+ if (ev().tags?.length) $$render(consequent_4);
9896
+ });
9897
+ }
9898
+ template_effect(
9899
+ ($0) => {
9900
+ set_text(text$1, ev().title);
9901
+ set_text(text_5, $0);
9902
+ },
9903
+ [() => duration(ev())]
9904
+ );
9905
+ append($$anchor3, fragment);
9906
+ },
9907
+ $$slots: { default: true }
9908
+ });
9909
+ var node_6 = sibling(node, 2);
8935
9910
  {
8936
9911
  var consequent_5 = ($$anchor3) => {
8937
- var div_3 = root_5$3();
9912
+ var div_3 = root_6$4();
8938
9913
  var div_4 = child(div_3);
8939
9914
  let styles_1;
8940
9915
  reset(div_3);
8941
9916
  template_effect(($0) => styles_1 = set_style(div_4, "", styles_1, $0), [() => ({ width: `${prog(ev()) * 100}%` })]);
8942
9917
  append($$anchor3, div_3);
8943
9918
  };
8944
- if_block(node_5, ($$render) => {
9919
+ if_block(node_6, ($$render) => {
8945
9920
  if (isNow()) $$render(consequent_5);
8946
9921
  });
8947
9922
  }
8948
9923
  reset(div_1);
8949
9924
  reset(div);
8950
9925
  template_effect(
8951
- ($0, $1, $2, $3) => {
9926
+ ($0, $1, $2) => {
8952
9927
  classes = set_class(div, 1, "ag-card svelte-uhwfyj", null, classes, {
8953
9928
  "ag-card--selected": selectedEventId() === ev().id,
8954
9929
  "ag-card--cancelled": ev().status === "cancelled",
@@ -8958,13 +9933,10 @@
8958
9933
  });
8959
9934
  set_attribute(div, "aria-label", `${ev().title ?? ""}${ev().status === "cancelled" ? " (cancelled)" : ""}${ev().status === "tentative" ? " (tentative)" : ""}${ev().status === "full" ? " (full)" : ""}${ev().status === "limited" ? " (limited)" : ""}, ${$0 ?? ""} to ${$1 ?? ""}, ${$2 ?? ""}`);
8960
9935
  styles = set_style(div, "", styles, { "--ev-color": ev().color || "var(--dt-accent)" });
8961
- set_text(text$1, ev().title);
8962
- set_text(text_5, $3);
8963
9936
  },
8964
9937
  [
8965
9938
  () => fmt(ev().start),
8966
9939
  () => fmt(ev().end),
8967
- () => duration(ev()),
8968
9940
  () => duration(ev())
8969
9941
  ]
8970
9942
  );
@@ -8978,7 +9950,7 @@
8978
9950
  let mondayStart = prop($$props, "mondayStart", 3, true);
8979
9951
  prop($$props, "height", 3, 520);
8980
9952
  let events = prop($$props, "events", 19, () => []), style = prop($$props, "style", 3, ""), selectedEventId = prop($$props, "selectedEventId", 3, null);
8981
- const clock = createClock();
9953
+ const clock = createClock(ctx.timezone);
8982
9954
  const viewState = /* @__PURE__ */ user_derived(() => ctx.viewState);
8983
9955
  const equalDays = /* @__PURE__ */ user_derived(() => ctx.equalDays);
8984
9956
  const showDates = /* @__PURE__ */ user_derived(() => ctx.showDates);
@@ -9082,42 +10054,42 @@
9082
10054
  }
9083
10055
  return out;
9084
10056
  });
9085
- var div_5 = root_29();
10057
+ var div_5 = root_31();
9086
10058
  let classes_1;
9087
10059
  var div_6 = child(div_5);
9088
10060
  each(div_6, 21, () => get(weekDays), (day) => day.ms, ($$anchor2, day) => {
9089
10061
  const expanded = /* @__PURE__ */ user_derived(() => get(day).tier === "today" || get(day).tier === "tomorrow");
9090
- var fragment_2 = comment();
9091
- var node_6 = first_child(fragment_2);
10062
+ var fragment_3 = comment();
10063
+ var node_7 = first_child(fragment_3);
9092
10064
  {
9093
10065
  var consequent_8 = ($$anchor3) => {
9094
- var div_7 = root_9$2();
10066
+ var div_7 = root_10$2();
9095
10067
  let classes_2;
9096
10068
  var div_8 = child(div_7);
9097
10069
  var div_9 = child(div_8);
9098
10070
  var span_7 = child(div_9);
9099
10071
  var text_8 = child(span_7, true);
9100
10072
  reset(span_7);
9101
- var node_7 = sibling(span_7, 2);
10073
+ var node_8 = sibling(span_7, 2);
9102
10074
  {
9103
10075
  var consequent_6 = ($$anchor4) => {
9104
- var span_8 = root_7$3();
10076
+ var span_8 = root_8$3();
9105
10077
  var text_9 = child(span_8, true);
9106
10078
  reset(span_8);
9107
10079
  template_effect(() => set_text(text_9, get(day).dateLabel));
9108
10080
  append($$anchor4, span_8);
9109
10081
  };
9110
- if_block(node_7, ($$render) => {
10082
+ if_block(node_8, ($$render) => {
9111
10083
  if (get(showDates)) $$render(consequent_6);
9112
10084
  });
9113
10085
  }
9114
10086
  reset(div_9);
9115
- var node_8 = sibling(div_9, 2);
10087
+ var node_9 = sibling(div_9, 2);
9116
10088
  {
9117
10089
  var consequent_7 = ($$anchor4) => {
9118
- var div_10 = root_8$2();
9119
- var node_9 = child(div_10);
9120
- snippet(node_9, () => get(dayHeaderSnippet), () => ({
10090
+ var div_10 = root_9$2();
10091
+ var node_10 = child(div_10);
10092
+ snippet(node_10, () => get(dayHeaderSnippet), () => ({
9121
10093
  date: new Date(get(day).ms),
9122
10094
  isToday: false,
9123
10095
  dayName: get(day).dayName
@@ -9125,7 +10097,7 @@
9125
10097
  reset(div_10);
9126
10098
  append($$anchor4, div_10);
9127
10099
  };
9128
- if_block(node_8, ($$render) => {
10100
+ if_block(node_9, ($$render) => {
9129
10101
  if (get(dayHeaderSnippet)) $$render(consequent_7);
9130
10102
  });
9131
10103
  }
@@ -9143,54 +10115,54 @@
9143
10115
  append($$anchor3, div_7);
9144
10116
  };
9145
10117
  var alternate_2 = ($$anchor3) => {
9146
- var div_11 = root_28();
10118
+ var div_11 = root_30();
9147
10119
  let classes_3;
9148
10120
  var div_12 = child(div_11);
9149
10121
  var div_13 = child(div_12);
9150
- var node_10 = child(div_13);
10122
+ var node_11 = child(div_13);
9151
10123
  {
9152
10124
  var consequent_9 = ($$anchor4) => {
9153
- var span_9 = root_10$2();
10125
+ var span_9 = root_11$2();
9154
10126
  var text_10 = child(span_9, true);
9155
10127
  reset(span_9);
9156
10128
  template_effect(() => set_text(text_10, get(L).today));
9157
10129
  append($$anchor4, span_9);
9158
10130
  };
9159
10131
  var consequent_10 = ($$anchor4) => {
9160
- var span_10 = root_11$2();
10132
+ var span_10 = root_12$2();
9161
10133
  var text_11 = child(span_10, true);
9162
10134
  reset(span_10);
9163
10135
  template_effect(() => set_text(text_11, get(L).tomorrow));
9164
10136
  append($$anchor4, span_10);
9165
10137
  };
9166
- if_block(node_10, ($$render) => {
10138
+ if_block(node_11, ($$render) => {
9167
10139
  if (get(day).tier === "today") $$render(consequent_9);
9168
10140
  else if (get(day).tier === "tomorrow") $$render(consequent_10, 1);
9169
10141
  });
9170
10142
  }
9171
- var span_11 = sibling(node_10, 2);
10143
+ var span_11 = sibling(node_11, 2);
9172
10144
  var text_12 = child(span_11, true);
9173
10145
  reset(span_11);
9174
- var node_11 = sibling(span_11, 2);
10146
+ var node_12 = sibling(span_11, 2);
9175
10147
  {
9176
10148
  var consequent_11 = ($$anchor4) => {
9177
- var span_12 = root_7$3();
10149
+ var span_12 = root_8$3();
9178
10150
  var text_13 = child(span_12, true);
9179
10151
  reset(span_12);
9180
10152
  template_effect(() => set_text(text_13, get(day).dateLabel));
9181
10153
  append($$anchor4, span_12);
9182
10154
  };
9183
- if_block(node_11, ($$render) => {
10155
+ if_block(node_12, ($$render) => {
9184
10156
  if (get(showDates)) $$render(consequent_11);
9185
10157
  });
9186
10158
  }
9187
10159
  reset(div_13);
9188
- var node_12 = sibling(div_13, 2);
10160
+ var node_13 = sibling(div_13, 2);
9189
10161
  {
9190
10162
  var consequent_12 = ($$anchor4) => {
9191
- var div_14 = root_8$2();
9192
- var node_13 = child(div_14);
9193
- snippet(node_13, () => get(dayHeaderSnippet), () => ({
10163
+ var div_14 = root_9$2();
10164
+ var node_14 = child(div_14);
10165
+ snippet(node_14, () => get(dayHeaderSnippet), () => ({
9194
10166
  date: new Date(get(day).ms),
9195
10167
  isToday: get(day).tier === "today",
9196
10168
  dayName: get(day).dayName
@@ -9198,17 +10170,17 @@
9198
10170
  reset(div_14);
9199
10171
  append($$anchor4, div_14);
9200
10172
  };
9201
- if_block(node_12, ($$render) => {
10173
+ if_block(node_13, ($$render) => {
9202
10174
  if (get(dayHeaderSnippet)) $$render(consequent_12);
9203
10175
  });
9204
10176
  }
9205
10177
  reset(div_12);
9206
- var node_14 = sibling(div_12, 2);
10178
+ var node_15 = sibling(div_12, 2);
9207
10179
  {
9208
10180
  var consequent_13 = ($$anchor4) => {
9209
- var div_15 = root_13$1();
10181
+ var div_15 = root_14$1();
9210
10182
  each(div_15, 21, () => get(day).allDayEvents, (ev) => ev.id, ($$anchor5, ev) => {
9211
- var div_16 = root_12$2();
10183
+ var div_16 = root_13$1();
9212
10184
  let classes_4;
9213
10185
  let styles_2;
9214
10186
  var span_13 = sibling(child(div_16), 2);
@@ -9231,68 +10203,87 @@
9231
10203
  reset(div_15);
9232
10204
  append($$anchor4, div_15);
9233
10205
  };
9234
- if_block(node_14, ($$render) => {
10206
+ if_block(node_15, ($$render) => {
9235
10207
  if (get(day).allDayEvents.length > 0) $$render(consequent_13);
9236
10208
  });
9237
10209
  }
9238
- var node_15 = sibling(node_14, 2);
10210
+ var node_16 = sibling(node_15, 2);
9239
10211
  {
9240
10212
  var consequent_14 = ($$anchor4) => {
9241
- var div_17 = root_14$1();
10213
+ var div_17 = root_15$1();
9242
10214
  var text_15 = child(div_17, true);
9243
10215
  reset(div_17);
9244
10216
  template_effect(() => set_text(text_15, get(L).noEvents));
9245
10217
  append($$anchor4, div_17);
9246
10218
  };
9247
10219
  var consequent_17 = ($$anchor4) => {
9248
- var div_18 = root_18();
10220
+ var div_18 = root_20();
9249
10221
  each(div_18, 21, () => get(day).timedEvents, (ev) => ev.id, ($$anchor5, ev) => {
9250
- var div_19 = root_17();
10222
+ var div_19 = root_19$1();
9251
10223
  let classes_5;
9252
10224
  let styles_3;
9253
- var span_14 = sibling(child(div_19), 2);
9254
- var text_16 = child(span_14, true);
9255
- reset(span_14);
9256
- var span_15 = sibling(span_14, 2);
9257
- var text_17 = child(span_15, true);
9258
- reset(span_15);
9259
- var node_16 = sibling(span_15, 2);
9260
- {
9261
- var consequent_15 = ($$anchor6) => {
9262
- var span_16 = root_15$1();
9263
- var text_18 = child(span_16, true);
9264
- reset(span_16);
9265
- template_effect(() => set_text(text_18, get(ev).subtitle));
9266
- append($$anchor6, span_16);
9267
- };
9268
- if_block(node_16, ($$render) => {
9269
- if (get(ev).subtitle) $$render(consequent_15);
9270
- });
9271
- }
9272
- var node_17 = sibling(node_16, 2);
9273
- {
9274
- var consequent_16 = ($$anchor6) => {
9275
- var fragment_3 = comment();
9276
- var node_18 = first_child(fragment_3);
9277
- each(node_18, 17, () => get(ev).tags, index, ($$anchor7, tag) => {
9278
- var span_17 = root_16$1();
9279
- var text_19 = child(span_17, true);
9280
- reset(span_17);
9281
- template_effect(() => set_text(text_19, get(tag)));
9282
- append($$anchor7, span_17);
9283
- });
9284
- append($$anchor6, fragment_3);
9285
- };
9286
- if_block(node_17, ($$render) => {
9287
- if (get(ev).tags?.length) $$render(consequent_16);
9288
- });
9289
- }
9290
- var span_18 = sibling(node_17, 2);
9291
- var text_20 = child(span_18, true);
9292
- reset(span_18);
10225
+ var node_17 = child(div_19);
10226
+ EventContent(node_17, {
10227
+ get event() {
10228
+ return get(ev);
10229
+ },
10230
+ children: ($$anchor6, $$slotProps) => {
10231
+ var fragment_4 = root_18$1();
10232
+ var span_14 = sibling(first_child(fragment_4), 2);
10233
+ var text_16 = child(span_14, true);
10234
+ reset(span_14);
10235
+ var span_15 = sibling(span_14, 2);
10236
+ var text_17 = child(span_15, true);
10237
+ reset(span_15);
10238
+ var node_18 = sibling(span_15, 2);
10239
+ {
10240
+ var consequent_15 = ($$anchor7) => {
10241
+ var span_16 = root_16$1();
10242
+ var text_18 = child(span_16, true);
10243
+ reset(span_16);
10244
+ template_effect(() => set_text(text_18, get(ev).subtitle));
10245
+ append($$anchor7, span_16);
10246
+ };
10247
+ if_block(node_18, ($$render) => {
10248
+ if (get(ev).subtitle) $$render(consequent_15);
10249
+ });
10250
+ }
10251
+ var node_19 = sibling(node_18, 2);
10252
+ {
10253
+ var consequent_16 = ($$anchor7) => {
10254
+ var fragment_5 = comment();
10255
+ var node_20 = first_child(fragment_5);
10256
+ each(node_20, 17, () => get(ev).tags, index, ($$anchor8, tag) => {
10257
+ var span_17 = root_17$1();
10258
+ var text_19 = child(span_17, true);
10259
+ reset(span_17);
10260
+ template_effect(() => set_text(text_19, get(tag)));
10261
+ append($$anchor8, span_17);
10262
+ });
10263
+ append($$anchor7, fragment_5);
10264
+ };
10265
+ if_block(node_19, ($$render) => {
10266
+ if (get(ev).tags?.length) $$render(consequent_16);
10267
+ });
10268
+ }
10269
+ var span_18 = sibling(node_19, 2);
10270
+ var text_20 = child(span_18, true);
10271
+ reset(span_18);
10272
+ template_effect(
10273
+ ($0, $1) => {
10274
+ set_text(text_16, $0);
10275
+ set_text(text_17, get(ev).title);
10276
+ set_text(text_20, $1);
10277
+ },
10278
+ [() => fmt(get(ev).start), () => duration(get(ev))]
10279
+ );
10280
+ append($$anchor6, fragment_4);
10281
+ },
10282
+ $$slots: { default: true }
10283
+ });
9293
10284
  reset(div_19);
9294
10285
  template_effect(
9295
- ($0, $1, $2, $3) => {
10286
+ ($0, $1) => {
9296
10287
  classes_5 = set_class(div_19, 1, "ag-compact svelte-uhwfyj", null, classes_5, {
9297
10288
  "ag-compact--selected": selectedEventId() === get(ev).id,
9298
10289
  "ag-compact--cancelled": get(ev).status === "cancelled",
@@ -9302,16 +10293,8 @@
9302
10293
  });
9303
10294
  set_attribute(div_19, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""}, ${$1 ?? ""}`);
9304
10295
  styles_3 = set_style(div_19, "", styles_3, { "--ev-color": get(ev).color || "var(--dt-accent)" });
9305
- set_text(text_16, $2);
9306
- set_text(text_17, get(ev).title);
9307
- set_text(text_20, $3);
9308
10296
  },
9309
- [
9310
- () => fmt(get(ev).start),
9311
- () => duration(get(ev)),
9312
- () => fmt(get(ev).start),
9313
- () => duration(get(ev))
9314
- ]
10297
+ [() => fmt(get(ev).start), () => duration(get(ev))]
9315
10298
  );
9316
10299
  delegated("click", div_19, () => handleClick(get(ev)));
9317
10300
  event("pointerenter", div_19, () => get(oneventhover)?.(get(ev)));
@@ -9322,9 +10305,9 @@
9322
10305
  append($$anchor4, div_18);
9323
10306
  };
9324
10307
  var consequent_18 = ($$anchor4) => {
9325
- var div_20 = root_20();
10308
+ var div_20 = root_22();
9326
10309
  each(div_20, 21, () => groupIntoSlots(get(day).timedEvents), (slot) => slot.startMs, ($$anchor5, slot) => {
9327
- var div_21 = root_19();
10310
+ var div_21 = root_21();
9328
10311
  var div_22 = child(div_21);
9329
10312
  let classes_6;
9330
10313
  each(div_22, 21, () => get(slot).events, (ev) => ev.id, ($$anchor6, ev) => {
@@ -9339,34 +10322,34 @@
9339
10322
  append($$anchor4, div_20);
9340
10323
  };
9341
10324
  var consequent_21 = ($$anchor4) => {
9342
- var div_23 = root_23();
9343
- var node_19 = child(div_23);
10325
+ var div_23 = root_25();
10326
+ var node_21 = child(div_23);
9344
10327
  {
9345
10328
  var consequent_19 = ($$anchor5) => {
9346
- var fragment_5 = comment();
9347
- var node_20 = first_child(fragment_5);
9348
- each(node_20, 17, () => get(day).currentEvents, (ev) => ev.id, ($$anchor6, ev) => {
9349
- var div_24 = root_21();
10329
+ var fragment_7 = comment();
10330
+ var node_22 = first_child(fragment_7);
10331
+ each(node_22, 17, () => get(day).currentEvents, (ev) => ev.id, ($$anchor6, ev) => {
10332
+ var div_24 = root_23();
9350
10333
  var div_25 = child(div_24);
9351
10334
  var span_19 = child(div_25);
9352
10335
  var text_21 = child(span_19, true);
9353
10336
  reset(span_19);
9354
10337
  reset(div_25);
9355
- var node_21 = sibling(div_25, 2);
9356
- eventCard(node_21, () => get(ev), () => true);
10338
+ var node_23 = sibling(div_25, 2);
10339
+ eventCard(node_23, () => get(ev), () => true);
9357
10340
  reset(div_24);
9358
10341
  template_effect(() => set_text(text_21, get(L).now));
9359
10342
  append($$anchor6, div_24);
9360
10343
  });
9361
- append($$anchor5, fragment_5);
10344
+ append($$anchor5, fragment_7);
9362
10345
  };
9363
- if_block(node_19, ($$render) => {
10346
+ if_block(node_21, ($$render) => {
9364
10347
  if (get(day).currentEvents.length > 0) $$render(consequent_19);
9365
10348
  });
9366
10349
  }
9367
- var node_22 = sibling(node_19, 2);
9368
- each(node_22, 17, () => groupIntoSlots(get(day).upcomingEvents), (slot) => slot.startMs, ($$anchor5, slot) => {
9369
- var div_26 = root_19();
10350
+ var node_24 = sibling(node_21, 2);
10351
+ each(node_24, 17, () => groupIntoSlots(get(day).upcomingEvents), (slot) => slot.startMs, ($$anchor5, slot) => {
10352
+ var div_26 = root_21();
9370
10353
  var div_27 = child(div_26);
9371
10354
  let classes_7;
9372
10355
  each(div_27, 21, () => get(slot).events, (ev) => ev.id, ($$anchor6, ev) => {
@@ -9380,85 +10363,104 @@
9380
10363
  template_effect(() => classes_7 = set_class(div_27, 1, "ag-wslot-cards svelte-uhwfyj", null, classes_7, { "ag-wslot-cards--multi": get(slot).events.length > 1 }));
9381
10364
  append($$anchor5, div_26);
9382
10365
  });
9383
- var node_23 = sibling(node_22, 2);
10366
+ var node_25 = sibling(node_24, 2);
9384
10367
  {
9385
10368
  var consequent_20 = ($$anchor5) => {
9386
- var div_28 = root_22();
10369
+ var div_28 = root_24();
9387
10370
  var text_22 = child(div_28);
9388
10371
  reset(div_28);
9389
10372
  template_effect(($0) => set_text(text_22, `✓ ${$0 ?? ""}`), [() => get(L).nCompleted(get(day).pastEvents.length)]);
9390
10373
  append($$anchor5, div_28);
9391
10374
  };
9392
- if_block(node_23, ($$render) => {
10375
+ if_block(node_25, ($$render) => {
9393
10376
  if (get(day).pastEvents.length > 0) $$render(consequent_20);
9394
10377
  });
9395
10378
  }
9396
10379
  reset(div_23);
9397
10380
  append($$anchor4, div_23);
9398
10381
  };
9399
- var alternate_1 = ($$anchor4) => {
9400
- var div_29 = root_27();
9401
- var node_24 = child(div_29);
9402
- each(node_24, 17, () => get(day).timedEvents.slice(0, 4), (ev) => ev.id, ($$anchor5, ev) => {
9403
- var div_30 = root_25();
9404
- let classes_8;
9405
- let styles_4;
9406
- var span_20 = sibling(child(div_30), 2);
9407
- var text_23 = child(span_20, true);
9408
- reset(span_20);
9409
- var span_21 = sibling(span_20, 2);
9410
- var text_24 = child(span_21, true);
9411
- reset(span_21);
9412
- var node_25 = sibling(span_21, 2);
9413
- {
9414
- var consequent_22 = ($$anchor6) => {
9415
- var span_22 = root_24();
9416
- var text_25 = child(span_22, true);
9417
- reset(span_22);
9418
- template_effect(() => set_text(text_25, get(ev).location));
9419
- append($$anchor6, span_22);
9420
- };
9421
- if_block(node_25, ($$render) => {
9422
- if (get(ev).location) $$render(consequent_22);
9423
- });
9424
- }
9425
- var node_26 = sibling(node_25, 2);
9426
- {
9427
- var consequent_23 = ($$anchor6) => {
9428
- var span_23 = root_15$1();
9429
- var text_26 = child(span_23, true);
9430
- reset(span_23);
9431
- template_effect(() => set_text(text_26, get(ev).subtitle));
9432
- append($$anchor6, span_23);
9433
- };
9434
- if_block(node_26, ($$render) => {
9435
- if (get(ev).subtitle) $$render(consequent_23);
9436
- });
9437
- }
9438
- var node_27 = sibling(node_26, 2);
9439
- {
9440
- var consequent_24 = ($$anchor6) => {
9441
- var fragment_7 = comment();
9442
- var node_28 = first_child(fragment_7);
9443
- each(node_28, 17, () => get(ev).tags, index, ($$anchor7, tag) => {
9444
- var span_24 = root_16$1();
9445
- var text_27 = child(span_24, true);
9446
- reset(span_24);
9447
- template_effect(() => set_text(text_27, get(tag)));
9448
- append($$anchor7, span_24);
9449
- });
9450
- append($$anchor6, fragment_7);
9451
- };
9452
- if_block(node_27, ($$render) => {
9453
- if (get(ev).tags?.length) $$render(consequent_24);
9454
- });
9455
- }
9456
- var span_25 = sibling(node_27, 2);
9457
- var text_28 = child(span_25, true);
9458
- reset(span_25);
10382
+ var alternate_1 = ($$anchor4) => {
10383
+ var div_29 = root_29();
10384
+ var node_26 = child(div_29);
10385
+ each(node_26, 17, () => get(day).timedEvents.slice(0, 4), (ev) => ev.id, ($$anchor5, ev) => {
10386
+ var div_30 = root_19$1();
10387
+ let classes_8;
10388
+ let styles_4;
10389
+ var node_27 = child(div_30);
10390
+ EventContent(node_27, {
10391
+ get event() {
10392
+ return get(ev);
10393
+ },
10394
+ children: ($$anchor6, $$slotProps) => {
10395
+ var fragment_9 = root_27();
10396
+ var span_20 = sibling(first_child(fragment_9), 2);
10397
+ var text_23 = child(span_20, true);
10398
+ reset(span_20);
10399
+ var span_21 = sibling(span_20, 2);
10400
+ var text_24 = child(span_21, true);
10401
+ reset(span_21);
10402
+ var node_28 = sibling(span_21, 2);
10403
+ {
10404
+ var consequent_22 = ($$anchor7) => {
10405
+ var span_22 = root_26();
10406
+ var text_25 = child(span_22, true);
10407
+ reset(span_22);
10408
+ template_effect(() => set_text(text_25, get(ev).location));
10409
+ append($$anchor7, span_22);
10410
+ };
10411
+ if_block(node_28, ($$render) => {
10412
+ if (get(ev).location) $$render(consequent_22);
10413
+ });
10414
+ }
10415
+ var node_29 = sibling(node_28, 2);
10416
+ {
10417
+ var consequent_23 = ($$anchor7) => {
10418
+ var span_23 = root_16$1();
10419
+ var text_26 = child(span_23, true);
10420
+ reset(span_23);
10421
+ template_effect(() => set_text(text_26, get(ev).subtitle));
10422
+ append($$anchor7, span_23);
10423
+ };
10424
+ if_block(node_29, ($$render) => {
10425
+ if (get(ev).subtitle) $$render(consequent_23);
10426
+ });
10427
+ }
10428
+ var node_30 = sibling(node_29, 2);
10429
+ {
10430
+ var consequent_24 = ($$anchor7) => {
10431
+ var fragment_10 = comment();
10432
+ var node_31 = first_child(fragment_10);
10433
+ each(node_31, 17, () => get(ev).tags, index, ($$anchor8, tag) => {
10434
+ var span_24 = root_17$1();
10435
+ var text_27 = child(span_24, true);
10436
+ reset(span_24);
10437
+ template_effect(() => set_text(text_27, get(tag)));
10438
+ append($$anchor8, span_24);
10439
+ });
10440
+ append($$anchor7, fragment_10);
10441
+ };
10442
+ if_block(node_30, ($$render) => {
10443
+ if (get(ev).tags?.length) $$render(consequent_24);
10444
+ });
10445
+ }
10446
+ var span_25 = sibling(node_30, 2);
10447
+ var text_28 = child(span_25, true);
10448
+ reset(span_25);
10449
+ template_effect(
10450
+ ($0, $1) => {
10451
+ set_text(text_23, $0);
10452
+ set_text(text_24, get(ev).title);
10453
+ set_text(text_28, $1);
10454
+ },
10455
+ [() => fmt(get(ev).start), () => duration(get(ev))]
10456
+ );
10457
+ append($$anchor6, fragment_9);
10458
+ },
10459
+ $$slots: { default: true }
10460
+ });
9459
10461
  reset(div_30);
9460
10462
  template_effect(
9461
- ($0, $1, $2, $3) => {
10463
+ ($0, $1) => {
9462
10464
  classes_8 = set_class(div_30, 1, "ag-compact svelte-uhwfyj", null, classes_8, {
9463
10465
  "ag-compact--selected": selectedEventId() === get(ev).id,
9464
10466
  "ag-compact--cancelled": get(ev).status === "cancelled",
@@ -9468,39 +10470,31 @@
9468
10470
  });
9469
10471
  set_attribute(div_30, "aria-label", `${get(ev).title ?? ""}, ${$0 ?? ""}, ${$1 ?? ""}`);
9470
10472
  styles_4 = set_style(div_30, "", styles_4, { "--ev-color": get(ev).color || "var(--dt-accent)" });
9471
- set_text(text_23, $2);
9472
- set_text(text_24, get(ev).title);
9473
- set_text(text_28, $3);
9474
10473
  },
9475
- [
9476
- () => fmt(get(ev).start),
9477
- () => duration(get(ev)),
9478
- () => fmt(get(ev).start),
9479
- () => duration(get(ev))
9480
- ]
10474
+ [() => fmt(get(ev).start), () => duration(get(ev))]
9481
10475
  );
9482
10476
  delegated("click", div_30, () => handleClick(get(ev)));
9483
10477
  event("pointerenter", div_30, () => get(oneventhover)?.(get(ev)));
9484
10478
  delegated("keydown", div_30, (e) => handleKeydown(e, get(ev)));
9485
10479
  append($$anchor5, div_30);
9486
10480
  });
9487
- var node_29 = sibling(node_24, 2);
10481
+ var node_32 = sibling(node_26, 2);
9488
10482
  {
9489
10483
  var consequent_25 = ($$anchor5) => {
9490
- var div_31 = root_26();
10484
+ var div_31 = root_28();
9491
10485
  var text_29 = child(div_31, true);
9492
10486
  reset(div_31);
9493
10487
  template_effect(($0) => set_text(text_29, $0), [() => get(L).nMore(get(day).timedEvents.length - 4)]);
9494
10488
  append($$anchor5, div_31);
9495
10489
  };
9496
- if_block(node_29, ($$render) => {
10490
+ if_block(node_32, ($$render) => {
9497
10491
  if (get(day).timedEvents.length > 4) $$render(consequent_25);
9498
10492
  });
9499
10493
  }
9500
10494
  reset(div_29);
9501
10495
  append($$anchor4, div_29);
9502
10496
  };
9503
- if_block(node_15, ($$render) => {
10497
+ if_block(node_16, ($$render) => {
9504
10498
  if (get(day).events.length === 0) $$render(consequent_14);
9505
10499
  else if (get(compact)) $$render(consequent_17, 1);
9506
10500
  else if (get(equalDays)) $$render(consequent_18, 2);
@@ -9525,12 +10519,12 @@
9525
10519
  );
9526
10520
  append($$anchor3, div_11);
9527
10521
  };
9528
- if_block(node_6, ($$render) => {
10522
+ if_block(node_7, ($$render) => {
9529
10523
  if (get(day).tier === "past") $$render(consequent_8);
9530
10524
  else $$render(alternate_2, -1);
9531
10525
  });
9532
10526
  }
9533
- append($$anchor2, fragment_2);
10527
+ append($$anchor2, fragment_3);
9534
10528
  });
9535
10529
  reset(div_6);
9536
10530
  reset(div_5);
@@ -9564,22 +10558,25 @@
9564
10558
  }
9565
10559
  append($$anchor, fragment);
9566
10560
  }
9567
- var root_1$2 = /* @__PURE__ */ from_html(`<span class="mb-allday-span svelte-zbkzcp"> </span>`);
9568
- var root_2$2 = /* @__PURE__ */ from_html(`<button><span class="mb-allday-dot svelte-zbkzcp"></span> <span class="mb-allday-title svelte-zbkzcp"> </span> <!></button>`);
9569
- var root_3$2 = /* @__PURE__ */ from_html(`<span class="mb-allday-more svelte-zbkzcp"> </span>`);
9570
- var root_4$2 = /* @__PURE__ */ from_html(`<div class="mb-allday svelte-zbkzcp"><!> <!></div>`);
9571
- var root_5$2 = /* @__PURE__ */ from_html(`<span class="mb-blocked-label svelte-zbkzcp"> </span>`);
9572
- var root_6$2 = /* @__PURE__ */ from_html(`<div><div class="mb-hour-label svelte-zbkzcp"> </div> <div class="mb-hour-line svelte-zbkzcp"></div> <!></div>`);
10561
+ var root_1$3 = /* @__PURE__ */ from_html(`<span class="mb-allday-span svelte-zbkzcp"> </span>`);
10562
+ var root_2$3 = /* @__PURE__ */ from_html(`<button><span class="mb-allday-dot svelte-zbkzcp"></span> <span class="mb-allday-title svelte-zbkzcp"> </span> <!></button>`);
10563
+ var root_3$3 = /* @__PURE__ */ from_html(`<span class="mb-allday-more svelte-zbkzcp"> </span>`);
10564
+ var root_4$3 = /* @__PURE__ */ from_html(`<div class="mb-allday svelte-zbkzcp"><!> <!></div>`);
10565
+ var root_5$3 = /* @__PURE__ */ from_html(`<span class="mb-blocked-label svelte-zbkzcp"> </span>`);
10566
+ var root_6$3 = /* @__PURE__ */ from_html(`<div><div class="mb-hour-label svelte-zbkzcp"> </div> <div class="mb-hour-line svelte-zbkzcp"></div> <!></div>`);
9573
10567
  var root_7$2 = /* @__PURE__ */ from_html(`<div class="mb-now svelte-zbkzcp"><span class="mb-now-label svelte-zbkzcp"> </span> <div class="mb-now-line svelte-zbkzcp"></div></div>`);
9574
- var root_8$1 = /* @__PURE__ */ from_html(`<span class="mb-ev-time svelte-zbkzcp"> </span>`);
10568
+ var root_8$2 = /* @__PURE__ */ from_html(`<span class="mb-ev-time svelte-zbkzcp"> </span>`);
9575
10569
  var root_9$1 = /* @__PURE__ */ from_html(`<span class="mb-ev-sub svelte-zbkzcp"> </span>`);
9576
10570
  var root_10$1 = /* @__PURE__ */ from_html(`<span class="mb-ev-loc svelte-zbkzcp"> </span>`);
9577
10571
  var root_11$1 = /* @__PURE__ */ from_html(`<span class="mb-ev-tag svelte-zbkzcp"> </span>`);
9578
10572
  var root_12$1 = /* @__PURE__ */ from_html(`<div class="mb-ev-tags svelte-zbkzcp"></div>`);
9579
- var root_13 = /* @__PURE__ */ from_html(`<span class="mb-ev-live svelte-zbkzcp"></span>`);
9580
- var root_14 = /* @__PURE__ */ from_html(`<span class="mb-ev-next-badge svelte-zbkzcp"> </span>`);
9581
- var root_15 = /* @__PURE__ */ from_html(`<button><div class="mb-ev-stripe svelte-zbkzcp"></div> <div class="mb-ev-body svelte-zbkzcp"><span class="mb-ev-title svelte-zbkzcp"> </span> <!> <!> <!> <!></div> <!></button>`);
9582
- var root_16 = /* @__PURE__ */ from_html(`<div role="region"><!> <div class="mb-grid svelte-zbkzcp" role="grid" tabindex="-1"><div class="mb-grid-inner svelte-zbkzcp"><!> <!> <!></div></div></div>`);
10573
+ var root_13 = /* @__PURE__ */ from_html(`<span class="mb-ev-title svelte-zbkzcp"> </span> <!> <!> <!> <!>`, 1);
10574
+ var root_14 = /* @__PURE__ */ from_html(`<span class="mb-ev-live svelte-zbkzcp"></span>`);
10575
+ var root_15 = /* @__PURE__ */ from_html(`<span class="mb-ev-next-badge svelte-zbkzcp"> </span>`);
10576
+ var root_16 = /* @__PURE__ */ from_html(`<span class="mb-ev-handle mb-ev-handle--start svelte-zbkzcp" aria-hidden="true"></span> <span class="mb-ev-handle mb-ev-handle--end svelte-zbkzcp" aria-hidden="true"></span>`, 1);
10577
+ var root_17 = /* @__PURE__ */ from_html(`<button><div class="mb-ev-stripe svelte-zbkzcp"></div> <div class="mb-ev-body svelte-zbkzcp"><!></div> <!> <!></button>`);
10578
+ var root_18 = /* @__PURE__ */ from_html(`<div class="mb-create-ghost svelte-zbkzcp" aria-hidden="true"><span class="mb-create-ghost-time svelte-zbkzcp"> </span></div>`);
10579
+ var root_19 = /* @__PURE__ */ from_html(`<div role="region"><!> <div class="mb-grid svelte-zbkzcp" role="grid" tabindex="-1"><div class="mb-grid-inner svelte-zbkzcp"><!> <!> <!> <!></div></div></div>`);
9583
10580
  function MobileDay($$anchor, $$props) {
9584
10581
  push($$props, true);
9585
10582
  const L = /* @__PURE__ */ user_derived(getLabels);
@@ -9592,7 +10589,10 @@
9592
10589
  const loadRangeCtx = /* @__PURE__ */ user_derived(() => ctx.loadRange);
9593
10590
  const minDuration = /* @__PURE__ */ user_derived(() => ctx.minDuration);
9594
10591
  const blockedSlots = /* @__PURE__ */ user_derived(() => ctx.blockedSlots);
9595
- const clock = createClock();
10592
+ const drag = /* @__PURE__ */ user_derived(() => ctx.drag);
10593
+ const commitDragCtx = /* @__PURE__ */ user_derived(() => ctx.commitDrag);
10594
+ const SNAP_MS = /* @__PURE__ */ user_derived(() => ctx.snapInterval * 6e4);
10595
+ const clock = createClock(ctx.timezone);
9596
10596
  const HOUR_HEIGHT = 64;
9597
10597
  const GUTTER_W = 40;
9598
10598
  const startHour = /* @__PURE__ */ user_derived(() => $$props.visibleHours?.[0] ?? 0);
@@ -9623,6 +10623,7 @@
9623
10623
  const positionedEvents = /* @__PURE__ */ user_derived(() => {
9624
10624
  const now2 = clock.tick;
9625
10625
  const sorted = [...get(timedEvents)];
10626
+ const rsP = get(drag)?.active && (get(drag).mode === "resize-start" || get(drag).mode === "resize-end") ? get(drag).payload : null;
9626
10627
  let nextEventId = null;
9627
10628
  if (get(isToday)) {
9628
10629
  for (const ev of [...sorted].sort((a, b) => a.start.getTime() - b.start.getTime())) {
@@ -9634,8 +10635,11 @@
9634
10635
  }
9635
10636
  }
9636
10637
  const infos = sorted.map((ev) => {
9637
- const sMs = Math.max(ev.start.getTime(), get(dayMs) + get(startHour) * HOUR_MS);
9638
- const eMs = Math.min(ev.end.getTime(), get(dayMs) + get(endHour) * HOUR_MS);
10638
+ const resizing = rsP?.eventId === ev.id;
10639
+ const evStart = resizing ? rsP.start : ev.start;
10640
+ const evEnd = resizing ? rsP.end : ev.end;
10641
+ const sMs = Math.max(evStart.getTime(), get(dayMs) + get(startHour) * HOUR_MS);
10642
+ const eMs = Math.min(evEnd.getTime(), get(dayMs) + get(endHour) * HOUR_MS);
9639
10643
  const topH = (sMs - get(dayMs)) / HOUR_MS - get(startHour);
9640
10644
  const botH = (eMs - get(dayMs)) / HOUR_MS - get(startHour);
9641
10645
  return {
@@ -9644,6 +10648,7 @@
9644
10648
  height: Math.max(24, (botH - topH) * HOUR_HEIGHT),
9645
10649
  isCurrent: ev.start.getTime() <= now2 && ev.end.getTime() > now2,
9646
10650
  isNext: ev.id === nextEventId,
10651
+ isResizing: resizing,
9647
10652
  startMs: sMs,
9648
10653
  endMs: eMs,
9649
10654
  col: 0,
@@ -9695,6 +10700,7 @@
9695
10700
  width: `calc(${100 / info.totalCols}% - ${GUTTER_W / info.totalCols + 2}px)`,
9696
10701
  isCurrent: info.isCurrent,
9697
10702
  isNext: info.isNext,
10703
+ isResizing: info.isResizing,
9698
10704
  col: info.col,
9699
10705
  totalCols: info.totalCols
9700
10706
  }));
@@ -9753,6 +10759,10 @@
9753
10759
  swiping = false;
9754
10760
  }
9755
10761
  function handleGridClick(e) {
10762
+ if (suppressGridClick) {
10763
+ suppressGridClick = false;
10764
+ return;
10765
+ }
9756
10766
  if (!$$props.oneventcreate || readOnly() || get(isDisabled)) return;
9757
10767
  if (e.target.closest(".mb-event")) return;
9758
10768
  const grid = e.currentTarget;
@@ -9766,6 +10776,122 @@
9766
10776
  const end = new Date(start.getTime() + durMin * 6e4);
9767
10777
  $$props.oneventcreate({ start, end });
9768
10778
  }
10779
+ const CREATE_THRESHOLD = 4;
10780
+ let suppressGridClick = false;
10781
+ let mbCreateStartY = 0;
10782
+ let mbCreateAnchorMs = 0;
10783
+ let mbCreateStarted = false;
10784
+ function gridTimeMs(clientY) {
10785
+ const rect = gridEl.getBoundingClientRect();
10786
+ const y = clientY - rect.top + gridEl.scrollTop;
10787
+ return get(dayMs) + (get(startHour) + y / HOUR_HEIGHT) * HOUR_MS;
10788
+ }
10789
+ function clampToDay(ms) {
10790
+ return Math.max(get(dayMs) + get(startHour) * HOUR_MS, Math.min(get(dayMs) + get(endHour) * HOUR_MS, ms));
10791
+ }
10792
+ function onGridPointerDown(e) {
10793
+ if (e.button !== 0 || !get(drag) || !$$props.oneventcreate || readOnly() || get(isDisabled)) return;
10794
+ if (e.target.closest(".mb-event")) return;
10795
+ mbCreateStartY = e.clientY;
10796
+ mbCreateAnchorMs = gridTimeMs(e.clientY);
10797
+ mbCreateStarted = false;
10798
+ window.addEventListener("pointermove", onGridCreateMove);
10799
+ window.addEventListener("pointerup", onGridCreateUp, { once: true });
10800
+ window.addEventListener("pointercancel", onGridCreateCancel, { once: true });
10801
+ }
10802
+ function onGridCreateMove(e) {
10803
+ if (!get(drag)) return;
10804
+ if (!mbCreateStarted) {
10805
+ if (Math.abs(e.clientY - mbCreateStartY) < CREATE_THRESHOLD) return;
10806
+ mbCreateStarted = true;
10807
+ mbCreateAnchorMs = clampToDay(Math.floor(mbCreateAnchorMs / get(SNAP_MS)) * get(SNAP_MS));
10808
+ get(drag).beginCreate(new Date(mbCreateAnchorMs), new Date(mbCreateAnchorMs + get(SNAP_MS)));
10809
+ }
10810
+ const snapped = clampToDay(Math.round(gridTimeMs(e.clientY) / get(SNAP_MS)) * get(SNAP_MS));
10811
+ get(drag).updatePointer(new Date(Math.min(mbCreateAnchorMs, snapped)), new Date(Math.max(mbCreateAnchorMs + get(SNAP_MS), snapped)));
10812
+ }
10813
+ function cleanupGridCreate() {
10814
+ window.removeEventListener("pointermove", onGridCreateMove);
10815
+ window.removeEventListener("pointerup", onGridCreateUp);
10816
+ window.removeEventListener("pointercancel", onGridCreateCancel);
10817
+ mbCreateStarted = false;
10818
+ }
10819
+ function onGridCreateUp() {
10820
+ if (get(drag) && mbCreateStarted) {
10821
+ suppressGridClick = true;
10822
+ get(commitDragCtx)?.();
10823
+ setTimeout(
10824
+ () => {
10825
+ suppressGridClick = false;
10826
+ },
10827
+ 0
10828
+ );
10829
+ }
10830
+ cleanupGridCreate();
10831
+ }
10832
+ function onGridCreateCancel() {
10833
+ if (get(drag) && mbCreateStarted) get(drag).cancel();
10834
+ cleanupGridCreate();
10835
+ }
10836
+ let suppressEventClick = false;
10837
+ let mbRsStartY = 0;
10838
+ let mbRsStarted = false;
10839
+ let mbRsEdge = "end";
10840
+ let mbRsEvent = null;
10841
+ function onResizePointerDown(e, ev, edge) {
10842
+ if (e.button !== 0 || !get(drag) || readOnly() || ev.data?.readOnly) return;
10843
+ e.stopPropagation();
10844
+ mbRsStartY = e.clientY;
10845
+ mbRsStarted = false;
10846
+ mbRsEdge = edge;
10847
+ mbRsEvent = ev;
10848
+ window.addEventListener("pointermove", onResizeMove);
10849
+ window.addEventListener("pointerup", onResizeUp, { once: true });
10850
+ window.addEventListener("pointercancel", onResizeCancel, { once: true });
10851
+ }
10852
+ function onResizeMove(e) {
10853
+ const ev = mbRsEvent;
10854
+ if (!get(drag) || !ev) return;
10855
+ if (!mbRsStarted) {
10856
+ if (Math.abs(e.clientY - mbRsStartY) < CREATE_THRESHOLD) return;
10857
+ mbRsStarted = true;
10858
+ get(drag).beginResize(ev.id, mbRsEdge, ev.start, ev.end);
10859
+ }
10860
+ const snapped = clampToDay(Math.round(gridTimeMs(e.clientY) / get(SNAP_MS)) * get(SNAP_MS));
10861
+ if (mbRsEdge === "end") {
10862
+ const end = Math.max(snapped, ev.start.getTime() + get(SNAP_MS));
10863
+ get(drag).updatePointer(ev.start, new Date(end));
10864
+ } else {
10865
+ const start = Math.min(snapped, ev.end.getTime() - get(SNAP_MS));
10866
+ get(drag).updatePointer(new Date(start), ev.end);
10867
+ }
10868
+ }
10869
+ function cleanupResize() {
10870
+ window.removeEventListener("pointermove", onResizeMove);
10871
+ window.removeEventListener("pointerup", onResizeUp);
10872
+ window.removeEventListener("pointercancel", onResizeCancel);
10873
+ mbRsStarted = false;
10874
+ mbRsEvent = null;
10875
+ }
10876
+ function onResizeUp() {
10877
+ if (get(drag) && mbRsStarted) {
10878
+ suppressEventClick = true;
10879
+ suppressGridClick = true;
10880
+ get(commitDragCtx)?.();
10881
+ setTimeout(
10882
+ () => {
10883
+ suppressEventClick = false;
10884
+ suppressGridClick = false;
10885
+ },
10886
+ 0
10887
+ );
10888
+ }
10889
+ cleanupResize();
10890
+ }
10891
+ function onResizeCancel() {
10892
+ if (get(drag) && mbRsStarted) get(drag).cancel();
10893
+ cleanupResize();
10894
+ }
9769
10895
  let gridEl;
9770
10896
  onMount(() => {
9771
10897
  if (get(nowOffset) > 0 && gridEl) {
@@ -9773,16 +10899,16 @@
9773
10899
  gridEl.scrollTop = scrollTarget;
9774
10900
  }
9775
10901
  });
9776
- var div = root_16();
10902
+ var div = root_19();
9777
10903
  let classes;
9778
10904
  let styles;
9779
10905
  var node = child(div);
9780
10906
  {
9781
10907
  var consequent_2 = ($$anchor2) => {
9782
- var div_1 = root_4$2();
10908
+ var div_1 = root_4$3();
9783
10909
  var node_1 = child(div_1);
9784
10910
  each(node_1, 17, () => get(allDayEvents).slice(0, 3), (seg) => seg.ev.id, ($$anchor3, seg) => {
9785
- var button = root_2$2();
10911
+ var button = root_2$3();
9786
10912
  let classes_1;
9787
10913
  let styles_1;
9788
10914
  var span = sibling(child(button), 2);
@@ -9791,7 +10917,7 @@
9791
10917
  var node_2 = sibling(span, 2);
9792
10918
  {
9793
10919
  var consequent = ($$anchor4) => {
9794
- var span_1 = root_1$2();
10920
+ var span_1 = root_1$3();
9795
10921
  var text_1 = child(span_1);
9796
10922
  reset(span_1);
9797
10923
  template_effect(() => set_text(text_1, `${get(seg).dayIndex ?? ""}/${get(seg).totalDays ?? ""}`));
@@ -9815,7 +10941,7 @@
9815
10941
  var node_3 = sibling(node_1, 2);
9816
10942
  {
9817
10943
  var consequent_1 = ($$anchor3) => {
9818
- var span_2 = root_3$2();
10944
+ var span_2 = root_3$3();
9819
10945
  var text_2 = child(span_2, true);
9820
10946
  reset(span_2);
9821
10947
  template_effect(($0) => set_text(text_2, $0), [() => get(L).nMore(get(allDayEvents).length - 3)]);
@@ -9839,7 +10965,7 @@
9839
10965
  each(node_4, 17, () => ({ length: get(hourCount) }), index, ($$anchor2, _, h) => {
9840
10966
  const hour = /* @__PURE__ */ user_derived(() => get(startHour) + h);
9841
10967
  const blocked = /* @__PURE__ */ user_derived(() => isBlockedAt(get(hour)));
9842
- var div_4 = root_6$2();
10968
+ var div_4 = root_6$3();
9843
10969
  let classes_2;
9844
10970
  set_style(div_4, "", {}, { top: `${h * HOUR_HEIGHT}px`, height: "64px" });
9845
10971
  var div_5 = child(div_4);
@@ -9853,7 +10979,7 @@
9853
10979
  var node_6 = first_child(fragment);
9854
10980
  {
9855
10981
  var consequent_3 = ($$anchor4) => {
9856
- var span_3 = root_5$2();
10982
+ var span_3 = root_5$3();
9857
10983
  var text_4 = child(span_3, true);
9858
10984
  reset(span_3);
9859
10985
  template_effect(() => set_text(text_4, get(slot).label));
@@ -9901,92 +11027,118 @@
9901
11027
  }
9902
11028
  var node_8 = sibling(node_7, 2);
9903
11029
  each(node_8, 17, () => get(positionedEvents), (p) => p.ev.id, ($$anchor2, p) => {
9904
- var button_1 = root_15();
11030
+ var button_1 = root_17();
9905
11031
  let classes_3;
9906
11032
  let styles_4;
9907
11033
  var div_7 = sibling(child(button_1), 2);
9908
- var span_5 = child(div_7);
9909
- var text_6 = child(span_5, true);
9910
- reset(span_5);
9911
- var node_9 = sibling(span_5, 2);
9912
- {
9913
- var consequent_6 = ($$anchor3) => {
9914
- var span_6 = root_8$1();
9915
- var text_7 = child(span_6);
9916
- reset(span_6);
9917
- template_effect(($0, $1) => set_text(text_7, `${$0 ?? ""} – ${$1 ?? ""}`), [
9918
- () => fmtTime$1(get(p).ev.start, $$props.locale),
9919
- () => fmtTime$1(get(p).ev.end, $$props.locale)
9920
- ]);
9921
- append($$anchor3, span_6);
9922
- };
9923
- if_block(node_9, ($$render) => {
9924
- if (get(p).height > 32) $$render(consequent_6);
9925
- });
9926
- }
9927
- var node_10 = sibling(node_9, 2);
9928
- {
9929
- var consequent_7 = ($$anchor3) => {
9930
- var span_7 = root_9$1();
9931
- var text_8 = child(span_7, true);
9932
- reset(span_7);
9933
- template_effect(() => set_text(text_8, get(p).ev.subtitle));
9934
- append($$anchor3, span_7);
9935
- };
9936
- if_block(node_10, ($$render) => {
9937
- if (get(p).ev.subtitle && get(p).height > 48) $$render(consequent_7);
9938
- });
9939
- }
9940
- var node_11 = sibling(node_10, 2);
9941
- {
9942
- var consequent_8 = ($$anchor3) => {
9943
- var span_8 = root_10$1();
9944
- var text_9 = child(span_8, true);
9945
- reset(span_8);
9946
- template_effect(() => set_text(text_9, get(p).ev.location));
9947
- append($$anchor3, span_8);
9948
- };
9949
- if_block(node_11, ($$render) => {
9950
- if (get(p).ev.location && get(p).height > 56) $$render(consequent_8);
9951
- });
9952
- }
9953
- var node_12 = sibling(node_11, 2);
9954
- {
9955
- var consequent_9 = ($$anchor3) => {
9956
- var div_8 = root_12$1();
9957
- each(div_8, 21, () => get(p).ev.tags, index, ($$anchor4, tag) => {
9958
- var span_9 = root_11$1();
9959
- var text_10 = child(span_9, true);
9960
- reset(span_9);
9961
- template_effect(() => set_text(text_10, get(tag)));
9962
- append($$anchor4, span_9);
9963
- });
9964
- reset(div_8);
9965
- append($$anchor3, div_8);
9966
- };
9967
- if_block(node_12, ($$render) => {
9968
- if (get(p).ev.tags?.length && get(p).height > 56) $$render(consequent_9);
9969
- });
9970
- }
11034
+ var node_9 = child(div_7);
11035
+ EventContent(node_9, {
11036
+ get event() {
11037
+ return get(p).ev;
11038
+ },
11039
+ children: ($$anchor3, $$slotProps) => {
11040
+ var fragment_1 = root_13();
11041
+ var span_5 = first_child(fragment_1);
11042
+ var text_6 = child(span_5, true);
11043
+ reset(span_5);
11044
+ var node_10 = sibling(span_5, 2);
11045
+ {
11046
+ var consequent_6 = ($$anchor4) => {
11047
+ var span_6 = root_8$2();
11048
+ var text_7 = child(span_6);
11049
+ reset(span_6);
11050
+ template_effect(($0, $1) => set_text(text_7, `${$0 ?? ""} – ${$1 ?? ""}`), [
11051
+ () => fmtTime$1(get(p).ev.start, $$props.locale),
11052
+ () => fmtTime$1(get(p).ev.end, $$props.locale)
11053
+ ]);
11054
+ append($$anchor4, span_6);
11055
+ };
11056
+ if_block(node_10, ($$render) => {
11057
+ if (get(p).height > 32) $$render(consequent_6);
11058
+ });
11059
+ }
11060
+ var node_11 = sibling(node_10, 2);
11061
+ {
11062
+ var consequent_7 = ($$anchor4) => {
11063
+ var span_7 = root_9$1();
11064
+ var text_8 = child(span_7, true);
11065
+ reset(span_7);
11066
+ template_effect(() => set_text(text_8, get(p).ev.subtitle));
11067
+ append($$anchor4, span_7);
11068
+ };
11069
+ if_block(node_11, ($$render) => {
11070
+ if (get(p).ev.subtitle && get(p).height > 48) $$render(consequent_7);
11071
+ });
11072
+ }
11073
+ var node_12 = sibling(node_11, 2);
11074
+ {
11075
+ var consequent_8 = ($$anchor4) => {
11076
+ var span_8 = root_10$1();
11077
+ var text_9 = child(span_8, true);
11078
+ reset(span_8);
11079
+ template_effect(() => set_text(text_9, get(p).ev.location));
11080
+ append($$anchor4, span_8);
11081
+ };
11082
+ if_block(node_12, ($$render) => {
11083
+ if (get(p).ev.location && get(p).height > 56) $$render(consequent_8);
11084
+ });
11085
+ }
11086
+ var node_13 = sibling(node_12, 2);
11087
+ {
11088
+ var consequent_9 = ($$anchor4) => {
11089
+ var div_8 = root_12$1();
11090
+ each(div_8, 21, () => get(p).ev.tags, index, ($$anchor5, tag) => {
11091
+ var span_9 = root_11$1();
11092
+ var text_10 = child(span_9, true);
11093
+ reset(span_9);
11094
+ template_effect(() => set_text(text_10, get(tag)));
11095
+ append($$anchor5, span_9);
11096
+ });
11097
+ reset(div_8);
11098
+ append($$anchor4, div_8);
11099
+ };
11100
+ if_block(node_13, ($$render) => {
11101
+ if (get(p).ev.tags?.length && get(p).height > 56) $$render(consequent_9);
11102
+ });
11103
+ }
11104
+ template_effect(() => set_text(text_6, get(p).ev.title));
11105
+ append($$anchor3, fragment_1);
11106
+ },
11107
+ $$slots: { default: true }
11108
+ });
9971
11109
  reset(div_7);
9972
- var node_13 = sibling(div_7, 2);
11110
+ var node_14 = sibling(div_7, 2);
9973
11111
  {
9974
11112
  var consequent_10 = ($$anchor3) => {
9975
- var span_10 = root_13();
11113
+ var span_10 = root_14();
9976
11114
  append($$anchor3, span_10);
9977
11115
  };
9978
11116
  var consequent_11 = ($$anchor3) => {
9979
- var span_11 = root_14();
11117
+ var span_11 = root_15();
9980
11118
  var text_11 = child(span_11, true);
9981
11119
  reset(span_11);
9982
11120
  template_effect(() => set_text(text_11, get(L).upNext));
9983
11121
  append($$anchor3, span_11);
9984
11122
  };
9985
- if_block(node_13, ($$render) => {
11123
+ if_block(node_14, ($$render) => {
9986
11124
  if (get(p).isCurrent) $$render(consequent_10);
9987
11125
  else if (get(p).isNext) $$render(consequent_11, 1);
9988
11126
  });
9989
11127
  }
11128
+ var node_15 = sibling(node_14, 2);
11129
+ {
11130
+ var consequent_12 = ($$anchor3) => {
11131
+ var fragment_2 = root_16();
11132
+ var span_12 = first_child(fragment_2);
11133
+ var span_13 = sibling(span_12, 2);
11134
+ delegated("pointerdown", span_12, (e) => onResizePointerDown(e, get(p).ev, "start"));
11135
+ delegated("pointerdown", span_13, (e) => onResizePointerDown(e, get(p).ev, "end"));
11136
+ append($$anchor3, fragment_2);
11137
+ };
11138
+ if_block(node_15, ($$render) => {
11139
+ if (!readOnly() && !get(p).ev.data?.readOnly) $$render(consequent_12);
11140
+ });
11141
+ }
9990
11142
  reset(button_1);
9991
11143
  template_effect(() => {
9992
11144
  classes_3 = set_class(button_1, 1, "mb-event svelte-zbkzcp", null, classes_3, {
@@ -9996,7 +11148,8 @@
9996
11148
  "mb-event--cancelled": get(p).ev.status === "cancelled",
9997
11149
  "mb-event--tentative": get(p).ev.status === "tentative",
9998
11150
  "mb-event--full": get(p).ev.status === "full",
9999
- "mb-event--limited": get(p).ev.status === "limited"
11151
+ "mb-event--limited": get(p).ev.status === "limited",
11152
+ "mb-event--resizing": get(p).isResizing
10000
11153
  });
10001
11154
  set_attribute(button_1, "aria-label", `${get(p).ev.title ?? ""}${get(p).ev.status === "cancelled" ? " (cancelled)" : ""}${get(p).ev.status === "tentative" ? " (tentative)" : ""}${get(p).ev.status === "full" ? " (full)" : ""}${get(p).ev.status === "limited" ? " (limited)" : ""}${get(p).isCurrent ? `, ${get(L).inProgress}` : ""}${get(p).isNext ? `, ${get(L).upNext}` : ""}`);
10002
11155
  styles_4 = set_style(button_1, "", styles_4, {
@@ -10006,15 +11159,48 @@
10006
11159
  width: get(p).width,
10007
11160
  "--ev-color": get(p).ev.color ?? "var(--dt-accent)"
10008
11161
  });
10009
- set_text(text_6, get(p).ev.title);
10010
11162
  });
10011
11163
  delegated("click", button_1, (e) => {
10012
11164
  e.stopPropagation();
11165
+ if (suppressEventClick) {
11166
+ suppressEventClick = false;
11167
+ return;
11168
+ }
10013
11169
  $$props.oneventclick?.(get(p).ev);
10014
11170
  });
10015
11171
  event("pointerenter", button_1, () => get(oneventhover)?.(get(p).ev));
10016
11172
  append($$anchor2, button_1);
10017
11173
  });
11174
+ var node_16 = sibling(node_8, 2);
11175
+ {
11176
+ var consequent_13 = ($$anchor2) => {
11177
+ const gTop = /* @__PURE__ */ user_derived(() => ((get(drag).payload.start.getTime() - get(dayMs)) / HOUR_MS - get(startHour)) * HOUR_HEIGHT);
11178
+ const gH = /* @__PURE__ */ user_derived(() => Math.max(12, (get(drag).payload.end.getTime() - get(drag).payload.start.getTime()) / HOUR_MS * HOUR_HEIGHT));
11179
+ var div_9 = root_18();
11180
+ let styles_5;
11181
+ var span_14 = child(div_9);
11182
+ var text_12 = child(span_14);
11183
+ reset(span_14);
11184
+ reset(div_9);
11185
+ template_effect(
11186
+ ($0, $1) => {
11187
+ styles_5 = set_style(div_9, "", styles_5, {
11188
+ top: `${get(gTop) ?? ""}px`,
11189
+ height: `${get(gH) ?? ""}px`
11190
+ });
11191
+ set_text(text_12, `${$0 ?? ""} – ${$1 ?? ""}`);
11192
+ },
11193
+ [
11194
+ () => fmtTime$1(get(drag).payload.start, $$props.locale),
11195
+ () => fmtTime$1(get(drag).payload.end, $$props.locale)
11196
+ ]
11197
+ );
11198
+ append($$anchor2, div_9);
11199
+ };
11200
+ if_block(node_16, ($$render) => {
11201
+ if (!readOnly() && get(drag)?.active && get(drag).mode === "create" && get(drag).payload) $$render(consequent_13);
11202
+ });
11203
+ }
10018
11204
  reset(div_3);
10019
11205
  reset(div_2);
10020
11206
  bind_this(div_2, ($$value) => gridEl = $$value, () => gridEl);
@@ -10031,21 +11217,30 @@
10031
11217
  delegated("touchmove", div, onTouchMove);
10032
11218
  delegated("touchend", div, onTouchEnd);
10033
11219
  delegated("click", div_2, handleGridClick);
11220
+ delegated("pointerdown", div_2, onGridPointerDown);
10034
11221
  delegated("keydown", div_2, (e) => {
10035
11222
  if (e.key === "Enter" || e.key === " ") handleGridClick(e);
10036
11223
  });
10037
11224
  append($$anchor, div);
10038
11225
  pop();
10039
11226
  }
10040
- delegate(["touchstart", "touchmove", "touchend", "click", "keydown"]);
10041
- var root$1 = /* @__PURE__ */ from_html(`<span> </span>`);
10042
- var root_1$1 = /* @__PURE__ */ from_html(`<span class="mw-empty svelte-1d18hkf"> </span>`);
10043
- var root_2$1 = /* @__PURE__ */ from_html(`<span class="mw-ev-time svelte-1d18hkf"> </span>`);
10044
- var root_3$1 = /* @__PURE__ */ from_html(`<button type="button"><span class="mw-ev-stripe svelte-1d18hkf"></span> <div class="mw-ev-body svelte-1d18hkf"><span class="mw-ev-title svelte-1d18hkf"> </span> <!></div></button>`);
10045
- var root_4$1 = /* @__PURE__ */ from_html(`<span class="mw-ev-more svelte-1d18hkf"> </span>`);
10046
- var root_5$1 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
10047
- var root_6$1 = /* @__PURE__ */ from_html(`<div role="listitem"><button class="mw-row-target svelte-1d18hkf"></button> <div class="mw-date svelte-1d18hkf"><span> </span> <!></div> <div class="mw-events svelte-1d18hkf"><!></div> <svg class="mw-chevron svelte-1d18hkf" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14" aria-hidden="true"><path d="M6 3l5 5-5 5"></path></svg></div>`);
10048
- var root_7$1 = /* @__PURE__ */ from_html(`<div role="region"><div class="mw-list svelte-1d18hkf" role="list"></div></div>`);
11227
+ delegate([
11228
+ "touchstart",
11229
+ "touchmove",
11230
+ "touchend",
11231
+ "click",
11232
+ "pointerdown",
11233
+ "keydown"
11234
+ ]);
11235
+ var root$2 = /* @__PURE__ */ from_html(`<span> </span>`);
11236
+ var root_1$2 = /* @__PURE__ */ from_html(`<span class="mw-empty svelte-1d18hkf"> </span>`);
11237
+ var root_2$2 = /* @__PURE__ */ from_html(`<span class="mw-ev-time svelte-1d18hkf"> </span>`);
11238
+ var root_3$2 = /* @__PURE__ */ from_html(`<span class="mw-ev-title svelte-1d18hkf"> </span> <!>`, 1);
11239
+ var root_4$2 = /* @__PURE__ */ from_html(`<button type="button"><span class="mw-ev-stripe svelte-1d18hkf"></span> <div class="mw-ev-body svelte-1d18hkf"><!></div></button>`);
11240
+ var root_5$2 = /* @__PURE__ */ from_html(`<span class="mw-ev-more svelte-1d18hkf"> </span>`);
11241
+ var root_6$2 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
11242
+ var root_7$1 = /* @__PURE__ */ from_html(`<div role="listitem"><button class="mw-row-target svelte-1d18hkf"></button> <div class="mw-date svelte-1d18hkf"><span> </span> <!></div> <div class="mw-events svelte-1d18hkf"><!></div> <svg class="mw-chevron svelte-1d18hkf" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14" aria-hidden="true"><path d="M6 3l5 5-5 5"></path></svg></div>`);
11243
+ var root_8$1 = /* @__PURE__ */ from_html(`<div role="region"><div class="mw-list svelte-1d18hkf" role="list"></div></div>`);
10049
11244
  function MobileWeek($$anchor, $$props) {
10050
11245
  push($$props, true);
10051
11246
  const L = /* @__PURE__ */ user_derived(getLabels);
@@ -10060,7 +11255,7 @@
10060
11255
  const oneventhover = /* @__PURE__ */ user_derived(() => ctx.oneventhover);
10061
11256
  const disabledSet = /* @__PURE__ */ user_derived(() => ctx.disabledSet);
10062
11257
  const loadRangeCtx = /* @__PURE__ */ user_derived(() => ctx.loadRange);
10063
- const clock = createClock();
11258
+ const clock = createClock(ctx.timezone);
10064
11259
  const MAX_EVENTS = 3;
10065
11260
  const customDays = /* @__PURE__ */ user_derived(() => get(viewState)?.dayCount ?? 7);
10066
11261
  const todayMs = /* @__PURE__ */ user_derived(() => clock.today);
@@ -10158,12 +11353,12 @@
10158
11353
  e.preventDefault();
10159
11354
  handleDayTap(dayMs);
10160
11355
  }
10161
- var div = root_7$1();
11356
+ var div = root_8$1();
10162
11357
  let classes;
10163
11358
  let styles;
10164
11359
  var div_1 = child(div);
10165
11360
  each(div_1, 21, () => get(dayCells), (cell) => cell.ms, ($$anchor2, cell) => {
10166
- var div_2 = root_6$1();
11361
+ var div_2 = root_7$1();
10167
11362
  let classes_1;
10168
11363
  var button = child(div_2);
10169
11364
  var div_3 = sibling(button, 2);
@@ -10174,7 +11369,7 @@
10174
11369
  var node = sibling(span, 2);
10175
11370
  {
10176
11371
  var consequent = ($$anchor3) => {
10177
- var span_1 = root$1();
11372
+ var span_1 = root$2();
10178
11373
  let classes_3;
10179
11374
  var text_1 = child(span_1, true);
10180
11375
  reset(span_1);
@@ -10193,52 +11388,63 @@
10193
11388
  var node_1 = child(div_4);
10194
11389
  {
10195
11390
  var consequent_1 = ($$anchor3) => {
10196
- var span_2 = root_1$1();
11391
+ var span_2 = root_1$2();
10197
11392
  var text_2 = child(span_2, true);
10198
11393
  reset(span_2);
10199
11394
  template_effect(() => set_text(text_2, get(L).noEvents));
10200
11395
  append($$anchor3, span_2);
10201
11396
  };
10202
11397
  var alternate_1 = ($$anchor3) => {
10203
- var fragment = root_5$1();
11398
+ var fragment = root_6$2();
10204
11399
  var node_2 = first_child(fragment);
10205
11400
  each(node_2, 17, () => get(cell).events.slice(0, MAX_EVENTS), (ev) => ev.id, ($$anchor4, ev) => {
10206
- var button_1 = root_3$1();
11401
+ var button_1 = root_4$2();
10207
11402
  let classes_4;
10208
11403
  let styles_1;
10209
11404
  var div_5 = sibling(child(button_1), 2);
10210
- var span_3 = child(div_5);
10211
- var text_3 = child(span_3, true);
10212
- reset(span_3);
10213
- var node_3 = sibling(span_3, 2);
10214
- {
10215
- var consequent_2 = ($$anchor5) => {
10216
- var span_4 = root_2$1();
10217
- var text_4 = child(span_4, true);
10218
- reset(span_4);
10219
- template_effect(() => set_text(text_4, get(L).allDay));
10220
- append($$anchor5, span_4);
10221
- };
10222
- var d_1 = /* @__PURE__ */ user_derived(() => isAllDay(get(ev)) || isMultiDay(get(ev)));
10223
- var alternate = ($$anchor5) => {
10224
- var span_5 = root_2$1();
10225
- var text_5 = child(span_5, true);
10226
- reset(span_5);
10227
- template_effect(($0) => set_text(text_5, $0), [() => fmtTime2(get(ev).start)]);
10228
- append($$anchor5, span_5);
10229
- };
10230
- if_block(node_3, ($$render) => {
10231
- if (get(d_1)) $$render(consequent_2);
10232
- else $$render(alternate, -1);
10233
- });
10234
- }
11405
+ var node_3 = child(div_5);
11406
+ EventContent(node_3, {
11407
+ get event() {
11408
+ return get(ev);
11409
+ },
11410
+ children: ($$anchor5, $$slotProps) => {
11411
+ var fragment_1 = root_3$2();
11412
+ var span_3 = first_child(fragment_1);
11413
+ var text_3 = child(span_3, true);
11414
+ reset(span_3);
11415
+ var node_4 = sibling(span_3, 2);
11416
+ {
11417
+ var consequent_2 = ($$anchor6) => {
11418
+ var span_4 = root_2$2();
11419
+ var text_4 = child(span_4, true);
11420
+ reset(span_4);
11421
+ template_effect(() => set_text(text_4, get(L).allDay));
11422
+ append($$anchor6, span_4);
11423
+ };
11424
+ var d_1 = /* @__PURE__ */ user_derived(() => isAllDay(get(ev)) || isMultiDay(get(ev)));
11425
+ var alternate = ($$anchor6) => {
11426
+ var span_5 = root_2$2();
11427
+ var text_5 = child(span_5, true);
11428
+ reset(span_5);
11429
+ template_effect(($0) => set_text(text_5, $0), [() => fmtTime2(get(ev).start)]);
11430
+ append($$anchor6, span_5);
11431
+ };
11432
+ if_block(node_4, ($$render) => {
11433
+ if (get(d_1)) $$render(consequent_2);
11434
+ else $$render(alternate, -1);
11435
+ });
11436
+ }
11437
+ template_effect(() => set_text(text_3, get(ev).title));
11438
+ append($$anchor5, fragment_1);
11439
+ },
11440
+ $$slots: { default: true }
11441
+ });
10235
11442
  reset(div_5);
10236
11443
  reset(button_1);
10237
11444
  template_effect(
10238
11445
  ($0) => {
10239
11446
  classes_4 = set_class(button_1, 1, "mw-ev svelte-1d18hkf", null, classes_4, $0);
10240
11447
  styles_1 = set_style(button_1, "", styles_1, { "--ev-color": get(ev).color ?? "var(--dt-accent)" });
10241
- set_text(text_3, get(ev).title);
10242
11448
  },
10243
11449
  [
10244
11450
  () => ({
@@ -10266,16 +11472,16 @@
10266
11472
  event("pointerenter", button_1, () => get(oneventhover)?.(get(ev)));
10267
11473
  append($$anchor4, button_1);
10268
11474
  });
10269
- var node_4 = sibling(node_2, 2);
11475
+ var node_5 = sibling(node_2, 2);
10270
11476
  {
10271
11477
  var consequent_3 = ($$anchor4) => {
10272
- var span_6 = root_4$1();
11478
+ var span_6 = root_5$2();
10273
11479
  var text_6 = child(span_6, true);
10274
11480
  reset(span_6);
10275
11481
  template_effect(($0) => set_text(text_6, $0), [() => get(L).nMore(get(cell).totalCount - MAX_EVENTS)]);
10276
11482
  append($$anchor4, span_6);
10277
11483
  };
10278
- if_block(node_4, ($$render) => {
11484
+ if_block(node_5, ($$render) => {
10279
11485
  if (get(cell).totalCount > MAX_EVENTS) $$render(consequent_3);
10280
11486
  });
10281
11487
  }
@@ -10340,6 +11546,225 @@
10340
11546
  }
10341
11547
  append($$anchor, fragment);
10342
11548
  }
11549
+ var root$1 = /* @__PURE__ */ from_html(`<div class="mg-head-cell svelte-pvjuld" role="columnheader"> </div>`);
11550
+ var root_1$1 = /* @__PURE__ */ from_html(`<button><!></button>`);
11551
+ var root_2$1 = /* @__PURE__ */ from_html(`<span class="mg-chip-time svelte-pvjuld"> </span>`);
11552
+ var root_3$1 = /* @__PURE__ */ from_html(`<button><span class="mg-chip-dot svelte-pvjuld" aria-hidden="true"></span> <!> <span class="mg-chip-title svelte-pvjuld"> </span></button>`);
11553
+ var root_4$1 = /* @__PURE__ */ from_html(`<span class="mg-more svelte-pvjuld"> </span>`);
11554
+ var root_5$1 = /* @__PURE__ */ from_html(`<div role="gridcell"><span> </span> <div class="mg-chips svelte-pvjuld"><!> <!></div></div>`);
11555
+ var root_6$1 = /* @__PURE__ */ from_html(`<div role="grid"><div class="mg-head svelte-pvjuld" role="row"></div> <div class="mg-body svelte-pvjuld"></div></div>`);
11556
+ function MonthGrid($$anchor, $$props) {
11557
+ push($$props, true);
11558
+ const L = /* @__PURE__ */ user_derived(getLabels);
11559
+ let events = prop($$props, "events", 19, () => []), style = prop($$props, "style", 3, ""), height = prop($$props, "height", 3, null), selectedEventId = prop($$props, "selectedEventId", 3, null);
11560
+ const ctx = useCalendarContext();
11561
+ const viewState = /* @__PURE__ */ user_derived(() => ctx.viewState);
11562
+ const autoHeight = /* @__PURE__ */ user_derived(() => ctx.autoHeight);
11563
+ const isMobile = /* @__PURE__ */ user_derived(() => ctx.isMobile);
11564
+ const disabledSet = /* @__PURE__ */ user_derived(() => ctx.disabledSet);
11565
+ const oneventhover = /* @__PURE__ */ user_derived(() => ctx.oneventhover);
11566
+ const ondayclick = /* @__PURE__ */ user_derived(() => ctx.ondayclick);
11567
+ const eventSnippet = /* @__PURE__ */ user_derived(() => ctx.eventSnippet);
11568
+ const loadRangeCtx = /* @__PURE__ */ user_derived(() => ctx.loadRange);
11569
+ const clock = createClock(ctx.timezone);
11570
+ const todayMs = /* @__PURE__ */ user_derived(() => clock.today);
11571
+ const MAX_CHIPS = /* @__PURE__ */ user_derived(() => get(isMobile) ? 2 : 3);
11572
+ const range = /* @__PURE__ */ user_derived(() => get(viewState)?.range);
11573
+ const focusMonth = /* @__PURE__ */ user_derived(() => ($$props.focusDate ?? /* @__PURE__ */ new Date()).getMonth());
11574
+ user_effect(() => {
11575
+ if (!get(loadRangeCtx) || !get(range)) return;
11576
+ get(loadRangeCtx).set({
11577
+ start: new Date(get(range).start.getTime() - 7 * DAY_MS),
11578
+ end: new Date(get(range).end.getTime() + 7 * DAY_MS)
11579
+ });
11580
+ return () => get(loadRangeCtx).set(null);
11581
+ });
11582
+ function eventsForDay(ms) {
11583
+ const dayStart = ms;
11584
+ const dayEnd = ms + DAY_MS;
11585
+ return events().filter((e) => e.start.getTime() < dayEnd && e.end.getTime() > dayStart).sort((a, b) => {
11586
+ const aAll = isAllDay(a) ? 0 : 1;
11587
+ const bAll = isAllDay(b) ? 0 : 1;
11588
+ return aAll - bAll || a.start.getTime() - b.start.getTime();
11589
+ });
11590
+ }
11591
+ const weeks = /* @__PURE__ */ user_derived(() => {
11592
+ if (!get(range)) return [];
11593
+ const rows = [];
11594
+ for (let ms = sod(get(range).start.getTime()); ms < get(range).end.getTime(); ms += 7 * DAY_MS) {
11595
+ const row = [];
11596
+ for (let i = 0; i < 7; i++) {
11597
+ const cellMs = ms + i * DAY_MS;
11598
+ const date = new Date(cellMs);
11599
+ const jsDay = date.getDay();
11600
+ const dayEvents = eventsForDay(cellMs);
11601
+ row.push({
11602
+ ms: cellMs,
11603
+ date,
11604
+ dayNum: date.getDate(),
11605
+ inMonth: date.getMonth() === get(focusMonth),
11606
+ isToday: cellMs === get(todayMs),
11607
+ isWeekend: jsDay === 0 || jsDay === 6,
11608
+ isDisabled: get(disabledSet).has(cellMs),
11609
+ chips: dayEvents.slice(0, get(MAX_CHIPS)),
11610
+ overflow: Math.max(0, dayEvents.length - get(MAX_CHIPS))
11611
+ });
11612
+ }
11613
+ rows.push(row);
11614
+ }
11615
+ return rows;
11616
+ });
11617
+ const weekdayLabels = /* @__PURE__ */ user_derived(() => {
11618
+ const first = get(weeks)[0];
11619
+ if (!first) return [];
11620
+ return first.map((c) => weekdayShort(c.ms, $$props.locale));
11621
+ });
11622
+ function chipTime(e) {
11623
+ return isAllDay(e) ? "" : fmtTime$1(e.start, $$props.locale);
11624
+ }
11625
+ var div = root_6$1();
11626
+ let classes;
11627
+ let styles;
11628
+ var div_1 = child(div);
11629
+ each(div_1, 20, () => get(weekdayLabels), (name) => name, ($$anchor2, name) => {
11630
+ var div_2 = root$1();
11631
+ var text2 = child(div_2, true);
11632
+ reset(div_2);
11633
+ template_effect(() => set_text(text2, name));
11634
+ append($$anchor2, div_2);
11635
+ });
11636
+ reset(div_1);
11637
+ var div_3 = sibling(div_1, 2);
11638
+ let styles_1;
11639
+ each(div_3, 21, () => get(weeks), index, ($$anchor2, row) => {
11640
+ var fragment = comment();
11641
+ var node = first_child(fragment);
11642
+ each(node, 17, () => get(row), (cell) => cell.ms, ($$anchor3, cell) => {
11643
+ var div_4 = root_5$1();
11644
+ let classes_1;
11645
+ var span = child(div_4);
11646
+ let classes_2;
11647
+ var text_1 = child(span, true);
11648
+ reset(span);
11649
+ var div_5 = sibling(span, 2);
11650
+ var node_1 = child(div_5);
11651
+ each(node_1, 17, () => get(cell).chips, (ev) => ev.id + get(cell).ms, ($$anchor4, ev) => {
11652
+ var fragment_1 = comment();
11653
+ var node_2 = first_child(fragment_1);
11654
+ {
11655
+ var consequent = ($$anchor5) => {
11656
+ var button = root_1$1();
11657
+ let classes_3;
11658
+ var node_3 = child(button);
11659
+ snippet(node_3, () => get(eventSnippet), () => get(ev));
11660
+ reset(button);
11661
+ template_effect(() => classes_3 = set_class(button, 1, "mg-chip mg-chip--custom svelte-pvjuld", null, classes_3, { "mg-chip--selected": get(ev).id === selectedEventId() }));
11662
+ delegated("click", button, (e) => {
11663
+ e.stopPropagation();
11664
+ $$props.oneventclick?.(get(ev));
11665
+ });
11666
+ event("mouseenter", button, () => get(oneventhover)?.(get(ev)));
11667
+ append($$anchor5, button);
11668
+ };
11669
+ var alternate = ($$anchor5) => {
11670
+ var button_1 = root_3$1();
11671
+ let classes_4;
11672
+ let styles_2;
11673
+ var node_4 = sibling(child(button_1), 2);
11674
+ {
11675
+ var consequent_1 = ($$anchor6) => {
11676
+ var span_1 = root_2$1();
11677
+ var text_2 = child(span_1, true);
11678
+ reset(span_1);
11679
+ template_effect(($0) => set_text(text_2, $0), [() => chipTime(get(ev))]);
11680
+ append($$anchor6, span_1);
11681
+ };
11682
+ var d = /* @__PURE__ */ user_derived(() => chipTime(get(ev)));
11683
+ if_block(node_4, ($$render) => {
11684
+ if (get(d)) $$render(consequent_1);
11685
+ });
11686
+ }
11687
+ var span_2 = sibling(node_4, 2);
11688
+ var text_3 = child(span_2, true);
11689
+ reset(span_2);
11690
+ reset(button_1);
11691
+ template_effect(() => {
11692
+ classes_4 = set_class(button_1, 1, "mg-chip svelte-pvjuld", null, classes_4, {
11693
+ "mg-chip--selected": get(ev).id === selectedEventId(),
11694
+ "mg-chip--cancelled": get(ev).status === "cancelled"
11695
+ });
11696
+ set_attribute(button_1, "title", get(ev).title);
11697
+ styles_2 = set_style(button_1, "", styles_2, { "--mg-chip-color": get(ev).color ?? "var(--dt-accent)" });
11698
+ set_text(text_3, get(ev).title);
11699
+ });
11700
+ delegated("click", button_1, (e) => {
11701
+ e.stopPropagation();
11702
+ $$props.oneventclick?.(get(ev));
11703
+ });
11704
+ event("mouseenter", button_1, () => get(oneventhover)?.(get(ev)));
11705
+ append($$anchor5, button_1);
11706
+ };
11707
+ if_block(node_2, ($$render) => {
11708
+ if (get(eventSnippet)) $$render(consequent);
11709
+ else $$render(alternate, -1);
11710
+ });
11711
+ }
11712
+ append($$anchor4, fragment_1);
11713
+ });
11714
+ var node_5 = sibling(node_1, 2);
11715
+ {
11716
+ var consequent_2 = ($$anchor4) => {
11717
+ var span_3 = root_4$1();
11718
+ var text_4 = child(span_3, true);
11719
+ reset(span_3);
11720
+ template_effect(($0) => set_text(text_4, $0), [() => get(L).nMore(get(cell).overflow)]);
11721
+ append($$anchor4, span_3);
11722
+ };
11723
+ if_block(node_5, ($$render) => {
11724
+ if (get(cell).overflow > 0) $$render(consequent_2);
11725
+ });
11726
+ }
11727
+ reset(div_5);
11728
+ reset(div_4);
11729
+ template_effect(() => {
11730
+ classes_1 = set_class(div_4, 1, "mg-cell svelte-pvjuld", null, classes_1, {
11731
+ "mg-cell--out": !get(cell).inMonth,
11732
+ "mg-cell--today": get(cell).isToday,
11733
+ "mg-cell--weekend": get(cell).isWeekend,
11734
+ "mg-cell--disabled": get(cell).isDisabled,
11735
+ "mg-cell--clickable": !!get(ondayclick) && !get(cell).isDisabled
11736
+ });
11737
+ set_attribute(div_4, "tabindex", get(ondayclick) && !get(cell).isDisabled ? 0 : void 0);
11738
+ classes_2 = set_class(span, 1, "mg-daynum svelte-pvjuld", null, classes_2, { "mg-daynum--today": get(cell).isToday });
11739
+ set_text(text_1, get(cell).dayNum);
11740
+ });
11741
+ delegated("click", div_4, () => {
11742
+ if (!get(cell).isDisabled) get(ondayclick)?.(get(cell).date);
11743
+ });
11744
+ delegated("keydown", div_4, (e) => {
11745
+ if ((e.key === "Enter" || e.key === " ") && !get(cell).isDisabled) {
11746
+ e.preventDefault();
11747
+ get(ondayclick)?.(get(cell).date);
11748
+ }
11749
+ });
11750
+ append($$anchor3, div_4);
11751
+ });
11752
+ append($$anchor2, fragment);
11753
+ });
11754
+ reset(div_3);
11755
+ reset(div);
11756
+ template_effect(() => {
11757
+ classes = set_class(div, 1, "mg svelte-pvjuld", null, classes, { "mg--auto": get(autoHeight) });
11758
+ styles = set_style(div, style() || void 0, styles, {
11759
+ height: get(autoHeight) ? void 0 : height() ? `${height()}px` : "100%"
11760
+ });
11761
+ set_attribute(div, "aria-label", get(L).month);
11762
+ styles_1 = set_style(div_3, "", styles_1, { "--mg-rows": get(weeks).length });
11763
+ });
11764
+ append($$anchor, div);
11765
+ pop();
11766
+ }
11767
+ delegate(["click", "keydown"]);
10343
11768
  var root = /* @__PURE__ */ from_html(`<button class="cal-m-nav svelte-1b53e7w"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" width="16" height="16" aria-hidden="true" class="svelte-1b53e7w"><path d="M10 3 5 8l5 5" class="svelte-1b53e7w"></path></svg></button>`);
10344
11769
  var root_1 = /* @__PURE__ */ from_html(`<button> </button>`);
10345
11770
  var root_2 = /* @__PURE__ */ from_html(`<div class="cal-m-pills svelte-1b53e7w" role="group"></div>`);
@@ -10392,11 +11817,22 @@
10392
11817
  label: "Mobile",
10393
11818
  mode: "week",
10394
11819
  component: Mobile
11820
+ },
11821
+ {
11822
+ id: "month-grid",
11823
+ label: "Month",
11824
+ mode: "month",
11825
+ component: MonthGrid
10395
11826
  }
10396
11827
  ];
10397
11828
  let views = prop($$props, "views", 3, DEFAULT_VIEWS), theme = prop($$props, "theme", 3, auto), mondayStart = prop($$props, "mondayStart", 3, true), heightProp = prop($$props, "height", 3, 600), borderRadius = prop($$props, "borderRadius", 3, 12), readOnly = prop($$props, "readOnly", 3, false), snapInterval = prop($$props, "snapInterval", 3, 15), showModePills = prop($$props, "showModePills", 3, true), showNavigation = prop($$props, "showNavigation", 3, true), equalDays = prop($$props, "equalDays", 3, false), showDates = prop($$props, "showDates", 3, true), compact = prop($$props, "compact", 3, false), mobileProp = prop($$props, "mobile", 3, "auto");
10398
- const effectiveCreate = /* @__PURE__ */ user_derived(() => readOnly() ? void 0 : $$props.oneventcreate);
10399
- const effectiveMove = /* @__PURE__ */ user_derived(() => readOnly() ? void 0 : $$props.oneventmove);
11829
+ const unzone = (d) => $$props.timezone ? fromZonedTime(d, $$props.timezone) : d;
11830
+ const effectiveCreate = /* @__PURE__ */ user_derived(() => readOnly() || !$$props.oneventcreate ? void 0 : (range) => $$props.oneventcreate({ start: unzone(range.start), end: unzone(range.end) }));
11831
+ const effectiveMove = /* @__PURE__ */ user_derived(() => readOnly() || !$$props.oneventmove ? void 0 : (ev, start, end) => $$props.oneventmove(ev, unzone(start), unzone(end)));
11832
+ function handleEventClick(ev) {
11833
+ selection.select(ev.id);
11834
+ $$props.oneventclick?.(ev);
11835
+ }
10400
11836
  let containerWidth = /* @__PURE__ */ state(0);
10401
11837
  const isMobileContainer = /* @__PURE__ */ user_derived(() => get(containerWidth) > 0 && get(containerWidth) < MOBILE_BREAKPOINT);
10402
11838
  const useMobile = /* @__PURE__ */ user_derived(() => mobileProp() === "auto" ? get(isMobileContainer) : Boolean(mobileProp()));
@@ -10425,12 +11861,15 @@
10425
11861
  };
10426
11862
  });
10427
11863
  const effectiveTheme = /* @__PURE__ */ user_derived(() => theme() === auto && $$props.autoTheme !== false ? get(probedTheme) : theme());
10428
- const store = /* @__PURE__ */ user_derived(() => createEventStore($$props.adapter));
11864
+ const effectiveAdapter = /* @__PURE__ */ user_derived(() => $$props.timezone ? wrapAdapterWithTimezone($$props.adapter, $$props.timezone) : $$props.adapter);
11865
+ const store = /* @__PURE__ */ user_derived(() => createEventStore(get(effectiveAdapter)));
10429
11866
  const viewState = createViewState(untrack(() => ({
10430
11867
  view: $$props.view ?? views()[0]?.id,
10431
11868
  mondayStart: mondayStart(),
10432
- initialDate: $$props.initialDate,
11869
+ // Focus lives on the zoned plane too — day boundaries follow the zone.
11870
+ initialDate: $$props.initialDate && $$props.timezone ? toZonedTime($$props.initialDate, $$props.timezone) : $$props.initialDate,
10433
11871
  dayCount: $$props.days,
11872
+ timezone: $$props.timezone,
10434
11873
  modeForView: (viewId) => views().find((v) => v.id === viewId)?.mode
10435
11874
  })));
10436
11875
  const selection = createSelection();
@@ -10445,6 +11884,11 @@
10445
11884
  if (!payload) return;
10446
11885
  let { start, end } = payload;
10447
11886
  if (mode === "create" || mode === "resize-start" || mode === "resize-end") {
11887
+ if (end.getTime() <= start.getTime()) {
11888
+ const floorMs = Math.max(1, snapInterval()) * 6e4;
11889
+ if (mode === "resize-start") start = new Date(end.getTime() - floorMs);
11890
+ else end = new Date(start.getTime() + floorMs);
11891
+ }
10448
11892
  const durationMs = end.getTime() - start.getTime();
10449
11893
  const durationMin = durationMs / 6e4;
10450
11894
  if ($$props.minDuration && durationMin < $$props.minDuration) {
@@ -10491,8 +11935,12 @@
10491
11935
  if (ev) get(effectiveMove)?.(ev, start, end);
10492
11936
  } catch (e) {
10493
11937
  const msg = e instanceof Error ? e.message : "";
10494
- if (!msg.includes("read-only") && !msg.includes("not found")) {
10495
- console.warn("[calendar] drag commit failed:", e);
11938
+ if (msg.includes("read-only")) {
11939
+ const ev = get(store).byId(payload.eventId);
11940
+ if (ev) get(effectiveMove)?.(ev, start, end);
11941
+ } else if (!msg.includes("not found")) {
11942
+ if ($$props.onerror) $$props.onerror(e instanceof Error ? e : new Error(String(e)));
11943
+ else console.warn("[calendar] drag commit failed:", e);
10496
11944
  }
10497
11945
  }
10498
11946
  } else if (mode === "create") {
@@ -10511,7 +11959,7 @@
10511
11959
  commitDrag,
10512
11960
  // Callbacks
10513
11961
  get oneventclick() {
10514
- return $$props.oneventclick;
11962
+ return handleEventClick;
10515
11963
  },
10516
11964
  get oneventcreate() {
10517
11965
  return get(effectiveCreate);
@@ -10522,6 +11970,12 @@
10522
11970
  get oneventhover() {
10523
11971
  return $$props.oneventhover;
10524
11972
  },
11973
+ get ondayclick() {
11974
+ return $$props.ondayclick;
11975
+ },
11976
+ get timezone() {
11977
+ return $$props.timezone;
11978
+ },
10525
11979
  // Config (reactive via getters)
10526
11980
  get readOnly() {
10527
11981
  return readOnly();
@@ -10605,6 +12059,9 @@
10605
12059
  user_effect(() => {
10606
12060
  $$props.onviewchange?.(viewState.view);
10607
12061
  });
12062
+ user_effect(() => {
12063
+ if (get(store).error && $$props.onerror) $$props.onerror(new Error(get(store).error));
12064
+ });
10608
12065
  const resolvedView = /* @__PURE__ */ user_derived(() => {
10609
12066
  const requested = views().find((v) => v.id === viewState.view) ?? views()[0];
10610
12067
  if (!get(useMobile) || !requested) return requested;
@@ -10617,9 +12074,6 @@
10617
12074
  const desktopViews = /* @__PURE__ */ user_derived(() => views().filter((v) => !v.id.endsWith("-mobile")));
10618
12075
  const dateLabel = /* @__PURE__ */ user_derived(() => {
10619
12076
  if (!showDates()) {
10620
- if (viewState.mode === "day") {
10621
- return viewState.focusDate.toLocaleDateString($$props.locale, { weekday: "long" });
10622
- }
10623
12077
  return "";
10624
12078
  }
10625
12079
  if (viewState.mode === "day") {
@@ -10629,7 +12083,7 @@
10629
12083
  });
10630
12084
  const modes = /* @__PURE__ */ user_derived(() => {
10631
12085
  const g = new Set(get(desktopViews).map((v) => v.mode));
10632
- return ["day", "week"].filter((key) => g.has(key));
12086
+ return ["day", "week", "month"].filter((key) => g.has(key));
10633
12087
  });
10634
12088
  const L = /* @__PURE__ */ user_derived(getLabels);
10635
12089
  function switchMode(g) {
@@ -10687,7 +12141,7 @@
10687
12141
  };
10688
12142
  var consequent_2 = ($$anchor3) => {
10689
12143
  var button = root();
10690
- template_effect(() => set_attribute(button, "aria-label", viewState.mode === "day" ? get(L).previousDay : get(L).previousWeek));
12144
+ template_effect(() => set_attribute(button, "aria-label", viewState.mode === "day" ? get(L).previousDay : viewState.mode === "month" ? get(L).previousMonth : get(L).previousWeek));
10691
12145
  delegated("click", button, () => viewState.prev());
10692
12146
  append($$anchor3, button);
10693
12147
  };
@@ -10708,7 +12162,7 @@
10708
12162
  template_effect(() => {
10709
12163
  classes_1 = set_class(button_1, 1, "cal-m-pill svelte-1b53e7w", null, classes_1, { "cal-m-pill--active": viewState.mode === get(g) });
10710
12164
  set_attribute(button_1, "aria-pressed", viewState.mode === get(g));
10711
- set_text(text2, get(g) === "day" ? get(L).day : get(L).week);
12165
+ set_text(text2, get(g) === "day" ? get(L).day : get(g) === "week" ? get(L).week : get(L).month);
10712
12166
  });
10713
12167
  delegated("click", button_1, () => switchMode(get(g)));
10714
12168
  append($$anchor4, button_1);
@@ -10730,7 +12184,7 @@
10730
12184
  {
10731
12185
  var consequent_4 = ($$anchor3) => {
10732
12186
  var button_2 = root_3();
10733
- template_effect(() => set_attribute(button_2, "aria-label", viewState.mode === "day" ? get(L).nextDay : get(L).nextWeek));
12187
+ template_effect(() => set_attribute(button_2, "aria-label", viewState.mode === "day" ? get(L).nextDay : viewState.mode === "month" ? get(L).nextMonth : get(L).nextWeek));
10734
12188
  delegated("click", button_2, () => viewState.next());
10735
12189
  append($$anchor3, button_2);
10736
12190
  };
@@ -10792,8 +12246,8 @@
10792
12246
  var button_5 = sibling(node_9, 2);
10793
12247
  var button_6 = sibling(button_5, 2);
10794
12248
  template_effect(() => {
10795
- set_attribute(button_5, "aria-label", viewState.mode === "day" ? get(L).previousDay : get(L).previousWeek);
10796
- set_attribute(button_6, "aria-label", viewState.mode === "day" ? get(L).nextDay : get(L).nextWeek);
12249
+ set_attribute(button_5, "aria-label", viewState.mode === "day" ? get(L).previousDay : viewState.mode === "month" ? get(L).previousMonth : get(L).previousWeek);
12250
+ set_attribute(button_6, "aria-label", viewState.mode === "day" ? get(L).nextDay : viewState.mode === "month" ? get(L).nextMonth : get(L).nextWeek);
10797
12251
  });
10798
12252
  delegated("click", button_5, () => viewState.prev());
10799
12253
  delegated("click", button_6, () => viewState.next());
@@ -10821,7 +12275,7 @@
10821
12275
  template_effect(() => {
10822
12276
  classes_2 = set_class(button_7, 1, "cal-pill svelte-1b53e7w", null, classes_2, { "cal-pill--active": viewState.mode === get(g) });
10823
12277
  set_attribute(button_7, "aria-pressed", viewState.mode === get(g));
10824
- set_text(text_5, get(g) === "day" ? get(L).day : get(L).week);
12278
+ set_text(text_5, get(g) === "day" ? get(L).day : get(g) === "week" ? get(L).week : get(L).month);
10825
12279
  });
10826
12280
  delegated("click", button_7, () => switchMode(get(g)));
10827
12281
  append($$anchor4, button_7);
@@ -10841,7 +12295,7 @@
10841
12295
  };
10842
12296
  if_block(node, ($$render) => {
10843
12297
  if ($$props.header) $$render(consequent);
10844
- else if (get(useMobile)) $$render(consequent_6, 1);
12298
+ else if (get(useMobile) && (showNavigation() || showModePills() && get(modes).length > 1 || get(dateLabel))) $$render(consequent_6, 1);
10845
12299
  else if (showNavigation() || showModePills() && get(modes).length > 1 || get(dateLabel)) $$render(consequent_11, 2);
10846
12300
  });
10847
12301
  }
@@ -10874,9 +12328,7 @@
10874
12328
  get focusDate() {
10875
12329
  return viewState.focusDate;
10876
12330
  },
10877
- get oneventclick() {
10878
- return $$props.oneventclick;
10879
- },
12331
+ oneventclick: handleEventClick,
10880
12332
  get oneventcreate() {
10881
12333
  return get(effectiveCreate);
10882
12334
  },