@savvycal/calendar 0.1.0 → 0.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.
@@ -1,3 +1,3 @@
1
1
  import { ResourceGridViewProps } from '../../types/calendar';
2
- export declare function ResourceGridView({ date, timeZone, resources, events, availability, unavailability, timeAxis, onEventClick, snapDuration, placeholderDuration, selectedRange, onSelect, onSlotClick, className, classNames, hourHeight, columnMinWidth, renderHeader, renderEvent, selectionAppearance, dragPreviewAppearance, selectionRef, selectedEventId, selectedEventRef, renderCorner, eventGap, eventLayout, stackOffset, }: ResourceGridViewProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function ResourceGridView({ date, timeZone, resources, events, availability, unavailability, timeAxis, onEventClick, snapDuration, placeholderDuration, selectedRange, onSelect, onSlotClick, className, classNames, hourHeight, columnMinWidth, renderHeader, renderEvent, selectionAppearance, dragPreviewAppearance, selectionRef, selectionLingerMs, selectedEventId, selectedEventRef, renderCorner, eventGap, eventLayout, stackOffset, }: ResourceGridViewProps): import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=ResourceGridView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceGridView.d.ts","sourceRoot":"","sources":["../../../src/components/resource-grid-view/ResourceGridView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAIV,qBAAqB,EAGtB,MAAM,kBAAkB,CAAC;AAa1B,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAe,EACf,cAAoB,EACpB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,WAAuB,EACvB,WAAe,GAChB,EAAE,qBAAqB,2CAkWvB"}
1
+ {"version":3,"file":"ResourceGridView.d.ts","sourceRoot":"","sources":["../../../src/components/resource-grid-view/ResourceGridView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAIV,qBAAqB,EAGtB,MAAM,kBAAkB,CAAC;AAa1B,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EACV,UAAe,EACf,cAAoB,EACpB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,iBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,WAAuB,EACvB,WAAe,GAChB,EAAE,qBAAqB,2CA+XvB"}
@@ -1,315 +1,329 @@
1
- import { jsxs as M, jsx as n } from "react/jsx-runtime";
2
- import { useCallback as D, useMemo as p, useEffect as no } from "react";
3
- import { cn as R } from "../../lib/utils.js";
4
- import { generateTimeSlots as lo, formatDateLabel as ao, formatTimeRange as B } from "../../lib/time.js";
5
- import { groupByResource as mo, computePositionedEvents as so } from "../../lib/overlap.js";
6
- import { computeUnavailableBlocks as co } from "../../lib/availability.js";
7
- import { resourceGridViewDefaults as uo } from "./defaults.js";
8
- import { GridHeader as po } from "./GridHeader.js";
9
- import { TimeGutter as fo } from "./TimeGutter.js";
10
- import { ResourceColumn as ho } from "./ResourceColumn.js";
11
- import { SlotInteractionLayer as go } from "./SlotInteractionLayer.js";
12
- import { SelectionOverlay as yo } from "./SelectionOverlay.js";
13
- import { UnavailabilityOverlay as wo } from "./UnavailabilityOverlay.js";
14
- import { NowIndicator as Ho } from "./NowIndicator.js";
15
- import { AllDayRow as bo } from "./AllDayRow.js";
16
- import { useEffectiveHourHeight as Co } from "./useEffectiveHourHeight.js";
17
- import { useAnnouncer as Do } from "./useAnnouncer.js";
18
- function Uo({
19
- date: d,
1
+ import { jsxs as L, jsx as n } from "react/jsx-runtime";
2
+ import { useCallback as v, useRef as U, useState as ft, useEffect as V, useMemo as p } from "react";
3
+ import { cn as $ } from "../../lib/utils.js";
4
+ import { generateTimeSlots as pt, formatDateLabel as ht, formatTimeRange as z } from "../../lib/time.js";
5
+ import { groupByResource as gt, computePositionedEvents as yt } from "../../lib/overlap.js";
6
+ import { computeUnavailableBlocks as wt } from "../../lib/availability.js";
7
+ import { resourceGridViewDefaults as Ht } from "./defaults.js";
8
+ import { GridHeader as Rt } from "./GridHeader.js";
9
+ import { TimeGutter as St } from "./TimeGutter.js";
10
+ import { ResourceColumn as bt } from "./ResourceColumn.js";
11
+ import { SlotInteractionLayer as Ct } from "./SlotInteractionLayer.js";
12
+ import { SelectionOverlay as Dt } from "./SelectionOverlay.js";
13
+ import { UnavailabilityOverlay as Tt } from "./UnavailabilityOverlay.js";
14
+ import { NowIndicator as vt } from "./NowIndicator.js";
15
+ import { AllDayRow as $t } from "./AllDayRow.js";
16
+ import { useEffectiveHourHeight as xt } from "./useEffectiveHourHeight.js";
17
+ import { useAnnouncer as kt } from "./useAnnouncer.js";
18
+ function qt({
19
+ date: a,
20
20
  timeZone: l,
21
- resources: i,
22
- events: $,
23
- availability: g,
24
- unavailability: y,
25
- timeAxis: w,
26
- onEventClick: v,
27
- snapDuration: x,
28
- placeholderDuration: L,
29
- selectedRange: f,
30
- onSelect: c,
31
- onSlotClick: G,
32
- className: O,
33
- classNames: S,
34
- hourHeight: W = 60,
35
- columnMinWidth: U = 120,
36
- renderHeader: V,
37
- renderEvent: H,
38
- selectionAppearance: z,
39
- dragPreviewAppearance: A,
40
- selectionRef: F,
41
- selectedEventId: T,
42
- selectedEventRef: k,
43
- renderCorner: K,
44
- eventGap: P,
45
- eventLayout: q = "columns",
46
- stackOffset: J = 8
21
+ resources: o,
22
+ events: x,
23
+ availability: y,
24
+ unavailability: w,
25
+ timeAxis: R,
26
+ onEventClick: k,
27
+ snapDuration: N,
28
+ placeholderDuration: A,
29
+ selectedRange: m,
30
+ onSelect: u,
31
+ onSlotClick: F,
32
+ className: K,
33
+ classNames: E,
34
+ hourHeight: P = 60,
35
+ columnMinWidth: q = 120,
36
+ renderHeader: J,
37
+ renderEvent: S,
38
+ selectionAppearance: Q,
39
+ dragPreviewAppearance: X,
40
+ selectionRef: Y,
41
+ selectionLingerMs: b = 0,
42
+ selectedEventId: j,
43
+ selectedEventRef: I,
44
+ renderCorner: _,
45
+ eventGap: Z,
46
+ eventLayout: tt = "columns",
47
+ stackOffset: et = 8
47
48
  }) {
48
- const a = w?.startHour ?? 0, m = w?.endHour ?? 24, b = w?.intervalMinutes ?? 60, { effectiveHourHeight: s, rootRef: Q, headerRef: X, allDayRef: Y, headerHeight: N } = Co(W, m - a), e = D(
49
- (o) => R(uo[o], S?.[o]),
50
- [S]
51
- ), C = p(
52
- () => lo({ startHour: a, endHour: m, intervalMinutes: b }),
53
- [a, m, b]
54
- ), { allDayEvents: E, timedEvents: j } = p(() => {
55
- const o = [], r = [];
56
- for (const t of $)
57
- t.allDay ? o.push(t) : r.push(t);
58
- return { allDayEvents: o, timedEvents: r };
59
- }, [$]), _ = p(
60
- () => mo(E),
49
+ const c = R?.startHour ?? 0, d = R?.endHour ?? 24, C = R?.intervalMinutes ?? 60, { effectiveHourHeight: s, rootRef: rt, headerRef: ot, allDayRef: it, headerHeight: B } = xt(P, d - c), i = v(
50
+ (t) => $(Ht[t], E?.[t]),
61
51
  [E]
62
- ), Z = p(
63
- () => so(
64
- j,
52
+ ), H = U(null), h = U(null), [lt, M] = ft(
53
+ null
54
+ );
55
+ V(() => {
56
+ if (m)
57
+ h.current !== null && (clearTimeout(h.current), h.current = null), H.current = m;
58
+ else if (H.current && b > 0) {
59
+ const t = H.current;
60
+ H.current = null, M(t), h.current = setTimeout(() => {
61
+ h.current = null, M(null);
62
+ }, b);
63
+ }
64
+ }, [m, b]);
65
+ const D = m ?? lt, T = p(
66
+ () => pt({ startHour: c, endHour: d, intervalMinutes: C }),
67
+ [c, d, C]
68
+ ), { allDayEvents: G, timedEvents: O } = p(() => {
69
+ const t = [], e = [];
70
+ for (const r of x)
71
+ r.allDay ? t.push(r) : e.push(r);
72
+ return { allDayEvents: t, timedEvents: e };
73
+ }, [x]), nt = p(
74
+ () => gt(G),
75
+ [G]
76
+ ), at = p(
77
+ () => yt(
78
+ O,
65
79
  l,
66
- d,
67
80
  a,
68
- m,
81
+ c,
82
+ d,
69
83
  s
70
84
  ),
71
- [j, l, d, a, m, s]
72
- ), oo = p(() => {
73
- if (!g && !y)
85
+ [O, l, a, c, d, s]
86
+ ), ct = p(() => {
87
+ if (!y && !w)
74
88
  return /* @__PURE__ */ new Map();
75
- const o = /* @__PURE__ */ new Set([
76
- ...Object.keys(g ?? {}),
77
- ...Object.keys(y ?? {})
78
- ]), r = /* @__PURE__ */ new Map();
79
- for (const t of o) {
80
- const u = co(
81
- g?.[t],
82
- y?.[t],
89
+ const t = /* @__PURE__ */ new Set([
90
+ ...Object.keys(y ?? {}),
91
+ ...Object.keys(w ?? {})
92
+ ]), e = /* @__PURE__ */ new Map();
93
+ for (const r of t) {
94
+ const f = wt(
95
+ y?.[r],
96
+ w?.[r],
83
97
  l,
84
- d,
85
98
  a,
86
- m,
99
+ c,
100
+ d,
87
101
  s
88
102
  );
89
- u.length > 0 && r.set(t, u);
103
+ f.length > 0 && e.set(r, f);
90
104
  }
91
- return r;
105
+ return e;
92
106
  }, [
93
- g,
94
107
  y,
108
+ w,
95
109
  l,
96
- d,
97
110
  a,
98
- m,
111
+ c,
112
+ d,
99
113
  s
100
- ]), { message: ro, announce: h } = Do(), to = p(
101
- () => `Schedule for ${ao(d)}`,
102
- [d]
103
- ), I = D(
104
- (o) => {
105
- if (c?.(null), v?.(o), o.allDay) {
106
- const r = [o.title, "all day"];
107
- o.clientName && r.push(o.clientName), h(`Selected: ${r.join(", ")}`);
114
+ ]), { message: dt, announce: g } = kt(), st = p(
115
+ () => `Schedule for ${ht(a)}`,
116
+ [a]
117
+ ), W = v(
118
+ (t) => {
119
+ if (u?.(null), k?.(t), t.allDay) {
120
+ const e = [t.title, "all day"];
121
+ t.clientName && e.push(t.clientName), g(`Selected: ${e.join(", ")}`);
108
122
  } else {
109
- const r = [
110
- o.title,
111
- B(o.startTime, o.endTime, l)
123
+ const e = [
124
+ t.title,
125
+ z(t.startTime, t.endTime, l)
112
126
  ];
113
- o.clientName && r.push(o.clientName);
114
- const t = i.find((u) => u.id === o.resourceId);
115
- t && r.push(t.name), h(`Selected: ${r.join(", ")}`);
127
+ t.clientName && e.push(t.clientName);
128
+ const r = o.find((f) => f.id === t.resourceId);
129
+ r && e.push(r.name), g(`Selected: ${e.join(", ")}`);
116
130
  }
117
131
  },
118
- [c, v, l, i, h]
119
- ), io = D(
120
- (o) => {
121
- if (c?.(o), o) {
122
- const r = [
123
- B(o.startTime, o.endTime, l)
124
- ], t = i.find((u) => u.id === o.resourceId);
125
- t && r.push(t.name), h(`Selected time: ${r.join(", ")}`);
132
+ [u, k, l, o, g]
133
+ ), ut = v(
134
+ (t) => {
135
+ if (u?.(t), t) {
136
+ const e = [
137
+ z(t.startTime, t.endTime, l)
138
+ ], r = o.find((f) => f.id === t.resourceId);
139
+ r && e.push(r.name), g(`Selected time: ${e.join(", ")}`);
126
140
  }
127
141
  },
128
- [c, l, i, h]
142
+ [u, l, o, g]
129
143
  );
130
- no(() => {
131
- if (!f || !c) return;
132
- const o = (r) => {
133
- r.key === "Escape" && c(null);
144
+ V(() => {
145
+ if (!m || !u) return;
146
+ const t = (e) => {
147
+ e.key === "Escape" && u(null);
134
148
  };
135
- return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o);
136
- }, [f, c]);
137
- const eo = s * b / 60;
138
- return /* @__PURE__ */ M("div", { ref: Q, className: R(e("root"), O), children: [
139
- /* @__PURE__ */ M(
149
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
150
+ }, [m, u]);
151
+ const mt = s * C / 60;
152
+ return /* @__PURE__ */ L("div", { ref: rt, className: $(i("root"), K), children: [
153
+ /* @__PURE__ */ L(
140
154
  "div",
141
155
  {
142
- className: e("grid"),
156
+ className: i("grid"),
143
157
  role: "region",
144
158
  "aria-roledescription": "calendar",
145
- "aria-label": to,
159
+ "aria-label": st,
146
160
  style: {
147
161
  display: "grid",
148
- gridTemplateColumns: `max-content repeat(${i.length}, minmax(${U}px, 1fr))`,
149
- gridTemplateRows: `auto auto repeat(${C.length}, ${eo}px)`
162
+ gridTemplateColumns: `max-content repeat(${o.length}, minmax(${q}px, 1fr))`,
163
+ gridTemplateRows: `auto auto repeat(${T.length}, ${mt}px)`
150
164
  },
151
165
  children: [
152
166
  /* @__PURE__ */ n(
153
167
  "div",
154
168
  {
155
- ref: X,
156
- className: e("cornerCell"),
169
+ ref: ot,
170
+ className: i("cornerCell"),
157
171
  style: { gridRow: 1, gridColumn: 1 },
158
- children: K?.()
172
+ children: _?.({ timeZone: l, date: a })
159
173
  }
160
174
  ),
161
- i.map((o, r) => /* @__PURE__ */ n(
162
- po,
175
+ o.map((t, e) => /* @__PURE__ */ n(
176
+ Rt,
163
177
  {
164
- resource: o,
165
- column: r + 2,
166
- cls: e,
167
- renderHeader: V
178
+ resource: t,
179
+ column: e + 2,
180
+ cls: i,
181
+ renderHeader: J
168
182
  },
169
- o.id
183
+ t.id
170
184
  )),
171
185
  /* @__PURE__ */ n(
172
186
  "div",
173
187
  {
174
- ref: Y,
175
- className: R(e("allDayCell"), "left-0 z-30"),
188
+ ref: it,
189
+ className: $(i("allDayCell"), "left-0 z-30"),
176
190
  style: {
177
191
  gridRow: 2,
178
192
  gridColumn: 1,
179
- top: N
193
+ top: B
180
194
  }
181
195
  }
182
196
  ),
183
- i.map((o, r) => /* @__PURE__ */ n(
197
+ o.map((t, e) => /* @__PURE__ */ n(
184
198
  "div",
185
199
  {
186
- className: e("allDayCell"),
200
+ className: i("allDayCell"),
187
201
  style: {
188
202
  gridRow: 2,
189
- gridColumn: r + 2,
190
- top: N,
191
- ...r === i.length - 1 ? { borderRightWidth: 0 } : {}
203
+ gridColumn: e + 2,
204
+ top: B,
205
+ ...e === o.length - 1 ? { borderRightWidth: 0 } : {}
192
206
  },
193
207
  children: /* @__PURE__ */ n(
194
- bo,
208
+ $t,
195
209
  {
196
- events: _.get(o.id) ?? [],
197
- cls: e,
198
- onEventClick: I,
199
- selectedEventId: T,
200
- selectedEventRef: k
210
+ events: nt.get(t.id) ?? [],
211
+ cls: i,
212
+ onEventClick: W,
213
+ selectedEventId: j,
214
+ selectedEventRef: I
201
215
  }
202
216
  )
203
217
  },
204
- `allday-${o.id}`
218
+ `allday-${t.id}`
205
219
  )),
206
- C.map((o) => /* @__PURE__ */ n(
207
- fo,
220
+ T.map((t) => /* @__PURE__ */ n(
221
+ St,
208
222
  {
209
- label: o.label,
210
- row: o.index + 3,
211
- isHourStart: o.isHourStart,
212
- isFirst: o.index === 0,
213
- cls: e
223
+ label: t.label,
224
+ row: t.index + 3,
225
+ isHourStart: t.isHourStart,
226
+ isFirst: t.index === 0,
227
+ cls: i
214
228
  },
215
- o.index
229
+ t.index
216
230
  )),
217
- C.map(
218
- (o) => i.map((r, t) => /* @__PURE__ */ n(
231
+ T.map(
232
+ (t) => o.map((e, r) => /* @__PURE__ */ n(
219
233
  "div",
220
234
  {
221
- className: e(o.isHourStart ? "bodyCell" : "bodyCellMinor"),
235
+ className: i(t.isHourStart ? "bodyCell" : "bodyCellMinor"),
222
236
  style: {
223
- gridRow: o.index + 3,
224
- gridColumn: t + 2,
225
- ...o.isHourStart ? {} : { borderTopStyle: "dotted" },
226
- ...o.index === 0 ? { borderTopWidth: 0 } : {},
227
- ...t === i.length - 1 ? { borderRightWidth: 0 } : {}
237
+ gridRow: t.index + 3,
238
+ gridColumn: r + 2,
239
+ ...t.isHourStart ? {} : { borderTopStyle: "dotted" },
240
+ ...t.index === 0 ? { borderTopWidth: 0 } : {},
241
+ ...r === o.length - 1 ? { borderRightWidth: 0 } : {}
228
242
  }
229
243
  },
230
- `${o.index}-${r.id}`
244
+ `${t.index}-${e.id}`
231
245
  ))
232
246
  ),
233
- i.map((o, r) => {
234
- const t = oo.get(o.id);
235
- return t ? /* @__PURE__ */ n(
236
- wo,
247
+ o.map((t, e) => {
248
+ const r = ct.get(t.id);
249
+ return r ? /* @__PURE__ */ n(
250
+ Tt,
237
251
  {
238
- blocks: t,
239
- column: r + 2,
240
- cls: e
252
+ blocks: r,
253
+ column: e + 2,
254
+ cls: i
241
255
  },
242
- `unavail-${o.id}`
256
+ `unavail-${t.id}`
243
257
  ) : null;
244
258
  }),
245
- x != null && i.map((o, r) => /* @__PURE__ */ n(
246
- go,
259
+ N != null && o.map((t, e) => /* @__PURE__ */ n(
260
+ Ct,
247
261
  {
248
- resource: o,
249
- column: r + 2,
250
- date: d,
262
+ resource: t,
263
+ column: e + 2,
264
+ date: a,
251
265
  timeZone: l,
252
- startHour: a,
253
- endHour: m,
266
+ startHour: c,
267
+ endHour: d,
254
268
  hourHeight: s,
255
- snapDuration: x,
256
- placeholderDuration: L ?? 15,
257
- cls: e,
258
- onSlotClick: G,
259
- onSelect: io,
260
- dragPreviewAppearance: A,
261
- renderEvent: H
269
+ snapDuration: N,
270
+ placeholderDuration: A ?? 15,
271
+ cls: i,
272
+ onSlotClick: F,
273
+ onSelect: ut,
274
+ dragPreviewAppearance: X,
275
+ renderEvent: S
262
276
  },
263
- `slot-${o.id}`
277
+ `slot-${t.id}`
264
278
  )),
265
- i.map((o, r) => /* @__PURE__ */ n(
266
- ho,
279
+ o.map((t, e) => /* @__PURE__ */ n(
280
+ bt,
267
281
  {
268
- resource: o,
269
- positionedEvents: Z.get(o.id) ?? [],
270
- column: r + 2,
282
+ resource: t,
283
+ positionedEvents: at.get(t.id) ?? [],
284
+ column: e + 2,
271
285
  timeZone: l,
272
- cls: e,
273
- onEventClick: I,
274
- renderEvent: H,
275
- eventGap: P,
276
- eventLayout: q,
277
- stackOffset: J,
278
- selectedEventId: T,
279
- selectedEventRef: k
286
+ cls: i,
287
+ onEventClick: W,
288
+ renderEvent: S,
289
+ eventGap: Z,
290
+ eventLayout: tt,
291
+ stackOffset: et,
292
+ selectedEventId: j,
293
+ selectedEventRef: I
280
294
  },
281
- o.id
295
+ t.id
282
296
  )),
283
- f != null && (() => {
284
- const o = i.findIndex(
285
- (r) => r.id === f.resourceId
297
+ D != null && (() => {
298
+ const t = o.findIndex(
299
+ (e) => e.id === D.resourceId
286
300
  );
287
- return o === -1 ? null : /* @__PURE__ */ n(
288
- yo,
301
+ return t === -1 ? null : /* @__PURE__ */ n(
302
+ Dt,
289
303
  {
290
- selectedRange: f,
291
- column: o + 2,
292
- resource: i[o],
293
- viewDate: d,
304
+ selectedRange: D,
305
+ column: t + 2,
306
+ resource: o[t],
307
+ viewDate: a,
294
308
  timeZone: l,
295
- startHour: a,
309
+ startHour: c,
296
310
  hourHeight: s,
297
- cls: e,
298
- appearance: z,
299
- selectionRef: F,
300
- renderEvent: H
311
+ cls: i,
312
+ appearance: Q,
313
+ selectionRef: Y,
314
+ renderEvent: S
301
315
  }
302
316
  );
303
317
  })(),
304
318
  /* @__PURE__ */ n(
305
- Ho,
319
+ vt,
306
320
  {
307
- date: d,
321
+ date: a,
308
322
  timeZone: l,
309
- startHour: a,
310
- endHour: m,
323
+ startHour: c,
324
+ endHour: d,
311
325
  hourHeight: s,
312
- cls: e
326
+ cls: i
313
327
  }
314
328
  )
315
329
  ]
@@ -332,11 +346,11 @@ function Uo({
332
346
  whiteSpace: "nowrap",
333
347
  borderWidth: 0
334
348
  },
335
- children: ro
349
+ children: dt
336
350
  }
337
351
  )
338
352
  ] });
339
353
  }
340
354
  export {
341
- Uo as ResourceGridView
355
+ qt as ResourceGridView
342
356
  };
package/dist/index.d.ts CHANGED
@@ -3,4 +3,6 @@ export { ResourceGridView } from './components/resource-grid-view';
3
3
  export { resourceGridViewDefaults } from './components/resource-grid-view';
4
4
  export type { CalendarResource, CalendarEvent, TimedCalendarEvent, AllDayCalendarEvent, TimeSlot, AvailabilityRange, TimeAxisConfig, ResourceGridViewProps, ResourceGridViewClassNames, PositionedEvent, SelectedRange, SelectionAppearance, SelectionEventData, EventLayout, } from './types/calendar';
5
5
  export { cn } from './lib/utils';
6
+ export { timedEvent, allDayEvent } from './lib/events';
7
+ export { selectedRangeToComponents, selectedRangeToISO, groupAvailabilityByResource, } from './lib/ranges';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,10 +1,17 @@
1
- import { Temporal as o } from "temporal-polyfill";
1
+ import { Temporal as r } from "temporal-polyfill";
2
2
  import { cn as m } from "./lib/utils.js";
3
- import { ResourceGridView as t } from "./components/resource-grid-view/ResourceGridView.js";
4
- import { resourceGridViewDefaults as x } from "./components/resource-grid-view/defaults.js";
3
+ import { allDayEvent as a, timedEvent as i } from "./lib/events.js";
4
+ import { groupAvailabilityByResource as f, selectedRangeToComponents as n, selectedRangeToISO as s } from "./lib/ranges.js";
5
+ import { ResourceGridView as x } from "./components/resource-grid-view/ResourceGridView.js";
6
+ import { resourceGridViewDefaults as u } from "./components/resource-grid-view/defaults.js";
5
7
  export {
6
- t as ResourceGridView,
7
- o as Temporal,
8
+ x as ResourceGridView,
9
+ r as Temporal,
10
+ a as allDayEvent,
8
11
  m as cn,
9
- x as resourceGridViewDefaults
12
+ f as groupAvailabilityByResource,
13
+ u as resourceGridViewDefaults,
14
+ n as selectedRangeToComponents,
15
+ s as selectedRangeToISO,
16
+ i as timedEvent
10
17
  };
@@ -0,0 +1,6 @@
1
+ import { AllDayCalendarEvent, TimedCalendarEvent } from '../types/calendar';
2
+ /** Create a timed calendar event (sets allDay to false automatically) */
3
+ export declare function timedEvent(data: Omit<TimedCalendarEvent, 'allDay'>): TimedCalendarEvent;
4
+ /** Create an all-day calendar event (sets allDay to true automatically) */
5
+ export declare function allDayEvent(data: Omit<AllDayCalendarEvent, 'allDay'>): AllDayCalendarEvent;
6
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,yEAAyE;AACzE,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GACvC,kBAAkB,CAEpB;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CACzB,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GACxC,mBAAmB,CAErB"}
@@ -0,0 +1,10 @@
1
+ function e(t) {
2
+ return { ...t, allDay: !1 };
3
+ }
4
+ function n(t) {
5
+ return { ...t, allDay: !0 };
6
+ }
7
+ export {
8
+ n as allDayEvent,
9
+ e as timedEvent
10
+ };
@@ -0,0 +1,34 @@
1
+ import { AvailabilityRange, SelectedRange } from '../types/calendar';
2
+ /** Decompose a SelectedRange into plain date/time component objects */
3
+ export declare function selectedRangeToComponents(range: SelectedRange): {
4
+ startDate: {
5
+ year: number;
6
+ month: number;
7
+ day: number;
8
+ };
9
+ startTime: {
10
+ hour: number;
11
+ minute: number;
12
+ };
13
+ endDate: {
14
+ year: number;
15
+ month: number;
16
+ day: number;
17
+ };
18
+ endTime: {
19
+ hour: number;
20
+ minute: number;
21
+ };
22
+ resourceId: string;
23
+ };
24
+ /** Convert a SelectedRange to ISO string representations */
25
+ export declare function selectedRangeToISO(range: SelectedRange): {
26
+ startDate: string;
27
+ startTime: string;
28
+ endDate: string;
29
+ endTime: string;
30
+ resourceId: string;
31
+ };
32
+ /** Group items by resource ID into a Record of AvailabilityRange arrays */
33
+ export declare function groupAvailabilityByResource<T>(items: T[], getResourceId: (item: T) => string, getRange: (item: T) => AvailabilityRange): Record<string, AvailabilityRange[]>;
34
+ //# sourceMappingURL=ranges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ranges.d.ts","sourceRoot":"","sources":["../../src/lib/ranges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzE,uEAAuE;AACvE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;EAsB7D;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa;;;;;;EAUtD;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,KAAK,EAAE,CAAC,EAAE,EACV,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAClC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,iBAAiB,GACvC,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAUrC"}
@@ -0,0 +1,45 @@
1
+ function r(t) {
2
+ return {
3
+ startDate: {
4
+ year: t.startTime.year,
5
+ month: t.startTime.month,
6
+ day: t.startTime.day
7
+ },
8
+ startTime: {
9
+ hour: t.startTime.hour,
10
+ minute: t.startTime.minute
11
+ },
12
+ endDate: {
13
+ year: t.endTime.year,
14
+ month: t.endTime.month,
15
+ day: t.endTime.day
16
+ },
17
+ endTime: {
18
+ hour: t.endTime.hour,
19
+ minute: t.endTime.minute
20
+ },
21
+ resourceId: t.resourceId
22
+ };
23
+ }
24
+ function s(t) {
25
+ return {
26
+ startDate: t.startTime.toPlainDate().toString(),
27
+ startTime: t.startTime.toPlainTime().toString({ smallestUnit: "minute" }),
28
+ endDate: t.endTime.toPlainDate().toString(),
29
+ endTime: t.endTime.toPlainTime().toString({ smallestUnit: "minute" }),
30
+ resourceId: t.resourceId
31
+ };
32
+ }
33
+ function u(t, m, n) {
34
+ const e = {};
35
+ for (const o of t) {
36
+ const i = m(o);
37
+ e[i] || (e[i] = []), e[i].push(n(o));
38
+ }
39
+ return e;
40
+ }
41
+ export {
42
+ u as groupAvailabilityByResource,
43
+ r as selectedRangeToComponents,
44
+ s as selectedRangeToISO
45
+ };
@@ -13,7 +13,6 @@ interface BaseCalendarEvent {
13
13
  color?: string;
14
14
  clientName?: ReactNode;
15
15
  status?: 'confirmed' | 'canceled' | 'tentative';
16
- metadata?: Record<string, unknown>;
17
16
  }
18
17
  export interface TimedCalendarEvent extends BaseCalendarEvent {
19
18
  allDay?: false;
@@ -117,9 +116,14 @@ export interface ResourceGridViewProps {
117
116
  selectionAppearance?: SelectionAppearance;
118
117
  dragPreviewAppearance?: SelectionAppearance;
119
118
  selectionRef?: Ref<HTMLDivElement>;
119
+ /** How long (ms) the selection overlay remains in DOM after clearing, to allow popover close transitions. Default: 0 */
120
+ selectionLingerMs?: number;
120
121
  selectedEventId?: string | null;
121
122
  selectedEventRef?: Ref<HTMLDivElement>;
122
- renderCorner?: () => ReactNode;
123
+ renderCorner?: (props: {
124
+ timeZone: string;
125
+ date: Temporal.PlainDate;
126
+ }) => ReactNode;
123
127
  eventGap?: number;
124
128
  eventLayout?: EventLayout;
125
129
  stackOffset?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/types/calendar.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@savvycal/calendar",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,6 +10,7 @@
10
10
  },
11
11
  "publishConfig": {
12
12
  "access": "public",
13
+ "provenance": true,
13
14
  "registry": "https://registry.npmjs.org/"
14
15
  },
15
16
  "main": "./dist/index.js",