@innosolutions/inno-calendar 1.0.53 → 1.0.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/agenda-widget-B7ryNQOt.js +3922 -0
  2. package/dist/agenda-widget-B7ryNQOt.js.map +1 -0
  3. package/dist/agenda-widget-YH495m1F.cjs +2 -0
  4. package/dist/agenda-widget-YH495m1F.cjs.map +1 -0
  5. package/dist/components/index.cjs +1 -1
  6. package/dist/components/index.mjs +2 -2
  7. package/dist/components/inno-calendar.d.ts.map +1 -1
  8. package/dist/components/primitives/index.d.ts +1 -0
  9. package/dist/components/primitives/index.d.ts.map +1 -1
  10. package/dist/components/primitives/scroll-navigator.d.ts +32 -0
  11. package/dist/components/primitives/scroll-navigator.d.ts.map +1 -0
  12. package/dist/components/views/day-events-expansion.d.ts +2 -2
  13. package/dist/components/views/day-events-expansion.d.ts.map +1 -1
  14. package/dist/index.cjs +1 -1
  15. package/dist/index.mjs +3 -3
  16. package/dist/presets/index.cjs +1 -1
  17. package/dist/presets/index.mjs +1 -1
  18. package/dist/styles/index.css +1 -1
  19. package/dist/{tailwind-calendar-Ufp5YM_i.cjs → tailwind-calendar-B2Wloz_o.cjs} +2 -2
  20. package/dist/{tailwind-calendar-Ufp5YM_i.cjs.map → tailwind-calendar-B2Wloz_o.cjs.map} +1 -1
  21. package/dist/{tailwind-calendar-Wvl6G_sK.js → tailwind-calendar-CjhEUHpL.js} +2 -2
  22. package/dist/{tailwind-calendar-Wvl6G_sK.js.map → tailwind-calendar-CjhEUHpL.js.map} +1 -1
  23. package/dist/{week-view-CCzE8DEb.js → week-view-D3PDybDq.js} +184 -187
  24. package/dist/week-view-D3PDybDq.js.map +1 -0
  25. package/dist/{week-view-1DnsOgRW.cjs → week-view-DfavofVM.cjs} +3 -3
  26. package/dist/week-view-DfavofVM.cjs.map +1 -0
  27. package/package.json +1 -1
  28. package/dist/agenda-widget-CcvTi51_.cjs +0 -2
  29. package/dist/agenda-widget-CcvTi51_.cjs.map +0 -1
  30. package/dist/agenda-widget-DHq2DsjV.js +0 -3740
  31. package/dist/agenda-widget-DHq2DsjV.js.map +0 -1
  32. package/dist/week-view-1DnsOgRW.cjs.map +0 -1
  33. package/dist/week-view-CCzE8DEb.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../agenda-widget-CcvTi51_.cjs"),e=require("../week-view-1DnsOgRW.cjs");exports.AgendaDropdown=t.AgendaDropdown;exports.AgendaWidget=t.AgendaWidget;exports.BadgeVariantSetting=t.BadgeVariantSetting;exports.Calendar=t.Calendar;exports.CalendarFilterSidebar=t.CalendarFilterSidebar;exports.DEFAULT_WEEK_WORKING_HOURS=t.DEFAULT_WEEK_WORKING_HOURS;exports.EventPopover=t.EventPopover;exports.InnoCalendar=t.InnoCalendar;exports.IntegratedCalendar=t.InnoCalendar;exports.ScheduleTypeFilter=t.ScheduleTypeFilter;exports.SlotDurationSetting=t.SlotDurationSetting;exports.TimelineView=t.TimelineView;exports.UserFilter=t.UserFilter;exports.VisibleHoursSetting=t.VisibleHoursSetting;exports.WorkingHoursSetting=t.WorkingHoursSetting;exports.YearView=t.YearView;exports.AgendaView=e.AgendaView;exports.Button=e.Button;exports.CalendarHeader=e.CalendarHeader;exports.DateNavigator=e.DateNavigator;exports.DayEventsExpansion=e.DayEventsExpansion;exports.DaySlot=e.DaySlot;exports.DayView=e.DayView;exports.Dialog=e.Dialog;exports.DialogClose=e.DialogClose;exports.DialogContent=e.DialogContent;exports.DialogDescription=e.DialogDescription;exports.DialogHeader=e.DialogHeader;exports.DialogTitle=e.DialogTitle;exports.DialogTrigger=e.DialogTrigger;exports.EventBlock=e.EventBlock;exports.EventCard=e.EventCard;exports.MonthView=e.MonthView;exports.MultiDayBanner=e.MultiDayBanner;exports.MultiDayEventBar=e.MultiDayEventBar;exports.Popover=e.Popover;exports.PopoverAnchor=e.PopoverAnchor;exports.PopoverContent=e.PopoverContent;exports.PopoverTrigger=e.PopoverTrigger;exports.Sheet=e.Sheet;exports.SheetClose=e.SheetClose;exports.SheetContent=e.SheetContent;exports.SheetDescription=e.SheetDescription;exports.SheetHeader=e.SheetHeader;exports.SheetTitle=e.SheetTitle;exports.SheetTrigger=e.SheetTrigger;exports.TimeSlot=e.TimeSlot;exports.TodayButton=e.TodayButton;exports.Tooltip=e.Tooltip;exports.TooltipContent=e.TooltipContent;exports.TooltipProvider=e.TooltipProvider;exports.TooltipTrigger=e.TooltipTrigger;exports.WeekView=e.WeekView;exports.buttonVariants=e.buttonVariants;exports.getEventColorClasses=e.getEventColorClasses;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../agenda-widget-YH495m1F.cjs"),e=require("../week-view-DfavofVM.cjs");exports.AgendaDropdown=t.AgendaDropdown;exports.AgendaWidget=t.AgendaWidget;exports.BadgeVariantSetting=t.BadgeVariantSetting;exports.Calendar=t.Calendar;exports.CalendarFilterSidebar=t.CalendarFilterSidebar;exports.DEFAULT_WEEK_WORKING_HOURS=t.DEFAULT_WEEK_WORKING_HOURS;exports.EventPopover=t.EventPopover;exports.InnoCalendar=t.InnoCalendar;exports.IntegratedCalendar=t.InnoCalendar;exports.ScheduleTypeFilter=t.ScheduleTypeFilter;exports.SlotDurationSetting=t.SlotDurationSetting;exports.TimelineView=t.TimelineView;exports.UserFilter=t.UserFilter;exports.VisibleHoursSetting=t.VisibleHoursSetting;exports.WorkingHoursSetting=t.WorkingHoursSetting;exports.YearView=t.YearView;exports.AgendaView=e.AgendaView;exports.Button=e.Button;exports.CalendarHeader=e.CalendarHeader;exports.DateNavigator=e.DateNavigator;exports.DayEventsExpansion=e.DayEventsExpansion;exports.DaySlot=e.DaySlot;exports.DayView=e.DayView;exports.Dialog=e.Dialog;exports.DialogClose=e.DialogClose;exports.DialogContent=e.DialogContent;exports.DialogDescription=e.DialogDescription;exports.DialogHeader=e.DialogHeader;exports.DialogTitle=e.DialogTitle;exports.DialogTrigger=e.DialogTrigger;exports.EventBlock=e.EventBlock;exports.EventCard=e.EventCard;exports.MonthView=e.MonthView;exports.MultiDayBanner=e.MultiDayBanner;exports.MultiDayEventBar=e.MultiDayEventBar;exports.Popover=e.Popover;exports.PopoverAnchor=e.PopoverAnchor;exports.PopoverContent=e.PopoverContent;exports.PopoverTrigger=e.PopoverTrigger;exports.Sheet=e.Sheet;exports.SheetClose=e.SheetClose;exports.SheetContent=e.SheetContent;exports.SheetDescription=e.SheetDescription;exports.SheetHeader=e.SheetHeader;exports.SheetTitle=e.SheetTitle;exports.SheetTrigger=e.SheetTrigger;exports.TimeSlot=e.TimeSlot;exports.TodayButton=e.TodayButton;exports.Tooltip=e.Tooltip;exports.TooltipContent=e.TooltipContent;exports.TooltipProvider=e.TooltipProvider;exports.TooltipTrigger=e.TooltipTrigger;exports.WeekView=e.WeekView;exports.buttonVariants=e.buttonVariants;exports.getEventColorClasses=e.getEventColorClasses;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1,5 @@
1
- import { A as s, a as t, B as o, C as i, b as r, D as n, E as l, I as g, I as d, S as D, c as S, T as p, U as T, V as C, W as v, Y as E } from "../agenda-widget-DHq2DsjV.js";
2
- import { A as u, B as V, C as w, D as y, a as B, b as c, c as A, d as H, e as P, f as W, g as b, h as m, i as F, j as I, E as k, k as x, M, l as U, m as f, P as _, n as G, o as K, p as N, S as O, q as R, r as Y, s as j, t as q, u as z, v as L, T as J, w as Q, x as X, y as Z, z as $, F as aa, W as ea, G as sa, H as ta } from "../week-view-CCzE8DEb.js";
1
+ import { A as s, a as t, B as o, C as i, b as r, D as n, E as l, I as g, I as d, S as D, c as S, T as p, U as T, V as C, W as v, Y as E } from "../agenda-widget-B7ryNQOt.js";
2
+ import { A as u, B as V, C as w, D as y, a as B, b as c, c as A, d as H, e as P, f as W, g as b, h as m, i as F, j as I, E as k, k as x, M, l as U, m as f, P as _, n as G, o as K, p as N, S as O, q as R, r as Y, s as j, t as q, u as z, v as L, T as J, w as Q, x as X, y as Z, z as $, F as aa, W as ea, G as sa, H as ta } from "../week-view-D3PDybDq.js";
3
3
  export {
4
4
  s as AgendaDropdown,
5
5
  u as AgendaView,
@@ -1 +1 @@
1
- {"version":3,"file":"inno-calendar.d.ts","sourceRoot":"","sources":["../../src/components/inno-calendar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inno-calendar.d.ts","sourceRoot":"","sources":["../../src/components/inno-calendar.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  export { CalendarTimeline } from './calendar-timeline';
5
5
  export { MultiDayBanner, type MultiDayBannerProps } from './multi-day-banner';
6
+ export { ScrollNavigator, type ScrollNavigatorProps } from './scroll-navigator';
6
7
  export { WeekAllDayRow, type WeekAllDayRowProps } from './week-all-day-row';
7
8
  export { DaySlot, type DaySlotProps, SelectableSlot, type SelectableSlotProps, TimeSlot, type TimeSlotProps, } from './selectable-slot';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACN,OAAO,EACP,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,mBAAmB,EACxB,QAAQ,EACR,KAAK,aAAa,GAClB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACN,OAAO,EACP,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,mBAAmB,EACxB,QAAQ,EACR,KAAK,aAAa,GAClB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Scroll Navigator — D-pad style floating controller for calendar scrolling.
3
+ *
4
+ * A game-controller-inspired navigation widget that provides directional
5
+ * scrolling (up/down/left/right) plus an analog joystick center for
6
+ * free-form drag-to-scroll. Each arrow button only enables when scroll
7
+ * is possible in that direction.
8
+ *
9
+ * The center joystick works like a real analog stick: press and drag in any
10
+ * direction — the further from center, the faster it scrolls. The inner dot
11
+ * visually tracks your drag direction so you always know which way you're
12
+ * scrolling.
13
+ *
14
+ * Arrow keys on the keyboard also scroll the calendar when the container
15
+ * or the D-pad is focused.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <ScrollNavigator containerRef={scrollContainerRef} />
20
+ * ```
21
+ *
22
+ * @module
23
+ */
24
+ export interface ScrollNavigatorProps {
25
+ /** Ref to the scrollable container element */
26
+ containerRef: React.RefObject<HTMLDivElement | null>;
27
+ /** Additional CSS class on the root wrapper */
28
+ className?: string;
29
+ }
30
+ export declare function ScrollNavigator({ containerRef, className }: ScrollNavigatorProps): import("react/jsx-runtime").JSX.Element | null;
31
+ export default ScrollNavigator;
32
+ //# sourceMappingURL=scroll-navigator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-navigator.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/scroll-navigator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAQH,MAAM,WAAW,oBAAoB;IACpC,8CAA8C;IAC9C,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAmED,wBAAgB,eAAe,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,oBAAoB,kDA6ThF;AAED,eAAe,eAAe,CAAC"}
@@ -36,7 +36,7 @@ export interface DayEventsExpansionProps<TData = Record<string, unknown>> {
36
36
  /** Custom event renderer */
37
37
  renderEvent?: ((props: {
38
38
  event: CalendarEvent<TData>;
39
- variant: 'compact';
39
+ variant: "compact";
40
40
  }) => ReactNode) | undefined;
41
41
  /** Custom popover content renderer */
42
42
  renderPopover?: ((props: {
@@ -46,6 +46,6 @@ export interface DayEventsExpansionProps<TData = Record<string, unknown>> {
46
46
  /** Additional CSS classes for the overlay panel */
47
47
  className?: string;
48
48
  }
49
- export declare function DayEventsExpansion<TData = Record<string, unknown>>({ isOpen, onClose, date, events, anchorRect, badgeVariant, onEventClick, renderEvent, renderPopover: _renderPopover, className, }: DayEventsExpansionProps<TData>): import("react/jsx-runtime").JSX.Element | null;
49
+ export declare function DayEventsExpansion<TData = Record<string, unknown>>({ isOpen, onClose, date, events, anchorRect, badgeVariant, onEventClick, renderEvent, renderPopover, className, }: DayEventsExpansionProps<TData>): import("react/jsx-runtime").JSX.Element | null;
50
50
  export default DayEventsExpansion;
51
51
  //# sourceMappingURL=day-events-expansion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"day-events-expansion.d.ts","sourceRoot":"","sources":["../../../src/components/views/day-events-expansion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQpF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,uBAAuB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4CAA4C;IAC5C,IAAI,EAAE,IAAI,CAAC;IACX,8BAA8B;IAC9B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/B,sEAAsE;IACtE,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,wDAAwD;IACxD,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,0BAA0B;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAChD,4BAA4B;IAC5B,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IACtG,sCAAsC;IACtC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IACzG,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClE,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAU,EACV,YAAwB,EACxB,YAAY,EACZ,WAAW,EACX,aAAa,EAAE,cAAc,EAC7B,SAAS,GACV,EAAE,uBAAuB,CAAC,KAAK,CAAC,kDA8OhC;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"day-events-expansion.d.ts","sourceRoot":"","sources":["../../../src/components/views/day-events-expansion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,kBAAkB,CAAC;AAQ1B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,uBAAuB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4CAA4C;IAC5C,IAAI,EAAE,IAAI,CAAC;IACX,8BAA8B;IAC9B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/B,sEAAsE;IACtE,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,wDAAwD;IACxD,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,0BAA0B;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAChD,4BAA4B;IAC5B,WAAW,CAAC,EACR,CAAC,CAAC,KAAK,EAAE;QACP,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,EAAE,SAAS,CAAC;KACpB,KAAK,SAAS,CAAC,GAChB,SAAS,CAAC;IACd,sCAAsC;IACtC,aAAa,CAAC,EACV,CAAC,CAAC,KAAK,EAAE;QACP,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,KAAK,SAAS,CAAC,GAChB,SAAS,CAAC;IACd,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClE,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAU,EACV,YAAwB,EACxB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,GACV,EAAE,uBAAuB,CAAC,KAAK,CAAC,kDAuPhC;AAED,eAAe,kBAAkB,CAAC"}
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./agenda-widget-CcvTi51_.cjs"),t=require("./week-view-1DnsOgRW.cjs"),e=require("./utils.cjs"),r=require("./use-calendar-BEuelmSu.cjs"),i=require("./tailwind-calendar-Ufp5YM_i.cjs"),a=require("./slot-selection-context-CHSaOPWP.cjs"),s=require("./index-D2U2F80P.cjs"),o=require("./use-slot-selection-Bwqwjiaq.cjs");exports.AgendaDropdown=n.AgendaDropdown;exports.AgendaWidget=n.AgendaWidget;exports.BadgeVariantSetting=n.BadgeVariantSetting;exports.Calendar=n.Calendar;exports.CalendarFilterSidebar=n.CalendarFilterSidebar;exports.DEFAULT_WEEK_WORKING_HOURS=n.DEFAULT_WEEK_WORKING_HOURS;exports.EventPopover=n.EventPopover;exports.InnoCalendar=n.InnoCalendar;exports.IntegratedCalendar=n.InnoCalendar;exports.ScheduleTypeFilter=n.ScheduleTypeFilter;exports.SlotDurationSetting=n.SlotDurationSetting;exports.TimelineView=n.TimelineView;exports.UserFilter=n.UserFilter;exports.VisibleHoursSetting=n.VisibleHoursSetting;exports.WorkingHoursSetting=n.WorkingHoursSetting;exports.YearView=n.YearView;exports.AgendaView=t.AgendaView;exports.Button=t.Button;exports.CalendarHeader=t.CalendarHeader;exports.DateNavigator=t.DateNavigator;exports.DayEventsExpansion=t.DayEventsExpansion;exports.DaySlot=t.DaySlot;exports.DayView=t.DayView;exports.Dialog=t.Dialog;exports.DialogClose=t.DialogClose;exports.DialogContent=t.DialogContent;exports.DialogDescription=t.DialogDescription;exports.DialogHeader=t.DialogHeader;exports.DialogTitle=t.DialogTitle;exports.DialogTrigger=t.DialogTrigger;exports.EventBlock=t.EventBlock;exports.EventCard=t.EventCard;exports.MonthView=t.MonthView;exports.MultiDayBanner=t.MultiDayBanner;exports.MultiDayEventBar=t.MultiDayEventBar;exports.Popover=t.Popover;exports.PopoverAnchor=t.PopoverAnchor;exports.PopoverContent=t.PopoverContent;exports.PopoverTrigger=t.PopoverTrigger;exports.Sheet=t.Sheet;exports.SheetClose=t.SheetClose;exports.SheetContent=t.SheetContent;exports.SheetDescription=t.SheetDescription;exports.SheetHeader=t.SheetHeader;exports.SheetTitle=t.SheetTitle;exports.SheetTrigger=t.SheetTrigger;exports.TimeSlot=t.TimeSlot;exports.TodayButton=t.TodayButton;exports.Tooltip=t.Tooltip;exports.TooltipContent=t.TooltipContent;exports.TooltipProvider=t.TooltipProvider;exports.TooltipTrigger=t.TooltipTrigger;exports.WeekView=t.WeekView;exports.buttonVariants=t.buttonVariants;exports.getEventColorClasses=t.getEventColorClasses;exports.CALENDAR_VIEWS=e.CALENDAR_VIEWS;exports.DEFAULT_BUSINESS_HOURS=e.DEFAULT_BUSINESS_HOURS;exports.DEFAULT_HEADER_HEIGHT=e.DEFAULT_HEADER_HEIGHT;exports.DEFAULT_HOUR_HEIGHT=e.DEFAULT_HOUR_HEIGHT;exports.DEFAULT_PREFERENCES=e.DEFAULT_PREFERENCES;exports.DEFAULT_RESOURCE_WIDTH=e.DEFAULT_RESOURCE_WIDTH;exports.DEFAULT_SLOT_HEIGHT=e.DEFAULT_SLOT_HEIGHT;exports.DEFAULT_VIEW_CONFIGS=e.DEFAULT_VIEW_CONFIGS;exports.DEFAULT_VISIBLE_HOURS=e.DEFAULT_VISIBLE_HOURS;exports.EVENT_COLORS=e.EVENT_COLORS;exports.EVENT_COLOR_CLASSES=e.EVENT_COLOR_CLASSES;exports.HEX_TO_EVENT_COLOR=e.HEX_TO_EVENT_COLOR;exports.HOURS_IN_DAY=e.HOURS_IN_DAY;exports.MINUTES_IN_HOUR=e.MINUTES_IN_HOUR;exports.MIN_EVENT_HEIGHT=e.MIN_EVENT_HEIGHT;exports.MS_PER_DAY=e.MS_PER_DAY;exports.MS_PER_HOUR=e.MS_PER_HOUR;exports.MS_PER_MINUTE=e.MS_PER_MINUTE;exports.addDays=e.addDays;exports.addHours=e.addHours;exports.addMinutes=e.addMinutes;exports.addMonths=e.addMonths;exports.addWeeks=e.addWeeks;exports.addYears=e.addYears;exports.applyEventFilters=e.applyEventFilters;exports.calculateEventPosition=e.calculateEventPosition;exports.calculateOverlappingPositions=e.calculateOverlappingPositions;exports.calculateSelectionOverlay=e.calculateSelectionOverlay;exports.detectAllDayEvent=e.detectAllDayEvent;exports.differenceInDays=e.differenceInDays;exports.differenceInHours=e.differenceInHours;exports.differenceInMilliseconds=e.differenceInMilliseconds;exports.differenceInMinutes=e.differenceInMinutes;exports.eachDayOfInterval=e.eachDayOfInterval;exports.eachHourOfInterval=e.eachHourOfInterval;exports.endOfDay=e.endOfDay;exports.endOfMonth=e.endOfMonth;exports.endOfWeek=e.endOfWeek;exports.endOfYear=e.endOfYear;exports.eventsOverlap=e.eventsOverlap;exports.filterEventsByDateRange=e.filterEventsByDateRange;exports.filterEventsByResource=e.filterEventsByResource;exports.filterEventsByScheduleType=e.filterEventsByScheduleType;exports.filterEventsBySearch=e.filterEventsBySearch;exports.filterOutCanceled=e.filterOutCanceled;exports.formatDateISO=e.formatDateISO;exports.formatEventTimeDisplay=e.formatEventTimeDisplay;exports.formatHourLabel=e.formatHourLabel;exports.formatTime=e.formatTime;exports.generateHourLabels=e.generateHourLabels;exports.generateMonthCells=e.generateMonthCells;exports.generateMonthGrid=e.generateMonthGrid;exports.generateTimeSlots=e.generateTimeSlots;exports.generateWeekCells=e.generateWeekCells;exports.generateYearCells=e.generateYearCells;exports.getAllDayEvents=e.getAllDayEvents;exports.getDayOfWeek=e.getDayOfWeek;exports.getDaysInMonth=e.getDaysInMonth;exports.getDecimalHours=e.getDecimalHours;exports.getEventColor=e.getEventColor;exports.getEventDurationMinutes=e.getEventDurationMinutes;exports.getEventsCountInView=e.getEventsCountInView;exports.getEventsForDay=e.getEventsForDay;exports.getEventsInRange=e.getEventsInRange;exports.getMonthNames=e.getMonthNames;exports.getMultiDayEvents=e.getMultiDayEvents;exports.getOverlappingGroups=e.getOverlappingGroups;exports.getRangeText=e.getRangeText;exports.getTimedEvents=e.getTimedEvents;exports.getViewDateRange=e.getViewDateRange;exports.getViewTitle=e.getViewTitle;exports.getVisibleHoursArray=e.getVisibleHoursArray;exports.getWeekDays=e.getWeekDays;exports.getWeekNumber=e.getWeekNumber;exports.getWeekdayHeaders=e.getWeekdayHeaders;exports.getWeekdayNames=e.getWeekdayNames;exports.getWorkingHoursForDay=e.getWorkingHoursForDay;exports.getYearMonths=e.getYearMonths;exports.groupEventsByDate=e.groupEventsByDate;exports.groupEventsByResource=e.groupEventsByResource;exports.groupEventsByScheduleType=e.groupEventsByScheduleType;exports.isAfter=e.isAfter;exports.isBefore=e.isBefore;exports.isBetween=e.isBetween;exports.isMultiDayEvent=e.isMultiDayEvent;exports.isSameDay=e.isSameDay;exports.isSameMonth=e.isSameMonth;exports.isSameWeek=e.isSameWeek;exports.isSameYear=e.isSameYear;exports.isToday=e.isToday;exports.isWeekend=e.isWeekend;exports.isWorkingHour=e.isWorkingHour;exports.maxDate=e.maxDate;exports.minDate=e.minDate;exports.navigateNext=e.navigateNext;exports.navigatePrev=e.navigatePrev;exports.navigateToday=e.navigateToday;exports.parseISO=e.parseISO;exports.resolveEventColor=e.resolveEventColor;exports.separateEventsByDuration=e.separateEventsByDuration;exports.setTime=e.setTime;exports.shouldShowEventTime=e.shouldShowEventTime;exports.sortEventsByDuration=e.sortEventsByDuration;exports.sortEventsByEnd=e.sortEventsByEnd;exports.sortEventsByStart=e.sortEventsByStart;exports.startOfDay=e.startOfDay;exports.startOfMonth=e.startOfMonth;exports.startOfWeek=e.startOfWeek;exports.startOfYear=e.startOfYear;exports.subDays=e.subDays;exports.subMonths=e.subMonths;exports.subWeeks=e.subWeeks;exports.subYears=e.subYears;exports.timeToY=e.timeToY;exports.yToTime=e.yToTime;exports.CalendarProvider=r.CalendarProvider;exports.useCalendar=r.useCalendar;exports.useCalendarContext=r.useCalendarContext;exports.useCalendarDate=r.useCalendarDate;exports.useCalendarEvents=r.useCalendarEvents;exports.useCalendarFilters=r.useCalendarFilters;exports.useCalendarFromContext=r.useCalendarContext;exports.useCalendarPreferences=r.useCalendarPreferences;exports.useCalendarView=r.useCalendarView;exports.useOptionalCalendar=r.useOptionalCalendarContext;exports.useOptionalCalendarContext=r.useOptionalCalendarContext;exports.DefaultCalendar=i.DefaultCalendar;exports.TailwindCalendar=i.TailwindCalendar;exports.DragDropProvider=a.DragDropProvider;exports.InnoCalendarProvider=a.InnoCalendarProvider;exports.IntegratedCalendarProvider=a.InnoCalendarProvider;exports.PREFERENCES_DEFAULT_SLOT_DURATION=a.DEFAULT_SLOT_DURATION;exports.PREFERENCES_DEFAULT_VISIBLE_HOURS=a.DEFAULT_VISIBLE_HOURS;exports.PREFERENCES_DEFAULT_WORKING_HOURS=a.DEFAULT_WORKING_HOURS;exports.PREFERENCES_STORAGE_KEY=a.PREFERENCES_STORAGE_KEY;exports.SlotSelectionProvider=a.SlotSelectionProvider;exports.useAdvancedPreferences=a.useCalendarPreferences;exports.useDragDrop=a.useDragDrop;exports.useInnoCalendar=a.useInnoCalendar;exports.useInnoCalendarEvents=a.useInnoCalendarEvents;exports.useInnoCalendarFilters=a.useInnoCalendarFilters;exports.useInnoCalendarTimeConfig=a.useInnoCalendarTimeConfig;exports.useInnoCalendarView=a.useInnoCalendarView;exports.useIntegratedCalendar=a.useInnoCalendar;exports.useIntegratedCalendarEvents=a.useInnoCalendarEvents;exports.useIntegratedCalendarFilters=a.useInnoCalendarFilters;exports.useIntegratedCalendarTimeConfig=a.useInnoCalendarTimeConfig;exports.useIntegratedCalendarView=a.useInnoCalendarView;exports.useOptionalDragDrop=a.useOptionalDragDrop;exports.useOptionalInnoCalendar=a.useOptionalInnoCalendar;exports.useOptionalIntegratedCalendar=a.useOptionalInnoCalendar;exports.useOptionalSlotSelection=a.useOptionalSlotSelection;exports.useSlotSelectionContext=a.useSlotSelectionContext;exports.cn=s.cn;exports.useCalendarTimeConfig=o.useCalendarTimeConfig;exports.usePreferences=o.usePreferences;exports.useSlotSelection=o.useSlotSelection;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./agenda-widget-YH495m1F.cjs"),t=require("./week-view-DfavofVM.cjs"),e=require("./utils.cjs"),r=require("./use-calendar-BEuelmSu.cjs"),i=require("./tailwind-calendar-B2Wloz_o.cjs"),a=require("./slot-selection-context-CHSaOPWP.cjs"),s=require("./index-D2U2F80P.cjs"),o=require("./use-slot-selection-Bwqwjiaq.cjs");exports.AgendaDropdown=n.AgendaDropdown;exports.AgendaWidget=n.AgendaWidget;exports.BadgeVariantSetting=n.BadgeVariantSetting;exports.Calendar=n.Calendar;exports.CalendarFilterSidebar=n.CalendarFilterSidebar;exports.DEFAULT_WEEK_WORKING_HOURS=n.DEFAULT_WEEK_WORKING_HOURS;exports.EventPopover=n.EventPopover;exports.InnoCalendar=n.InnoCalendar;exports.IntegratedCalendar=n.InnoCalendar;exports.ScheduleTypeFilter=n.ScheduleTypeFilter;exports.SlotDurationSetting=n.SlotDurationSetting;exports.TimelineView=n.TimelineView;exports.UserFilter=n.UserFilter;exports.VisibleHoursSetting=n.VisibleHoursSetting;exports.WorkingHoursSetting=n.WorkingHoursSetting;exports.YearView=n.YearView;exports.AgendaView=t.AgendaView;exports.Button=t.Button;exports.CalendarHeader=t.CalendarHeader;exports.DateNavigator=t.DateNavigator;exports.DayEventsExpansion=t.DayEventsExpansion;exports.DaySlot=t.DaySlot;exports.DayView=t.DayView;exports.Dialog=t.Dialog;exports.DialogClose=t.DialogClose;exports.DialogContent=t.DialogContent;exports.DialogDescription=t.DialogDescription;exports.DialogHeader=t.DialogHeader;exports.DialogTitle=t.DialogTitle;exports.DialogTrigger=t.DialogTrigger;exports.EventBlock=t.EventBlock;exports.EventCard=t.EventCard;exports.MonthView=t.MonthView;exports.MultiDayBanner=t.MultiDayBanner;exports.MultiDayEventBar=t.MultiDayEventBar;exports.Popover=t.Popover;exports.PopoverAnchor=t.PopoverAnchor;exports.PopoverContent=t.PopoverContent;exports.PopoverTrigger=t.PopoverTrigger;exports.Sheet=t.Sheet;exports.SheetClose=t.SheetClose;exports.SheetContent=t.SheetContent;exports.SheetDescription=t.SheetDescription;exports.SheetHeader=t.SheetHeader;exports.SheetTitle=t.SheetTitle;exports.SheetTrigger=t.SheetTrigger;exports.TimeSlot=t.TimeSlot;exports.TodayButton=t.TodayButton;exports.Tooltip=t.Tooltip;exports.TooltipContent=t.TooltipContent;exports.TooltipProvider=t.TooltipProvider;exports.TooltipTrigger=t.TooltipTrigger;exports.WeekView=t.WeekView;exports.buttonVariants=t.buttonVariants;exports.getEventColorClasses=t.getEventColorClasses;exports.CALENDAR_VIEWS=e.CALENDAR_VIEWS;exports.DEFAULT_BUSINESS_HOURS=e.DEFAULT_BUSINESS_HOURS;exports.DEFAULT_HEADER_HEIGHT=e.DEFAULT_HEADER_HEIGHT;exports.DEFAULT_HOUR_HEIGHT=e.DEFAULT_HOUR_HEIGHT;exports.DEFAULT_PREFERENCES=e.DEFAULT_PREFERENCES;exports.DEFAULT_RESOURCE_WIDTH=e.DEFAULT_RESOURCE_WIDTH;exports.DEFAULT_SLOT_HEIGHT=e.DEFAULT_SLOT_HEIGHT;exports.DEFAULT_VIEW_CONFIGS=e.DEFAULT_VIEW_CONFIGS;exports.DEFAULT_VISIBLE_HOURS=e.DEFAULT_VISIBLE_HOURS;exports.EVENT_COLORS=e.EVENT_COLORS;exports.EVENT_COLOR_CLASSES=e.EVENT_COLOR_CLASSES;exports.HEX_TO_EVENT_COLOR=e.HEX_TO_EVENT_COLOR;exports.HOURS_IN_DAY=e.HOURS_IN_DAY;exports.MINUTES_IN_HOUR=e.MINUTES_IN_HOUR;exports.MIN_EVENT_HEIGHT=e.MIN_EVENT_HEIGHT;exports.MS_PER_DAY=e.MS_PER_DAY;exports.MS_PER_HOUR=e.MS_PER_HOUR;exports.MS_PER_MINUTE=e.MS_PER_MINUTE;exports.addDays=e.addDays;exports.addHours=e.addHours;exports.addMinutes=e.addMinutes;exports.addMonths=e.addMonths;exports.addWeeks=e.addWeeks;exports.addYears=e.addYears;exports.applyEventFilters=e.applyEventFilters;exports.calculateEventPosition=e.calculateEventPosition;exports.calculateOverlappingPositions=e.calculateOverlappingPositions;exports.calculateSelectionOverlay=e.calculateSelectionOverlay;exports.detectAllDayEvent=e.detectAllDayEvent;exports.differenceInDays=e.differenceInDays;exports.differenceInHours=e.differenceInHours;exports.differenceInMilliseconds=e.differenceInMilliseconds;exports.differenceInMinutes=e.differenceInMinutes;exports.eachDayOfInterval=e.eachDayOfInterval;exports.eachHourOfInterval=e.eachHourOfInterval;exports.endOfDay=e.endOfDay;exports.endOfMonth=e.endOfMonth;exports.endOfWeek=e.endOfWeek;exports.endOfYear=e.endOfYear;exports.eventsOverlap=e.eventsOverlap;exports.filterEventsByDateRange=e.filterEventsByDateRange;exports.filterEventsByResource=e.filterEventsByResource;exports.filterEventsByScheduleType=e.filterEventsByScheduleType;exports.filterEventsBySearch=e.filterEventsBySearch;exports.filterOutCanceled=e.filterOutCanceled;exports.formatDateISO=e.formatDateISO;exports.formatEventTimeDisplay=e.formatEventTimeDisplay;exports.formatHourLabel=e.formatHourLabel;exports.formatTime=e.formatTime;exports.generateHourLabels=e.generateHourLabels;exports.generateMonthCells=e.generateMonthCells;exports.generateMonthGrid=e.generateMonthGrid;exports.generateTimeSlots=e.generateTimeSlots;exports.generateWeekCells=e.generateWeekCells;exports.generateYearCells=e.generateYearCells;exports.getAllDayEvents=e.getAllDayEvents;exports.getDayOfWeek=e.getDayOfWeek;exports.getDaysInMonth=e.getDaysInMonth;exports.getDecimalHours=e.getDecimalHours;exports.getEventColor=e.getEventColor;exports.getEventDurationMinutes=e.getEventDurationMinutes;exports.getEventsCountInView=e.getEventsCountInView;exports.getEventsForDay=e.getEventsForDay;exports.getEventsInRange=e.getEventsInRange;exports.getMonthNames=e.getMonthNames;exports.getMultiDayEvents=e.getMultiDayEvents;exports.getOverlappingGroups=e.getOverlappingGroups;exports.getRangeText=e.getRangeText;exports.getTimedEvents=e.getTimedEvents;exports.getViewDateRange=e.getViewDateRange;exports.getViewTitle=e.getViewTitle;exports.getVisibleHoursArray=e.getVisibleHoursArray;exports.getWeekDays=e.getWeekDays;exports.getWeekNumber=e.getWeekNumber;exports.getWeekdayHeaders=e.getWeekdayHeaders;exports.getWeekdayNames=e.getWeekdayNames;exports.getWorkingHoursForDay=e.getWorkingHoursForDay;exports.getYearMonths=e.getYearMonths;exports.groupEventsByDate=e.groupEventsByDate;exports.groupEventsByResource=e.groupEventsByResource;exports.groupEventsByScheduleType=e.groupEventsByScheduleType;exports.isAfter=e.isAfter;exports.isBefore=e.isBefore;exports.isBetween=e.isBetween;exports.isMultiDayEvent=e.isMultiDayEvent;exports.isSameDay=e.isSameDay;exports.isSameMonth=e.isSameMonth;exports.isSameWeek=e.isSameWeek;exports.isSameYear=e.isSameYear;exports.isToday=e.isToday;exports.isWeekend=e.isWeekend;exports.isWorkingHour=e.isWorkingHour;exports.maxDate=e.maxDate;exports.minDate=e.minDate;exports.navigateNext=e.navigateNext;exports.navigatePrev=e.navigatePrev;exports.navigateToday=e.navigateToday;exports.parseISO=e.parseISO;exports.resolveEventColor=e.resolveEventColor;exports.separateEventsByDuration=e.separateEventsByDuration;exports.setTime=e.setTime;exports.shouldShowEventTime=e.shouldShowEventTime;exports.sortEventsByDuration=e.sortEventsByDuration;exports.sortEventsByEnd=e.sortEventsByEnd;exports.sortEventsByStart=e.sortEventsByStart;exports.startOfDay=e.startOfDay;exports.startOfMonth=e.startOfMonth;exports.startOfWeek=e.startOfWeek;exports.startOfYear=e.startOfYear;exports.subDays=e.subDays;exports.subMonths=e.subMonths;exports.subWeeks=e.subWeeks;exports.subYears=e.subYears;exports.timeToY=e.timeToY;exports.yToTime=e.yToTime;exports.CalendarProvider=r.CalendarProvider;exports.useCalendar=r.useCalendar;exports.useCalendarContext=r.useCalendarContext;exports.useCalendarDate=r.useCalendarDate;exports.useCalendarEvents=r.useCalendarEvents;exports.useCalendarFilters=r.useCalendarFilters;exports.useCalendarFromContext=r.useCalendarContext;exports.useCalendarPreferences=r.useCalendarPreferences;exports.useCalendarView=r.useCalendarView;exports.useOptionalCalendar=r.useOptionalCalendarContext;exports.useOptionalCalendarContext=r.useOptionalCalendarContext;exports.DefaultCalendar=i.DefaultCalendar;exports.TailwindCalendar=i.TailwindCalendar;exports.DragDropProvider=a.DragDropProvider;exports.InnoCalendarProvider=a.InnoCalendarProvider;exports.IntegratedCalendarProvider=a.InnoCalendarProvider;exports.PREFERENCES_DEFAULT_SLOT_DURATION=a.DEFAULT_SLOT_DURATION;exports.PREFERENCES_DEFAULT_VISIBLE_HOURS=a.DEFAULT_VISIBLE_HOURS;exports.PREFERENCES_DEFAULT_WORKING_HOURS=a.DEFAULT_WORKING_HOURS;exports.PREFERENCES_STORAGE_KEY=a.PREFERENCES_STORAGE_KEY;exports.SlotSelectionProvider=a.SlotSelectionProvider;exports.useAdvancedPreferences=a.useCalendarPreferences;exports.useDragDrop=a.useDragDrop;exports.useInnoCalendar=a.useInnoCalendar;exports.useInnoCalendarEvents=a.useInnoCalendarEvents;exports.useInnoCalendarFilters=a.useInnoCalendarFilters;exports.useInnoCalendarTimeConfig=a.useInnoCalendarTimeConfig;exports.useInnoCalendarView=a.useInnoCalendarView;exports.useIntegratedCalendar=a.useInnoCalendar;exports.useIntegratedCalendarEvents=a.useInnoCalendarEvents;exports.useIntegratedCalendarFilters=a.useInnoCalendarFilters;exports.useIntegratedCalendarTimeConfig=a.useInnoCalendarTimeConfig;exports.useIntegratedCalendarView=a.useInnoCalendarView;exports.useOptionalDragDrop=a.useOptionalDragDrop;exports.useOptionalInnoCalendar=a.useOptionalInnoCalendar;exports.useOptionalIntegratedCalendar=a.useOptionalInnoCalendar;exports.useOptionalSlotSelection=a.useOptionalSlotSelection;exports.useSlotSelectionContext=a.useSlotSelectionContext;exports.cn=s.cn;exports.useCalendarTimeConfig=o.useCalendarTimeConfig;exports.usePreferences=o.usePreferences;exports.useSlotSelection=o.useSlotSelection;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { A as t, a as s, B as n, C as r, b as o, D as i, E as l, I as E, I as d, S as g, c as u, T as D, U as C, V as S, W as T, Y as v } from "./agenda-widget-DHq2DsjV.js";
2
- import { A as f, B as p, C as O, D as _, a as y, b as c, c as R, d as m, e as H, f as A, g as h, h as F, i as U, j as P, E as M, k as N, M as V, l as W, m as B, P as L, n as k, o as w, p as x, S as b, q as Y, r as G, s as K, t as j, u as q, v as z, T as X, w as J, x as Q, y as Z, z as $, F as ee, W as ae, G as te, H as se } from "./week-view-CCzE8DEb.js";
1
+ import { A as t, a as s, B as n, C as r, b as o, D as i, E as l, I as E, I as d, S as g, c as u, T as D, U as C, V as S, W as T, Y as v } from "./agenda-widget-B7ryNQOt.js";
2
+ import { A as f, B as p, C as O, D as _, a as y, b as c, c as R, d as m, e as H, f as A, g as h, h as F, i as U, j as P, E as M, k as N, M as V, l as W, m as B, P as L, n as k, o as w, p as x, S as b, q as Y, r as G, s as K, t as j, u as q, v as z, T as X, w as J, x as Q, y as Z, z as $, F as ee, W as ae, G as te, H as se } from "./week-view-D3PDybDq.js";
3
3
  import { CALENDAR_VIEWS as re, DEFAULT_BUSINESS_HOURS as oe, DEFAULT_HEADER_HEIGHT as ie, DEFAULT_HOUR_HEIGHT as le, DEFAULT_PREFERENCES as Ee, DEFAULT_RESOURCE_WIDTH as de, DEFAULT_SLOT_HEIGHT as ge, DEFAULT_VIEW_CONFIGS as ue, DEFAULT_VISIBLE_HOURS as De, EVENT_COLORS as Ce, EVENT_COLOR_CLASSES as Se, HEX_TO_EVENT_COLOR as Te, HOURS_IN_DAY as ve, MINUTES_IN_HOUR as Ie, MIN_EVENT_HEIGHT as fe, MS_PER_DAY as pe, MS_PER_HOUR as Oe, MS_PER_MINUTE as _e, addDays as ye, addHours as ce, addMinutes as Re, addMonths as me, addWeeks as He, addYears as Ae, applyEventFilters as he, calculateEventPosition as Fe, calculateOverlappingPositions as Ue, calculateSelectionOverlay as Pe, detectAllDayEvent as Me, differenceInDays as Ne, differenceInHours as Ve, differenceInMilliseconds as We, differenceInMinutes as Be, eachDayOfInterval as Le, eachHourOfInterval as ke, endOfDay as we, endOfMonth as xe, endOfWeek as be, endOfYear as Ye, eventsOverlap as Ge, filterEventsByDateRange as Ke, filterEventsByResource as je, filterEventsByScheduleType as qe, filterEventsBySearch as ze, filterOutCanceled as Xe, formatDateISO as Je, formatEventTimeDisplay as Qe, formatHourLabel as Ze, formatTime as $e, generateHourLabels as ea, generateMonthCells as aa, generateMonthGrid as ta, generateTimeSlots as sa, generateWeekCells as na, generateYearCells as ra, getAllDayEvents as oa, getDayOfWeek as ia, getDaysInMonth as la, getDecimalHours as Ea, getEventColor as da, getEventDurationMinutes as ga, getEventsCountInView as ua, getEventsForDay as Da, getEventsInRange as Ca, getMonthNames as Sa, getMultiDayEvents as Ta, getOverlappingGroups as va, getRangeText as Ia, getTimedEvents as fa, getViewDateRange as pa, getViewTitle as Oa, getVisibleHoursArray as _a, getWeekDays as ya, getWeekNumber as ca, getWeekdayHeaders as Ra, getWeekdayNames as ma, getWorkingHoursForDay as Ha, getYearMonths as Aa, groupEventsByDate as ha, groupEventsByResource as Fa, groupEventsByScheduleType as Ua, isAfter as Pa, isBefore as Ma, isBetween as Na, isMultiDayEvent as Va, isSameDay as Wa, isSameMonth as Ba, isSameWeek as La, isSameYear as ka, isToday as wa, isWeekend as xa, isWorkingHour as ba, maxDate as Ya, minDate as Ga, navigateNext as Ka, navigatePrev as ja, navigateToday as qa, parseISO as za, resolveEventColor as Xa, separateEventsByDuration as Ja, setTime as Qa, shouldShowEventTime as Za, sortEventsByDuration as $a, sortEventsByEnd as et, sortEventsByStart as at, startOfDay as tt, startOfMonth as st, startOfWeek as nt, startOfYear as rt, subDays as ot, subMonths as it, subWeeks as lt, subYears as Et, timeToY as dt, yToTime as gt } from "./utils.mjs";
4
4
  import { C as Dt, u as Ct, a as St, b as Tt, c as vt, d as It, a as ft, e as pt, f as Ot, g as _t, g as yt } from "./use-calendar-Clo9DFK4.js";
5
- import { D as Rt, T as mt } from "./tailwind-calendar-Wvl6G_sK.js";
5
+ import { D as Rt, T as mt } from "./tailwind-calendar-CjhEUHpL.js";
6
6
  import { D as At, I as ht, I as Ft, a as Ut, b as Pt, c as Mt, P as Nt, S as Vt, u as Wt, d as Bt, e as Lt, f as kt, g as wt, h as xt, i as bt, e as Yt, f as Gt, g as Kt, h as jt, i as qt, j as zt, k as Xt, k as Jt, l as Qt, m as Zt } from "./slot-selection-context-BwghpxKA.js";
7
7
  import { c as es } from "./index-DtaLkIY8.js";
8
8
  import { u as ts, a as ss, b as ns } from "./use-slot-selection-BCZKnZSM.js";
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../tailwind-calendar-Ufp5YM_i.cjs");exports.DefaultCalendar=a.DefaultCalendar;exports.TailwindCalendar=a.TailwindCalendar;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../tailwind-calendar-B2Wloz_o.cjs");exports.DefaultCalendar=a.DefaultCalendar;exports.TailwindCalendar=a.TailwindCalendar;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,4 @@
1
- import { D as l, T as r } from "../tailwind-calendar-Wvl6G_sK.js";
1
+ import { D as l, T as r } from "../tailwind-calendar-CjhEUHpL.js";
2
2
  export {
3
3
  l as DefaultCalendar,
4
4
  r as TailwindCalendar
@@ -1 +1 @@
1
- .inno-calendar-disabled-hour,.bg-calendar-disabled-hour{background-image:repeating-linear-gradient(-60deg,var(--inno-border-color, #e5e7eb) 0 .5px,transparent .5px 8px)}:root{--inno-border-color: #e5e7eb;--inno-background: #ffffff;--inno-foreground: #111827;--inno-muted: #f3f4f6;--inno-muted-foreground: #6b7280;--inno-primary: #3b82f6;--inno-primary-foreground: #ffffff;--inno-event-blue: #3b82f6;--inno-event-green: #22c55e;--inno-event-red: #ef4444;--inno-event-yellow: #eab308;--inno-event-purple: #a855f7;--inno-event-orange: #f97316;--inno-event-pink: #ec4899;--inno-event-teal: #14b8a6;--inno-event-gray: #6b7280;--inno-event-indigo: #6366f1;--inno-hour-height: 96px;--inno-header-height: 56px;--inno-sidebar-width: 200px}.dark{--inno-border-color: #374151;--inno-background: #111827;--inno-foreground: #f9fafb;--inno-muted: #1f2937;--inno-muted-foreground: #9ca3af}.inno-calendar-root,.inno-calendar-root *{scrollbar-width:thin;scrollbar-color:#d4d4d8 transparent}.inno-calendar-root ::-webkit-scrollbar,.inno-calendar-root::-webkit-scrollbar{width:10px;height:10px}.inno-calendar-root ::-webkit-scrollbar-track,.inno-calendar-root::-webkit-scrollbar-track{background:transparent}.inno-calendar-root ::-webkit-scrollbar-thumb,.inno-calendar-root::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-calendar-root ::-webkit-scrollbar-thumb:hover,.inno-calendar-root::-webkit-scrollbar-thumb:hover{background:#a1a1aa;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-calendar-root ::-webkit-scrollbar-corner,.inno-calendar-root::-webkit-scrollbar-corner{background:transparent}.inno-calendar-scrollbar::-webkit-scrollbar{width:10px;height:10px}.inno-calendar-scrollbar::-webkit-scrollbar-track{background:transparent}.inno-calendar-scrollbar::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-calendar-scrollbar::-webkit-scrollbar-thumb:hover{background:#a1a1aa;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-scroll-right-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);z-index:30;display:flex;align-items:center;justify-content:center;width:28px;height:48px;border-radius:8px;border:1px solid #e4e4e7;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 1px 4px #00000014;cursor:pointer;color:#71717a;transition:top .15s ease,opacity .2s ease,background .15s ease,color .15s ease;opacity:1}.inno-scroll-right-btn:hover{background:#f4f4f5;color:#3f3f46;box-shadow:0 2px 8px #0000001a}.inno-scroll-right-btn:active{background:#e4e4e7}.inno-scroll-right-btn[data-hidden=true]{opacity:0;pointer-events:none}.inno-calendar-selection{background-color:#3b82f626;border:2px solid var(--inno-primary, #3b82f6);border-radius:4px;pointer-events:none}.inno-calendar-current-time{position:absolute;left:0;right:0;height:2px;background-color:#ef4444;z-index:20}.inno-calendar-current-time:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;background-color:#ef4444;border-radius:50%}.inno-calendar-event{transition:transform .1s ease,box-shadow .1s ease}.inno-calendar-event:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.inno-calendar-event:active{transform:translateY(0)}.inno-calendar-event-canceled{opacity:.6;text-decoration:line-through}.inno-calendar-no-scrollbar::-webkit-scrollbar{display:none}.inno-calendar-no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@keyframes inno-spin{to{transform:rotate(360deg)}}.inno-calendar-loading-overlay{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#ffffff8c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px;pointer-events:none;animation:inno-fade-in .15s ease}@keyframes inno-fade-in{0%{opacity:0}to{opacity:1}}.inno-calendar-spinner{width:28px;height:28px;border:3px solid #e4e4e7;border-top-color:var(--inno-primary, #3b82f6);border-radius:50%;animation:inno-spin .7s linear infinite}.dark .inno-calendar-loading-overlay{background:#1118278c}.dark .inno-calendar-spinner{border-color:#374151;border-top-color:var(--inno-primary, #3b82f6)}.ic-expansion-backdrop{position:fixed;inset:0;z-index:50;background:#00000040;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .28s cubic-bezier(.32,.72,0,1)}.ic-expansion-backdrop[data-state=entering],.ic-expansion-backdrop[data-state=open]{opacity:1}.ic-expansion-backdrop[data-state=exiting],.ic-expansion-backdrop[data-state=closed]{opacity:0}.ic-expansion-panel{position:fixed;z-index:51;background:hsl(var(--background, 0 0% 100%));border:1px solid hsl(var(--border, 0 0% 89.8%));border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;overflow:hidden;transition:top .28s cubic-bezier(.32,.72,0,1),left .28s cubic-bezier(.32,.72,0,1),width .28s cubic-bezier(.32,.72,0,1),height .28s cubic-bezier(.32,.72,0,1),opacity .2s cubic-bezier(.32,.72,0,1),transform .28s cubic-bezier(.32,.72,0,1)}.dark .ic-expansion-backdrop{background:#00000080}
1
+ .inno-calendar-disabled-hour,.bg-calendar-disabled-hour{background-image:repeating-linear-gradient(-60deg,var(--inno-border-color, #e5e7eb) 0 .5px,transparent .5px 8px)}:root{--inno-border-color: #e5e7eb;--inno-background: #ffffff;--inno-foreground: #111827;--inno-muted: #f3f4f6;--inno-muted-foreground: #6b7280;--inno-primary: #3b82f6;--inno-primary-foreground: #ffffff;--inno-event-blue: #3b82f6;--inno-event-green: #22c55e;--inno-event-red: #ef4444;--inno-event-yellow: #eab308;--inno-event-purple: #a855f7;--inno-event-orange: #f97316;--inno-event-pink: #ec4899;--inno-event-teal: #14b8a6;--inno-event-gray: #6b7280;--inno-event-indigo: #6366f1;--inno-hour-height: 96px;--inno-header-height: 56px;--inno-sidebar-width: 200px}.dark{--inno-border-color: #374151;--inno-background: #111827;--inno-foreground: #f9fafb;--inno-muted: #1f2937;--inno-muted-foreground: #9ca3af}.inno-calendar-root,.inno-calendar-root *{scrollbar-width:thin;scrollbar-color:#d4d4d8 transparent}.inno-calendar-root ::-webkit-scrollbar,.inno-calendar-root::-webkit-scrollbar{width:10px;height:10px}.inno-calendar-root ::-webkit-scrollbar-track,.inno-calendar-root::-webkit-scrollbar-track{background:transparent}.inno-calendar-root ::-webkit-scrollbar-thumb,.inno-calendar-root::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-calendar-root ::-webkit-scrollbar-thumb:hover,.inno-calendar-root::-webkit-scrollbar-thumb:hover{background:#a1a1aa;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-calendar-root ::-webkit-scrollbar-corner,.inno-calendar-root::-webkit-scrollbar-corner{background:transparent}.inno-calendar-scrollbar::-webkit-scrollbar{width:10px;height:10px}.inno-calendar-scrollbar::-webkit-scrollbar-track{background:transparent}.inno-calendar-scrollbar::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-calendar-scrollbar::-webkit-scrollbar-thumb:hover{background:#a1a1aa;border-radius:9999px;border:3px solid transparent;background-clip:padding-box}.inno-scroll-right-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);z-index:30;display:none}.inno-scroll-nav{position:absolute;right:12px;bottom:12px;z-index:30;display:grid;grid-template-columns:30px 30px 30px;grid-template-rows:30px 30px 30px;gap:2px;opacity:.4;transition:opacity .25s ease;pointer-events:auto;user-select:none;-webkit-user-select:none}.inno-scroll-nav:hover,.inno-scroll-nav:focus-within{opacity:1}.inno-scroll-nav-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;border:1px solid #e4e4e7;background:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 1px 3px #0000000f;cursor:pointer;color:#3f3f46;transition:background .12s ease,color .12s ease,box-shadow .12s ease,transform .08s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding:0}.inno-scroll-nav-btn:hover:not(:disabled){background:#f4f4f5;color:#18181b;box-shadow:0 2px 8px #0000001a}.inno-scroll-nav-btn:active:not(:disabled){background:#e4e4e7;transform:scale(.9)}.inno-scroll-nav-btn:focus-visible{outline:2px solid var(--inno-primary, #3b82f6);outline-offset:2px}.inno-scroll-nav-btn-disabled{opacity:.2;cursor:default;pointer-events:none}.inno-scroll-nav-up{grid-column:2;grid-row:1}.inno-scroll-nav-left{grid-column:1;grid-row:2}.inno-scroll-nav-right{grid-column:3;grid-row:2}.inno-scroll-nav-down{grid-column:2;grid-row:3}.inno-scroll-nav-joystick{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid #d4d4d8;background:#fffffff2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 1px 3px #0000000f;cursor:grab;transition:background .12s ease,box-shadow .12s ease,border-color .12s ease;touch-action:none;-webkit-tap-highlight-color:transparent;padding:0;overflow:visible}.inno-scroll-nav-joystick:hover{border-color:#a1a1aa;box-shadow:0 2px 8px #0000001a}.inno-scroll-nav-joystick:active,.inno-scroll-nav-joystick-active{cursor:grabbing;background:#f4f4f5;border-color:var(--inno-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f626}.inno-scroll-nav-joystick:focus-visible{outline:2px solid var(--inno-primary, #3b82f6);outline-offset:2px}.inno-scroll-nav-joystick-dot{width:10px;height:10px;border-radius:50%;border:2px solid #a1a1aa;background:transparent;transition:border-color .12s ease,background .12s ease,transform .06s ease-out;pointer-events:none}.inno-scroll-nav-joystick:hover .inno-scroll-nav-joystick-dot{border-color:#71717a}.inno-scroll-nav-joystick:active .inno-scroll-nav-joystick-dot,.inno-scroll-nav-joystick-active .inno-scroll-nav-joystick-dot{border-color:var(--inno-primary, #3b82f6);background:#3b82f633}.dark .inno-scroll-nav-btn{border-color:#374151;background:#1f2937eb;color:#d1d5db}.dark .inno-scroll-nav-btn:hover:not(:disabled){background:#374151;color:#f9fafb}.dark .inno-scroll-nav-btn:active:not(:disabled){background:#4b5563}.dark .inno-scroll-nav-joystick{border-color:#4b5563;background:#1f2937f2}.dark .inno-scroll-nav-joystick:hover{border-color:#6b7280}.dark .inno-scroll-nav-joystick:active,.dark .inno-scroll-nav-joystick-active{background:#374151;border-color:var(--inno-primary, #3b82f6)}.dark .inno-scroll-nav-joystick-dot{border-color:#6b7280}.dark .inno-scroll-nav-joystick:hover .inno-scroll-nav-joystick-dot{border-color:#9ca3af}@media(max-width:480px){.inno-scroll-nav{grid-template-columns:24px 24px 24px;grid-template-rows:24px 24px 24px;gap:2px;right:8px;bottom:8px}.inno-scroll-nav-btn{width:24px;height:24px;border-radius:7px}.inno-scroll-nav-joystick{width:24px;height:24px}.inno-scroll-nav-joystick-dot{width:8px;height:8px}}.inno-calendar-selection{background-color:#3b82f626;border:2px solid var(--inno-primary, #3b82f6);border-radius:4px;pointer-events:none}.inno-calendar-current-time{position:absolute;left:0;right:0;height:2px;background-color:#ef4444;z-index:20}.inno-calendar-current-time:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;background-color:#ef4444;border-radius:50%}.inno-calendar-event{transition:transform .1s ease,box-shadow .1s ease}.inno-calendar-event:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.inno-calendar-event:active{transform:translateY(0)}.inno-calendar-event-canceled{opacity:.6;text-decoration:line-through}.inno-calendar-no-scrollbar::-webkit-scrollbar{display:none}.inno-calendar-no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@keyframes inno-spin{to{transform:rotate(360deg)}}.inno-calendar-loading-overlay{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#ffffff8c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:8px;pointer-events:none;animation:inno-fade-in .15s ease}@keyframes inno-fade-in{0%{opacity:0}to{opacity:1}}.inno-calendar-spinner{width:28px;height:28px;border:3px solid #e4e4e7;border-top-color:var(--inno-primary, #3b82f6);border-radius:50%;animation:inno-spin .7s linear infinite}.dark .inno-calendar-loading-overlay{background:#1118278c}.dark .inno-calendar-spinner{border-color:#374151;border-top-color:var(--inno-primary, #3b82f6)}.ic-expansion-backdrop{position:fixed;inset:0;z-index:50;background:#00000040;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .28s cubic-bezier(.32,.72,0,1)}.ic-expansion-backdrop[data-state=entering],.ic-expansion-backdrop[data-state=open]{opacity:1}.ic-expansion-backdrop[data-state=exiting],.ic-expansion-backdrop[data-state=closed]{opacity:0}.ic-expansion-panel{position:fixed;z-index:51;background:hsl(var(--background, 0 0% 100%));border:1px solid hsl(var(--border, 0 0% 89.8%));border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;overflow:hidden;transition:top .28s cubic-bezier(.32,.72,0,1),left .28s cubic-bezier(.32,.72,0,1),width .28s cubic-bezier(.32,.72,0,1),height .28s cubic-bezier(.32,.72,0,1),opacity .2s cubic-bezier(.32,.72,0,1),transform .28s cubic-bezier(.32,.72,0,1)}.dark .ic-expansion-backdrop{background:#00000080}
@@ -1,2 +1,2 @@
1
- "use strict";const r=require("react/jsx-runtime"),s=require("react"),y=require("./week-view-1DnsOgRW.cjs"),g=require("./utils.cjs"),ce=require("./index-D2U2F80P.cjs"),de={display:"flex",flexDirection:"column",height:"100%",minHeight:"400px",backgroundColor:"var(--ic-bg, #ffffff)",border:"1px solid var(--ic-border, #e5e7eb)",borderRadius:"var(--ic-radius, 0.5rem)",overflow:"hidden",fontFamily:'var(--ic-font-family, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif)',fontSize:"var(--ic-font-size, 0.875rem)",color:"var(--ic-text, #111827)"},ue={borderBottom:"1px solid var(--ic-border, #e5e7eb)"},fe={flex:1,overflow:"auto"},he={display:"flex",alignItems:"center",justifyContent:"center",height:"16rem",color:"var(--ic-text-muted, #6b7280)"};function ye({events:d,resources:ee,scheduleTypes:G,initialView:R="week",initialDate:_,initialFilters:se,preferences:p,badgeVariant:n="colored",hideHeader:W=!1,availableViews:F=["day","week","month","agenda"],onEventClick:u,onSlotSelect:a,onViewChange:x,onDateChange:N,className:j="",style:H,headerActions:b,emptyState:i,children:ae}){const[f,T]=s.useState(R),[c,q]=s.useState(_??new Date),w=s.useMemo(()=>({...g.DEFAULT_PREFERENCES,...p}),[p]),k=s.useCallback(t=>{T(t),x?.(t)},[x]),h=s.useCallback(t=>{q(t),N?.(t)},[N]),C=s.useCallback(()=>{const t=g.navigatePrev(c,f);h(t)},[c,f,h]),I=s.useCallback(()=>{const t=g.navigateNext(c,f);h(t)},[c,f,h]),J=s.useCallback(()=>{const t=g.navigateToday();h(t)},[h]),l=s.useCallback(t=>{h(t),k("day")},[h,k]),P=s.useMemo(()=>({startHour:w.startHour,endHour:w.endHour}),[w.startHour,w.endHour]),o=w.firstDayOfWeek===0?0:1,A=()=>{switch(f){case"day":return r.jsx(y.DayView,{events:d,date:c,badgeVariant:n,visibleHours:P,slotDuration:w.slotDuration,...u&&{onEventClick:u},...a&&{onSlotSelect:a}});case"week":return r.jsx(y.WeekView,{events:d,date:c,badgeVariant:n,weekStartsOn:o,visibleHours:P,slotDuration:w.slotDuration,onDayClick:l,...u&&{onEventClick:u},...a&&{onSlotSelect:a}});case"month":return r.jsx(y.MonthView,{events:d,date:c,badgeVariant:n,weekStartsOn:o,onDayClick:l,...u&&{onEventClick:u},...a&&{onSlotSelect:a}});case"agenda":return r.jsx(y.AgendaView,{events:d,date:c,badgeVariant:n,...u&&{onEventClick:u},...i&&{emptyState:i}});default:return r.jsxs("div",{style:he,children:['View "',f,'" is not yet implemented']})}};return r.jsxs("div",{className:j,style:{...de,...H},children:[!W&&r.jsx("div",{style:ue,children:r.jsx(y.CalendarHeader,{view:f,currentDate:c,availableViews:F,onViewChange:k,onNavigate:t=>{t==="prev"?C():t==="next"?I():J()},actions:b,className:"p-3"})}),r.jsx("div",{style:fe,children:A()})]})}function xe({events:d,resources:ee,scheduleTypes:G=[],initialView:R="week",initialDate:_,initialFilters:se,preferences:p,badgeVariant:n="colored",hideHeader:W=!1,showFilterSidebar:F=!1,availableViews:u=["day","week","month","agenda"],onEventClick:a,onSlotSelect:x,onViewChange:N,onDateChange:j,onAddEvent:H,onFiltersChange:b,renderEvent:i,renderEventPopover:ae,renderFilterSidebar:f,renderHeader:T,settingsContent:c,filterContent:q,showSettings:w=!0,showTimelineViews:k=!1,className:h,headerActions:C,emptyState:I,children:J}){const[l,P]=s.useState(R),[o,A]=s.useState(_??new Date),[t,K]=s.useState([]),[O,Q]=s.useState([]),m=s.useMemo(()=>({...g.DEFAULT_PREFERENCES,...p}),[p]),V=s.useCallback(e=>{P(e),N?.(e)},[N]),D=s.useCallback(e=>{A(e),j?.(e)},[j]),z=s.useCallback(()=>{const e=g.navigatePrev(o,l);D(e)},[o,l,D]),U=s.useCallback(()=>{const e=g.navigateNext(o,l);D(e)},[o,l,D]),B=s.useCallback(()=>{const e=g.navigateToday();D(e)},[D]),S=s.useCallback(e=>{D(e),V("day")},[D,V]),X=s.useMemo(()=>({startHour:0,endHour:24}),[]),L=m.firstDayOfWeek===0?0:1,Y=s.useMemo(()=>{const e={};for(let v=0;v<=6;v++)v===0||v===6?m.showWeekends?v===6?e[v]={enabled:!0,from:8,to:12}:e[v]={enabled:!1,from:0,to:0}:e[v]={enabled:!1,from:0,to:0}:e[v]={enabled:!0,from:m.startHour,to:m.endHour};return e},[m.startHour,m.endHour,m.showWeekends]),te=s.useCallback(e=>{K(e),b?.({scheduleTypeIds:e,participantIds:O})},[b,O]),re=s.useCallback(e=>{Q(e),b?.({scheduleTypeIds:t,participantIds:e})},[b,t]),M=s.useMemo(()=>{if(i)return e=>i({event:e.event,view:l,variant:"full",position:{...e.position,zIndex:1},badgeVariant:n,...a&&{onClick:()=>a(e.event)}})},[i,l,n,a]),Z=s.useMemo(()=>{if(i)return e=>i({event:e.event,view:"month",variant:e.variant,badgeVariant:n,...a&&{onClick:()=>a(e.event)}})},[i,n,a]),$=s.useMemo(()=>{if(i)return e=>i({event:e.event,view:"agenda",variant:"block",badgeVariant:n,...a&&{onClick:()=>a(e.event)}})},[i,n,a]),ne=()=>{switch(l){case"day":return r.jsx(y.DayView,{events:d,date:o,badgeVariant:n,visibleHours:X,workingHours:Y,slotDuration:m.slotDuration,...a&&{onEventClick:a},...x&&{onSlotSelect:x},...M&&{renderEvent:M}});case"week":return r.jsx(y.WeekView,{events:d,date:o,badgeVariant:n,weekStartsOn:L,visibleHours:X,workingHours:Y,slotDuration:m.slotDuration,onDayClick:S,...a&&{onEventClick:a},...x&&{onSlotSelect:x},...M&&{renderEvent:M}});case"month":return r.jsx(y.MonthView,{events:d,date:o,badgeVariant:n,weekStartsOn:L,onDayClick:S,...a&&{onEventClick:a},...x&&{onSlotSelect:x},...Z&&{renderEvent:Z}});case"agenda":return r.jsx(y.AgendaView,{events:d,date:o,badgeVariant:n,...a&&{onEventClick:a},...I&&{emptyState:I},...$&&{renderEvent:$}});default:return r.jsxs("div",{className:"flex items-center justify-center h-64 text-gray-500",children:['View "',l,'" is not yet implemented']})}},ie=s.useCallback(e=>{e==="prev"?z():e==="next"?U():B()},[z,U,B]),E={view:l,currentDate:o,availableViews:u,onViewChange:V,onNavigate:ie,onNavigatePrev:z,onNavigateNext:U,onNavigateToday:B,...H&&{onAddEvent:H},...C&&{actions:C},className:"border-b border-gray-200 p-3"},le={...E,events:d,weekStartsOn:L,settingsContent:c,filterContent:q,showSettings:w,showTimelineViews:k},oe=s.useCallback(()=>{K([]),Q([]),b?.({scheduleTypeIds:[],participantIds:[]})},[b]);return r.jsxs("div",{className:ce.cn("flex h-full bg-white border border-gray-200 rounded-lg",h),children:[F&&r.jsx("div",{className:"w-64 border-r border-gray-200 flex-shrink-0",children:f?f({scheduleTypes:G,selectedScheduleTypeIds:t,selectedParticipantIds:O,onScheduleTypeChange:te,onParticipantChange:re,onClearAll:oe}):r.jsx("div",{className:"p-4 text-sm text-gray-500",children:"Filter sidebar not configured"})}),r.jsxs("div",{className:"flex flex-col flex-1 min-w-0",children:[!W&&(T?T(E):r.jsx(y.CalendarHeader,{...le})),r.jsx("div",{className:"flex-1 overflow-auto",children:ne()})]})]})}exports.DefaultCalendar=ye;exports.TailwindCalendar=xe;
2
- //# sourceMappingURL=tailwind-calendar-Ufp5YM_i.cjs.map
1
+ "use strict";const r=require("react/jsx-runtime"),s=require("react"),y=require("./week-view-DfavofVM.cjs"),g=require("./utils.cjs"),ce=require("./index-D2U2F80P.cjs"),de={display:"flex",flexDirection:"column",height:"100%",minHeight:"400px",backgroundColor:"var(--ic-bg, #ffffff)",border:"1px solid var(--ic-border, #e5e7eb)",borderRadius:"var(--ic-radius, 0.5rem)",overflow:"hidden",fontFamily:'var(--ic-font-family, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif)',fontSize:"var(--ic-font-size, 0.875rem)",color:"var(--ic-text, #111827)"},ue={borderBottom:"1px solid var(--ic-border, #e5e7eb)"},fe={flex:1,overflow:"auto"},he={display:"flex",alignItems:"center",justifyContent:"center",height:"16rem",color:"var(--ic-text-muted, #6b7280)"};function ye({events:d,resources:ee,scheduleTypes:G,initialView:R="week",initialDate:_,initialFilters:se,preferences:p,badgeVariant:n="colored",hideHeader:W=!1,availableViews:F=["day","week","month","agenda"],onEventClick:u,onSlotSelect:a,onViewChange:x,onDateChange:N,className:j="",style:H,headerActions:b,emptyState:i,children:ae}){const[f,T]=s.useState(R),[c,q]=s.useState(_??new Date),w=s.useMemo(()=>({...g.DEFAULT_PREFERENCES,...p}),[p]),k=s.useCallback(t=>{T(t),x?.(t)},[x]),h=s.useCallback(t=>{q(t),N?.(t)},[N]),C=s.useCallback(()=>{const t=g.navigatePrev(c,f);h(t)},[c,f,h]),I=s.useCallback(()=>{const t=g.navigateNext(c,f);h(t)},[c,f,h]),J=s.useCallback(()=>{const t=g.navigateToday();h(t)},[h]),l=s.useCallback(t=>{h(t),k("day")},[h,k]),P=s.useMemo(()=>({startHour:w.startHour,endHour:w.endHour}),[w.startHour,w.endHour]),o=w.firstDayOfWeek===0?0:1,A=()=>{switch(f){case"day":return r.jsx(y.DayView,{events:d,date:c,badgeVariant:n,visibleHours:P,slotDuration:w.slotDuration,...u&&{onEventClick:u},...a&&{onSlotSelect:a}});case"week":return r.jsx(y.WeekView,{events:d,date:c,badgeVariant:n,weekStartsOn:o,visibleHours:P,slotDuration:w.slotDuration,onDayClick:l,...u&&{onEventClick:u},...a&&{onSlotSelect:a}});case"month":return r.jsx(y.MonthView,{events:d,date:c,badgeVariant:n,weekStartsOn:o,onDayClick:l,...u&&{onEventClick:u},...a&&{onSlotSelect:a}});case"agenda":return r.jsx(y.AgendaView,{events:d,date:c,badgeVariant:n,...u&&{onEventClick:u},...i&&{emptyState:i}});default:return r.jsxs("div",{style:he,children:['View "',f,'" is not yet implemented']})}};return r.jsxs("div",{className:j,style:{...de,...H},children:[!W&&r.jsx("div",{style:ue,children:r.jsx(y.CalendarHeader,{view:f,currentDate:c,availableViews:F,onViewChange:k,onNavigate:t=>{t==="prev"?C():t==="next"?I():J()},actions:b,className:"p-3"})}),r.jsx("div",{style:fe,children:A()})]})}function xe({events:d,resources:ee,scheduleTypes:G=[],initialView:R="week",initialDate:_,initialFilters:se,preferences:p,badgeVariant:n="colored",hideHeader:W=!1,showFilterSidebar:F=!1,availableViews:u=["day","week","month","agenda"],onEventClick:a,onSlotSelect:x,onViewChange:N,onDateChange:j,onAddEvent:H,onFiltersChange:b,renderEvent:i,renderEventPopover:ae,renderFilterSidebar:f,renderHeader:T,settingsContent:c,filterContent:q,showSettings:w=!0,showTimelineViews:k=!1,className:h,headerActions:C,emptyState:I,children:J}){const[l,P]=s.useState(R),[o,A]=s.useState(_??new Date),[t,K]=s.useState([]),[O,Q]=s.useState([]),m=s.useMemo(()=>({...g.DEFAULT_PREFERENCES,...p}),[p]),V=s.useCallback(e=>{P(e),N?.(e)},[N]),D=s.useCallback(e=>{A(e),j?.(e)},[j]),z=s.useCallback(()=>{const e=g.navigatePrev(o,l);D(e)},[o,l,D]),U=s.useCallback(()=>{const e=g.navigateNext(o,l);D(e)},[o,l,D]),B=s.useCallback(()=>{const e=g.navigateToday();D(e)},[D]),S=s.useCallback(e=>{D(e),V("day")},[D,V]),X=s.useMemo(()=>({startHour:0,endHour:24}),[]),L=m.firstDayOfWeek===0?0:1,Y=s.useMemo(()=>{const e={};for(let v=0;v<=6;v++)v===0||v===6?m.showWeekends?v===6?e[v]={enabled:!0,from:8,to:12}:e[v]={enabled:!1,from:0,to:0}:e[v]={enabled:!1,from:0,to:0}:e[v]={enabled:!0,from:m.startHour,to:m.endHour};return e},[m.startHour,m.endHour,m.showWeekends]),te=s.useCallback(e=>{K(e),b?.({scheduleTypeIds:e,participantIds:O})},[b,O]),re=s.useCallback(e=>{Q(e),b?.({scheduleTypeIds:t,participantIds:e})},[b,t]),M=s.useMemo(()=>{if(i)return e=>i({event:e.event,view:l,variant:"full",position:{...e.position,zIndex:1},badgeVariant:n,...a&&{onClick:()=>a(e.event)}})},[i,l,n,a]),Z=s.useMemo(()=>{if(i)return e=>i({event:e.event,view:"month",variant:e.variant,badgeVariant:n,...a&&{onClick:()=>a(e.event)}})},[i,n,a]),$=s.useMemo(()=>{if(i)return e=>i({event:e.event,view:"agenda",variant:"block",badgeVariant:n,...a&&{onClick:()=>a(e.event)}})},[i,n,a]),ne=()=>{switch(l){case"day":return r.jsx(y.DayView,{events:d,date:o,badgeVariant:n,visibleHours:X,workingHours:Y,slotDuration:m.slotDuration,...a&&{onEventClick:a},...x&&{onSlotSelect:x},...M&&{renderEvent:M}});case"week":return r.jsx(y.WeekView,{events:d,date:o,badgeVariant:n,weekStartsOn:L,visibleHours:X,workingHours:Y,slotDuration:m.slotDuration,onDayClick:S,...a&&{onEventClick:a},...x&&{onSlotSelect:x},...M&&{renderEvent:M}});case"month":return r.jsx(y.MonthView,{events:d,date:o,badgeVariant:n,weekStartsOn:L,onDayClick:S,...a&&{onEventClick:a},...x&&{onSlotSelect:x},...Z&&{renderEvent:Z}});case"agenda":return r.jsx(y.AgendaView,{events:d,date:o,badgeVariant:n,...a&&{onEventClick:a},...I&&{emptyState:I},...$&&{renderEvent:$}});default:return r.jsxs("div",{className:"flex items-center justify-center h-64 text-gray-500",children:['View "',l,'" is not yet implemented']})}},ie=s.useCallback(e=>{e==="prev"?z():e==="next"?U():B()},[z,U,B]),E={view:l,currentDate:o,availableViews:u,onViewChange:V,onNavigate:ie,onNavigatePrev:z,onNavigateNext:U,onNavigateToday:B,...H&&{onAddEvent:H},...C&&{actions:C},className:"border-b border-gray-200 p-3"},le={...E,events:d,weekStartsOn:L,settingsContent:c,filterContent:q,showSettings:w,showTimelineViews:k},oe=s.useCallback(()=>{K([]),Q([]),b?.({scheduleTypeIds:[],participantIds:[]})},[b]);return r.jsxs("div",{className:ce.cn("flex h-full bg-white border border-gray-200 rounded-lg",h),children:[F&&r.jsx("div",{className:"w-64 border-r border-gray-200 flex-shrink-0",children:f?f({scheduleTypes:G,selectedScheduleTypeIds:t,selectedParticipantIds:O,onScheduleTypeChange:te,onParticipantChange:re,onClearAll:oe}):r.jsx("div",{className:"p-4 text-sm text-gray-500",children:"Filter sidebar not configured"})}),r.jsxs("div",{className:"flex flex-col flex-1 min-w-0",children:[!W&&(T?T(E):r.jsx(y.CalendarHeader,{...le})),r.jsx("div",{className:"flex-1 overflow-auto",children:ne()})]})]})}exports.DefaultCalendar=ye;exports.TailwindCalendar=xe;
2
+ //# sourceMappingURL=tailwind-calendar-B2Wloz_o.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind-calendar-Ufp5YM_i.cjs","sources":["../src/presets/default/default-calendar.tsx","../src/presets/tailwind/tailwind-calendar.tsx"],"sourcesContent":["/**\n * DefaultCalendar - Pre-styled Calendar Preset\n *\n * A fully styled calendar using CSS custom properties for theming.\n * Designed for projects that don't use TailwindCSS but want a complete solution.\n *\n * CSS Custom Properties (override these for theming):\n * - --ic-bg: Background color\n * - --ic-bg-muted: Muted background\n * - --ic-text: Primary text color\n * - --ic-text-muted: Secondary text color\n * - --ic-border: Border color\n * - --ic-primary: Primary/accent color\n * - --ic-primary-foreground: Text on primary background\n * - --ic-radius: Border radius\n *\n * @example\n * ```tsx\n * import { DefaultCalendar } from '@inno/calendar/presets';\n *\n * function MyAgenda() {\n * return (\n * <div style={{ '--ic-primary': '#6366f1' }}>\n * <DefaultCalendar\n * events={myEvents}\n * onEventClick={(event) => console.log('Clicked:', event)}\n * />\n * </div>\n * );\n * }\n * ```\n */\n\nimport { type CSSProperties, type ReactNode, useCallback, useMemo, useState } from 'react';\nimport { CalendarHeader } from '../../components/header/calendar-header';\nimport { AgendaView } from '../../components/views/agenda-view';\nimport { DayView } from '../../components/views/day-view';\nimport { MonthView } from '../../components/views/month-view';\nimport { WeekView } from '../../components/views/week-view';\nimport { DEFAULT_PREFERENCES } from '../../core/constants';\nimport type {\n\tCalendarEvent,\n\tICalendarFilters,\n\tICalendarPreferences,\n\tIResource,\n\tIScheduleType,\n\tISelectionResult,\n\tTBadgeVariant,\n\tTCalendarView,\n} from '../../core/types';\nimport { navigateNext, navigatePrev, navigateToday } from '../../core/utils/grid-utils';\n\n// ============================================================================\n// STYLES (CSS-in-JS for zero-config usage)\n// ============================================================================\n\nconst baseStyles: CSSProperties = {\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\theight: '100%',\n\tminHeight: '400px',\n\tbackgroundColor: 'var(--ic-bg, #ffffff)',\n\tborder: '1px solid var(--ic-border, #e5e7eb)',\n\tborderRadius: 'var(--ic-radius, 0.5rem)',\n\toverflow: 'hidden',\n\tfontFamily:\n\t\t'var(--ic-font-family, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif)',\n\tfontSize: 'var(--ic-font-size, 0.875rem)',\n\tcolor: 'var(--ic-text, #111827)',\n};\n\nconst headerStyles: CSSProperties = {\n\tborderBottom: '1px solid var(--ic-border, #e5e7eb)',\n};\n\nconst contentStyles: CSSProperties = {\n\tflex: 1,\n\toverflow: 'auto',\n};\n\nconst fallbackViewStyles: CSSProperties = {\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\theight: '16rem',\n\tcolor: 'var(--ic-text-muted, #6b7280)',\n};\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface DefaultCalendarProps<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n> {\n\t/** Events to display */\n\tevents: CalendarEvent<TEventData>[];\n\t/** Available resources */\n\tresources?: IResource<TResourceData>[];\n\t/** Available schedule types */\n\tscheduleTypes?: IScheduleType<TScheduleTypeData>[];\n\t/** Initial view */\n\tinitialView?: TCalendarView;\n\t/** Initial date */\n\tinitialDate?: Date;\n\t/** Initial filters */\n\tinitialFilters?: ICalendarFilters;\n\t/** Preferences */\n\tpreferences?: Partial<ICalendarPreferences>;\n\t/** Badge variant for events (dot, colored, mixed) */\n\tbadgeVariant?: TBadgeVariant;\n\t/** Hide the header */\n\thideHeader?: boolean;\n\t/** Available views to show in view switcher */\n\tavailableViews?: TCalendarView[];\n\t/** Event click handler */\n\tonEventClick?: (event: CalendarEvent<TEventData>) => void;\n\t/** Slot selection handler */\n\tonSlotSelect?: (selection: ISelectionResult) => void;\n\t/** View change handler */\n\tonViewChange?: (view: TCalendarView) => void;\n\t/** Date change handler */\n\tonDateChange?: (date: Date) => void;\n\t/** Additional CSS class */\n\tclassName?: string;\n\t/** Custom style overrides */\n\tstyle?: CSSProperties;\n\t/** Custom header actions */\n\theaderActions?: ReactNode;\n\t/** Empty state for agenda view */\n\temptyState?: ReactNode;\n\t/** Children (for header slot) */\n\tchildren?: ReactNode;\n}\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport function DefaultCalendar<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n>({\n\tevents,\n\tresources: _resources,\n\tscheduleTypes: _scheduleTypes,\n\tinitialView = 'week',\n\tinitialDate,\n\tinitialFilters: _initialFilters,\n\tpreferences: userPreferences,\n\tbadgeVariant = 'colored',\n\thideHeader = false,\n\tavailableViews = ['day', 'week', 'month', 'agenda'],\n\tonEventClick,\n\tonSlotSelect,\n\tonViewChange,\n\tonDateChange,\n\tclassName = '',\n\tstyle,\n\theaderActions,\n\temptyState,\n\tchildren: _children,\n}: DefaultCalendarProps<TEventData, TScheduleTypeData, TResourceData>) {\n\t// ========================================================================\n\t// STATE\n\t// ========================================================================\n\n\tconst [view, setView] = useState<TCalendarView>(initialView);\n\tconst [date, setDate] = useState<Date>(initialDate ?? new Date());\n\n\t// Merge user preferences with defaults\n\tconst preferences: ICalendarPreferences = useMemo(\n\t\t() => ({\n\t\t\t...DEFAULT_PREFERENCES,\n\t\t\t...userPreferences,\n\t\t}),\n\t\t[userPreferences]\n\t);\n\n\t// ========================================================================\n\t// HANDLERS\n\t// ========================================================================\n\n\tconst handleViewChange = useCallback(\n\t\t(newView: TCalendarView) => {\n\t\t\tsetView(newView);\n\t\t\tonViewChange?.(newView);\n\t\t},\n\t\t[onViewChange]\n\t);\n\n\tconst handleDateChange = useCallback(\n\t\t(newDate: Date) => {\n\t\t\tsetDate(newDate);\n\t\t\tonDateChange?.(newDate);\n\t\t},\n\t\t[onDateChange]\n\t);\n\n\tconst handleNavigatePrev = useCallback(() => {\n\t\tconst newDate = navigatePrev(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateNext = useCallback(() => {\n\t\tconst newDate = navigateNext(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateToday = useCallback(() => {\n\t\tconst newDate = navigateToday();\n\t\thandleDateChange(newDate);\n\t}, [handleDateChange]);\n\n\tconst handleDayClick = useCallback(\n\t\t(clickedDate: Date) => {\n\t\t\t// Navigate to day view when clicking a day in month view\n\t\t\thandleDateChange(clickedDate);\n\t\t\thandleViewChange('day');\n\t\t},\n\t\t[handleDateChange, handleViewChange]\n\t);\n\n\t// ========================================================================\n\t// VIEW RENDERING\n\t// ========================================================================\n\n\t// Build visible hours from preferences\n\tconst visibleHours = useMemo(\n\t\t() => ({\n\t\t\tstartHour: preferences.startHour,\n\t\t\tendHour: preferences.endHour,\n\t\t}),\n\t\t[preferences.startHour, preferences.endHour]\n\t);\n\n\t// Week starts on (convert from 0-6 to 0 | 1)\n\tconst weekStartsOn: 0 | 1 = preferences.firstDayOfWeek === 0 ? 0 : 1;\n\n\tconst renderView = () => {\n\t\tswitch (view) {\n\t\t\tcase 'day':\n\t\t\t\treturn (\n\t\t\t\t\t<DayView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'week':\n\t\t\t\treturn (\n\t\t\t\t\t<WeekView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'month':\n\t\t\t\treturn (\n\t\t\t\t\t<MonthView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'agenda':\n\t\t\t\treturn (\n\t\t\t\t\t<AgendaView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(emptyState && { emptyState })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn <div style={fallbackViewStyles}>View &quot;{view}&quot; is not yet implemented</div>;\n\t\t}\n\t};\n\n\t// ========================================================================\n\t// RENDER\n\t// ========================================================================\n\n\treturn (\n\t\t<div className={className} style={{ ...baseStyles, ...style }}>\n\t\t\t{/* Header */}\n\t\t\t{!hideHeader && (\n\t\t\t\t<div style={headerStyles}>\n\t\t\t\t\t<CalendarHeader\n\t\t\t\t\t\tview={view}\n\t\t\t\t\t\tcurrentDate={date}\n\t\t\t\t\t\tavailableViews={availableViews}\n\t\t\t\t\t\tonViewChange={handleViewChange}\n\t\t\t\t\t\tonNavigate={(direction) => {\n\t\t\t\t\t\t\tif (direction === 'prev') handleNavigatePrev();\n\t\t\t\t\t\t\telse if (direction === 'next') handleNavigateNext();\n\t\t\t\t\t\t\telse handleNavigateToday();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tactions={headerActions}\n\t\t\t\t\t\tclassName=\"p-3\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Calendar View */}\n\t\t\t<div style={contentStyles}>{renderView()}</div>\n\t\t</div>\n\t);\n}\n","/**\n * TailwindCalendar - Tailwind-Optimized Calendar Preset\n *\n * A fully featured, ready-to-use calendar component designed for TailwindCSS projects.\n * Composes all calendar components into a cohesive experience.\n *\n * Features:\n * - Full customization via render props (renderEvent, renderEventPopover, renderFilterSidebar)\n * - All visual components can be replaced while keeping state management\n * - Matches production quality when used with custom components\n *\n * @example\n * ```tsx\n * import { TailwindCalendar } from '@inno/calendar/presets';\n *\n * function MyAgenda() {\n * return (\n * <TailwindCalendar\n * events={myEvents}\n * onEventClick={(event) => console.log('Clicked:', event)}\n * onSlotSelect={(selection) => console.log('Selected:', selection)}\n * // Custom components for production quality\n * renderEvent={(event) => <MyEventCard event={event} />}\n * renderEventPopover={(event, onClose) => <MyEventPopover event={event} onClose={onClose} />}\n * renderFilterSidebar={(props) => <MyFilterSidebar {...props} />}\n * />\n * );\n * }\n * ```\n */\n\nimport { type ReactNode, useCallback, useMemo, useState } from 'react';\nimport { CalendarHeader } from '../../components/header/calendar-header';\nimport { AgendaView } from '../../components/views/agenda-view';\nimport { DayView } from '../../components/views/day-view';\nimport { MonthView } from '../../components/views/month-view';\nimport { WeekView } from '../../components/views/week-view';\nimport { DEFAULT_PREFERENCES } from '../../core/constants';\nimport type {\n\tCalendarEvent,\n\tICalendarFilters,\n\tICalendarPreferences,\n\tIEventPosition,\n\tIResource,\n\tIScheduleType,\n\tISelectionResult,\n\tTBadgeVariant,\n\tTCalendarView,\n} from '../../core/types';\nimport { navigateNext, navigatePrev, navigateToday } from '../../core/utils/grid-utils';\nimport { cn } from '../../lib/utils';\n\n// ============================================================================\n// RENDER PROP TYPES\n// ============================================================================\n\n/**\n * Props for custom event rendering\n */\nexport interface RenderEventProps<TEventData = Record<string, unknown>> {\n\tevent: CalendarEvent<TEventData>;\n\tview: TCalendarView;\n\tvariant: 'full' | 'compact' | 'dot' | 'block';\n\tposition?: IEventPosition;\n\tbadgeVariant: TBadgeVariant;\n\tonClick?: () => void;\n}\n\n/**\n * Props for custom event popover rendering\n */\nexport interface RenderEventPopoverProps<TEventData = Record<string, unknown>> {\n\tevent: CalendarEvent<TEventData>;\n\tonClose: () => void;\n}\n\n/**\n * Props for custom filter sidebar rendering\n */\nexport interface RenderFilterSidebarProps<TScheduleTypeData = Record<string, unknown>> {\n\tscheduleTypes: IScheduleType<TScheduleTypeData>[];\n\tselectedScheduleTypeIds: number[];\n\tonScheduleTypeChange: (ids: number[]) => void;\n\tselectedParticipantIds: string[];\n\tonParticipantChange: (ids: string[]) => void;\n\tonClearAll?: () => void;\n}\n\n/**\n * Props for custom header rendering\n */\nexport interface RenderHeaderProps {\n\tview: TCalendarView;\n\tcurrentDate: Date;\n\tavailableViews: TCalendarView[];\n\tonViewChange: (view: TCalendarView) => void;\n\tonNavigate: (direction: 'prev' | 'next' | 'today') => void;\n\tonNavigatePrev?: () => void;\n\tonNavigateNext?: () => void;\n\tonNavigateToday?: () => void;\n\tonAddEvent?: () => void;\n\tactions?: ReactNode;\n\tclassName?: string;\n}\n\n// ============================================================================\n// COMPONENT PROPS\n// ============================================================================\n\nexport interface TailwindCalendarProps<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n> {\n\t/** Events to display */\n\tevents: CalendarEvent<TEventData>[];\n\t/** Available resources */\n\tresources?: IResource<TResourceData>[];\n\t/** Available schedule types */\n\tscheduleTypes?: IScheduleType<TScheduleTypeData>[];\n\t/** Initial view */\n\tinitialView?: TCalendarView;\n\t/** Initial date */\n\tinitialDate?: Date;\n\t/** Initial filters */\n\tinitialFilters?: ICalendarFilters;\n\t/** Preferences */\n\tpreferences?: Partial<ICalendarPreferences>;\n\t/** Badge variant for events (dot, colored, mixed) */\n\tbadgeVariant?: TBadgeVariant;\n\t/** Hide the header */\n\thideHeader?: boolean;\n\t/** Show filter sidebar */\n\tshowFilterSidebar?: boolean;\n\t/** Available views to show in view switcher */\n\tavailableViews?: TCalendarView[];\n\n\t// ========================================================================\n\t// CALLBACKS\n\t// ========================================================================\n\n\t/** Event click handler */\n\tonEventClick?: (event: CalendarEvent<TEventData>) => void;\n\t/** Slot selection handler */\n\tonSlotSelect?: (selection: ISelectionResult) => void;\n\t/** View change handler */\n\tonViewChange?: (view: TCalendarView) => void;\n\t/** Date change handler */\n\tonDateChange?: (date: Date) => void;\n\t/** Add event handler (for header button) */\n\tonAddEvent?: () => void;\n\t/** Filter change handler */\n\tonFiltersChange?: (filters: ICalendarFilters) => void;\n\n\t// ========================================================================\n\t// RENDER PROPS (for custom components)\n\t// ========================================================================\n\n\t/**\n\t * Custom event renderer\n\t * Use this to inject your own EventCard component\n\t */\n\trenderEvent?: (props: RenderEventProps<TEventData>) => ReactNode;\n\n\t/**\n\t * Custom event popover renderer\n\t * Use this to inject your own EventPopover component\n\t * If not provided, a basic popover is shown\n\t */\n\trenderEventPopover?: (props: RenderEventPopoverProps<TEventData>) => ReactNode;\n\n\t/**\n\t * Custom filter sidebar renderer\n\t * Use this to inject your own CalendarFilterSidebar component\n\t */\n\trenderFilterSidebar?: (props: RenderFilterSidebarProps<TScheduleTypeData>) => ReactNode;\n\n\t/**\n\t * Custom header renderer\n\t * Use this to inject your own CalendarHeader component\n\t */\n\trenderHeader?: (props: RenderHeaderProps) => ReactNode;\n\n\t// ========================================================================\n\t// HEADER SLOTS\n\t// ========================================================================\n\n\t/** Settings popover content (for default header) */\n\tsettingsContent?: ReactNode;\n\t/** Filter row content (for default header) */\n\tfilterContent?: ReactNode;\n\t/** Whether to show the settings button (default: true) */\n\tshowSettings?: boolean;\n\t/** Whether to show timeline view options (default: false) */\n\tshowTimelineViews?: boolean;\n\n\t// ========================================================================\n\t// STYLING\n\t// ========================================================================\n\n\t/** Additional CSS class */\n\tclassName?: string;\n\t/** Custom header actions (shown in default header) */\n\theaderActions?: ReactNode;\n\t/** Empty state for agenda view */\n\temptyState?: ReactNode;\n\t/** Children (for header slot) */\n\tchildren?: ReactNode;\n}\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport function TailwindCalendar<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n>({\n\tevents,\n\tresources: _resources,\n\tscheduleTypes = [],\n\tinitialView = 'week',\n\tinitialDate,\n\tinitialFilters: _initialFilters,\n\tpreferences: userPreferences,\n\tbadgeVariant = 'colored',\n\thideHeader = false,\n\tshowFilterSidebar = false,\n\tavailableViews = ['day', 'week', 'month', 'agenda'],\n\tonEventClick,\n\tonSlotSelect,\n\tonViewChange,\n\tonDateChange,\n\tonAddEvent,\n\tonFiltersChange,\n\trenderEvent,\n\trenderEventPopover: _renderEventPopover,\n\trenderFilterSidebar,\n\trenderHeader,\n\tsettingsContent,\n\tfilterContent,\n\tshowSettings = true,\n\tshowTimelineViews = false,\n\tclassName,\n\theaderActions,\n\temptyState,\n\tchildren: _children,\n}: TailwindCalendarProps<TEventData, TScheduleTypeData, TResourceData>) {\n\t// ========================================================================\n\t// STATE\n\t// ========================================================================\n\n\tconst [view, setView] = useState<TCalendarView>(initialView);\n\tconst [date, setDate] = useState<Date>(initialDate ?? new Date());\n\n\t// Filter state (for filter sidebar)\n\tconst [selectedScheduleTypeIds, setSelectedScheduleTypeIds] = useState<number[]>([]);\n\tconst [selectedParticipantIds, setSelectedParticipantIds] = useState<string[]>([]);\n\n\t// Merge user preferences with defaults\n\tconst preferences: ICalendarPreferences = useMemo(\n\t\t() => ({\n\t\t\t...DEFAULT_PREFERENCES,\n\t\t\t...userPreferences,\n\t\t}),\n\t\t[userPreferences]\n\t);\n\n\t// ========================================================================\n\t// HANDLERS\n\t// ========================================================================\n\n\tconst handleViewChange = useCallback(\n\t\t(newView: TCalendarView) => {\n\t\t\tsetView(newView);\n\t\t\tonViewChange?.(newView);\n\t\t},\n\t\t[onViewChange]\n\t);\n\n\tconst handleDateChange = useCallback(\n\t\t(newDate: Date) => {\n\t\t\tsetDate(newDate);\n\t\t\tonDateChange?.(newDate);\n\t\t},\n\t\t[onDateChange]\n\t);\n\n\tconst handleNavigatePrev = useCallback(() => {\n\t\tconst newDate = navigatePrev(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateNext = useCallback(() => {\n\t\tconst newDate = navigateNext(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateToday = useCallback(() => {\n\t\tconst newDate = navigateToday();\n\t\thandleDateChange(newDate);\n\t}, [handleDateChange]);\n\n\tconst handleDayClick = useCallback(\n\t\t(clickedDate: Date) => {\n\t\t\t// Navigate to day view when clicking a day in month view\n\t\t\thandleDateChange(clickedDate);\n\t\t\thandleViewChange('day');\n\t\t},\n\t\t[handleDateChange, handleViewChange]\n\t);\n\n\t// ========================================================================\n\t// VIEW RENDERING\n\t// ========================================================================\n\n\t// Visible hours - show all hours (0-24) so users can see the full day\n\t// The working hours determine which slots have striped (disabled) appearance\n\tconst visibleHours = useMemo(\n\t\t() => ({\n\t\t\tstartHour: 0,\n\t\t\tendHour: 24,\n\t\t}),\n\t\t[]\n\t);\n\n\t// Week starts on (convert from 0-6 to 0 | 1)\n\tconst weekStartsOn: 0 | 1 = preferences.firstDayOfWeek === 0 ? 0 : 1;\n\n\t// Build working hours from preferences (for time grid views)\n\t// Working hours determine which slots are clickable and don't have striped pattern\n\t// Non-working hours get diagonal stripes and are disabled\n\tconst workingHours = useMemo(() => {\n\t\tconst hours: Record<number, { enabled: boolean; from: number; to: number }> = {};\n\t\tfor (let i = 0; i <= 6; i++) {\n\t\t\tconst isWeekend = i === 0 || i === 6;\n\t\t\t// Weekdays: use preferences, Weekends: use preferences if showWeekends, otherwise disabled\n\t\t\tif (!isWeekend) {\n\t\t\t\t// Weekdays (Mon-Fri): always have working hours from preferences\n\t\t\t\thours[i] = { enabled: true, from: preferences.startHour, to: preferences.endHour };\n\t\t\t} else if (preferences.showWeekends) {\n\t\t\t\t// Weekends with showWeekends: Saturday half-day (8-12), Sunday disabled\n\t\t\t\tif (i === 6) {\n\t\t\t\t\t// Saturday - half day (matching agenda-v2)\n\t\t\t\t\thours[i] = { enabled: true, from: 8, to: 12 };\n\t\t\t\t} else {\n\t\t\t\t\t// Sunday - disabled\n\t\t\t\t\thours[i] = { enabled: false, from: 0, to: 0 };\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Weekends without showWeekends: both disabled\n\t\t\t\thours[i] = { enabled: false, from: 0, to: 0 };\n\t\t\t}\n\t\t}\n\t\treturn hours;\n\t}, [preferences.startHour, preferences.endHour, preferences.showWeekends]);\n\n\t// Handle filter changes\n\tconst handleScheduleTypeFilterChange = useCallback(\n\t\t(ids: number[]) => {\n\t\t\tsetSelectedScheduleTypeIds(ids);\n\t\t\tonFiltersChange?.({\n\t\t\t\tscheduleTypeIds: ids,\n\t\t\t\tparticipantIds: selectedParticipantIds,\n\t\t\t});\n\t\t},\n\t\t[onFiltersChange, selectedParticipantIds]\n\t);\n\n\tconst handleParticipantFilterChange = useCallback(\n\t\t(ids: string[]) => {\n\t\t\tsetSelectedParticipantIds(ids);\n\t\t\tonFiltersChange?.({\n\t\t\t\tscheduleTypeIds: selectedScheduleTypeIds,\n\t\t\t\tparticipantIds: ids,\n\t\t\t});\n\t\t},\n\t\t[onFiltersChange, selectedScheduleTypeIds]\n\t);\n\n\t// Create render event adapters for different view types\n\t// Each view has a slightly different renderEvent signature\n\n\tconst dayWeekRenderEvent = useMemo(() => {\n\t\tif (!renderEvent) return undefined;\n\t\treturn (props: {\n\t\t\tevent: CalendarEvent<TEventData>;\n\t\t\tposition: { top: number; height: number; left: number; width: number };\n\t\t}) => {\n\t\t\treturn renderEvent({\n\t\t\t\tevent: props.event,\n\t\t\t\tview,\n\t\t\t\tvariant: 'full',\n\t\t\t\tposition: { ...props.position, zIndex: 1 },\n\t\t\t\tbadgeVariant,\n\t\t\t\t...(onEventClick && { onClick: () => onEventClick(props.event) }),\n\t\t\t});\n\t\t};\n\t}, [renderEvent, view, badgeVariant, onEventClick]);\n\n\tconst monthRenderEvent = useMemo(() => {\n\t\tif (!renderEvent) return undefined;\n\t\treturn (props: { event: CalendarEvent<TEventData>; variant: 'compact' }) => {\n\t\t\treturn renderEvent({\n\t\t\t\tevent: props.event,\n\t\t\t\tview: 'month',\n\t\t\t\tvariant: props.variant,\n\t\t\t\tbadgeVariant,\n\t\t\t\t...(onEventClick && { onClick: () => onEventClick(props.event) }),\n\t\t\t});\n\t\t};\n\t}, [renderEvent, badgeVariant, onEventClick]);\n\n\tconst agendaRenderEvent = useMemo(() => {\n\t\tif (!renderEvent) return undefined;\n\t\treturn (props: { event: CalendarEvent<TEventData> }) => {\n\t\t\treturn renderEvent({\n\t\t\t\tevent: props.event,\n\t\t\t\tview: 'agenda',\n\t\t\t\tvariant: 'block',\n\t\t\t\tbadgeVariant,\n\t\t\t\t...(onEventClick && { onClick: () => onEventClick(props.event) }),\n\t\t\t});\n\t\t};\n\t}, [renderEvent, badgeVariant, onEventClick]);\n\n\tconst renderView = () => {\n\t\tswitch (view) {\n\t\t\tcase 'day':\n\t\t\t\treturn (\n\t\t\t\t\t<DayView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tworkingHours={workingHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t\t{...(dayWeekRenderEvent && { renderEvent: dayWeekRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'week':\n\t\t\t\treturn (\n\t\t\t\t\t<WeekView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tworkingHours={workingHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t\t{...(dayWeekRenderEvent && { renderEvent: dayWeekRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'month':\n\t\t\t\treturn (\n\t\t\t\t\t<MonthView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t\t{...(monthRenderEvent && { renderEvent: monthRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'agenda':\n\t\t\t\treturn (\n\t\t\t\t\t<AgendaView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(emptyState && { emptyState })}\n\t\t\t\t\t\t{...(agendaRenderEvent && { renderEvent: agendaRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"flex items-center justify-center h-64 text-gray-500\">\n\t\t\t\t\t\tView &quot;{view}&quot; is not yet implemented\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t}\n\t};\n\n\t// ========================================================================\n\t// RENDER\n\t// ========================================================================\n\n\t// Header navigation handler\n\tconst handleNavigate = useCallback(\n\t\t(direction: 'prev' | 'next' | 'today') => {\n\t\t\tif (direction === 'prev') handleNavigatePrev();\n\t\t\telse if (direction === 'next') handleNavigateNext();\n\t\t\telse handleNavigateToday();\n\t\t},\n\t\t[handleNavigatePrev, handleNavigateNext, handleNavigateToday]\n\t);\n\n\t// Default header props (conditionally add optional props)\n\tconst headerProps: RenderHeaderProps = {\n\t\tview,\n\t\tcurrentDate: date,\n\t\tavailableViews,\n\t\tonViewChange: handleViewChange,\n\t\tonNavigate: handleNavigate,\n\t\tonNavigatePrev: handleNavigatePrev,\n\t\tonNavigateNext: handleNavigateNext,\n\t\tonNavigateToday: handleNavigateToday,\n\t\t...(onAddEvent && { onAddEvent }),\n\t\t...(headerActions && { actions: headerActions }),\n\t\tclassName: 'border-b border-gray-200 p-3',\n\t};\n\n\t// Calendar header props (includes events for count display + slots)\n\tconst calendarHeaderProps = {\n\t\t...headerProps,\n\t\tevents,\n\t\tweekStartsOn,\n\t\tsettingsContent,\n\t\tfilterContent,\n\t\tshowSettings,\n\t\tshowTimelineViews,\n\t};\n\n\t// Clear all filters handler\n\tconst handleClearAllFilters = useCallback(() => {\n\t\tsetSelectedScheduleTypeIds([]);\n\t\tsetSelectedParticipantIds([]);\n\t\tonFiltersChange?.({\n\t\t\tscheduleTypeIds: [],\n\t\t\tparticipantIds: [],\n\t\t});\n\t}, [onFiltersChange]);\n\n\treturn (\n\t\t<div className={cn('flex h-full bg-white border border-gray-200 rounded-lg', className)}>\n\t\t\t{/* Filter Sidebar */}\n\t\t\t{showFilterSidebar && (\n\t\t\t\t<div className=\"w-64 border-r border-gray-200 flex-shrink-0\">\n\t\t\t\t\t{renderFilterSidebar ? (\n\t\t\t\t\t\trenderFilterSidebar({\n\t\t\t\t\t\t\tscheduleTypes,\n\t\t\t\t\t\t\tselectedScheduleTypeIds,\n\t\t\t\t\t\t\tselectedParticipantIds,\n\t\t\t\t\t\t\tonScheduleTypeChange: handleScheduleTypeFilterChange,\n\t\t\t\t\t\t\tonParticipantChange: handleParticipantFilterChange,\n\t\t\t\t\t\t\tonClearAll: handleClearAllFilters,\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"p-4 text-sm text-gray-500\">Filter sidebar not configured</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Main Calendar Area */}\n\t\t\t<div className=\"flex flex-col flex-1 min-w-0\">\n\t\t\t\t{/* Header */}\n\t\t\t\t{!hideHeader &&\n\t\t\t\t\t(renderHeader ? renderHeader(headerProps) : <CalendarHeader {...calendarHeaderProps} />)}\n\n\t\t\t\t{/* Calendar View */}\n\t\t\t\t<div className=\"flex-1 overflow-auto\">{renderView()}</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"names":["baseStyles","headerStyles","contentStyles","fallbackViewStyles","DefaultCalendar","events","_resources","_scheduleTypes","initialView","initialDate","_initialFilters","userPreferences","badgeVariant","hideHeader","availableViews","onEventClick","onSlotSelect","onViewChange","onDateChange","className","style","headerActions","emptyState","_children","view","setView","useState","date","setDate","preferences","useMemo","DEFAULT_PREFERENCES","handleViewChange","useCallback","newView","handleDateChange","newDate","handleNavigatePrev","navigatePrev","handleNavigateNext","navigateNext","handleNavigateToday","navigateToday","handleDayClick","clickedDate","visibleHours","weekStartsOn","renderView","jsx","DayView","WeekView","MonthView","AgendaView","jsxs","CalendarHeader","direction","TailwindCalendar","scheduleTypes","showFilterSidebar","onAddEvent","onFiltersChange","renderEvent","_renderEventPopover","renderFilterSidebar","renderHeader","settingsContent","filterContent","showSettings","showTimelineViews","selectedScheduleTypeIds","setSelectedScheduleTypeIds","selectedParticipantIds","setSelectedParticipantIds","workingHours","hours","i","handleScheduleTypeFilterChange","ids","handleParticipantFilterChange","dayWeekRenderEvent","props","monthRenderEvent","agendaRenderEvent","handleNavigate","headerProps","calendarHeaderProps","handleClearAllFilters","cn"],"mappings":"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"}
1
+ {"version":3,"file":"tailwind-calendar-B2Wloz_o.cjs","sources":["../src/presets/default/default-calendar.tsx","../src/presets/tailwind/tailwind-calendar.tsx"],"sourcesContent":["/**\n * DefaultCalendar - Pre-styled Calendar Preset\n *\n * A fully styled calendar using CSS custom properties for theming.\n * Designed for projects that don't use TailwindCSS but want a complete solution.\n *\n * CSS Custom Properties (override these for theming):\n * - --ic-bg: Background color\n * - --ic-bg-muted: Muted background\n * - --ic-text: Primary text color\n * - --ic-text-muted: Secondary text color\n * - --ic-border: Border color\n * - --ic-primary: Primary/accent color\n * - --ic-primary-foreground: Text on primary background\n * - --ic-radius: Border radius\n *\n * @example\n * ```tsx\n * import { DefaultCalendar } from '@inno/calendar/presets';\n *\n * function MyAgenda() {\n * return (\n * <div style={{ '--ic-primary': '#6366f1' }}>\n * <DefaultCalendar\n * events={myEvents}\n * onEventClick={(event) => console.log('Clicked:', event)}\n * />\n * </div>\n * );\n * }\n * ```\n */\n\nimport { type CSSProperties, type ReactNode, useCallback, useMemo, useState } from 'react';\nimport { CalendarHeader } from '../../components/header/calendar-header';\nimport { AgendaView } from '../../components/views/agenda-view';\nimport { DayView } from '../../components/views/day-view';\nimport { MonthView } from '../../components/views/month-view';\nimport { WeekView } from '../../components/views/week-view';\nimport { DEFAULT_PREFERENCES } from '../../core/constants';\nimport type {\n\tCalendarEvent,\n\tICalendarFilters,\n\tICalendarPreferences,\n\tIResource,\n\tIScheduleType,\n\tISelectionResult,\n\tTBadgeVariant,\n\tTCalendarView,\n} from '../../core/types';\nimport { navigateNext, navigatePrev, navigateToday } from '../../core/utils/grid-utils';\n\n// ============================================================================\n// STYLES (CSS-in-JS for zero-config usage)\n// ============================================================================\n\nconst baseStyles: CSSProperties = {\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\theight: '100%',\n\tminHeight: '400px',\n\tbackgroundColor: 'var(--ic-bg, #ffffff)',\n\tborder: '1px solid var(--ic-border, #e5e7eb)',\n\tborderRadius: 'var(--ic-radius, 0.5rem)',\n\toverflow: 'hidden',\n\tfontFamily:\n\t\t'var(--ic-font-family, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif)',\n\tfontSize: 'var(--ic-font-size, 0.875rem)',\n\tcolor: 'var(--ic-text, #111827)',\n};\n\nconst headerStyles: CSSProperties = {\n\tborderBottom: '1px solid var(--ic-border, #e5e7eb)',\n};\n\nconst contentStyles: CSSProperties = {\n\tflex: 1,\n\toverflow: 'auto',\n};\n\nconst fallbackViewStyles: CSSProperties = {\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\theight: '16rem',\n\tcolor: 'var(--ic-text-muted, #6b7280)',\n};\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\nexport interface DefaultCalendarProps<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n> {\n\t/** Events to display */\n\tevents: CalendarEvent<TEventData>[];\n\t/** Available resources */\n\tresources?: IResource<TResourceData>[];\n\t/** Available schedule types */\n\tscheduleTypes?: IScheduleType<TScheduleTypeData>[];\n\t/** Initial view */\n\tinitialView?: TCalendarView;\n\t/** Initial date */\n\tinitialDate?: Date;\n\t/** Initial filters */\n\tinitialFilters?: ICalendarFilters;\n\t/** Preferences */\n\tpreferences?: Partial<ICalendarPreferences>;\n\t/** Badge variant for events (dot, colored, mixed) */\n\tbadgeVariant?: TBadgeVariant;\n\t/** Hide the header */\n\thideHeader?: boolean;\n\t/** Available views to show in view switcher */\n\tavailableViews?: TCalendarView[];\n\t/** Event click handler */\n\tonEventClick?: (event: CalendarEvent<TEventData>) => void;\n\t/** Slot selection handler */\n\tonSlotSelect?: (selection: ISelectionResult) => void;\n\t/** View change handler */\n\tonViewChange?: (view: TCalendarView) => void;\n\t/** Date change handler */\n\tonDateChange?: (date: Date) => void;\n\t/** Additional CSS class */\n\tclassName?: string;\n\t/** Custom style overrides */\n\tstyle?: CSSProperties;\n\t/** Custom header actions */\n\theaderActions?: ReactNode;\n\t/** Empty state for agenda view */\n\temptyState?: ReactNode;\n\t/** Children (for header slot) */\n\tchildren?: ReactNode;\n}\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport function DefaultCalendar<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n>({\n\tevents,\n\tresources: _resources,\n\tscheduleTypes: _scheduleTypes,\n\tinitialView = 'week',\n\tinitialDate,\n\tinitialFilters: _initialFilters,\n\tpreferences: userPreferences,\n\tbadgeVariant = 'colored',\n\thideHeader = false,\n\tavailableViews = ['day', 'week', 'month', 'agenda'],\n\tonEventClick,\n\tonSlotSelect,\n\tonViewChange,\n\tonDateChange,\n\tclassName = '',\n\tstyle,\n\theaderActions,\n\temptyState,\n\tchildren: _children,\n}: DefaultCalendarProps<TEventData, TScheduleTypeData, TResourceData>) {\n\t// ========================================================================\n\t// STATE\n\t// ========================================================================\n\n\tconst [view, setView] = useState<TCalendarView>(initialView);\n\tconst [date, setDate] = useState<Date>(initialDate ?? new Date());\n\n\t// Merge user preferences with defaults\n\tconst preferences: ICalendarPreferences = useMemo(\n\t\t() => ({\n\t\t\t...DEFAULT_PREFERENCES,\n\t\t\t...userPreferences,\n\t\t}),\n\t\t[userPreferences]\n\t);\n\n\t// ========================================================================\n\t// HANDLERS\n\t// ========================================================================\n\n\tconst handleViewChange = useCallback(\n\t\t(newView: TCalendarView) => {\n\t\t\tsetView(newView);\n\t\t\tonViewChange?.(newView);\n\t\t},\n\t\t[onViewChange]\n\t);\n\n\tconst handleDateChange = useCallback(\n\t\t(newDate: Date) => {\n\t\t\tsetDate(newDate);\n\t\t\tonDateChange?.(newDate);\n\t\t},\n\t\t[onDateChange]\n\t);\n\n\tconst handleNavigatePrev = useCallback(() => {\n\t\tconst newDate = navigatePrev(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateNext = useCallback(() => {\n\t\tconst newDate = navigateNext(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateToday = useCallback(() => {\n\t\tconst newDate = navigateToday();\n\t\thandleDateChange(newDate);\n\t}, [handleDateChange]);\n\n\tconst handleDayClick = useCallback(\n\t\t(clickedDate: Date) => {\n\t\t\t// Navigate to day view when clicking a day in month view\n\t\t\thandleDateChange(clickedDate);\n\t\t\thandleViewChange('day');\n\t\t},\n\t\t[handleDateChange, handleViewChange]\n\t);\n\n\t// ========================================================================\n\t// VIEW RENDERING\n\t// ========================================================================\n\n\t// Build visible hours from preferences\n\tconst visibleHours = useMemo(\n\t\t() => ({\n\t\t\tstartHour: preferences.startHour,\n\t\t\tendHour: preferences.endHour,\n\t\t}),\n\t\t[preferences.startHour, preferences.endHour]\n\t);\n\n\t// Week starts on (convert from 0-6 to 0 | 1)\n\tconst weekStartsOn: 0 | 1 = preferences.firstDayOfWeek === 0 ? 0 : 1;\n\n\tconst renderView = () => {\n\t\tswitch (view) {\n\t\t\tcase 'day':\n\t\t\t\treturn (\n\t\t\t\t\t<DayView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'week':\n\t\t\t\treturn (\n\t\t\t\t\t<WeekView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'month':\n\t\t\t\treturn (\n\t\t\t\t\t<MonthView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'agenda':\n\t\t\t\treturn (\n\t\t\t\t\t<AgendaView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(emptyState && { emptyState })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn <div style={fallbackViewStyles}>View &quot;{view}&quot; is not yet implemented</div>;\n\t\t}\n\t};\n\n\t// ========================================================================\n\t// RENDER\n\t// ========================================================================\n\n\treturn (\n\t\t<div className={className} style={{ ...baseStyles, ...style }}>\n\t\t\t{/* Header */}\n\t\t\t{!hideHeader && (\n\t\t\t\t<div style={headerStyles}>\n\t\t\t\t\t<CalendarHeader\n\t\t\t\t\t\tview={view}\n\t\t\t\t\t\tcurrentDate={date}\n\t\t\t\t\t\tavailableViews={availableViews}\n\t\t\t\t\t\tonViewChange={handleViewChange}\n\t\t\t\t\t\tonNavigate={(direction) => {\n\t\t\t\t\t\t\tif (direction === 'prev') handleNavigatePrev();\n\t\t\t\t\t\t\telse if (direction === 'next') handleNavigateNext();\n\t\t\t\t\t\t\telse handleNavigateToday();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tactions={headerActions}\n\t\t\t\t\t\tclassName=\"p-3\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Calendar View */}\n\t\t\t<div style={contentStyles}>{renderView()}</div>\n\t\t</div>\n\t);\n}\n","/**\n * TailwindCalendar - Tailwind-Optimized Calendar Preset\n *\n * A fully featured, ready-to-use calendar component designed for TailwindCSS projects.\n * Composes all calendar components into a cohesive experience.\n *\n * Features:\n * - Full customization via render props (renderEvent, renderEventPopover, renderFilterSidebar)\n * - All visual components can be replaced while keeping state management\n * - Matches production quality when used with custom components\n *\n * @example\n * ```tsx\n * import { TailwindCalendar } from '@inno/calendar/presets';\n *\n * function MyAgenda() {\n * return (\n * <TailwindCalendar\n * events={myEvents}\n * onEventClick={(event) => console.log('Clicked:', event)}\n * onSlotSelect={(selection) => console.log('Selected:', selection)}\n * // Custom components for production quality\n * renderEvent={(event) => <MyEventCard event={event} />}\n * renderEventPopover={(event, onClose) => <MyEventPopover event={event} onClose={onClose} />}\n * renderFilterSidebar={(props) => <MyFilterSidebar {...props} />}\n * />\n * );\n * }\n * ```\n */\n\nimport { type ReactNode, useCallback, useMemo, useState } from 'react';\nimport { CalendarHeader } from '../../components/header/calendar-header';\nimport { AgendaView } from '../../components/views/agenda-view';\nimport { DayView } from '../../components/views/day-view';\nimport { MonthView } from '../../components/views/month-view';\nimport { WeekView } from '../../components/views/week-view';\nimport { DEFAULT_PREFERENCES } from '../../core/constants';\nimport type {\n\tCalendarEvent,\n\tICalendarFilters,\n\tICalendarPreferences,\n\tIEventPosition,\n\tIResource,\n\tIScheduleType,\n\tISelectionResult,\n\tTBadgeVariant,\n\tTCalendarView,\n} from '../../core/types';\nimport { navigateNext, navigatePrev, navigateToday } from '../../core/utils/grid-utils';\nimport { cn } from '../../lib/utils';\n\n// ============================================================================\n// RENDER PROP TYPES\n// ============================================================================\n\n/**\n * Props for custom event rendering\n */\nexport interface RenderEventProps<TEventData = Record<string, unknown>> {\n\tevent: CalendarEvent<TEventData>;\n\tview: TCalendarView;\n\tvariant: 'full' | 'compact' | 'dot' | 'block';\n\tposition?: IEventPosition;\n\tbadgeVariant: TBadgeVariant;\n\tonClick?: () => void;\n}\n\n/**\n * Props for custom event popover rendering\n */\nexport interface RenderEventPopoverProps<TEventData = Record<string, unknown>> {\n\tevent: CalendarEvent<TEventData>;\n\tonClose: () => void;\n}\n\n/**\n * Props for custom filter sidebar rendering\n */\nexport interface RenderFilterSidebarProps<TScheduleTypeData = Record<string, unknown>> {\n\tscheduleTypes: IScheduleType<TScheduleTypeData>[];\n\tselectedScheduleTypeIds: number[];\n\tonScheduleTypeChange: (ids: number[]) => void;\n\tselectedParticipantIds: string[];\n\tonParticipantChange: (ids: string[]) => void;\n\tonClearAll?: () => void;\n}\n\n/**\n * Props for custom header rendering\n */\nexport interface RenderHeaderProps {\n\tview: TCalendarView;\n\tcurrentDate: Date;\n\tavailableViews: TCalendarView[];\n\tonViewChange: (view: TCalendarView) => void;\n\tonNavigate: (direction: 'prev' | 'next' | 'today') => void;\n\tonNavigatePrev?: () => void;\n\tonNavigateNext?: () => void;\n\tonNavigateToday?: () => void;\n\tonAddEvent?: () => void;\n\tactions?: ReactNode;\n\tclassName?: string;\n}\n\n// ============================================================================\n// COMPONENT PROPS\n// ============================================================================\n\nexport interface TailwindCalendarProps<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n> {\n\t/** Events to display */\n\tevents: CalendarEvent<TEventData>[];\n\t/** Available resources */\n\tresources?: IResource<TResourceData>[];\n\t/** Available schedule types */\n\tscheduleTypes?: IScheduleType<TScheduleTypeData>[];\n\t/** Initial view */\n\tinitialView?: TCalendarView;\n\t/** Initial date */\n\tinitialDate?: Date;\n\t/** Initial filters */\n\tinitialFilters?: ICalendarFilters;\n\t/** Preferences */\n\tpreferences?: Partial<ICalendarPreferences>;\n\t/** Badge variant for events (dot, colored, mixed) */\n\tbadgeVariant?: TBadgeVariant;\n\t/** Hide the header */\n\thideHeader?: boolean;\n\t/** Show filter sidebar */\n\tshowFilterSidebar?: boolean;\n\t/** Available views to show in view switcher */\n\tavailableViews?: TCalendarView[];\n\n\t// ========================================================================\n\t// CALLBACKS\n\t// ========================================================================\n\n\t/** Event click handler */\n\tonEventClick?: (event: CalendarEvent<TEventData>) => void;\n\t/** Slot selection handler */\n\tonSlotSelect?: (selection: ISelectionResult) => void;\n\t/** View change handler */\n\tonViewChange?: (view: TCalendarView) => void;\n\t/** Date change handler */\n\tonDateChange?: (date: Date) => void;\n\t/** Add event handler (for header button) */\n\tonAddEvent?: () => void;\n\t/** Filter change handler */\n\tonFiltersChange?: (filters: ICalendarFilters) => void;\n\n\t// ========================================================================\n\t// RENDER PROPS (for custom components)\n\t// ========================================================================\n\n\t/**\n\t * Custom event renderer\n\t * Use this to inject your own EventCard component\n\t */\n\trenderEvent?: (props: RenderEventProps<TEventData>) => ReactNode;\n\n\t/**\n\t * Custom event popover renderer\n\t * Use this to inject your own EventPopover component\n\t * If not provided, a basic popover is shown\n\t */\n\trenderEventPopover?: (props: RenderEventPopoverProps<TEventData>) => ReactNode;\n\n\t/**\n\t * Custom filter sidebar renderer\n\t * Use this to inject your own CalendarFilterSidebar component\n\t */\n\trenderFilterSidebar?: (props: RenderFilterSidebarProps<TScheduleTypeData>) => ReactNode;\n\n\t/**\n\t * Custom header renderer\n\t * Use this to inject your own CalendarHeader component\n\t */\n\trenderHeader?: (props: RenderHeaderProps) => ReactNode;\n\n\t// ========================================================================\n\t// HEADER SLOTS\n\t// ========================================================================\n\n\t/** Settings popover content (for default header) */\n\tsettingsContent?: ReactNode;\n\t/** Filter row content (for default header) */\n\tfilterContent?: ReactNode;\n\t/** Whether to show the settings button (default: true) */\n\tshowSettings?: boolean;\n\t/** Whether to show timeline view options (default: false) */\n\tshowTimelineViews?: boolean;\n\n\t// ========================================================================\n\t// STYLING\n\t// ========================================================================\n\n\t/** Additional CSS class */\n\tclassName?: string;\n\t/** Custom header actions (shown in default header) */\n\theaderActions?: ReactNode;\n\t/** Empty state for agenda view */\n\temptyState?: ReactNode;\n\t/** Children (for header slot) */\n\tchildren?: ReactNode;\n}\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport function TailwindCalendar<\n\tTEventData = Record<string, unknown>,\n\tTScheduleTypeData = Record<string, unknown>,\n\tTResourceData = Record<string, unknown>,\n>({\n\tevents,\n\tresources: _resources,\n\tscheduleTypes = [],\n\tinitialView = 'week',\n\tinitialDate,\n\tinitialFilters: _initialFilters,\n\tpreferences: userPreferences,\n\tbadgeVariant = 'colored',\n\thideHeader = false,\n\tshowFilterSidebar = false,\n\tavailableViews = ['day', 'week', 'month', 'agenda'],\n\tonEventClick,\n\tonSlotSelect,\n\tonViewChange,\n\tonDateChange,\n\tonAddEvent,\n\tonFiltersChange,\n\trenderEvent,\n\trenderEventPopover: _renderEventPopover,\n\trenderFilterSidebar,\n\trenderHeader,\n\tsettingsContent,\n\tfilterContent,\n\tshowSettings = true,\n\tshowTimelineViews = false,\n\tclassName,\n\theaderActions,\n\temptyState,\n\tchildren: _children,\n}: TailwindCalendarProps<TEventData, TScheduleTypeData, TResourceData>) {\n\t// ========================================================================\n\t// STATE\n\t// ========================================================================\n\n\tconst [view, setView] = useState<TCalendarView>(initialView);\n\tconst [date, setDate] = useState<Date>(initialDate ?? new Date());\n\n\t// Filter state (for filter sidebar)\n\tconst [selectedScheduleTypeIds, setSelectedScheduleTypeIds] = useState<number[]>([]);\n\tconst [selectedParticipantIds, setSelectedParticipantIds] = useState<string[]>([]);\n\n\t// Merge user preferences with defaults\n\tconst preferences: ICalendarPreferences = useMemo(\n\t\t() => ({\n\t\t\t...DEFAULT_PREFERENCES,\n\t\t\t...userPreferences,\n\t\t}),\n\t\t[userPreferences]\n\t);\n\n\t// ========================================================================\n\t// HANDLERS\n\t// ========================================================================\n\n\tconst handleViewChange = useCallback(\n\t\t(newView: TCalendarView) => {\n\t\t\tsetView(newView);\n\t\t\tonViewChange?.(newView);\n\t\t},\n\t\t[onViewChange]\n\t);\n\n\tconst handleDateChange = useCallback(\n\t\t(newDate: Date) => {\n\t\t\tsetDate(newDate);\n\t\t\tonDateChange?.(newDate);\n\t\t},\n\t\t[onDateChange]\n\t);\n\n\tconst handleNavigatePrev = useCallback(() => {\n\t\tconst newDate = navigatePrev(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateNext = useCallback(() => {\n\t\tconst newDate = navigateNext(date, view);\n\t\thandleDateChange(newDate);\n\t}, [date, view, handleDateChange]);\n\n\tconst handleNavigateToday = useCallback(() => {\n\t\tconst newDate = navigateToday();\n\t\thandleDateChange(newDate);\n\t}, [handleDateChange]);\n\n\tconst handleDayClick = useCallback(\n\t\t(clickedDate: Date) => {\n\t\t\t// Navigate to day view when clicking a day in month view\n\t\t\thandleDateChange(clickedDate);\n\t\t\thandleViewChange('day');\n\t\t},\n\t\t[handleDateChange, handleViewChange]\n\t);\n\n\t// ========================================================================\n\t// VIEW RENDERING\n\t// ========================================================================\n\n\t// Visible hours - show all hours (0-24) so users can see the full day\n\t// The working hours determine which slots have striped (disabled) appearance\n\tconst visibleHours = useMemo(\n\t\t() => ({\n\t\t\tstartHour: 0,\n\t\t\tendHour: 24,\n\t\t}),\n\t\t[]\n\t);\n\n\t// Week starts on (convert from 0-6 to 0 | 1)\n\tconst weekStartsOn: 0 | 1 = preferences.firstDayOfWeek === 0 ? 0 : 1;\n\n\t// Build working hours from preferences (for time grid views)\n\t// Working hours determine which slots are clickable and don't have striped pattern\n\t// Non-working hours get diagonal stripes and are disabled\n\tconst workingHours = useMemo(() => {\n\t\tconst hours: Record<number, { enabled: boolean; from: number; to: number }> = {};\n\t\tfor (let i = 0; i <= 6; i++) {\n\t\t\tconst isWeekend = i === 0 || i === 6;\n\t\t\t// Weekdays: use preferences, Weekends: use preferences if showWeekends, otherwise disabled\n\t\t\tif (!isWeekend) {\n\t\t\t\t// Weekdays (Mon-Fri): always have working hours from preferences\n\t\t\t\thours[i] = { enabled: true, from: preferences.startHour, to: preferences.endHour };\n\t\t\t} else if (preferences.showWeekends) {\n\t\t\t\t// Weekends with showWeekends: Saturday half-day (8-12), Sunday disabled\n\t\t\t\tif (i === 6) {\n\t\t\t\t\t// Saturday - half day (matching agenda-v2)\n\t\t\t\t\thours[i] = { enabled: true, from: 8, to: 12 };\n\t\t\t\t} else {\n\t\t\t\t\t// Sunday - disabled\n\t\t\t\t\thours[i] = { enabled: false, from: 0, to: 0 };\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Weekends without showWeekends: both disabled\n\t\t\t\thours[i] = { enabled: false, from: 0, to: 0 };\n\t\t\t}\n\t\t}\n\t\treturn hours;\n\t}, [preferences.startHour, preferences.endHour, preferences.showWeekends]);\n\n\t// Handle filter changes\n\tconst handleScheduleTypeFilterChange = useCallback(\n\t\t(ids: number[]) => {\n\t\t\tsetSelectedScheduleTypeIds(ids);\n\t\t\tonFiltersChange?.({\n\t\t\t\tscheduleTypeIds: ids,\n\t\t\t\tparticipantIds: selectedParticipantIds,\n\t\t\t});\n\t\t},\n\t\t[onFiltersChange, selectedParticipantIds]\n\t);\n\n\tconst handleParticipantFilterChange = useCallback(\n\t\t(ids: string[]) => {\n\t\t\tsetSelectedParticipantIds(ids);\n\t\t\tonFiltersChange?.({\n\t\t\t\tscheduleTypeIds: selectedScheduleTypeIds,\n\t\t\t\tparticipantIds: ids,\n\t\t\t});\n\t\t},\n\t\t[onFiltersChange, selectedScheduleTypeIds]\n\t);\n\n\t// Create render event adapters for different view types\n\t// Each view has a slightly different renderEvent signature\n\n\tconst dayWeekRenderEvent = useMemo(() => {\n\t\tif (!renderEvent) return undefined;\n\t\treturn (props: {\n\t\t\tevent: CalendarEvent<TEventData>;\n\t\t\tposition: { top: number; height: number; left: number; width: number };\n\t\t}) => {\n\t\t\treturn renderEvent({\n\t\t\t\tevent: props.event,\n\t\t\t\tview,\n\t\t\t\tvariant: 'full',\n\t\t\t\tposition: { ...props.position, zIndex: 1 },\n\t\t\t\tbadgeVariant,\n\t\t\t\t...(onEventClick && { onClick: () => onEventClick(props.event) }),\n\t\t\t});\n\t\t};\n\t}, [renderEvent, view, badgeVariant, onEventClick]);\n\n\tconst monthRenderEvent = useMemo(() => {\n\t\tif (!renderEvent) return undefined;\n\t\treturn (props: { event: CalendarEvent<TEventData>; variant: 'compact' }) => {\n\t\t\treturn renderEvent({\n\t\t\t\tevent: props.event,\n\t\t\t\tview: 'month',\n\t\t\t\tvariant: props.variant,\n\t\t\t\tbadgeVariant,\n\t\t\t\t...(onEventClick && { onClick: () => onEventClick(props.event) }),\n\t\t\t});\n\t\t};\n\t}, [renderEvent, badgeVariant, onEventClick]);\n\n\tconst agendaRenderEvent = useMemo(() => {\n\t\tif (!renderEvent) return undefined;\n\t\treturn (props: { event: CalendarEvent<TEventData> }) => {\n\t\t\treturn renderEvent({\n\t\t\t\tevent: props.event,\n\t\t\t\tview: 'agenda',\n\t\t\t\tvariant: 'block',\n\t\t\t\tbadgeVariant,\n\t\t\t\t...(onEventClick && { onClick: () => onEventClick(props.event) }),\n\t\t\t});\n\t\t};\n\t}, [renderEvent, badgeVariant, onEventClick]);\n\n\tconst renderView = () => {\n\t\tswitch (view) {\n\t\t\tcase 'day':\n\t\t\t\treturn (\n\t\t\t\t\t<DayView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tworkingHours={workingHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t\t{...(dayWeekRenderEvent && { renderEvent: dayWeekRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'week':\n\t\t\t\treturn (\n\t\t\t\t\t<WeekView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tvisibleHours={visibleHours}\n\t\t\t\t\t\tworkingHours={workingHours}\n\t\t\t\t\t\tslotDuration={preferences.slotDuration}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t\t{...(dayWeekRenderEvent && { renderEvent: dayWeekRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'month':\n\t\t\t\treturn (\n\t\t\t\t\t<MonthView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\tweekStartsOn={weekStartsOn}\n\t\t\t\t\t\tonDayClick={handleDayClick}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(onSlotSelect && { onSlotSelect })}\n\t\t\t\t\t\t{...(monthRenderEvent && { renderEvent: monthRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tcase 'agenda':\n\t\t\t\treturn (\n\t\t\t\t\t<AgendaView<TEventData>\n\t\t\t\t\t\tevents={events}\n\t\t\t\t\t\tdate={date}\n\t\t\t\t\t\tbadgeVariant={badgeVariant}\n\t\t\t\t\t\t{...(onEventClick && { onEventClick })}\n\t\t\t\t\t\t{...(emptyState && { emptyState })}\n\t\t\t\t\t\t{...(agendaRenderEvent && { renderEvent: agendaRenderEvent })}\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"flex items-center justify-center h-64 text-gray-500\">\n\t\t\t\t\t\tView &quot;{view}&quot; is not yet implemented\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t}\n\t};\n\n\t// ========================================================================\n\t// RENDER\n\t// ========================================================================\n\n\t// Header navigation handler\n\tconst handleNavigate = useCallback(\n\t\t(direction: 'prev' | 'next' | 'today') => {\n\t\t\tif (direction === 'prev') handleNavigatePrev();\n\t\t\telse if (direction === 'next') handleNavigateNext();\n\t\t\telse handleNavigateToday();\n\t\t},\n\t\t[handleNavigatePrev, handleNavigateNext, handleNavigateToday]\n\t);\n\n\t// Default header props (conditionally add optional props)\n\tconst headerProps: RenderHeaderProps = {\n\t\tview,\n\t\tcurrentDate: date,\n\t\tavailableViews,\n\t\tonViewChange: handleViewChange,\n\t\tonNavigate: handleNavigate,\n\t\tonNavigatePrev: handleNavigatePrev,\n\t\tonNavigateNext: handleNavigateNext,\n\t\tonNavigateToday: handleNavigateToday,\n\t\t...(onAddEvent && { onAddEvent }),\n\t\t...(headerActions && { actions: headerActions }),\n\t\tclassName: 'border-b border-gray-200 p-3',\n\t};\n\n\t// Calendar header props (includes events for count display + slots)\n\tconst calendarHeaderProps = {\n\t\t...headerProps,\n\t\tevents,\n\t\tweekStartsOn,\n\t\tsettingsContent,\n\t\tfilterContent,\n\t\tshowSettings,\n\t\tshowTimelineViews,\n\t};\n\n\t// Clear all filters handler\n\tconst handleClearAllFilters = useCallback(() => {\n\t\tsetSelectedScheduleTypeIds([]);\n\t\tsetSelectedParticipantIds([]);\n\t\tonFiltersChange?.({\n\t\t\tscheduleTypeIds: [],\n\t\t\tparticipantIds: [],\n\t\t});\n\t}, [onFiltersChange]);\n\n\treturn (\n\t\t<div className={cn('flex h-full bg-white border border-gray-200 rounded-lg', className)}>\n\t\t\t{/* Filter Sidebar */}\n\t\t\t{showFilterSidebar && (\n\t\t\t\t<div className=\"w-64 border-r border-gray-200 flex-shrink-0\">\n\t\t\t\t\t{renderFilterSidebar ? (\n\t\t\t\t\t\trenderFilterSidebar({\n\t\t\t\t\t\t\tscheduleTypes,\n\t\t\t\t\t\t\tselectedScheduleTypeIds,\n\t\t\t\t\t\t\tselectedParticipantIds,\n\t\t\t\t\t\t\tonScheduleTypeChange: handleScheduleTypeFilterChange,\n\t\t\t\t\t\t\tonParticipantChange: handleParticipantFilterChange,\n\t\t\t\t\t\t\tonClearAll: handleClearAllFilters,\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"p-4 text-sm text-gray-500\">Filter sidebar not configured</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Main Calendar Area */}\n\t\t\t<div className=\"flex flex-col flex-1 min-w-0\">\n\t\t\t\t{/* Header */}\n\t\t\t\t{!hideHeader &&\n\t\t\t\t\t(renderHeader ? renderHeader(headerProps) : <CalendarHeader {...calendarHeaderProps} />)}\n\n\t\t\t\t{/* Calendar View */}\n\t\t\t\t<div className=\"flex-1 overflow-auto\">{renderView()}</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"names":["baseStyles","headerStyles","contentStyles","fallbackViewStyles","DefaultCalendar","events","_resources","_scheduleTypes","initialView","initialDate","_initialFilters","userPreferences","badgeVariant","hideHeader","availableViews","onEventClick","onSlotSelect","onViewChange","onDateChange","className","style","headerActions","emptyState","_children","view","setView","useState","date","setDate","preferences","useMemo","DEFAULT_PREFERENCES","handleViewChange","useCallback","newView","handleDateChange","newDate","handleNavigatePrev","navigatePrev","handleNavigateNext","navigateNext","handleNavigateToday","navigateToday","handleDayClick","clickedDate","visibleHours","weekStartsOn","renderView","jsx","DayView","WeekView","MonthView","AgendaView","jsxs","CalendarHeader","direction","TailwindCalendar","scheduleTypes","showFilterSidebar","onAddEvent","onFiltersChange","renderEvent","_renderEventPopover","renderFilterSidebar","renderHeader","settingsContent","filterContent","showSettings","showTimelineViews","selectedScheduleTypeIds","setSelectedScheduleTypeIds","selectedParticipantIds","setSelectedParticipantIds","workingHours","hours","i","handleScheduleTypeFilterChange","ids","handleParticipantFilterChange","dayWeekRenderEvent","props","monthRenderEvent","agendaRenderEvent","handleNavigate","headerProps","calendarHeaderProps","handleClearAllFilters","cn"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as T, jsx as n } from "react/jsx-runtime";
2
2
  import { useState as g, useMemo as x, useCallback as a } from "react";
3
- import { C as te, A as re, M as ae, W as se, c as ne } from "./week-view-CCzE8DEb.js";
3
+ import { C as te, A as re, M as ae, W as se, c as ne } from "./week-view-D3PDybDq.js";
4
4
  import { DEFAULT_PREFERENCES as oe, navigatePrev as ie, navigateNext as de, navigateToday as le } from "./utils.mjs";
5
5
  import { c as De } from "./index-DtaLkIY8.js";
6
6
  const xe = {
@@ -397,4 +397,4 @@ export {
397
397
  _e as D,
398
398
  Re as T
399
399
  };
400
- //# sourceMappingURL=tailwind-calendar-Wvl6G_sK.js.map
400
+ //# sourceMappingURL=tailwind-calendar-CjhEUHpL.js.map