calendarkit-prov2 2.0.9 → 2.0.11

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.
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import * as React17 from 'react';
2
- import React17__default, { useState, useEffect, useRef, useCallback, useId, useMemo, useLayoutEffect } from 'react';
1
+ import * as React18 from 'react';
2
+ import React18__default, { useState, useEffect, useRef, useCallback, useId, useMemo, useLayoutEffect } from 'react';
3
3
  import { createPortal } from 'react-dom';
4
4
  import { useDraggable, useSensors, useSensor, PointerSensor, DndContext, DragOverlay, useDroppable } from '@dnd-kit/core';
5
5
  import { createSnapModifier, restrictToWindowEdges } from '@dnd-kit/modifiers';
@@ -8,7 +8,7 @@ import { startOfDay, addDays, endOfDay, startOfWeek, endOfWeek, startOfMonth, en
8
8
  import { cva } from 'class-variance-authority';
9
9
  import { clsx } from 'clsx';
10
10
  import { twMerge } from 'tailwind-merge';
11
- import { Headphones, Ban, PartyPopper, Star, Presentation, ClipboardCheck, RefreshCw, Sparkles, Home, MapPin, Video, Package, Users, User, Menu, Plus, ChevronLeft, ChevronRight, Globe, ChevronDown, Sun, Moon, CalendarCheck2, CalendarDays, CalendarRange, Calendar, ListTodo, MoreHorizontal, LayoutGrid, X, Clock, Paperclip, Bell, Edit3, Copy, Trash2, Edit2, ExternalLink, AlignLeft, File, Download, BellRing, Check, Repeat, Tag } from 'lucide-react';
11
+ import { Headphones, Ban, PartyPopper, Star, Presentation, ClipboardCheck, RefreshCw, Sparkles, Home, MapPin, Video, Package, Users, User, Menu, Plus, ChevronLeft, ChevronRight, Globe, ChevronDown, Sun, Moon, CalendarCheck2, Clock, CalendarDays, CalendarRange, Calendar, ListTodo, MoreHorizontal, LayoutGrid, X, Paperclip, Bell, Edit3, Copy, Trash2, Edit2, ExternalLink, AlignLeft, File, Download, BellRing, Check, Repeat, Tag } from 'lucide-react';
12
12
  import { sv as sv$1, pl as pl$1, nl as nl$1, ru as ru$1, ko as ko$1, ja as ja$1, zhCN, ar as ar$1, pt as pt$1, it as it$1, es as es$1, de as de$1, fr as fr$1, enUS, tr as tr$1 } from 'date-fns/locale';
13
13
  import { toZonedTime, fromZonedTime } from 'date-fns-tz';
14
14
  import { CSS } from '@dnd-kit/utilities';
@@ -44,10 +44,10 @@ var buttonVariants = cva(
44
44
  }
45
45
  }
46
46
  );
47
- var Button = React17.forwardRef(
47
+ var Button = React18.forwardRef(
48
48
  ({ className, variant, size, asChild = false, ...props }, ref) => {
49
49
  const Comp = "button";
50
- return /* @__PURE__ */ React17.createElement(
50
+ return /* @__PURE__ */ React18.createElement(
51
51
  Comp,
52
52
  {
53
53
  className: cn(buttonVariants({ variant, size, className })),
@@ -158,6 +158,8 @@ var tr = {
158
158
  tomorrow: "Yar\u0131n",
159
159
  eventCount: "etkinlik",
160
160
  eventsCount: "etkinlik",
161
+ hourCount: "saat",
162
+ hoursCount: "saat",
161
163
  timezone: "Zaman Dilimi",
162
164
  localTime: "Yerel Saat",
163
165
  operations: "\u0130\u015Flemler",
@@ -251,6 +253,8 @@ var en = {
251
253
  tomorrow: "Tomorrow",
252
254
  eventCount: "event",
253
255
  eventsCount: "events",
256
+ hourCount: "hour",
257
+ hoursCount: "hours",
254
258
  timezone: "Time zone",
255
259
  localTime: "Local Time",
256
260
  operations: "Operations",
@@ -344,6 +348,8 @@ var fr = {
344
348
  tomorrow: "Demain",
345
349
  eventCount: "\xE9v\xE9nement",
346
350
  eventsCount: "\xE9v\xE9nements",
351
+ hourCount: "heure",
352
+ hoursCount: "heures",
347
353
  timezone: "Fuseau horaire",
348
354
  localTime: "Heure locale",
349
355
  operations: "Op\xE9rations",
@@ -437,6 +443,8 @@ var de = {
437
443
  tomorrow: "Morgen",
438
444
  eventCount: "Termin",
439
445
  eventsCount: "Termine",
446
+ hourCount: "Stunde",
447
+ hoursCount: "Stunden",
440
448
  timezone: "Zeitzone",
441
449
  localTime: "Ortszeit",
442
450
  operations: "Aktionen",
@@ -530,6 +538,8 @@ var es = {
530
538
  tomorrow: "Ma\xF1ana",
531
539
  eventCount: "evento",
532
540
  eventsCount: "eventos",
541
+ hourCount: "hora",
542
+ hoursCount: "horas",
533
543
  timezone: "Zona horaria",
534
544
  localTime: "Hora local",
535
545
  operations: "Operaciones",
@@ -623,6 +633,8 @@ var it = {
623
633
  tomorrow: "Domani",
624
634
  eventCount: "evento",
625
635
  eventsCount: "eventi",
636
+ hourCount: "ora",
637
+ hoursCount: "ore",
626
638
  timezone: "Fuso orario",
627
639
  localTime: "Ora locale",
628
640
  operations: "Operazioni",
@@ -716,6 +728,8 @@ var pt = {
716
728
  tomorrow: "Amanh\xE3",
717
729
  eventCount: "evento",
718
730
  eventsCount: "eventos",
731
+ hourCount: "hora",
732
+ hoursCount: "horas",
719
733
  timezone: "Fuso hor\xE1rio",
720
734
  localTime: "Hora local",
721
735
  operations: "Opera\xE7\xF5es",
@@ -809,6 +823,8 @@ var ar = {
809
823
  tomorrow: "\u063A\u062F\u064B\u0627",
810
824
  eventCount: "\u062D\u062F\u062B",
811
825
  eventsCount: "\u0623\u062D\u062F\u0627\u062B",
826
+ hourCount: "\u0633\u0627\u0639\u0629",
827
+ hoursCount: "\u0633\u0627\u0639\u0627\u062A",
812
828
  timezone: "\u0627\u0644\u0645\u0646\u0637\u0642\u0629 \u0627\u0644\u0632\u0645\u0646\u064A\u0629",
813
829
  localTime: "\u0627\u0644\u062A\u0648\u0642\u064A\u062A \u0627\u0644\u0645\u062D\u0644\u064A",
814
830
  operations: "\u0627\u0644\u0639\u0645\u0644\u064A\u0627\u062A",
@@ -902,6 +918,8 @@ var zh = {
902
918
  tomorrow: "\u660E\u5929",
903
919
  eventCount: "\u4E2A\u6D3B\u52A8",
904
920
  eventsCount: "\u4E2A\u6D3B\u52A8",
921
+ hourCount: "\u5C0F\u65F6",
922
+ hoursCount: "\u5C0F\u65F6",
905
923
  timezone: "\u65F6\u533A",
906
924
  localTime: "\u672C\u5730\u65F6\u95F4",
907
925
  operations: "\u64CD\u4F5C",
@@ -995,6 +1013,8 @@ var ja = {
995
1013
  tomorrow: "\u660E\u65E5",
996
1014
  eventCount: "\u4EF6\u306E\u30A4\u30D9\u30F3\u30C8",
997
1015
  eventsCount: "\u4EF6\u306E\u30A4\u30D9\u30F3\u30C8",
1016
+ hourCount: "\u6642\u9593",
1017
+ hoursCount: "\u6642\u9593",
998
1018
  timezone: "\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3",
999
1019
  localTime: "\u30ED\u30FC\u30AB\u30EB\u6642\u9593",
1000
1020
  operations: "\u64CD\u4F5C",
@@ -1088,6 +1108,8 @@ var ko = {
1088
1108
  tomorrow: "\uB0B4\uC77C",
1089
1109
  eventCount: "\uAC1C \uC77C\uC815",
1090
1110
  eventsCount: "\uAC1C \uC77C\uC815",
1111
+ hourCount: "\uC2DC\uAC04",
1112
+ hoursCount: "\uC2DC\uAC04",
1091
1113
  timezone: "\uC2DC\uAC04\uB300",
1092
1114
  localTime: "\uB85C\uCEEC \uC2DC\uAC04",
1093
1115
  operations: "\uC791\uC5C5",
@@ -1181,6 +1203,8 @@ var ru = {
1181
1203
  tomorrow: "\u0417\u0430\u0432\u0442\u0440\u0430",
1182
1204
  eventCount: "\u0441\u043E\u0431\u044B\u0442\u0438\u0435",
1183
1205
  eventsCount: "\u0441\u043E\u0431\u044B\u0442\u0438\u0439",
1206
+ hourCount: "\u0447\u0430\u0441",
1207
+ hoursCount: "\u0447\u0430\u0441\u043E\u0432",
1184
1208
  timezone: "\u0427\u0430\u0441\u043E\u0432\u043E\u0439 \u043F\u043E\u044F\u0441",
1185
1209
  localTime: "\u041C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F",
1186
1210
  operations: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438",
@@ -1274,6 +1298,8 @@ var nl = {
1274
1298
  tomorrow: "Morgen",
1275
1299
  eventCount: "evenement",
1276
1300
  eventsCount: "evenementen",
1301
+ hourCount: "uur",
1302
+ hoursCount: "uur",
1277
1303
  timezone: "Tijdzone",
1278
1304
  localTime: "Lokale tijd",
1279
1305
  operations: "Bewerkingen",
@@ -1367,6 +1393,8 @@ var pl = {
1367
1393
  tomorrow: "Jutro",
1368
1394
  eventCount: "wydarzenie",
1369
1395
  eventsCount: "wydarze\u0144",
1396
+ hourCount: "godzina",
1397
+ hoursCount: "godzin",
1370
1398
  timezone: "Strefa czasowa",
1371
1399
  localTime: "Czas lokalny",
1372
1400
  operations: "Operacje",
@@ -1460,6 +1488,8 @@ var sv = {
1460
1488
  tomorrow: "Imorgon",
1461
1489
  eventCount: "h\xE4ndelse",
1462
1490
  eventsCount: "h\xE4ndelser",
1491
+ hourCount: "timme",
1492
+ hoursCount: "timmar",
1463
1493
  timezone: "Tidszon",
1464
1494
  localTime: "Lokal tid",
1465
1495
  operations: "\xC5tg\xE4rder",
@@ -1542,6 +1572,7 @@ var CalendarHeader = ({
1542
1572
  activeCustomViewId,
1543
1573
  onCustomViewChange,
1544
1574
  eventCount,
1575
+ hourCount,
1545
1576
  hideLanguageSwitcher = false
1546
1577
  }) => {
1547
1578
  const [isLangOpen, setIsLangOpen] = useState(false);
@@ -1617,7 +1648,7 @@ var CalendarHeader = ({
1617
1648
  { key: "agenda", icon: ListTodo }
1618
1649
  ];
1619
1650
  const currentLang = LANGUAGE_META[language] ?? LANGUAGE_META["tr"];
1620
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col md:flex-row items-center justify-between px-3 md:px-5 py-3 border-b-[0px] border-border/50 bg-gradient-to-r from-background via-background to-muted/20 gap-3 md:gap-0 min-h-[64px]" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2 w-full md:w-auto justify-between md:justify-start" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2 md:gap-3" }, /* @__PURE__ */ React17__default.createElement(
1651
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col md:flex-row items-center justify-between px-3 md:px-5 py-3 border-b-[0px] border-border/50 bg-gradient-to-r from-background via-background to-muted/20 gap-3 md:gap-0 min-h-[64px]" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2 w-full md:w-auto justify-between md:justify-start" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2 md:gap-3" }, /* @__PURE__ */ React18__default.createElement(
1621
1652
  Button,
1622
1653
  {
1623
1654
  variant: "ghost",
@@ -1625,8 +1656,8 @@ var CalendarHeader = ({
1625
1656
  className: "text-muted-foreground hover:text-foreground hover:bg-accent/80 rounded-xl h-10 w-10 transition-all duration-200",
1626
1657
  onClick: onMenuClick
1627
1658
  },
1628
- /* @__PURE__ */ React17__default.createElement(Menu, { className: "h-5 w-5" })
1629
- ), /* @__PURE__ */ React17__default.createElement(
1659
+ /* @__PURE__ */ React18__default.createElement(Menu, { className: "h-5 w-5" })
1660
+ ), /* @__PURE__ */ React18__default.createElement(
1630
1661
  Button,
1631
1662
  {
1632
1663
  variant: "outline",
@@ -1634,15 +1665,15 @@ var CalendarHeader = ({
1634
1665
  className: "h-9 px-5 rounded-xl text-sm font-medium hidden sm:inline-flex border-[0.5px] border-border/60 hover:border-primary/40 hover:bg-primary/5 hover:text-primary transition-all duration-200"
1635
1666
  },
1636
1667
  translations.today
1637
- ), onCreateEvent && /* @__PURE__ */ React17__default.createElement("div", { className: "relative group hidden sm:block" }, /* @__PURE__ */ React17__default.createElement(
1668
+ ), onCreateEvent && /* @__PURE__ */ React18__default.createElement("div", { className: "relative group hidden sm:block" }, /* @__PURE__ */ React18__default.createElement(
1638
1669
  Button,
1639
1670
  {
1640
1671
  onClick: onCreateEvent,
1641
1672
  size: "icon",
1642
1673
  className: "h-9 w-9 rounded-xl shadow-sm shadow-primary/20 transition-all duration-200"
1643
1674
  },
1644
- /* @__PURE__ */ React17__default.createElement(Plus, { className: "h-4 w-4" })
1645
- ), /* @__PURE__ */ React17__default.createElement("div", { className: "pointer-events-none absolute left-1/2 -translate-x-1/2 top-full mt-2 z-50 opacity-0 group-hover:opacity-100 transition-opacity duration-150" }, /* @__PURE__ */ React17__default.createElement("div", { className: "bg-popover text-popover-foreground text-xs font-medium px-2.5 py-1.5 rounded-lg shadow-md border border-border/60 whitespace-nowrap" }, translations.createEvent ?? translations.create), /* @__PURE__ */ React17__default.createElement("div", { className: "absolute -top-1 left-1/2 -translate-x-1/2 w-2 h-2 bg-popover border-l border-t border-border/60 rotate-45" }))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center bg-muted/40 rounded-xl p-0.5" }, /* @__PURE__ */ React17__default.createElement(
1675
+ /* @__PURE__ */ React18__default.createElement(Plus, { className: "h-4 w-4" })
1676
+ ), /* @__PURE__ */ React18__default.createElement("div", { className: "pointer-events-none absolute left-1/2 -translate-x-1/2 top-full mt-2 z-50 opacity-0 group-hover:opacity-100 transition-opacity duration-150" }, /* @__PURE__ */ React18__default.createElement("div", { className: "bg-popover text-popover-foreground text-xs font-medium px-2.5 py-1.5 rounded-lg shadow-md border border-border/60 whitespace-nowrap" }, translations.createEvent ?? translations.create), /* @__PURE__ */ React18__default.createElement("div", { className: "absolute -top-1 left-1/2 -translate-x-1/2 w-2 h-2 bg-popover border-l border-t border-border/60 rotate-45" }))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center bg-muted/40 rounded-xl p-0.5" }, /* @__PURE__ */ React18__default.createElement(
1646
1677
  Button,
1647
1678
  {
1648
1679
  variant: "ghost",
@@ -1650,8 +1681,8 @@ var CalendarHeader = ({
1650
1681
  onClick: onPrev,
1651
1682
  className: "rounded-lg h-8 w-8 hover:bg-background/80 transition-all duration-200"
1652
1683
  },
1653
- /* @__PURE__ */ React17__default.createElement(ChevronLeft, { className: "h-4 w-4 text-muted-foreground" })
1654
- ), /* @__PURE__ */ React17__default.createElement(
1684
+ /* @__PURE__ */ React18__default.createElement(ChevronLeft, { className: "h-4 w-4 text-muted-foreground" })
1685
+ ), /* @__PURE__ */ React18__default.createElement(
1655
1686
  Button,
1656
1687
  {
1657
1688
  variant: "ghost",
@@ -1659,8 +1690,8 @@ var CalendarHeader = ({
1659
1690
  onClick: onNext,
1660
1691
  className: "rounded-lg h-8 w-8 hover:bg-background/80 transition-all duration-200"
1661
1692
  },
1662
- /* @__PURE__ */ React17__default.createElement(ChevronRight, { className: "h-4 w-4 text-muted-foreground" })
1663
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "ml-2 md:ml-4 hidden sm:block" }, /* @__PURE__ */ React17__default.createElement("h2", { className: "text-lg md:text-xl font-semibold text-foreground whitespace-nowrap capitalize tracking-tight" }, format(currentDate, "MMMM yyyy", { locale })))), /* @__PURE__ */ React17__default.createElement("div", { className: "sm:hidden" }, /* @__PURE__ */ React17__default.createElement("h2", { className: "text-lg font-semibold text-foreground whitespace-nowrap capitalize tracking-tight" }, format(currentDate, "MMMM yyyy", { locale })))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2 md:gap-3 w-full md:w-auto justify-end" }, onLanguageChange && !hideLanguageSwitcher && /* @__PURE__ */ React17__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React17__default.createElement(
1693
+ /* @__PURE__ */ React18__default.createElement(ChevronRight, { className: "h-4 w-4 text-muted-foreground" })
1694
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "ml-2 md:ml-4 hidden sm:block" }, /* @__PURE__ */ React18__default.createElement("h2", { className: "text-lg md:text-xl font-semibold text-foreground whitespace-nowrap capitalize tracking-tight" }, format(currentDate, "MMMM yyyy", { locale })))), /* @__PURE__ */ React18__default.createElement("div", { className: "sm:hidden" }, /* @__PURE__ */ React18__default.createElement("h2", { className: "text-lg font-semibold text-foreground whitespace-nowrap capitalize tracking-tight" }, format(currentDate, "MMMM yyyy", { locale })))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2 md:gap-3 w-full md:w-auto justify-end" }, onLanguageChange && !hideLanguageSwitcher && /* @__PURE__ */ React18__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React18__default.createElement(
1664
1695
  "button",
1665
1696
  {
1666
1697
  ref: langButtonRef,
@@ -1672,20 +1703,20 @@ var CalendarHeader = ({
1672
1703
  ),
1673
1704
  title: currentLang.english
1674
1705
  },
1675
- /* @__PURE__ */ React17__default.createElement(Globe, { className: "h-3.5 w-3.5" }),
1676
- /* @__PURE__ */ React17__default.createElement("span", { className: "text-base leading-none" }, currentLang.flag),
1677
- /* @__PURE__ */ React17__default.createElement("span", { className: "hidden sm:inline text-xs font-semibold uppercase tracking-wider" }, language),
1678
- /* @__PURE__ */ React17__default.createElement(ChevronDown, { className: cn("h-3.5 w-3.5 transition-transform duration-200", isLangOpen && "rotate-180") })
1706
+ /* @__PURE__ */ React18__default.createElement(Globe, { className: "h-3.5 w-3.5" }),
1707
+ /* @__PURE__ */ React18__default.createElement("span", { className: "text-base leading-none" }, currentLang.flag),
1708
+ /* @__PURE__ */ React18__default.createElement("span", { className: "hidden sm:inline text-xs font-semibold uppercase tracking-wider" }, language),
1709
+ /* @__PURE__ */ React18__default.createElement(ChevronDown, { className: cn("h-3.5 w-3.5 transition-transform duration-200", isLangOpen && "rotate-180") })
1679
1710
  ), isLangOpen && langPos && createPortal(
1680
- /* @__PURE__ */ React17__default.createElement(
1711
+ /* @__PURE__ */ React18__default.createElement(
1681
1712
  "div",
1682
1713
  {
1683
1714
  ref: langDropdownRef,
1684
1715
  className: "fixed w-52 bg-background border border-border/60 rounded-2xl shadow-2xl z-[9999] overflow-hidden py-1.5",
1685
1716
  style: { top: langPos.top, left: langPos.left, width: LANG_DROPDOWN_WIDTH }
1686
1717
  },
1687
- /* @__PURE__ */ React17__default.createElement("div", { className: "px-3 py-2 border-b border-border/40 mb-1" }, /* @__PURE__ */ React17__default.createElement("p", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider" }, "Language / Dil")),
1688
- /* @__PURE__ */ React17__default.createElement("div", { className: "max-h-72 overflow-y-auto" }, Object.entries(LANGUAGE_META).map(([code, meta]) => /* @__PURE__ */ React17__default.createElement(
1718
+ /* @__PURE__ */ React18__default.createElement("div", { className: "px-3 py-2 border-b border-border/40 mb-1" }, /* @__PURE__ */ React18__default.createElement("p", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider" }, "Language / Dil")),
1719
+ /* @__PURE__ */ React18__default.createElement("div", { className: "max-h-72 overflow-y-auto" }, Object.entries(LANGUAGE_META).map(([code, meta]) => /* @__PURE__ */ React18__default.createElement(
1689
1720
  "button",
1690
1721
  {
1691
1722
  key: code,
@@ -1699,13 +1730,13 @@ var CalendarHeader = ({
1699
1730
  language === code ? "bg-primary/10 text-primary font-semibold" : "text-foreground"
1700
1731
  )
1701
1732
  },
1702
- /* @__PURE__ */ React17__default.createElement("span", { className: "text-lg leading-none w-6 text-center" }, meta.flag),
1703
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 text-left" }, /* @__PURE__ */ React17__default.createElement("div", { className: cn("font-medium", meta.rtl && "text-right") }, meta.native), /* @__PURE__ */ React17__default.createElement("div", { className: "text-xs text-muted-foreground" }, meta.english)),
1704
- language === code && /* @__PURE__ */ React17__default.createElement("div", { className: "w-2 h-2 rounded-full bg-primary shrink-0" })
1733
+ /* @__PURE__ */ React18__default.createElement("span", { className: "text-lg leading-none w-6 text-center" }, meta.flag),
1734
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 text-left" }, /* @__PURE__ */ React18__default.createElement("div", { className: cn("font-medium", meta.rtl && "text-right") }, meta.native), /* @__PURE__ */ React18__default.createElement("div", { className: "text-xs text-muted-foreground" }, meta.english)),
1735
+ language === code && /* @__PURE__ */ React18__default.createElement("div", { className: "w-2 h-2 rounded-full bg-primary shrink-0" })
1705
1736
  )))
1706
1737
  ),
1707
1738
  document.body
1708
- )), onThemeToggle && /* @__PURE__ */ React17__default.createElement(
1739
+ )), onThemeToggle && /* @__PURE__ */ React18__default.createElement(
1709
1740
  Button,
1710
1741
  {
1711
1742
  variant: "ghost",
@@ -1713,16 +1744,24 @@ var CalendarHeader = ({
1713
1744
  className: "rounded-xl h-9 w-9 hover:bg-accent/80 transition-all duration-200",
1714
1745
  onClick: onThemeToggle
1715
1746
  },
1716
- isDarkMode ? /* @__PURE__ */ React17__default.createElement(Sun, { className: "h-4 w-4 text-amber-500" }) : /* @__PURE__ */ React17__default.createElement(Moon, { className: "h-4 w-4 text-muted-foreground" })
1717
- ), typeof eventCount === "number" && !hideViewSwitcher && /* @__PURE__ */ React17__default.createElement(
1747
+ isDarkMode ? /* @__PURE__ */ React18__default.createElement(Sun, { className: "h-4 w-4 text-amber-500" }) : /* @__PURE__ */ React18__default.createElement(Moon, { className: "h-4 w-4 text-muted-foreground" })
1748
+ ), !hideViewSwitcher && (typeof eventCount === "number" || typeof hourCount === "number") && /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-1.5" }, typeof eventCount === "number" && /* @__PURE__ */ React18__default.createElement(
1718
1749
  "div",
1719
1750
  {
1720
1751
  className: "flex items-center gap-1.5 h-8 px-3 rounded-xl bg-primary/10 text-primary text-xs font-semibold tabular-nums select-none border border-primary/20 shadow-sm shadow-primary/10",
1721
- title: `${eventCount} event${eventCount !== 1 ? "s" : ""}`
1752
+ title: `${eventCount} ${eventCount === 1 ? translations.eventCount ?? "event" : translations.eventsCount ?? "events"}`
1722
1753
  },
1723
- /* @__PURE__ */ React17__default.createElement(CalendarCheck2, { className: "w-3.5 h-3.5 shrink-0" }),
1724
- /* @__PURE__ */ React17__default.createElement("span", null, eventCount)
1725
- ), !hideViewSwitcher && /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center bg-muted/50 backdrop-blur-sm rounded-xl p-1 gap-0.5" }, viewConfig.map(({ key, icon: Icon }) => /* @__PURE__ */ React17__default.createElement(
1754
+ /* @__PURE__ */ React18__default.createElement(CalendarCheck2, { className: "w-3.5 h-3.5 shrink-0" }),
1755
+ /* @__PURE__ */ React18__default.createElement("span", null, eventCount)
1756
+ ), typeof hourCount === "number" && /* @__PURE__ */ React18__default.createElement(
1757
+ "div",
1758
+ {
1759
+ className: "flex items-center gap-1.5 h-8 px-3 rounded-xl bg-amber-500/10 text-amber-600 dark:text-amber-400 text-xs font-semibold tabular-nums select-none border border-amber-500/20 shadow-sm shadow-amber-500/10",
1760
+ title: `${hourCount} ${hourCount === 1 ? translations.hourCount ?? "hour" : translations.hoursCount ?? "hours"}`
1761
+ },
1762
+ /* @__PURE__ */ React18__default.createElement(Clock, { className: "w-3.5 h-3.5 shrink-0" }),
1763
+ /* @__PURE__ */ React18__default.createElement("span", null, hourCount)
1764
+ )), !hideViewSwitcher && /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center bg-muted/50 backdrop-blur-sm rounded-xl p-1 gap-0.5" }, viewConfig.map(({ key, icon: Icon }) => /* @__PURE__ */ React18__default.createElement(
1726
1765
  Button,
1727
1766
  {
1728
1767
  key,
@@ -1737,9 +1776,9 @@ var CalendarHeader = ({
1737
1776
  view === key && !activeCustomViewId ? "bg-background shadow-sm text-foreground font-medium border-[0.5px] border-border/50" : "text-muted-foreground hover:text-foreground hover:bg-background/50"
1738
1777
  )
1739
1778
  },
1740
- /* @__PURE__ */ React17__default.createElement(Icon, { className: "h-3.5 w-3.5" }),
1741
- /* @__PURE__ */ React17__default.createElement("span", { className: "hidden sm:inline" }, translations[key])
1742
- )), customViews && customViews.length > 0 && /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement("div", { className: "w-px h-5 bg-border/60 mx-0.5 shrink-0" }), /* @__PURE__ */ React17__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React17__default.createElement(
1779
+ /* @__PURE__ */ React18__default.createElement(Icon, { className: "h-3.5 w-3.5" }),
1780
+ /* @__PURE__ */ React18__default.createElement("span", { className: "hidden sm:inline" }, translations[key])
1781
+ )), customViews && customViews.length > 0 && /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement("div", { className: "w-px h-5 bg-border/60 mx-0.5 shrink-0" }), /* @__PURE__ */ React18__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React18__default.createElement(
1743
1782
  Button,
1744
1783
  {
1745
1784
  ref: customViewButtonRef,
@@ -1752,17 +1791,17 @@ var CalendarHeader = ({
1752
1791
  ),
1753
1792
  title: "Daha fazla g\xF6r\xFCn\xFCm"
1754
1793
  },
1755
- activeCustomViewId ? customViews.find((cv) => cv.id === activeCustomViewId)?.label : /* @__PURE__ */ React17__default.createElement(MoreHorizontal, { className: "h-3.5 w-3.5" }),
1756
- /* @__PURE__ */ React17__default.createElement(ChevronDown, { className: cn("h-3 w-3 transition-transform duration-150", isCustomViewOpen && "rotate-180") })
1794
+ activeCustomViewId ? customViews.find((cv) => cv.id === activeCustomViewId)?.label : /* @__PURE__ */ React18__default.createElement(MoreHorizontal, { className: "h-3.5 w-3.5" }),
1795
+ /* @__PURE__ */ React18__default.createElement(ChevronDown, { className: cn("h-3 w-3 transition-transform duration-150", isCustomViewOpen && "rotate-180") })
1757
1796
  ), isCustomViewOpen && customViewPos && createPortal(
1758
- /* @__PURE__ */ React17__default.createElement(
1797
+ /* @__PURE__ */ React18__default.createElement(
1759
1798
  "div",
1760
1799
  {
1761
1800
  ref: customViewDropdownRef,
1762
1801
  className: "fixed min-w-[160px] bg-background border border-border/60 rounded-2xl shadow-2xl z-[9999] overflow-hidden py-1.5",
1763
1802
  style: { top: customViewPos.top, left: customViewPos.left, minWidth: CUSTOM_VIEW_DROPDOWN_WIDTH }
1764
1803
  },
1765
- customViews.map((cv) => /* @__PURE__ */ React17__default.createElement(
1804
+ customViews.map((cv) => /* @__PURE__ */ React18__default.createElement(
1766
1805
  "button",
1767
1806
  {
1768
1807
  key: cv.id,
@@ -1776,9 +1815,9 @@ var CalendarHeader = ({
1776
1815
  activeCustomViewId === cv.id ? "bg-primary/10 text-primary font-semibold" : "text-foreground"
1777
1816
  )
1778
1817
  },
1779
- cv.icon && /* @__PURE__ */ React17__default.createElement("span", { className: "w-4 h-4 flex items-center justify-center shrink-0" }, cv.icon),
1780
- /* @__PURE__ */ React17__default.createElement("span", null, cv.label),
1781
- activeCustomViewId === cv.id && /* @__PURE__ */ React17__default.createElement("span", { className: "ml-auto w-1.5 h-1.5 rounded-full bg-primary shrink-0" })
1818
+ cv.icon && /* @__PURE__ */ React18__default.createElement("span", { className: "w-4 h-4 flex items-center justify-center shrink-0" }, cv.icon),
1819
+ /* @__PURE__ */ React18__default.createElement("span", null, cv.label),
1820
+ activeCustomViewId === cv.id && /* @__PURE__ */ React18__default.createElement("span", { className: "ml-auto w-1.5 h-1.5 rounded-full bg-primary shrink-0" })
1782
1821
  ))
1783
1822
  ),
1784
1823
  document.body
@@ -1805,12 +1844,12 @@ var MiniCalendar = ({
1805
1844
  className,
1806
1845
  locale
1807
1846
  }) => {
1808
- const [viewDate, setViewDate] = React17__default.useState(currentDate);
1809
- React17__default.useEffect(() => {
1847
+ const [viewDate, setViewDate] = React18__default.useState(currentDate);
1848
+ React18__default.useEffect(() => {
1810
1849
  setViewDate(currentDate);
1811
1850
  }, [currentDate]);
1812
- const days = React17__default.useMemo(() => getMonthGrid(viewDate), [viewDate]);
1813
- const weekDays = React17__default.useMemo(() => {
1851
+ const days = React18__default.useMemo(() => getMonthGrid(viewDate), [viewDate]);
1852
+ const weekDays = React18__default.useMemo(() => {
1814
1853
  const base = new Date(2024, 0, 7);
1815
1854
  return Array.from({ length: 7 }, (_, i) => {
1816
1855
  const d = new Date(base);
@@ -1834,7 +1873,7 @@ var MiniCalendar = ({
1834
1873
  onDateChange(day);
1835
1874
  if (onViewChange) onViewChange("day");
1836
1875
  };
1837
- return /* @__PURE__ */ React17__default.createElement("div", { className: cn("px-4 w-[260px]", className) }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between mb-4" }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-semibold text-foreground capitalize" }, format(viewDate, "MMMM yyyy", { locale })), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center bg-muted/40 rounded-lg p-0.5" }, /* @__PURE__ */ React17__default.createElement(
1876
+ return /* @__PURE__ */ React18__default.createElement("div", { className: cn("px-4 w-[260px]", className) }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between mb-4" }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-semibold text-foreground capitalize" }, format(viewDate, "MMMM yyyy", { locale })), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center bg-muted/40 rounded-lg p-0.5" }, /* @__PURE__ */ React18__default.createElement(
1838
1877
  Button,
1839
1878
  {
1840
1879
  variant: "ghost",
@@ -1843,8 +1882,8 @@ var MiniCalendar = ({
1843
1882
  onClick: handlePrev,
1844
1883
  "aria-label": "Previous month"
1845
1884
  },
1846
- /* @__PURE__ */ React17__default.createElement(ChevronLeft, { className: "h-4 w-4" })
1847
- ), /* @__PURE__ */ React17__default.createElement(
1885
+ /* @__PURE__ */ React18__default.createElement(ChevronLeft, { className: "h-4 w-4" })
1886
+ ), /* @__PURE__ */ React18__default.createElement(
1848
1887
  Button,
1849
1888
  {
1850
1889
  variant: "ghost",
@@ -1853,12 +1892,12 @@ var MiniCalendar = ({
1853
1892
  onClick: handleNext,
1854
1893
  "aria-label": "Next month"
1855
1894
  },
1856
- /* @__PURE__ */ React17__default.createElement(ChevronRight, { className: "h-4 w-4" })
1857
- ))), /* @__PURE__ */ React17__default.createElement("div", { className: "grid grid-cols-7 gap-y-2 text-center mb-2" }, weekDays.map((day, i) => /* @__PURE__ */ React17__default.createElement("div", { key: `${day}-${i}`, className: "text-[10px] text-muted-foreground/70 font-semibold uppercase" }, day))), /* @__PURE__ */ React17__default.createElement("div", { className: "grid grid-cols-7 gap-y-1 text-center" }, days.map((day) => {
1895
+ /* @__PURE__ */ React18__default.createElement(ChevronRight, { className: "h-4 w-4" })
1896
+ ))), /* @__PURE__ */ React18__default.createElement("div", { className: "grid grid-cols-7 gap-y-2 text-center mb-2" }, weekDays.map((day, i) => /* @__PURE__ */ React18__default.createElement("div", { key: `${day}-${i}`, className: "text-[10px] text-muted-foreground/70 font-semibold uppercase" }, day))), /* @__PURE__ */ React18__default.createElement("div", { className: "grid grid-cols-7 gap-y-1 text-center" }, days.map((day) => {
1858
1897
  const isSelected = isSameDay(day, currentDate);
1859
1898
  const isCurrentMonth = isSameMonth(day, viewDate);
1860
1899
  const isTodayDate = isToday(day);
1861
- return /* @__PURE__ */ React17__default.createElement(
1900
+ return /* @__PURE__ */ React18__default.createElement(
1862
1901
  "button",
1863
1902
  {
1864
1903
  key: day.toISOString(),
@@ -1940,7 +1979,7 @@ var Sidebar = ({
1940
1979
  ];
1941
1980
  const formatTzLabel = (tz, showTime = true) => {
1942
1981
  if (!hasMounted || !now || !showTime) {
1943
- return /* @__PURE__ */ React17__default.createElement("span", null, tz.label);
1982
+ return /* @__PURE__ */ React18__default.createElement("span", null, tz.label);
1944
1983
  }
1945
1984
  let time = "";
1946
1985
  let acronym = tz.acronym;
@@ -1960,29 +1999,29 @@ var Sidebar = ({
1960
1999
  }
1961
2000
  }
1962
2001
  } catch (e) {
1963
- return /* @__PURE__ */ React17__default.createElement("span", null, tz.label);
2002
+ return /* @__PURE__ */ React18__default.createElement("span", null, tz.label);
1964
2003
  }
1965
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex justify-between w-full" }, /* @__PURE__ */ React17__default.createElement("span", null, tz.label), /* @__PURE__ */ React17__default.createElement("span", { className: "text-muted-foreground ml-2 tabular-nums" }, time, " ", /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs opacity-75" }, "(", acronym, ")")));
2004
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex justify-between w-full" }, /* @__PURE__ */ React18__default.createElement("span", null, tz.label), /* @__PURE__ */ React18__default.createElement("span", { className: "text-muted-foreground ml-2 tabular-nums" }, time, " ", /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs opacity-75" }, "(", acronym, ")")));
1966
2005
  };
1967
2006
  const selectedTzObj = timezones.find((t) => t.value === (timezone || ""));
1968
2007
  const selectedTimezoneLabel = selectedTzObj ? formatTzLabel(selectedTzObj) : translations?.localTime ?? "Local Time";
1969
- return /* @__PURE__ */ React17__default.createElement("div", { className: cn("flex flex-col w-[260px] overflow-x-hidden h-full bg-gradient-to-b scrollbar-hide from-background via-background to-muted/10 pt-4 pb-4 overflow-y-auto", className) }, sidebarMenus && sidebarMenus.length > 0 && /* @__PURE__ */ React17__default.createElement("div", { className: "px-4 mb-4" }, !menusExpanded && /* @__PURE__ */ React17__default.createElement(
2008
+ return /* @__PURE__ */ React18__default.createElement("div", { className: cn("flex flex-col w-[260px] overflow-x-hidden h-full bg-gradient-to-b scrollbar-hide from-background via-background to-muted/10 pt-4 pb-4 overflow-y-auto", className) }, sidebarMenus && sidebarMenus.length > 0 && /* @__PURE__ */ React18__default.createElement("div", { className: "px-4 mb-4" }, !menusExpanded && /* @__PURE__ */ React18__default.createElement(
1970
2009
  Button,
1971
2010
  {
1972
2011
  variant: "outline",
1973
2012
  className: "w-full rounded-2xl h-11 gap-2.5 justify-start border-[0.5px] border-border/60 hover:border-primary/40 hover:bg-primary/5 hover:text-primary transition-all duration-200 font-medium text-sm",
1974
2013
  onClick: () => setMenusExpanded(true)
1975
2014
  },
1976
- /* @__PURE__ */ React17__default.createElement(LayoutGrid, { className: "w-4 h-4" }),
1977
- /* @__PURE__ */ React17__default.createElement("span", null, translations?.operations ?? "\u0130\u015Flemler")
1978
- ), menusExpanded && /* @__PURE__ */ React17__default.createElement("div", { className: "animate-in fade-in slide-in-from-top-2 duration-200" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between mb-2 px-1" }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider" }, translations?.operations ?? "\u0130\u015Flemler"), /* @__PURE__ */ React17__default.createElement(
2015
+ /* @__PURE__ */ React18__default.createElement(LayoutGrid, { className: "w-4 h-4" }),
2016
+ /* @__PURE__ */ React18__default.createElement("span", null, translations?.operations ?? "\u0130\u015Flemler")
2017
+ ), menusExpanded && /* @__PURE__ */ React18__default.createElement("div", { className: "animate-in fade-in slide-in-from-top-2 duration-200" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between mb-2 px-1" }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider" }, translations?.operations ?? "\u0130\u015Flemler"), /* @__PURE__ */ React18__default.createElement(
1979
2018
  "button",
1980
2019
  {
1981
2020
  onClick: () => setMenusExpanded(false),
1982
2021
  className: "w-6 h-6 rounded-lg flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent/60 transition-all duration-150"
1983
2022
  },
1984
- /* @__PURE__ */ React17__default.createElement(X, { className: "w-3.5 h-3.5" })
1985
- )), /* @__PURE__ */ React17__default.createElement("nav", { className: "space-y-0.5" }, /* @__PURE__ */ React17__default.createElement(
2023
+ /* @__PURE__ */ React18__default.createElement(X, { className: "w-3.5 h-3.5" })
2024
+ )), /* @__PURE__ */ React18__default.createElement("nav", { className: "space-y-0.5" }, /* @__PURE__ */ React18__default.createElement(
1986
2025
  "button",
1987
2026
  {
1988
2027
  onClick: () => {
@@ -1994,10 +2033,10 @@ var Sidebar = ({
1994
2033
  activeCustomMenu === null ? "bg-primary/10 text-primary" : "text-muted-foreground hover:bg-accent/60 hover:text-foreground"
1995
2034
  )
1996
2035
  },
1997
- /* @__PURE__ */ React17__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "w-4 h-4 shrink-0", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React17__default.createElement("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), /* @__PURE__ */ React17__default.createElement("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), /* @__PURE__ */ React17__default.createElement("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), /* @__PURE__ */ React17__default.createElement("line", { x1: "3", y1: "10", x2: "21", y2: "10" })),
1998
- /* @__PURE__ */ React17__default.createElement("span", null, translations?.calendar ?? "Takvim"),
1999
- activeCustomMenu === null && /* @__PURE__ */ React17__default.createElement("span", { className: "ml-auto w-1.5 h-1.5 rounded-full bg-primary" })
2000
- ), sidebarMenus?.map((item) => /* @__PURE__ */ React17__default.createElement(
2036
+ /* @__PURE__ */ React18__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "w-4 h-4 shrink-0", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React18__default.createElement("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", ry: "2" }), /* @__PURE__ */ React18__default.createElement("line", { x1: "16", y1: "2", x2: "16", y2: "6" }), /* @__PURE__ */ React18__default.createElement("line", { x1: "8", y1: "2", x2: "8", y2: "6" }), /* @__PURE__ */ React18__default.createElement("line", { x1: "3", y1: "10", x2: "21", y2: "10" })),
2037
+ /* @__PURE__ */ React18__default.createElement("span", null, translations?.calendar ?? "Takvim"),
2038
+ activeCustomMenu === null && /* @__PURE__ */ React18__default.createElement("span", { className: "ml-auto w-1.5 h-1.5 rounded-full bg-primary" })
2039
+ ), sidebarMenus?.map((item) => /* @__PURE__ */ React18__default.createElement(
2001
2040
  "button",
2002
2041
  {
2003
2042
  key: item.id,
@@ -2010,10 +2049,10 @@ var Sidebar = ({
2010
2049
  activeCustomMenu === item.id ? "bg-primary/10 text-primary" : "text-muted-foreground hover:bg-accent/60 hover:text-foreground"
2011
2050
  )
2012
2051
  },
2013
- item.icon && /* @__PURE__ */ React17__default.createElement("span", { className: "w-4 h-4 shrink-0 flex items-center justify-center" }, item.icon),
2014
- /* @__PURE__ */ React17__default.createElement("span", { className: "truncate" }, item.label),
2015
- activeCustomMenu === item.id && /* @__PURE__ */ React17__default.createElement("span", { className: "ml-auto w-1.5 h-1.5 rounded-full bg-primary" })
2016
- ))))), onEventCreate && /* @__PURE__ */ React17__default.createElement("div", { className: "md:hidden px-4 mb-4" }, /* @__PURE__ */ React17__default.createElement(
2052
+ item.icon && /* @__PURE__ */ React18__default.createElement("span", { className: "w-4 h-4 shrink-0 flex items-center justify-center" }, item.icon),
2053
+ /* @__PURE__ */ React18__default.createElement("span", { className: "truncate" }, item.label),
2054
+ activeCustomMenu === item.id && /* @__PURE__ */ React18__default.createElement("span", { className: "ml-auto w-1.5 h-1.5 rounded-full bg-primary" })
2055
+ ))))), onEventCreate && /* @__PURE__ */ React18__default.createElement("div", { className: "md:hidden px-4 mb-4" }, /* @__PURE__ */ React18__default.createElement(
2017
2056
  Button,
2018
2057
  {
2019
2058
  onClick: () => {
@@ -2021,9 +2060,9 @@ var Sidebar = ({
2021
2060
  },
2022
2061
  className: "w-full rounded-2xl h-11 gap-2.5 justify-center shadow-sm shadow-primary/20 transition-all duration-200 font-medium text-sm"
2023
2062
  },
2024
- /* @__PURE__ */ React17__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "w-4 h-4 shrink-0", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React17__default.createElement("path", { d: "M5 12h14" }), /* @__PURE__ */ React17__default.createElement("path", { d: "M12 5v14" })),
2025
- /* @__PURE__ */ React17__default.createElement("span", null, translations?.createEvent ?? "Etkinlik Olu\u015Ftur")
2026
- )), onReverseTimeChange && /* @__PURE__ */ React17__default.createElement("div", { className: "px-4 mb-4" }, /* @__PURE__ */ React17__default.createElement(
2063
+ /* @__PURE__ */ React18__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "w-4 h-4 shrink-0", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React18__default.createElement("path", { d: "M5 12h14" }), /* @__PURE__ */ React18__default.createElement("path", { d: "M12 5v14" })),
2064
+ /* @__PURE__ */ React18__default.createElement("span", null, translations?.createEvent ?? "Etkinlik Olu\u015Ftur")
2065
+ )), onReverseTimeChange && /* @__PURE__ */ React18__default.createElement("div", { className: "px-4 mb-4" }, /* @__PURE__ */ React18__default.createElement(
2027
2066
  "button",
2028
2067
  {
2029
2068
  onClick: () => onReverseTimeChange(!reverseTime),
@@ -2032,33 +2071,33 @@ var Sidebar = ({
2032
2071
  reverseTime ? "bg-primary/10 border-primary/30 text-primary" : "bg-muted/30 border-border/50 text-muted-foreground hover:border-primary/30 hover:text-foreground"
2033
2072
  )
2034
2073
  },
2035
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2.5" }, /* @__PURE__ */ React17__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "w-4 h-4 shrink-0", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React17__default.createElement("line", { x1: "12", y1: "19", x2: "12", y2: "5" }), /* @__PURE__ */ React17__default.createElement("polyline", { points: "5 12 12 5 19 12" }), /* @__PURE__ */ React17__default.createElement("line", { x1: "12", y1: "5", x2: "12", y2: "19", className: "opacity-40" }), /* @__PURE__ */ React17__default.createElement("polyline", { points: "5 12 12 19 19 12", className: "opacity-40" })), /* @__PURE__ */ React17__default.createElement("div", { className: "text-left" }, /* @__PURE__ */ React17__default.createElement("div", { className: "text-xs font-semibold leading-tight" }, translations?.reverseTimeLabel ?? "Saat Y\xF6n\xFC"), /* @__PURE__ */ React17__default.createElement("div", { className: "text-[10px] leading-tight opacity-70 mt-0.5" }, reverseTime ? "23:00 \u2192 00:00" : "00:00 \u2192 23:00"))),
2036
- /* @__PURE__ */ React17__default.createElement("div", { className: cn(
2074
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2.5" }, /* @__PURE__ */ React18__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "w-4 h-4 shrink-0", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React18__default.createElement("line", { x1: "12", y1: "19", x2: "12", y2: "5" }), /* @__PURE__ */ React18__default.createElement("polyline", { points: "5 12 12 5 19 12" }), /* @__PURE__ */ React18__default.createElement("line", { x1: "12", y1: "5", x2: "12", y2: "19", className: "opacity-40" }), /* @__PURE__ */ React18__default.createElement("polyline", { points: "5 12 12 19 19 12", className: "opacity-40" })), /* @__PURE__ */ React18__default.createElement("div", { className: "text-left" }, /* @__PURE__ */ React18__default.createElement("div", { className: "text-xs font-semibold leading-tight" }, translations?.reverseTimeLabel ?? "Saat Y\xF6n\xFC"), /* @__PURE__ */ React18__default.createElement("div", { className: "text-[10px] leading-tight opacity-70 mt-0.5" }, reverseTime ? "23:00 \u2192 00:00" : "00:00 \u2192 23:00"))),
2075
+ /* @__PURE__ */ React18__default.createElement("div", { className: cn(
2037
2076
  "relative w-9 h-5 rounded-full transition-colors duration-200 shrink-0",
2038
2077
  reverseTime ? "bg-primary" : "bg-border"
2039
- ) }, /* @__PURE__ */ React17__default.createElement("span", { className: cn(
2078
+ ) }, /* @__PURE__ */ React18__default.createElement("span", { className: cn(
2040
2079
  "absolute top-0.5 w-4 h-4 bg-white rounded-full shadow-sm transition-all duration-200",
2041
2080
  reverseTime ? "left-4" : "left-0.5"
2042
2081
  ) }))
2043
2082
  )), renderMiniCalendar ? (
2044
2083
  // Custom mini-calendar: receives the same props as the built-in one
2045
2084
  renderMiniCalendar({ currentDate, onDateChange, onViewChange })
2046
- ) : /* @__PURE__ */ React17__default.createElement(MiniCalendar, { currentDate, onDateChange, onViewChange, locale }), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 px-4 space-y-5 mt-5" }, /* @__PURE__ */ React17__default.createElement("div", { className: "bg-muted/20 rounded-2xl p-3 border-[0px] border-border/30" }, /* @__PURE__ */ React17__default.createElement(
2085
+ ) : /* @__PURE__ */ React18__default.createElement(MiniCalendar, { currentDate, onDateChange, onViewChange, locale }), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 px-4 space-y-5 mt-5" }, /* @__PURE__ */ React18__default.createElement("div", { className: "bg-muted/20 rounded-2xl p-3 border-[0px] border-border/30" }, /* @__PURE__ */ React18__default.createElement(
2047
2086
  "div",
2048
2087
  {
2049
2088
  className: "flex items-center justify-between cursor-pointer hover:bg-accent/50 p-2 -m-1 rounded-xl mb-2 transition-all duration-200",
2050
2089
  onClick: () => setCalendarsOpen(!calendarsOpen)
2051
2090
  },
2052
- /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-semibold text-foreground" }, translations?.calendars),
2053
- /* @__PURE__ */ React17__default.createElement(ChevronDown, { className: cn("w-4 h-4 text-muted-foreground transition-transform duration-200", calendarsOpen && "rotate-180") })
2054
- ), calendarsOpen && /* @__PURE__ */ React17__default.createElement("div", { className: "space-y-1" }, displayCalendars.map((cal) => /* @__PURE__ */ React17__default.createElement(
2091
+ /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-semibold text-foreground" }, translations?.calendars),
2092
+ /* @__PURE__ */ React18__default.createElement(ChevronDown, { className: cn("w-4 h-4 text-muted-foreground transition-transform duration-200", calendarsOpen && "rotate-180") })
2093
+ ), calendarsOpen && /* @__PURE__ */ React18__default.createElement("div", { className: "space-y-1" }, displayCalendars.map((cal) => /* @__PURE__ */ React18__default.createElement(
2055
2094
  "div",
2056
2095
  {
2057
2096
  key: cal.id,
2058
2097
  className: "flex items-center gap-3 py-2 px-2 hover:bg-accent/60 rounded-xl cursor-pointer group transition-all duration-200",
2059
2098
  onClick: () => onCalendarToggle?.(cal.id, !(cal.active ?? true))
2060
2099
  },
2061
- /* @__PURE__ */ React17__default.createElement("div", { className: "relative flex items-center justify-center" }, /* @__PURE__ */ React17__default.createElement(
2100
+ /* @__PURE__ */ React18__default.createElement("div", { className: "relative flex items-center justify-center" }, /* @__PURE__ */ React18__default.createElement(
2062
2101
  "input",
2063
2102
  {
2064
2103
  type: "checkbox",
@@ -2071,7 +2110,7 @@ var Sidebar = ({
2071
2110
  style: { "--primary-color": cal.color },
2072
2111
  "data-cal-id": cal.id
2073
2112
  }
2074
- ), /* @__PURE__ */ React17__default.createElement("div", { className: "absolute inset-0 flex items-center justify-center pointer-events-none opacity-0 peer-checked:opacity-100 transition-opacity" }, /* @__PURE__ */ React17__default.createElement("svg", { className: "w-3.5 h-3.5 text-white", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 3 }, /* @__PURE__ */ React17__default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 13l4 4L19 7" }))), /* @__PURE__ */ React17__default.createElement("style", null, `
2113
+ ), /* @__PURE__ */ React18__default.createElement("div", { className: "absolute inset-0 flex items-center justify-center pointer-events-none opacity-0 peer-checked:opacity-100 transition-opacity" }, /* @__PURE__ */ React18__default.createElement("svg", { className: "w-3.5 h-3.5 text-white", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 3 }, /* @__PURE__ */ React18__default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 13l4 4L19 7" }))), /* @__PURE__ */ React18__default.createElement("style", null, `
2075
2114
  input[type="checkbox"][data-cal-id="${cal.id}"]:checked {
2076
2115
  background-color: ${cal.color} !important;
2077
2116
  border-color: ${cal.color} !important;
@@ -2080,23 +2119,23 @@ var Sidebar = ({
2080
2119
  --tw-ring-color: ${cal.color}40 !important;
2081
2120
  }
2082
2121
  `)),
2083
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2 flex-1 min-w-0" }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm text-foreground/90 truncate font-medium" }, cal.label)),
2084
- /* @__PURE__ */ React17__default.createElement(
2122
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2 flex-1 min-w-0" }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm text-foreground/90 truncate font-medium" }, cal.label)),
2123
+ /* @__PURE__ */ React18__default.createElement(
2085
2124
  "div",
2086
2125
  {
2087
2126
  className: "w-2 h-2 rounded-full opacity-60 group-hover:opacity-100 transition-opacity",
2088
2127
  style: { backgroundColor: cal.color }
2089
2128
  }
2090
2129
  )
2091
- ))))), /* @__PURE__ */ React17__default.createElement("div", { className: "mt-auto px-4 pt-5" }, /* @__PURE__ */ React17__default.createElement("div", { className: "bg-muted/20 rounded-2xl p-3" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2 mb-3" }, /* @__PURE__ */ React17__default.createElement("div", { className: "p-1.5 bg-primary/10 rounded-lg" }, /* @__PURE__ */ React17__default.createElement(Globe, { className: "w-4 h-4 text-primary" })), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-semibold text-foreground" }, translations?.timezone)), /* @__PURE__ */ React17__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React17__default.createElement(
2130
+ ))))), /* @__PURE__ */ React18__default.createElement("div", { className: "mt-auto px-4 pt-5" }, /* @__PURE__ */ React18__default.createElement("div", { className: "bg-muted/20 rounded-2xl p-3" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2 mb-3" }, /* @__PURE__ */ React18__default.createElement("div", { className: "p-1.5 bg-primary/10 rounded-lg" }, /* @__PURE__ */ React18__default.createElement(Globe, { className: "w-4 h-4 text-primary" })), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-semibold text-foreground" }, translations?.timezone)), /* @__PURE__ */ React18__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React18__default.createElement(
2092
2131
  "button",
2093
2132
  {
2094
2133
  onClick: () => setTimezoneOpen(!timezoneOpen),
2095
2134
  className: "w-full flex items-center justify-between bg-blue-200/40 hover:bg-blue-200/80 rounded-xl py-2.5 pl-4 pr-3 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/50 transition-all duration-200 text-left"
2096
2135
  },
2097
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 truncate mr-2 font-medium" }, selectedTimezoneLabel),
2098
- /* @__PURE__ */ React17__default.createElement(ChevronDown, { className: cn("w-4 h-4 text-muted-foreground transition-transform duration-200", timezoneOpen && "rotate-180") })
2099
- ), timezoneOpen && /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setTimezoneOpen(false) }), /* @__PURE__ */ React17__default.createElement("div", { className: "absolute bottom-full left-0 w-full mb-2 bg-background rounded-xl shadow-2xl z-50 max-h-[260px] overflow-y-auto p-1.5 animate-in fade-in zoom-in-95 duration-200 backdrop-blur-none" }, timezones.map((tz) => /* @__PURE__ */ React17__default.createElement(
2136
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 truncate mr-2 font-medium" }, selectedTimezoneLabel),
2137
+ /* @__PURE__ */ React18__default.createElement(ChevronDown, { className: cn("w-4 h-4 text-muted-foreground transition-transform duration-200", timezoneOpen && "rotate-180") })
2138
+ ), timezoneOpen && /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setTimezoneOpen(false) }), /* @__PURE__ */ React18__default.createElement("div", { className: "absolute bottom-full left-0 w-full mb-2 bg-background rounded-xl shadow-2xl z-50 max-h-[260px] overflow-y-auto p-1.5 animate-in fade-in zoom-in-95 duration-200 backdrop-blur-none" }, timezones.map((tz) => /* @__PURE__ */ React18__default.createElement(
2100
2139
  "div",
2101
2140
  {
2102
2141
  key: tz.value,
@@ -2129,7 +2168,7 @@ var DraggableEvent = ({ event, children, className, style: propStyle, ...props }
2129
2168
  opacity: isDragging ? 0 : propStyle?.opacity
2130
2169
  // Hiding original element completely
2131
2170
  };
2132
- return /* @__PURE__ */ React17__default.createElement(
2171
+ return /* @__PURE__ */ React18__default.createElement(
2133
2172
  "div",
2134
2173
  {
2135
2174
  ref: setNodeRef,
@@ -2150,7 +2189,7 @@ var DroppableCell = ({ id, date, resourceId, children, className, style, onClick
2150
2189
  const minutes = date.getMinutes();
2151
2190
  const quarterClass = minutes === 0 ? "hover:bg-blue-50/50 dark:hover:bg-blue-900/10" : minutes === 15 ? "hover:bg-blue-50/80 dark:hover:bg-blue-900/20" : minutes === 30 ? "hover:bg-blue-100/50 dark:hover:bg-blue-900/30" : "hover:bg-blue-100/80 dark:hover:bg-blue-900/40";
2152
2191
  const activeQuarterClass = minutes === 0 ? "bg-blue-50/50 dark:bg-blue-900/10 ring-2 ring-primary ring-inset" : minutes === 15 ? "bg-blue-50/80 dark:bg-blue-900/20 ring-2 ring-primary ring-inset" : minutes === 30 ? "bg-blue-100/50 dark:bg-blue-900/30 ring-2 ring-primary ring-inset" : "bg-blue-100/80 dark:bg-blue-900/40 ring-2 ring-primary ring-inset";
2153
- return /* @__PURE__ */ React17__default.createElement(
2192
+ return /* @__PURE__ */ React18__default.createElement(
2154
2193
  "div",
2155
2194
  {
2156
2195
  ref: setNodeRef,
@@ -2167,7 +2206,7 @@ var DroppableCell = ({ id, date, resourceId, children, className, style, onClick
2167
2206
  };
2168
2207
 
2169
2208
  // src/views/MonthView.tsx
2170
- var EventItem = React17__default.memo(({ event, onEventClick }) => /* @__PURE__ */ React17__default.createElement(DraggableEvent, { event }, /* @__PURE__ */ React17__default.createElement(
2209
+ var EventItem = React18__default.memo(({ event, onEventClick }) => /* @__PURE__ */ React18__default.createElement(DraggableEvent, { event }, /* @__PURE__ */ React18__default.createElement(
2171
2210
  "div",
2172
2211
  {
2173
2212
  className: cn(
@@ -2185,7 +2224,7 @@ var EventItem = React17__default.memo(({ event, onEventClick }) => /* @__PURE__
2185
2224
  onEventClick?.(event);
2186
2225
  }
2187
2226
  },
2188
- /* @__PURE__ */ React17__default.createElement("span", { className: "font-medium" }, event.title)
2227
+ /* @__PURE__ */ React18__default.createElement("span", { className: "font-medium" }, event.title)
2189
2228
  )));
2190
2229
  EventItem.displayName = "EventItem";
2191
2230
  var MonthView = ({
@@ -2217,19 +2256,19 @@ var MonthView = ({
2217
2256
  });
2218
2257
  return map;
2219
2258
  }, [events, getZonedDate]);
2220
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background border-[0.5px] scrollbar-hide border-border/50 rounded-2xl overflow-hidden min-w-[800px] md:min-w-0 shadow-sm" }, /* @__PURE__ */ React17__default.createElement("div", { className: "overflow-y-auto flex-1 min-h-0 relative" }, /* @__PURE__ */ React17__default.createElement("div", { className: "grid grid-cols-7 border-b-[0.5px] border-border/50 bg-gradient-to-r from-muted/30 via-muted/40 to-muted/30 sticky top-0 z-20 backdrop-blur-sm" }, weekDays.map((day) => /* @__PURE__ */ React17__default.createElement(
2259
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background border-[0.5px] scrollbar-hide border-border/50 rounded-2xl overflow-hidden min-w-[800px] md:min-w-0 shadow-sm" }, /* @__PURE__ */ React18__default.createElement("div", { className: "overflow-y-auto flex-1 min-h-0 relative" }, /* @__PURE__ */ React18__default.createElement("div", { className: "grid grid-cols-7 border-b-[0.5px] border-border/50 bg-gradient-to-r from-muted/30 via-muted/40 to-muted/30 sticky top-0 z-20 backdrop-blur-sm" }, weekDays.map((day) => /* @__PURE__ */ React18__default.createElement(
2221
2260
  "div",
2222
2261
  {
2223
2262
  key: day.toISOString(),
2224
2263
  className: "py-3 text-center text-xs font-semibold text-muted-foreground border-r-[0.5px] border-border/30 last:border-r-0 uppercase tracking-wider"
2225
2264
  },
2226
2265
  format(day, "EEE", { locale })
2227
- ))), /* @__PURE__ */ React17__default.createElement("div", { className: "grid grid-cols-7", style: { gridAutoRows: "130px" } }, days.map((day) => {
2266
+ ))), /* @__PURE__ */ React18__default.createElement("div", { className: "grid grid-cols-7", style: { gridAutoRows: "130px" } }, days.map((day) => {
2228
2267
  const dayKey = format(day, "yyyy-MM-dd");
2229
2268
  const dayEvents = eventsByDay.get(dayKey) || [];
2230
2269
  const isCurrentMonth = isSameMonth(day, currentDate);
2231
2270
  const cellId = day.toISOString();
2232
- return /* @__PURE__ */ React17__default.createElement(
2271
+ return /* @__PURE__ */ React18__default.createElement(
2233
2272
  DroppableCell,
2234
2273
  {
2235
2274
  key: cellId,
@@ -2242,11 +2281,11 @@ var MonthView = ({
2242
2281
  ),
2243
2282
  onClick: () => onDateClick?.(day)
2244
2283
  },
2245
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex justify-between items-start" }, /* @__PURE__ */ React17__default.createElement("div", { className: cn(
2284
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex justify-between items-start" }, /* @__PURE__ */ React18__default.createElement("div", { className: cn(
2246
2285
  "text-sm font-semibold w-7 h-7 flex items-center justify-center rounded-full transition-all duration-200",
2247
2286
  isToday(day) ? "bg-primary text-primary-foreground shadow-md shadow-primary/30" : "group-hover:bg-accent"
2248
- ) }, format(day, "d", { locale })), dayEvents.length > 0 && /* @__PURE__ */ React17__default.createElement("div", { className: "text-[10px] font-medium text-muted-foreground/60 bg-muted/50 px-1.5 py-0.5 rounded-full" }, dayEvents.length)),
2249
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 flex flex-col gap-1 scrollbar-hide overflow-y-auto overflow-x-hidden" }, dayEvents.slice(0, 4).map((event) => /* @__PURE__ */ React17__default.createElement(EventItem, { key: `${event.id}-${dayKey}`, event, onEventClick })), dayEvents.length > 4 && /* @__PURE__ */ React17__default.createElement("div", { className: "text-[10px] text-primary font-semibold text-center py-1 px-2 rounded-md bg-primary/5 hover:bg-primary/10 cursor-pointer transition-colors" }, "+", dayEvents.length - 4, " more"))
2287
+ ) }, format(day, "d", { locale })), dayEvents.length > 0 && /* @__PURE__ */ React18__default.createElement("div", { className: "text-[10px] font-medium text-muted-foreground/60 bg-muted/50 px-1.5 py-0.5 rounded-full" }, dayEvents.length)),
2288
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 flex flex-col gap-1 scrollbar-hide overflow-y-auto overflow-x-hidden" }, dayEvents.slice(0, 4).map((event) => /* @__PURE__ */ React18__default.createElement(EventItem, { key: `${event.id}-${dayKey}`, event, onEventClick })), dayEvents.length > 4 && /* @__PURE__ */ React18__default.createElement("div", { className: "text-[10px] text-primary font-semibold text-center py-1 px-2 rounded-md bg-primary/5 hover:bg-primary/10 cursor-pointer transition-colors" }, "+", dayEvents.length - 4, " more"))
2250
2289
  );
2251
2290
  }))));
2252
2291
  };
@@ -2307,7 +2346,7 @@ var ResizableEvent = ({
2307
2346
  document.addEventListener("touchmove", handleMove, { passive: false });
2308
2347
  document.addEventListener("touchend", handleEnd);
2309
2348
  }, [event, hourHeight, minDuration, onResize, resizeHeight]);
2310
- return /* @__PURE__ */ React17__default.createElement(
2349
+ return /* @__PURE__ */ React18__default.createElement(
2311
2350
  "div",
2312
2351
  {
2313
2352
  ref: containerRef,
@@ -2318,7 +2357,7 @@ var ResizableEvent = ({
2318
2357
  }
2319
2358
  },
2320
2359
  children,
2321
- /* @__PURE__ */ React17__default.createElement(
2360
+ /* @__PURE__ */ React18__default.createElement(
2322
2361
  "div",
2323
2362
  {
2324
2363
  className: cn(
@@ -2330,12 +2369,12 @@ var ResizableEvent = ({
2330
2369
  onMouseDown: readonly ? void 0 : handleResizeStart,
2331
2370
  onTouchStart: readonly ? void 0 : handleResizeStart
2332
2371
  },
2333
- /* @__PURE__ */ React17__default.createElement("div", { className: cn(
2372
+ /* @__PURE__ */ React18__default.createElement("div", { className: cn(
2334
2373
  "w-8 h-1 rounded-full transition-all",
2335
2374
  isResizing ? "bg-primary" : "bg-muted-foreground/30 group-hover:bg-primary/50"
2336
2375
  ) })
2337
2376
  ),
2338
- isResizing && /* @__PURE__ */ React17__default.createElement("div", { className: "absolute inset-0 border-2 border-primary border-dashed rounded-md pointer-events-none bg-primary/5" })
2377
+ isResizing && /* @__PURE__ */ React18__default.createElement("div", { className: "absolute inset-0 border-2 border-primary border-dashed rounded-md pointer-events-none bg-primary/5" })
2339
2378
  );
2340
2379
  };
2341
2380
  var EventCardBadge = ({
@@ -2344,7 +2383,7 @@ var EventCardBadge = ({
2344
2383
  className
2345
2384
  }) => {
2346
2385
  if (!badge?.icon || !badge?.name) return null;
2347
- return /* @__PURE__ */ React17__default.createElement(
2386
+ return /* @__PURE__ */ React18__default.createElement(
2348
2387
  "div",
2349
2388
  {
2350
2389
  className: cn(
@@ -2357,26 +2396,121 @@ var EventCardBadge = ({
2357
2396
  ),
2358
2397
  title: badge.name
2359
2398
  },
2360
- /* @__PURE__ */ React17__default.createElement("span", { className: "shrink-0 flex items-center justify-center [&>svg]:w-2.5 [&>svg]:h-2.5" }, badge.icon),
2361
- !compact && /* @__PURE__ */ React17__default.createElement("span", { className: "truncate max-w-[72px]" }, badge.name)
2399
+ /* @__PURE__ */ React18__default.createElement("span", { className: "shrink-0 flex items-center justify-center [&>svg]:w-2.5 [&>svg]:h-2.5" }, badge.icon),
2400
+ !compact && /* @__PURE__ */ React18__default.createElement("span", { className: "truncate max-w-[72px]" }, badge.name)
2362
2401
  );
2363
2402
  };
2403
+ var EventHoverPopover = ({
2404
+ enabled,
2405
+ event,
2406
+ timeRange,
2407
+ children,
2408
+ className
2409
+ }) => {
2410
+ const triggerRef = useRef(null);
2411
+ const [open, setOpen] = useState(false);
2412
+ const [coords, setCoords] = useState({ top: 0, left: 0, placeAbove: true });
2413
+ const hideTimerRef = useRef(null);
2414
+ const updatePosition = useCallback(() => {
2415
+ const el = triggerRef.current;
2416
+ if (!el) return;
2417
+ const rect = el.getBoundingClientRect();
2418
+ const placeAbove = rect.top > 160;
2419
+ setCoords({
2420
+ top: placeAbove ? rect.top - 8 : rect.bottom + 8,
2421
+ left: Math.min(
2422
+ Math.max(rect.left + rect.width / 2, 120),
2423
+ window.innerWidth - 120
2424
+ ),
2425
+ placeAbove
2426
+ });
2427
+ }, []);
2428
+ const show = useCallback(() => {
2429
+ if (!enabled) return;
2430
+ if (hideTimerRef.current) {
2431
+ clearTimeout(hideTimerRef.current);
2432
+ hideTimerRef.current = null;
2433
+ }
2434
+ updatePosition();
2435
+ setOpen(true);
2436
+ }, [enabled, updatePosition]);
2437
+ const scheduleHide = useCallback(() => {
2438
+ if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
2439
+ hideTimerRef.current = setTimeout(() => setOpen(false), 80);
2440
+ }, []);
2441
+ useEffect(() => {
2442
+ if (!open) return;
2443
+ const onMove = () => updatePosition();
2444
+ window.addEventListener("scroll", onMove, true);
2445
+ window.addEventListener("resize", onMove);
2446
+ return () => {
2447
+ window.removeEventListener("scroll", onMove, true);
2448
+ window.removeEventListener("resize", onMove);
2449
+ };
2450
+ }, [open, updatePosition]);
2451
+ useEffect(() => () => {
2452
+ if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
2453
+ }, []);
2454
+ if (!enabled) {
2455
+ return /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, children);
2456
+ }
2457
+ const accent = event.color || "hsl(var(--primary))";
2458
+ return /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement(
2459
+ "div",
2460
+ {
2461
+ ref: triggerRef,
2462
+ className: cn("h-full w-full", className),
2463
+ onMouseEnter: show,
2464
+ onMouseLeave: scheduleHide
2465
+ },
2466
+ children
2467
+ ), open && typeof document !== "undefined" && createPortal(
2468
+ /* @__PURE__ */ React18__default.createElement(
2469
+ "div",
2470
+ {
2471
+ role: "tooltip",
2472
+ className: cn(
2473
+ "fixed z-[10000] w-64 max-w-[min(16rem,calc(100vw-1.5rem))]",
2474
+ "rounded-xl border border-border/60 bg-popover text-popover-foreground",
2475
+ "shadow-xl shadow-black/10 backdrop-blur-md",
2476
+ "pointer-events-none transition-opacity duration-150"
2477
+ ),
2478
+ style: {
2479
+ top: coords.top,
2480
+ left: coords.left,
2481
+ transform: coords.placeAbove ? "translate(-50%, -100%)" : "translate(-50%, 0)"
2482
+ },
2483
+ onMouseEnter: show,
2484
+ onMouseLeave: scheduleHide
2485
+ },
2486
+ /* @__PURE__ */ React18__default.createElement(
2487
+ "div",
2488
+ {
2489
+ className: "h-1 rounded-t-xl",
2490
+ style: { backgroundColor: accent }
2491
+ }
2492
+ ),
2493
+ /* @__PURE__ */ React18__default.createElement("div", { className: "p-3 space-y-2" }, /* @__PURE__ */ React18__default.createElement("div", { className: "text-sm font-semibold leading-snug text-foreground" }, event.title), /* @__PURE__ */ React18__default.createElement("div", { className: "text-xs font-medium text-muted-foreground tabular-nums" }, timeRange), event.description && /* @__PURE__ */ React18__default.createElement("p", { className: "text-xs text-muted-foreground/90 leading-relaxed line-clamp-4" }, event.description), event.guests?.length || event.attachments?.length || event.reminders?.length ? /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-wrap gap-1.5 pt-0.5" }, event.guests && event.guests.length > 0 && /* @__PURE__ */ React18__default.createElement("span", { className: "rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] text-muted-foreground" }, event.guests.length, " guest", event.guests.length !== 1 ? "s" : ""), event.attachments && event.attachments.length > 0 && /* @__PURE__ */ React18__default.createElement("span", { className: "rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] text-muted-foreground" }, event.attachments.length, " file", event.attachments.length !== 1 ? "s" : ""), event.reminders && event.reminders.length > 0 && /* @__PURE__ */ React18__default.createElement("span", { className: "rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] text-muted-foreground" }, event.reminders.length, " reminder", event.reminders.length !== 1 ? "s" : "")) : null)
2494
+ ),
2495
+ document.body
2496
+ ));
2497
+ };
2364
2498
  var ICON_CLASS = "w-2.5 h-2.5";
2365
2499
  var EVENT_BADGE_ICONS = {
2366
- privateLesson: /* @__PURE__ */ React17__default.createElement(User, { className: ICON_CLASS }),
2367
- groupLesson: /* @__PURE__ */ React17__default.createElement(Users, { className: ICON_CLASS }),
2368
- packageLesson: /* @__PURE__ */ React17__default.createElement(Package, { className: ICON_CLASS }),
2369
- online: /* @__PURE__ */ React17__default.createElement(Video, { className: ICON_CLASS }),
2370
- inPerson: /* @__PURE__ */ React17__default.createElement(MapPin, { className: ICON_CLASS }),
2371
- homeVisit: /* @__PURE__ */ React17__default.createElement(Home, { className: ICON_CLASS }),
2372
- trial: /* @__PURE__ */ React17__default.createElement(Sparkles, { className: ICON_CLASS }),
2373
- makeup: /* @__PURE__ */ React17__default.createElement(RefreshCw, { className: ICON_CLASS }),
2374
- exam: /* @__PURE__ */ React17__default.createElement(ClipboardCheck, { className: ICON_CLASS }),
2375
- workshop: /* @__PURE__ */ React17__default.createElement(Presentation, { className: ICON_CLASS }),
2376
- priority: /* @__PURE__ */ React17__default.createElement(Star, { className: ICON_CLASS }),
2377
- holiday: /* @__PURE__ */ React17__default.createElement(PartyPopper, { className: ICON_CLASS }),
2378
- cancelled: /* @__PURE__ */ React17__default.createElement(Ban, { className: ICON_CLASS }),
2379
- listening: /* @__PURE__ */ React17__default.createElement(Headphones, { className: ICON_CLASS })
2500
+ privateLesson: /* @__PURE__ */ React18__default.createElement(User, { className: ICON_CLASS }),
2501
+ groupLesson: /* @__PURE__ */ React18__default.createElement(Users, { className: ICON_CLASS }),
2502
+ packageLesson: /* @__PURE__ */ React18__default.createElement(Package, { className: ICON_CLASS }),
2503
+ online: /* @__PURE__ */ React18__default.createElement(Video, { className: ICON_CLASS }),
2504
+ inPerson: /* @__PURE__ */ React18__default.createElement(MapPin, { className: ICON_CLASS }),
2505
+ homeVisit: /* @__PURE__ */ React18__default.createElement(Home, { className: ICON_CLASS }),
2506
+ trial: /* @__PURE__ */ React18__default.createElement(Sparkles, { className: ICON_CLASS }),
2507
+ makeup: /* @__PURE__ */ React18__default.createElement(RefreshCw, { className: ICON_CLASS }),
2508
+ exam: /* @__PURE__ */ React18__default.createElement(ClipboardCheck, { className: ICON_CLASS }),
2509
+ workshop: /* @__PURE__ */ React18__default.createElement(Presentation, { className: ICON_CLASS }),
2510
+ priority: /* @__PURE__ */ React18__default.createElement(Star, { className: ICON_CLASS }),
2511
+ holiday: /* @__PURE__ */ React18__default.createElement(PartyPopper, { className: ICON_CLASS }),
2512
+ cancelled: /* @__PURE__ */ React18__default.createElement(Ban, { className: ICON_CLASS }),
2513
+ listening: /* @__PURE__ */ React18__default.createElement(Headphones, { className: ICON_CLASS })
2380
2514
  };
2381
2515
  var EVENT_BADGE_LABELS = {
2382
2516
  tr: {
@@ -2467,13 +2601,13 @@ var WeekView = ({
2467
2601
  const weekDays = eachDayOfInterval({ start, end });
2468
2602
  const hours = reverseTime ? Array.from({ length: 24 }, (_, i) => 23 - i) : Array.from({ length: 24 }, (_, i) => i);
2469
2603
  const hourHeight = 60;
2470
- const scrollContainerRef = React17__default.useRef(null);
2471
- const [now, setNow] = React17__default.useState(/* @__PURE__ */ new Date());
2472
- React17__default.useEffect(() => {
2604
+ const scrollContainerRef = React18__default.useRef(null);
2605
+ const [now, setNow] = React18__default.useState(/* @__PURE__ */ new Date());
2606
+ React18__default.useEffect(() => {
2473
2607
  const interval = setInterval(() => setNow(/* @__PURE__ */ new Date()), 6e4);
2474
2608
  return () => clearInterval(interval);
2475
2609
  }, []);
2476
- React17__default.useEffect(() => {
2610
+ React18__default.useEffect(() => {
2477
2611
  if (scrollContainerRef.current) {
2478
2612
  scrollContainerRef.current.scrollTop = reverseTime ? (23 - initialScrollHour) * hourHeight : initialScrollHour * hourHeight;
2479
2613
  }
@@ -2503,44 +2637,44 @@ var WeekView = ({
2503
2637
  acronym = tz;
2504
2638
  }
2505
2639
  }
2506
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col items-center justify-center leading-tight" }, /* @__PURE__ */ React17__default.createElement("span", null, displayTime), /* @__PURE__ */ React17__default.createElement("span", { className: "text-[10px] opacity-75" }, "(", acronym, ")"));
2640
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col items-center justify-center leading-tight" }, /* @__PURE__ */ React18__default.createElement("span", null, displayTime), /* @__PURE__ */ React18__default.createElement("span", { className: "text-[10px] opacity-75" }, "(", acronym, ")"));
2507
2641
  };
2508
2642
  const timeFormat = getTimeFormat(language);
2509
2643
  const eventTimeFormat = getTimeFormatFull(language);
2510
2644
  const nowFormat = getTimeFormatFull(language);
2511
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background border-[0.5px] border-border/50 rounded-2xl overflow-hidden min-w-[800px] md:min-w-0 shadow-sm" }, /* @__PURE__ */ React17__default.createElement(
2645
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background border-[0.5px] border-border/50 rounded-2xl overflow-hidden min-w-[800px] md:min-w-0 shadow-sm" }, /* @__PURE__ */ React18__default.createElement(
2512
2646
  "div",
2513
2647
  {
2514
2648
  ref: scrollContainerRef,
2515
2649
  className: "flex-1 min-h-0 overflow-y-auto scrollbar-hide relative bg-background scroll-smooth",
2516
2650
  style: { scrollbarGutter: "stable" }
2517
2651
  },
2518
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex border-b-[0.5px] border-border/50 bg-gradient-to-r from-muted/20 via-background to-muted/20 z-20 sticky top-0 backdrop-blur-sm" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex-none p-3 text-center text-xs font-semibold text-muted-foreground w-16 flex items-center justify-center border-r-[0.5px] border-border/30 bg-muted/10" }, getTimezoneDisplay(timezone)), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 grid grid-cols-7" }, weekDays.map((day, index) => /* @__PURE__ */ React17__default.createElement("div", { key: day.toISOString(), className: cn("py-3 px-2 text-center", index > 0 && "border-l-[0.5px] border-border/30") }, /* @__PURE__ */ React17__default.createElement("div", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-1.5" }, format(day, "EEE", { locale })), /* @__PURE__ */ React17__default.createElement("div", { className: cn(
2652
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex border-b-[0.5px] border-border/50 bg-gradient-to-r from-muted/20 via-background to-muted/20 z-20 sticky top-0 backdrop-blur-sm" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex-none p-3 text-center text-xs font-semibold text-muted-foreground w-16 flex items-center justify-center border-r-[0.5px] border-border/30 bg-muted/10" }, getTimezoneDisplay(timezone)), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 grid grid-cols-7" }, weekDays.map((day, index) => /* @__PURE__ */ React18__default.createElement("div", { key: day.toISOString(), className: cn("py-3 px-2 text-center", index > 0 && "border-l-[0.5px] border-border/30") }, /* @__PURE__ */ React18__default.createElement("div", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-1.5" }, format(day, "EEE", { locale })), /* @__PURE__ */ React18__default.createElement("div", { className: cn(
2519
2653
  "w-9 h-9 flex items-center justify-center rounded-xl mx-auto text-sm font-semibold transition-all duration-200",
2520
2654
  isToday(day) ? "bg-primary text-primary-foreground shadow-lg shadow-primary/30 scale-110" : "text-foreground hover:bg-accent/80"
2521
2655
  ) }, format(day, "d", { locale })))))),
2522
- /* @__PURE__ */ React17__default.createElement(
2656
+ /* @__PURE__ */ React18__default.createElement(
2523
2657
  "div",
2524
2658
  {
2525
2659
  className: "flex min-w-full relative",
2526
2660
  style: { height: hours.length * hourHeight }
2527
2661
  },
2528
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-none w-16 border-r-[0.5px] border-border/30 relative bg-muted/5" }, hours.map((hour) => /* @__PURE__ */ React17__default.createElement(
2662
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-none w-16 border-r-[0.5px] border-border/30 relative bg-muted/5" }, hours.map((hour) => /* @__PURE__ */ React18__default.createElement(
2529
2663
  "div",
2530
2664
  {
2531
2665
  key: hour,
2532
2666
  className: "relative w-full text-[11px] text-muted-foreground/80 text-right pr-3 font-medium tabular-nums box-border",
2533
2667
  style: { height: hourHeight }
2534
2668
  },
2535
- /* @__PURE__ */ React17__default.createElement("span", { className: "block -translate-y-1/2" }, hour !== 0 && format((/* @__PURE__ */ new Date()).setHours(hour, 0, 0, 0), timeFormat, { locale }))
2669
+ /* @__PURE__ */ React18__default.createElement("span", { className: "block -translate-y-1/2" }, hour !== 0 && format((/* @__PURE__ */ new Date()).setHours(hour, 0, 0, 0), timeFormat, { locale }))
2536
2670
  ))),
2537
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 grid grid-cols-7 relative" }, weekDays.map((day, dayIndex) => {
2671
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 grid grid-cols-7 relative" }, weekDays.map((day, dayIndex) => {
2538
2672
  const dayEvents = events.filter((e) => {
2539
2673
  const zonedStart = getZonedDate(e.start);
2540
2674
  return isSameDay(zonedStart, day);
2541
2675
  });
2542
- return /* @__PURE__ */ React17__default.createElement("div", { key: day.toISOString(), className: cn("relative h-full", dayIndex > 0 && "border-l-[0.5px] border-border/30") }, hours.map((hour) => {
2543
- return /* @__PURE__ */ React17__default.createElement(
2676
+ return /* @__PURE__ */ React18__default.createElement("div", { key: day.toISOString(), className: cn("relative h-full", dayIndex > 0 && "border-l-[0.5px] border-border/30") }, hours.map((hour) => {
2677
+ return /* @__PURE__ */ React18__default.createElement(
2544
2678
  "div",
2545
2679
  {
2546
2680
  key: hour,
@@ -2551,7 +2685,7 @@ var WeekView = ({
2551
2685
  const cellDate = new Date(day);
2552
2686
  cellDate.setHours(hour, minute, 0, 0);
2553
2687
  const cellId = cellDate.toISOString();
2554
- return /* @__PURE__ */ React17__default.createElement(
2688
+ return /* @__PURE__ */ React18__default.createElement(
2555
2689
  DroppableCell,
2556
2690
  {
2557
2691
  key: minute,
@@ -2563,7 +2697,7 @@ var WeekView = ({
2563
2697
  top: `${minute / 60 * 100}%`
2564
2698
  }
2565
2699
  },
2566
- /* @__PURE__ */ React17__default.createElement(
2700
+ /* @__PURE__ */ React18__default.createElement(
2567
2701
  "div",
2568
2702
  {
2569
2703
  className: "w-full h-full bg-transparent cursor-pointer",
@@ -2597,9 +2731,9 @@ var WeekView = ({
2597
2731
  const height = durationMinutes / 60 * hourHeight;
2598
2732
  const top = reverseTime ? (1440 - startMinutes - durationMinutes) / 60 * hourHeight : startMinutes / 60 * hourHeight;
2599
2733
  const isShortEvent = compactShortEvents && durationMinutes < 60;
2600
- const resolvedBadge = resolveEventBadge(event, language);
2734
+ const resolvedBadge = !isShortEvent ? resolveEventBadge(event, language) : void 0;
2601
2735
  const hasBadge = Boolean(resolvedBadge);
2602
- return /* @__PURE__ */ React17__default.createElement(
2736
+ return /* @__PURE__ */ React18__default.createElement(
2603
2737
  DraggableEvent,
2604
2738
  {
2605
2739
  key: `${event.id}-${day.toISOString()}`,
@@ -2614,7 +2748,7 @@ var WeekView = ({
2614
2748
  paddingRight: count > 1 ? "2px" : "0"
2615
2749
  }
2616
2750
  },
2617
- /* @__PURE__ */ React17__default.createElement(
2751
+ /* @__PURE__ */ React18__default.createElement(
2618
2752
  ResizableEvent,
2619
2753
  {
2620
2754
  readonly,
@@ -2624,48 +2758,56 @@ var WeekView = ({
2624
2758
  className: "h-full",
2625
2759
  style: { height: "100%" }
2626
2760
  },
2627
- /* @__PURE__ */ React17__default.createElement(
2628
- "div",
2761
+ /* @__PURE__ */ React18__default.createElement(
2762
+ EventHoverPopover,
2629
2763
  {
2630
- className: cn(
2631
- "rounded-md border shadow-sm transition-all hover:shadow-md group overflow-hidden relative",
2632
- "glass",
2633
- readonly ? "cursor-default" : "cursor-grab active:cursor-grabbing",
2634
- !event.color && "border-primary/20 bg-primary/10",
2635
- isShortEvent ? "px-1 flex items-center justify-center" : "p-2",
2636
- // Reserve space under the badge so title/time do not overlap
2637
- hasBadge && !isShortEvent && "pt-4",
2638
- // Add active border for overlapped events to distinguish them
2639
- count > 1 && "border-l-4 border-l-primary/50"
2640
- ),
2641
- style: {
2642
- height: "100%",
2643
- backgroundColor: event.color ? `${event.color}15` : void 0,
2644
- borderColor: event.color ? `${event.color}40` : void 0,
2645
- borderLeftWidth: "3px",
2646
- borderLeftColor: event.color || "var(--primary)"
2647
- },
2648
- onClick: (e) => {
2649
- e.stopPropagation();
2650
- onEventClick?.(event);
2651
- },
2652
- title: count > 1 ? `${event.title} (${index + 1}/${count})` : void 0
2764
+ enabled: isShortEvent,
2765
+ event,
2766
+ timeRange: `${format(zonedEventStart, eventTimeFormat, { locale })} - ${format(zonedEventEnd, eventTimeFormat, { locale })}`
2653
2767
  },
2654
- resolvedBadge && /* @__PURE__ */ React17__default.createElement(
2655
- EventCardBadge,
2768
+ /* @__PURE__ */ React18__default.createElement(
2769
+ "div",
2656
2770
  {
2657
- badge: resolvedBadge,
2658
- compact: isShortEvent
2659
- }
2660
- ),
2661
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full overflow-hidden w-full" }, /* @__PURE__ */ React17__default.createElement("div", { className: cn(
2662
- "font-semibold truncate text-foreground/90 leading-tight",
2663
- isShortEvent ? "text-xs text-center" : "text-xs"
2664
- ) }, event.title), !isShortEvent && /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement("div", { className: "text-[10px] text-muted-foreground truncate mt-0.5 font-medium leading-tight" }, format(zonedEventStart, eventTimeFormat, { locale }), " - ", format(zonedEventEnd, eventTimeFormat, { locale })), event.description && height > 50 && /* @__PURE__ */ React17__default.createElement("div", { className: "text-[10px] text-muted-foreground/80 truncate mt-1 leading-tight opacity-80" }, event.description)), count > 1 && !isShortEvent && /* @__PURE__ */ React17__default.createElement("div", { className: "absolute top-1 right-1 bg-background/80 backdrop-blur-sm rounded-full w-4 h-4 flex items-center justify-center text-[9px] font-bold text-muted-foreground border border-border shadow-sm" }, count))
2771
+ className: cn(
2772
+ "rounded-md border shadow-sm transition-all hover:shadow-md group overflow-hidden relative",
2773
+ "glass",
2774
+ readonly ? "cursor-default" : "cursor-grab active:cursor-grabbing",
2775
+ !event.color && "border-primary/20 bg-primary/10",
2776
+ isShortEvent ? "px-1 flex items-center justify-center" : "p-2",
2777
+ // Reserve space under the badge so title/time do not overlap
2778
+ hasBadge && !isShortEvent && "pt-4",
2779
+ // Add active border for overlapped events to distinguish them
2780
+ count > 1 && "border-l-4 border-l-primary/50"
2781
+ ),
2782
+ style: {
2783
+ height: "100%",
2784
+ backgroundColor: event.color ? `${event.color}15` : void 0,
2785
+ borderColor: event.color ? `${event.color}40` : void 0,
2786
+ borderLeftWidth: "3px",
2787
+ borderLeftColor: event.color || "var(--primary)"
2788
+ },
2789
+ onClick: (e) => {
2790
+ e.stopPropagation();
2791
+ onEventClick?.(event);
2792
+ },
2793
+ title: !isShortEvent && count > 1 ? `${event.title} (${index + 1}/${count})` : void 0
2794
+ },
2795
+ hasBadge && /* @__PURE__ */ React18__default.createElement(
2796
+ EventCardBadge,
2797
+ {
2798
+ badge: resolvedBadge,
2799
+ compact: false
2800
+ }
2801
+ ),
2802
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full overflow-hidden w-full" }, /* @__PURE__ */ React18__default.createElement("div", { className: cn(
2803
+ "font-semibold truncate text-foreground/90 leading-tight",
2804
+ isShortEvent ? "text-xs text-center" : "text-xs"
2805
+ ) }, event.title), !isShortEvent && /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement("div", { className: "text-[10px] text-muted-foreground truncate mt-0.5 font-medium leading-tight" }, format(zonedEventStart, eventTimeFormat, { locale }), " - ", format(zonedEventEnd, eventTimeFormat, { locale })), event.description && height > 50 && /* @__PURE__ */ React18__default.createElement("div", { className: "text-[10px] text-muted-foreground/80 truncate mt-1 leading-tight opacity-80" }, event.description)), count > 1 && !isShortEvent && /* @__PURE__ */ React18__default.createElement("div", { className: "absolute top-1 right-1 bg-background/80 backdrop-blur-sm rounded-full w-4 h-4 flex items-center justify-center text-[9px] font-bold text-muted-foreground border border-border shadow-sm" }, count))
2806
+ )
2665
2807
  )
2666
2808
  )
2667
2809
  );
2668
- }), isToday(day) && /* @__PURE__ */ React17__default.createElement(
2810
+ }), isToday(day) && /* @__PURE__ */ React18__default.createElement(
2669
2811
  "div",
2670
2812
  {
2671
2813
  className: "absolute left-0 right-0 z-20 pointer-events-none flex items-center",
@@ -2673,12 +2815,12 @@ var WeekView = ({
2673
2815
  top: reverseTime ? `${(1440 - (zonedNow.getHours() * 60 + zonedNow.getMinutes())) / 60 * hourHeight}px` : `${(zonedNow.getHours() * 60 + zonedNow.getMinutes()) / 60 * hourHeight}px`
2674
2816
  }
2675
2817
  },
2676
- /* @__PURE__ */ React17__default.createElement("div", { className: "h-[2px] w-full bg-gradient-to-r from-primary via-primary to-primary/50" }),
2677
- /* @__PURE__ */ React17__default.createElement("div", { className: "absolute -left-1.5 w-3 h-3 bg-primary rounded-full shadow-lg shadow-primary/40 ring-2 ring-background animate-pulse" })
2818
+ /* @__PURE__ */ React18__default.createElement("div", { className: "h-[2px] w-full bg-gradient-to-r from-primary via-primary to-primary/50" }),
2819
+ /* @__PURE__ */ React18__default.createElement("div", { className: "absolute -left-1.5 w-3 h-3 bg-primary rounded-full shadow-lg shadow-primary/40 ring-2 ring-background animate-pulse" })
2678
2820
  ));
2679
2821
  }))
2680
2822
  ),
2681
- /* @__PURE__ */ React17__default.createElement(
2823
+ /* @__PURE__ */ React18__default.createElement(
2682
2824
  "div",
2683
2825
  {
2684
2826
  className: "absolute left-0 w-16 pointer-events-none z-30 flex justify-end pr-2",
@@ -2686,7 +2828,7 @@ var WeekView = ({
2686
2828
  top: reverseTime ? `${(1440 - (zonedNow.getHours() * 60 + zonedNow.getMinutes())) / 60 * hourHeight + 80}px` : `${(zonedNow.getHours() * 60 + zonedNow.getMinutes()) / 60 * hourHeight + 80}px`
2687
2829
  }
2688
2830
  },
2689
- /* @__PURE__ */ React17__default.createElement("span", { className: "text-[10px] font-bold text-primary-foreground bg-primary px-1.5 py-0.5 rounded-md shadow-md -translate-y-1/2 backdrop-blur-none" }, format(zonedNow, nowFormat, { locale }))
2831
+ /* @__PURE__ */ React18__default.createElement("span", { className: "text-[10px] font-bold text-primary-foreground bg-primary px-1.5 py-0.5 rounded-md shadow-md -translate-y-1/2 backdrop-blur-none" }, format(zonedNow, nowFormat, { locale }))
2690
2832
  )
2691
2833
  ));
2692
2834
  };
@@ -2706,13 +2848,13 @@ var DayView = ({
2706
2848
  }) => {
2707
2849
  const hours = reverseTime ? Array.from({ length: 24 }, (_, i) => 23 - i) : Array.from({ length: 24 }, (_, i) => i);
2708
2850
  const hourHeight = 80;
2709
- const scrollContainerRef = React17__default.useRef(null);
2710
- const [now, setNow] = React17__default.useState(/* @__PURE__ */ new Date());
2711
- React17__default.useEffect(() => {
2851
+ const scrollContainerRef = React18__default.useRef(null);
2852
+ const [now, setNow] = React18__default.useState(/* @__PURE__ */ new Date());
2853
+ React18__default.useEffect(() => {
2712
2854
  const interval = setInterval(() => setNow(/* @__PURE__ */ new Date()), 6e4);
2713
2855
  return () => clearInterval(interval);
2714
2856
  }, []);
2715
- React17__default.useEffect(() => {
2857
+ React18__default.useEffect(() => {
2716
2858
  if (scrollContainerRef.current) {
2717
2859
  scrollContainerRef.current.scrollTop = reverseTime ? (23 - initialScrollHour) * hourHeight : initialScrollHour * hourHeight;
2718
2860
  }
@@ -2728,15 +2870,15 @@ var DayView = ({
2728
2870
  const timeFormat = getTimeFormat(language);
2729
2871
  const eventTimeFormat = getTimeFormatFull(language);
2730
2872
  const nowFormat = getTimeFormatFull(language);
2731
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background border-[0.5px] border-border/50 rounded-2xl overflow-hidden shadow-sm" }, /* @__PURE__ */ React17__default.createElement("div", { className: "px-6 py-4 border-b-[0.5px] border-border/50 bg-gradient-to-r from-muted/20 via-background to-muted/20 text-center shrink-0" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-center gap-3" }, /* @__PURE__ */ React17__default.createElement("h2", { className: "text-xl font-semibold capitalize text-foreground" }, format(currentDate, "EEEE, MMMM d, yyyy", { locale })), isToday(currentDate) && /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-semibold bg-primary text-primary-foreground px-3 py-1 rounded-full shadow-md shadow-primary/20" }, "Today"))), /* @__PURE__ */ React17__default.createElement("div", { ref: scrollContainerRef, className: "flex-1 min-h-0 overflow-y-auto relative" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex relative", style: { height: hours.length * hourHeight } }, /* @__PURE__ */ React17__default.createElement("div", { className: "w-20 bg-muted/5 border-r-[0.5px] border-border/30 relative" }, hours.map((hour) => /* @__PURE__ */ React17__default.createElement(
2873
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background border-[0.5px] border-border/50 rounded-2xl overflow-hidden shadow-sm" }, /* @__PURE__ */ React18__default.createElement("div", { className: "px-6 py-4 border-b-[0.5px] border-border/50 bg-gradient-to-r from-muted/20 via-background to-muted/20 text-center shrink-0" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-center gap-3" }, /* @__PURE__ */ React18__default.createElement("h2", { className: "text-xl font-semibold capitalize text-foreground" }, format(currentDate, "EEEE, MMMM d, yyyy", { locale })), isToday(currentDate) && /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-semibold bg-primary text-primary-foreground px-3 py-1 rounded-full shadow-md shadow-primary/20" }, "Today"))), /* @__PURE__ */ React18__default.createElement("div", { ref: scrollContainerRef, className: "flex-1 min-h-0 overflow-y-auto relative" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex relative", style: { height: hours.length * hourHeight } }, /* @__PURE__ */ React18__default.createElement("div", { className: "w-20 bg-muted/5 border-r-[0.5px] border-border/30 relative" }, hours.map((hour) => /* @__PURE__ */ React18__default.createElement(
2732
2874
  "div",
2733
2875
  {
2734
2876
  key: hour,
2735
2877
  className: "relative w-full",
2736
2878
  style: { height: hourHeight }
2737
2879
  },
2738
- hour !== 0 && /* @__PURE__ */ React17__default.createElement("span", { className: "absolute w-full text-center -top-3 left-1/2 -translate-x-1/2 text-[11px] text-muted-foreground/80 font-medium tabular-nums bg-background px-1.5 py-0.5 rounded-md" }, format((/* @__PURE__ */ new Date()).setHours(hour, 0, 0, 0), timeFormat, { locale }))
2739
- )), isToday(currentDate) && /* @__PURE__ */ React17__default.createElement(
2880
+ hour !== 0 && /* @__PURE__ */ React18__default.createElement("span", { className: "absolute w-full text-center -top-3 left-1/2 -translate-x-1/2 text-[11px] text-muted-foreground/80 font-medium tabular-nums bg-background px-1.5 py-0.5 rounded-md" }, format((/* @__PURE__ */ new Date()).setHours(hour, 0, 0, 0), timeFormat, { locale }))
2881
+ )), isToday(currentDate) && /* @__PURE__ */ React18__default.createElement(
2740
2882
  "div",
2741
2883
  {
2742
2884
  className: "absolute left-0 w-full pointer-events-none z-30 flex justify-end pr-2",
@@ -2744,9 +2886,9 @@ var DayView = ({
2744
2886
  top: reverseTime ? `${(1440 - (zonedNow.getHours() * 60 + zonedNow.getMinutes())) / 60 * hourHeight}px` : `${(zonedNow.getHours() * 60 + zonedNow.getMinutes()) / 60 * hourHeight}px`
2745
2887
  }
2746
2888
  },
2747
- /* @__PURE__ */ React17__default.createElement("span", { className: "text-[10px] font-bold text-white bg-primary px-2 py-1 rounded-lg shadow-md shadow-primary/30 -translate-y-1/2" }, format(zonedNow, nowFormat, { locale }))
2748
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 relative" }, hours.map((hour) => {
2749
- return /* @__PURE__ */ React17__default.createElement(
2889
+ /* @__PURE__ */ React18__default.createElement("span", { className: "text-[10px] font-bold text-white bg-primary px-2 py-1 rounded-lg shadow-md shadow-primary/30 -translate-y-1/2" }, format(zonedNow, nowFormat, { locale }))
2890
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 relative" }, hours.map((hour) => {
2891
+ return /* @__PURE__ */ React18__default.createElement(
2750
2892
  "div",
2751
2893
  {
2752
2894
  key: hour,
@@ -2757,7 +2899,7 @@ var DayView = ({
2757
2899
  const cellDate = new Date(currentDate);
2758
2900
  cellDate.setHours(hour, minute, 0, 0);
2759
2901
  const cellId = cellDate.toISOString();
2760
- return /* @__PURE__ */ React17__default.createElement(
2902
+ return /* @__PURE__ */ React18__default.createElement(
2761
2903
  DroppableCell,
2762
2904
  {
2763
2905
  key: minute,
@@ -2769,7 +2911,7 @@ var DayView = ({
2769
2911
  top: `${minute / 60 * 100}%`
2770
2912
  }
2771
2913
  },
2772
- /* @__PURE__ */ React17__default.createElement(
2914
+ /* @__PURE__ */ React18__default.createElement(
2773
2915
  "div",
2774
2916
  {
2775
2917
  className: "h-full w-full bg-transparent cursor-pointer",
@@ -2802,7 +2944,8 @@ var DayView = ({
2802
2944
  const height = durationMinutes / 60 * hourHeight;
2803
2945
  const top = reverseTime ? (1440 - startMinutes - durationMinutes) / 60 * hourHeight : startMinutes / 60 * hourHeight;
2804
2946
  const isShortEvent = compactShortEvents && durationMinutes < 45;
2805
- return /* @__PURE__ */ React17__default.createElement(
2947
+ const timeRange = `${format(zonedStart, eventTimeFormat, { locale })} - ${format(zonedEnd, eventTimeFormat, { locale })}`;
2948
+ return /* @__PURE__ */ React18__default.createElement(
2806
2949
  DraggableEvent,
2807
2950
  {
2808
2951
  key: `${event.id}-${currentDate.toISOString()}`,
@@ -2816,7 +2959,7 @@ var DayView = ({
2816
2959
  paddingRight: count > 1 ? "2px" : "0"
2817
2960
  }
2818
2961
  },
2819
- /* @__PURE__ */ React17__default.createElement(
2962
+ /* @__PURE__ */ React18__default.createElement(
2820
2963
  ResizableEvent,
2821
2964
  {
2822
2965
  readonly,
@@ -2826,38 +2969,46 @@ var DayView = ({
2826
2969
  className: "h-full",
2827
2970
  style: { height: "100%" }
2828
2971
  },
2829
- /* @__PURE__ */ React17__default.createElement(
2830
- "div",
2972
+ /* @__PURE__ */ React18__default.createElement(
2973
+ EventHoverPopover,
2831
2974
  {
2832
- className: cn(
2833
- "h-full rounded-lg border-[0.5px] shadow-sm overflow-hidden transition-all hover:shadow-lg hover:z-20 group",
2834
- "glass backdrop-blur-sm",
2835
- readonly ? "cursor-default" : "cursor-grab active:cursor-grabbing",
2836
- !event.color && "bg-primary/10 border-primary/20",
2837
- isShortEvent ? "px-2 flex items-center" : "px-3 py-2",
2838
- count > 1 && "border-l-4"
2839
- ),
2840
- style: {
2841
- backgroundColor: event.color ? `${event.color}15` : void 0,
2842
- borderColor: event.color ? `${event.color}30` : void 0,
2843
- borderLeftColor: event.color || "var(--primary)",
2844
- borderLeftWidth: count > 1 ? "4px" : "3px"
2845
- },
2846
- onClick: (e) => {
2847
- e.stopPropagation();
2848
- onEventClick?.(event);
2849
- },
2850
- title: count > 1 ? `${event.title} (${index + 1}/${count})` : void 0
2975
+ enabled: isShortEvent,
2976
+ event,
2977
+ timeRange
2851
2978
  },
2852
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full overflow-hidden w-full" }, /* @__PURE__ */ React17__default.createElement("div", { className: cn(
2853
- "font-semibold truncate leading-tight",
2854
- isShortEvent ? "text-xs" : "text-sm",
2855
- event.color ? "text-foreground" : "text-foreground/90"
2856
- ) }, event.title), !isShortEvent && /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement("div", { className: "text-xs text-muted-foreground mt-0.5 font-medium" }, format(zonedStart, eventTimeFormat, { locale }), " - ", format(zonedEnd, eventTimeFormat, { locale })), event.description && height > 60 && /* @__PURE__ */ React17__default.createElement("div", { className: "text-xs text-muted-foreground/80 mt-1 line-clamp-2" }, event.description)), count > 1 && !isShortEvent && /* @__PURE__ */ React17__default.createElement("div", { className: "absolute top-1.5 right-1.5 bg-background/90 backdrop-blur-sm rounded-full w-5 h-5 flex items-center justify-center text-[10px] font-bold text-muted-foreground border border-border shadow-sm" }, count))
2979
+ /* @__PURE__ */ React18__default.createElement(
2980
+ "div",
2981
+ {
2982
+ className: cn(
2983
+ "h-full rounded-lg border-[0.5px] shadow-sm overflow-hidden transition-all hover:shadow-lg hover:z-20 group",
2984
+ "glass backdrop-blur-sm",
2985
+ readonly ? "cursor-default" : "cursor-grab active:cursor-grabbing",
2986
+ !event.color && "bg-primary/10 border-primary/20",
2987
+ isShortEvent ? "px-2 flex items-center" : "px-3 py-2",
2988
+ count > 1 && "border-l-4"
2989
+ ),
2990
+ style: {
2991
+ backgroundColor: event.color ? `${event.color}15` : void 0,
2992
+ borderColor: event.color ? `${event.color}30` : void 0,
2993
+ borderLeftColor: event.color || "var(--primary)",
2994
+ borderLeftWidth: count > 1 ? "4px" : "3px"
2995
+ },
2996
+ onClick: (e) => {
2997
+ e.stopPropagation();
2998
+ onEventClick?.(event);
2999
+ },
3000
+ title: !isShortEvent && count > 1 ? `${event.title} (${index + 1}/${count})` : void 0
3001
+ },
3002
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full overflow-hidden w-full" }, /* @__PURE__ */ React18__default.createElement("div", { className: cn(
3003
+ "font-semibold truncate leading-tight",
3004
+ isShortEvent ? "text-xs" : "text-sm",
3005
+ event.color ? "text-foreground" : "text-foreground/90"
3006
+ ) }, event.title), !isShortEvent && /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement("div", { className: "text-xs text-muted-foreground mt-0.5 font-medium" }, timeRange), event.description && height > 60 && /* @__PURE__ */ React18__default.createElement("div", { className: "text-xs text-muted-foreground/80 mt-1 line-clamp-2" }, event.description)), count > 1 && !isShortEvent && /* @__PURE__ */ React18__default.createElement("div", { className: "absolute top-1.5 right-1.5 bg-background/90 backdrop-blur-sm rounded-full w-5 h-5 flex items-center justify-center text-[10px] font-bold text-muted-foreground border border-border shadow-sm" }, count))
3007
+ )
2857
3008
  )
2858
3009
  )
2859
3010
  );
2860
- }), isToday(currentDate) && /* @__PURE__ */ React17__default.createElement(
3011
+ }), isToday(currentDate) && /* @__PURE__ */ React18__default.createElement(
2861
3012
  "div",
2862
3013
  {
2863
3014
  className: "absolute left-0 right-0 z-20 pointer-events-none flex items-center",
@@ -2865,17 +3016,17 @@ var DayView = ({
2865
3016
  top: reverseTime ? `${(1440 - (zonedNow.getHours() * 60 + zonedNow.getMinutes())) / 60 * hourHeight}px` : `${(zonedNow.getHours() * 60 + zonedNow.getMinutes()) / 60 * hourHeight}px`
2866
3017
  }
2867
3018
  },
2868
- /* @__PURE__ */ React17__default.createElement("div", { className: "h-[2px] w-full bg-gradient-to-r from-primary via-primary to-primary/50" }),
2869
- /* @__PURE__ */ React17__default.createElement("div", { className: "absolute -left-1.5 w-3 h-3 bg-primary rounded-full shadow-lg shadow-primary/40 ring-2 ring-background animate-pulse" })
3019
+ /* @__PURE__ */ React18__default.createElement("div", { className: "h-[2px] w-full bg-gradient-to-r from-primary via-primary to-primary/50" }),
3020
+ /* @__PURE__ */ React18__default.createElement("div", { className: "absolute -left-1.5 w-3 h-3 bg-primary rounded-full shadow-lg shadow-primary/40 ring-2 ring-background animate-pulse" })
2870
3021
  )))));
2871
3022
  };
2872
- var AgendaEmptyState = ({ onCreateEvent, translations }) => /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col items-center justify-center h-full min-h-[400px] py-12" }, /* @__PURE__ */ React17__default.createElement("div", { className: "relative mb-8" }, /* @__PURE__ */ React17__default.createElement("div", { className: "p-8 bg-gradient-to-br from-green-50 to-blue-50 dark:from-green-900/10 dark:to-blue-900/10 rounded-3xl border border-border/30" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React17__default.createElement("div", { className: "w-12 h-12 rounded-2xl bg-green-100 dark:bg-green-900/30 flex items-center justify-center" }, /* @__PURE__ */ React17__default.createElement("svg", { className: "w-6 h-6 text-green-600 dark:text-green-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2 }, /* @__PURE__ */ React17__default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 13l4 4L19 7" }))), /* @__PURE__ */ React17__default.createElement("div", { className: "text-left" }, /* @__PURE__ */ React17__default.createElement("div", { className: "font-medium text-foreground" }, "All caught up!"), /* @__PURE__ */ React17__default.createElement("div", { className: "text-sm text-muted-foreground" }, "No events scheduled"))))), /* @__PURE__ */ React17__default.createElement("div", { className: "text-center max-w-sm" }, /* @__PURE__ */ React17__default.createElement("h3", { className: "text-lg font-semibold text-foreground mb-2" }, translations?.noUpcoming || "Your schedule is clear"), /* @__PURE__ */ React17__default.createElement("p", { className: "text-sm text-muted-foreground mb-6" }, "No upcoming events to show. Create a new event to start planning."), onCreateEvent && /* @__PURE__ */ React17__default.createElement(
3023
+ var AgendaEmptyState = ({ onCreateEvent, translations }) => /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col items-center justify-center h-full min-h-[400px] py-12" }, /* @__PURE__ */ React18__default.createElement("div", { className: "relative mb-8" }, /* @__PURE__ */ React18__default.createElement("div", { className: "p-8 bg-gradient-to-br from-green-50 to-blue-50 dark:from-green-900/10 dark:to-blue-900/10 rounded-3xl border border-border/30" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React18__default.createElement("div", { className: "w-12 h-12 rounded-2xl bg-green-100 dark:bg-green-900/30 flex items-center justify-center" }, /* @__PURE__ */ React18__default.createElement("svg", { className: "w-6 h-6 text-green-600 dark:text-green-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2 }, /* @__PURE__ */ React18__default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 13l4 4L19 7" }))), /* @__PURE__ */ React18__default.createElement("div", { className: "text-left" }, /* @__PURE__ */ React18__default.createElement("div", { className: "font-medium text-foreground" }, "All caught up!"), /* @__PURE__ */ React18__default.createElement("div", { className: "text-sm text-muted-foreground" }, "No events scheduled"))))), /* @__PURE__ */ React18__default.createElement("div", { className: "text-center max-w-sm" }, /* @__PURE__ */ React18__default.createElement("h3", { className: "text-lg font-semibold text-foreground mb-2" }, translations?.noUpcoming || "Your schedule is clear"), /* @__PURE__ */ React18__default.createElement("p", { className: "text-sm text-muted-foreground mb-6" }, "No upcoming events to show. Create a new event to start planning."), onCreateEvent && /* @__PURE__ */ React18__default.createElement(
2873
3024
  "button",
2874
3025
  {
2875
3026
  onClick: onCreateEvent,
2876
3027
  className: "inline-flex items-center gap-2 px-5 py-2.5 bg-primary text-primary-foreground rounded-xl font-medium text-sm shadow-lg shadow-primary/20 hover:shadow-xl hover:shadow-primary/30 hover:scale-105 active:scale-95 transition-all duration-200"
2877
3028
  },
2878
- /* @__PURE__ */ React17__default.createElement(Plus, { className: "w-4 h-4" }),
3029
+ /* @__PURE__ */ React18__default.createElement(Plus, { className: "w-4 h-4" }),
2879
3030
  translations?.createEvent || "Create Event"
2880
3031
  )));
2881
3032
  var formatDuration = (start, end) => {
@@ -2927,7 +3078,7 @@ var AgendaView = ({
2927
3078
  hidden: { opacity: 0, x: -20 },
2928
3079
  show: { opacity: 1, x: 0 }
2929
3080
  };
2930
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background overflow-y-auto" }, groupedEvents.length === 0 ? renderEmptyState ? renderEmptyState({ view: "agenda", onCreateEvent }) : /* @__PURE__ */ React17__default.createElement(AgendaEmptyState, { onCreateEvent }) : /* @__PURE__ */ React17__default.createElement(
3081
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background overflow-y-auto" }, groupedEvents.length === 0 ? renderEmptyState ? renderEmptyState({ view: "agenda", onCreateEvent }) : /* @__PURE__ */ React18__default.createElement(AgendaEmptyState, { onCreateEvent }) : /* @__PURE__ */ React18__default.createElement(
2931
3082
  motion.div,
2932
3083
  {
2933
3084
  className: "max-w-3xl mx-auto w-full pb-10 px-4 md:px-6",
@@ -2935,21 +3086,21 @@ var AgendaView = ({
2935
3086
  initial: "hidden",
2936
3087
  animate: "show"
2937
3088
  },
2938
- groupedEvents.map((group, groupIndex) => /* @__PURE__ */ React17__default.createElement(
3089
+ groupedEvents.map((group, groupIndex) => /* @__PURE__ */ React18__default.createElement(
2939
3090
  motion.div,
2940
3091
  {
2941
3092
  key: group.date.toISOString(),
2942
3093
  className: "relative",
2943
3094
  variants: item
2944
3095
  },
2945
- /* @__PURE__ */ React17__default.createElement("div", { className: "sticky top-0 bg-background/95 backdrop-blur-md py-4 z-10 border-b border-border/50" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React17__default.createElement("div", { className: cn(
3096
+ /* @__PURE__ */ React18__default.createElement("div", { className: "sticky top-0 bg-background/95 backdrop-blur-md py-4 z-10 border-b border-border/50" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React18__default.createElement("div", { className: cn(
2946
3097
  "flex flex-col items-center justify-center w-16 h-16 rounded-2xl transition-all",
2947
3098
  isToday(group.date) ? "bg-primary text-primary-foreground shadow-lg shadow-primary/30" : "bg-muted/50 text-foreground"
2948
- ) }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-2xl font-bold leading-none" }, format(group.date, "d")), /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-medium uppercase tracking-wide opacity-80" }, format(group.date, "MMM"))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React17__default.createElement("span", { className: cn(
3099
+ ) }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-2xl font-bold leading-none" }, format(group.date, "d")), /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-medium uppercase tracking-wide opacity-80" }, format(group.date, "MMM"))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React18__default.createElement("span", { className: cn(
2949
3100
  "text-lg font-semibold",
2950
3101
  isToday(group.date) && "text-primary"
2951
- ) }, getDateLabel(group.date, translations?.today ?? "Today", translations?.tomorrow ?? "Tomorrow")), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm text-muted-foreground" }, group.events.length, " ", group.events.length !== 1 ? translations?.eventsCount ?? "events" : translations?.eventCount ?? "event")))),
2952
- /* @__PURE__ */ React17__default.createElement("div", { className: "py-4 space-y-3" }, group.events.map((event, eventIndex) => /* @__PURE__ */ React17__default.createElement(
3102
+ ) }, getDateLabel(group.date, translations?.today ?? "Today", translations?.tomorrow ?? "Tomorrow")), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm text-muted-foreground" }, group.events.length, " ", group.events.length !== 1 ? translations?.eventsCount ?? "events" : translations?.eventCount ?? "event")))),
3103
+ /* @__PURE__ */ React18__default.createElement("div", { className: "py-4 space-y-3" }, group.events.map((event, eventIndex) => /* @__PURE__ */ React18__default.createElement(
2953
3104
  motion.div,
2954
3105
  {
2955
3106
  key: event.id,
@@ -2963,22 +3114,22 @@ var AgendaView = ({
2963
3114
  whileHover: { scale: 1.01, y: -2 },
2964
3115
  transition: { duration: 0.2 }
2965
3116
  },
2966
- /* @__PURE__ */ React17__default.createElement(
3117
+ /* @__PURE__ */ React18__default.createElement(
2967
3118
  "div",
2968
3119
  {
2969
3120
  className: "absolute left-0 top-3 bottom-3 w-1 rounded-full",
2970
3121
  style: { backgroundColor: event.color || "var(--primary)" }
2971
3122
  }
2972
3123
  ),
2973
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col items-center min-w-[70px] pl-2" }, event.allDay ? /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-semibold text-muted-foreground bg-muted/80 px-2.5 py-1 rounded-full" }, translations?.allDay ?? "All Day")) : /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-base font-semibold text-foreground" }, format(event.start, timeFmt)), /* @__PURE__ */ React17__default.createElement("div", { className: "w-px h-3 bg-border my-1" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs text-muted-foreground/70 font-medium" }, formatDuration(event.start, event.end)))),
2974
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 min-w-0 space-y-2" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-start justify-between gap-2" }, /* @__PURE__ */ React17__default.createElement("h4", { className: "text-base font-semibold text-foreground group-hover:text-primary transition-colors line-clamp-1" }, event.title), /* @__PURE__ */ React17__default.createElement(
3124
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col items-center min-w-[70px] pl-2" }, event.allDay ? /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-semibold text-muted-foreground bg-muted/80 px-2.5 py-1 rounded-full" }, translations?.allDay ?? "All Day")) : /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-base font-semibold text-foreground" }, format(event.start, timeFmt)), /* @__PURE__ */ React18__default.createElement("div", { className: "w-px h-3 bg-border my-1" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs text-muted-foreground/70 font-medium" }, formatDuration(event.start, event.end)))),
3125
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 min-w-0 space-y-2" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-start justify-between gap-2" }, /* @__PURE__ */ React18__default.createElement("h4", { className: "text-base font-semibold text-foreground group-hover:text-primary transition-colors line-clamp-1" }, event.title), /* @__PURE__ */ React18__default.createElement(
2975
3126
  "div",
2976
3127
  {
2977
3128
  className: "w-3 h-3 rounded-full shrink-0 mt-1.5",
2978
3129
  style: { backgroundColor: event.color || "var(--primary)" }
2979
3130
  }
2980
- )), event.description && /* @__PURE__ */ React17__default.createElement("p", { className: "text-sm text-muted-foreground line-clamp-2 leading-relaxed" }, event.description), /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-wrap items-center gap-3 pt-1" }, !event.allDay && /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React17__default.createElement(Clock, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React17__default.createElement("span", null, format(event.start, timeFmt), " - ", format(event.end, timeFmt))), event.guests && event.guests.length > 0 && /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React17__default.createElement(Users, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React17__default.createElement("span", null, event.guests.length, " ", event.guests.length !== 1 ? translations?.guestsCount ?? "guests" : translations?.guestCount ?? "guest")), event.attachments && event.attachments.length > 0 && /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React17__default.createElement(Paperclip, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React17__default.createElement("span", null, event.attachments.length)), event.reminders && event.reminders.length > 0 && /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React17__default.createElement(Bell, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React17__default.createElement("span", null, event.reminders.length)))),
2981
- /* @__PURE__ */ React17__default.createElement("div", { className: "absolute right-4 top-1/2 -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity" }, /* @__PURE__ */ React17__default.createElement("svg", { className: "w-5 h-5 text-muted-foreground", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ React17__default.createElement("path", { d: "M9 18l6-6-6-6" })))
3131
+ )), event.description && /* @__PURE__ */ React18__default.createElement("p", { className: "text-sm text-muted-foreground line-clamp-2 leading-relaxed" }, event.description), /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-wrap items-center gap-3 pt-1" }, !event.allDay && /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React18__default.createElement(Clock, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React18__default.createElement("span", null, format(event.start, timeFmt), " - ", format(event.end, timeFmt))), event.guests && event.guests.length > 0 && /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React18__default.createElement(Users, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React18__default.createElement("span", null, event.guests.length, " ", event.guests.length !== 1 ? translations?.guestsCount ?? "guests" : translations?.guestCount ?? "guest")), event.attachments && event.attachments.length > 0 && /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React18__default.createElement(Paperclip, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React18__default.createElement("span", null, event.attachments.length)), event.reminders && event.reminders.length > 0 && /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground" }, /* @__PURE__ */ React18__default.createElement(Bell, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ React18__default.createElement("span", null, event.reminders.length)))),
3132
+ /* @__PURE__ */ React18__default.createElement("div", { className: "absolute right-4 top-1/2 -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity" }, /* @__PURE__ */ React18__default.createElement("svg", { className: "w-5 h-5 text-muted-foreground", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ React18__default.createElement("path", { d: "M9 18l6-6-6-6" })))
2982
3133
  )))
2983
3134
  ))
2984
3135
  ));
@@ -3010,7 +3161,7 @@ var ResourceView = ({
3010
3161
  // Min width for visibility
3011
3162
  };
3012
3163
  };
3013
- return /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background overflow-hidden" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex border-b border-border bg-muted/20" }, /* @__PURE__ */ React17__default.createElement("div", { className: "w-48 shrink-0 border-r border-border p-4 font-semibold text-sm bg-background sticky left-0 z-20" }, "Resources"), /* @__PURE__ */ React17__default.createElement("div", { className: "flex overflow-hidden" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex relative", style: { width: hours.length * hourWidth } }, hours.map((hour) => /* @__PURE__ */ React17__default.createElement(
3164
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full min-h-0 bg-background overflow-hidden" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex border-b border-border bg-muted/20" }, /* @__PURE__ */ React18__default.createElement("div", { className: "w-48 shrink-0 border-r border-border p-4 font-semibold text-sm bg-background sticky left-0 z-20" }, "Resources"), /* @__PURE__ */ React18__default.createElement("div", { className: "flex overflow-hidden" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex relative", style: { width: hours.length * hourWidth } }, hours.map((hour) => /* @__PURE__ */ React18__default.createElement(
3014
3165
  "div",
3015
3166
  {
3016
3167
  key: hour,
@@ -3018,11 +3169,11 @@ var ResourceView = ({
3018
3169
  style: { width: hourWidth }
3019
3170
  },
3020
3171
  format((/* @__PURE__ */ new Date()).setHours(hour, 0, 0, 0), timeFormat, { locale })
3021
- ))))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 min-h-0 overflow-auto relative", ref: containerRef }, /* @__PURE__ */ React17__default.createElement("div", { className: "min-w-fit" }, resources.map((resource) => {
3172
+ ))))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 min-h-0 overflow-auto relative", ref: containerRef }, /* @__PURE__ */ React18__default.createElement("div", { className: "min-w-fit" }, resources.map((resource) => {
3022
3173
  const resourceEvents = events.filter(
3023
3174
  (e) => e.resourceId === resource.id && isSameDay(new Date(e.start), currentDate)
3024
3175
  );
3025
- return /* @__PURE__ */ React17__default.createElement("div", { key: resource.id, className: "flex border-b border-border min-h-[100px]" }, /* @__PURE__ */ React17__default.createElement("div", { className: "w-48 shrink-0 border-r border-border p-4 bg-background sticky left-0 z-10 flex items-center gap-3" }, resource.avatar ? /* @__PURE__ */ React17__default.createElement("img", { src: resource.avatar, alt: resource.label, className: "w-8 h-8 rounded-full object-cover" }) : /* @__PURE__ */ React17__default.createElement("div", { className: "w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-xs font-bold text-primary" }, resource.label.substring(0, 2).toUpperCase()), /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium" }, resource.label), /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs text-muted-foreground" }, "ID: ", resource.id))), /* @__PURE__ */ React17__default.createElement("div", { className: "relative flex", style: { width: hours.length * hourWidth } }, hours.map((hour) => /* @__PURE__ */ React17__default.createElement(
3176
+ return /* @__PURE__ */ React18__default.createElement("div", { key: resource.id, className: "flex border-b border-border min-h-[100px]" }, /* @__PURE__ */ React18__default.createElement("div", { className: "w-48 shrink-0 border-r border-border p-4 bg-background sticky left-0 z-10 flex items-center gap-3" }, resource.avatar ? /* @__PURE__ */ React18__default.createElement("img", { src: resource.avatar, alt: resource.label, className: "w-8 h-8 rounded-full object-cover" }) : /* @__PURE__ */ React18__default.createElement("div", { className: "w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-xs font-bold text-primary" }, resource.label.substring(0, 2).toUpperCase()), /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium" }, resource.label), /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs text-muted-foreground" }, "ID: ", resource.id))), /* @__PURE__ */ React18__default.createElement("div", { className: "relative flex", style: { width: hours.length * hourWidth } }, hours.map((hour) => /* @__PURE__ */ React18__default.createElement(
3026
3177
  "div",
3027
3178
  {
3028
3179
  key: hour,
@@ -3033,7 +3184,7 @@ var ResourceView = ({
3033
3184
  const slotDate = new Date(currentDate);
3034
3185
  slotDate.setHours(hour, minute, 0, 0);
3035
3186
  const slotId = `${resource.id}-${slotDate.toISOString()}`;
3036
- return /* @__PURE__ */ React17__default.createElement(
3187
+ return /* @__PURE__ */ React18__default.createElement(
3037
3188
  DroppableCell,
3038
3189
  {
3039
3190
  key: minute,
@@ -3047,7 +3198,7 @@ var ResourceView = ({
3047
3198
  }
3048
3199
  );
3049
3200
  })
3050
- )), resourceEvents.map((event) => /* @__PURE__ */ React17__default.createElement(
3201
+ )), resourceEvents.map((event) => /* @__PURE__ */ React18__default.createElement(
3051
3202
  DraggableEvent,
3052
3203
  {
3053
3204
  key: event.id,
@@ -3064,7 +3215,7 @@ var ResourceView = ({
3064
3215
  color: "#fff"
3065
3216
  }
3066
3217
  },
3067
- /* @__PURE__ */ React17__default.createElement("div", { className: "truncate" }, event.title)
3218
+ /* @__PURE__ */ React18__default.createElement("div", { className: "truncate" }, event.title)
3068
3219
  ))));
3069
3220
  }))));
3070
3221
  };
@@ -3091,14 +3242,14 @@ var Modal = ({
3091
3242
  };
3092
3243
  }, [isOpen, onClose]);
3093
3244
  if (!isOpen) return null;
3094
- return /* @__PURE__ */ React17__default.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center p-4 bg-black/40 backdrop-blur-md animate-in fade-in duration-300" }, /* @__PURE__ */ React17__default.createElement(
3245
+ return /* @__PURE__ */ React18__default.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center p-4 bg-black/40 backdrop-blur-md animate-in fade-in duration-300" }, /* @__PURE__ */ React18__default.createElement(
3095
3246
  "div",
3096
3247
  {
3097
3248
  ref: overlayRef,
3098
3249
  className: "absolute inset-0",
3099
3250
  onClick: onClose
3100
3251
  }
3101
- ), /* @__PURE__ */ React17__default.createElement(
3252
+ ), /* @__PURE__ */ React18__default.createElement(
3102
3253
  "div",
3103
3254
  {
3104
3255
  className: cn(
@@ -3106,7 +3257,7 @@ var Modal = ({
3106
3257
  className
3107
3258
  )
3108
3259
  },
3109
- !hideHeader && /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between px-6 py-4 border-b border-border/50 shrink-0 bg-gradient-to-r from-muted/20 to-background" }, /* @__PURE__ */ React17__default.createElement("h3", { className: "text-lg font-semibold text-foreground" }, title), /* @__PURE__ */ React17__default.createElement(
3260
+ !hideHeader && /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between px-6 py-4 border-b border-border/50 shrink-0 bg-gradient-to-r from-muted/20 to-background" }, /* @__PURE__ */ React18__default.createElement("h3", { className: "text-lg font-semibold text-foreground" }, title), /* @__PURE__ */ React18__default.createElement(
3110
3261
  Button,
3111
3262
  {
3112
3263
  variant: "ghost",
@@ -3114,10 +3265,10 @@ var Modal = ({
3114
3265
  onClick: onClose,
3115
3266
  className: "h-9 w-9 p-0 rounded-xl hover:bg-accent/80 transition-all duration-200"
3116
3267
  },
3117
- /* @__PURE__ */ React17__default.createElement(X, { className: "h-4 w-4" }),
3118
- /* @__PURE__ */ React17__default.createElement("span", { className: "sr-only" }, "Close")
3268
+ /* @__PURE__ */ React18__default.createElement(X, { className: "h-4 w-4" }),
3269
+ /* @__PURE__ */ React18__default.createElement("span", { className: "sr-only" }, "Close")
3119
3270
  )),
3120
- /* @__PURE__ */ React17__default.createElement("div", { className: cn("overflow-y-auto flex-1", !hideHeader && "p-6") }, children)
3271
+ /* @__PURE__ */ React18__default.createElement("div", { className: cn("overflow-y-auto flex-1", !hideHeader && "p-6") }, children)
3121
3272
  ));
3122
3273
  };
3123
3274
  var COLOR_PALETTE = [
@@ -3318,7 +3469,7 @@ var EventModal = ({
3318
3469
  if (remainingMins === 0) return `${hours} hr`;
3319
3470
  return `${hours} hr ${remainingMins} min`;
3320
3471
  };
3321
- const renderViewMode = () => /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col bg-background overflow-hidden w-full max-h-[90vh]" }, /* @__PURE__ */ React17__default.createElement(
3472
+ const renderViewMode = () => /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col bg-background overflow-hidden w-full max-h-[90vh]" }, /* @__PURE__ */ React18__default.createElement(
3322
3473
  "div",
3323
3474
  {
3324
3475
  className: "relative px-6 pt-6 pb-8",
@@ -3326,50 +3477,50 @@ var EventModal = ({
3326
3477
  background: `linear-gradient(135deg, ${event?.color || "#3b82f6"}15 0%, transparent 100%)`
3327
3478
  }
3328
3479
  },
3329
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between mb-6" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(
3480
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between mb-6" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(
3330
3481
  "div",
3331
3482
  {
3332
3483
  className: "w-3 h-3 rounded-full",
3333
3484
  style: { backgroundColor: event?.color || "#3b82f6" }
3334
3485
  }
3335
- ), /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider" }, calendars?.find((c) => c.id === event?.calendarId)?.label || "Event")), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React17__default.createElement(
3486
+ ), /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider" }, calendars?.find((c) => c.id === event?.calendarId)?.label || "Event")), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-1" }, /* @__PURE__ */ React18__default.createElement(
3336
3487
  "button",
3337
3488
  {
3338
3489
  onClick: () => setMode("edit"),
3339
3490
  className: "p-2 hover:bg-background/80 rounded-lg transition-all text-muted-foreground hover:text-foreground",
3340
3491
  title: "Edit"
3341
3492
  },
3342
- /* @__PURE__ */ React17__default.createElement(Edit2, { className: "w-4 h-4" })
3343
- ), /* @__PURE__ */ React17__default.createElement(
3493
+ /* @__PURE__ */ React18__default.createElement(Edit2, { className: "w-4 h-4" })
3494
+ ), /* @__PURE__ */ React18__default.createElement(
3344
3495
  "button",
3345
3496
  {
3346
3497
  onClick: handleDelete,
3347
3498
  className: "p-2 hover:bg-destructive/10 rounded-lg transition-all text-muted-foreground hover:text-destructive",
3348
3499
  title: "Delete"
3349
3500
  },
3350
- /* @__PURE__ */ React17__default.createElement(Trash2, { className: "w-4 h-4" })
3351
- ), /* @__PURE__ */ React17__default.createElement(
3501
+ /* @__PURE__ */ React18__default.createElement(Trash2, { className: "w-4 h-4" })
3502
+ ), /* @__PURE__ */ React18__default.createElement(
3352
3503
  "button",
3353
3504
  {
3354
3505
  onClick: onClose,
3355
3506
  className: "p-2 hover:bg-background/80 rounded-lg transition-all text-muted-foreground hover:text-foreground",
3356
3507
  title: "Close"
3357
3508
  },
3358
- /* @__PURE__ */ React17__default.createElement(X, { className: "w-4 h-4" })
3509
+ /* @__PURE__ */ React18__default.createElement(X, { className: "w-4 h-4" })
3359
3510
  ))),
3360
- /* @__PURE__ */ React17__default.createElement("h1", { className: "text-2xl font-bold text-foreground mb-3 leading-tight" }, event?.title || translations.noTitle),
3361
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-3 text-sm" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2 px-3 py-1.5 bg-background/60 backdrop-blur-sm rounded-lg border border-border/30" }, /* @__PURE__ */ React17__default.createElement(Calendar, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "font-medium" }, event?.start && format(new Date(event.start), "EEE, MMM d"))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2 px-3 py-1.5 bg-background/60 backdrop-blur-sm rounded-lg border border-border/30" }, /* @__PURE__ */ React17__default.createElement(Clock, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "font-medium" }, event?.start && format(new Date(event.start), timeFmt), " \u2013 ", event?.end && format(new Date(event.end), timeFmt))))
3362
- ), /* @__PURE__ */ React17__default.createElement("div", { className: "px-6 pb-6 space-y-4 overflow-y-auto flex-1" }, event?.location && /* @__PURE__ */ React17__default.createElement(
3511
+ /* @__PURE__ */ React18__default.createElement("h1", { className: "text-2xl font-bold text-foreground mb-3 leading-tight" }, event?.title || translations.noTitle),
3512
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-3 text-sm" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2 px-3 py-1.5 bg-background/60 backdrop-blur-sm rounded-lg border border-border/30" }, /* @__PURE__ */ React18__default.createElement(Calendar, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "font-medium" }, event?.start && format(new Date(event.start), "EEE, MMM d"))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2 px-3 py-1.5 bg-background/60 backdrop-blur-sm rounded-lg border border-border/30" }, /* @__PURE__ */ React18__default.createElement(Clock, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "font-medium" }, event?.start && format(new Date(event.start), timeFmt), " \u2013 ", event?.end && format(new Date(event.end), timeFmt))))
3513
+ ), /* @__PURE__ */ React18__default.createElement("div", { className: "px-6 pb-6 space-y-4 overflow-y-auto flex-1" }, event?.location && /* @__PURE__ */ React18__default.createElement(
3363
3514
  motion.div,
3364
3515
  {
3365
3516
  initial: { opacity: 0, y: 10 },
3366
3517
  animate: { opacity: 1, y: 0 },
3367
3518
  className: "flex items-start gap-3 p-4 rounded-2xl bg-muted/30 border border-border/30 group hover:bg-muted/50 transition-all cursor-pointer"
3368
3519
  },
3369
- /* @__PURE__ */ React17__default.createElement("div", { className: "p-2 bg-primary/10 rounded-xl" }, /* @__PURE__ */ React17__default.createElement(MapPin, { className: "w-5 h-5 text-primary" })),
3370
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React17__default.createElement("p", { className: "text-sm font-medium text-foreground" }, event.location), /* @__PURE__ */ React17__default.createElement("p", { className: "text-xs text-muted-foreground mt-0.5" }, translations.clickToOpenInMaps)),
3371
- /* @__PURE__ */ React17__default.createElement(ExternalLink, { className: "w-4 h-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
3372
- ), event?.guests && event.guests.length > 0 && /* @__PURE__ */ React17__default.createElement(
3520
+ /* @__PURE__ */ React18__default.createElement("div", { className: "p-2 bg-primary/10 rounded-xl" }, /* @__PURE__ */ React18__default.createElement(MapPin, { className: "w-5 h-5 text-primary" })),
3521
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React18__default.createElement("p", { className: "text-sm font-medium text-foreground" }, event.location), /* @__PURE__ */ React18__default.createElement("p", { className: "text-xs text-muted-foreground mt-0.5" }, translations.clickToOpenInMaps)),
3522
+ /* @__PURE__ */ React18__default.createElement(ExternalLink, { className: "w-4 h-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
3523
+ ), event?.guests && event.guests.length > 0 && /* @__PURE__ */ React18__default.createElement(
3373
3524
  motion.div,
3374
3525
  {
3375
3526
  initial: { opacity: 0, y: 10 },
@@ -3377,14 +3528,14 @@ var EventModal = ({
3377
3528
  transition: { delay: 0.05 },
3378
3529
  className: "space-y-3"
3379
3530
  },
3380
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(Users, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium text-foreground" }, event.guests.length, " ", event.guests.length > 1 ? translations.guestsCount : translations.guestCount))),
3381
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-wrap gap-2" }, event.guests.map((email, index) => /* @__PURE__ */ React17__default.createElement(
3531
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(Users, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium text-foreground" }, event.guests.length, " ", event.guests.length > 1 ? translations.guestsCount : translations.guestCount))),
3532
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-wrap gap-2" }, event.guests.map((email, index) => /* @__PURE__ */ React18__default.createElement(
3382
3533
  "div",
3383
3534
  {
3384
3535
  key: index,
3385
3536
  className: "flex items-center gap-2 px-3 py-2 rounded-xl bg-muted/30 border border-border/30 hover:bg-muted/50 transition-all cursor-pointer group"
3386
3537
  },
3387
- /* @__PURE__ */ React17__default.createElement(
3538
+ /* @__PURE__ */ React18__default.createElement(
3388
3539
  "div",
3389
3540
  {
3390
3541
  className: "w-8 h-8 rounded-full flex items-center justify-center text-sm font-semibold text-white",
@@ -3392,9 +3543,9 @@ var EventModal = ({
3392
3543
  },
3393
3544
  email[0].toUpperCase()
3394
3545
  ),
3395
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React17__default.createElement("p", { className: "text-sm font-medium text-foreground" }, email.split("@")[0]), /* @__PURE__ */ React17__default.createElement("p", { className: "text-xs text-muted-foreground truncate" }, email))
3546
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React18__default.createElement("p", { className: "text-sm font-medium text-foreground" }, email.split("@")[0]), /* @__PURE__ */ React18__default.createElement("p", { className: "text-xs text-muted-foreground truncate" }, email))
3396
3547
  )))
3397
- ), event?.reminders && event.reminders.length > 0 && /* @__PURE__ */ React17__default.createElement(
3548
+ ), event?.reminders && event.reminders.length > 0 && /* @__PURE__ */ React18__default.createElement(
3398
3549
  motion.div,
3399
3550
  {
3400
3551
  initial: { opacity: 0, y: 10 },
@@ -3402,8 +3553,8 @@ var EventModal = ({
3402
3553
  transition: { delay: 0.1 },
3403
3554
  className: "flex items-center gap-3"
3404
3555
  },
3405
- /* @__PURE__ */ React17__default.createElement("div", { className: "p-2 bg-amber-500/10 rounded-xl" }, /* @__PURE__ */ React17__default.createElement(Bell, { className: "w-4 h-4 text-amber-500" })),
3406
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-wrap gap-2" }, event.reminders.map((reminder) => /* @__PURE__ */ React17__default.createElement(
3556
+ /* @__PURE__ */ React18__default.createElement("div", { className: "p-2 bg-amber-500/10 rounded-xl" }, /* @__PURE__ */ React18__default.createElement(Bell, { className: "w-4 h-4 text-amber-500" })),
3557
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-wrap gap-2" }, event.reminders.map((reminder) => /* @__PURE__ */ React18__default.createElement(
3407
3558
  "span",
3408
3559
  {
3409
3560
  key: reminder.id,
@@ -3411,7 +3562,7 @@ var EventModal = ({
3411
3562
  },
3412
3563
  reminder.label || `${reminder.time} min before`
3413
3564
  )))
3414
- ), event?.description && /* @__PURE__ */ React17__default.createElement(
3565
+ ), event?.description && /* @__PURE__ */ React18__default.createElement(
3415
3566
  motion.div,
3416
3567
  {
3417
3568
  initial: { opacity: 0, y: 10 },
@@ -3419,9 +3570,9 @@ var EventModal = ({
3419
3570
  transition: { delay: 0.15 },
3420
3571
  className: "space-y-2"
3421
3572
  },
3422
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(AlignLeft, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.notes)),
3423
- /* @__PURE__ */ React17__default.createElement("div", { className: "text-sm text-foreground/80 whitespace-pre-wrap leading-relaxed pl-6 p-3 rounded-xl bg-muted/20 border border-border/30" }, event.description)
3424
- ), event?.attachments && event.attachments.length > 0 && /* @__PURE__ */ React17__default.createElement(
3573
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(AlignLeft, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.notes)),
3574
+ /* @__PURE__ */ React18__default.createElement("div", { className: "text-sm text-foreground/80 whitespace-pre-wrap leading-relaxed pl-6 p-3 rounded-xl bg-muted/20 border border-border/30" }, event.description)
3575
+ ), event?.attachments && event.attachments.length > 0 && /* @__PURE__ */ React18__default.createElement(
3425
3576
  motion.div,
3426
3577
  {
3427
3578
  initial: { opacity: 0, y: 10 },
@@ -3429,27 +3580,27 @@ var EventModal = ({
3429
3580
  transition: { delay: 0.2 },
3430
3581
  className: "space-y-2"
3431
3582
  },
3432
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(Paperclip, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.attachments)),
3433
- /* @__PURE__ */ React17__default.createElement("div", { className: "grid gap-2" }, event.attachments.map((att) => /* @__PURE__ */ React17__default.createElement(
3583
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(Paperclip, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.attachments)),
3584
+ /* @__PURE__ */ React18__default.createElement("div", { className: "grid gap-2" }, event.attachments.map((att) => /* @__PURE__ */ React18__default.createElement(
3434
3585
  "div",
3435
3586
  {
3436
3587
  key: att.id,
3437
3588
  onClick: () => handleDownload(att),
3438
3589
  className: "flex items-center gap-3 p-3 rounded-xl border border-border/30 bg-muted/20 hover:bg-muted/40 transition-all cursor-pointer group"
3439
3590
  },
3440
- /* @__PURE__ */ React17__default.createElement("div", { className: "p-2 bg-primary/10 rounded-lg" }, /* @__PURE__ */ React17__default.createElement(File, { className: "w-4 h-4 text-primary" })),
3441
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React17__default.createElement("p", { className: "text-sm font-medium text-foreground truncate" }, att.name), /* @__PURE__ */ React17__default.createElement("p", { className: "text-xs text-muted-foreground" }, att.size)),
3442
- /* @__PURE__ */ React17__default.createElement(Download, { className: "w-4 h-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
3591
+ /* @__PURE__ */ React18__default.createElement("div", { className: "p-2 bg-primary/10 rounded-lg" }, /* @__PURE__ */ React18__default.createElement(File, { className: "w-4 h-4 text-primary" })),
3592
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React18__default.createElement("p", { className: "text-sm font-medium text-foreground truncate" }, att.name), /* @__PURE__ */ React18__default.createElement("p", { className: "text-xs text-muted-foreground" }, att.size)),
3593
+ /* @__PURE__ */ React18__default.createElement(Download, { className: "w-4 h-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity" })
3443
3594
  )))
3444
3595
  )));
3445
- const renderEditMode = () => /* @__PURE__ */ React17__default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col bg-background overflow-hidden w-full max-h-[85vh]" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between px-5 py-4 border-b border-border/50 shrink-0" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React17__default.createElement(
3596
+ const renderEditMode = () => /* @__PURE__ */ React18__default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col bg-background overflow-hidden w-full max-h-[85vh]" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between px-5 py-4 border-b border-border/50 shrink-0" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React18__default.createElement(
3446
3597
  "button",
3447
3598
  {
3448
3599
  type: "button",
3449
3600
  onClick: () => setIsColorPickerOpen(!isColorPickerOpen),
3450
3601
  className: "relative p-1"
3451
3602
  },
3452
- /* @__PURE__ */ React17__default.createElement(
3603
+ /* @__PURE__ */ React18__default.createElement(
3453
3604
  "div",
3454
3605
  {
3455
3606
  className: "w-5 h-5 rounded-full cursor-pointer hover:scale-110 transition-transform",
@@ -3459,7 +3610,7 @@ var EventModal = ({
3459
3610
  }
3460
3611
  }
3461
3612
  ),
3462
- isColorPickerOpen && /* @__PURE__ */ React17__default.createElement("div", { className: "absolute top-full left-0 mt-2 p-2 bg-background border border-border rounded-xl shadow-xl z-50 flex flex-wrap gap-1.5 w-[180px]" }, COLOR_PALETTE.map((color) => /* @__PURE__ */ React17__default.createElement(
3613
+ isColorPickerOpen && /* @__PURE__ */ React18__default.createElement("div", { className: "absolute top-full left-0 mt-2 p-2 bg-background border border-border rounded-xl shadow-xl z-50 flex flex-wrap gap-1.5 w-[180px]" }, COLOR_PALETTE.map((color) => /* @__PURE__ */ React18__default.createElement(
3463
3614
  "button",
3464
3615
  {
3465
3616
  key: color,
@@ -3475,15 +3626,15 @@ var EventModal = ({
3475
3626
  style: { backgroundColor: color, color }
3476
3627
  }
3477
3628
  )))
3478
- ), /* @__PURE__ */ React17__default.createElement("h2", { className: "text-lg font-semibold text-foreground" }, mode === "edit" ? translations.editEvent : translations.newEvent)), /* @__PURE__ */ React17__default.createElement(
3629
+ ), /* @__PURE__ */ React18__default.createElement("h2", { className: "text-lg font-semibold text-foreground" }, mode === "edit" ? translations.editEvent : translations.newEvent)), /* @__PURE__ */ React18__default.createElement(
3479
3630
  "button",
3480
3631
  {
3481
3632
  type: "button",
3482
3633
  onClick: onClose,
3483
3634
  className: "p-2 hover:bg-accent rounded-xl transition-all text-muted-foreground hover:text-foreground"
3484
3635
  },
3485
- /* @__PURE__ */ React17__default.createElement(X, { className: "w-4 h-4" })
3486
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 overflow-y-auto" }, /* @__PURE__ */ React17__default.createElement("div", { className: "px-5 py-4 space-y-5" }, /* @__PURE__ */ React17__default.createElement("div", null, /* @__PURE__ */ React17__default.createElement(
3636
+ /* @__PURE__ */ React18__default.createElement(X, { className: "w-4 h-4" })
3637
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 overflow-y-auto" }, /* @__PURE__ */ React18__default.createElement("div", { className: "px-5 py-4 space-y-5" }, /* @__PURE__ */ React18__default.createElement("div", null, /* @__PURE__ */ React18__default.createElement(
3487
3638
  "input",
3488
3639
  {
3489
3640
  type: "text",
@@ -3494,7 +3645,7 @@ var EventModal = ({
3494
3645
  onChange: (e) => setFormData({ ...formData, title: e.target.value }),
3495
3646
  placeholder: translations.addTitle
3496
3647
  }
3497
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-3 p-4 rounded-2xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React17__default.createElement("div", { className: "p-2 bg-primary/10 rounded-xl shrink-0" }, /* @__PURE__ */ React17__default.createElement(Clock, { className: "w-5 h-5 text-primary" })), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 grid grid-cols-2 gap-3" }, /* @__PURE__ */ React17__default.createElement("div", null, /* @__PURE__ */ React17__default.createElement("label", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-1 block" }, translations.start), /* @__PURE__ */ React17__default.createElement(
3648
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-3 p-4 rounded-2xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React18__default.createElement("div", { className: "p-2 bg-primary/10 rounded-xl shrink-0" }, /* @__PURE__ */ React18__default.createElement(Clock, { className: "w-5 h-5 text-primary" })), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 grid grid-cols-2 gap-3" }, /* @__PURE__ */ React18__default.createElement("div", null, /* @__PURE__ */ React18__default.createElement("label", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-1 block" }, translations.start), /* @__PURE__ */ React18__default.createElement(
3498
3649
  "input",
3499
3650
  {
3500
3651
  type: "datetime-local",
@@ -3502,7 +3653,7 @@ var EventModal = ({
3502
3653
  value: formatDateForInput(formData.start),
3503
3654
  onChange: (e) => handleDateChange("start", e.target.value)
3504
3655
  }
3505
- )), /* @__PURE__ */ React17__default.createElement("div", null, /* @__PURE__ */ React17__default.createElement("label", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-1 block" }, translations.end), /* @__PURE__ */ React17__default.createElement(
3656
+ )), /* @__PURE__ */ React18__default.createElement("div", null, /* @__PURE__ */ React18__default.createElement("label", { className: "text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-1 block" }, translations.end), /* @__PURE__ */ React18__default.createElement(
3506
3657
  "input",
3507
3658
  {
3508
3659
  type: "datetime-local",
@@ -3510,16 +3661,16 @@ var EventModal = ({
3510
3661
  value: formatDateForInput(formData.end),
3511
3662
  onChange: (e) => handleDateChange("end", e.target.value)
3512
3663
  }
3513
- )))), getDurationText() && /* @__PURE__ */ React17__default.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-medium px-3 py-1 rounded-full bg-primary/10 text-primary" }, getDurationText())), /* @__PURE__ */ React17__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(Bell, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.reminders)), /* @__PURE__ */ React17__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React17__default.createElement(
3664
+ )))), getDurationText() && /* @__PURE__ */ React18__default.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-medium px-3 py-1 rounded-full bg-primary/10 text-primary" }, getDurationText())), /* @__PURE__ */ React18__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(Bell, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.reminders)), /* @__PURE__ */ React18__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React18__default.createElement(
3514
3665
  "button",
3515
3666
  {
3516
3667
  type: "button",
3517
3668
  onClick: () => setIsReminderDropdownOpen(!isReminderDropdownOpen),
3518
3669
  className: "flex items-center gap-1 text-xs font-medium text-primary hover:text-primary/80 transition-colors"
3519
3670
  },
3520
- /* @__PURE__ */ React17__default.createElement(Plus, { className: "w-3.5 h-3.5" }),
3671
+ /* @__PURE__ */ React18__default.createElement(Plus, { className: "w-3.5 h-3.5" }),
3521
3672
  translations.addReminder
3522
- ), isReminderDropdownOpen && /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setIsReminderDropdownOpen(false) }), /* @__PURE__ */ React17__default.createElement("div", { className: "absolute right-0 top-full mt-1 w-48 bg-background border border-border rounded-xl shadow-xl z-50 py-1 max-h-60 overflow-y-auto" }, getReminderOptions(translations).map((option) => /* @__PURE__ */ React17__default.createElement(
3673
+ ), isReminderDropdownOpen && /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setIsReminderDropdownOpen(false) }), /* @__PURE__ */ React18__default.createElement("div", { className: "absolute right-0 top-full mt-1 w-48 bg-background border border-border rounded-xl shadow-xl z-50 py-1 max-h-60 overflow-y-auto" }, getReminderOptions(translations).map((option) => /* @__PURE__ */ React18__default.createElement(
3523
3674
  "button",
3524
3675
  {
3525
3676
  key: option.value,
@@ -3528,58 +3679,58 @@ var EventModal = ({
3528
3679
  className: "w-full px-3 py-2 text-left text-sm hover:bg-accent transition-colors"
3529
3680
  },
3530
3681
  option.label
3531
- )))))), formData.reminders && formData.reminders.length > 0 && /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-wrap gap-2" }, formData.reminders.map((reminder) => /* @__PURE__ */ React17__default.createElement(
3682
+ )))))), formData.reminders && formData.reminders.length > 0 && /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-wrap gap-2" }, formData.reminders.map((reminder) => /* @__PURE__ */ React18__default.createElement(
3532
3683
  "div",
3533
3684
  {
3534
3685
  key: reminder.id,
3535
3686
  className: "flex items-center gap-2 px-3 py-1.5 rounded-full bg-amber-500/10 border border-amber-500/20"
3536
3687
  },
3537
- /* @__PURE__ */ React17__default.createElement(BellRing, { className: "w-3.5 h-3.5 text-amber-500" }),
3538
- /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-medium text-amber-600 dark:text-amber-400" }, reminder.label),
3539
- /* @__PURE__ */ React17__default.createElement(
3688
+ /* @__PURE__ */ React18__default.createElement(BellRing, { className: "w-3.5 h-3.5 text-amber-500" }),
3689
+ /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-medium text-amber-600 dark:text-amber-400" }, reminder.label),
3690
+ /* @__PURE__ */ React18__default.createElement(
3540
3691
  "button",
3541
3692
  {
3542
3693
  type: "button",
3543
3694
  onClick: () => removeReminder(reminder.id),
3544
3695
  className: "p-0.5 hover:bg-amber-500/20 rounded-full transition-colors"
3545
3696
  },
3546
- /* @__PURE__ */ React17__default.createElement(X, { className: "w-3 h-3 text-amber-500" })
3697
+ /* @__PURE__ */ React18__default.createElement(X, { className: "w-3 h-3 text-amber-500" })
3547
3698
  )
3548
- )))), /* @__PURE__ */ React17__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(Users, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.guests)), /* @__PURE__ */ React17__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React17__default.createElement(
3699
+ )))), /* @__PURE__ */ React18__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(Users, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.guests)), /* @__PURE__ */ React18__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React18__default.createElement(
3549
3700
  "button",
3550
3701
  {
3551
3702
  type: "button",
3552
3703
  onClick: () => setIsGuestsDropdownOpen(!isGuestsDropdownOpen),
3553
3704
  className: "w-full flex items-center justify-between px-4 py-3 bg-muted/20 border border-border/30 rounded-xl text-sm text-left hover:bg-muted/30 transition-all"
3554
3705
  },
3555
- /* @__PURE__ */ React17__default.createElement("span", { className: selectedGuests.length > 0 ? "text-foreground font-medium" : "text-muted-foreground" }, selectedGuests.length > 0 ? `${selectedGuests.length} ${selectedGuests.length > 1 ? translations.guestsAdded : translations.guestAdded}` : translations.addGuests),
3556
- /* @__PURE__ */ React17__default.createElement(ChevronDown, { className: cn("w-4 h-4 text-muted-foreground transition-transform", isGuestsDropdownOpen && "rotate-180") })
3557
- ), isGuestsDropdownOpen && /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setIsGuestsDropdownOpen(false) }), /* @__PURE__ */ React17__default.createElement("div", { className: "absolute z-50 w-full mt-2 bg-background border border-border rounded-xl shadow-xl max-h-48 overflow-y-auto" }, fakeGuests.map((email) => /* @__PURE__ */ React17__default.createElement(
3706
+ /* @__PURE__ */ React18__default.createElement("span", { className: selectedGuests.length > 0 ? "text-foreground font-medium" : "text-muted-foreground" }, selectedGuests.length > 0 ? `${selectedGuests.length} ${selectedGuests.length > 1 ? translations.guestsAdded : translations.guestAdded}` : translations.addGuests),
3707
+ /* @__PURE__ */ React18__default.createElement(ChevronDown, { className: cn("w-4 h-4 text-muted-foreground transition-transform", isGuestsDropdownOpen && "rotate-180") })
3708
+ ), isGuestsDropdownOpen && /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setIsGuestsDropdownOpen(false) }), /* @__PURE__ */ React18__default.createElement("div", { className: "absolute z-50 w-full mt-2 bg-background border border-border rounded-xl shadow-xl max-h-48 overflow-y-auto" }, fakeGuests.map((email) => /* @__PURE__ */ React18__default.createElement(
3558
3709
  "div",
3559
3710
  {
3560
3711
  key: email,
3561
3712
  className: "px-4 py-3 hover:bg-accent cursor-pointer flex items-center gap-3 transition-colors",
3562
3713
  onClick: () => toggleGuest(email)
3563
3714
  },
3564
- /* @__PURE__ */ React17__default.createElement("div", { className: cn(
3715
+ /* @__PURE__ */ React18__default.createElement("div", { className: cn(
3565
3716
  "w-5 h-5 rounded-md border-2 flex items-center justify-center transition-all",
3566
3717
  selectedGuests.includes(email) ? "bg-primary border-primary" : "border-border"
3567
- ) }, selectedGuests.includes(email) && /* @__PURE__ */ React17__default.createElement(Check, { className: "w-3 h-3 text-primary-foreground" })),
3568
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(
3718
+ ) }, selectedGuests.includes(email) && /* @__PURE__ */ React18__default.createElement(Check, { className: "w-3 h-3 text-primary-foreground" })),
3719
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(
3569
3720
  "div",
3570
3721
  {
3571
3722
  className: "w-7 h-7 rounded-full flex items-center justify-center text-xs font-semibold text-white",
3572
3723
  style: { backgroundColor: `hsl(${fakeGuests.indexOf(email) * 60}, 70%, 50%)` }
3573
3724
  },
3574
3725
  email[0].toUpperCase()
3575
- ), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm" }, email))
3576
- ))))), selectedGuests.length > 0 && /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-wrap gap-2 mt-2" }, selectedGuests.map((email) => /* @__PURE__ */ React17__default.createElement(
3726
+ ), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm" }, email))
3727
+ ))))), selectedGuests.length > 0 && /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-wrap gap-2 mt-2" }, selectedGuests.map((email) => /* @__PURE__ */ React18__default.createElement(
3577
3728
  "div",
3578
3729
  {
3579
3730
  key: email,
3580
3731
  className: "flex items-center gap-2 pl-1 pr-2 py-1 bg-muted/30 border border-border/30 rounded-full"
3581
3732
  },
3582
- /* @__PURE__ */ React17__default.createElement(
3733
+ /* @__PURE__ */ React18__default.createElement(
3583
3734
  "div",
3584
3735
  {
3585
3736
  className: "w-6 h-6 rounded-full flex items-center justify-center text-xs font-semibold text-white",
@@ -3587,17 +3738,17 @@ var EventModal = ({
3587
3738
  },
3588
3739
  email[0].toUpperCase()
3589
3740
  ),
3590
- /* @__PURE__ */ React17__default.createElement("span", { className: "text-xs font-medium text-foreground" }, email.split("@")[0]),
3591
- /* @__PURE__ */ React17__default.createElement(
3741
+ /* @__PURE__ */ React18__default.createElement("span", { className: "text-xs font-medium text-foreground" }, email.split("@")[0]),
3742
+ /* @__PURE__ */ React18__default.createElement(
3592
3743
  "button",
3593
3744
  {
3594
3745
  type: "button",
3595
3746
  onClick: () => toggleGuest(email),
3596
3747
  className: "p-0.5 hover:bg-destructive/10 rounded-full transition-colors"
3597
3748
  },
3598
- /* @__PURE__ */ React17__default.createElement(X, { className: "w-3 h-3 text-muted-foreground" })
3749
+ /* @__PURE__ */ React18__default.createElement(X, { className: "w-3 h-3 text-muted-foreground" })
3599
3750
  )
3600
- )))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-3 p-3 rounded-xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React17__default.createElement(MapPin, { className: "w-5 h-5 text-muted-foreground shrink-0" }), /* @__PURE__ */ React17__default.createElement(
3751
+ )))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-3 p-3 rounded-xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React18__default.createElement(MapPin, { className: "w-5 h-5 text-muted-foreground shrink-0" }), /* @__PURE__ */ React18__default.createElement(
3601
3752
  "input",
3602
3753
  {
3603
3754
  type: "text",
@@ -3606,7 +3757,7 @@ var EventModal = ({
3606
3757
  value: formData.location || "",
3607
3758
  onChange: (e) => setFormData({ ...formData, location: e.target.value })
3608
3759
  }
3609
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(AlignLeft, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.notes)), /* @__PURE__ */ React17__default.createElement(
3760
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(AlignLeft, { className: "w-4 h-4 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium text-foreground" }, translations.notes)), /* @__PURE__ */ React18__default.createElement(
3610
3761
  "textarea",
3611
3762
  {
3612
3763
  className: "w-full bg-muted/20 border border-border/30 rounded-xl px-4 py-3 text-sm min-h-[100px] resize-none text-foreground placeholder-muted-foreground focus:border-primary focus:ring-2 focus:ring-primary/20 transition-all",
@@ -3614,7 +3765,7 @@ var EventModal = ({
3614
3765
  value: formData.description || "",
3615
3766
  onChange: (e) => setFormData({ ...formData, description: e.target.value })
3616
3767
  }
3617
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-3 p-3 rounded-xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React17__default.createElement(Repeat, { className: "w-5 h-5 text-muted-foreground shrink-0" }), /* @__PURE__ */ React17__default.createElement(
3768
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-3 p-3 rounded-xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React18__default.createElement(Repeat, { className: "w-5 h-5 text-muted-foreground shrink-0" }), /* @__PURE__ */ React18__default.createElement(
3618
3769
  "select",
3619
3770
  {
3620
3771
  className: "flex-1 bg-transparent text-sm text-foreground focus:outline-none cursor-pointer",
@@ -3633,28 +3784,28 @@ var EventModal = ({
3633
3784
  }
3634
3785
  }
3635
3786
  },
3636
- /* @__PURE__ */ React17__default.createElement("option", { value: "" }, translations.doesNotRepeat),
3637
- /* @__PURE__ */ React17__default.createElement("option", { value: "DAILY" }, translations.daily),
3638
- /* @__PURE__ */ React17__default.createElement("option", { value: "WEEKLY" }, translations.weekly),
3639
- /* @__PURE__ */ React17__default.createElement("option", { value: "MONTHLY" }, translations.monthly),
3640
- /* @__PURE__ */ React17__default.createElement("option", { value: "YEARLY" }, translations.yearly)
3641
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center justify-between p-3 rounded-xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(Tag, { className: "w-5 h-5 text-muted-foreground" }), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm text-foreground" }, translations.calendar)), /* @__PURE__ */ React17__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React17__default.createElement(
3787
+ /* @__PURE__ */ React18__default.createElement("option", { value: "" }, translations.doesNotRepeat),
3788
+ /* @__PURE__ */ React18__default.createElement("option", { value: "DAILY" }, translations.daily),
3789
+ /* @__PURE__ */ React18__default.createElement("option", { value: "WEEKLY" }, translations.weekly),
3790
+ /* @__PURE__ */ React18__default.createElement("option", { value: "MONTHLY" }, translations.monthly),
3791
+ /* @__PURE__ */ React18__default.createElement("option", { value: "YEARLY" }, translations.yearly)
3792
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center justify-between p-3 rounded-xl bg-muted/20 border border-border/30" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(Tag, { className: "w-5 h-5 text-muted-foreground" }), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm text-foreground" }, translations.calendar)), /* @__PURE__ */ React18__default.createElement("div", { className: "relative" }, /* @__PURE__ */ React18__default.createElement(
3642
3793
  "button",
3643
3794
  {
3644
3795
  type: "button",
3645
3796
  onClick: () => setIsCalendarDropdownOpen(!isCalendarDropdownOpen),
3646
3797
  className: "flex items-center gap-2 px-3 py-1.5 bg-background border border-border/50 rounded-lg text-sm hover:bg-accent/50 transition-all"
3647
3798
  },
3648
- /* @__PURE__ */ React17__default.createElement(
3799
+ /* @__PURE__ */ React18__default.createElement(
3649
3800
  "div",
3650
3801
  {
3651
3802
  className: "w-3 h-3 rounded-full",
3652
3803
  style: { backgroundColor: calendars?.find((c) => c.id === formData.calendarId)?.color || "#3b82f6" }
3653
3804
  }
3654
3805
  ),
3655
- /* @__PURE__ */ React17__default.createElement("span", { className: "font-medium" }, calendars?.find((c) => c.id === formData.calendarId)?.label || "Select"),
3656
- /* @__PURE__ */ React17__default.createElement(ChevronDown, { className: "w-3.5 h-3.5 text-muted-foreground" })
3657
- ), isCalendarDropdownOpen && /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setIsCalendarDropdownOpen(false) }), /* @__PURE__ */ React17__default.createElement("div", { className: "absolute right-0 bottom-full mb-2 w-48 bg-background border border-border rounded-xl shadow-xl z-50 py-1" }, calendars?.map((cal) => /* @__PURE__ */ React17__default.createElement(
3806
+ /* @__PURE__ */ React18__default.createElement("span", { className: "font-medium" }, calendars?.find((c) => c.id === formData.calendarId)?.label || "Select"),
3807
+ /* @__PURE__ */ React18__default.createElement(ChevronDown, { className: "w-3.5 h-3.5 text-muted-foreground" })
3808
+ ), isCalendarDropdownOpen && /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement("div", { className: "fixed inset-0 z-40", onClick: () => setIsCalendarDropdownOpen(false) }), /* @__PURE__ */ React18__default.createElement("div", { className: "absolute right-0 bottom-full mb-2 w-48 bg-background border border-border rounded-xl shadow-xl z-50 py-1" }, calendars?.map((cal) => /* @__PURE__ */ React18__default.createElement(
3658
3809
  "button",
3659
3810
  {
3660
3811
  key: cal.id,
@@ -3669,19 +3820,19 @@ var EventModal = ({
3669
3820
  setIsCalendarDropdownOpen(false);
3670
3821
  }
3671
3822
  },
3672
- /* @__PURE__ */ React17__default.createElement("div", { className: "w-3 h-3 rounded-full", style: { backgroundColor: cal.color } }),
3673
- /* @__PURE__ */ React17__default.createElement("span", { className: "flex-1 text-sm" }, cal.label),
3674
- formData.calendarId === cal.id && /* @__PURE__ */ React17__default.createElement(Check, { className: "w-4 h-4 text-primary" })
3675
- )))))))), /* @__PURE__ */ React17__default.createElement("div", { className: "px-5 py-4 border-t border-border/50 flex items-center justify-between bg-muted/10 shrink-0" }, mode === "edit" && /* @__PURE__ */ React17__default.createElement(
3823
+ /* @__PURE__ */ React18__default.createElement("div", { className: "w-3 h-3 rounded-full", style: { backgroundColor: cal.color } }),
3824
+ /* @__PURE__ */ React18__default.createElement("span", { className: "flex-1 text-sm" }, cal.label),
3825
+ formData.calendarId === cal.id && /* @__PURE__ */ React18__default.createElement(Check, { className: "w-4 h-4 text-primary" })
3826
+ )))))))), /* @__PURE__ */ React18__default.createElement("div", { className: "px-5 py-4 border-t border-border/50 flex items-center justify-between bg-muted/10 shrink-0" }, mode === "edit" && /* @__PURE__ */ React18__default.createElement(
3676
3827
  "button",
3677
3828
  {
3678
3829
  type: "button",
3679
3830
  onClick: handleDelete,
3680
3831
  className: "flex items-center gap-2 px-4 py-2 text-destructive hover:bg-destructive/10 rounded-xl transition-all text-sm font-medium"
3681
3832
  },
3682
- /* @__PURE__ */ React17__default.createElement(Trash2, { className: "w-4 h-4" }),
3833
+ /* @__PURE__ */ React18__default.createElement(Trash2, { className: "w-4 h-4" }),
3683
3834
  translations.delete
3684
- ), mode === "create" && /* @__PURE__ */ React17__default.createElement("div", null), /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(
3835
+ ), mode === "create" && /* @__PURE__ */ React18__default.createElement("div", null), /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(
3685
3836
  "button",
3686
3837
  {
3687
3838
  type: "button",
@@ -3689,7 +3840,7 @@ var EventModal = ({
3689
3840
  className: "px-4 py-2.5 text-muted-foreground hover:text-foreground font-medium text-sm rounded-xl transition-all hover:bg-accent"
3690
3841
  },
3691
3842
  translations.cancel
3692
- ), /* @__PURE__ */ React17__default.createElement(
3843
+ ), /* @__PURE__ */ React18__default.createElement(
3693
3844
  "button",
3694
3845
  {
3695
3846
  type: "submit",
@@ -3697,7 +3848,7 @@ var EventModal = ({
3697
3848
  },
3698
3849
  mode === "edit" ? translations.saveChanges : translations.createEvent
3699
3850
  ))));
3700
- return /* @__PURE__ */ React17__default.createElement(Modal, { isOpen, onClose, hideHeader: true, className: "p-0 overflow-hidden max-w-lg rounded-2xl shadow-2xl" }, /* @__PURE__ */ React17__default.createElement(AnimatePresence, { mode: "wait" }, mode === "view" && event ? /* @__PURE__ */ React17__default.createElement(
3851
+ return /* @__PURE__ */ React18__default.createElement(Modal, { isOpen, onClose, hideHeader: true, className: "p-0 overflow-hidden max-w-lg rounded-2xl shadow-2xl" }, /* @__PURE__ */ React18__default.createElement(AnimatePresence, { mode: "wait" }, mode === "view" && event ? /* @__PURE__ */ React18__default.createElement(
3701
3852
  motion.div,
3702
3853
  {
3703
3854
  key: "view",
@@ -3707,7 +3858,7 @@ var EventModal = ({
3707
3858
  transition: { duration: 0.15 }
3708
3859
  },
3709
3860
  renderViewMode()
3710
- ) : /* @__PURE__ */ React17__default.createElement(
3861
+ ) : /* @__PURE__ */ React18__default.createElement(
3711
3862
  motion.div,
3712
3863
  {
3713
3864
  key: "edit",
@@ -3719,9 +3870,9 @@ var EventModal = ({
3719
3870
  renderEditMode()
3720
3871
  )));
3721
3872
  };
3722
- var Skeleton = ({ className, style }) => /* @__PURE__ */ React17__default.createElement("div", { className: cn("animate-pulse bg-muted/40 rounded", className), style });
3723
- var MonthViewSkeleton = () => /* @__PURE__ */ React17__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden" }, /* @__PURE__ */ React17__default.createElement("div", { className: "grid grid-cols-7 border-b border-border/50 bg-muted/10" }, Array.from({ length: 7 }).map((_, i) => /* @__PURE__ */ React17__default.createElement("div", { key: i, className: "py-3 px-2 text-center border-r border-border/30 last:border-r-0" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-4 w-8 mx-auto" })))), /* @__PURE__ */ React17__default.createElement("div", { className: "grid grid-cols-7 flex-1" }, Array.from({ length: 35 }).map((_, i) => /* @__PURE__ */ React17__default.createElement("div", { key: i, className: "min-h-[120px] border-r border-b border-border/30 p-2" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-4 w-6 mb-2" }), /* @__PURE__ */ React17__default.createElement("div", { className: "space-y-1" }, Math.random() > 0.5 && /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-5 w-full rounded-md" }), Math.random() > 0.7 && /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-5 w-3/4 rounded-md" }))))));
3724
- var WeekViewSkeleton = () => /* @__PURE__ */ React17__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex border-b border-border/50 bg-muted/10" }, /* @__PURE__ */ React17__default.createElement("div", { className: "w-16 p-3 border-r border-border/30" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-8 w-10 mx-auto" })), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 grid grid-cols-7" }, Array.from({ length: 7 }).map((_, i) => /* @__PURE__ */ React17__default.createElement("div", { key: i, className: "py-3 px-2 text-center border-r border-border/30 last:border-r-0" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-3 w-8 mx-auto mb-1" }), /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-8 w-8 mx-auto rounded-xl" }))))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-1", style: { height: "600px" } }, /* @__PURE__ */ React17__default.createElement("div", { className: "w-16 border-r border-border/30" }, Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ React17__default.createElement("div", { key: i, className: "h-[60px] relative" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-4 w-10 absolute right-2 -translate-y-1/2" })))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 grid grid-cols-7 relative" }, Array.from({ length: 7 }).map((_, colIdx) => /* @__PURE__ */ React17__default.createElement("div", { key: colIdx, className: "relative border-r border-border/30 last:border-r-0" }, Array.from({ length: 10 }).map((_2, rowIdx) => /* @__PURE__ */ React17__default.createElement("div", { key: rowIdx, className: "h-[60px] border-b border-dashed border-border/20" })), Math.random() > 0.3 && /* @__PURE__ */ React17__default.createElement(
3873
+ var Skeleton = ({ className, style }) => /* @__PURE__ */ React18__default.createElement("div", { className: cn("animate-pulse bg-muted/40 rounded", className), style });
3874
+ var MonthViewSkeleton = () => /* @__PURE__ */ React18__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden" }, /* @__PURE__ */ React18__default.createElement("div", { className: "grid grid-cols-7 border-b border-border/50 bg-muted/10" }, Array.from({ length: 7 }).map((_, i) => /* @__PURE__ */ React18__default.createElement("div", { key: i, className: "py-3 px-2 text-center border-r border-border/30 last:border-r-0" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-4 w-8 mx-auto" })))), /* @__PURE__ */ React18__default.createElement("div", { className: "grid grid-cols-7 flex-1" }, Array.from({ length: 35 }).map((_, i) => /* @__PURE__ */ React18__default.createElement("div", { key: i, className: "min-h-[120px] border-r border-b border-border/30 p-2" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-4 w-6 mb-2" }), /* @__PURE__ */ React18__default.createElement("div", { className: "space-y-1" }, Math.random() > 0.5 && /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-5 w-full rounded-md" }), Math.random() > 0.7 && /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-5 w-3/4 rounded-md" }))))));
3875
+ var WeekViewSkeleton = () => /* @__PURE__ */ React18__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex border-b border-border/50 bg-muted/10" }, /* @__PURE__ */ React18__default.createElement("div", { className: "w-16 p-3 border-r border-border/30" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-8 w-10 mx-auto" })), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 grid grid-cols-7" }, Array.from({ length: 7 }).map((_, i) => /* @__PURE__ */ React18__default.createElement("div", { key: i, className: "py-3 px-2 text-center border-r border-border/30 last:border-r-0" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-3 w-8 mx-auto mb-1" }), /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-8 w-8 mx-auto rounded-xl" }))))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-1", style: { height: "600px" } }, /* @__PURE__ */ React18__default.createElement("div", { className: "w-16 border-r border-border/30" }, Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ React18__default.createElement("div", { key: i, className: "h-[60px] relative" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-4 w-10 absolute right-2 -translate-y-1/2" })))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 grid grid-cols-7 relative" }, Array.from({ length: 7 }).map((_, colIdx) => /* @__PURE__ */ React18__default.createElement("div", { key: colIdx, className: "relative border-r border-border/30 last:border-r-0" }, Array.from({ length: 10 }).map((_2, rowIdx) => /* @__PURE__ */ React18__default.createElement("div", { key: rowIdx, className: "h-[60px] border-b border-dashed border-border/20" })), Math.random() > 0.3 && /* @__PURE__ */ React18__default.createElement(
3725
3876
  Skeleton,
3726
3877
  {
3727
3878
  className: "absolute rounded-md",
@@ -3733,20 +3884,20 @@ var WeekViewSkeleton = () => /* @__PURE__ */ React17__default.createElement("div
3733
3884
  }
3734
3885
  }
3735
3886
  ))))));
3736
- var DayViewSkeleton = () => /* @__PURE__ */ React17__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden" }, /* @__PURE__ */ React17__default.createElement("div", { className: "px-6 py-4 border-b border-border/50 bg-muted/10 text-center" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-7 w-64 mx-auto" })), /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-1", style: { height: "600px" } }, /* @__PURE__ */ React17__default.createElement("div", { className: "w-20 border-r border-border/30 bg-muted/5" }, Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ React17__default.createElement("div", { key: i, className: "h-[80px] relative" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-4 w-12 absolute left-1/2 -translate-x-1/2 -translate-y-1/2" })))), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 relative" }, Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ React17__default.createElement("div", { key: i, className: "h-[80px] border-b border-dashed border-border/20" })), /* @__PURE__ */ React17__default.createElement(
3887
+ var DayViewSkeleton = () => /* @__PURE__ */ React18__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden" }, /* @__PURE__ */ React18__default.createElement("div", { className: "px-6 py-4 border-b border-border/50 bg-muted/10 text-center" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-7 w-64 mx-auto" })), /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-1", style: { height: "600px" } }, /* @__PURE__ */ React18__default.createElement("div", { className: "w-20 border-r border-border/30 bg-muted/5" }, Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ React18__default.createElement("div", { key: i, className: "h-[80px] relative" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-4 w-12 absolute left-1/2 -translate-x-1/2 -translate-y-1/2" })))), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 relative" }, Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ React18__default.createElement("div", { key: i, className: "h-[80px] border-b border-dashed border-border/20" })), /* @__PURE__ */ React18__default.createElement(
3737
3888
  Skeleton,
3738
3889
  {
3739
3890
  className: "absolute rounded-lg left-4 right-4",
3740
3891
  style: { top: "160px", height: "120px" }
3741
3892
  }
3742
- ), /* @__PURE__ */ React17__default.createElement(
3893
+ ), /* @__PURE__ */ React18__default.createElement(
3743
3894
  Skeleton,
3744
3895
  {
3745
3896
  className: "absolute rounded-lg left-4 right-4",
3746
3897
  style: { top: "400px", height: "80px" }
3747
3898
  }
3748
3899
  ))));
3749
- var AgendaViewSkeleton = () => /* @__PURE__ */ React17__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden p-6" }, /* @__PURE__ */ React17__default.createElement("div", { className: "space-y-6" }, Array.from({ length: 4 }).map((_, dayIdx) => /* @__PURE__ */ React17__default.createElement("div", { key: dayIdx }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-5 w-40 mb-4" }), /* @__PURE__ */ React17__default.createElement("div", { className: "space-y-3" }, Array.from({ length: 2 + Math.floor(Math.random() * 3) }).map((_2, eventIdx) => /* @__PURE__ */ React17__default.createElement("div", { key: eventIdx, className: "flex items-center gap-4 p-3 rounded-xl bg-muted/10" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-10 w-10 rounded-lg" }), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 space-y-2" }, /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-4 w-3/4" }), /* @__PURE__ */ React17__default.createElement(Skeleton, { className: "h-3 w-1/2" })))))))));
3900
+ var AgendaViewSkeleton = () => /* @__PURE__ */ React18__default.createElement("div", { className: "h-full bg-background border border-border/50 rounded-2xl overflow-hidden p-6" }, /* @__PURE__ */ React18__default.createElement("div", { className: "space-y-6" }, Array.from({ length: 4 }).map((_, dayIdx) => /* @__PURE__ */ React18__default.createElement("div", { key: dayIdx }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-5 w-40 mb-4" }), /* @__PURE__ */ React18__default.createElement("div", { className: "space-y-3" }, Array.from({ length: 2 + Math.floor(Math.random() * 3) }).map((_2, eventIdx) => /* @__PURE__ */ React18__default.createElement("div", { key: eventIdx, className: "flex items-center gap-4 p-3 rounded-xl bg-muted/10" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-10 w-10 rounded-lg" }), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 space-y-2" }, /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-4 w-3/4" }), /* @__PURE__ */ React18__default.createElement(Skeleton, { className: "h-3 w-1/2" })))))))));
3750
3901
  var EventContextMenu = ({
3751
3902
  event,
3752
3903
  position,
@@ -3787,7 +3938,7 @@ var EventContextMenu = ({
3787
3938
  ...onEdit ? [{
3788
3939
  id: "edit",
3789
3940
  label: translations?.edit || "Edit",
3790
- icon: /* @__PURE__ */ React17__default.createElement(Edit3, { className: "w-4 h-4" }),
3941
+ icon: /* @__PURE__ */ React18__default.createElement(Edit3, { className: "w-4 h-4" }),
3791
3942
  onClick: () => {
3792
3943
  onEdit(event);
3793
3944
  onClose();
@@ -3796,7 +3947,7 @@ var EventContextMenu = ({
3796
3947
  ...onDuplicate ? [{
3797
3948
  id: "duplicate",
3798
3949
  label: translations?.duplicate || "Duplicate",
3799
- icon: /* @__PURE__ */ React17__default.createElement(Copy, { className: "w-4 h-4" }),
3950
+ icon: /* @__PURE__ */ React18__default.createElement(Copy, { className: "w-4 h-4" }),
3800
3951
  onClick: () => {
3801
3952
  onDuplicate(event);
3802
3953
  onClose();
@@ -3806,7 +3957,7 @@ var EventContextMenu = ({
3806
3957
  ...onDelete ? [{
3807
3958
  id: "delete",
3808
3959
  label: translations?.delete || "Delete",
3809
- icon: /* @__PURE__ */ React17__default.createElement(Trash2, { className: "w-4 h-4" }),
3960
+ icon: /* @__PURE__ */ React18__default.createElement(Trash2, { className: "w-4 h-4" }),
3810
3961
  onClick: () => {
3811
3962
  onDelete(event.id);
3812
3963
  onClose();
@@ -3818,7 +3969,7 @@ var EventContextMenu = ({
3818
3969
  x: Math.min(position.x, window.innerWidth - 200),
3819
3970
  y: Math.min(position.y, window.innerHeight - (actions.length * 44 + 80))
3820
3971
  };
3821
- return /* @__PURE__ */ React17__default.createElement(AnimatePresence, null, /* @__PURE__ */ React17__default.createElement(
3972
+ return /* @__PURE__ */ React18__default.createElement(AnimatePresence, null, /* @__PURE__ */ React18__default.createElement(
3822
3973
  motion.div,
3823
3974
  {
3824
3975
  ref: menuRef,
@@ -3832,14 +3983,14 @@ var EventContextMenu = ({
3832
3983
  top: adjustedPosition.y
3833
3984
  }
3834
3985
  },
3835
- /* @__PURE__ */ React17__default.createElement("div", { className: "px-3 py-2 border-b-[0.5px] border-border bg-muted/30" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React17__default.createElement(
3986
+ /* @__PURE__ */ React18__default.createElement("div", { className: "px-3 py-2 border-b-[0.5px] border-border bg-muted/30" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React18__default.createElement(
3836
3987
  "div",
3837
3988
  {
3838
3989
  className: "w-2.5 h-2.5 rounded-full shrink-0",
3839
3990
  style: { backgroundColor: event.color || "var(--primary)" }
3840
3991
  }
3841
- ), /* @__PURE__ */ React17__default.createElement("span", { className: "text-sm font-medium truncate text-foreground" }, event.title))),
3842
- /* @__PURE__ */ React17__default.createElement("div", { className: "py-1" }, actions.map((action, index) => /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, { key: action.id }, index > 0 && action.variant === "danger" && /* @__PURE__ */ React17__default.createElement("div", { className: "h-px bg-border my-1" }), /* @__PURE__ */ React17__default.createElement(
3992
+ ), /* @__PURE__ */ React18__default.createElement("span", { className: "text-sm font-medium truncate text-foreground" }, event.title))),
3993
+ /* @__PURE__ */ React18__default.createElement("div", { className: "py-1" }, actions.map((action, index) => /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, { key: action.id }, index > 0 && action.variant === "danger" && /* @__PURE__ */ React18__default.createElement("div", { className: "h-px bg-border my-1" }), /* @__PURE__ */ React18__default.createElement(
3843
3994
  "button",
3844
3995
  {
3845
3996
  onClick: action.onClick,
@@ -3851,7 +4002,7 @@ var EventContextMenu = ({
3851
4002
  )
3852
4003
  },
3853
4004
  action.icon,
3854
- /* @__PURE__ */ React17__default.createElement("span", null, action.label)
4005
+ /* @__PURE__ */ React18__default.createElement("span", null, action.label)
3855
4006
  ))))
3856
4007
  ));
3857
4008
  };
@@ -4306,6 +4457,7 @@ var Scheduler = ({
4306
4457
  translations,
4307
4458
  hideViewSwitcher,
4308
4459
  hideLanguageSwitcher,
4460
+ hourCount,
4309
4461
  hideFab = false,
4310
4462
  compactShortEvents = true,
4311
4463
  initialScrollHour = 8,
@@ -4500,7 +4652,7 @@ var Scheduler = ({
4500
4652
  (e) => e.start >= rangeStart && e.start <= rangeEnd
4501
4653
  ).length;
4502
4654
  }, [filteredEvents, view, currentDate]);
4503
- return /* @__PURE__ */ React17__default.createElement(React17__default.Fragment, null, /* @__PURE__ */ React17__default.createElement(
4655
+ return /* @__PURE__ */ React18__default.createElement(React18__default.Fragment, null, /* @__PURE__ */ React18__default.createElement(
4504
4656
  DndContext,
4505
4657
  {
4506
4658
  id,
@@ -4509,7 +4661,7 @@ var Scheduler = ({
4509
4661
  onDragEnd: onDragEndWrapper,
4510
4662
  modifiers
4511
4663
  },
4512
- /* @__PURE__ */ React17__default.createElement(
4664
+ /* @__PURE__ */ React18__default.createElement(
4513
4665
  "div",
4514
4666
  {
4515
4667
  ref: schedulerRef,
@@ -4531,7 +4683,7 @@ var Scheduler = ({
4531
4683
  isDarkMode,
4532
4684
  onThemeToggle
4533
4685
  })
4534
- ) : /* @__PURE__ */ React17__default.createElement(
4686
+ ) : /* @__PURE__ */ React18__default.createElement(
4535
4687
  CalendarHeader,
4536
4688
  {
4537
4689
  currentDate,
@@ -4556,10 +4708,11 @@ var Scheduler = ({
4556
4708
  setActiveCustomMenu(null);
4557
4709
  },
4558
4710
  eventCount: viewEventCount,
4711
+ hourCount,
4559
4712
  hideLanguageSwitcher
4560
4713
  }
4561
4714
  ),
4562
- /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-1 overflow-hidden" }, /* @__PURE__ */ React17__default.createElement(
4715
+ /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-1 overflow-hidden" }, /* @__PURE__ */ React18__default.createElement(
4563
4716
  motion.div,
4564
4717
  {
4565
4718
  className: "hidden md:block overflow-hidden shrink-0",
@@ -4573,7 +4726,7 @@ var Scheduler = ({
4573
4726
  ease: [0.4, 0, 0.2, 1]
4574
4727
  }
4575
4728
  },
4576
- /* @__PURE__ */ React17__default.createElement(
4729
+ /* @__PURE__ */ React18__default.createElement(
4577
4730
  Sidebar,
4578
4731
  {
4579
4732
  currentDate,
@@ -4605,7 +4758,7 @@ var Scheduler = ({
4605
4758
  }
4606
4759
  }
4607
4760
  )
4608
- ), /* @__PURE__ */ React17__default.createElement(AnimatePresence, null, isSidebarOpen && /* @__PURE__ */ React17__default.createElement(
4761
+ ), /* @__PURE__ */ React18__default.createElement(AnimatePresence, null, isSidebarOpen && /* @__PURE__ */ React18__default.createElement(
4609
4762
  motion.div,
4610
4763
  {
4611
4764
  key: "mobile-sidebar-overlay",
@@ -4615,7 +4768,7 @@ var Scheduler = ({
4615
4768
  exit: { opacity: 0 },
4616
4769
  transition: { duration: 0.2 }
4617
4770
  },
4618
- /* @__PURE__ */ React17__default.createElement(
4771
+ /* @__PURE__ */ React18__default.createElement(
4619
4772
  motion.div,
4620
4773
  {
4621
4774
  className: "w-[280px] h-full bg-background shadow-2xl overflow-hidden",
@@ -4624,7 +4777,7 @@ var Scheduler = ({
4624
4777
  exit: { x: -280 },
4625
4778
  transition: { duration: 0.25, ease: [0.4, 0, 0.2, 1] }
4626
4779
  },
4627
- /* @__PURE__ */ React17__default.createElement(
4780
+ /* @__PURE__ */ React18__default.createElement(
4628
4781
  Sidebar,
4629
4782
  {
4630
4783
  currentDate,
@@ -4662,16 +4815,16 @@ var Scheduler = ({
4662
4815
  }
4663
4816
  )
4664
4817
  ),
4665
- /* @__PURE__ */ React17__default.createElement(
4818
+ /* @__PURE__ */ React18__default.createElement(
4666
4819
  motion.div,
4667
4820
  {
4668
4821
  className: "flex-1 bg-black/50 backdrop-blur-sm",
4669
4822
  onClick: () => setIsSidebarOpen(false)
4670
4823
  }
4671
4824
  )
4672
- )), /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 flex flex-col overflow-hidden relative min-h-0" }, activeCustomMenu !== null && sidebarMenus && /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 overflow-y-auto p-4 md:p-6" }, sidebarMenus.find((m) => m.id === activeCustomMenu)?.component), activeCustomViewId !== null && activeCustomMenu === null && customViews && /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 overflow-y-auto p-4 md:p-6" }, customViews.find((v) => v.id === activeCustomViewId)?.component), activeCustomMenu === null && activeCustomViewId === null && (isLoading ? /* @__PURE__ */ React17__default.createElement("div", { className: "flex-1 overflow-auto p-0 md:p-4 min-h-0" }, /* @__PURE__ */ React17__default.createElement("div", { className: "h-full min-w-full" }, view === "month" && /* @__PURE__ */ React17__default.createElement(MonthViewSkeleton, null), view === "week" && /* @__PURE__ */ React17__default.createElement(WeekViewSkeleton, null), view === "day" && /* @__PURE__ */ React17__default.createElement(DayViewSkeleton, null), view === "agenda" && /* @__PURE__ */ React17__default.createElement(AgendaViewSkeleton, null), view === "resource" && /* @__PURE__ */ React17__default.createElement(WeekViewSkeleton, null))) : (
4825
+ )), /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 flex flex-col overflow-hidden relative min-h-0" }, activeCustomMenu !== null && sidebarMenus && /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 overflow-y-auto p-4 md:p-6" }, sidebarMenus.find((m) => m.id === activeCustomMenu)?.component), activeCustomViewId !== null && activeCustomMenu === null && customViews && /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 overflow-y-auto p-4 md:p-6" }, customViews.find((v) => v.id === activeCustomViewId)?.component), activeCustomMenu === null && activeCustomViewId === null && (isLoading ? /* @__PURE__ */ React18__default.createElement("div", { className: "flex-1 overflow-auto p-0 md:p-4 min-h-0" }, /* @__PURE__ */ React18__default.createElement("div", { className: "h-full min-w-full" }, view === "month" && /* @__PURE__ */ React18__default.createElement(MonthViewSkeleton, null), view === "week" && /* @__PURE__ */ React18__default.createElement(WeekViewSkeleton, null), view === "day" && /* @__PURE__ */ React18__default.createElement(DayViewSkeleton, null), view === "agenda" && /* @__PURE__ */ React18__default.createElement(AgendaViewSkeleton, null), view === "resource" && /* @__PURE__ */ React18__default.createElement(WeekViewSkeleton, null))) : (
4673
4826
  /* overflow-hidden here: each view owns its own scroll container */
4674
- /* @__PURE__ */ React17__default.createElement("div", { ref: swipeRef, className: "flex-1 overflow-hidden p-0 md:p-4 touch-pan-y min-h-0" }, /* @__PURE__ */ React17__default.createElement("div", { className: "flex flex-col h-full min-w-full min-h-0" }, /* @__PURE__ */ React17__default.createElement(AnimatePresence, { mode: "wait", initial: false }, /* @__PURE__ */ React17__default.createElement(
4827
+ /* @__PURE__ */ React18__default.createElement("div", { ref: swipeRef, className: "flex-1 overflow-hidden p-0 md:p-4 touch-pan-y min-h-0" }, /* @__PURE__ */ React18__default.createElement("div", { className: "flex flex-col h-full min-w-full min-h-0" }, /* @__PURE__ */ React18__default.createElement(AnimatePresence, { mode: "wait", initial: false }, /* @__PURE__ */ React18__default.createElement(
4675
4828
  motion.div,
4676
4829
  {
4677
4830
  key: `${view}-${currentDate.toISOString()}-${timezone || "local"}`,
@@ -4695,7 +4848,7 @@ var Scheduler = ({
4695
4848
  className: "flex-1 min-h-0 flex flex-col",
4696
4849
  style: { height: "100%" }
4697
4850
  },
4698
- view === "month" && /* @__PURE__ */ React17__default.createElement(
4851
+ view === "month" && /* @__PURE__ */ React18__default.createElement(
4699
4852
  MonthView,
4700
4853
  {
4701
4854
  currentDate,
@@ -4706,7 +4859,7 @@ var Scheduler = ({
4706
4859
  locale
4707
4860
  }
4708
4861
  ),
4709
- view === "week" && /* @__PURE__ */ React17__default.createElement(
4862
+ view === "week" && /* @__PURE__ */ React18__default.createElement(
4710
4863
  WeekView,
4711
4864
  {
4712
4865
  currentDate,
@@ -4723,7 +4876,7 @@ var Scheduler = ({
4723
4876
  compactShortEvents
4724
4877
  }
4725
4878
  ),
4726
- view === "day" && /* @__PURE__ */ React17__default.createElement(
4879
+ view === "day" && /* @__PURE__ */ React18__default.createElement(
4727
4880
  DayView,
4728
4881
  {
4729
4882
  currentDate,
@@ -4740,7 +4893,7 @@ var Scheduler = ({
4740
4893
  compactShortEvents
4741
4894
  }
4742
4895
  ),
4743
- view === "agenda" && /* @__PURE__ */ React17__default.createElement(
4896
+ view === "agenda" && /* @__PURE__ */ React18__default.createElement(
4744
4897
  AgendaView,
4745
4898
  {
4746
4899
  currentDate,
@@ -4752,7 +4905,7 @@ var Scheduler = ({
4752
4905
  renderEmptyState
4753
4906
  }
4754
4907
  ),
4755
- view === "resource" && resources && /* @__PURE__ */ React17__default.createElement(
4908
+ view === "resource" && resources && /* @__PURE__ */ React18__default.createElement(
4756
4909
  ResourceView,
4757
4910
  {
4758
4911
  currentDate,
@@ -4776,7 +4929,7 @@ var Scheduler = ({
4776
4929
  initialDate: modalInitialDate,
4777
4930
  onSave: handleModalSave,
4778
4931
  onDelete: handleModalDelete
4779
- }) : /* @__PURE__ */ React17__default.createElement(
4932
+ }) : /* @__PURE__ */ React18__default.createElement(
4780
4933
  EventModal,
4781
4934
  {
4782
4935
  isOpen: isModalOpen,
@@ -4791,7 +4944,7 @@ var Scheduler = ({
4791
4944
  language
4792
4945
  }
4793
4946
  ),
4794
- /* @__PURE__ */ React17__default.createElement(
4947
+ /* @__PURE__ */ React18__default.createElement(
4795
4948
  EventContextMenu,
4796
4949
  {
4797
4950
  event: contextMenuEvent,
@@ -4824,7 +4977,7 @@ var Scheduler = ({
4824
4977
  }
4825
4978
  }
4826
4979
  ),
4827
- /* @__PURE__ */ React17__default.createElement(DragOverlay, { dropAnimation: null }, activeDragEvent ? /* @__PURE__ */ React17__default.createElement(
4980
+ /* @__PURE__ */ React18__default.createElement(DragOverlay, { dropAnimation: null }, activeDragEvent ? /* @__PURE__ */ React18__default.createElement(
4828
4981
  "div",
4829
4982
  {
4830
4983
  className: cn(
@@ -4842,17 +4995,17 @@ var Scheduler = ({
4842
4995
  transform: "rotate(-2deg) scale(1.02)"
4843
4996
  }
4844
4997
  },
4845
- /* @__PURE__ */ React17__default.createElement("div", { className: "p-2.5 h-full flex flex-col" }, /* @__PURE__ */ React17__default.createElement(
4998
+ /* @__PURE__ */ React18__default.createElement("div", { className: "p-2.5 h-full flex flex-col" }, /* @__PURE__ */ React18__default.createElement(
4846
4999
  "div",
4847
5000
  {
4848
5001
  className: "absolute left-0 top-0 bottom-0 w-1 rounded-l-lg",
4849
5002
  style: { backgroundColor: activeDragEvent.color || "var(--primary)" }
4850
5003
  }
4851
- ), /* @__PURE__ */ React17__default.createElement("div", { className: "pl-2" }, /* @__PURE__ */ React17__default.createElement("div", { className: "font-semibold truncate text-sm" }, activeDragEvent.title), (view === "week" || view === "day") && getDragHeight() && getDragHeight() > 40 && /* @__PURE__ */ React17__default.createElement("div", { className: "text-xs opacity-80 mt-0.5 flex items-center gap-1" }, /* @__PURE__ */ React17__default.createElement("svg", { className: "w-3 h-3", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ React17__default.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React17__default.createElement("path", { d: "M12 6v6l4 2" })), format(activeDragEvent.start, getTimeFormatFull(language)), " - ", format(activeDragEvent.end, getTimeFormatFull(language)))), /* @__PURE__ */ React17__default.createElement("div", { className: "absolute bottom-1.5 right-1.5 opacity-60" }, /* @__PURE__ */ React17__default.createElement("svg", { className: "w-4 h-4", viewBox: "0 0 24 24", fill: "currentColor" }, /* @__PURE__ */ React17__default.createElement("circle", { cx: "9", cy: "5", r: "1.5" }), /* @__PURE__ */ React17__default.createElement("circle", { cx: "15", cy: "5", r: "1.5" }), /* @__PURE__ */ React17__default.createElement("circle", { cx: "9", cy: "12", r: "1.5" }), /* @__PURE__ */ React17__default.createElement("circle", { cx: "15", cy: "12", r: "1.5" }), /* @__PURE__ */ React17__default.createElement("circle", { cx: "9", cy: "19", r: "1.5" }), /* @__PURE__ */ React17__default.createElement("circle", { cx: "15", cy: "19", r: "1.5" }))))
5004
+ ), /* @__PURE__ */ React18__default.createElement("div", { className: "pl-2" }, /* @__PURE__ */ React18__default.createElement("div", { className: "font-semibold truncate text-sm" }, activeDragEvent.title), (view === "week" || view === "day") && getDragHeight() && getDragHeight() > 40 && /* @__PURE__ */ React18__default.createElement("div", { className: "text-xs opacity-80 mt-0.5 flex items-center gap-1" }, /* @__PURE__ */ React18__default.createElement("svg", { className: "w-3 h-3", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2" }, /* @__PURE__ */ React18__default.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React18__default.createElement("path", { d: "M12 6v6l4 2" })), format(activeDragEvent.start, getTimeFormatFull(language)), " - ", format(activeDragEvent.end, getTimeFormatFull(language)))), /* @__PURE__ */ React18__default.createElement("div", { className: "absolute bottom-1.5 right-1.5 opacity-60" }, /* @__PURE__ */ React18__default.createElement("svg", { className: "w-4 h-4", viewBox: "0 0 24 24", fill: "currentColor" }, /* @__PURE__ */ React18__default.createElement("circle", { cx: "9", cy: "5", r: "1.5" }), /* @__PURE__ */ React18__default.createElement("circle", { cx: "15", cy: "5", r: "1.5" }), /* @__PURE__ */ React18__default.createElement("circle", { cx: "9", cy: "12", r: "1.5" }), /* @__PURE__ */ React18__default.createElement("circle", { cx: "15", cy: "12", r: "1.5" }), /* @__PURE__ */ React18__default.createElement("circle", { cx: "9", cy: "19", r: "1.5" }), /* @__PURE__ */ React18__default.createElement("circle", { cx: "15", cy: "19", r: "1.5" }))))
4852
5005
  ) : null)
4853
5006
  )
4854
5007
  ), isMounted && isMobile && !readOnly && !hideFab && createPortal(
4855
- /* @__PURE__ */ React17__default.createElement(
5008
+ /* @__PURE__ */ React18__default.createElement(
4856
5009
  "div",
4857
5010
  {
4858
5011
  style: {
@@ -4864,7 +5017,7 @@ var Scheduler = ({
4864
5017
  ...fabCssVars
4865
5018
  }
4866
5019
  },
4867
- /* @__PURE__ */ React17__default.createElement(
5020
+ /* @__PURE__ */ React18__default.createElement(
4868
5021
  "button",
4869
5022
  {
4870
5023
  type: "button",
@@ -4885,7 +5038,7 @@ var Scheduler = ({
4885
5038
  boxShadow: "0 10px 25px -5px rgba(0, 0, 0, 0.25)"
4886
5039
  }
4887
5040
  },
4888
- /* @__PURE__ */ React17__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React17__default.createElement("path", { d: "M5 12h14" }), /* @__PURE__ */ React17__default.createElement("path", { d: "M12 5v14" }))
5041
+ /* @__PURE__ */ React18__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React18__default.createElement("path", { d: "M5 12h14" }), /* @__PURE__ */ React18__default.createElement("path", { d: "M12 5v14" }))
4889
5042
  )
4890
5043
  ),
4891
5044
  document.body