rangeflow 1.0.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.
Files changed (53) hide show
  1. package/README.md +523 -0
  2. package/dist/Root.d.ts +1 -0
  3. package/dist/animations/OdometerText.d.ts +6 -0
  4. package/dist/components/Calendar/CalendarDayButton.d.ts +2 -0
  5. package/dist/components/Calendar/Chevron.d.ts +2 -0
  6. package/dist/components/Calendar/index.d.ts +2 -0
  7. package/dist/components/DateSlider/DateLabelsTrack.d.ts +1 -0
  8. package/dist/components/DateSlider/DateTickers.d.ts +1 -0
  9. package/dist/components/DateSlider/RangeStepButton.d.ts +7 -0
  10. package/dist/components/DateSlider/Slider/SliderLeftSpacer.d.ts +1 -0
  11. package/dist/components/DateSlider/Slider/SliderRightSpacer.d.ts +1 -0
  12. package/dist/components/DateSlider/Slider/SliderThumb.d.ts +5 -0
  13. package/dist/components/DateSlider/Slider/index.d.ts +5 -0
  14. package/dist/components/DateSlider/SliderTrack.d.ts +5 -0
  15. package/dist/components/DateSlider/SliderValue.d.ts +1 -0
  16. package/dist/components/DateSlider/index.d.ts +1 -0
  17. package/dist/components/DateSlider/utils/restrict-inner-to-element.d.ts +14 -0
  18. package/dist/components/PickerBar/CalendarPopover.d.ts +6 -0
  19. package/dist/components/PickerBar/SelectedDate.d.ts +1 -0
  20. package/dist/components/PickerBar/index.d.ts +1 -0
  21. package/dist/components/Popover/index.d.ts +8 -0
  22. package/dist/components/RangeTabs/hooks/use-apply-slider-layout.d.ts +1 -0
  23. package/dist/components/RangeTabs/index.d.ts +1 -0
  24. package/dist/constants/date-ranges.d.ts +2 -0
  25. package/dist/constants/slider.d.ts +4 -0
  26. package/dist/context/ContextProvider.d.ts +7 -0
  27. package/dist/context/hooks/use-context-api.d.ts +3 -0
  28. package/dist/context/hooks/use-context-events.d.ts +3 -0
  29. package/dist/context/hooks/use-context-refs.d.ts +2 -0
  30. package/dist/context/hooks/use-context-slots.d.ts +2 -0
  31. package/dist/context/root.d.ts +43 -0
  32. package/dist/entry.d.ts +3 -0
  33. package/dist/hooks/use-days-in-range.d.ts +2 -0
  34. package/dist/hooks/use-emit-date-change.d.ts +1 -0
  35. package/dist/hooks/use-rangeflow-events.d.ts +1 -0
  36. package/dist/hooks/use-rangeflow-refs.d.ts +1 -0
  37. package/dist/hooks/use-rangeflow-slots.d.ts +1 -0
  38. package/dist/hooks/use-rangeflow-store-api.d.ts +2 -0
  39. package/dist/hooks/use-rangeflow-store.d.ts +4 -0
  40. package/dist/hooks/use-rangeflow.d.ts +2 -0
  41. package/dist/hooks/use-update-selected-date.d.ts +2 -0
  42. package/dist/icons/CalendarIcon.d.ts +1 -0
  43. package/dist/icons/DoubleChevronLeftIcon.d.ts +1 -0
  44. package/dist/icons/DoubleChevronRightIcon.d.ts +1 -0
  45. package/dist/index.d.ts +2 -0
  46. package/dist/index.js +852 -0
  47. package/dist/style.css +3 -0
  48. package/dist/types.d.ts +58 -0
  49. package/dist/utils/clamp.d.ts +1 -0
  50. package/dist/utils/create-slider-values.d.ts +9 -0
  51. package/dist/utils/derive-selection-from-layout.d.ts +9 -0
  52. package/dist/utils/interpolate.d.ts +3 -0
  53. package/package.json +84 -0
package/dist/index.js ADDED
@@ -0,0 +1,852 @@
1
+ import { createContext as e, createElement as t, memo as n, startTransition as r, useCallback as i, useContext as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
2
+ import u from "dayjs";
3
+ import { immer as d } from "zustand/middleware/immer";
4
+ import { createStore as f } from "zustand/vanilla";
5
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
6
+ import { RestrictToHorizontalAxis as h, restrictShapeToBoundingRectangle as g } from "@dnd-kit/abstract/modifiers";
7
+ import { DragDropProvider as _, DragOverlay as v, useDragDropMonitor as ee, useDraggable as te } from "@dnd-kit/react";
8
+ import y, { clsx as b } from "clsx";
9
+ import { AnimatePresence as ne, motion as x } from "motion/react";
10
+ import { useStore as re } from "zustand";
11
+ import { KeyboardSensor as ie, PointerSensor as ae } from "@dnd-kit/dom";
12
+ import { Group as oe, Panel as S, Separator as C } from "react-resizable-panels";
13
+ import { Modifier as w, configurator as T } from "@dnd-kit/abstract";
14
+ import { Rectangle as E } from "@dnd-kit/geometry";
15
+ import { effect as se, signal as D } from "@dnd-kit/state";
16
+ import { DayPicker as ce } from "react-day-picker";
17
+ import * as O from "@radix-ui/react-popover";
18
+ //#region src/package/rangeflow/constants/date-ranges.ts
19
+ var le = [
20
+ {
21
+ label: "2 Weeks",
22
+ from: u().subtract(1, "weeks").toDate(),
23
+ to: u().add(1, "weeks").toDate()
24
+ },
25
+ {
26
+ label: "30 Days",
27
+ from: u().subtract(15, "day").toDate(),
28
+ to: u().add(15, "day").toDate()
29
+ },
30
+ {
31
+ label: "90 Days",
32
+ from: u().subtract(45, "day").toDate(),
33
+ to: u().add(45, "day").toDate()
34
+ },
35
+ {
36
+ label: "6 Months",
37
+ from: u().subtract(3, "months").toDate(),
38
+ to: u().add(3, "months").toDate()
39
+ },
40
+ {
41
+ label: "1 Year",
42
+ from: u().subtract(6, "months").toDate(),
43
+ to: u().add(6, "months").toDate()
44
+ }
45
+ ], k = "left-spacer", A = "right-spacer", j = "slider-track-thumb";
46
+ //#endregion
47
+ //#region src/package/rangeflow/utils/clamp.ts
48
+ function M(e, t, n) {
49
+ return Math.min(Math.max(e, t), n);
50
+ }
51
+ //#endregion
52
+ //#region src/package/rangeflow/utils/interpolate.ts
53
+ function N(e, t) {
54
+ return (n) => {
55
+ let [r, i] = e, [a, o] = t;
56
+ return a + (n - r) / (i - r) * (o - a);
57
+ };
58
+ }
59
+ //#endregion
60
+ //#region src/package/rangeflow/utils/create-slider-values.ts
61
+ var P = N([1, 100], [5, 100]);
62
+ function F(e, t) {
63
+ let n = u(e.from).startOf("day"), r = u(e.to).startOf("day").diff(n, "day"), i = u(t.from).startOf("day"), a = u(t.to).startOf("day"), o = Math.max(i.diff(n, "day"), 0), s = Math.max(a.diff(i, "day"), 0) * 100 / r, c = o * 100 / r, l = Math.max(P(s), 5), d = M(c - (l - s), 0, Math.max(100 - l, 0));
64
+ return {
65
+ size: l,
66
+ left: d,
67
+ right: Math.max(100 - d - l, 0)
68
+ };
69
+ }
70
+ //#endregion
71
+ //#region src/package/rangeflow/context/hooks/use-context-api.ts
72
+ function I(e, t, n) {
73
+ o(() => {
74
+ if (!n) return;
75
+ let r = n.__internal.store, i = n.__internal.refs;
76
+ return r.current = e, i.current = t, () => {
77
+ r.current = null, i.current = null;
78
+ };
79
+ }, [
80
+ n,
81
+ e,
82
+ t
83
+ ]);
84
+ }
85
+ //#endregion
86
+ //#region src/package/rangeflow/context/hooks/use-context-events.ts
87
+ function L({ onChange: e }) {
88
+ let t = c({ onChange: e });
89
+ return o(() => {
90
+ t.current.onChange = e;
91
+ }), s(() => ({ onChange: (e) => t.current.onChange?.(e) }), []);
92
+ }
93
+ //#endregion
94
+ //#region src/package/rangeflow/context/hooks/use-context-refs.ts
95
+ function R() {
96
+ let e = c(null);
97
+ return s(() => ({ slider: { root: e } }), []);
98
+ }
99
+ //#endregion
100
+ //#region src/package/rangeflow/context/hooks/use-context-slots.ts
101
+ function z(e) {
102
+ return s(() => ({ ...e }), [e]);
103
+ }
104
+ //#endregion
105
+ //#region src/package/rangeflow/context/root.ts
106
+ var B = (e) => f()(d((t) => ({
107
+ ...e,
108
+ update: (e) => t(e),
109
+ reset: () => t(() => structuredClone(e))
110
+ }))), V = e(null);
111
+ //#endregion
112
+ //#region src/package/rangeflow/context/ContextProvider.tsx
113
+ function H({ children: e, defaultRange: t, defaultSelected: n, disabled: r, duration: i, calendar: a = !0, ranges: o = le, CalendarProps: c, Slots: u, api: d, onChange: f }) {
114
+ let m = R(), h = L({ onChange: f }), g = z(u), [_] = l(() => B({
115
+ ranges: o,
116
+ disabled: r,
117
+ duration: i,
118
+ calendar: a,
119
+ range: t,
120
+ default_range: t,
121
+ selected_date: n,
122
+ slider: F(t, n),
123
+ CalendarProps: c
124
+ }));
125
+ I(_, m, d);
126
+ let v = s(() => ({
127
+ store: _,
128
+ events: h,
129
+ refs: m,
130
+ slots: g
131
+ }), [
132
+ _,
133
+ h,
134
+ m,
135
+ g
136
+ ]);
137
+ return /* @__PURE__ */ p(V.Provider, {
138
+ value: v,
139
+ children: e
140
+ });
141
+ }
142
+ //#endregion
143
+ //#region src/package/rangeflow/animations/OdometerText.tsx
144
+ var U = n(({ children: e, className: t }) => /* @__PURE__ */ p("span", {
145
+ className: y("inline-flex tabular-nums", t),
146
+ children: [...e].map((e, t) => {
147
+ let n = e === " " ? "\xA0" : e;
148
+ return /* @__PURE__ */ m("span", {
149
+ className: "relative inline-block overflow-hidden leading-none",
150
+ children: [/* @__PURE__ */ p("span", {
151
+ className: "invisible",
152
+ children: n
153
+ }), /* @__PURE__ */ p(ne, {
154
+ initial: !1,
155
+ mode: "popLayout",
156
+ children: /* @__PURE__ */ p(x.span, {
157
+ animate: {
158
+ y: 0,
159
+ filter: "blur(0px)",
160
+ opacity: 1
161
+ },
162
+ className: "absolute inset-0",
163
+ exit: {
164
+ y: "-110%",
165
+ filter: "blur(6px)",
166
+ opacity: 0
167
+ },
168
+ initial: {
169
+ y: "110%",
170
+ filter: "blur(6px)",
171
+ opacity: 0
172
+ },
173
+ transition: {
174
+ duration: .45,
175
+ ease: [
176
+ .32,
177
+ .72,
178
+ 0,
179
+ 1
180
+ ],
181
+ delay: t * .035
182
+ },
183
+ children: n
184
+ }, e)
185
+ })]
186
+ }, t);
187
+ })
188
+ }));
189
+ //#endregion
190
+ //#region src/package/rangeflow/hooks/use-days-in-range.ts
191
+ function W(e) {
192
+ return s(() => u(e.to).diff(u(e.from), "day"), [e.from, e.to]);
193
+ }
194
+ //#endregion
195
+ //#region src/package/rangeflow/hooks/use-rangeflow-slots.ts
196
+ function G() {
197
+ return a(V).slots;
198
+ }
199
+ //#endregion
200
+ //#region src/package/rangeflow/hooks/use-rangeflow-store.ts
201
+ function K(e) {
202
+ return re(a(V).store, e);
203
+ }
204
+ //#endregion
205
+ //#region src/package/rangeflow/components/DateSlider/DateLabelsTrack.tsx
206
+ function ue(e) {
207
+ return e > 120 ? "MMM YYYY" : e > 7 ? "MMM DD" : "ddd DD";
208
+ }
209
+ function de(e) {
210
+ return e > 120 ? 8 : e > 30 ? 10 : e > 7 ? 8 : Math.min(e + 1, 8);
211
+ }
212
+ var fe = n(() => {
213
+ let e = K((e) => e.range), n = W(e), { DateLabelsTrack: r } = G(), i = s(() => {
214
+ let t = ue(n), r = de(n), i = u(e.from), a = u(e.to).diff(i);
215
+ return Array.from({ length: r }, (e, n) => {
216
+ let o = n / (r - 1);
217
+ return i.add(a * o, "ms").format(t);
218
+ });
219
+ }, [
220
+ e.from,
221
+ e.to,
222
+ n
223
+ ]);
224
+ return r ? t(r) : /* @__PURE__ */ p("div", {
225
+ className: y("rangeflow-labels flex w-full items-center justify-between select-none", "absolute top-10 left-0 px-2", "text-xs tracking-tighter text-(--rangeflow-text-faint) uppercase"),
226
+ children: i.map((e, t) => /* @__PURE__ */ p(U, {
227
+ className: y("rangeflow-label", { "font-medium text-(--rangeflow-text-muted)": t === 0 || t === i.length - 1 }),
228
+ children: e
229
+ }, t))
230
+ });
231
+ });
232
+ //#endregion
233
+ //#region src/package/rangeflow/icons/DoubleChevronLeftIcon.tsx
234
+ function pe() {
235
+ return /* @__PURE__ */ p("svg", {
236
+ fill: "none",
237
+ height: "15",
238
+ viewBox: "0 0 15 15",
239
+ width: "15",
240
+ xmlns: "http://www.w3.org/2000/svg",
241
+ children: /* @__PURE__ */ p("path", {
242
+ clipRule: "evenodd",
243
+ d: "M6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645C6.65829 2.95118 6.34171 2.95118 6.14645 3.14645L2.14645 7.14645C1.95118 7.34171 1.95118 7.65829 2.14645 7.85355L6.14645 11.8536C6.34171 12.0488 6.65829 12.0488 6.85355 11.8536C7.04882 11.6583 7.04882 11.3417 6.85355 11.1464L3.20711 7.5L6.85355 3.85355ZM12.8536 3.85355C13.0488 3.65829 13.0488 3.34171 12.8536 3.14645C12.6583 2.95118 12.3417 2.95118 12.1464 3.14645L8.14645 7.14645C7.95118 7.34171 7.95118 7.65829 8.14645 7.85355L12.1464 11.8536C12.3417 12.0488 12.6583 12.0488 12.8536 11.8536C13.0488 11.6583 13.0488 11.3417 12.8536 11.1464L9.20711 7.5L12.8536 3.85355Z",
244
+ fill: "currentColor",
245
+ fillRule: "evenodd"
246
+ })
247
+ });
248
+ }
249
+ //#endregion
250
+ //#region src/package/rangeflow/icons/DoubleChevronRightIcon.tsx
251
+ function me() {
252
+ return /* @__PURE__ */ p("svg", {
253
+ fill: "none",
254
+ height: "15",
255
+ viewBox: "0 0 15 15",
256
+ width: "15",
257
+ xmlns: "http://www.w3.org/2000/svg",
258
+ children: /* @__PURE__ */ p("path", {
259
+ clipRule: "evenodd",
260
+ d: "M2.14645 11.1464C1.95118 11.3417 1.95118 11.6583 2.14645 11.8536C2.34171 12.0488 2.65829 12.0488 2.85355 11.8536L6.85355 7.85355C7.04882 7.65829 7.04882 7.34171 6.85355 7.14645L2.85355 3.14645C2.65829 2.95118 2.34171 2.95118 2.14645 3.14645C1.95118 3.34171 1.95118 3.65829 2.14645 3.85355L5.79289 7.5L2.14645 11.1464ZM8.14645 11.1464C7.95118 11.3417 7.95118 11.6583 8.14645 11.8536C8.34171 12.0488 8.65829 12.0488 8.85355 11.8536L12.8536 7.85355C13.0488 7.65829 13.0488 7.34171 12.8536 7.14645L8.85355 3.14645C8.65829 2.95118 8.34171 2.95118 8.14645 3.14645C7.95118 3.34171 7.95118 3.65829 8.14645 3.85355L11.7929 7.5L8.14645 11.1464Z",
261
+ fill: "currentColor",
262
+ fillRule: "evenodd"
263
+ })
264
+ });
265
+ }
266
+ //#endregion
267
+ //#region src/package/rangeflow/components/DateSlider/DateTickers.tsx
268
+ var he = n(() => {
269
+ let { DateTickers: e } = G(), n = Math.min(Math.max(70, W(K((e) => e.range))), 100);
270
+ return e ? t(e) : /* @__PURE__ */ p("div", {
271
+ className: "rangeflow-tickers flex items-center gap-2",
272
+ children: /* @__PURE__ */ p("div", {
273
+ className: "flex w-full justify-between",
274
+ children: Array.from({ length: n }).map((e, t) => /* @__PURE__ */ p("div", { className: "rangeflow-ticker h-3 w-0.5 rounded-xs bg-(--rangeflow-ticker)" }, t))
275
+ })
276
+ });
277
+ });
278
+ //#endregion
279
+ //#region src/package/rangeflow/components/DateSlider/RangeStepButton.tsx
280
+ function q({ children: e, onClick: t }) {
281
+ return /* @__PURE__ */ p(x.span, {
282
+ className: "rangeflow-step-button shrink-0 cursor-pointer text-(--rangeflow-text) select-none hover:text-(--rangeflow-text-muted)",
283
+ whileHover: { scale: 1.1 },
284
+ onClick: t,
285
+ children: e
286
+ });
287
+ }
288
+ //#endregion
289
+ //#region src/package/rangeflow/utils/derive-selection-from-layout.ts
290
+ var ge = N([5, 100], [1, 100]);
291
+ function _e(e, t) {
292
+ let n = e[j], r = e[k], i = e[A], a = u(t.from).startOf("day"), o = u(t.to).startOf("day").diff(a, "day"), s = ge(n), c = r + (n - s), l = Math.round(n) <= 5 ? 1 : Math.max(Math.round(s * o / 100), 1), d = M(Math.round(c * o / 100), 0, Math.max(o - l, 0));
293
+ return {
294
+ size: n,
295
+ left: r,
296
+ right: i,
297
+ from: a.add(d, "day").toDate(),
298
+ to: a.add(d + l, "day").toDate()
299
+ };
300
+ }
301
+ //#endregion
302
+ //#region src/package/rangeflow/hooks/use-rangeflow-store-api.ts
303
+ function J() {
304
+ return a(V).store;
305
+ }
306
+ //#endregion
307
+ //#region src/package/rangeflow/hooks/use-update-selected-date.ts
308
+ function Y() {
309
+ let e = J();
310
+ return i((t) => {
311
+ let { range: n, update: r } = e.getState(), { size: i, left: a, right: o, from: s, to: c } = _e(t, n);
312
+ r((e) => {
313
+ e.slider.size = i, e.slider.left = a, e.slider.right = o, e.selected_date = {
314
+ from: s,
315
+ to: c
316
+ };
317
+ });
318
+ }, [e]);
319
+ }
320
+ //#endregion
321
+ //#region src/package/rangeflow/hooks/use-rangeflow-refs.ts
322
+ function X() {
323
+ return a(V).refs;
324
+ }
325
+ //#endregion
326
+ //#region src/package/rangeflow/components/DateSlider/Slider/SliderLeftSpacer.tsx
327
+ function ve() {
328
+ let e = K((e) => e.slider.left), [t] = l(() => e);
329
+ return /* @__PURE__ */ p(S, {
330
+ defaultSize: `${t}%`,
331
+ id: k,
332
+ minSize: 0,
333
+ children: "\xA0"
334
+ });
335
+ }
336
+ //#endregion
337
+ //#region src/package/rangeflow/components/DateSlider/Slider/SliderRightSpacer.tsx
338
+ function ye() {
339
+ let e = K((e) => e.slider.right), [t] = l(() => e);
340
+ return /* @__PURE__ */ p(S, {
341
+ defaultSize: `${t}%`,
342
+ id: A,
343
+ minSize: 0,
344
+ children: "\xA0"
345
+ });
346
+ }
347
+ //#endregion
348
+ //#region src/package/rangeflow/components/DateSlider/SliderValue.tsx
349
+ var be = n(() => {
350
+ let { SliderValueLabel: e } = G(), n = K((e) => e.slider.size), r = K((e) => e.selected_date), i = s(() => {
351
+ let e = Math.max(u(r.to).diff(r.from, "day"), 1);
352
+ return n < 10 ? `${e}D` : e === 1 ? "1 Day" : `${e} Days`;
353
+ }, [
354
+ r.from,
355
+ r.to,
356
+ n
357
+ ]);
358
+ return /* @__PURE__ */ p("div", {
359
+ "data-track-handle": "true",
360
+ className: y("rangeflow-thumb-label flex h-full w-full items-center justify-center", "mx-[clamp(0.5rem,5vw,5%)] cursor-grab", "text-xs font-medium text-nowrap text-(--rangeflow-text)"),
361
+ children: e ? t(e, { label: i }) : i
362
+ });
363
+ }), Z = N([1, 100], [5, 100]);
364
+ function xe({ onHandleRef: e }) {
365
+ let t = K((e) => e.slider.size), n = K((e) => e.duration), r = W(K((e) => e.range)), [i] = l(() => t), a = n?.min ? Math.min(Z(n.min * 100 / r), 100) : 5, o = n?.max ? Math.min(Z(n.max * 100 / r), 100) : 100;
366
+ return /* @__PURE__ */ p(S, {
367
+ defaultSize: `${i}%`,
368
+ elementRef: e,
369
+ id: j,
370
+ maxSize: `${o}%`,
371
+ minSize: `${a}%`,
372
+ children: /* @__PURE__ */ p("div", {
373
+ "data-track-handle-container": "",
374
+ className: y("rangeflow-thumb flex items-center justify-center", "h-full rounded-sm border border-(--rangeflow-border-strong) inset-shadow-sm shadow-(color:--rangeflow-shadow-color)", "backdrop-blur-[2.5px]", "cursor-default select-none"),
375
+ children: /* @__PURE__ */ p(be, {})
376
+ })
377
+ });
378
+ }
379
+ //#endregion
380
+ //#region src/package/rangeflow/components/DateSlider/Slider/index.tsx
381
+ var Se = (e, t, n) => !!e?.querySelector("[data-separator=\"active\"]") && t["slider-track-thumb"] === n["slider-track-thumb"];
382
+ function Ce({ onHandleRef: e }) {
383
+ let t = Y(), { slider: { root: n } } = X(), i = c(null), a = c(null), o = c(null), s = b("rangeflow-separator h-3/4 w-0.75 self-center rounded-full transition-[background-color,opacity] duration-150", "bg-(--rangeflow-separator) hover:bg-(--rangeflow-separator-active) focus:outline-none", "data-[separator=active]:bg-(--rangeflow-separator-active)", "opacity-0 group-has-[[data-track-handle-container]:hover]:opacity-100", "hover:opacity-100 data-[separator=active]:opacity-100 data-[separator=focus]:opacity-100"), { ref: l } = te({
384
+ id: "track-handle-draggable",
385
+ sensors: [ae.configure({ preventActivation: (e) => !(e.target instanceof HTMLDivElement) || !e.target.dataset.trackHandle }), ie]
386
+ });
387
+ return ee({
388
+ onDragStart: () => {
389
+ a.current = n.current?.getLayout() ?? null;
390
+ },
391
+ onDragMove: (e) => {
392
+ if (!n.current || !a.current || !i.current || !i.current.clientWidth) return;
393
+ let t = e.operation.transform.x / i.current.clientWidth * 100, r = a.current, o = r[k] + r[A], s = Math.min(Math.max(r[k] + t, 0), o);
394
+ n.current.setLayout({
395
+ ...r,
396
+ [k]: s,
397
+ [A]: o - s
398
+ });
399
+ },
400
+ onDragEnd: () => {
401
+ a.current = null;
402
+ }
403
+ }), /* @__PURE__ */ p("div", {
404
+ ref: l,
405
+ className: b("absolute top-[50%] left-0 z-1 -translate-y-[50%]", "h-7 w-full"),
406
+ children: /* @__PURE__ */ m(oe, {
407
+ className: "group h-full w-full",
408
+ elementRef: i,
409
+ groupRef: n,
410
+ onLayoutChange: (e) => {
411
+ let a = o.current;
412
+ if (a && Se(i.current, a, e)) {
413
+ n.current?.setLayout(a);
414
+ return;
415
+ }
416
+ o.current = e, r(() => {
417
+ t(e);
418
+ });
419
+ },
420
+ children: [
421
+ /* @__PURE__ */ p(ve, {}),
422
+ /* @__PURE__ */ p(C, { className: s }),
423
+ /* @__PURE__ */ p(xe, { onHandleRef: e }),
424
+ /* @__PURE__ */ p(C, { className: s }),
425
+ /* @__PURE__ */ p(ye, {})
426
+ ]
427
+ })
428
+ });
429
+ }
430
+ //#endregion
431
+ //#region src/package/rangeflow/components/DateSlider/SliderTrack.tsx
432
+ function we({ onHandleRef: e }) {
433
+ let t = K((e) => e.update), n = K((e) => e.range), r = W(n), i = K((e) => e.disabled?.before), a = K((e) => e.disabled?.after), o = s(() => !i || u(n.from).isAfter(i), [n.from, i]), c = s(() => !a || u(n.to).isBefore(a), [n.to, a]);
434
+ return /* @__PURE__ */ m("div", {
435
+ className: "flex items-center select-none",
436
+ children: [
437
+ o ? /* @__PURE__ */ p(q, {
438
+ onClick: () => {
439
+ t((e) => {
440
+ let t = u(e.range.from).subtract(r / 2, "day");
441
+ e.range.from = i && t.isBefore(i) ? u(i).toDate() : t.toDate();
442
+ });
443
+ },
444
+ children: /* @__PURE__ */ p(pe, {})
445
+ }) : null,
446
+ /* @__PURE__ */ m("div", {
447
+ className: "relative flex-1 px-2",
448
+ children: [/* @__PURE__ */ p(Ce, { onHandleRef: e }), /* @__PURE__ */ p(he, {})]
449
+ }),
450
+ c ? /* @__PURE__ */ p(q, {
451
+ onClick: () => {
452
+ t((e) => {
453
+ let t = u(e.range.to).add(r / 2, "day");
454
+ e.range.to = a && t.isAfter(a) ? u(a).toDate() : t.toDate();
455
+ });
456
+ },
457
+ children: /* @__PURE__ */ p(me, {})
458
+ }) : null
459
+ ]
460
+ });
461
+ }
462
+ //#endregion
463
+ //#region src/package/rangeflow/components/DateSlider/utils/restrict-inner-to-element.ts
464
+ var Te = class e extends w {
465
+ innerRect = D(null);
466
+ containerRect = D(null);
467
+ constructor(e, t) {
468
+ super(e, t), this.destroy = se(() => {
469
+ if (!this.options) return;
470
+ let { dragOperation: t } = e;
471
+ if (!t.status.initialized) return;
472
+ let { inner: n, container: r } = this.options, i = typeof n == "function" ? n(t) : n, a = typeof r == "function" ? r(t) : r;
473
+ if (!(!i || !a)) return this.innerRect.value = i.getBoundingClientRect(), this.containerRect.value = a.getBoundingClientRect(), () => {
474
+ this.innerRect.value = null, this.containerRect.value = null;
475
+ };
476
+ });
477
+ }
478
+ apply({ transform: e }) {
479
+ let t = this.innerRect.value, n = this.containerRect.value;
480
+ return !t || !n ? e : g(new E(t.left, t.top, t.width, t.height), e, n);
481
+ }
482
+ static configure = T(e);
483
+ };
484
+ //#endregion
485
+ //#region src/package/rangeflow/components/DateSlider/index.tsx
486
+ function Ee() {
487
+ let [e, t] = l(null), [n, r] = l(null);
488
+ return /* @__PURE__ */ p("div", {
489
+ ref: t,
490
+ className: "rangeflow-slider relative my-8 h-3 w-full px-2",
491
+ children: /* @__PURE__ */ m(_, {
492
+ modifiers: [Te.configure({
493
+ inner: n,
494
+ container: e
495
+ }), h],
496
+ children: [
497
+ /* @__PURE__ */ p(we, { onHandleRef: r }),
498
+ /* @__PURE__ */ p(fe, {}),
499
+ /* @__PURE__ */ p(v, { children: null })
500
+ ]
501
+ })
502
+ });
503
+ }
504
+ //#endregion
505
+ //#region src/package/rangeflow/components/RangeTabs/hooks/use-apply-slider-layout.ts
506
+ function De() {
507
+ let e = Y(), t = K((e) => e.range.from.getTime()), n = K((e) => e.range.to.getTime()), { slider: { root: i } } = X();
508
+ o(() => {
509
+ r(() => {
510
+ e(i.current.getLayout());
511
+ });
512
+ }, [
513
+ e,
514
+ i,
515
+ t,
516
+ n
517
+ ]);
518
+ }
519
+ //#endregion
520
+ //#region src/package/rangeflow/components/RangeTabs/index.tsx
521
+ function Oe() {
522
+ De();
523
+ let e = K((e) => e.ranges), t = K((e) => e.update), n = K((e) => e.range.from), r = K((e) => e.range.to), i = K((e) => e.disabled?.before), a = K((e) => e.disabled?.after), o = s(() => e.filter((e) => !(i && u(e.from).isBefore(i, "day") || a && u(e.to).isAfter(a, "day"))), [
524
+ e,
525
+ i,
526
+ a
527
+ ]), c = s(() => o.findIndex((e) => u(e.from).isSame(n, "day") && u(e.to).isSame(r, "day")), [
528
+ o,
529
+ n,
530
+ r
531
+ ]);
532
+ return /* @__PURE__ */ p("div", {
533
+ className: "rangeflow-tabs flex items-center justify-center select-none",
534
+ children: /* @__PURE__ */ p("div", {
535
+ className: "flex items-center",
536
+ children: o.map((e, n) => /* @__PURE__ */ m("button", {
537
+ "data-active": c === n || void 0,
538
+ className: y("rangeflow-tab relative z-1 flex items-center px-1.5 py-1"),
539
+ onClick: () => {
540
+ t((t) => {
541
+ t.range.from = e.from, t.range.to = e.to;
542
+ });
543
+ },
544
+ children: [/* @__PURE__ */ p("span", {
545
+ className: y("relative z-1 text-xs tracking-tight text-(--rangeflow-text-muted)", { "font-medium text-(--rangeflow-text)": c === n }),
546
+ children: e.label
547
+ }), c === n && /* @__PURE__ */ p(x.div, {
548
+ className: "rangeflow-tab-indicator absolute inset-0 rounded-sm bg-(--rangeflow-active-bg)",
549
+ layoutId: "tab-indicator",
550
+ transition: {
551
+ type: "spring",
552
+ stiffness: 200,
553
+ damping: 25
554
+ }
555
+ })]
556
+ }, `${e.from.getDate()}_${e.to.getDate()}`))
557
+ })
558
+ });
559
+ }
560
+ //#endregion
561
+ //#region src/package/rangeflow/components/Calendar/CalendarDayButton.tsx
562
+ function ke({ className: e, day: t, modifiers: n, ...r }) {
563
+ let i = c(null);
564
+ o(() => {
565
+ n.focused && i.current?.focus();
566
+ }, [n.focused]);
567
+ let a = n.selected && !n.range_start && !n.range_middle && !n.range_end;
568
+ return /* @__PURE__ */ p("button", {
569
+ ref: i,
570
+ "data-range-end": n.range_end || void 0,
571
+ "data-range-middle": n.range_middle || void 0,
572
+ "data-range-start": n.range_start || void 0,
573
+ "data-selected": a || void 0,
574
+ "data-today": n.today || void 0,
575
+ className: y("rangeflow-day flex h-9 w-9 items-center justify-center rounded-sm leading-none", "text-xs text-(--rangeflow-text-muted) transition-colors", "hover:bg-(--rangeflow-hover-bg)", "focus-visible:ring-1 focus-visible:ring-(--rangeflow-ring) focus-visible:outline-none", "data-[today=true]:font-bold data-[today=true]:text-(--rangeflow-today)", "data-[selected=true]:bg-(--rangeflow-accent-solid) data-[selected=true]:text-(--rangeflow-accent-contrast) data-[selected=true]:hover:bg-(--rangeflow-accent-solid-hover)", "data-[range-start=true]:bg-(--rangeflow-accent-solid) data-[range-start=true]:text-(--rangeflow-accent-contrast)", "data-[range-end=true]:bg-(--rangeflow-accent-solid) data-[range-end=true]:text-(--rangeflow-accent-contrast)", e),
576
+ ...r
577
+ });
578
+ }
579
+ //#endregion
580
+ //#region src/package/rangeflow/components/Calendar/Chevron.tsx
581
+ var Ae = {
582
+ up: "rotate-180",
583
+ down: "",
584
+ left: "rotate-90",
585
+ right: "-rotate-90"
586
+ };
587
+ function je({ className: e, orientation: t = "down", size: n = 16 }) {
588
+ return /* @__PURE__ */ p("svg", {
589
+ "aria-hidden": "true",
590
+ className: y("shrink-0", Ae[t], e),
591
+ fill: "none",
592
+ height: n,
593
+ stroke: "currentColor",
594
+ strokeLinecap: "round",
595
+ strokeLinejoin: "round",
596
+ strokeWidth: 2,
597
+ viewBox: "0 0 24 24",
598
+ width: n,
599
+ children: /* @__PURE__ */ p("path", { d: "m6 9 6 6 6-6" })
600
+ });
601
+ }
602
+ //#endregion
603
+ //#region src/package/rangeflow/components/Calendar/index.tsx
604
+ function Me({ captionLayout: e = "label", className: t, classNames: n, components: r, showOutsideDays: i = !0, ...a }) {
605
+ return /* @__PURE__ */ p(ce, {
606
+ captionLayout: e,
607
+ className: y("rangeflow-calendar w-fit p-3 select-none", t),
608
+ showOutsideDays: i,
609
+ classNames: {
610
+ months: "relative flex flex-col gap-4 md:flex-row",
611
+ month: "flex w-full flex-col gap-4",
612
+ nav: "absolute inset-x-0 top-0 flex h-7 items-center justify-between",
613
+ button_previous: y("inline-flex h-7 w-7 items-center justify-center rounded-sm", "text-(--rangeflow-text-subtle) transition-colors hover:bg-(--rangeflow-hover-bg) hover:text-(--rangeflow-text-muted)", "aria-disabled:pointer-events-none aria-disabled:opacity-40"),
614
+ button_next: y("inline-flex h-7 w-7 items-center justify-center rounded-sm", "text-(--rangeflow-text-subtle) transition-colors hover:bg-(--rangeflow-hover-bg) hover:text-(--rangeflow-text-muted)", "aria-disabled:pointer-events-none aria-disabled:opacity-40"),
615
+ month_caption: "flex h-7 items-center justify-center text-xs font-medium text-(--rangeflow-text-muted)",
616
+ caption_label: "text-xs font-medium",
617
+ dropdowns: "flex items-center gap-1 text-xs font-medium text-(--rangeflow-text-muted)",
618
+ dropdown_root: y("relative flex items-center gap-1 rounded-sm border border-(--rangeflow-border) px-1.5 py-0.5", "has-[:focus]:ring-1 has-[:focus]:ring-(--rangeflow-ring)"),
619
+ dropdown: "absolute inset-0 cursor-pointer opacity-0",
620
+ month_grid: "mt-2 w-full border-collapse",
621
+ weekdays: "flex",
622
+ weekday: "flex-1 text-[0.7rem] font-normal text-(--rangeflow-text-faint)",
623
+ week: "mt-1 flex w-full",
624
+ week_number_header: "w-9",
625
+ week_number: "w-9 text-[0.7rem] text-(--rangeflow-text-faint)",
626
+ day: "relative flex-1 p-0 text-center",
627
+ range_start: "rounded-l-sm bg-(--rangeflow-range-bg)",
628
+ range_middle: "bg-(--rangeflow-range-bg)",
629
+ range_end: "rounded-r-sm bg-(--rangeflow-range-bg)",
630
+ outside: "text-(--rangeflow-text-disabled)",
631
+ disabled: "text-(--rangeflow-text-disabled) opacity-50",
632
+ hidden: "invisible",
633
+ ...n
634
+ },
635
+ components: {
636
+ DayButton: ke,
637
+ Chevron: je,
638
+ ...r
639
+ },
640
+ ...a
641
+ });
642
+ }
643
+ //#endregion
644
+ //#region src/package/rangeflow/components/Popover/index.tsx
645
+ var Ne = n(({ align: e = "center", className: t, sideOffset: n = 6, children: r, ...i }) => /* @__PURE__ */ p(O.Portal, { children: /* @__PURE__ */ p(O.Content, {
646
+ asChild: !0,
647
+ align: e,
648
+ sideOffset: n,
649
+ ...i,
650
+ children: /* @__PURE__ */ p(x.div, {
651
+ animate: {
652
+ opacity: 1,
653
+ scale: 1,
654
+ y: 0
655
+ },
656
+ initial: {
657
+ opacity: 0,
658
+ scale: .96,
659
+ y: -4
660
+ },
661
+ style: { transformOrigin: "var(--radix-popover-content-transform-origin)" },
662
+ transition: {
663
+ type: "spring",
664
+ stiffness: 420,
665
+ damping: 32,
666
+ mass: .8
667
+ },
668
+ className: y("rangeflow-date-picker-portal rangeflow-popover z-50 rounded-lg border border-(--rangeflow-border) bg-(--rangeflow-bg) p-2 text-(--rangeflow-text) shadow-md shadow-(color:--rangeflow-shadow-color) backdrop-blur-[10px] outline-none", t),
669
+ children: r
670
+ })
671
+ }) })), Pe = O.Root, Fe = O.Trigger;
672
+ O.Anchor;
673
+ //#endregion
674
+ //#region src/package/rangeflow/components/PickerBar/CalendarPopover.tsx
675
+ function Q({ children: e }) {
676
+ let t = K((e) => e.update), n = K((e) => e.range), r = K((e) => e.selected_date), i = K((e) => e.disabled), a = K((e) => e.duration), o = K((e) => e.CalendarProps), { slider: { root: s } } = X(), c = () => {
677
+ let e = u(n.from), t = u(n.to);
678
+ return u(r.from).isBefore(e) && (e = u(r.from).subtract(10, "day")), u(r.to).isAfter(t) && (t = u(r.to).add(10, "day")), {
679
+ from: e.toDate(),
680
+ to: t.toDate()
681
+ };
682
+ }, l = () => {
683
+ let e = c(), { size: n, left: i, right: a } = F(e, r);
684
+ s.current?.setLayout({
685
+ [k]: i,
686
+ [j]: n,
687
+ [A]: a
688
+ }), t((t) => {
689
+ t.range = e;
690
+ });
691
+ };
692
+ return /* @__PURE__ */ m(Pe, {
693
+ modal: !0,
694
+ onOpenChange: (e) => {
695
+ e === !1 && l();
696
+ },
697
+ children: [/* @__PURE__ */ p(Fe, {
698
+ className: "cursor-pointer",
699
+ children: e
700
+ }), /* @__PURE__ */ p(Ne, {
701
+ align: "start",
702
+ sideOffset: 10,
703
+ children: /* @__PURE__ */ p(Me, {
704
+ defaultMonth: r.from,
705
+ numberOfMonths: 2,
706
+ showOutsideDays: !1,
707
+ ...o,
708
+ disabled: i,
709
+ max: a?.max,
710
+ min: a?.min,
711
+ mode: "range",
712
+ selected: r,
713
+ onSelect: (e) => {
714
+ if (!e?.from || !e?.to) return;
715
+ let n = u(e.from).startOf("day"), r = u(e.to).startOf("day"), i = {
716
+ from: n.toDate(),
717
+ to: r.toDate()
718
+ };
719
+ t((e) => {
720
+ e.selected_date = i;
721
+ });
722
+ }
723
+ })
724
+ })]
725
+ });
726
+ }
727
+ //#endregion
728
+ //#region src/package/rangeflow/icons/CalendarIcon.tsx
729
+ function Ie() {
730
+ return /* @__PURE__ */ p("svg", {
731
+ fill: "none",
732
+ height: "15",
733
+ viewBox: "0 0 15 15",
734
+ width: "15",
735
+ xmlns: "http://www.w3.org/2000/svg",
736
+ children: /* @__PURE__ */ p("path", {
737
+ clipRule: "evenodd",
738
+ d: "M4.5 1C4.77614 1 5 1.22386 5 1.5V2H10V1.5C10 1.22386 10.2239 1 10.5 1C10.7761 1 11 1.22386 11 1.5V2H12.5C13.3284 2 14 2.67157 14 3.5V12.5C14 13.3284 13.3284 14 12.5 14H2.5C1.67157 14 1 13.3284 1 12.5V3.5C1 2.67157 1.67157 2 2.5 2H4V1.5C4 1.22386 4.22386 1 4.5 1ZM10 3V3.5C10 3.77614 10.2239 4 10.5 4C10.7761 4 11 3.77614 11 3.5V3H12.5C12.7761 3 13 3.22386 13 3.5V5H2V3.5C2 3.22386 2.22386 3 2.5 3H4V3.5C4 3.77614 4.22386 4 4.5 4C4.77614 4 5 3.77614 5 3.5V3H10ZM2 6V12.5C2 12.7761 2.22386 13 2.5 13H12.5C12.7761 13 13 12.7761 13 12.5V6H2ZM7 7.5C7 7.22386 7.22386 7 7.5 7C7.77614 7 8 7.22386 8 7.5C8 7.77614 7.77614 8 7.5 8C7.22386 8 7 7.77614 7 7.5ZM9.5 7C9.22386 7 9 7.22386 9 7.5C9 7.77614 9.22386 8 9.5 8C9.77614 8 10 7.77614 10 7.5C10 7.22386 9.77614 7 9.5 7ZM11 7.5C11 7.22386 11.2239 7 11.5 7C11.7761 7 12 7.22386 12 7.5C12 7.77614 11.7761 8 11.5 8C11.2239 8 11 7.77614 11 7.5ZM11.5 9C11.2239 9 11 9.22386 11 9.5C11 9.77614 11.2239 10 11.5 10C11.7761 10 12 9.77614 12 9.5C12 9.22386 11.7761 9 11.5 9ZM9 9.5C9 9.22386 9.22386 9 9.5 9C9.77614 9 10 9.22386 10 9.5C10 9.77614 9.77614 10 9.5 10C9.22386 10 9 9.77614 9 9.5ZM7.5 9C7.22386 9 7 9.22386 7 9.5C7 9.77614 7.22386 10 7.5 10C7.77614 10 8 9.77614 8 9.5C8 9.22386 7.77614 9 7.5 9ZM5 9.5C5 9.22386 5.22386 9 5.5 9C5.77614 9 6 9.22386 6 9.5C6 9.77614 5.77614 10 5.5 10C5.22386 10 5 9.77614 5 9.5ZM3.5 9C3.22386 9 3 9.22386 3 9.5C3 9.77614 3.22386 10 3.5 10C3.77614 10 4 9.77614 4 9.5C4 9.22386 3.77614 9 3.5 9ZM3 11.5C3 11.2239 3.22386 11 3.5 11C3.77614 11 4 11.2239 4 11.5C4 11.7761 3.77614 12 3.5 12C3.22386 12 3 11.7761 3 11.5ZM5.5 11C5.22386 11 5 11.2239 5 11.5C5 11.7761 5.22386 12 5.5 12C5.77614 12 6 11.7761 6 11.5C6 11.2239 5.77614 11 5.5 11ZM7 11.5C7 11.2239 7.22386 11 7.5 11C7.77614 11 8 11.2239 8 11.5C8 11.7761 7.77614 12 7.5 12C7.22386 12 7 11.7761 7 11.5ZM9.5 11C9.22386 11 9 11.2239 9 11.5C9 11.7761 9.22386 12 9.5 12C9.77614 12 10 11.7761 10 11.5C10 11.2239 9.77614 11 9.5 11Z",
739
+ fill: "currentColor",
740
+ fillRule: "evenodd"
741
+ })
742
+ });
743
+ }
744
+ //#endregion
745
+ //#region src/package/rangeflow/components/PickerBar/SelectedDate.tsx
746
+ function $() {
747
+ let e = K((e) => e.selected_date), { SelectedDate: n } = G(), { from: r, to: i } = s(() => {
748
+ let t = u(), n = u(e.from), r = u(e.to), i = n.isSame(r, "year") ? "DD MMM" : "DD MMM YYYY", a = {
749
+ from: n.format(i),
750
+ to: r.format(i)
751
+ };
752
+ return t.isSame(n, "day") && (a.from = "Today"), t.isSame(r, "day") && (a.to = "Today"), a;
753
+ }, [e.from, e.to]);
754
+ return n ? t(n, {
755
+ from: r,
756
+ to: i
757
+ }) : /* @__PURE__ */ m("div", {
758
+ className: "rangeflow-selected-date flex items-center gap-2 text-xs font-medium text-(--rangeflow-accent-text) select-none hover:opacity-90",
759
+ children: [
760
+ /* @__PURE__ */ p(Ie, {}),
761
+ r,
762
+ /* @__PURE__ */ p("span", {
763
+ className: "text-(--rangeflow-text-faint)",
764
+ children: "—"
765
+ }),
766
+ i
767
+ ]
768
+ });
769
+ }
770
+ //#endregion
771
+ //#region src/package/rangeflow/components/PickerBar/index.tsx
772
+ function Le() {
773
+ let e = K((e) => e.calendar), { RangeTabs: n } = G();
774
+ return /* @__PURE__ */ m("div", {
775
+ className: "flex h-full items-center justify-between px-2",
776
+ children: [e ? /* @__PURE__ */ p(Q, { children: /* @__PURE__ */ p($, {}) }) : /* @__PURE__ */ p($, {}), n ? t(n) : /* @__PURE__ */ p(Oe, {})]
777
+ });
778
+ }
779
+ //#endregion
780
+ //#region src/package/rangeflow/hooks/use-rangeflow-events.ts
781
+ function Re() {
782
+ return a(V).events;
783
+ }
784
+ //#endregion
785
+ //#region src/package/rangeflow/hooks/use-emit-date-change.ts
786
+ function ze() {
787
+ let e = J(), { onChange: t } = Re();
788
+ o(() => e.subscribe((e, n) => {
789
+ e.selected_date !== n.selected_date && t(e.selected_date);
790
+ }), [e, t]);
791
+ }
792
+ //#endregion
793
+ //#region src/package/rangeflow/Root.tsx
794
+ function Be() {
795
+ return ze(), /* @__PURE__ */ m("div", {
796
+ className: "rangeflow-date-picker rangeflow-root h-35 w-140 rounded-lg border border-(--rangeflow-border) bg-(--rangeflow-bg) text-(--rangeflow-text) shadow-md shadow-(color:--rangeflow-shadow-color)",
797
+ children: [/* @__PURE__ */ p("div", {
798
+ className: "rangeflow-header h-10 border-b border-(--rangeflow-border) p-2",
799
+ children: /* @__PURE__ */ p(Le, {})
800
+ }), /* @__PURE__ */ p("div", {
801
+ className: "rangeflow-body mx-2",
802
+ children: /* @__PURE__ */ p(Ee, {})
803
+ })]
804
+ });
805
+ }
806
+ //#endregion
807
+ //#region src/package/rangeflow/index.tsx
808
+ function Ve(e) {
809
+ return /* @__PURE__ */ p(H, {
810
+ ...e,
811
+ children: /* @__PURE__ */ p(Be, {})
812
+ });
813
+ }
814
+ //#endregion
815
+ //#region src/package/rangeflow/hooks/use-rangeflow.ts
816
+ function He() {
817
+ let e = c(null), t = c(null), n = i((n) => {
818
+ let r = e.current;
819
+ if (!r) return;
820
+ let { selected_date: i, update: a } = r.getState(), { size: o, left: s, right: c } = F(n, i);
821
+ a((e) => {
822
+ e.range.from = n.from, e.range.to = n.to, e.slider = {
823
+ size: o,
824
+ left: s,
825
+ right: c
826
+ };
827
+ }), t.current?.slider.root.current?.setLayout({
828
+ [k]: s,
829
+ [j]: o,
830
+ [A]: c
831
+ });
832
+ }, []), r = i((n) => {
833
+ let r = e.current;
834
+ if (!r) return;
835
+ let { range: i } = r.getState(), { size: a, left: o, right: s } = F(i, n);
836
+ t.current?.slider.root.current?.setLayout({
837
+ [k]: o,
838
+ [j]: a,
839
+ [A]: s
840
+ });
841
+ }, []);
842
+ return {
843
+ __internal: {
844
+ store: e,
845
+ refs: t
846
+ },
847
+ updateRange: n,
848
+ updateSelectedDates: r
849
+ };
850
+ }
851
+ //#endregion
852
+ export { Ve as RangeFlow, He as useRangeflow };