@calchemy/date-react 0.1.0 → 0.1.2

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.
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/calendar-scroll.ts
21
+ var calendar_scroll_exports = {};
22
+ __export(calendar_scroll_exports, {
23
+ CalendarScroll: () => CalendarScroll
24
+ });
25
+ module.exports = __toCommonJS(calendar_scroll_exports);
26
+
27
+ // src/components/calendar/CalendarScroll.tsx
28
+ var import_react2 = require("react");
29
+ var import_react_dom = require("react-dom");
30
+
31
+ // src/components/calendar/context.ts
32
+ var import_react = require("react");
33
+ var CalchemyContext = (0, import_react.createContext)(null);
34
+ var CalendarContext = (0, import_react.createContext)(null);
35
+ var CalendarPeriodContext = (0, import_react.createContext)(null);
36
+ var CalendarScrollContext = (0, import_react.createContext)(null);
37
+ function useCalchemyCalendar() {
38
+ const state = (0, import_react.useContext)(CalendarContext);
39
+ if (!state) {
40
+ throw new Error("Calchemy calendar components must be rendered inside Calchemy.Calendar.");
41
+ }
42
+ return state;
43
+ }
44
+
45
+ // src/components/calendar/scroll-preload.ts
46
+ function getScrollPosition(element, direction) {
47
+ return direction === "horizontal" ? element.scrollLeft : element.scrollTop;
48
+ }
49
+ function setScrollPosition(element, direction, value) {
50
+ if (direction === "horizontal") {
51
+ element.scrollLeft = value;
52
+ return;
53
+ }
54
+ element.scrollTop = value;
55
+ }
56
+ function getScrollSize(element, direction) {
57
+ return direction === "horizontal" ? element.scrollWidth : element.scrollHeight;
58
+ }
59
+ function getClientSize(element, direction) {
60
+ return direction === "horizontal" ? element.clientWidth : element.clientHeight;
61
+ }
62
+ function scrollPeriodIntoView(scrollElement, period, direction) {
63
+ const scrollRect = scrollElement.getBoundingClientRect();
64
+ const periodRect = period.getBoundingClientRect();
65
+ if (direction === "horizontal") {
66
+ scrollElement.scrollLeft += periodRect.left - scrollRect.left;
67
+ return;
68
+ }
69
+ scrollElement.scrollTop += periodRect.top - scrollRect.top;
70
+ }
71
+ function getScrollAnchorPeriod(scrollElement, direction) {
72
+ const scrollRect = scrollElement.getBoundingClientRect();
73
+ const periods = Array.from(scrollElement.querySelectorAll("[calchemy-period]"));
74
+ let fallback = null;
75
+ for (const period of periods) {
76
+ const periodRect = period.getBoundingClientRect();
77
+ const periodStart = direction === "horizontal" ? periodRect.left : periodRect.top;
78
+ const periodEnd = direction === "horizontal" ? periodRect.right : periodRect.bottom;
79
+ const scrollStart = direction === "horizontal" ? scrollRect.left : scrollRect.top;
80
+ const scrollEnd = direction === "horizontal" ? scrollRect.right : scrollRect.bottom;
81
+ if (periodEnd <= scrollStart) {
82
+ continue;
83
+ }
84
+ if (periodStart >= scrollEnd) {
85
+ break;
86
+ }
87
+ fallback = period;
88
+ if (periodStart >= scrollStart) {
89
+ return period;
90
+ }
91
+ }
92
+ return fallback;
93
+ }
94
+ function getCalendarPeriodWindowSize(scrollElement, direction, periodCount) {
95
+ const periods = Array.from(scrollElement.querySelectorAll("[calchemy-period]"));
96
+ const firstPeriod = periods[0];
97
+ const nextPeriod = periods[1];
98
+ const fallback = direction === "horizontal" ? scrollElement.clientWidth : scrollElement.clientHeight;
99
+ if (!firstPeriod) {
100
+ return fallback;
101
+ }
102
+ const firstRect = firstPeriod.getBoundingClientRect();
103
+ const nextRect = nextPeriod?.getBoundingClientRect();
104
+ const singlePeriodSize = nextRect ? direction === "horizontal" ? nextRect.left - firstRect.left : nextRect.top - firstRect.top : direction === "horizontal" ? firstRect.width : firstRect.height;
105
+ const windowSize = Math.abs(singlePeriodSize) * periodCount;
106
+ return windowSize > 0 ? windowSize : fallback;
107
+ }
108
+ function getLoadedPeriodRunway(calendar, anchor, direction) {
109
+ const anchorIndex = anchor?.getAttribute("calchemy-period-index") ? Number(anchor.getAttribute("calchemy-period-index")) : NaN;
110
+ const firstIndex = calendar.periods[0]?.index;
111
+ const lastIndex = calendar.periods.at(-1)?.index;
112
+ if (!Number.isFinite(anchorIndex) || firstIndex === void 0 || lastIndex === void 0) {
113
+ return null;
114
+ }
115
+ return direction === "before" ? anchorIndex - firstIndex : lastIndex - anchorIndex;
116
+ }
117
+
118
+ // src/components/calendar/CalendarScroll.tsx
119
+ var import_jsx_runtime = require("react/jsx-runtime");
120
+ var preloadWindowCount = 2;
121
+ function CalendarScroll({
122
+ direction = "vertical",
123
+ onScroll,
124
+ ...props
125
+ }) {
126
+ const calendar = useCalchemyCalendar();
127
+ const scrollRef = (0, import_react2.useRef)(null);
128
+ const [leadingSpacer, setLeadingSpacer] = (0, import_react2.useState)({
129
+ periodCount: 0,
130
+ pixelSize: 0
131
+ });
132
+ const positionedPeriodAnchor = (0, import_react2.useRef)(null);
133
+ const suppressPreloadEvaluation = (0, import_react2.useRef)(false);
134
+ const pendingPrependStabilization = (0, import_react2.useRef)(null);
135
+ (0, import_react2.useLayoutEffect)(() => {
136
+ const anchorKey = calendar.periodAnchor.toString();
137
+ if (positionedPeriodAnchor.current === anchorKey) {
138
+ return;
139
+ }
140
+ const element = scrollRef.current;
141
+ const currentPeriod = element?.querySelector(
142
+ "[calchemy-period][calchemy-period-index='0']"
143
+ );
144
+ if (!element || !currentPeriod) {
145
+ return;
146
+ }
147
+ positionedPeriodAnchor.current = anchorKey;
148
+ scrollPeriodIntoView(element, currentPeriod, direction);
149
+ }, [direction, calendar.periodAnchor, calendar.periods]);
150
+ function startBeforePreloadTransaction(element, preloadDirection, periodWindowSize) {
151
+ suppressPreloadEvaluation.current = true;
152
+ const extendPeriodCount = calendar.period.count * preloadWindowCount;
153
+ const previousScrollSize = getScrollSize(element, preloadDirection);
154
+ const previousScrollPosition = getScrollPosition(element, preloadDirection);
155
+ (0, import_react_dom.flushSync)(() => {
156
+ setLeadingSpacer({
157
+ periodCount: extendPeriodCount,
158
+ pixelSize: periodWindowSize * preloadWindowCount
159
+ });
160
+ });
161
+ setScrollPosition(
162
+ element,
163
+ preloadDirection,
164
+ previousScrollPosition + getScrollSize(element, preloadDirection) - previousScrollSize
165
+ );
166
+ (0, import_react_dom.flushSync)(() => {
167
+ calendar.extendPeriods("before", preloadWindowCount);
168
+ setLeadingSpacer({ periodCount: 0, pixelSize: 0 });
169
+ });
170
+ const insertedDelta = getScrollSize(element, preloadDirection) - previousScrollSize;
171
+ const targetPosition = previousScrollPosition + insertedDelta;
172
+ setScrollPosition(element, preloadDirection, targetPosition);
173
+ pendingPrependStabilization.current = {
174
+ direction: preloadDirection,
175
+ insertedDelta,
176
+ targetPosition
177
+ };
178
+ }
179
+ function stabilizePrependScrollEvent(element) {
180
+ const stabilization = pendingPrependStabilization.current;
181
+ if (!stabilization) {
182
+ suppressPreloadEvaluation.current = false;
183
+ return;
184
+ }
185
+ const observedPosition = getScrollPosition(
186
+ element,
187
+ stabilization.direction
188
+ );
189
+ const targetDistance = observedPosition - stabilization.targetPosition;
190
+ const staleCoordinate = Math.abs(
191
+ observedPosition + stabilization.insertedDelta - stabilization.targetPosition
192
+ ) < Math.abs(targetDistance);
193
+ if (staleCoordinate) {
194
+ setScrollPosition(
195
+ element,
196
+ stabilization.direction,
197
+ observedPosition + stabilization.insertedDelta
198
+ );
199
+ }
200
+ pendingPrependStabilization.current = null;
201
+ suppressPreloadEvaluation.current = false;
202
+ }
203
+ function handleScroll(event) {
204
+ onScroll?.(event);
205
+ if (event.defaultPrevented) {
206
+ return;
207
+ }
208
+ const element = event.currentTarget;
209
+ if (suppressPreloadEvaluation.current) {
210
+ stabilizePrependScrollEvent(element);
211
+ return;
212
+ }
213
+ if (getScrollSize(element, direction) <= getClientSize(element, direction)) {
214
+ return;
215
+ }
216
+ const anchor = getScrollAnchorPeriod(element, direction);
217
+ const anchorIndex = anchor?.getAttribute("calchemy-period-index") ? Number(anchor.getAttribute("calchemy-period-index")) : NaN;
218
+ if (Number.isFinite(anchorIndex)) {
219
+ calendar.setVisiblePeriodIndex(anchorIndex);
220
+ }
221
+ const periodWindowSize = getCalendarPeriodWindowSize(
222
+ element,
223
+ direction,
224
+ calendar.period.count
225
+ );
226
+ const startRunway = getLoadedPeriodRunway(calendar, anchor, "before");
227
+ const runwayThreshold = calendar.period.count * preloadWindowCount;
228
+ const endRunway = getLoadedPeriodRunway(calendar, anchor, "after");
229
+ if (startRunway !== null && startRunway <= runwayThreshold && calendar.canExtendPeriods("before", preloadWindowCount)) {
230
+ startBeforePreloadTransaction(element, direction, periodWindowSize);
231
+ }
232
+ if (endRunway !== null && endRunway <= runwayThreshold && calendar.canExtendPeriods("after", preloadWindowCount)) {
233
+ calendar.extendPeriods("after", preloadWindowCount);
234
+ }
235
+ }
236
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
237
+ CalendarScrollContext.Provider,
238
+ {
239
+ value: {
240
+ direction,
241
+ leadingSpacerPeriodCount: leadingSpacer.periodCount,
242
+ leadingSpacerPixelSize: leadingSpacer.pixelSize
243
+ },
244
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
245
+ "div",
246
+ {
247
+ ...props,
248
+ ref: scrollRef,
249
+ "calchemy-scroll": "",
250
+ "calchemy-direction": direction,
251
+ onScroll: handleScroll
252
+ }
253
+ )
254
+ }
255
+ );
256
+ }
257
+ // Annotate the CommonJS export names for ESM import in node:
258
+ 0 && (module.exports = {
259
+ CalendarScroll
260
+ });
261
+ //# sourceMappingURL=calendar-scroll.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/calendar-scroll.ts","../src/components/calendar/CalendarScroll.tsx","../src/components/calendar/context.ts","../src/components/calendar/scroll-preload.ts"],"sourcesContent":["export {\n CalendarScroll,\n type CalchemyCalendarScrollProps,\n} from \"./components/calendar/CalendarScroll\";\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport type { ComponentPropsWithoutRef, UIEvent } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { CalendarScrollContext, useCalchemyCalendar } from \"./context\";\nimport {\n getCalendarPeriodWindowSize,\n getClientSize,\n getLoadedPeriodRunway,\n getScrollAnchorPeriod,\n getScrollPosition,\n getScrollSize,\n scrollPeriodIntoView,\n setScrollPosition,\n} from \"./scroll-preload\";\nimport type { CalendarScrollDirection } from \"./types\";\n\nconst preloadWindowCount = 2;\n\nexport type CalchemyCalendarScrollProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onScroll\"\n> & {\n direction?: CalendarScrollDirection;\n onScroll?: ComponentPropsWithoutRef<\"div\">[\"onScroll\"];\n};\n\nexport function CalendarScroll({\n direction = \"vertical\",\n onScroll,\n ...props\n}: CalchemyCalendarScrollProps) {\n const calendar = useCalchemyCalendar();\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const [leadingSpacer, setLeadingSpacer] = useState({\n periodCount: 0,\n pixelSize: 0,\n });\n const positionedPeriodAnchor = useRef<string | null>(null);\n const suppressPreloadEvaluation = useRef(false);\n const pendingPrependStabilization = useRef<{\n direction: CalendarScrollDirection;\n insertedDelta: number;\n targetPosition: number;\n } | null>(null);\n\n useLayoutEffect(() => {\n const anchorKey = calendar.periodAnchor.toString();\n if (positionedPeriodAnchor.current === anchorKey) {\n return;\n }\n\n const element = scrollRef.current;\n const currentPeriod = element?.querySelector<HTMLElement>(\n \"[calchemy-period][calchemy-period-index='0']\",\n );\n if (!element || !currentPeriod) {\n return;\n }\n\n positionedPeriodAnchor.current = anchorKey;\n scrollPeriodIntoView(element, currentPeriod, direction);\n }, [direction, calendar.periodAnchor, calendar.periods]);\n\n function startBeforePreloadTransaction(\n element: HTMLDivElement,\n preloadDirection: CalendarScrollDirection,\n periodWindowSize: number,\n ) {\n suppressPreloadEvaluation.current = true;\n const extendPeriodCount = calendar.period.count * preloadWindowCount;\n const previousScrollSize = getScrollSize(element, preloadDirection);\n const previousScrollPosition = getScrollPosition(element, preloadDirection);\n\n flushSync(() => {\n setLeadingSpacer({\n periodCount: extendPeriodCount,\n pixelSize: periodWindowSize * preloadWindowCount,\n });\n });\n\n setScrollPosition(\n element,\n preloadDirection,\n previousScrollPosition +\n getScrollSize(element, preloadDirection) -\n previousScrollSize,\n );\n\n flushSync(() => {\n calendar.extendPeriods(\"before\", preloadWindowCount);\n setLeadingSpacer({ periodCount: 0, pixelSize: 0 });\n });\n\n const insertedDelta =\n getScrollSize(element, preloadDirection) - previousScrollSize;\n const targetPosition = previousScrollPosition + insertedDelta;\n setScrollPosition(element, preloadDirection, targetPosition);\n pendingPrependStabilization.current = {\n direction: preloadDirection,\n insertedDelta,\n targetPosition,\n };\n }\n\n function stabilizePrependScrollEvent(element: HTMLDivElement) {\n const stabilization = pendingPrependStabilization.current;\n if (!stabilization) {\n suppressPreloadEvaluation.current = false;\n return;\n }\n\n const observedPosition = getScrollPosition(\n element,\n stabilization.direction,\n );\n const targetDistance = observedPosition - stabilization.targetPosition;\n const staleCoordinate =\n Math.abs(\n observedPosition +\n stabilization.insertedDelta -\n stabilization.targetPosition,\n ) < Math.abs(targetDistance);\n\n if (staleCoordinate) {\n setScrollPosition(\n element,\n stabilization.direction,\n observedPosition + stabilization.insertedDelta,\n );\n }\n\n pendingPrependStabilization.current = null;\n suppressPreloadEvaluation.current = false;\n }\n\n function handleScroll(event: UIEvent<HTMLDivElement>) {\n onScroll?.(event);\n if (event.defaultPrevented) {\n return;\n }\n\n const element = event.currentTarget;\n if (suppressPreloadEvaluation.current) {\n stabilizePrependScrollEvent(element);\n return;\n }\n\n if (\n getScrollSize(element, direction) <= getClientSize(element, direction)\n ) {\n return;\n }\n\n const anchor = getScrollAnchorPeriod(element, direction);\n const anchorIndex = anchor?.getAttribute(\"calchemy-period-index\")\n ? Number(anchor.getAttribute(\"calchemy-period-index\"))\n : NaN;\n if (Number.isFinite(anchorIndex)) {\n calendar.setVisiblePeriodIndex(anchorIndex);\n }\n\n const periodWindowSize = getCalendarPeriodWindowSize(\n element,\n direction,\n calendar.period.count,\n );\n const startRunway = getLoadedPeriodRunway(calendar, anchor, \"before\");\n const runwayThreshold = calendar.period.count * preloadWindowCount;\n const endRunway = getLoadedPeriodRunway(calendar, anchor, \"after\");\n if (\n startRunway !== null &&\n startRunway <= runwayThreshold &&\n calendar.canExtendPeriods(\"before\", preloadWindowCount)\n ) {\n startBeforePreloadTransaction(element, direction, periodWindowSize);\n }\n if (\n endRunway !== null &&\n endRunway <= runwayThreshold &&\n calendar.canExtendPeriods(\"after\", preloadWindowCount)\n ) {\n calendar.extendPeriods(\"after\", preloadWindowCount);\n }\n }\n\n return (\n <CalendarScrollContext.Provider\n value={{\n direction,\n leadingSpacerPeriodCount: leadingSpacer.periodCount,\n leadingSpacerPixelSize: leadingSpacer.pixelSize,\n }}\n >\n <div\n {...props}\n ref={scrollRef}\n calchemy-scroll=\"\"\n calchemy-direction={direction}\n onScroll={handleScroll}\n />\n </CalendarScrollContext.Provider>\n );\n}\n","import { createContext, useContext } from \"react\";\nimport type { CalchemyState } from \"../../hooks/useCalchemy\";\nimport type { CalendarPeriodModel, CalendarScrollContextValue, CalendarState } from \"./types\";\n\nexport const CalchemyContext = createContext<CalchemyState | null>(null);\nexport const CalendarContext = createContext<CalendarState | null>(null);\nexport const CalendarPeriodContext = createContext<CalendarPeriodModel | null>(null);\nexport const CalendarScrollContext = createContext<CalendarScrollContextValue | null>(null);\n\nexport function useCalchemyContext(): CalchemyState {\n const state = useContext(CalchemyContext);\n\n if (!state) {\n throw new Error(\"Calchemy components must be rendered inside Calchemy.Root.\");\n }\n\n return state;\n}\n\nexport function useCalchemyCalendar(): CalendarState {\n const state = useContext(CalendarContext);\n\n if (!state) {\n throw new Error(\"Calchemy calendar components must be rendered inside Calchemy.Calendar.\");\n }\n\n return state;\n}\n\nexport function useCalendarPeriod(): CalendarPeriodModel | null {\n return useContext(CalendarPeriodContext);\n}\n","import type { CalendarScrollDirection, CalendarState } from \"./types\";\n\nexport function getScrollPosition(element: HTMLElement, direction: CalendarScrollDirection): number {\n return direction === \"horizontal\" ? element.scrollLeft : element.scrollTop;\n}\n\nexport function setScrollPosition(\n element: HTMLElement,\n direction: CalendarScrollDirection,\n value: number,\n): void {\n if (direction === \"horizontal\") {\n element.scrollLeft = value;\n return;\n }\n\n element.scrollTop = value;\n}\n\nexport function getScrollSize(element: HTMLElement, direction: CalendarScrollDirection): number {\n return direction === \"horizontal\" ? element.scrollWidth : element.scrollHeight;\n}\n\nexport function getClientSize(element: HTMLElement, direction: CalendarScrollDirection): number {\n return direction === \"horizontal\" ? element.clientWidth : element.clientHeight;\n}\n\nexport function scrollPeriodIntoView(\n scrollElement: HTMLElement,\n period: HTMLElement,\n direction: CalendarScrollDirection,\n): void {\n const scrollRect = scrollElement.getBoundingClientRect();\n const periodRect = period.getBoundingClientRect();\n\n if (direction === \"horizontal\") {\n scrollElement.scrollLeft += periodRect.left - scrollRect.left;\n return;\n }\n\n scrollElement.scrollTop += periodRect.top - scrollRect.top;\n}\n\nexport function getScrollAnchorPeriod(\n scrollElement: HTMLElement,\n direction: CalendarScrollDirection,\n): HTMLElement | null {\n const scrollRect = scrollElement.getBoundingClientRect();\n const periods = Array.from(scrollElement.querySelectorAll<HTMLElement>(\"[calchemy-period]\"));\n let fallback: HTMLElement | null = null;\n\n for (const period of periods) {\n const periodRect = period.getBoundingClientRect();\n const periodStart = direction === \"horizontal\" ? periodRect.left : periodRect.top;\n const periodEnd = direction === \"horizontal\" ? periodRect.right : periodRect.bottom;\n const scrollStart = direction === \"horizontal\" ? scrollRect.left : scrollRect.top;\n const scrollEnd = direction === \"horizontal\" ? scrollRect.right : scrollRect.bottom;\n\n if (periodEnd <= scrollStart) {\n continue;\n }\n if (periodStart >= scrollEnd) {\n break;\n }\n\n fallback = period;\n if (periodStart >= scrollStart) {\n return period;\n }\n }\n\n return fallback;\n}\n\nexport function getCalendarPeriodWindowSize(\n scrollElement: HTMLElement,\n direction: CalendarScrollDirection,\n periodCount: number,\n): number {\n const periods = Array.from(scrollElement.querySelectorAll<HTMLElement>(\"[calchemy-period]\"));\n const firstPeriod = periods[0];\n const nextPeriod = periods[1];\n const fallback = direction === \"horizontal\" ? scrollElement.clientWidth : scrollElement.clientHeight;\n\n if (!firstPeriod) {\n return fallback;\n }\n\n const firstRect = firstPeriod.getBoundingClientRect();\n const nextRect = nextPeriod?.getBoundingClientRect();\n const singlePeriodSize = nextRect\n ? direction === \"horizontal\"\n ? nextRect.left - firstRect.left\n : nextRect.top - firstRect.top\n : direction === \"horizontal\"\n ? firstRect.width\n : firstRect.height;\n const windowSize = Math.abs(singlePeriodSize) * periodCount;\n\n return windowSize > 0 ? windowSize : fallback;\n}\n\nexport function getLoadedPeriodRunway(\n calendar: CalendarState,\n anchor: HTMLElement | null,\n direction: \"before\" | \"after\",\n): number | null {\n const anchorIndex = anchor?.getAttribute(\"calchemy-period-index\")\n ? Number(anchor.getAttribute(\"calchemy-period-index\"))\n : NaN;\n const firstIndex = calendar.periods[0]?.index;\n const lastIndex = calendar.periods.at(-1)?.index;\n\n if (!Number.isFinite(anchorIndex) || firstIndex === undefined || lastIndex === undefined) {\n return null;\n }\n\n return direction === \"before\" ? anchorIndex - firstIndex : lastIndex - anchorIndex;\n}\n"],"mappings":"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","names":["import_react"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarGrid.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAWtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAUrD,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC5E,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,aAA4C,EAC5C,GAAG,KAAK,EACT,EAAE,6BAA6B,2CAiB/B;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,YAAoB,EACpB,aAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,yBAAyB,2CA2J3B"}
1
+ {"version":3,"file":"CalendarGrid.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAYtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAUrD,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC5E,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,aAA4C,EAC5C,GAAG,KAAK,EACT,EAAE,6BAA6B,2CAiB/B;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,YAAoB,EACpB,aAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,yBAAyB,2CA2H3B"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
3
  import { useCalchemyCalendar, useCalendarPeriod } from "./context";
4
- import { CalendarDragRectangleOverlay, getMultipleDates, getSelectedDateKeys, multipleDragSurfaceStyle, toggleDateKeys, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
4
+ import { CalendarDragRectangleOverlay, getMultipleDates, getSelectedDateKeys, mergeCalendarDragPointerProps, multipleDragSurfaceStyle, toggleDateKeys, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
5
5
  import { buildCalendarWeeks, buildWeekdays, getCalendarDayState, getFirstVisibleCalendarPeriod, } from "./date-model";
6
6
  const defaultCalendarWeekdayFormat = "short";
7
7
  export function CalendarWeekdays({ weekdayFormat = defaultCalendarWeekdayFormat, ...props }) {
@@ -21,32 +21,14 @@ export function CalendarGrid({ showBookends = false, dragSelection = true, style
21
21
  const committedSelectedKeys = useMemo(() => new Set(getSelectedDateKeys(calendar.selected)), [calendar.selected]);
22
22
  const previewSelectedKeys = drag?.previewSelectedKeys ?? new Set();
23
23
  const dragState = drag?.dragState ?? null;
24
- return (_jsxs("div", { ...props, "calchemy-grid": "", "calchemy-multiple-drag": useLocalDragHandlers ? "" : undefined, "calchemy-dragging": useLocalDragHandlers && dragState ? "" : undefined, style: useLocalDragHandlers ? { ...multipleDragSurfaceStyle, ...style } : style, onPointerDownCapture: useLocalDragHandlers
25
- ? (event) => {
26
- drag?.handlePointerDownCapture(event);
27
- onPointerDownCapture?.(event);
28
- }
29
- : onPointerDownCapture, onPointerMove: useLocalDragHandlers
30
- ? (event) => {
31
- drag?.handlePointerMove(event);
32
- onPointerMove?.(event);
33
- }
34
- : onPointerMove, onPointerUp: useLocalDragHandlers
35
- ? (event) => {
36
- drag?.handlePointerUp(event);
37
- onPointerUp?.(event);
38
- }
39
- : onPointerUp, onPointerCancel: useLocalDragHandlers
40
- ? (event) => {
41
- drag?.handlePointerCancel(event);
42
- onPointerCancel?.(event);
43
- }
44
- : onPointerCancel, onDragStart: useLocalDragHandlers
45
- ? (event) => {
46
- event.preventDefault();
47
- onDragStart?.(event);
48
- }
49
- : onDragStart, children: [useLocalDragHandlers && drag?.dragRectangle ? (_jsx(CalendarDragRectangleOverlay, { dragRectangle: drag.dragRectangle, surfaceRef: drag.surfaceRef })) : null, weeks.map((week) => (_jsx("div", { "calchemy-week": "", children: week.map((date) => {
24
+ const dragPointerProps = mergeCalendarDragPointerProps(useLocalDragHandlers, drag, {
25
+ onPointerDownCapture,
26
+ onPointerMove,
27
+ onPointerUp,
28
+ onPointerCancel,
29
+ onDragStart,
30
+ });
31
+ return (_jsxs("div", { ...props, "calchemy-grid": "", "calchemy-multiple-drag": useLocalDragHandlers ? "" : undefined, "calchemy-dragging": useLocalDragHandlers && dragState ? "" : undefined, style: useLocalDragHandlers ? { ...multipleDragSurfaceStyle, ...style } : style, ...dragPointerProps, children: [useLocalDragHandlers && drag?.dragRectangle ? (_jsx(CalendarDragRectangleOverlay, { dragRectangle: drag.dragRectangle, surfaceRef: drag.surfaceRef })) : null, weeks.map((week) => (_jsx("div", { "calchemy-week": "", children: week.map((date) => {
50
32
  const dayState = getCalendarDayState(calendar, period, date);
51
33
  const namedDateLabels = dayState.namedDates.map((item) => item.value).join(", ");
52
34
  const dateKey = date.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarGrid.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CalendarGrid.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarPeriod.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAUtD,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,SAAS,CAAC,GAAG;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,aAAoB,EACpB,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,2BAA2B,2CA4E7B"}
1
+ {"version":3,"file":"CalendarPeriod.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAWtD,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,SAAS,CAAC,GAAG;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,aAAoB,EACpB,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,2BAA2B,2CA4C7B"}
@@ -1,42 +1,24 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useContext } from "react";
3
3
  import { CalendarPeriodContext, useCalchemyCalendar } from "./context";
4
- import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, multipleDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
4
+ import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, mergeCalendarDragPointerProps, multipleDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
5
5
  export function CalendarPeriod({ dragSelection = true, style, children, onPointerDownCapture, onPointerMove, onPointerUp, onPointerCancel, onDragStart, ...props }) {
6
6
  const period = useContext(CalendarPeriodContext);
7
7
  const calendar = useCalchemyCalendar();
8
8
  const parentDrag = useOptionalCalendarPeriodDrag();
9
9
  const drag = useCalendarPeriodDragSurface(calendar.editable && dragSelection && parentDrag === null);
10
10
  const content = drag ? (_jsxs(CalendarPeriodDragProvider, { value: drag, children: [_jsx(CalendarDragRectangleOverlay, {}), children] })) : (children);
11
+ const dragPointerProps = mergeCalendarDragPointerProps(Boolean(drag), drag, {
12
+ onPointerDownCapture,
13
+ onPointerMove,
14
+ onPointerUp,
15
+ onPointerCancel,
16
+ onDragStart,
17
+ });
11
18
  return (_jsx("section", { ...props, "calchemy-period": "", "calchemy-period-id": period?.id, "calchemy-period-index": period?.index, "calchemy-multiple-drag": drag ? "" : undefined, "calchemy-dragging": drag?.dragState ? "" : undefined, style: drag
12
19
  ? { ...multipleDragSurfaceStyle, ...style }
13
20
  : parentDrag
14
21
  ? { touchAction: "none", ...style }
15
- : style, onPointerDownCapture: drag
16
- ? (event) => {
17
- drag.handlePointerDownCapture(event);
18
- onPointerDownCapture?.(event);
19
- }
20
- : onPointerDownCapture, onPointerMove: drag
21
- ? (event) => {
22
- drag.handlePointerMove(event);
23
- onPointerMove?.(event);
24
- }
25
- : onPointerMove, onPointerUp: drag
26
- ? (event) => {
27
- drag.handlePointerUp(event);
28
- onPointerUp?.(event);
29
- }
30
- : onPointerUp, onPointerCancel: drag
31
- ? (event) => {
32
- drag.handlePointerCancel(event);
33
- onPointerCancel?.(event);
34
- }
35
- : onPointerCancel, onDragStart: drag
36
- ? (event) => {
37
- event.preventDefault();
38
- onDragStart?.(event);
39
- }
40
- : onDragStart, children: content }));
22
+ : style, ...dragPointerProps, children: content }));
41
23
  }
42
24
  //# sourceMappingURL=CalendarPeriod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarPeriod.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAMhC,MAAM,UAAU,cAAc,CAAC,EAC7B,aAAa,GAAG,IAAI,EACpB,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACoB;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,4BAA4B,CACvC,QAAQ,CAAC,QAAQ,IAAI,aAAa,IAAI,UAAU,KAAK,IAAI,CAC1D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CACrB,MAAC,0BAA0B,IAAC,KAAK,EAAE,IAAI,aACrC,KAAC,4BAA4B,KAAG,EAC/B,QAAQ,IACkB,CAC9B,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CAAC;IAEF,OAAO,CACL,qBACM,KAAK,qBACO,EAAE,wBACE,MAAM,EAAE,EAAE,2BACP,MAAM,EAAE,KAAK,4BACZ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,uBAC1B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACnD,KAAK,EACH,IAAI;YACF,CAAC,CAAC,EAAE,GAAG,wBAAwB,EAAE,GAAG,KAAK,EAAE;YAC3C,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;gBACnC,CAAC,CAAC,KAAK,EAEb,oBAAoB,EAClB,IAAI;YACF,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBACrC,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YACH,CAAC,CAAC,oBAAoB,EAE1B,aAAa,EACX,IAAI;YACF,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACH,CAAC,CAAC,aAAa,EAEnB,WAAW,EACT,IAAI;YACF,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACH,CAAC,CAAC,WAAW,EAEjB,eAAe,EACb,IAAI;YACF,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAChC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACH,CAAC,CAAC,eAAe,EAErB,WAAW,EACT,IAAI;YACF,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACR,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACH,CAAC,CAAC,WAAW,YAGhB,OAAO,GACA,CACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CalendarPeriod.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAMhC,MAAM,UAAU,cAAc,CAAC,EAC7B,aAAa,GAAG,IAAI,EACpB,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACoB;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,4BAA4B,CACvC,QAAQ,CAAC,QAAQ,IAAI,aAAa,IAAI,UAAU,KAAK,IAAI,CAC1D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CACrB,MAAC,0BAA0B,IAAC,KAAK,EAAE,IAAI,aACrC,KAAC,4BAA4B,KAAG,EAC/B,QAAQ,IACkB,CAC9B,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CAAC;IACF,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;QAC1E,oBAAoB;QACpB,aAAa;QACb,WAAW;QACX,eAAe;QACf,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO,CACL,qBACM,KAAK,qBACO,EAAE,wBACE,MAAM,EAAE,EAAE,2BACP,MAAM,EAAE,KAAK,4BACZ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,uBAC1B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACnD,KAAK,EACH,IAAI;YACF,CAAC,CAAC,EAAE,GAAG,wBAAwB,EAAE,GAAG,KAAK,EAAE;YAC3C,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;gBACnC,CAAC,CAAC,KAAK,KAET,gBAAgB,YAEnB,OAAO,GACA,CACX,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarPeriodList.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAatD,MAAM,MAAM,+BAA+B,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,aAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,+BAA+B,2CAgKjC"}
1
+ {"version":3,"file":"CalendarPeriodList.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AActD,MAAM,MAAM,+BAA+B,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,aAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,+BAA+B,2CAgIjC"}
@@ -4,7 +4,7 @@ import { CalendarPeriodContext, CalendarScrollContext, useCalchemyCalendar } fro
4
4
  import { CalendarGrid, CalendarWeekdays } from "./CalendarGrid";
5
5
  import { CalendarPeriodHeading } from "./CalendarPeriodHeading";
6
6
  import { CalendarPeriod } from "./CalendarPeriod";
7
- import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, multiplePeriodListDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
7
+ import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, mergeCalendarDragPointerProps, multiplePeriodListDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
8
8
  export function CalendarPeriodList({ children, dragSelection = true, style, onPointerDownCapture, onPointerMove, onPointerUp, onPointerCancel, onDragStart, ...props }) {
9
9
  const calendar = useCalchemyCalendar();
10
10
  const scrollContext = useContext(CalendarScrollContext);
@@ -63,31 +63,13 @@ export function CalendarPeriodList({ children, dragSelection = true, style, onPo
63
63
  pointerEvents: "auto",
64
64
  touchAction: "none",
65
65
  } }), _jsx(CalendarDragRectangleOverlay, {}), periodContent] })) : (periodContent);
66
- return (_jsx("div", { ...props, ref: surfaceRef, "calchemy-period-list": "", "calchemy-multiple-drag": drag ? "" : undefined, "calchemy-dragging": drag?.dragState ? "" : undefined, style: drag ? { ...multiplePeriodListDragSurfaceStyle, ...style } : style, onPointerDownCapture: drag
67
- ? (event) => {
68
- drag.handlePointerDownCapture(event);
69
- onPointerDownCapture?.(event);
70
- }
71
- : onPointerDownCapture, onPointerMove: drag
72
- ? (event) => {
73
- drag.handlePointerMove(event);
74
- onPointerMove?.(event);
75
- }
76
- : onPointerMove, onPointerUp: drag
77
- ? (event) => {
78
- drag.handlePointerUp(event);
79
- onPointerUp?.(event);
80
- }
81
- : onPointerUp, onPointerCancel: drag
82
- ? (event) => {
83
- drag.handlePointerCancel(event);
84
- onPointerCancel?.(event);
85
- }
86
- : onPointerCancel, onDragStart: drag
87
- ? (event) => {
88
- event.preventDefault();
89
- onDragStart?.(event);
90
- }
91
- : onDragStart, children: content }));
66
+ const dragPointerProps = mergeCalendarDragPointerProps(Boolean(drag), drag, {
67
+ onPointerDownCapture,
68
+ onPointerMove,
69
+ onPointerUp,
70
+ onPointerCancel,
71
+ onDragStart,
72
+ });
73
+ return (_jsx("div", { ...props, ref: surfaceRef, "calchemy-period-list": "", "calchemy-multiple-drag": drag ? "" : undefined, "calchemy-dragging": drag?.dragState ? "" : undefined, style: drag ? { ...multiplePeriodListDragSurfaceStyle, ...style } : style, ...dragPointerProps, children: content }));
92
74
  }
93
75
  //# sourceMappingURL=CalendarPeriodList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarPeriodList.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CalendarPeriodList.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,kCAAkC,EAClC,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAMhC,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,aAAa,GAAG,IAAI,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACwB;IAChC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,4BAA4B,CACvC,QAAQ,CAAC,QAAQ,IAAI,aAAa,IAAI,UAAU,KAAK,IAAI,EACzD,UAAU,CACX,CAAC;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IAE3E,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAc,mBAAmB,CAAC,CAAC;YAClF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAC/C,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBAC3C,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC5F,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YAC5F,CAAC;YAED,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,YAAY,IAAI,CAAC;YAClD,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,WAAW,IAAI,CAAC;QAClD,CAAC,CAAC;QAEF,mBAAmB,EAAE,CAAC;QAEtB,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC/D,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,MAAM,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAc,mBAAmB,CAAC,EAAE,CAAC;YACvF,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,GAAG,EAAE;YACV,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,MAAM,WAAW,GACf,aAAa,EAAE,SAAS,KAAK,YAAY;QACvC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,aAAa,CAAC,wBAAwB,EAAE,EAAE;QAClE,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC;IAEvE,MAAM,aAAa,GAAG,CACpB,8BACG,aAAa,IAAI,aAAa,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7D,6BACc,MAAM,4BACK,EAAE,EACzB,KAAK,EAAE,WAAW,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,qBAAqB,CAAC,QAAQ,IAAiB,KAAK,EAAE,MAAM,YAC1D,QAAQ,IAAI,CACX,MAAC,cAAc,eACb,KAAC,qBAAqB,KAAG,EACzB,KAAC,gBAAgB,KAAG,EACpB,KAAC,YAAY,KAAG,IACD,CAClB,IAPkC,MAAM,CAAC,EAAE,CAQb,CAClC,CAAC,IACD,CACJ,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CACrB,MAAC,0BAA0B,IAAC,KAAK,EAAE,IAAI,aACrC,cACE,GAAG,EAAE,aAAa,iBACN,MAAM,EAClB,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,aAAa,EAAE,MAAM;oBACrB,WAAW,EAAE,MAAM;iBACpB,GACD,EACF,KAAC,4BAA4B,KAAG,EAC/B,aAAa,IACa,CAC9B,CAAC,CAAC,CAAC,CACF,aAAa,CACd,CAAC;IACF,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;QAC1E,oBAAoB;QACpB,aAAa;QACb,WAAW;QACX,eAAe;QACf,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO,CACL,iBACM,KAAK,EACT,GAAG,EAAE,UAAU,0BACM,EAAE,4BACC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,uBAC1B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACnD,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,kCAAkC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KACrE,gBAAgB,YAEnB,OAAO,GACJ,CACP,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type PointerEvent, type RefObject } from "react";
1
+ import { type ComponentPropsWithoutRef, type PointerEvent, type RefObject } from "react";
2
2
  import type { DateValue, PlainDate } from "@calchemy/date-core";
3
3
  type Point = {
4
4
  x: number;
@@ -55,6 +55,8 @@ export declare const multiplePeriodListDragSurfaceStyle: {
55
55
  readonly WebkitUserSelect: "none";
56
56
  readonly touchAction: "none";
57
57
  };
58
+ export type CalendarDragPointerHandlerProps = Pick<ComponentPropsWithoutRef<"div">, "onPointerDownCapture" | "onPointerMove" | "onPointerUp" | "onPointerCancel" | "onDragStart">;
59
+ export declare function mergeCalendarDragPointerProps(enabled: boolean, drag: CalendarPeriodDragContextValue | null | undefined, handlers: CalendarDragPointerHandlerProps): CalendarDragPointerHandlerProps;
58
60
  export declare function useOptionalCalendarPeriodDrag(): CalendarPeriodDragContextValue | null;
59
61
  export declare function useCalendarPeriodDragSurface(dragSelection?: boolean, surfaceElementRef?: RefObject<HTMLElement | null>): CalendarPeriodDragContextValue | null;
60
62
  export type CalendarDragRectangleOverlayProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-period-drag.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar-period-drag.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar-period-drag.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar-period-drag.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,35 @@ export const multiplePeriodListDragSurfaceStyle = {
13
13
  position: "relative",
14
14
  background: "transparent",
15
15
  };
16
+ // Example: `mergeCalendarDragPointerProps(true, drag, handlers)` chains drag surface handlers with caller props.
17
+ export function mergeCalendarDragPointerProps(enabled, drag, handlers) {
18
+ if (!enabled || !drag) {
19
+ return handlers;
20
+ }
21
+ const { onPointerDownCapture, onPointerMove, onPointerUp, onPointerCancel, onDragStart } = handlers;
22
+ return {
23
+ onPointerDownCapture: (event) => {
24
+ drag.handlePointerDownCapture(event);
25
+ onPointerDownCapture?.(event);
26
+ },
27
+ onPointerMove: (event) => {
28
+ drag.handlePointerMove(event);
29
+ onPointerMove?.(event);
30
+ },
31
+ onPointerUp: (event) => {
32
+ drag.handlePointerUp(event);
33
+ onPointerUp?.(event);
34
+ },
35
+ onPointerCancel: (event) => {
36
+ drag.handlePointerCancel(event);
37
+ onPointerCancel?.(event);
38
+ },
39
+ onDragStart: (event) => {
40
+ event.preventDefault();
41
+ onDragStart?.(event);
42
+ },
43
+ };
44
+ }
16
45
  export function useOptionalCalendarPeriodDrag() {
17
46
  return useContext(CalendarPeriodDragContext);
18
47
  }