@spatika/react 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Spatika UI — agent guide
2
2
 
3
3
  Glass React design system. Packages: `@spatika/tokens`, `@spatika/react`.
4
- Human docs: https://spatika.sreelal.me · Machine index: https://spatika.sreelal.me/llms.txt
4
+ Human docs: https://spatika.sweyam.com · Machine index: https://spatika.sweyam.com/llms.txt
5
5
 
6
6
  ## Use this library
7
7
 
@@ -52,7 +52,7 @@ export function App() {
52
52
  | Charts | `BarChart`, `LineChart`, or `ChartContainer` |
53
53
  | Calendar | `EventCalendar` |
54
54
 
55
- Canonical snippets: https://spatika.sreelal.me/docs/components.md
55
+ Canonical snippets: https://spatika.sweyam.com/docs/components.md
56
56
  Prop types: `node_modules/@spatika/react/dist/index.d.ts`
57
57
 
58
58
  Cursor skill (copy into the consumer repo):
@@ -1,4 +1,28 @@
1
- import { type CalendarView, type SchedulerEvent, type SchedulerPreferences, type SchedulerResource } from "../lib/scheduler";
1
+ import { type ReactNode } from "react";
2
+ import { type CalendarView, type NormalizedEvent, type SchedulerEvent, type SchedulerPreferences, type SchedulerResource } from "../lib/scheduler";
3
+ export type EventCalendarEventVariant = "month-bar" | "month-timed" | "all-day" | "time-grid" | "agenda";
4
+ export type EventCalendarEventRenderContext = {
5
+ view: CalendarView;
6
+ variant: EventCalendarEventVariant;
7
+ locale?: string;
8
+ hour12: boolean;
9
+ source?: SchedulerEvent;
10
+ defaultChildren: ReactNode;
11
+ };
12
+ export type EventCalendarToolbarContext = {
13
+ view: CalendarView;
14
+ date: Date;
15
+ title: string;
16
+ views: CalendarView[];
17
+ locale?: string;
18
+ preferences: Required<SchedulerPreferences>;
19
+ onViewChange: (view: CalendarView) => void;
20
+ onPrev: () => void;
21
+ onNext: () => void;
22
+ onToday: () => void;
23
+ onDateChange: (date: Date) => void;
24
+ onPreferencesChange: (next: Required<SchedulerPreferences>) => void;
25
+ };
2
26
  export type EventCalendarProps = {
3
27
  events?: SchedulerEvent[];
4
28
  resources?: SchedulerResource[];
@@ -28,8 +52,21 @@ export type EventCalendarProps = {
28
52
  end: Date;
29
53
  allDay: boolean;
30
54
  }) => void;
55
+ /**
56
+ * Built-in create/edit dialog. Defaults to true.
57
+ * Set false when the host owns create/edit (custom schedule modal, etc.).
58
+ */
59
+ showEventEditor?: boolean;
60
+ /** Preferences gear in the default toolbar. Ignored when `renderToolbar` is set. */
61
+ showPreferences?: boolean;
62
+ /** Extra controls after the view menu. Ignored when `renderToolbar` is set. */
63
+ toolbarTrailing?: ReactNode;
64
+ /** Replace event chip contents. The kit still wraps with the click/drag trigger. */
65
+ renderEvent?: (event: NormalizedEvent, context: EventCalendarEventRenderContext) => ReactNode;
66
+ /** Replace the toolbar. The default kit toolbar is used when omitted. */
67
+ renderToolbar?: (context: EventCalendarToolbarContext) => ReactNode;
31
68
  className?: string;
32
69
  };
33
70
  /** Month / week / day / agenda calendar with editor, resize, recurrence, and preferences. */
34
- export declare function EventCalendar({ events, resources, view: viewProp, defaultView, onViewChange, date: dateProp, defaultDate, onDateChange, views, weekStartsOn, hourStart, hourEnd, locale, readOnly, areEventsDraggable, areEventsResizable, preferences, defaultPreferences, onPreferencesChange, onEventClick, onEventChange, onEventCreate, onEventDelete, onSlotClick, className, }: EventCalendarProps): import("react").JSX.Element;
71
+ export declare function EventCalendar({ events, resources, view: viewProp, defaultView, onViewChange, date: dateProp, defaultDate, onDateChange, views, weekStartsOn, hourStart, hourEnd, locale, readOnly, areEventsDraggable, areEventsResizable, preferences, defaultPreferences, onPreferencesChange, onEventClick, onEventChange, onEventCreate, onEventDelete, onSlotClick, showEventEditor, showPreferences, toolbarTrailing, renderEvent, renderToolbar, className, }: EventCalendarProps): import("react").JSX.Element;
35
72
  //# sourceMappingURL=EventCalendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventCalendar.d.ts","sourceRoot":"","sources":["../../src/composites/EventCalendar.tsx"],"names":[],"mappings":"AAWA,OAAO,EAkCL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAY1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IAC5E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC/E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAuDF,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,EAC5B,MAAW,EACX,SAAc,EACd,IAAI,EAAE,QAAQ,EACd,WAAqB,EACrB,YAAY,EACZ,IAAI,EAAE,QAAQ,EACd,WAAW,EACX,YAAY,EACZ,KAA0C,EAC1C,YAAgB,EAChB,SAAa,EACb,OAAY,EACZ,MAAM,EACN,QAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EACX,SAAS,GACV,EAAE,kBAAkB,+BAiTpB"}
1
+ {"version":3,"file":"EventCalendar.d.ts","sourceRoot":"","sources":["../../src/composites/EventCalendar.tsx"],"names":[],"mappings":"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"}
@@ -52,7 +52,7 @@ function draftFromSource(source) {
52
52
  };
53
53
  }
54
54
  /** Month / week / day / agenda calendar with editor, resize, recurrence, and preferences. */
55
- export function EventCalendar({ events = [], resources = [], view: viewProp, defaultView = "month", onViewChange, date: dateProp, defaultDate, onDateChange, views = ["month", "week", "day", "agenda"], weekStartsOn = 0, hourStart = 7, hourEnd = 21, locale, readOnly = false, areEventsDraggable, areEventsResizable, preferences, defaultPreferences, onPreferencesChange, onEventClick, onEventChange, onEventCreate, onEventDelete, onSlotClick, className, }) {
55
+ export function EventCalendar({ events = [], resources = [], view: viewProp, defaultView = "month", onViewChange, date: dateProp, defaultDate, onDateChange, views = ["month", "week", "day", "agenda"], weekStartsOn = 0, hourStart = 7, hourEnd = 21, locale, readOnly = false, areEventsDraggable, areEventsResizable, preferences, defaultPreferences, onPreferencesChange, onEventClick, onEventChange, onEventCreate, onEventDelete, onSlotClick, showEventEditor = true, showPreferences = true, toolbarTrailing, renderEvent, renderToolbar, className, }) {
56
56
  const [view, setView] = useControllableState({
57
57
  prop: viewProp,
58
58
  defaultProp: defaultView,
@@ -118,6 +118,8 @@ export function EventCalendar({ events = [], resources = [], view: viewProp, def
118
118
  const source = sourceEvent(events, event.id);
119
119
  if (source)
120
120
  onEventClick?.(source);
121
+ if (!showEventEditor)
122
+ return;
121
123
  setDraft(source ? draftFromSource(source) : {
122
124
  id: event.id,
123
125
  title: event.title,
@@ -132,7 +134,7 @@ export function EventCalendar({ events = [], resources = [], view: viewProp, def
132
134
  }
133
135
  function openSlot(slot) {
134
136
  onSlotClick?.(slot);
135
- if (readOnly)
137
+ if (readOnly || !showEventEditor)
136
138
  return;
137
139
  setDraft({ start: slot.start, end: slot.end, allDay: slot.allDay });
138
140
  }
@@ -205,13 +207,30 @@ export function EventCalendar({ events = [], resources = [], view: viewProp, def
205
207
  setDate(new Date());
206
208
  }
207
209
  }
208
- function renderEventTrigger(event, className, children, options) {
210
+ function renderEventTrigger(event, className, defaultChildren, options) {
211
+ const source = sourceEvent(events, event.id);
212
+ const variant = options?.variant ?? "month-timed";
213
+ const children = renderEvent
214
+ ? renderEvent(event, {
215
+ view: resolvedView,
216
+ variant,
217
+ locale,
218
+ hour12,
219
+ source,
220
+ defaultChildren,
221
+ })
222
+ : defaultChildren;
223
+ if (renderEvent && children == null)
224
+ return null;
209
225
  const resizable = options?.resize === "ns" &&
210
226
  eventCanResize(event, { readOnly, enabled: canResize }) &&
211
227
  Boolean(onEventChange);
212
- const button = (_jsx("button", { type: "button", draggable: false, className: className, style: isMonthBar(event) || resolvedView !== "month"
213
- ? eventColorStyle(event.color, resolvedView === "month" ? "bar" : "block")
214
- : undefined, onClick: () => {
228
+ const painted = variant === "month-bar" || variant === "all-day" || variant === "time-grid";
229
+ const button = (_jsx("button", { type: "button", draggable: false, className: className, style: variant === "agenda"
230
+ ? eventColorStyle(event.color, "wash")
231
+ : painted
232
+ ? eventColorStyle(event.color, resolvedView === "month" ? "bar" : "block")
233
+ : undefined, onClick: () => {
215
234
  if (dragRef.current?.active)
216
235
  return;
217
236
  openEvent(event);
@@ -220,7 +239,20 @@ export function EventCalendar({ events = [], resources = [], view: viewProp, def
220
239
  return button;
221
240
  return (_jsxs("div", { className: "relative h-full min-h-0", children: [button, _jsx(EventResizeHandle, { edge: "start", axis: "ns", event: event, hourStart: hourStart, hourEnd: hourEnd, onCommit: commitResize }), _jsx(EventResizeHandle, { edge: "end", axis: "ns", event: event, hourStart: hourStart, hourEnd: hourEnd, onCommit: commitResize })] }));
222
241
  }
223
- return (_jsxs(SchedulerShell, { slot: "event-calendar", className: className, tabIndex: 0, "aria-label": "Event calendar", onKeyDown: handleKeyDown, children: [_jsx(SchedulerToolbar, { title: title, onPrev: () => go(-1), onNext: () => go(1), onToday: () => setDate(new Date()), menuLabel: CALENDAR_VIEW_LABEL[resolvedView], menu: views.map((item) => (_jsx(DropdownMenuItem, { onClick: () => setView(item), children: CALENDAR_VIEW_LABEL[item] }, item))), trailing: _jsx(SchedulerPreferencesMenu, { value: resolvedPrefs, onChange: (next) => setPrefs(next) }) }), resolvedView === "month" ? (_jsx(MonthGrid, { date: resolvedDate, today: today, events: normalized, weekStartsOn: startOn, showWeekends: resolvedPrefs.showWeekends, showWeekNumber: resolvedPrefs.showWeekNumber, locale: locale, hour12: hour12, onSlotClick: openSlot, renderEventTrigger: renderEventTrigger })) : resolvedView === "agenda" ? (_jsx(AgendaList, { date: resolvedDate, events: normalized, showWeekends: resolvedPrefs.showWeekends, locale: locale, hour12: hour12, onSlotClick: openSlot, onEventClick: openEvent })) : (_jsx(TimeGrid, { date: resolvedDate, today: today, events: normalized, view: resolvedView === "day" ? "day" : "week", weekStartsOn: startOn, showWeekends: resolvedPrefs.showWeekends, hourStart: hourStart, hourEnd: hourEnd, locale: locale, hour12: hour12, onSlotClick: openSlot, renderEventTrigger: renderEventTrigger })), _jsx(ResourceLegend, { resources: resources, hiddenIds: hiddenIds, onToggle: toggleResource }), _jsx(EventEditor, { open: draft != null, onOpenChange: (open) => {
242
+ return (_jsxs(SchedulerShell, { slot: "event-calendar", className: className, tabIndex: 0, "aria-label": "Event calendar", onKeyDown: handleKeyDown, children: [renderToolbar ? (renderToolbar({
243
+ view: resolvedView,
244
+ date: resolvedDate,
245
+ title,
246
+ views,
247
+ locale,
248
+ preferences: resolvedPrefs,
249
+ onViewChange: (next) => setView(next),
250
+ onPrev: () => go(-1),
251
+ onNext: () => go(1),
252
+ onToday: () => setDate(new Date()),
253
+ onDateChange: (next) => setDate(next),
254
+ onPreferencesChange: (next) => setPrefs(next),
255
+ })) : (_jsx(SchedulerToolbar, { title: title, onPrev: () => go(-1), onNext: () => go(1), onToday: () => setDate(new Date()), menuLabel: CALENDAR_VIEW_LABEL[resolvedView], menu: views.map((item) => (_jsx(DropdownMenuItem, { onClick: () => setView(item), children: CALENDAR_VIEW_LABEL[item] }, item))), trailing: _jsxs(_Fragment, { children: [toolbarTrailing, showPreferences ? (_jsx(SchedulerPreferencesMenu, { value: resolvedPrefs, onChange: (next) => setPrefs(next) })) : null] }) })), resolvedView === "month" ? (_jsx(MonthGrid, { date: resolvedDate, today: today, events: normalized, weekStartsOn: startOn, showWeekends: resolvedPrefs.showWeekends, showWeekNumber: resolvedPrefs.showWeekNumber, locale: locale, hour12: hour12, onSlotClick: openSlot, renderEventTrigger: renderEventTrigger })) : resolvedView === "agenda" ? (_jsx(AgendaList, { date: resolvedDate, events: normalized, showWeekends: resolvedPrefs.showWeekends, locale: locale, hour12: hour12, onSlotClick: openSlot, renderEventTrigger: renderEventTrigger })) : (_jsx(TimeGrid, { date: resolvedDate, today: today, events: normalized, view: resolvedView === "day" ? "day" : "week", weekStartsOn: startOn, showWeekends: resolvedPrefs.showWeekends, hourStart: hourStart, hourEnd: hourEnd, locale: locale, hour12: hour12, onSlotClick: openSlot, renderEventTrigger: renderEventTrigger })), _jsx(ResourceLegend, { resources: resources, hiddenIds: hiddenIds, onToggle: toggleResource }), showEventEditor ? (_jsx(EventEditor, { open: draft != null, onOpenChange: (open) => {
224
256
  if (!open)
225
257
  setDraft(null);
226
258
  }, draft: draft, resources: resources, readOnly: editorLocked, onSave: (event) => {
@@ -237,7 +269,7 @@ export function EventCalendar({ events = [], resources = [], view: viewProp, def
237
269
  if (source)
238
270
  onEventDelete(source);
239
271
  }
240
- : undefined })] }));
272
+ : undefined })) : null] }));
241
273
  }
242
274
  function MonthGrid({ date, today, events, weekStartsOn, showWeekends, showWeekNumber, locale, hour12, onSlotClick, renderEventTrigger, }) {
243
275
  const weeks = chunkWeeks(getMonthGrid(date, weekStartsOn));
@@ -255,7 +287,7 @@ function MonthGrid({ date, today, events, weekStartsOn, showWeekends, showWeekNu
255
287
  end: addDays(day, 1),
256
288
  allDay: true,
257
289
  }), className: cn("flex size-7 items-center justify-center rounded-full text-xs font-bold", isToday && "bg-primary text-primary-foreground", !isToday && inMonth && "text-foreground hover:bg-muted/50", !isToday && !inMonth && "text-muted-foreground/70"), children: day.getDate() }) }, day.toISOString()));
258
- }) }), lanes.map((lane, laneIndex) => (_jsx("div", { className: "grid gap-px px-0.5 pb-0.5", style: gridStyle, children: laneSlots(lane, columns).map((slot, slotIndex) => slot.kind === "empty" ? (_jsx("div", {}, slotIndex)) : (_jsx("div", { className: "min-w-0", style: { gridColumn: `span ${slot.span}` }, children: renderEventTrigger(slot.event, "flex h-5 w-full items-center truncate rounded-md px-1.5 text-[11px] font-semibold leading-none", slot.event.title) }, occurrenceKey(slot.event)))) }, laneIndex))), _jsx("div", { className: "grid min-h-[4.25rem]", style: gridStyle, children: days.map((day) => {
290
+ }) }), lanes.map((lane, laneIndex) => (_jsx("div", { className: "grid gap-px px-0.5 pb-0.5", style: gridStyle, children: laneSlots(lane, columns).map((slot, slotIndex) => slot.kind === "empty" ? (_jsx("div", {}, slotIndex)) : (_jsx("div", { className: "min-w-0", style: { gridColumn: `span ${slot.span}` }, children: renderEventTrigger(slot.event, "flex h-5 w-full items-center truncate rounded-md px-1.5 text-[11px] font-semibold leading-none", slot.event.title, { variant: "month-bar" }) }, occurrenceKey(slot.event)))) }, laneIndex))), _jsx("div", { className: "grid min-h-[4.25rem]", style: gridStyle, children: days.map((day) => {
259
291
  const timed = timedEventsOnDay(events, day);
260
292
  const visibleTimed = timed.slice(0, MAX_TIMED_IN_CELL);
261
293
  const extra = timed.length - visibleTimed.length;
@@ -267,7 +299,7 @@ function MonthGrid({ date, today, events, weekStartsOn, showWeekends, showWeekNu
267
299
  end: new Date(day.getFullYear(), day.getMonth(), day.getDate(), 10),
268
300
  allDay: false,
269
301
  });
270
- }, children: [visibleTimed.map((event) => (_jsx("div", { className: "min-w-0", children: renderEventTrigger(event, "flex w-full min-w-0 items-center gap-1 rounded-sm px-0.5 py-0.5 text-left text-[11px] leading-tight text-foreground hover:bg-muted/40", _jsxs(_Fragment, { children: [_jsx("span", { className: "size-1.5 shrink-0 rounded-full", style: eventColorStyle(event.color, "dot") }), _jsx("span", { className: "shrink-0 text-muted-foreground", children: formatTime(event.start, locale, hour12) }), _jsx("span", { className: "min-w-0 truncate font-medium", children: event.title })] })) }, occurrenceKey(event)))), extra > 0 ? (_jsxs("p", { className: "px-0.5 text-[10px] font-bold text-muted-foreground", children: ["+", extra, " more"] })) : null] }, day.toISOString()));
302
+ }, children: [visibleTimed.map((event) => (_jsx("div", { className: "min-w-0", children: renderEventTrigger(event, "flex w-full min-w-0 items-center gap-1 rounded-sm px-0.5 py-0.5 text-left text-[11px] leading-tight text-foreground hover:bg-muted/40", _jsxs(_Fragment, { children: [_jsx("span", { className: "size-1.5 shrink-0 rounded-full", style: eventColorStyle(event.color, "dot") }), _jsx("span", { className: "shrink-0 text-muted-foreground", children: formatTime(event.start, locale, hour12) }), _jsx("span", { className: "min-w-0 truncate font-medium", children: event.title })] }), { variant: "month-timed" }) }, occurrenceKey(event)))), extra > 0 ? (_jsxs("p", { className: "px-0.5 text-[10px] font-bold text-muted-foreground", children: ["+", extra, " more"] })) : null] }, day.toISOString()));
271
303
  }) })] })] }, week[0].toISOString()));
272
304
  }) })] }));
273
305
  }
@@ -300,7 +332,7 @@ function TimeGrid({ date, today, events, view, weekStartsOn, showWeekends, hourS
300
332
  const nowTop = ((now.getHours() + now.getMinutes() / 60 - hourStart) / (hourEnd - hourStart)) * (hours.length * hourHeight);
301
333
  return (_jsxs("div", { className: "overflow-x-auto", children: [_jsxs("div", { className: "grid min-w-[640px]", style: { gridTemplateColumns: `3.5rem repeat(${days.length}, minmax(0, 1fr))` }, children: [_jsx("div", { className: "border-b border-border/50" }), days.map((day) => (_jsxs("div", { className: cn("border-b border-l border-border/50 px-2 py-2 text-center", isSameDay(day, today) && "bg-primary/5"), children: [_jsx("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: new Intl.DateTimeFormat(locale, { weekday: "short" }).format(day) }), _jsx("p", { className: cn("mx-auto mt-0.5 flex size-7 items-center justify-center rounded-full text-sm font-black", isSameDay(day, today) && "bg-primary text-primary-foreground"), children: day.getDate() })] }, day.toISOString()))), _jsx("div", { className: "border-b border-border/50" }), days.map((day) => {
302
334
  const allDay = events.filter((event) => isMonthBar(event) && occupiesDay(event, day));
303
- return (_jsx("div", { "data-scheduler-day": isoDay(day), className: "min-h-10 space-y-0.5 border-b border-l border-border/50 p-1", children: allDay.map((event) => (_jsx("div", { children: renderEventTrigger(event, "flex h-5 w-full items-center truncate rounded-md px-1.5 text-[11px] font-semibold", event.title) }, occurrenceKey(event)))) }, `allday-${day.toISOString()}`));
335
+ return (_jsx("div", { "data-scheduler-day": isoDay(day), className: "min-h-10 space-y-0.5 border-b border-l border-border/50 p-1", children: allDay.map((event) => (_jsx("div", { children: renderEventTrigger(event, "flex h-5 w-full items-center truncate rounded-md px-1.5 text-[11px] font-semibold", event.title, { variant: "all-day" }) }, occurrenceKey(event)))) }, `allday-${day.toISOString()}`));
304
336
  })] }), _jsxs("div", { className: "relative min-w-[640px]", style: { height: hours.length * hourHeight }, children: [_jsxs("div", { className: "grid h-full", style: { gridTemplateColumns: `3.5rem repeat(${days.length}, minmax(0, 1fr))` }, children: [_jsx("div", { className: "relative", children: hours.map((hour) => (_jsx("div", { className: "relative border-b border-border/30 pr-2 text-right text-[10px] font-bold text-muted-foreground", style: { height: hourHeight }, children: _jsx("span", { className: "-translate-y-2 absolute right-2", children: formatHour(hour, locale, hour12) }) }, hour))) }), days.map((day) => {
305
337
  const layout = layoutTimedEvents(events, day, hourStart, hourEnd);
306
338
  return (_jsxs("div", { "data-scheduler-day": isoDay(day), className: "relative border-l border-border/40", onClick: (click) => {
@@ -321,10 +353,10 @@ function TimeGrid({ date, today, events, view, weekStartsOn, showWeekends, hourS
321
353
  height: `${item.height}%`,
322
354
  left: `${(item.col / item.cols) * 100}%`,
323
355
  width: `${100 / item.cols}%`,
324
- }, children: renderEventTrigger(item.event, "flex h-full w-full flex-col overflow-hidden rounded-md px-1.5 py-1 text-left text-[11px] font-semibold leading-tight", _jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", children: item.event.title }), _jsx("span", { className: "truncate text-[10px] font-medium opacity-80", children: formatTime(item.event.start, locale, hour12) })] }), { resize: "ns" }) }, occurrenceKey(item.event))))] }, day.toISOString()));
356
+ }, children: renderEventTrigger(item.event, "flex h-full w-full flex-col overflow-hidden rounded-md px-1.5 py-1 text-left text-[11px] font-semibold leading-tight", _jsxs(_Fragment, { children: [_jsx("span", { className: "truncate", children: item.event.title }), _jsx("span", { className: "truncate text-[10px] font-medium opacity-80", children: formatTime(item.event.start, locale, hour12) })] }), { resize: "ns", variant: "time-grid" }) }, occurrenceKey(item.event))))] }, day.toISOString()));
325
357
  })] }), showNow && nowTop > 0 && nowTop < hours.length * hourHeight ? (_jsx("div", { className: "pointer-events-none absolute right-0 left-14 z-10 h-px bg-destructive", style: { top: nowTop }, children: _jsx("span", { className: "absolute -top-1 -left-1 size-2 rounded-full bg-destructive" }) })) : null] })] }));
326
358
  }
327
- function AgendaList({ date, events, showWeekends, locale, hour12, onSlotClick, onEventClick, }) {
359
+ function AgendaList({ date, events, showWeekends, locale, hour12, onSlotClick, renderEventTrigger, }) {
328
360
  const days = filterWeekendDays(agendaDays(date, AGENDA_LENGTH), showWeekends);
329
361
  return (_jsx("div", { className: "divide-y divide-border/50", children: days.map((day) => {
330
362
  const items = events.filter((event) => occupiesDay(event, day));
@@ -332,8 +364,8 @@ function AgendaList({ date, events, showWeekends, locale, hour12, onSlotClick, o
332
364
  start: new Date(day.getFullYear(), day.getMonth(), day.getDate(), 9),
333
365
  end: new Date(day.getFullYear(), day.getMonth(), day.getDate(), 10),
334
366
  allDay: false,
335
- }), children: [_jsx("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: new Intl.DateTimeFormat(locale, { weekday: "short" }).format(day) }), _jsx("p", { className: cn("text-lg font-black", isSameDay(day, startOfToday()) && "text-primary"), children: new Intl.DateTimeFormat(locale, { month: "short", day: "numeric" }).format(day) })] }), _jsx("div", { className: "min-w-0 space-y-1.5", children: items.length === 0 ? (_jsx("p", { className: "pt-2 text-xs text-muted-foreground", children: "No events" })) : (items.map((event) => (_jsxs("button", { type: "button", "data-scheduler-day": isoDay(day), className: "flex w-full min-w-0 items-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted/40", style: eventColorStyle(event.color, "wash"), onClick: () => onEventClick(event), children: [_jsx("span", { className: "mt-1.5 size-2 shrink-0 rounded-full", style: eventColorStyle(event.color, "dot") }), _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate text-sm font-semibold text-foreground", children: event.title }), _jsx("span", { className: "text-[11px] text-muted-foreground", children: event.allDay || isMonthBar(event)
336
- ? "All day"
337
- : `${formatTime(event.start, locale, hour12)} – ${formatTime(event.end, locale, hour12)}` })] })] }, occurrenceKey(event))))) })] }, day.toISOString()));
367
+ }), children: [_jsx("p", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: new Intl.DateTimeFormat(locale, { weekday: "short" }).format(day) }), _jsx("p", { className: cn("text-lg font-black", isSameDay(day, startOfToday()) && "text-primary"), children: new Intl.DateTimeFormat(locale, { month: "short", day: "numeric" }).format(day) })] }), _jsx("div", { className: "min-w-0 space-y-1.5", children: items.length === 0 ? (_jsx("p", { className: "pt-2 text-xs text-muted-foreground", children: "No events" })) : (items.map((event) => (_jsx("div", { "data-scheduler-day": isoDay(day), children: renderEventTrigger(event, "flex w-full min-w-0 items-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted/40", _jsxs(_Fragment, { children: [_jsx("span", { className: "mt-1.5 size-2 shrink-0 rounded-full", style: eventColorStyle(event.color, "dot") }), _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate text-sm font-semibold text-foreground", children: event.title }), _jsx("span", { className: "text-[11px] text-muted-foreground", children: event.allDay || isMonthBar(event)
368
+ ? "All day"
369
+ : `${formatTime(event.start, locale, hour12)} – ${formatTime(event.end, locale, hour12)}` })] })] }), { variant: "agenda" }) }, occurrenceKey(event))))) })] }, day.toISOString()));
338
370
  }) }));
339
371
  }
@@ -17,8 +17,13 @@ export type EventTimelineProps = {
17
17
  onEventChange?: (event: SchedulerEvent, next: Partial<SchedulerEvent>) => void;
18
18
  onEventCreate?: (event: SchedulerEvent) => void;
19
19
  onEventDelete?: (event: SchedulerEvent) => void;
20
+ /**
21
+ * Built-in create/edit dialog. Defaults to true.
22
+ * Set false when the host owns create/edit.
23
+ */
24
+ showEventEditor?: boolean;
20
25
  className?: string;
21
26
  };
22
27
  /** Horizontal resource timeline — rows are resources, bars are allocations across time. */
23
- export declare function EventTimeline({ events, resources, scale: scaleProp, defaultScale, onScaleChange, date: dateProp, defaultDate, onDateChange, scales, locale, readOnly, areEventsDraggable, areEventsResizable, onEventClick, onEventChange, onEventCreate, onEventDelete, className, }: EventTimelineProps): import("react").JSX.Element;
28
+ export declare function EventTimeline({ events, resources, scale: scaleProp, defaultScale, onScaleChange, date: dateProp, defaultDate, onDateChange, scales, locale, readOnly, areEventsDraggable, areEventsResizable, onEventClick, onEventChange, onEventCreate, onEventDelete, showEventEditor, className, }: EventTimelineProps): import("react").JSX.Element;
24
29
  //# sourceMappingURL=EventTimeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventTimeline.d.ts","sourceRoot":"","sources":["../../src/composites/EventTimeline.tsx"],"names":[],"mappings":"AAGA,OAAO,EAeL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAW1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC/E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAmCF,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,EAC5B,MAAW,EACX,SAAc,EACd,KAAK,EAAE,SAAS,EAChB,YAAuB,EACvB,aAAa,EACb,IAAI,EAAE,QAAQ,EACd,WAAW,EACX,YAAY,EACZ,MAAsD,EACtD,MAAM,EACN,QAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,SAAS,GACV,EAAE,kBAAkB,+BA0PpB"}
1
+ {"version":3,"file":"EventTimeline.d.ts","sourceRoot":"","sources":["../../src/composites/EventTimeline.tsx"],"names":[],"mappings":"AAGA,OAAO,EAeL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAW1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC/E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAmCF,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,EAC5B,MAAW,EACX,SAAc,EACd,KAAK,EAAE,SAAS,EAChB,YAAuB,EACvB,aAAa,EACb,IAAI,EAAE,QAAQ,EACd,WAAW,EACX,YAAY,EACZ,MAAsD,EACtD,MAAM,EACN,QAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAsB,EACtB,SAAS,GACV,EAAE,kBAAkB,+BA6PpB"}
@@ -37,7 +37,7 @@ function timelineTitle(scale, date, rangeStart, rangeEnd, locale) {
37
37
  return formatMonthYear(date, locale);
38
38
  }
39
39
  /** Horizontal resource timeline — rows are resources, bars are allocations across time. */
40
- export function EventTimeline({ events = [], resources = [], scale: scaleProp, defaultScale = "months", onScaleChange, date: dateProp, defaultDate, onDateChange, scales = ["hours", "days", "weeks", "months", "years"], locale, readOnly = false, areEventsDraggable, areEventsResizable, onEventClick, onEventChange, onEventCreate, onEventDelete, className, }) {
40
+ export function EventTimeline({ events = [], resources = [], scale: scaleProp, defaultScale = "months", onScaleChange, date: dateProp, defaultDate, onDateChange, scales = ["hours", "days", "weeks", "months", "years"], locale, readOnly = false, areEventsDraggable, areEventsResizable, onEventClick, onEventChange, onEventCreate, onEventDelete, showEventEditor = true, className, }) {
41
41
  const [scale, setScale] = useControllableState({
42
42
  prop: scaleProp,
43
43
  defaultProp: defaultScale,
@@ -80,6 +80,8 @@ export function EventTimeline({ events = [], resources = [], scale: scaleProp, d
80
80
  const source = sourceEvent(events, event.id);
81
81
  if (source)
82
82
  onEventClick?.(source);
83
+ if (!showEventEditor)
84
+ return;
83
85
  setDraft(source ? draftFromSource(source) : {
84
86
  id: event.id,
85
87
  title: event.title,
@@ -164,7 +166,7 @@ export function EventTimeline({ events = [], resources = [], scale: scaleProp, d
164
166
  width: `${bar.width}%`,
165
167
  height: LANE_HEIGHT,
166
168
  }, children: renderBar(bar.event) }, occurrenceKey(bar.event)))) })] }, resource.id));
167
- })] }) }) }), _jsx(ResourceLegend, { resources: resources, hiddenIds: hiddenIds, onToggle: toggleResource }), _jsx(EventEditor, { open: draft != null, onOpenChange: (open) => {
169
+ })] }) }) }), _jsx(ResourceLegend, { resources: resources, hiddenIds: hiddenIds, onToggle: toggleResource }), showEventEditor ? (_jsx(EventEditor, { open: draft != null, onOpenChange: (open) => {
168
170
  if (!open)
169
171
  setDraft(null);
170
172
  }, draft: draft, resources: resources, readOnly: editorLocked, onSave: (event) => {
@@ -180,5 +182,5 @@ export function EventTimeline({ events = [], resources = [], scale: scaleProp, d
180
182
  if (source)
181
183
  onEventDelete(source);
182
184
  }
183
- : undefined })] }));
185
+ : undefined })) : null] }));
184
186
  }
@@ -2,15 +2,16 @@ import type { HTMLAttributes, ReactNode } from "react";
2
2
  import { type CalendarView, type NormalizedEvent, type SchedulerPreferences, type SchedulerResource, type TimelineScale } from "../lib/scheduler";
3
3
  export declare const CALENDAR_VIEW_LABEL: Record<CalendarView, string>;
4
4
  export declare const TIMELINE_SCALE_LABEL: Record<TimelineScale, string>;
5
- export declare function SchedulerToolbar({ title, onPrev, onNext, onToday, menuLabel, menu, trailing, }: {
6
- title: string;
5
+ export type SchedulerToolbarProps = {
6
+ title: ReactNode;
7
7
  onPrev: () => void;
8
8
  onNext: () => void;
9
9
  onToday: () => void;
10
10
  menuLabel: string;
11
11
  menu: ReactNode;
12
12
  trailing?: ReactNode;
13
- }): import("react").JSX.Element;
13
+ };
14
+ export declare function SchedulerToolbar({ title, onPrev, onNext, onToday, menuLabel, menu, trailing, }: SchedulerToolbarProps): import("react").JSX.Element;
14
15
  export declare function SchedulerPreferencesMenu({ value, onChange, disabled, }: {
15
16
  value: Required<SchedulerPreferences>;
16
17
  onChange: (next: Required<SchedulerPreferences>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler-ui.d.ts","sourceRoot":"","sources":["../../src/composites/scheduler-ui.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAU1B,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAK5D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAM9D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,+BAwCA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,+BAgCA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;CAClF,+BA6CA;AAGD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,sCAqCA;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAY,GACb,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,+BAsBA;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,+BAajC"}
1
+ {"version":3,"file":"scheduler-ui.d.ts","sourceRoot":"","sources":["../../src/composites/scheduler-ui.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAU1B,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAK5D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAM9D,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,SAAS,EACT,IAAI,EACJ,QAAQ,GACT,EAAE,qBAAqB,+BAwCvB;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,+BAgCA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;CAClF,+BA6CA;AAGD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,sCAqCA;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAY,GACb,EAAE;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,+BAsBA;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,cAAc,CAAC,cAAc,CAAC,+BAajC"}
package/dist/index.d.ts CHANGED
@@ -145,11 +145,12 @@ export { SegmentedControl, type SegmentedControlProps, type SegmentedControlOpti
145
145
  export { Toaster, useToast, type ToasterProps, type ToastItem, type ToastTone, } from "./composites/Toast";
146
146
  export { Timeline, TimelineItem, type TimelineProps, type TimelineItemProps, } from "./composites/Timeline";
147
147
  export { DataTableToolbar, type DataTableToolbarProps, } from "./composites/DataTableToolbar";
148
- export { EventCalendar, type EventCalendarProps, } from "./composites/EventCalendar";
148
+ export { EventCalendar, type EventCalendarProps, type EventCalendarEventVariant, type EventCalendarEventRenderContext, type EventCalendarToolbarContext, } from "./composites/EventCalendar";
149
149
  export { EventTimeline, type EventTimelineProps, } from "./composites/EventTimeline";
150
150
  export { EventEditor, type EventEditorDraft, } from "./composites/EventEditor";
151
+ export { SchedulerToolbar, SchedulerPreferencesMenu, CALENDAR_VIEW_LABEL, type SchedulerToolbarProps, } from "./composites/scheduler-ui";
151
152
  export { DEFAULT_SCHEDULER_PREFERENCES, SCHEDULER_COLOR_TONES, } from "./lib/scheduler";
152
- export type { CalendarView, SchedulerColorTone, SchedulerEvent, SchedulerPreferences, SchedulerResource, TimelineScale, } from "./lib/scheduler";
153
+ export type { CalendarView, NormalizedEvent, SchedulerColorTone, SchedulerEvent, SchedulerPreferences, SchedulerResource, TimelineScale, } from "./lib/scheduler";
153
154
  export { CHART_COLOR_VARS, chartColor, formatChartNumber, seriesDataFromDataset, axisDataFromDataset, clampZoom, DEFAULT_ZOOM, } from "./lib/charts";
154
155
  export type { ChartAxisConfig, ChartCurve, ChartDataset, ChartInteraction, ChartMargin, ChartZoom, HighlightScope, SankeyLink, SankeyNode, TreeNode, } from "./lib/charts";
155
156
  export { serializeChartSvg, exportChart, downloadChartSvg, downloadChartPng } from "./lib/chart-export";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -149,6 +149,7 @@ export { DataTableToolbar, } from "./composites/DataTableToolbar";
149
149
  export { EventCalendar, } from "./composites/EventCalendar";
150
150
  export { EventTimeline, } from "./composites/EventTimeline";
151
151
  export { EventEditor, } from "./composites/EventEditor";
152
+ export { SchedulerToolbar, SchedulerPreferencesMenu, CALENDAR_VIEW_LABEL, } from "./composites/scheduler-ui";
152
153
  export { DEFAULT_SCHEDULER_PREFERENCES, SCHEDULER_COLOR_TONES, } from "./lib/scheduler";
153
154
  export { CHART_COLOR_VARS, chartColor, formatChartNumber, seriesDataFromDataset, axisDataFromDataset, clampZoom, DEFAULT_ZOOM, } from "./lib/charts";
154
155
  export { serializeChartSvg, exportChart, downloadChartSvg, downloadChartPng } from "./lib/chart-export";
@@ -22,6 +22,8 @@ export type SchedulerEvent = {
22
22
  readOnly?: boolean;
23
23
  draggable?: boolean;
24
24
  resizable?: boolean;
25
+ /** Opaque host payload. The kit never inspects it. */
26
+ data?: unknown;
25
27
  };
26
28
  export type SchedulerResource = {
27
29
  id: string;
@@ -53,6 +55,8 @@ export type NormalizedEvent = {
53
55
  draggable?: boolean;
54
56
  resizable?: boolean;
55
57
  occurrenceStart?: Date;
58
+ /** Opaque host payload. The kit never inspects it. */
59
+ data?: unknown;
56
60
  };
57
61
  export declare const SCHEDULER_COLOR_VARS: Record<SchedulerColorTone, string>;
58
62
  export declare function toDate(value: Date | string): Date;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/lib/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/lib/scheduler.ts"],"names":[],"mappings":"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"}
@@ -223,6 +223,7 @@ export function normalizeEvents(events, resources = []) {
223
223
  readOnly: event.readOnly,
224
224
  draggable: event.draggable,
225
225
  resizable: event.resizable,
226
+ data: event.data,
226
227
  };
227
228
  })
228
229
  .sort((a, b) => a.start.getTime() - b.start.getTime() || a.title.localeCompare(b.title));
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@spatika/react",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "license": "MIT",
5
5
  "description": "Spatika UI — glass React primitives and composites for production apps",
6
- "homepage": "https://spatika.sreelal.me",
6
+ "homepage": "https://spatika.sweyam.com",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "https://github.com/SreelalChalil/spatika",
@@ -59,7 +59,7 @@
59
59
  "react-dom": "^18.2.0 || ^19.0.0"
60
60
  },
61
61
  "dependencies": {
62
- "@spatika/tokens": "1.2.0",
62
+ "@spatika/tokens": "1.3.0",
63
63
  "class-variance-authority": "^0.7.1",
64
64
  "clsx": "^2.1.1",
65
65
  "cmdk": "^1.1.1",
@@ -5,7 +5,7 @@ description: Build UI with Spatika glass React components from @spatika/react. U
5
5
 
6
6
  # Spatika UI
7
7
 
8
- Glass React design system. Never invent Spatika components. Import from `@spatika/react`. Fetch https://spatika.sreelal.me/llms.txt for the live catalog.
8
+ Glass React design system. Never invent Spatika components. Import from `@spatika/react`. Fetch https://spatika.sweyam.com/llms.txt for the live catalog.
9
9
 
10
10
  ## Bootstrap
11
11
 
@@ -91,6 +91,6 @@ import { Home, Search, User } from "lucide-react";
91
91
 
92
92
  ## Next
93
93
 
94
- 1. Fetch the component markdown: `https://spatika.sreelal.me/docs/{slug}.md`
94
+ 1. Fetch the component markdown: `https://spatika.sweyam.com/docs/{slug}.md`
95
95
  2. Read prop types from `node_modules/@spatika/react/dist/index.d.ts`
96
96
  3. Icons in examples use `lucide-react`
@@ -60,6 +60,37 @@ import {
60
60
  } from "./scheduler-ui";
61
61
  import { DropdownMenuItem } from "../primitives/DropdownMenu";
62
62
 
63
+ export type EventCalendarEventVariant =
64
+ | "month-bar"
65
+ | "month-timed"
66
+ | "all-day"
67
+ | "time-grid"
68
+ | "agenda";
69
+
70
+ export type EventCalendarEventRenderContext = {
71
+ view: CalendarView;
72
+ variant: EventCalendarEventVariant;
73
+ locale?: string;
74
+ hour12: boolean;
75
+ source?: SchedulerEvent;
76
+ defaultChildren: ReactNode;
77
+ };
78
+
79
+ export type EventCalendarToolbarContext = {
80
+ view: CalendarView;
81
+ date: Date;
82
+ title: string;
83
+ views: CalendarView[];
84
+ locale?: string;
85
+ preferences: Required<SchedulerPreferences>;
86
+ onViewChange: (view: CalendarView) => void;
87
+ onPrev: () => void;
88
+ onNext: () => void;
89
+ onToday: () => void;
90
+ onDateChange: (date: Date) => void;
91
+ onPreferencesChange: (next: Required<SchedulerPreferences>) => void;
92
+ };
93
+
63
94
  export type EventCalendarProps = {
64
95
  events?: SchedulerEvent[];
65
96
  resources?: SchedulerResource[];
@@ -85,6 +116,22 @@ export type EventCalendarProps = {
85
116
  onEventCreate?: (event: SchedulerEvent) => void;
86
117
  onEventDelete?: (event: SchedulerEvent) => void;
87
118
  onSlotClick?: (slot: { start: Date; end: Date; allDay: boolean }) => void;
119
+ /**
120
+ * Built-in create/edit dialog. Defaults to true.
121
+ * Set false when the host owns create/edit (custom schedule modal, etc.).
122
+ */
123
+ showEventEditor?: boolean;
124
+ /** Preferences gear in the default toolbar. Ignored when `renderToolbar` is set. */
125
+ showPreferences?: boolean;
126
+ /** Extra controls after the view menu. Ignored when `renderToolbar` is set. */
127
+ toolbarTrailing?: ReactNode;
128
+ /** Replace event chip contents. The kit still wraps with the click/drag trigger. */
129
+ renderEvent?: (
130
+ event: NormalizedEvent,
131
+ context: EventCalendarEventRenderContext,
132
+ ) => ReactNode;
133
+ /** Replace the toolbar. The default kit toolbar is used when omitted. */
134
+ renderToolbar?: (context: EventCalendarToolbarContext) => ReactNode;
88
135
  className?: string;
89
136
  };
90
137
 
@@ -167,6 +214,11 @@ export function EventCalendar({
167
214
  onEventCreate,
168
215
  onEventDelete,
169
216
  onSlotClick,
217
+ showEventEditor = true,
218
+ showPreferences = true,
219
+ toolbarTrailing,
220
+ renderEvent,
221
+ renderToolbar,
170
222
  className,
171
223
  }: EventCalendarProps) {
172
224
  const [view, setView] = useControllableState<CalendarView>({
@@ -238,6 +290,7 @@ export function EventCalendar({
238
290
  function openEvent(event: NormalizedEvent) {
239
291
  const source = sourceEvent(events, event.id);
240
292
  if (source) onEventClick?.(source);
293
+ if (!showEventEditor) return;
241
294
  setDraft(source ? draftFromSource(source) : {
242
295
  id: event.id,
243
296
  title: event.title,
@@ -253,7 +306,7 @@ export function EventCalendar({
253
306
 
254
307
  function openSlot(slot: { start: Date; end: Date; allDay: boolean }) {
255
308
  onSlotClick?.(slot);
256
- if (readOnly) return;
309
+ if (readOnly || !showEventEditor) return;
257
310
  setDraft({ start: slot.start, end: slot.end, allDay: slot.allDay });
258
311
  }
259
312
 
@@ -322,13 +375,28 @@ export function EventCalendar({
322
375
  function renderEventTrigger(
323
376
  event: NormalizedEvent,
324
377
  className: string,
325
- children: ReactNode,
326
- options?: { resize?: "ns" },
378
+ defaultChildren: ReactNode,
379
+ options?: { resize?: "ns"; variant: EventCalendarEventVariant },
327
380
  ) {
381
+ const source = sourceEvent(events, event.id);
382
+ const variant = options?.variant ?? "month-timed";
383
+ const children = renderEvent
384
+ ? renderEvent(event, {
385
+ view: resolvedView,
386
+ variant,
387
+ locale,
388
+ hour12,
389
+ source,
390
+ defaultChildren,
391
+ })
392
+ : defaultChildren;
393
+ if (renderEvent && children == null) return null;
394
+
328
395
  const resizable =
329
396
  options?.resize === "ns" &&
330
397
  eventCanResize(event, { readOnly, enabled: canResize }) &&
331
398
  Boolean(onEventChange);
399
+ const painted = variant === "month-bar" || variant === "all-day" || variant === "time-grid";
332
400
 
333
401
  const button = (
334
402
  <button
@@ -336,9 +404,11 @@ export function EventCalendar({
336
404
  draggable={false}
337
405
  className={className}
338
406
  style={
339
- isMonthBar(event) || resolvedView !== "month"
340
- ? eventColorStyle(event.color, resolvedView === "month" ? "bar" : "block")
341
- : undefined
407
+ variant === "agenda"
408
+ ? eventColorStyle(event.color, "wash")
409
+ : painted
410
+ ? eventColorStyle(event.color, resolvedView === "month" ? "bar" : "block")
411
+ : undefined
342
412
  }
343
413
  onClick={() => {
344
414
  if (dragRef.current?.active) return;
@@ -385,24 +455,46 @@ export function EventCalendar({
385
455
  aria-label="Event calendar"
386
456
  onKeyDown={handleKeyDown}
387
457
  >
388
- <SchedulerToolbar
389
- title={title}
390
- onPrev={() => go(-1)}
391
- onNext={() => go(1)}
392
- onToday={() => setDate(new Date())}
393
- menuLabel={CALENDAR_VIEW_LABEL[resolvedView]}
394
- menu={views.map((item) => (
395
- <DropdownMenuItem key={item} onClick={() => setView(item)}>
396
- {CALENDAR_VIEW_LABEL[item]}
397
- </DropdownMenuItem>
398
- ))}
399
- trailing={
400
- <SchedulerPreferencesMenu
401
- value={resolvedPrefs}
402
- onChange={(next) => setPrefs(next)}
403
- />
404
- }
405
- />
458
+ {renderToolbar ? (
459
+ renderToolbar({
460
+ view: resolvedView,
461
+ date: resolvedDate,
462
+ title,
463
+ views,
464
+ locale,
465
+ preferences: resolvedPrefs,
466
+ onViewChange: (next) => setView(next),
467
+ onPrev: () => go(-1),
468
+ onNext: () => go(1),
469
+ onToday: () => setDate(new Date()),
470
+ onDateChange: (next) => setDate(next),
471
+ onPreferencesChange: (next) => setPrefs(next),
472
+ })
473
+ ) : (
474
+ <SchedulerToolbar
475
+ title={title}
476
+ onPrev={() => go(-1)}
477
+ onNext={() => go(1)}
478
+ onToday={() => setDate(new Date())}
479
+ menuLabel={CALENDAR_VIEW_LABEL[resolvedView]}
480
+ menu={views.map((item) => (
481
+ <DropdownMenuItem key={item} onClick={() => setView(item)}>
482
+ {CALENDAR_VIEW_LABEL[item]}
483
+ </DropdownMenuItem>
484
+ ))}
485
+ trailing={
486
+ <>
487
+ {toolbarTrailing}
488
+ {showPreferences ? (
489
+ <SchedulerPreferencesMenu
490
+ value={resolvedPrefs}
491
+ onChange={(next) => setPrefs(next)}
492
+ />
493
+ ) : null}
494
+ </>
495
+ }
496
+ />
497
+ )}
406
498
 
407
499
  {resolvedView === "month" ? (
408
500
  <MonthGrid
@@ -425,7 +517,7 @@ export function EventCalendar({
425
517
  locale={locale}
426
518
  hour12={hour12}
427
519
  onSlotClick={openSlot}
428
- onEventClick={openEvent}
520
+ renderEventTrigger={renderEventTrigger}
429
521
  />
430
522
  ) : (
431
523
  <TimeGrid
@@ -446,31 +538,33 @@ export function EventCalendar({
446
538
 
447
539
  <ResourceLegend resources={resources} hiddenIds={hiddenIds} onToggle={toggleResource} />
448
540
 
449
- <EventEditor
450
- open={draft != null}
451
- onOpenChange={(open) => {
452
- if (!open) setDraft(null);
453
- }}
454
- draft={draft}
455
- resources={resources}
456
- readOnly={editorLocked}
457
- onSave={(event) => {
458
- if (event.id && sourceEvent(events, event.id)) {
459
- const source = sourceEvent(events, event.id)!;
460
- onEventChange?.(source, event);
461
- } else {
462
- onEventCreate?.(event);
541
+ {showEventEditor ? (
542
+ <EventEditor
543
+ open={draft != null}
544
+ onOpenChange={(open) => {
545
+ if (!open) setDraft(null);
546
+ }}
547
+ draft={draft}
548
+ resources={resources}
549
+ readOnly={editorLocked}
550
+ onSave={(event) => {
551
+ if (event.id && sourceEvent(events, event.id)) {
552
+ const source = sourceEvent(events, event.id)!;
553
+ onEventChange?.(source, event);
554
+ } else {
555
+ onEventCreate?.(event);
556
+ }
557
+ }}
558
+ onDelete={
559
+ onEventDelete
560
+ ? (id) => {
561
+ const source = sourceEvent(events, id);
562
+ if (source) onEventDelete(source);
563
+ }
564
+ : undefined
463
565
  }
464
- }}
465
- onDelete={
466
- onEventDelete
467
- ? (id) => {
468
- const source = sourceEvent(events, id);
469
- if (source) onEventDelete(source);
470
- }
471
- : undefined
472
- }
473
- />
566
+ />
567
+ ) : null}
474
568
  </SchedulerShell>
475
569
  );
476
570
  }
@@ -500,7 +594,7 @@ function MonthGrid({
500
594
  event: NormalizedEvent,
501
595
  className: string,
502
596
  children: ReactNode,
503
- options?: { resize?: "ns" },
597
+ options?: { resize?: "ns"; variant: EventCalendarEventVariant },
504
598
  ) => ReactNode;
505
599
  }) {
506
600
  const weeks = chunkWeeks(getMonthGrid(date, weekStartsOn));
@@ -585,6 +679,7 @@ function MonthGrid({
585
679
  slot.event,
586
680
  "flex h-5 w-full items-center truncate rounded-md px-1.5 text-[11px] font-semibold leading-none",
587
681
  slot.event.title,
682
+ { variant: "month-bar" },
588
683
  )}
589
684
  </div>
590
685
  ),
@@ -628,6 +723,7 @@ function MonthGrid({
628
723
  </span>
629
724
  <span className="min-w-0 truncate font-medium">{event.title}</span>
630
725
  </>,
726
+ { variant: "month-timed" },
631
727
  )}
632
728
  </div>
633
729
  ))}
@@ -698,7 +794,7 @@ function TimeGrid({
698
794
  event: NormalizedEvent,
699
795
  className: string,
700
796
  children: ReactNode,
701
- options?: { resize?: "ns" },
797
+ options?: { resize?: "ns"; variant: EventCalendarEventVariant },
702
798
  ) => ReactNode;
703
799
  }) {
704
800
  const days =
@@ -756,6 +852,7 @@ function TimeGrid({
756
852
  event,
757
853
  "flex h-5 w-full items-center truncate rounded-md px-1.5 text-[11px] font-semibold",
758
854
  event.title,
855
+ { variant: "all-day" },
759
856
  )}
760
857
  </div>
761
858
  ))}
@@ -824,7 +921,7 @@ function TimeGrid({
824
921
  {formatTime(item.event.start, locale, hour12)}
825
922
  </span>
826
923
  </>,
827
- { resize: "ns" },
924
+ { resize: "ns", variant: "time-grid" },
828
925
  )}
829
926
  </div>
830
927
  ))}
@@ -852,7 +949,7 @@ function AgendaList({
852
949
  locale,
853
950
  hour12,
854
951
  onSlotClick,
855
- onEventClick,
952
+ renderEventTrigger,
856
953
  }: {
857
954
  date: Date;
858
955
  events: NormalizedEvent[];
@@ -860,7 +957,12 @@ function AgendaList({
860
957
  locale?: string;
861
958
  hour12: boolean;
862
959
  onSlotClick?: EventCalendarProps["onSlotClick"];
863
- onEventClick: (event: NormalizedEvent) => void;
960
+ renderEventTrigger: (
961
+ event: NormalizedEvent,
962
+ className: string,
963
+ children: ReactNode,
964
+ options?: { resize?: "ns"; variant: EventCalendarEventVariant },
965
+ ) => ReactNode;
864
966
  }) {
865
967
  const days = filterWeekendDays(agendaDays(date, AGENDA_LENGTH), showWeekends);
866
968
 
@@ -899,24 +1001,24 @@ function AgendaList({
899
1001
  <p className="pt-2 text-xs text-muted-foreground">No events</p>
900
1002
  ) : (
901
1003
  items.map((event) => (
902
- <button
903
- key={occurrenceKey(event)}
904
- type="button"
905
- data-scheduler-day={isoDay(day)}
906
- className="flex w-full min-w-0 items-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted/40"
907
- style={eventColorStyle(event.color, "wash")}
908
- onClick={() => onEventClick(event)}
909
- >
910
- <span className="mt-1.5 size-2 shrink-0 rounded-full" style={eventColorStyle(event.color, "dot")} />
911
- <span className="min-w-0">
912
- <span className="block truncate text-sm font-semibold text-foreground">{event.title}</span>
913
- <span className="text-[11px] text-muted-foreground">
914
- {event.allDay || isMonthBar(event)
915
- ? "All day"
916
- : `${formatTime(event.start, locale, hour12)} – ${formatTime(event.end, locale, hour12)}`}
917
- </span>
918
- </span>
919
- </button>
1004
+ <div key={occurrenceKey(event)} data-scheduler-day={isoDay(day)}>
1005
+ {renderEventTrigger(
1006
+ event,
1007
+ "flex w-full min-w-0 items-start gap-2 rounded-md px-2 py-1.5 text-left hover:bg-muted/40",
1008
+ <>
1009
+ <span className="mt-1.5 size-2 shrink-0 rounded-full" style={eventColorStyle(event.color, "dot")} />
1010
+ <span className="min-w-0">
1011
+ <span className="block truncate text-sm font-semibold text-foreground">{event.title}</span>
1012
+ <span className="text-[11px] text-muted-foreground">
1013
+ {event.allDay || isMonthBar(event)
1014
+ ? "All day"
1015
+ : `${formatTime(event.start, locale, hour12)} – ${formatTime(event.end, locale, hour12)}`}
1016
+ </span>
1017
+ </span>
1018
+ </>,
1019
+ { variant: "agenda" },
1020
+ )}
1021
+ </div>
920
1022
  ))
921
1023
  )}
922
1024
  </div>
@@ -48,6 +48,11 @@ export type EventTimelineProps = {
48
48
  onEventChange?: (event: SchedulerEvent, next: Partial<SchedulerEvent>) => void;
49
49
  onEventCreate?: (event: SchedulerEvent) => void;
50
50
  onEventDelete?: (event: SchedulerEvent) => void;
51
+ /**
52
+ * Built-in create/edit dialog. Defaults to true.
53
+ * Set false when the host owns create/edit.
54
+ */
55
+ showEventEditor?: boolean;
51
56
  className?: string;
52
57
  };
53
58
 
@@ -103,6 +108,7 @@ export function EventTimeline({
103
108
  onEventChange,
104
109
  onEventCreate,
105
110
  onEventDelete,
111
+ showEventEditor = true,
106
112
  className,
107
113
  }: EventTimelineProps) {
108
114
  const [scale, setScale] = useControllableState<TimelineScale>({
@@ -153,6 +159,7 @@ export function EventTimeline({
153
159
  function openEvent(event: NormalizedEvent) {
154
160
  const source = sourceEvent(events, event.id);
155
161
  if (source) onEventClick?.(source);
162
+ if (!showEventEditor) return;
156
163
  setDraft(source ? draftFromSource(source) : {
157
164
  id: event.id,
158
165
  title: event.title,
@@ -328,30 +335,32 @@ export function EventTimeline({
328
335
  onToggle={toggleResource}
329
336
  />
330
337
 
331
- <EventEditor
332
- open={draft != null}
333
- onOpenChange={(open) => {
334
- if (!open) setDraft(null);
335
- }}
336
- draft={draft}
337
- resources={resources}
338
- readOnly={editorLocked}
339
- onSave={(event) => {
340
- if (event.id && sourceEvent(events, event.id)) {
341
- onEventChange?.(sourceEvent(events, event.id)!, event);
342
- } else {
343
- onEventCreate?.(event);
338
+ {showEventEditor ? (
339
+ <EventEditor
340
+ open={draft != null}
341
+ onOpenChange={(open) => {
342
+ if (!open) setDraft(null);
343
+ }}
344
+ draft={draft}
345
+ resources={resources}
346
+ readOnly={editorLocked}
347
+ onSave={(event) => {
348
+ if (event.id && sourceEvent(events, event.id)) {
349
+ onEventChange?.(sourceEvent(events, event.id)!, event);
350
+ } else {
351
+ onEventCreate?.(event);
352
+ }
353
+ }}
354
+ onDelete={
355
+ onEventDelete
356
+ ? (id) => {
357
+ const source = sourceEvent(events, id);
358
+ if (source) onEventDelete(source);
359
+ }
360
+ : undefined
344
361
  }
345
- }}
346
- onDelete={
347
- onEventDelete
348
- ? (id) => {
349
- const source = sourceEvent(events, id);
350
- if (source) onEventDelete(source);
351
- }
352
- : undefined
353
- }
354
- />
362
+ />
363
+ ) : null}
355
364
  </SchedulerShell>
356
365
  );
357
366
  }
@@ -36,6 +36,16 @@ export const TIMELINE_SCALE_LABEL: Record<TimelineScale, string> = {
36
36
  years: "Years",
37
37
  };
38
38
 
39
+ export type SchedulerToolbarProps = {
40
+ title: ReactNode;
41
+ onPrev: () => void;
42
+ onNext: () => void;
43
+ onToday: () => void;
44
+ menuLabel: string;
45
+ menu: ReactNode;
46
+ trailing?: ReactNode;
47
+ };
48
+
39
49
  export function SchedulerToolbar({
40
50
  title,
41
51
  onPrev,
@@ -44,15 +54,7 @@ export function SchedulerToolbar({
44
54
  menuLabel,
45
55
  menu,
46
56
  trailing,
47
- }: {
48
- title: string;
49
- onPrev: () => void;
50
- onNext: () => void;
51
- onToday: () => void;
52
- menuLabel: string;
53
- menu: ReactNode;
54
- trailing?: ReactNode;
55
- }) {
57
+ }: SchedulerToolbarProps) {
56
58
  return (
57
59
  <div
58
60
  data-slot="scheduler-toolbar"
@@ -152,6 +152,75 @@ describe("EventCalendar", () => {
152
152
  await user.click(screen.getByRole("button", { name: "Save" }));
153
153
  expect(onEventCreate).toHaveBeenCalledWith(expect.objectContaining({ title: "Focus time" }));
154
154
  });
155
+
156
+ it("skips the built-in editor when showEventEditor is false", async () => {
157
+ const user = userEvent.setup();
158
+ const onEventClick = vi.fn();
159
+ const onSlotClick = vi.fn();
160
+ render(
161
+ <EventCalendar
162
+ defaultDate={new Date(2026, 7, 15)}
163
+ events={events}
164
+ resources={resources}
165
+ locale="en-US"
166
+ showEventEditor={false}
167
+ onEventClick={onEventClick}
168
+ onSlotClick={onSlotClick}
169
+ />,
170
+ );
171
+ await user.click(screen.getByText("Morning Run"));
172
+ expect(onEventClick).toHaveBeenCalledWith(expect.objectContaining({ id: "run" }));
173
+ expect(screen.queryByRole("heading", { name: /event/i })).not.toBeInTheDocument();
174
+
175
+ await user.click(screen.getByRole("button", { name: "15" }));
176
+ expect(onSlotClick).toHaveBeenCalled();
177
+ expect(screen.queryByRole("heading", { name: "New event" })).not.toBeInTheDocument();
178
+ });
179
+
180
+ it("renders custom event chips and toolbar", async () => {
181
+ const user = userEvent.setup();
182
+ const onDateChange = vi.fn();
183
+ render(
184
+ <EventCalendar
185
+ defaultDate={new Date(2026, 7, 15)}
186
+ events={events}
187
+ resources={resources}
188
+ locale="en-US"
189
+ showEventEditor={false}
190
+ showPreferences={false}
191
+ toolbarTrailing={<button type="button">Jump year</button>}
192
+ renderEvent={(event) => <span>★ {event.title}</span>}
193
+ renderToolbar={({ title, onToday }) => (
194
+ <div>
195
+ <p>{title}</p>
196
+ <button type="button" onClick={onToday}>
197
+ Jump today
198
+ </button>
199
+ </div>
200
+ )}
201
+ onDateChange={onDateChange}
202
+ />,
203
+ );
204
+ expect(screen.getByText("★ Morning Run")).toBeInTheDocument();
205
+ expect(screen.queryByRole("button", { name: "Preferences" })).not.toBeInTheDocument();
206
+ expect(screen.queryByRole("button", { name: "Jump year" })).not.toBeInTheDocument();
207
+ await user.click(screen.getByRole("button", { name: "Jump today" }));
208
+ expect(onDateChange).toHaveBeenCalled();
209
+ });
210
+
211
+ it("keeps toolbarTrailing on the default toolbar", () => {
212
+ render(
213
+ <EventCalendar
214
+ defaultDate={new Date(2026, 7, 15)}
215
+ events={events}
216
+ locale="en-US"
217
+ showPreferences={false}
218
+ toolbarTrailing={<button type="button">Jump year</button>}
219
+ />,
220
+ );
221
+ expect(screen.getByRole("button", { name: "Jump year" })).toBeInTheDocument();
222
+ expect(screen.getByRole("heading", { name: /August 2026/i })).toBeInTheDocument();
223
+ });
155
224
  });
156
225
 
157
226
  describe("EventTimeline", () => {
@@ -191,4 +260,21 @@ describe("EventTimeline", () => {
191
260
  expect(screen.getByText("API V3 Development")).toBeInTheDocument();
192
261
  expect(screen.getByText("Mobile App UI/UX")).toBeInTheDocument();
193
262
  });
263
+
264
+ it("skips the built-in editor when showEventEditor is false", async () => {
265
+ const user = userEvent.setup();
266
+ const onEventClick = vi.fn();
267
+ render(
268
+ <EventTimeline
269
+ defaultDate={new Date(2026, 7, 1)}
270
+ events={timelineEvents}
271
+ resources={timelineResources}
272
+ showEventEditor={false}
273
+ onEventClick={onEventClick}
274
+ />,
275
+ );
276
+ await user.click(screen.getByText("API V3 Development"));
277
+ expect(onEventClick).toHaveBeenCalledWith(expect.objectContaining({ id: "api" }));
278
+ expect(screen.queryByRole("heading", { name: /event/i })).not.toBeInTheDocument();
279
+ });
194
280
  });
package/src/index.test.ts CHANGED
@@ -5,7 +5,9 @@ import {
5
5
  Button,
6
6
  ChartContainer,
7
7
  ChartDataGrid,
8
+ EventCalendar,
8
9
  MapChart,
10
+ SchedulerToolbar,
9
11
  mercator,
10
12
  } from "./index";
11
13
 
@@ -17,6 +19,8 @@ describe("@spatika/react public exports", () => {
17
19
  expect(ChartDataGrid).toBeTypeOf("function");
18
20
  expect(MapChart).toBeTypeOf("function");
19
21
  expect(BarChart3D).toBeTypeOf("function");
22
+ expect(EventCalendar).toBeTypeOf("function");
23
+ expect(SchedulerToolbar).toBeTypeOf("function");
20
24
  expect(mercator([0, 0])[0]).toBeCloseTo(0.5);
21
25
  });
22
26
  });
package/src/index.ts CHANGED
@@ -486,6 +486,9 @@ export {
486
486
  export {
487
487
  EventCalendar,
488
488
  type EventCalendarProps,
489
+ type EventCalendarEventVariant,
490
+ type EventCalendarEventRenderContext,
491
+ type EventCalendarToolbarContext,
489
492
  } from "./composites/EventCalendar";
490
493
  export {
491
494
  EventTimeline,
@@ -495,12 +498,19 @@ export {
495
498
  EventEditor,
496
499
  type EventEditorDraft,
497
500
  } from "./composites/EventEditor";
501
+ export {
502
+ SchedulerToolbar,
503
+ SchedulerPreferencesMenu,
504
+ CALENDAR_VIEW_LABEL,
505
+ type SchedulerToolbarProps,
506
+ } from "./composites/scheduler-ui";
498
507
  export {
499
508
  DEFAULT_SCHEDULER_PREFERENCES,
500
509
  SCHEDULER_COLOR_TONES,
501
510
  } from "./lib/scheduler";
502
511
  export type {
503
512
  CalendarView,
513
+ NormalizedEvent,
504
514
  SchedulerColorTone,
505
515
  SchedulerEvent,
506
516
  SchedulerPreferences,
@@ -65,6 +65,19 @@ describe("scheduler dates", () => {
65
65
  expect(occupiesDay(birthday, new Date(2026, 7, 4))).toBe(true);
66
66
  expect(occupiesDay(birthday, new Date(2026, 7, 5))).toBe(false);
67
67
  });
68
+
69
+ it("preserves host data on normalized events", () => {
70
+ const [event] = normalizeEvents([
71
+ {
72
+ id: "run",
73
+ title: "Morning Run",
74
+ start: "2026-08-03T07:00:00",
75
+ end: "2026-08-03T07:45:00",
76
+ data: { kind: "CATCHUP" },
77
+ },
78
+ ]);
79
+ expect(event.data).toEqual({ kind: "CATCHUP" });
80
+ });
68
81
  });
69
82
 
70
83
  describe("scheduler layout", () => {
@@ -33,6 +33,8 @@ export type SchedulerEvent = {
33
33
  readOnly?: boolean;
34
34
  draggable?: boolean;
35
35
  resizable?: boolean;
36
+ /** Opaque host payload. The kit never inspects it. */
37
+ data?: unknown;
36
38
  };
37
39
 
38
40
  export type SchedulerResource = {
@@ -74,6 +76,8 @@ export type NormalizedEvent = {
74
76
  draggable?: boolean;
75
77
  resizable?: boolean;
76
78
  occurrenceStart?: Date;
79
+ /** Opaque host payload. The kit never inspects it. */
80
+ data?: unknown;
77
81
  };
78
82
 
79
83
  export const SCHEDULER_COLOR_VARS: Record<SchedulerColorTone, string> = {
@@ -335,6 +339,7 @@ export function normalizeEvents(
335
339
  readOnly: event.readOnly,
336
340
  draggable: event.draggable,
337
341
  resizable: event.resizable,
342
+ data: event.data,
338
343
  };
339
344
  })
340
345
  .sort((a, b) => a.start.getTime() - b.start.getTime() || a.title.localeCompare(b.title));